@wular/coder 0.4.7 → 0.4.9
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 +2 -2
- package/dist/actions-5TDwmn_z.js +20 -0
- package/dist/adapter-B2RXnvqt.js +49845 -0
- package/dist/adapter-YCvP9H2n.js +94 -0
- package/dist/adapter-sKt1J1Cm.js +1 -0
- package/dist/{add-B3zygDO5.js → add-BftLUw05.js} +1 -1
- package/dist/add-CXAGrCnC.js +1 -0
- package/dist/add-Ck_y_nKX.js +2 -0
- package/dist/{add-DpsjB8Mp.js → add-CvBTpxgY.js} +1 -1
- package/dist/agent-ChnedLBv.js +8 -0
- package/dist/agent-vYm7Geh-.js +1 -0
- package/dist/{alias-CZjD1F0F.js → alias-BpgVDY6_.js} +1 -1
- package/dist/api-qdpx8FD0.js +1 -0
- package/dist/{app-CE5j7IDN.js → app-CJPFaLIV.js} +1 -1
- package/dist/approvals-CE8dXZhE.js +2 -0
- package/dist/approve-CBuGu3du.js +1 -0
- package/dist/{approve-D5Dkw1Lo.js → approve-dWW4qt76.js} +2 -2
- package/dist/apps-B60OpAHX.js +242 -0
- package/dist/{archive-RBPoB4cr.js → archive-C89Z4kSx.js} +2 -2
- package/dist/{archive-Br2eM_A2.js → archive-CmRVm4iS.js} +2 -2
- package/dist/archive-sweep-EiiXIqjr.js +1 -0
- package/dist/args-CxsMr9Un.js +1 -0
- package/dist/{ask-zjX8kQz0.js → ask-Bou8zg-4.js} +2 -2
- package/dist/auth-CImjIcG5.js +1 -0
- package/dist/auth-CWzSsiSC.js +1 -0
- package/dist/build-CmtlB7pX.js +1 -0
- package/dist/builtin/coder/agent.json +19 -4
- package/dist/chat-Bbzlea60.js +1 -0
- package/dist/chat-Djps0Seg.js +13 -0
- package/dist/{chat-bridge-18koyS7c.js → chat-bridge-CvspGKBc.js} +1 -1
- package/dist/chunk-7WDLOIRP-B_IWkVtZ.js +1 -0
- package/dist/cli-ZUdhZnuW.js +9 -0
- package/dist/cli.js +1 -1
- package/dist/config-CF3_A3NX.js +3 -0
- package/dist/config-D2FxHWwi.js +14 -0
- package/dist/connection-BCRJHTgp.js +1 -0
- package/dist/connection-BtUZA2St.js +1 -0
- package/dist/core-DwsAMCnL.js +65 -0
- package/dist/create-Z0QxarzN.js +1 -0
- package/dist/credentials-Dt2uP3AQ.js +1 -0
- package/dist/dash/standalone/server/build-index.json +1 -1
- package/dist/dash/standalone/server/manifest.json +2761 -1589
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.b7c6e5f49704993d.js → index.8e150ef2bc6a5f4e.js} +68 -16
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{defaults.36612942475445c3.js → defaults.e6ce0944639198a2.js} +5 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.e10960fe4c66b9d8.js → errors.5954bd9bd05e8230.js} +1 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.58ba9a3d545808d7.js → log-view.871cbff2605b5cfd.js} +3 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.35be1b07171553e7.js → load.4f942c7f68b2e273.js} +10 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.72b248cd95237fb6.js → page.a2a16ead424b2185.js} +9 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/page.90e312759b87cfa2.js +29 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/loading.fce966caba9308e4.js → [org]/account/loading.787d09fb0b2b6b57.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/notify.fc4ba1b51ee26296.js → [org]/account/notify.5fc5e4346dcbfc32.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/page.6c8e958aeab2678e.js → [org]/account/page.1641da62504df30a.js} +27 -21
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/sign-out.5dac3bf780c74354.js +20 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/agent-menu.f1dacbfebc27a656.js +13 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/(list)/agents-grid.0813591f217e9dbb.js → [org]/agents/(list)/agents-grid.5da78e9a741b028a.js} +23 -21
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/connect-apps.722bc3e4ec1f9fad.js +36 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/loading.2815a010098aa676.js +18 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/(list)/page.e0ad2df8b7c9a0af.js → [org]/agents/(list)/page.b01992337eeca2dc.js} +19 -20
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/layout.8aeb0fddffe22ad5.js +120 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/loading.50692149df9abb28.js +5 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/page.1ba2497fa9116713.js → [org]/agents/[slug]/(tabs)/page.e2e23101c05b9548.js} +40 -30
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/loading.31d2c13229ae9222.js +29 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.11c7b50d6119efe6.js +343 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-actions.92ac7aa258e706a4.js +574 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/agent-settings-form.fc530622fa2292a0.js +405 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/loading.bf17bd39f41db826.js +8 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/page.6e95dfe07dfebf4b.js +46 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/tasks/loading.f5c0c1c727da9f57.js → [org]/agents/[slug]/(tabs)/tasks/loading.7b17368ee81275ab.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/tasks/page.9324e2d909d55c6f.js → [org]/agents/[slug]/(tabs)/tasks/page.0bd3da9b3227b12f.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/loading.5e1f922969ab7016.js → [org]/agents/[slug]/(tabs)/usage/loading.d2cc33cf044a92a3.js} +16 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/page.91c43fbc54e37646.js +209 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/versions-list.e2427d618decaf7a.js → [org]/agents/[slug]/(tabs)/versions-list.23e4131cdf71daa5.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/loading.47c4c8f31b4f17cc.js +23 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/edit/page.057807354396ea77.js → [org]/agents/[slug]/edit/page.cbd2bad8fede6fef.js} +20 -16
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/agent-pills.d8e785c45f5410a6.js +100 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/agent-toggle.a6e27ac4171bfdb0.js +42 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/hero.96bdca9762ff3e2e.js +94 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/instructions.2f4229d42e7c99ef.js → [org]/agents/agent/instructions.ca0c09d4849bfc30.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/connect-repositories.329ac182c8242a67.js → [org]/agents/editor/connect-repositories.258f6c2c5f1b1b17.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/editor.d28d4afe11d7ff71.js → [org]/agents/editor/editor.20c42102ed262db7.js} +176 -137
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/import-picker.5e76549e7934b718.js → [org]/agents/editor/import-picker.b8093a7ca97656a5.js} +61 -71
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/loading.6012b36c10c68657.js +28 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/new/page.c3396459a9ba5c13.js → [org]/agents/new/page.1ebdb0247922fc14.js} +13 -12
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{layout.53a8a3b0e4a7917f.js → [org]/layout.6d2242d49ae9dd35.js} +107 -133
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.a56516bc0ba79187.js +144 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/page.af19494c89ac62c0.js +84 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/page.c720853404d94114.js +11 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.9b96914a4fa4e2a9.js +637 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/credentials-list.dbaa8f3d82445b90.js +522 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/credentials.c4b01484d183549d.js +44 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/engines-list.6c02a7e6d3c965cc.js → [org]/settings/[tab]/engines-list.5c03e83663a6a9b7.js} +13 -15
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/list.db2e212e3c8b5d32.js → [org]/settings/[tab]/list.df5ee5d74bec0f5b.js} +17 -43
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/loading.480b8f915bae18c1.js +6 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/models-list.052f3ccc66833937.js → [org]/settings/[tab]/models-list.2835a48d1edeb6d1.js} +45 -41
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/page.1d53415d55e77fee.js +133 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/runners-list.b5296983ba8007aa.js → [org]/settings/[tab]/runners-list.bf5746f48e3f78f5.js} +82 -133
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/secrets-list.b0dedc1567efc09f.js +137 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/layout.567d27e39d42d719.js +49 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/page.bac05d6e87953d0e.js +11 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/settings-head.d0f5ac9cbf170a77.js → [org]/settings/settings-head.5e2dff2550b3b73e.js} +8 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/tunnel-guide.f6685b045ccccdcd.js → [org]/settings/tunnel-guide.d6fae1c5d62f2c74.js} +5 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/create-link.03989d2f7585a045.js +33 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome-dialog.4debc1a8c644df4b.js +32 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome.cbbc8cd1bbbee01b.js +71 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/page.43c969f59a710781.js +45 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/activity.3755ae6065c3fc28.js +318 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/[id]/loading.d88d1139ea3ff52a.js → [org]/tasks/[id]/loading.9efbed6531879838.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/page.7b92dcd08095b934.js +24 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.62422b873f98ee8e.js +149 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/[id]/task-view.1c54f267d127f4e3.js → [org]/tasks/[id]/task-view.ae0e9c9dffe0ff9f.js} +107 -102
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/composer-data.ff108c0ef82a4d7b.js +69 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/composer.f232cc1bf2d7b08a.js → [org]/tasks/composer.fdad306647cbaa59.js} +157 -160
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/status.b90b76ffa62e957a.js → [org]/tasks/list/status.16190fdd5fd7daad.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/task.465c2af602cce783.js → [org]/tasks/list/task.af5001e51d2f612b.js} +12 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/tasks-list.2a0e1eb5c396be42.js → [org]/tasks/list/tasks-list.952f37a9486aebe7.js} +119 -115
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/tasks-section.2cbc1550d723661d.js → [org]/tasks/list/tasks-section.1247d4765d0e1bdc.js} +14 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/page.cf74c55e6528c7c9.js +16 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/custom-range.2d55812ec086b540.js +63 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/day-chart.5e716070459d785c.js → [org]/usage/day-chart.08d378cca93d3ab1.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/loading.7aed78a276b08a4f.js +15 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/metric.ca0466e33225f184.js → [org]/usage/metric.ada350d2b7449b39.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/page.c2b88b495780b12a.js → [org]/usage/page.fed9345ebac3e1b3.js} +20 -19
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/range-bar.b1296c2378128472.js +57 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/stats.4793e81a32ea5e8f.js → [org]/usage/stats.de820599cf126120.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/top-agents.b228062d012dc17b.js → [org]/usage/top-agents.e215d44e00192271.js} +21 -15
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.c762b39aafb84a1f.js → layout.b7e3af142b17941b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.3ddaa1a675a04c5a.js → page.226544940a39fd3a.js} +11 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.b337ce209ff621e9.js → drawer.8287e5a02144e4f1.js} +12 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/foreign-link.86f0cc228353da6e.js +28 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{heads.fa2157b3b36647f3.js → heads.20414ddcb2d08bcd.js} +18 -14
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/loading-card.0c6ac62ff3ccf38a.js +40 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.a2336c95004aed4b.js → page-head.bd54e52ac4a7a89c.js} +16 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.77a2ec038d97b2b8.js → stream.1cc355a530dcc5e3.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.10b46a8b8db1791f.js → task-toasts.63f673632770924d.js} +108 -24
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.ea23f57dd753683f.js → theme-choices.5f59814a635caeec.js} +8 -17
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/back-cookie.942c0904e944d8d6.js +12 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/back.5681714d0cf45454.js +42 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{current-link.844899810531977f.js → current-link.727b350a40b9ca13.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/org.4d84ad0ac340fbe2.js +29 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.55d3e6c43ca5e1f9.js → side-toggle.249400957d6a7527.js} +9 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{to.0116bedfbe5f1133.js → to.a2c840c09bd4bf4a.js} +2 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.0851f234f300c694.js +83 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/button.983daea9e687fc5d.js +91 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.b0873d38765c9d20.js → card.c08471eaa0bc1cec.js} +41 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.dab7f208cbbe6a33.js → collapse.762eba56417214ca.js} +5 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.ca0efacf2ce15578.js → combo.efb84f0cca771948.js} +13 -20
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.53edc755945b0563.js +27 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/copy.0b23d7dc05757df5.js +31 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/copy.fb3240de6c9479cd.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{field.7b2a2075ee8c6e29.js → field.75588c33b72824a7.js} +0 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.f19b6d5ebd6a3c2b.js → filter.1983b85dd0679af6.js} +34 -53
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/filter.b53f21acc3e2cfef.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.1777c0350d5d215e.js → icons.a34176f37808cd66.js} +4 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu-items.a8e580a0c90631ff.js +145 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.25b184f68cba7b46.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.a41edd5cde1c90cf.js +94 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/modal.9db07d368dcf5981.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/modal.b5f74ebf59590fa6.js +66 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/notice.f395f231cbb96445.js +13 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.5ac52bb38fb64ae5.js → segmented.a08dc08338d080e9.js} +13 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.f036fdc3fce02b92.js → select.36c6f21ce6aa720f.js} +47 -41
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/select.419208bb34700af2.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.d3d29747fe976f88.js → sentinel.17cffebfc3103b9f.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/sentinel.1e3ec9bd6008d811.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.d00fc01ad9c1b91e.js → tabs.66b2e54963f6901b.js} +3 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.9377d261fe9e91df.js → tail.a8a951c757376590.js} +5 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.19e1ce5224a23acf.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.b2c59c5fc015d08d.js → toolbar.9621ef221a896a8e.js} +11 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/action.1a6356d5b722cafb.js +34 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/client.d25e6dcc6704eb60.js +59 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{paged.7e5713a82abf0211.js → paged.18f5872fc5aebe96.js} +1 -0
- package/dist/dash/standalone/static/assets/chunks/action-977f2355e308d7d0.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agent-pills-e75e6ac80d515ffc.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-09f23ed893d441c7.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agent-toggle-b2f2c22e63dedc1f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agents-grid-bb4f3e4d38b2f459.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/back-1d1b062f0e1b29b7.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/combo-126d5709a0b3a5bd.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-6bf94d1087a6e6a6.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-9c1fe67a0de73997.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/confirm-1cb4d8df3974f34a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/connect-apps-32c169b6e00711ff.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{connect-repositories-8864a63f83ffd411.js → connect-repositories-995d55b3f166337d.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/connections-list-a102e909edff14d4.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/copy-c938369a1bfe75fd.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/create-link-a147953f343355ec.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/credentials-list-31e0fbc1ef0d003e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/custom-range-4eeb710748887f3a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/defaults-dcc0eccad4e8585b.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/editor-79560c0f91cfc2f6.js +7 -0
- package/dist/dash/standalone/static/assets/chunks/engines-list-d22f50040e6842ae.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/field-657227821326b5b3.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/instructions-a08bb02650dedb8d.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/instructions-a1f10bc3c2866e3f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/list-a0cc9bdb05fc71d4.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/model-options-3a57918eaa4a2a82.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/models-list-63ab774de3bf3788.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/notice-cd32ca98bbc10844.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-4ab62d613bee243a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-40824017c7b5b910.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-a515643f341df568.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/runners-list-a9f4f71695f7b376.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{runtime-37175329f2865f15-1.js → runtime-e8b9eb1e537215ed-1.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/secrets-list-34e09c332363564c.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/segmented-24da438244eedc8f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-02aaa49ed4606a76.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-03e620f936463465.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-6f8c76316a2cd9da.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-e8b9eb1e537215ed-2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/side-toggle-8563e6056e862225.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/tail-ebdefca4d5c23266.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-6ae2bb4f1b384140.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-actions-462507b76bda4657.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-view-341d79730a341007.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/tasks-list-6037ecd098332564.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/versions-list-31f31eb1923a0ded.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{wular-pnext-37175329f2865f15-0.js → wular-pnext-e8b9eb1e537215ed-0.js} +1 -1
- package/dist/dash/standalone/static/assets/connect-a550b6f3a8c00186.css +1 -0
- package/dist/dash/standalone/static/assets/create-param-id-8fa3e9101430f26a.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-67f7811b1343c064.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-account-3f646d473e3bd795.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-0ddb989cab5b0fbf.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-new-504d1a906feabb6f.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-7cd987a1a42a3b44.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-fcdddf2dc26453ce.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-26b84d659dbca7f4.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-97ff652f9fe5979d.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-d47377c0f877c5c0.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-6a09580f11d669b7.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-operator-56742192a9aafc19.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-settings-a851a659784d94b5.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-06283106fffbd5c6.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-setup-1b708aa5bb2f83ef.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-9cb2bb12389c9a04.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-a87fa0eaa02e4008.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-usage-786c91a7640542e6.css +1 -0
- package/dist/dash/standalone/static/assets/global-eee296f070a9bb95.css +1 -0
- package/dist/dash/standalone/static/assets/login-9760b85feae40270.css +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-17c3ee29b7487596.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-1eaa8deb5395345f.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-29e2b964470f6587.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2a1e756934e7be1a.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-31e64d49f6132b26.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-3d13328ad0b1148b.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-4ac29d3e9f1a91be.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-7d479b3375e3c07e.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-9eac45990b233b55.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-a8c9c169322e7e3d.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-b622d087a38b1b77.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-b7fea94dfda72453.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-cc8e5e6c95040688.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-d16e2a42b0a274c0.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-dbccfef0cbb6b18d.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-e74706ae238018e5.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-ebe7c9692619ea00.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-ef8d348060493085.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-fcdfa8b2c8824449.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-ff36e2f8a0522759.js +1 -0
- package/dist/{default-B3ValFJp.js → default-DcYwZCnl.js} +1 -1
- package/dist/default-EXRzdZUY.js +1 -0
- package/dist/{delete-6T7ujDtY.js → delete-Bmn2_TiV.js} +2 -2
- package/dist/{delete-k7pxp5B6.js → delete-DS6P_fun.js} +2 -2
- package/dist/{disable-BJXxuJ9s.js → disable-CnCxTC3X.js} +1 -1
- package/dist/discover-CBP4Uw0N.js +1 -0
- package/dist/{discover-CRUU1hdS.js → discover-pKrMDvpW.js} +2 -2
- package/dist/dispatch-D3Dqxijf.js +8 -0
- package/dist/dist-BTornX7Y.js +101 -0
- package/dist/dist-C3wD7GfG.js +4 -0
- package/dist/dist-DkATuPBB.js +6 -0
- package/dist/dist-node-Bv1kCqyi.js +20 -0
- package/dist/docs-3SW1O9iS.js +2 -0
- package/dist/{docs-PmFB2aMA.js → docs-sFUXzJbk.js} +1 -1
- package/dist/{enable-DZ7rw7iL.js → enable-BWvDv7dP.js} +1 -1
- package/dist/env-C_DoQYl5.js +1 -0
- package/dist/exec-BsXFIdTl.js +11 -0
- package/dist/executor-5j-Ewzzb.js +11 -0
- package/dist/flow/builtin/review.d.ts +1 -156
- package/dist/flow/builtin/review.js +7 -7
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/{flow-D8T71fyu.js → flow-CuUq-MDm.js} +1 -1
- package/dist/http-Cg_wYcZT.js +1 -0
- package/dist/{index-Xe8n_t2Z.d.ts → index-vd37q3fn.d.ts} +103 -1
- package/dist/{init-BfXdsU46.js → init-Dgj6V-aS.js} +1 -1
- package/dist/integrations-D3OgJk6Y.js +1 -0
- package/dist/integrations-DsFX2KCq.js +1 -0
- package/dist/lib/broker.js +2 -2
- package/dist/list-B6lwbCEp.js +1 -0
- package/dist/{list-NtMN55g0.js → list-BDpYPbJF.js} +1 -1
- package/dist/{list-F-PN6ieH.js → list-BE3xmX_4.js} +1 -1
- package/dist/{list-erdHI-w9.js → list-BVIAyAAE.js} +2 -2
- package/dist/{list-DedQA2pn.js → list-Bggy3HZY.js} +2 -2
- package/dist/list-CLtqMYPK.js +2 -0
- package/dist/{list-yoGxyIlx.js → list-CaFQOnfI.js} +1 -1
- package/dist/{list-CO8x2rgz.js → list-DkO78ZEF.js} +1 -1
- package/dist/load-CRmQB1LD.js +2 -0
- package/dist/local-ccKBhpQc.js +1 -0
- package/dist/log-view-DB4nXHXO.js +3 -0
- package/dist/{login-CJjcqCg4.js → login-BCdXHQ7z.js} +1 -1
- package/dist/login-CpHx_RCq.js +1 -0
- package/dist/{logout-B7mHWeWr.js → logout-zSQBDPCK.js} +1 -1
- package/dist/maintenance-DuIspk-y.js +1 -0
- package/dist/match-Kt3vFTl1.js +1 -0
- package/dist/mcp-O8VTfzdL.js +12 -0
- package/dist/mcp-YhyTUMIM.js +11 -0
- package/dist/{model-Cti-OOdV.js → model-Bzpwl_95.js} +1 -1
- package/dist/models-CdvmuaLv.js +1 -0
- package/dist/prompt-C--TI1qn.js +8 -0
- package/dist/push-vt81gcxD.js +1 -0
- package/dist/reconnect-BfghDbl1.js +1 -0
- package/dist/refresh-yXJ13FAf.js +1 -0
- package/dist/remote-oQs6My_3.js +1 -0
- package/dist/remove-5iAM2aTO.js +1 -0
- package/dist/remove-BZCA-gdU.js +1 -0
- package/dist/remove-BcewhH1U.js +1 -0
- package/dist/remove-BwhcR6ig.js +1 -0
- package/dist/rename-lyssPQfD.js +1 -0
- package/dist/result-Bg557zR6.js +5 -0
- package/dist/{result-DtVw6XYk.js → result-jeiRJTzA.js} +7 -7
- package/dist/{resume-D7XcEIbu.js → resume-fnx4FUQF.js} +2 -2
- package/dist/{review-DZGyNO5h.js → review-CAHDqPq8.js} +3 -3
- package/dist/review-CJS59vO-.d.ts +157 -0
- package/dist/{rotate-key-pIfcaeCd.js → rotate-key-Dpx_WmuU.js} +1 -1
- package/dist/{run-Co36tfya.js → run-CLy9a2MO.js} +1 -1
- package/dist/{run-BlXCPJzq.js → run-DU4G8gNw.js} +2 -2
- package/dist/{run-B-2NnW4r.js → run-D_pl9GF_.js} +2 -2
- package/dist/runner-DME7ohjt.js +1 -0
- package/dist/runner-zT5Oyrfr.js +1 -0
- package/dist/runners-CNhxPjg8.js +36 -0
- package/dist/schema-BSlHRFSP.js +8 -0
- package/dist/schema.config.d.ts +12 -0
- package/dist/schema.config.js +1 -0
- package/dist/schema.d.ts +2 -0
- package/dist/schema.js +1 -0
- package/dist/sdk-CWerLcF5.d.ts +12371 -0
- package/dist/sdk.d.ts +5 -1549
- package/dist/sdk.js +1 -1
- package/dist/serve-FG2LgXxM.js +9 -0
- package/dist/serve-UE1fcf4t.js +1 -0
- package/dist/serve-w-9qRCP1.js +2 -0
- package/dist/serve-wQgyxwdY.js +1 -0
- package/dist/server-Bw_YmgCf.js +1 -0
- package/dist/{setup-host-ON6zJGqS.js → setup-host-BsbDs4lJ.js} +1 -1
- package/dist/show-Cajmf606.js +1 -0
- package/dist/{show-jdaVKG0f.js → show-D0qTuXRU.js} +1 -1
- package/dist/slack-C_RlVDz7.js +3 -0
- package/dist/{status-BO1jm6NW.js → status-PO1YXbt4.js} +1 -1
- package/dist/steer-i6w87g_t.js +4 -0
- package/dist/{stop-BS2MB4CQ.js → stop-CJ0PHvKp.js} +1 -1
- package/dist/{stop-B-dQ2-Gm.js → stop-CkvoZEAH.js} +2 -2
- package/dist/task-DTN_fIGC.js +1 -0
- package/dist/task-DXHKWB_J.js +5 -0
- package/dist/task-IoBYe7ok.js +1 -0
- package/dist/test-BTkKFbnx.js +1 -0
- package/dist/tools-B-2oi2wI.js +1 -0
- package/dist/types-B42Oh0zF.js +1 -0
- package/dist/types-C1tWi5lP.d.ts +1710 -0
- package/dist/{unalias-DpkgCs_c.js → unalias-Cqx7i_L0.js} +1 -1
- package/dist/{update-ChIiUO1Z.js → update-MNyeVXyy.js} +1 -1
- package/dist/{upgrade-Cq24oWFZ.js → upgrade-CGSkY0FY.js} +2 -2
- package/dist/{usage-CazoINYM.js → usage-sx-FR0bz.js} +1 -1
- package/dist/views-BhsnL0nr.js +5 -0
- package/dist/watch-IL2eEgwD.js +9 -0
- package/dist/{watch-B3gAEK1N.js → watch-qfr7aSfo.js} +2 -2
- package/dist/wire-B5rc5Av6.js +1 -0
- package/dist/worker-BBZ36xL0.js +1 -0
- package/dist/worker-D2csFtoH.js +9 -0
- package/dist/{workflow-BOPHazbM.js → workflow-BKxG9OUk.js} +1 -1
- package/dist/zod-BoqHoRCH.js +1 -0
- package/dist/zod.d.ts +3 -0
- package/dist/zod.js +1 -0
- package/docs/agents/coder.md +9 -2
- package/docs/agents/index.md +28 -18
- package/docs/cli.md +24 -13
- package/docs/config.md +1 -1
- package/docs/dash.md +3 -3
- package/docs/flows.md +3 -3
- package/docs/mcp.md +8 -16
- package/docs/sdk.md +4 -4
- package/docs/self-host.md +29 -18
- package/package.json +22 -14
- package/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
- package/dist/actions-CmfXOVXQ.js +0 -20
- package/dist/adapter-7SEiVsmp.js +0 -1
- package/dist/adapter-BLEfUqoQ.js +0 -1
- package/dist/adapter-DaiJMOYo.js +0 -1
- package/dist/adapter-H4GlcKQz.js +0 -1
- package/dist/adapter-PeKziOUg.js +0 -1
- package/dist/add-8Z5bNm74.js +0 -1
- package/dist/add-DiwLZmjp.js +0 -1
- package/dist/add-json-wOUPHwUD.js +0 -1
- package/dist/agent-B69nSuTY.js +0 -1
- package/dist/agent-D0pQ_ewc.js +0 -3
- package/dist/approvals-Gv7x14u3.js +0 -2
- package/dist/apps-CaHoLNE7.js +0 -1
- package/dist/archive-sweep-jE6TPk2F.js +0 -1
- package/dist/args-DEMOfLz2.js +0 -1
- package/dist/auth-DSE3SIuI.js +0 -1
- package/dist/auth-DsxfkPsx.js +0 -1
- package/dist/chat-3Znsevah.js +0 -1
- package/dist/chat-cknlIhVh.js +0 -13
- package/dist/cli-DtTdpTy3.js +0 -9
- package/dist/cli.d.ts +0 -71
- package/dist/client-31YzOj-i.js +0 -1
- package/dist/config-BAkyRxp-.js +0 -3
- package/dist/create-BF6VHUst.js +0 -1
- package/dist/credentials-6PHXj8k7.js +0 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/sign-out.5d3bca9efecd6f70.js +0 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/agent-menu.6d3339a02f02460d.js +0 -12
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/connect-apps.8d218b96f9939819.js +0 -42
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/loading.02dd47fe59680cc8.js +0 -18
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.f2464375e393c96e.js +0 -105
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/loading.b27b95d8ccf0581e.js +0 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/loading.572d3404b984b163.js +0 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.9b30598fa84dd0df.js +0 -170
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/platform-actions.bc640252ecf046c6.js +0 -70
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.d3e6dc6bcfcfc928.js +0 -268
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/loading.a55efbdbdd995213.js +0 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.44eabcf6cf9fbfbd.js +0 -35
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.30a31e2464417a08.js +0 -160
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/edit/loading.21eb60e655c125c7.js +0 -29
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/agent-pills.6a0eea1ec99dffd7.js +0 -67
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/hero.9af8c50df6487ca5.js +0 -62
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/new/loading.02e30b3a7f1ab9f1.js +0 -28
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/page.a4be8e0779589f4e.js +0 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/credentials-list.c25242f7f4ef6399.js +0 -538
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/credentials.a62d1642ca580836.js +0 -34
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/loading.f4024074bf71b11b.js +0 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/mcp-list.0ce34ed7d7e756a7.js +0 -249
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/page.3458e42728e30f54.js +0 -86
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/layout.85946d20d7e48767.js +0 -39
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/page.9d2087e0e33d57f8.js +0 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/activity.4aeb0734da711e10.js +0 -177
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/page.e5b562dd47e19043.js +0 -24
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/task-actions.ee523c68a38a7975.js +0 -184
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/composer-data.5f12d8ef1db38026.js +0 -63
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/page.107706655a927e59.js +0 -16
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/custom-range.d85de32fb6ec4fe6.js +0 -64
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/loading.8aabf89dabaf1c3f.js +0 -15
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/range-bar.76e3de97583e6eab.js +0 -60
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/loading-card.bf58af8330a78704.js +0 -64
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.5abdef72e9189fdc.js +0 -31
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.1328a7ede6c27bb9.js +0 -53
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.a4dd9fb9f566689a.js +0 -103
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/client.a8205c524e63d4a9.js +0 -26
- package/dist/dash/standalone/static/assets/chunks/agent-pills-c5d56f60f9e17aea.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-738f9ac4b9fb67ef.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agents-grid-37e2e7f7a37b7a35.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/badge-9984d2fd0e7f995d.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/card-818c7a0d580e2e0d.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/combo-8aa7545cfda42090.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-a969037cf22215c7.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-data-6f7608fed13f3dd7.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-f433a2e64648633a.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/confirm-be929e2de15876a6.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/connect-apps-97c10fa6e35ccae6.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/credentials-list-08cd5dfe29f42bf2.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/custom-range-63f577240e5d5d85.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/editor-9752c8ab26ebd328.js +0 -7
- package/dist/dash/standalone/static/assets/chunks/engines-list-dab79c4e3e22eefe.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/field-43fea54c1c287e30.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/filter-02bba5796258deb0.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/heads-8f40675f508ebe33.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-0b968d5d0a58c716.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/instructions-f3ecfb5c50f270c2.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/list-591905f0aaa57629.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/mcp-list-bae4d2186f67849e.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/model-options-15c53331a2f28a4f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/models-list-c758db0c40f5173f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/paged-3ddb6077bef42752.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-4454493d02a1c172.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/runners-list-9d27c76eed33cb05.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/segmented-bf5a4c06605249e0.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/select-adccc9ac86ac833f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/sentinel-b4c91a38a5d79219.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-17c1fd399ac53851.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/shared-init-37175329f2865f15-2.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-3a95c0e0cc27e0cb.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/shared-init-8f2ac936c95a7f7b.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/tail-74153aeac1f0baec.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-actions-189775b88ef7ada4.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-ddfddeaf07fb684c.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-view-0b3d7ea9cc41888b.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/tasks-list-1b0195e3fd68714f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/toolbar-035d33d1e7ad11bf.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/versions-list-875a9a0ebb3f7d08.js +0 -1
- package/dist/dash/standalone/static/assets/connect-382b1729a7ae7808.css +0 -1
- package/dist/dash/standalone/static/assets/dash-49ca85b59ac65c20.css +0 -1
- package/dist/dash/standalone/static/assets/dash-account-edc56e85dbaaabe0.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-edba57b67e4005d0.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-new-fe22253fbada2fbf.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-param-slug-adf52e9dacb2d825.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-param-slug-edit-a2937a347689ef29.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-param-slug-platforms-265ba13db32a460d.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-param-slug-settings-8afc52eb0372bc4b.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-param-slug-tasks-6193e646be68dbd2.css +0 -1
- package/dist/dash/standalone/static/assets/dash-agents-param-slug-usage-ceadb3a1c911c402.css +0 -1
- package/dist/dash/standalone/static/assets/dash-settings-cf1997cd7f72e518.css +0 -1
- package/dist/dash/standalone/static/assets/dash-settings-param-tab-b44dac8e79a560e6.css +0 -1
- package/dist/dash/standalone/static/assets/dash-tasks-916c7100a8058aa3.css +0 -1
- package/dist/dash/standalone/static/assets/dash-tasks-param-id-24265771fd1e3f78.css +0 -1
- package/dist/dash/standalone/static/assets/dash-usage-40940b289f85e0b6.css +0 -1
- package/dist/dash/standalone/static/assets/global-d2adbf01910d9df5.css +0 -1
- package/dist/dash/standalone/static/assets/login-c129b1ce237be260.css +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-105d2264e4064f32.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-140064bc22718639.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-2825c0ea7bfa1240.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-39ac7ac446e20cfb.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-43cbb846cb4c167f.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-7d88eb36e6e3c301.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-9172198a969bd1e1.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-9c9c88e5c2fe31bc.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-a629391487c4b8e3.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-aace561f07b06542.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-b7d6355b1323fff1.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-c4be2f807668e35c.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-ce83b85e9562a049.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-dd2046446844a78b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-e62f31aae8ce2c3b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-ffab25199333314f.js +0 -1
- package/dist/default-DgP-hBmn.js +0 -1
- package/dist/discover-CaAtyC0h.js +0 -1
- package/dist/dispatch-YW1aqjEg.js +0 -14
- package/dist/docs-Byrpar10.js +0 -2
- package/dist/env-LsVTi18f.js +0 -1
- package/dist/exec-DgI3boHa.js +0 -11
- package/dist/executor-HWnIIYUL.js +0 -10
- package/dist/github-actions-CvLya8ve.js +0 -24
- package/dist/http-DG54kyx4.js +0 -1
- package/dist/integrations-B2CavXR1.js +0 -5
- package/dist/integrations-DNz6PHFV.js +0 -1
- package/dist/lib/broker.d.ts +0 -1
- package/dist/list-CJhHYVb2.js +0 -2
- package/dist/list-Cr4c8mT6.js +0 -1
- package/dist/load-DDZfByUe.js +0 -2
- package/dist/local-B0GiaLV0.js +0 -1
- package/dist/log-view-DeJstSkw.js +0 -3
- package/dist/login-p2VknR9f.js +0 -1
- package/dist/maintenance-C02_cNLp.js +0 -1
- package/dist/match-DMI54zg4.js +0 -1
- package/dist/mcp--MIvjMWZ.js +0 -1
- package/dist/mcp-DgMoPoUo.js +0 -1
- package/dist/migrate-CSwkAInI.js +0 -2
- package/dist/migrate-rwTojdkz.js +0 -1
- package/dist/models-DGPrMV51.js +0 -1
- package/dist/prompt-K7-bKcTC.js +0 -7
- package/dist/push-D3vxfhc_.js +0 -1
- package/dist/queue-EvplGOuk.js +0 -117
- package/dist/refresh-BFuahSFK.js +0 -1
- package/dist/remote-AcWWfKVS.js +0 -1
- package/dist/remove-7y1b_gHT.js +0 -1
- package/dist/remove-BRj1kPYm.js +0 -1
- package/dist/remove-C57QDigT.js +0 -1
- package/dist/remove-UVD3W2OE.js +0 -1
- package/dist/rename-CCv5pca3.js +0 -1
- package/dist/result-BWrYnt0u.js +0 -5
- package/dist/rolldown-runtime-DT7IzrpZ.js +0 -1
- package/dist/runner-DRgQvMiZ.js +0 -1
- package/dist/runner-c-2w6Eoj.js +0 -1
- package/dist/schema-DoNO0dPh.js +0 -1
- package/dist/serve-CcqX_2qk.js +0 -8
- package/dist/serve-Ci0AFWtY.js +0 -2
- package/dist/serve-DeX0lpXj.js +0 -12
- package/dist/serve-SWjydoBC.js +0 -1
- package/dist/serve-xMihn4g-.js +0 -1
- package/dist/server-CWbtW4W_.js +0 -1
- package/dist/shared-D64pQ0XU.js +0 -1
- package/dist/show-U0XPh927.js +0 -1
- package/dist/steer-DwSAYYqb.js +0 -4
- package/dist/store-B0RLMUR9.js +0 -42
- package/dist/store-Cxc2GYyj.js +0 -19
- package/dist/task-DEp3GHwH.js +0 -1
- package/dist/task-DhZ5vhyY.js +0 -5
- package/dist/task-gKnlLOGe.js +0 -1
- package/dist/test-TvJAUf4S.js +0 -1
- package/dist/tools-BQQfMQB9.js +0 -1
- package/dist/types-D0q15RJa.js +0 -1
- package/dist/types-DMGBYB_K.d.ts +0 -391
- package/dist/usage-Bw7fQeFC.js +0 -1
- package/dist/watch-DJATTJw_.js +0 -8
- package/dist/wire-DxxfWapP.js +0 -1
- package/dist/worker-C3dzIzd3.js +0 -1
- package/dist/worker-C4Lo6rLS.js +0 -9
- package/migrations/0000_initial.sql +0 -260
- package/migrations/meta/0000_snapshot.json +0 -1861
- package/migrations/meta/_journal.json +0 -13
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/page.78ecdcf250ebe4bd.css.pnext-asset.js → [org]/account/page.061f6006f2685f5e.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/(list)/page.c2085e3ab40a8b66.css.pnext-asset.js → [org]/agents/(list)/page.76589c15dee1732d.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/page.31a5f9731d946f4f.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/page.1a97b8d4b955c464.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/platforms/page.b036494aace45edf.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/platforms/page.3ffef848a0b0dda3.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/settings/agent-settings-form.204e3ec0b23d58c7.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/settings/agent-settings-form.2d19ea3a4d380e0d.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/@/app/dash/usage/range-bar.034280ed1ab2616b.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/usage/@/app/dash/[org]/usage/range-bar.e8f6f0c7ee443262.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/@/comps/ui/segmented.4db9cac358865634.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/usage/@/comps/ui/segmented.2cb43dc7d1f1588a.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/page.6bf93d41ec4a1fab.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/usage/page.80adb3d2ea31d080.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/agent-pills.1708253f0232e88e.css.pnext-asset.js → [org]/agents/agent/agent-pills.183f03f1e7e5ac9f.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/hero.8dd7556828e78b07.css.pnext-asset.js → [org]/agents/agent/hero.13019680f38b0630.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/instructions.532dc545ddb11e88.css.pnext-asset.js → [org]/agents/agent/instructions.446bccc375f30eeb.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/@/app/dash/agents/(list)/page.1e19c72828fbd611.css.pnext-asset.js → [org]/agents/editor/@/app/dash/[org]/agents/(list)/page.81c825592da30a32.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/editor.52403b9719fb5157.css.pnext-asset.js → [org]/agents/editor/editor.c496247a81ed832c.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/names.afb112f2a5a6f0f5.js → [org]/agents/editor/names.1ee5bba8d2b6ac41.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{layout.4b31e7e60256f6d1.css.pnext-asset.js → [org]/layout.a4efa8d807fe5416.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/credentials-list.0953506d95c86a2f.css.pnext-asset.js → [org]/operator/@/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.944b02c09bbf6c22.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/engines-list.c04c712adfc0ca48.css.pnext-asset.js → [org]/operator/@/app/dash/[org]/settings/[tab]/list.83f35dd8a36acdfd.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/list.4835150fd34d0c4f.css.pnext-asset.js → [org]/operator/page.9002a449f872a10e.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/mcp-list.a2b3bf3c7c5fa42e.css.pnext-asset.js → [org]/settings/[tab]/@/app/dash/[org]/setup/outcome.3ad5f7ec67e5238d.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/runners-list.0e2d8a76197cde60.css.pnext-asset.js → [org]/settings/[tab]/connections-list.f742847e4887f072.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/[id]/task-view.2110bc4a16798cde.css.pnext-asset.js → [org]/settings/[tab]/credentials-list.98e0b34932a6ee4c.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/composer.80a979f079b29681.css.pnext-asset.js → [org]/settings/[tab]/engines-list.9927d602ebe9e7fc.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/status.d71a946ed749ca30.css.pnext-asset.js → [org]/settings/[tab]/list.e0ce46919b75ef76.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/tasks-list.291e81e56d54513c.css.pnext-asset.js → [org]/settings/[tab]/runners-list.a835c9a264cf8903.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/model-options.bccfaced52fc0c00.js → [org]/settings/model-options.2eacf7f8ac0032df.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/@/app/dash/usage/range-bar.53967f3261c8387e.css.pnext-asset.js → [org]/setup/outcome.2a3073f895357275.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/@/comps/ui/segmented.2ca6fee7dd2830ad.css.pnext-asset.js → [org]/tasks/[id]/task-view.38b1b7ef3976ba71.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/day-chart.c566c1a55d15bf58.css.pnext-asset.js → [org]/tasks/composer.79c015348f861749.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/range-bar.5504dd2c591a3056.css.pnext-asset.js → [org]/tasks/list/status.7e63f2b02469ca40.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/stats.cd1d20f46f1347bf.css.pnext-asset.js → [org]/tasks/list/tasks-list.2282a7cef8b15bd8.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/top-agents.47aecd65c0c8fa2e.css.pnext-asset.js → [org]/usage/@/app/dash/[org]/usage/range-bar.85d30ec5f022f124.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/usage.0f646568d57d13e8.css.pnext-asset.js → [org]/usage/@/comps/ui/segmented.41728247cda62f82.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.e9ce0eb6697f992d.css.pnext-asset.js → dash/[org]/usage/day-chart.4b3dbef8704de0e0.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{login/page.57e5198339e9ca28.css.pnext-asset.js → dash/[org]/usage/range-bar.476c059123ef6c23.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/@/comps/ui/toast.a4c3e977997216cf.css.pnext-asset.js → app/dash/[org]/usage/stats.bb7cb568c0174557.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/drawer.e8201d78154045bc.css.pnext-asset.js → app/dash/[org]/usage/top-agents.20a1d4451784792b.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/page-head.a6e3c4204ca45e94.css.pnext-asset.js → app/dash/[org]/usage/usage.775df2f43187c487.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/card.146f70c7049b5b31.css.pnext-asset.js → app/globals.dccea8b03fa4b6d2.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/confirm.fb57a29a70e9df56.css.pnext-asset.js → app/login/page.586a41a7ab9988e0.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/filter.e20fbd035f24ed01.css.pnext-asset.js → frame/drawer.0b0220d1edabce29.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/menu.6341c87b5bec4256.css.pnext-asset.js → frame/page-head.364ec93a8e7857b3.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/select.03a695573b914d6f.css.pnext-asset.js → frame/task-toasts.d13d9f628e530552.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.bcff411a9f2355ec.css.pnext-asset.js → button.d7f4433f4e7faa80.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.40284b41c03c5dcb.css.pnext-asset.js → card.15f7435f202831c3.css.pnext-asset.js} +0 -0
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{t}from"./types-D0q15RJa.js";import*as n from"zod/mini";import{createHash as r,createHmac as i,timingSafeEqual as a}from"node:crypto";function o(e,t){let n=typeof e==`string`?Buffer.from(e):e,r=typeof t==`string`?Buffer.from(t):t;return n.length===r.length&&a(n,r)}const s=e=>r(`sha256`).update(e).digest(`base64url`),c=`https://api.github.com`;function l(e,t=`application/vnd.github+json`){return{accept:t,...e?{authorization:`Bearer ${e}`}:{},"user-agent":`coder`,"x-github-api-version":`2022-11-28`}}async function u(e){let[{createGitHubAdapter:t},{ConsoleLogger:n}]=await Promise.all([import(`@chat-adapter/github`),import(`chat`)]);return t({installationToken:e,apiUrl:c,webhookVerifier:()=>!1,logger:new n(`error`)}).octokit}const d=e=>t=>{if(!e.includes(t.status??0))throw t},f=e=>{let[t=``,n=``]=e.split(`/`);return{owner:t,repo:n}};async function ee(e,t,n,r){let i=await(await u(n)).repos.getContent({...f(e),path:t,...r?{ref:r}:{},mediaType:{format:`raw`}}).catch(d([404]));return typeof i?.data==`string`?i.data:void 0}async function te(e,t,n){let r=await(await u(n)).repos.getCommit({...f(e),ref:t,mediaType:{format:`sha`}}).catch(d([404,422]));return r?String(r.data).trim():void 0}async function ne(e,t,n,r){let i=await(await u(n)).repos.getContent({...f(e),path:t,...r?{ref:r}:{}}).catch(d([404]));return Array.isArray(i?.data)?i.data.map(e=>e.name):[]}async function re(e){let t=await u(e);return(await t.paginate(t.apps.listReposAccessibleToInstallation,{per_page:100})).map(e=>e.full_name)}async function ie(e,t){let{data:n}=await(await u(t)).pulls.list({...f(e),state:`open`,sort:`created`,direction:`desc`,per_page:50});return n.map(e=>({number:e.number,title:e.title,author:e.user?.login,createdAt:e.created_at}))}async function ae(e,t){let{data:n}=await(await u(t)).repos.get(f(e));return{owner:n.owner.login,name:n.name,cloneUrl:n.clone_url,ref:n.default_branch,defaultBranch:n.default_branch}}async function oe(e,t,n){let r=await(await u(n)).repos.getCollaboratorPermissionLevel({...f(e),username:t}).catch(()=>void 0);return[`admin`,`maintain`,`write`].includes(r?.data.permission??``)}function se(e,t,n){let r=`https://github.com/${e}`;return t?`${r}/tree/${n??`HEAD`}/${t}`:r}const p=e=>e.replace(/[&<>"']/g,e=>`&#${e.charCodeAt(0)};`);function m(e,t=200){return new Response(`<!doctype html><meta charset="utf-8">${e}`,{status:t,headers:{"content-type":`text/html; charset=utf-8`}})}const h={observe:[`read`],comment:[`read`,`comment`],write:[`read`,`comment`,`write`]},ce=[`repos`,`pull_requests`,`issues`],le=[`repos`,`issues`];function ue(e){return e?.type===`pull_request`||/^github:[^:]+:\d+(:|$)/.test(e?.chat?.thread.id??``)?ce:le}function de(e,t,n){let r=!e.some(e=>e!==`read`);return{name:`github`,command:`github-mcp-server`,args:[`stdio`,`--toolsets=${ue(t).join(`,`)}`,...r?[`--read-only`]:[]],env:{GITHUB_PERSONAL_ACCESS_TOKEN:n}}}function fe(e,{name:t,permissions:n,events:r,state:i,isPublic:a=!1}){let o=e.replace(/\/$/,``);return{name:t,url:o,hook_attributes:{url:`${o}/hooks/github`,active:!0},redirect_url:`${o}/create/github/callback?state=${encodeURIComponent(i)}`,callback_urls:[`${o}/install/github/callback`,`${o}/connect/github/callback`],request_oauth_on_install:!0,public:a,default_permissions:n,default_events:r}}function pe(e){return e?`https://github.com/organizations/${encodeURIComponent(e)}/settings/apps/new`:`https://github.com/settings/apps/new`}function me(e,t){let n=JSON.stringify(e).replace(/'/g,`'`);return`<form method="post" action="${pe(t)}"><input type="hidden" name="manifest" value='${n}'><button type="submit">Create GitHub App</button></form>`}async function he(e,t=fetch){let n=await t(`${c}/app-manifests/${encodeURIComponent(e)}/conversions`,{method:`POST`,headers:l()});if(!n.ok)throw Error(`GitHub App manifest conversion failed: ${n.status}`);let r=await n.json(),i=r.app_id??r.id;if(!i||!r.slug||!r.pem||!r.webhook_secret||!r.client_id||!r.client_secret||!r.html_url||!r.install_url)throw Error(`GitHub App manifest conversion response was incomplete`);return{appId:String(i),slug:r.slug,privateKey:r.pem,webhookSecret:r.webhook_secret,clientId:r.client_id,clientSecret:r.client_secret,htmlUrl:r.html_url,installUrl:r.install_url}}const g=`https://github.com/login/oauth`;function _(e){let{clientId:t,clientSecret:n}=e;if(!t||!n)throw Error(`This GitHub App has no OAuth client; create it again from the dashboard`);return{clientId:t,clientSecret:n}}async function v(e,t,n,r){let{clientId:i,clientSecret:a}=_(e),o=await n(`${g}/access_token`,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({client_id:i,client_secret:a,...t})}),s=await o.json().catch(()=>({}));if(!o.ok||!s.access_token)throw Error(`GitHub authorization failed: ${s.error??o.status}`);return{accessToken:s.access_token,...s.refresh_token?{refreshToken:s.refresh_token}:{},...s.expires_in?{expiresAt:r+s.expires_in*1e3}:{}}}async function ge(e,t){let n=await t(`${c}/user`,{headers:l(e)}),r=await n.json().catch(()=>({}));if(!n.ok||!r.id||!r.login)throw Error(`GitHub user lookup failed: ${n.status}`);return{id:r.id,login:r.login}}async function _e(e,t,n,r=fetch){for(let i=1;i<=10;i++){let a=await r(`${c}/user/installations?per_page=100&page=${i}`,{headers:l(e)});if(!a.ok)throw Error(`GitHub installation check failed: ${a.status}`);let o=(await a.json()).installations??[],s=o.find(e=>String(e.id)===n&&String(e.app_id)===t);if(s)return{login:s.account?.login??`unknown`,...s.account?.type?{type:s.account.type}:{}};if(o.length<100)return}}async function y(e,t,n,r){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw Error(`GitHub sent no authorization code`);let a=await v(t,{code:i,...n?{redirect_uri:n}:{}},r,Date.now()),o=await ge(a.accessToken,r);return{id:String(o.id),login:o.login,token:JSON.stringify(a),accessToken:a.accessToken}}const ve={authorizeUrl(e,{publicUrl:t,state:n}){let r=new URLSearchParams({client_id:_(e).clientId,redirect_uri:`${t.replace(/\/$/,``)}/connect/github/callback`,state:n});return`${g}/authorize?${r}`},async exchange(e,t,{publicUrl:n,fetch:r}){let{accessToken:i,...a}=await y(e,t,`${n.replace(/\/$/,``)}/connect/github/callback`,r);return a},async access(e,t,{fetch:n,now:r}){let i=JSON.parse(e);if(!i.expiresAt||i.expiresAt-3e5>r||!i.refreshToken)return{accessToken:i.accessToken};let a=await v(t,{grant_type:`refresh_token`,refresh_token:i.refreshToken},n,r);return{accessToken:a.accessToken,refreshed:JSON.stringify(a)}}};function ye(e){return Array.isArray(e)?t.find(t=>e.every(e=>h[t].includes(e)))??`write`:e}const be={observe:{metadata:`read`,contents:`read`,pull_requests:`read`,issues:`read`},comment:{metadata:`read`,contents:`read`,pull_requests:`write`,issues:`write`},write:{metadata:`read`,contents:`write`,pull_requests:`write`,issues:`write`}};function b(e=`observe`){return{...be[ye(e)]}}const xe={pull_request:`pull_request`,issue:`issues`,comment:`issue_comment`,mention:`issue_comment`};function Se(e){let t=e.map(e=>xe[e]).filter(e=>!!e);return[...new Set([...t,`push`,`installation`,`installation_repositories`])]}const Ce={createPage({publicUrl:e,state:t,definition:n,encodedState:r}){let i=n.integrations.github??{},a=Array.isArray(i.triggers)?i.triggers:Object.keys(i.triggers??{}),o=fe(e,{name:n.name??t.agent,permissions:b(i.tools),events:Se(a),state:r,isPublic:t.public===!0});return m(`<title>Create GitHub App</title><p>Creating the GitHub App for <b>${p(o.name)}</b>…</p>${me(o,t.owner)}<script>document.forms[0].submit()<\/script>`)},async createCallback(e,{fetch:t}){let n=new URL(e.url).searchParams.get(`code`);if(!n)throw Error(`Missing GitHub manifest code`);let r=await he(n,t),i={appId:r.appId,slug:r.slug,privateKey:r.privateKey,webhookSecret:r.webhookSecret,clientId:r.clientId,clientSecret:r.clientSecret};return{platformAppId:r.appId,name:r.slug,credentials:i}},installUrl(e,t,{state:n}){let{slug:r}=t;return`https://github.com/apps/${r}/installations/new?state=${encodeURIComponent(n)}`},async installCallback(e,{credentials:t,fetch:n}){let r=new URL(e.url).searchParams.get(`installation_id`);if(!r)throw Error(`Missing installation_id`);let{accessToken:i,...a}=await y(e,t,void 0,n),o=await _e(i,t.appId,r,n);if(!o)throw Error(`That installation is not one of yours on GitHub`);return{platformInstallId:r,account:o,installer:a.id,user:a,response:m(`<title>Connected</title><p>GitHub connected. The agent now runs on the repositories you picked; manage them from the app's settings page on GitHub.</p>`)}}};function x(e){return e&&typeof e==`object`?e:{}}function S(e){return e?.agent===!0||e?.type===`Bot`||e?.login?.endsWith(`[bot]`)===!0}function C(e,t){return[e,t].filter(e=>!!e).join(`
|
|
2
|
-
|
|
3
|
-
`)}const we=[`OWNER`,`MEMBER`],Te=[`issue_comment`,`pull_request_review_comment`,`ping`];function w(e){try{return JSON.parse(e)}catch{return}}function T(e,t,n){if(!n||!t?.startsWith(`sha256=`))return!1;let r=Buffer.from(i(`sha256`,n).update(e).digest(`hex`),`hex`);return o(Buffer.from(t.slice(7),`hex`),r)}function E(e,t,n,r,i){let a=n.installation?.id,o=D(n,i.headSha),s=i.user??n.sender;if(a===void 0||!o||!i.number)return;let c=s?.author_association;return{integration:`github`,type:r,appId:t.id,installationId:String(a),deliveryId:e.headers.get(`x-github-delivery`)??``,actor:{id:String(s?.id??s?.login??``),...s?.login?{login:s.login}:{},...c?{role:c}:{},...S(s)?{agent:!0}:{}},text:i.body??``,repo:o,chat:{thread:O(`${o.owner}/${o.name}`,i.number,i.kind===`pull`)}}}function D(e,t){let n=e.repository;return n?.owner?.login&&n.name&&n.clone_url&&n.default_branch?{owner:n.owner.login,name:n.name,cloneUrl:n.clone_url,ref:t??n.default_branch,defaultBranch:n.default_branch}:void 0}function O(e,t,n){return{_type:`chat:Thread`,adapterName:`github`,channelId:`github:${e}`,id:`github:${e}:${n?``:`issue:`}${t}`,isDM:!1}}function Ee(e,t,n,r){let i=x(t),a=e.headers.get(`x-github-event`);if(a===`pull_request`){let t=i.pull_request,a=i.action??``,o=i.requested_reviewer?.login?.toLowerCase();if(!t||![`opened`,`synchronize`,`reopened`,`ready_for_review`,`review_requested`].includes(a)||a===`review_requested`&&o!==`${r.slug}[bot]`.toLowerCase()||t.draft||a!==`review_requested`&&S(t.user)||!t.number||!t.head?.sha||!t.base?.sha)return[];let s=E(e,n,i,`pull_request`,{user:i.sender??t.user,body:C(t.title,t.body),number:t.number,kind:`pull`,headSha:t.head.sha});return s?[s]:[]}if(a===`issues`){let t=i.issue;if(!t||![`opened`,`edited`].includes(i.action??``)||S(i.sender??t.user)||!t.number)return[];let r=E(e,n,i,`issue`,{user:i.sender??t.user,body:C(t.title,t.body),number:t.number});return r?[r]:[]}return[]}async function De(e,t,n={}){let{createAppAuth:r}=await import(`@octokit/auth-app`),{token:i}=await r(e)({type:`installation`,installationId:t,...n.repositories?{repositoryNames:n.repositories}:{},...n.permissions?{permissions:n.permissions}:{}});return i}const Oe={installation:[`created`,`deleted`,`suspend`,`unsuspend`],installation_repositories:[`added`,`removed`]};function ke(e,t,n){let r=x(t),i=r.installation?.id,a=r.action;if(i===void 0||!Oe[e??``]?.includes(a??``))return;let o=r.installation?.account,s=Date.now(),c=a===`deleted`||a===`suspend`;return{op:c?`delete`:`upsert`,installation:{integration:`github`,id:`${n.id}:${i}`,app:n.id,account:{login:o?.login??r.repository?.owner?.login??`unknown`,...o?.type?{type:o.type}:{}},createdAt:s,...c?{deletedAt:s}:{}}}}function Ae(e,t){let n=x(e),r=n.repository?.full_name,i=t.branch??n.repository?.default_branch;if(!r||r!==t.agentsRepo||!i||n.ref!==`refs/heads/${i}`||!n.after||!n.commits)return;let a=[...new Set(n.commits.flatMap(e=>[...e.added??[],...e.modified??[],...e.removed??[]]))].filter(e=>e.startsWith(`.coder/agents/`));return a.length?{repo:r,ref:n.after,branch:i,paths:a}:void 0}function je(e={}){return{...e.repo?{repositories:[e.repo.name]}:{},...e.tools?{permissions:b(e.tools)}:{}}}const Me={id:`github`,brand:{color:`#000000`,icon:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`,dark:`#fff`,svg:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 96" fill="none" style="color:light-dark(#000,#fff)"><g clip-path="url(#github-mark-4)"><path d="M 41.44 69.38 C 28.81 67.85 19.91 58.76 19.91 46.99 C 19.91 42.21 21.63 37.04 24.5 33.59 C 23.26 30.43 23.45 23.73 24.88 20.96 C 28.71 20.48 33.88 22.49 36.94 25.27 C 40.58 24.12 44.41 23.54 49.1 23.54 C 53.79 23.54 57.61 24.12 61.06 25.17 C 64.03 22.49 69.29 20.48 73.12 20.96 C 74.46 23.54 74.65 30.24 73.4 33.5 C 76.47 37.13 78.09 42.01 78.09 46.99 C 78.09 58.76 69.19 67.66 56.37 69.29 C 59.62 71.39 61.82 75.99 61.82 81.25 L 61.82 91.21 C 61.82 94.08 64.22 95.7 67.09 94.55 C 84.41 87.95 98 70.63 98 49.19 C 98 22.11 75.99 0 48.9 0 C 21.82 0 0 22.11 0 49.19 C 0 70.44 13.49 88.05 31.68 94.65 C 34.26 95.61 36.75 93.88 36.75 91.3 L 36.75 83.64 C 35.41 84.22 33.69 84.6 32.16 84.6 C 25.84 84.6 22.11 81.16 19.43 74.74 C 18.38 72.16 17.23 70.63 15.03 70.34 C 13.88 70.25 13.49 69.77 13.49 69.19 C 13.49 68.04 15.41 67.18 17.32 67.18 C 20.1 67.18 22.49 68.91 24.98 72.45 C 26.89 75.22 28.9 76.47 31.29 76.47 C 33.69 76.47 35.22 75.61 37.42 73.4 C 39.05 71.78 40.29 70.34 41.44 69.38 Z" fill="black" style="fill:currentColor"/></g><defs><clipPath id="github-mark-4"><rect width="98" height="96" fill="white"/></clipPath></defs></svg>`},name:`GitHub`,description:`Pull requests, issues, and comments on GitHub repositories`,installLabel:`Connect GitHub`,organizationApps:!0,hint:`Cite repository file paths when discussing code. After making changes, link the pull request.`,sample:`github:owner/repo:1`,author:e=>`${e}[bot]`,events:{mention:{description:`Comment from a repo owner or org member mentioning @<agent>; text has the mention stripped.`,on:`mention`,addressed:!0},pull_request:{description:`Opened, updated, or ready non-draft pull request.`},issue:{description:`Opened or edited issue.`},comment:{description:`New non-agent issue or pull-request comment.`,on:`message`,noisy:!0}},tools:{presets:h,server:de,install:`arch=$(uname -m); [ "$arch" = aarch64 ] && arch=arm64; curl -fsSL "https://github.com/github/github-mcp-server/releases/latest/download/github-mcp-server_Linux_$arch.tar.gz" | tar -xz -C /usr/local/bin github-mcp-server`},get app(){return Ce},auth:{token:(e,t,n)=>De(t,e.id.split(`:`).pop(),je(n)),get user(){return ve},canWrite:async(e,t)=>!!(e.repo&&e.actor.login)&&oe(`${e.repo.owner}/${e.repo.name}`,e.actor.login,t)},repos:{cloneHosts:[`github.com`],readFile:ee,listDir:ne,commit:te,list:(e,t)=>re(t),get:ae,url:se,pullRequests:ie,pullRequest:e=>{let t=/^github:[^:]+:(\d+)(?::|$)/.exec(e.chat?.thread.id??``);return t?Number(t[1]):void 0},pullRequestThread:(e,t)=>O(e,t,!0)},target(e,t){let n=e.headers.get(`x-github-hook-installation-target-id`);if(!n)return;let r=x(w(t)),i=D(r);return{app:n,...r.installation?.id===void 0?{}:{installation:String(r.installation.id)},...i?{repo:i}:{}}},adapter:async e=>(await import(`./adapter-7SEiVsmp.js`)).githubAdapter(e),ownEvents(e,t,n,r){let i=e.headers.get(`x-github-event`);if(!i||Te.includes(i))return;let{webhookSecret:a,slug:o}=r;if(!T(t,e.headers.get(`x-hub-signature-256`),a))return{invalid:!0};let s=w(t),c=ke(i,s,n);if(c)return{installation:c};let l=Ae(s,n);return l?{changes:l}:{events:Ee(e,s,n,{slug:o})}},event(e,t,n){let r=n.raw.comment?.author_association;return{type:e===`mention`&&!we.includes(r??``)?`comment`:e,actor:{id:n.author.userId,login:n.author.userName,...r?{role:r}:{}}}}};function k(e,t,n,r){let i=Object.entries(n).filter(([,e])=>e!==void 0).map(([e,t])=>`<input type="hidden" name="${e}" value="${p(String(t))}">`).join(``),a=r.steps.map(e=>`<li>${p(e)}</li>`).join(``),o=r.fields.map(([e,t])=>`<p><label>${p(t)}<br><input name="${e}" size="60" required></label></p>`).join(``);return m(`<title>${p(r.title)}</title><ol>${a}</ol><form method="post" action="${e.replace(/\/$/,``)}/create/${t}/callback">${i}${o}<button type="submit">${p(r.title)}</button></form>`)}async function A(e,t){let n=new URLSearchParams(await e.text()),r=Object.fromEntries(t.map(e=>[e,n.get(e)?.trim()??``])),i=t.filter(e=>!r[e]);if(i.length)throw Error(`Missing ${i.join(`, `)}`);return r}async function j(e,t,n=fetch,r=Date.now()){let i=await n(e,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t)}),a=await i.json().catch(()=>({}));if(!i.ok||!a.access_token)throw Error(`${new URL(e).host} refused the token request: ${a.error_description??a.error??i.status}`);return{accessToken:a.access_token,...a.refresh_token?{refreshToken:a.refresh_token}:{},...a.expires_in?{expiresAt:r+a.expires_in*1e3}:{},...a.id_token?{idToken:a.id_token}:{}}}async function M(e,t,n,r=Date.now()){if(!e)throw Error(`The installation has no token; connect it again from the dashboard`);let i=JSON.parse(e);if(!i.refreshToken||(i.expiresAt??1/0)-3e5>r)return i.accessToken;let{idToken:a,...o}=await t(i.refreshToken),s={...o,refreshToken:o.refreshToken??i.refreshToken};return await n?.(JSON.stringify(s)),s.accessToken}function N(e,t){let n=JSON.parse(Buffer.from(e?.split(`.`)[1]??``,`base64url`).toString()||`{}`);if(!(Array.isArray(n.aud)?n.aud:[n.aud]).includes(t))throw Error(`The sign-in returned no identity for this app`);return n}const P=`https://oauth2.googleapis.com/token`,F=`https://www.googleapis.com/auth/gmail.modify`,Ne=[`clientId`,`clientSecret`,`topic`,`subscription`,`serviceAccount`,`label`],I=e=>e.replace(/\/$/,``),Pe=(e,t)=>`${I(e)}/hooks/gmail?app=${encodeURIComponent(t)}`;function L(e,t,n,r){let i=new URLSearchParams({client_id:e.clientId,redirect_uri:t,response_type:`code`,scope:r,state:n});return r.includes(F)&&(i.set(`access_type`,`offline`),i.set(`prompt`,`consent`)),`https://accounts.google.com/o/oauth2/v2/auth?${i}`}async function R(e,t,n,r){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw Error(`Google sent no authorization code`);let{clientId:a,clientSecret:o}=t,{idToken:s,...c}=await j(P,{grant_type:`authorization_code`,code:i,client_id:a,client_secret:o,redirect_uri:n},r),l=N(s,a);if(typeof l.email!=`string`||l.email_verified!==!0)throw Error(`Google returned no verified email address`);return{email:l.email.toLowerCase(),token:c}}const Fe={createPage({publicUrl:e,state:t}){return k(e,`gmail`,t,{title:`Connect Gmail`,steps:[`In a Google Cloud project you own, enable the Gmail API and the Pub/Sub API.`,`Create an OAuth client of type Web application with the redirect URIs ${I(e)}/install/gmail/callback and ${I(e)}/connect/gmail/callback.`,`Create a Pub/Sub topic and give gmail-api-push@system.gserviceaccount.com the Pub/Sub Publisher role on it.`,`Add a push subscription to the topic with authentication on, a service account of yours, and the endpoint ${I(e)}/hooks/gmail?app= followed by the OAuth client ID.`,`Fill in the client ID and secret, the full topic and subscription names, the service account email, and the label to watch, such as INBOX.`],fields:[[`clientId`,`OAuth client ID`],[`clientSecret`,`OAuth client secret`],[`topic`,`Topic, projects/<project>/topics/<name>`],[`subscription`,`Subscription, projects/<project>/subscriptions/<name>`],[`serviceAccount`,`Push service account email`],[`label`,`Label ID`]]})},async createCallback(e,{publicUrl:t,state:n,definition:r}){let i=await A(e,Ne);if(!/^projects\/[^/\s]+\/topics\/[^/\s]+$/.test(i.topic))throw Error(`The topic must be projects/<project>/topics/<name>`);if(!/^projects\/[^/\s]+\/subscriptions\/[^/\s]+$/.test(i.subscription))throw Error(`The subscription must be projects/<project>/subscriptions/<name>`);let a={...i,audience:Pe(t,i.clientId)};return{platformAppId:i.clientId,name:r.name??n.agent,credentials:a}},installUrl(e,t,{publicUrl:n,state:r}){return L(t,`${I(n)}/install/gmail/callback`,r,`openid email ${F}`)},async installCallback(e,{credentials:t,publicUrl:n,fetch:r}){let{email:i,token:a}=await R(e,t,`${I(n)}/install/gmail/callback`,r);if(!a.refreshToken)throw Error(`Google sent no refresh token; remove the app's access from the Google account and connect again`);return{platformInstallId:i,account:{login:i},token:JSON.stringify(a),response:m(`<title>Connected</title><p>Connected ${p(i)}.</p>`)}}},Ie={authorizeUrl:(e,{publicUrl:t,state:n})=>L(e,`${I(t)}/connect/gmail/callback`,n,`openid email`),async exchange(e,t,{publicUrl:n,fetch:r}){let{email:i}=await R(e,t,`${I(n)}/connect/gmail/callback`,r);return{id:i,login:i}},access:async e=>({accessToken:e})};function Le(e,t,n){let{clientId:r,clientSecret:i}=t;return M(e.token,e=>j(P,{grant_type:`refresh_token`,refresh_token:e,client_id:r,client_secret:i}),n)}function Re(e){try{let t=JSON.parse(e).message?.data,n=JSON.parse(Buffer.from(t??``,`base64`).toString()).emailAddress;return typeof n==`string`?n.toLowerCase():void 0}catch{return}}function ze(e){let t=e.email.headers.find(e=>e.key===`authentication-results`)?.value??``;return/^\s*mx\.google\.com;/.test(t)&&/\bdmarc=pass\b/.test(t)}const Be={id:`gmail`,brand:{color:`#FC413D`,icon:`M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64 12 9.548l6.545-4.91 1.528-1.145C21.69 2.28 24 3.434 24 5.457z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 192 192"><path fill="url(#gmail-mark-5)" d="M 146 44 h 38 v 110 c 0 6.63 -5.37 12 -12 12 h -20 a 6 6 0 0 1 -6 -6 z"/><path fill="#fc413d" d="M 46 44 H 8 v 110 c 0 6.63 5.37 12 12 12 h 20 a 6 6 0 0 0 6 -6 z"/><path fill="url(#gmail-mark-12)" d="M 39.23 30.46 c -8.03 -6.75 -20.02 -5.71 -26.77 2.32 -6.75 8.03 -5.71 20.02 2.32 26.77 l 76.08 63.95 a 8 8 0 0 0 10.29 0 l 76.08 -63.95 c 8.03 -6.75 9.07 -18.74 2.32 -26.77 -6.75 -8.03 -18.74 -9.07 -26.77 -2.32 L 96 78.18 z"/><defs><linearGradient id="gmail-mark-5" x1="165" x2="165" y1="44" y2="166" gradientUnits="userSpaceOnUse"><stop stop-color="#60d673"/><stop offset="0.17" stop-color="#42c868"/><stop offset="0.39" stop-color="#0ebc5f"/><stop offset="0.62" stop-color="#00a9bb"/><stop offset="0.86" stop-color="#3c90ff"/><stop offset="1" stop-color="#3186ff"/></linearGradient><linearGradient id="gmail-mark-12" x1="8" x2="184" y1="46.13" y2="46.13" gradientUnits="userSpaceOnUse"><stop offset="0.08" stop-color="#ff63a0"/><stop offset="0.3" stop-color="#fc413d"/><stop offset="0.5" stop-color="#fc413d"/><stop offset="0.65" stop-color="#fc413d"/><stop offset="0.72" stop-color="#fc5c30"/><stop offset="0.86" stop-color="#feb10c"/><stop offset="0.91" stop-color="#fec700"/><stop offset="0.96" stop-color="#ffdb0f"/></linearGradient></defs></svg>`},name:`Gmail`,description:`Email that arrives under one label of a Gmail mailbox`,installLabel:`Connect Gmail`,sample:`gmail:YWdlbnRAZXhhbXBsZS5jb20:18c0a1b2c3d4e5f6`,hint:`You are answering an email. Write plain text with short paragraphs, no Markdown headings or tables.`,events:{mail:{description:`Email under the watched label from a sender whose domain passes DMARC`,on:`mention`,addressed:!0}},tools:{presets:{observe:[],comment:[],write:[]}},get app(){return Fe},auth:{token:(e,t,n,r)=>Le(e,t,r),get user(){return Ie}},target(e,t){let n=new URL(e.url).searchParams.get(`app`),r=Re(t);return n&&r?{app:n,installation:r}:void 0},adapter:async e=>(await import(`./adapter-PeKziOUg.js`)).gmailAdapter(e),async renew(e){await e.watch(),await e.sync()},sync:e=>e.sync(),event(e,t,n){return ze(n.raw)?{type:e,actor:{id:n.author.userId,login:n.author.userId}}:void 0}},z=`https://api.linear.app/oauth/token`,Ve=[`clientId`,`clientSecret`,`webhookSecret`],B=e=>e.replace(/\/$/,``);async function V(e,t,n){let r=await n(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${e}`,"content-type":`application/json`},body:JSON.stringify({query:t})}),i=await r.json().catch(()=>({}));if(!r.ok||!i.data)throw Error(`Linear refused the query: ${r.status}`);return i.data}function H(e,t,n,r){return`https://linear.app/oauth/authorize?${new URLSearchParams({client_id:e.clientId,redirect_uri:t,response_type:`code`,scope:r?`read,write,app:mentionable,app:assignable`:`read`,state:n,...r?{actor:`app`}:{}})}`}function U(e,t,n,r){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw Error(`Linear sent no authorization code`);let{clientId:a,clientSecret:o}=t;return j(z,{grant_type:`authorization_code`,code:i,redirect_uri:n,client_id:a,client_secret:o},r)}const He={createPage({publicUrl:e,state:t}){return k(e,`linear`,t,{title:`Connect Linear`,steps:[`In Linear, open Settings, then API, and create a new OAuth application.`,`Add the callback URLs ${B(e)}/install/linear/callback and ${B(e)}/connect/linear/callback.`,`Turn on webhooks with the URL ${B(e)}/hooks/linear?app= followed by the client ID, and select Agent session events.`,`Fill in the client ID, the client secret, and the webhook signing secret.`],fields:[[`clientId`,`Client ID`],[`clientSecret`,`Client secret`],[`webhookSecret`,`Webhook signing secret`]]})},async createCallback(e,{state:t,definition:n}){let r=await A(e,Ve);return{platformAppId:r.clientId,name:n.name??t.agent,credentials:r}},installUrl(e,t,{publicUrl:n,state:r}){return H(t,`${B(n)}/install/linear/callback`,r,!0)},async installCallback(e,{credentials:t,publicUrl:n,fetch:r}){let{idToken:i,...a}=await U(e,t,`${B(n)}/install/linear/callback`,r),{organization:o}=await V(a.accessToken,`query { organization { id name urlKey } }`,r);return{platformInstallId:o.id,account:{login:o.urlKey},token:JSON.stringify(a),response:m(`<title>Connected</title><p>Connected the ${p(o.name)} Linear workspace.</p>`)}}},Ue={authorizeUrl:(e,{publicUrl:t,state:n})=>H(e,`${B(t)}/connect/linear/callback`,n,!1),async exchange(e,t,{publicUrl:n,fetch:r}){let{viewer:i}=await V((await U(e,t,`${B(n)}/connect/linear/callback`,r)).accessToken,`query { viewer { id displayName } }`,r);return{id:i.id,login:i.displayName}},access:async e=>({accessToken:e})};function We(e,t,n){let{clientId:r,clientSecret:i}=t;return M(e.token,e=>j(z,{grant_type:`refresh_token`,refresh_token:e,client_id:r,client_secret:i}),n)}const Ge={id:`linear`,brand:{color:`#222326`,icon:`M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" fill="#222326" viewBox="0 0 100 100" style="fill:light-dark(#222326,#fff)"><path d="M 1.23 61.52 c -0.22 -0.95 0.91 -1.55 1.6 -0.86 L 39.33 97.18 c 0.69 0.69 0.09 1.82 -0.86 1.6 C 20.05 94.45 5.55 79.95 1.23 61.52 Z M 0 46.89 c -0.02 0.28 0.09 0.56 0.29 0.76 L 52.35 99.71 c 0.2 0.2 0.48 0.31 0.76 0.29 2.37 -0.15 4.69 -0.46 6.96 -0.93 0.76 -0.16 1.03 -1.1 0.48 -1.65 L 2.58 39.45 c -0.55 -0.55 -1.49 -0.29 -1.65 0.48 -0.47 2.27 -0.78 4.59 -0.93 6.96 Z M 4.21 29.71 c -0.17 0.37 -0.08 0.81 0.21 1.1 l 64.78 64.78 c 0.29 0.29 0.73 0.37 1.1 0.21 1.79 -0.8 3.52 -1.69 5.19 -2.68 0.55 -0.33 0.64 -1.09 0.18 -1.54 L 8.44 24.34 c -0.45 -0.45 -1.21 -0.37 -1.54 0.18 -0.99 1.67 -1.89 3.4 -2.68 5.19 Z M 12.66 18.07 c -0.37 -0.37 -0.39 -0.96 -0.04 -1.35 C 21.78 6.46 35.11 0 49.95 0 77.59 0 100 22.41 100 50.05 c 0 14.84 -6.46 28.17 -16.72 37.34 -0.39 0.35 -0.98 0.33 -1.35 -0.04 L 12.66 18.07 Z"/></svg>`},name:`Linear`,description:`Agent sessions on Linear issues: mentions and assignments`,installLabel:`Connect Linear`,sample:`linear:2f1e6a1c-0000-4000-8000-000000000001:s:5b7d3c2a-0000-4000-8000-000000000002`,hint:`You are working in a Linear issue's agent session. Keep replies short and about the issue; link pull requests you open.`,events:{mention:{description:`Agent session started or prompted by mentioning or assigning the agent`,on:`mention`,addressed:!0,steers:!0}},tools:{presets:{observe:[],comment:[],write:[]}},get app(){return He},auth:{token:(e,t,n,r)=>We(e,t,r),get user(){return Ue}},target(e,t){let n=new URL(e.url).searchParams.get(`app`),r;try{r=JSON.parse(t).organizationId}catch{return}return n&&typeof r==`string`?{app:n,installation:r}:void 0},adapter:async e=>(await import(`./adapter-BLEfUqoQ.js`)).linearAdapter(e),event(e,t,n){t.startTyping(`Reading the issue`).catch(()=>{});let r=n.raw.agentSessionPromptContext;return{type:e,actor:{id:n.author.userId,login:n.author.userName},...r?{promptContext:r.slice(0,16384)}:{}}}},W=[`channels:history`,`groups:history`,`im:history`,`mpim:history`],G=[`channels:read`,`groups:read`,`im:read`,`mpim:read`],K={"conversations.history":W,"conversations.replies":W,"conversations.info":G,"conversations.list":G,"users.info":[`users:read`],"users.list":[`users:read`],"reactions.get":[`reactions:read`]},q={"chat.postMessage":[`chat:write`],"reactions.add":[`reactions:write`]},J={"chat.postMessage":`thread_ts`,"reactions.add":`timestamp`},Ke={...K,...q};async function qe(e,t,n={}){let r=e.tools??[];if(!r.includes(t)||!Ke[t])throw Error(`Slack method ${t} is not allowed for this task; allowed: ${r.join(`, `)||`none`}`);if(t in q){let[,r,i]=(e.scope?.thread??``).split(`:`);if(!r||n.channel!==r)throw Error(`This task may only write to its connected channel.`);let a=Object.hasOwn(J,t)?J[t]:void 0;if(!i||!a||n[a]!==i||n.reply_broadcast)throw Error(`This task may only write to its triggering thread.`)}let{callSlackApi:i}=await import(`@chat-adapter/slack/api`),a=await i(t,n,{token:e.token,fetch:e.fetch,contentType:`json`});if(a.error===`missing_scope`)throw Error(`Slack method ${t} needs the ${Ke[t].join(` or `)} scope, which this app does not have`);if(!a.ok)throw Error(`Slack ${t} failed: ${a.error}`);return a}const Je={slack_api:{description:`Call a Slack Web API method, such as conversations.replies or chat.postMessage, with its JSON arguments. Only the methods this task allows work; others fail with the allowed list.`,inputSchema:{type:`object`,properties:{method:{type:`string`},args:{type:`object`}},required:[`method`]},handler:(e,t)=>qe(t,String(e.method??``),e.args??{})}};function Y(e){return e.replace(/\/$/,``)}function Ye(e,{name:t,scopes:n,events:r,extras:i}){let a=Y(e);return{display_information:{name:t},features:{bot_user:{display_name:t},...i},oauth_config:{redirect_urls:[`${a}/install/slack/callback`],scopes:{bot:n}},settings:{event_subscriptions:{request_url:`${a}/hooks/slack`,bot_events:r}}}}async function X(e,t,n,r){let{assertSlackOk:i,callSlackApi:a}=await import(`@chat-adapter/slack/api`),o=await a(e,t,{token:n,fetch:r});return i(e,o),o}async function Xe(e,t,n=fetch){let r=await X(`apps.manifest.create`,{manifest:JSON.stringify(t)},e,n);return{appId:r.app_id,clientId:r.credentials.client_id,clientSecret:r.credentials.client_secret,signingSecret:r.credentials.signing_secret}}function Ze(e,t,n){let r=n.integrations.slack??{},i=Array.isArray(r.triggers)?r.triggers:Object.keys(r.triggers??{});return Ye(e,{name:t,scopes:it(r.tools),events:ot(i),extras:st(e,n)})}async function Qe(e,t=fetch){let n=await t(`https://slack.com/api/tooling.tokens.rotate`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({refresh_token:e})}),r=await n.json();if(!n.ok||!r.ok||!r.token||!r.refresh_token)throw Error(`Slack token rotation failed: ${r.error??n.statusText}`);return{token:r.token,refreshToken:r.refresh_token}}function $e(e,t,n,r=[]){let i=new URLSearchParams({client_id:e.clientId,state:n,redirect_uri:`${Y(t)}/install/slack/callback`});return r.length&&i.set(`scope`,r.join(`,`)),`https://slack.com/oauth/v2/authorize?${i}`}async function et(e,t,n,r=fetch){let i=await r(`https://slack.com/api/oauth.v2.access`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({client_id:t.clientId,client_secret:t.clientSecret,code:e,redirect_uri:`${Y(n)}/install/slack/callback`})}),a=await i.json();if(!i.ok||!a.ok||!a.access_token||!a.team?.id||!a.team.name)throw Error(`Slack OAuth failed: ${a.error??i.statusText}`);return{teamId:a.team.id,teamName:a.team.name,accessToken:a.access_token,...a.authed_user?.id?{installer:a.authed_user.id}:{}}}function tt(e,t){return[`Hi, I'm ${e}. Ask me here or mention me in any channel; a thread keeps its context for follow-ups.`,"Use `/setup show` to see my settings. Workspace admins configure connected repositories in the Coder dashboard.",...Object.entries(t).map(([e,t])=>`Connect ${e} so I can act there: ${t}`)].join(`
|
|
4
|
-
|
|
5
|
-
`)}const nt={createPage({publicUrl:e,state:t}){return m(`<title>Create Slack app</title><p>Slack creates apps only with an app configuration token. Open <a href="https://api.slack.com/apps" target="_blank">api.slack.com/apps</a>, scroll to “Your App Configuration Tokens”, click Generate, and paste the access token below. Tokens expire after 12 hours; paste the refresh token too so the receiver can keep the app's manifest updated when this agent changes.</p><form method="post" action="${Y(e)}/create/slack/callback">${Object.entries(t).filter(([,e])=>e!==void 0).map(([e,t])=>`<input type="hidden" name="${e}" value="${p(String(t))}">`).join(``)}<p><input name="token" size="60" placeholder="xoxe.xoxp-..." required></p><p><input name="refreshToken" size="60" placeholder="xoxe-... refresh token (recommended)"></p><button type="submit">Create Slack app</button></form>`)},async createCallback(e,{publicUrl:t,state:n,definition:r,fetch:i}){let a=new URLSearchParams(await e.text()),o=a.get(`token`);if(!o)throw Error(`Missing configuration token`);let s=r.name??n.agent,c=await Xe(o,Ze(t,s,r),i),l=a.get(`refreshToken`),u=l?await Qe(l,i):void 0,d={...c,configToken:u?.token??o,configRefreshToken:u?.refreshToken??l??void 0};return{platformAppId:c.appId,name:s,credentials:d}},async update(e,t,{publicUrl:n,definition:r,fetch:i,saveCredentials:a}){let o=t;if(!o.configRefreshToken)return;let s=await Qe(o.configRefreshToken,i);await a({...o,configToken:s.token,configRefreshToken:s.refreshToken}),await X(`apps.manifest.update`,{app_id:o.appId,manifest:JSON.stringify(Ze(n,e.name,r))},s.token,i)},installUrl(e,t,{publicUrl:n,state:r}){return $e(t,n,r)},async installCallback(e,{app:t,credentials:n,publicUrl:r,fetch:i,connect:a}){let o=new URL(e.url).searchParams.get(`code`);if(!o)throw Error(`Missing Slack OAuth code`);let s=await et(o,n,r,i),c=await a(`${t.id}:${s.teamId}`);s.installer&&await X(`chat.postMessage`,{channel:s.installer,text:tt(t.name,c)},s.accessToken,i).catch(()=>void 0);let l=Object.entries(c).map(([e,t])=>`<p><a href="${p(t)}">Connect ${p(e)}</a> so the agent can act there.</p>`).join(``);return{platformInstallId:s.teamId,account:{login:s.teamName},token:s.accessToken,installer:s.installer,...s.installer?{user:{id:s.installer}}:{},response:m(`<title>Connected</title><p>Connected ${p(s.teamName)}.</p>${l}`)}}},rt=[`app_mentions:read`,`channels:history`,`groups:history`,`im:history`,`channels:read`,`users:read`,`reactions:read`,`commands`];function it(e=`observe`){let t=new Set(Object.keys(K));return(Array.isArray(e)?e.every(e=>t.has(e)):e===`observe`)?[...rt]:[...rt,`chat:write`,`reactions:write`,`im:write`,`assistant:write`]}const at={mention:[`app_mention`],message:[`message.channels`,`message.groups`,`message.im`],reaction:[`reaction_added`]};function ot(e){return[...new Set(e.flatMap(e=>at[e]??[]))]}function st(e,t){return{slash_commands:[{command:`/setup`,url:`${e.replace(/\/$/,``)}/hooks/slack`,description:`Configure this agent`,usage_hint:`repo owner/name | model <name> | show`}],assistant_view:{assistant_description:t.description??`${t.name??`Coder`} in your workspace.`}}}const ct=n.object({type:n.optional(n.string()),team_id:n.optional(n.string()),api_app_id:n.optional(n.string()),challenge:n.optional(n.string()),authorizations:n.optional(n.array(n.object({user_id:n.optional(n.string()),team_id:n.optional(n.string())})))});function lt(e){try{return JSON.parse(e)}catch{let t=new URLSearchParams(e),n=t.get(`payload`);if(!n)return Object.fromEntries(t);try{return JSON.parse(n)}catch{return{}}}}const ut={id:`slack`,brand:{color:`#E3066A`,icon:`M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400"><g><path d="M 84.04 252.77 c 0 23.13 -18.89 42.02 -42.02 42.02 S 0 275.9 0 252.77 s 18.89 -42.02 42.02 -42.02 h 42.02 v 42.02 Z" fill="#e3066a"/><path d="M 105.21 252.77 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 v 105.21 c 0 23.13 -18.89 42.02 -42.02 42.02 s -42.02 -18.89 -42.02 -42.02 c 0 0 0 -105.21 0 -105.21 Z" fill="#e3066a"/></g><g><path d="M 147.23 84.04 c -23.13 0 -42.02 -18.89 -42.02 -42.02 S 124.1 0 147.23 0 s 42.02 18.89 42.02 42.02 v 42.02 h -42.02 Z" fill="#00b3ff"/><path d="M 147.23 105.21 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 H 42.02 c -23.13 0 -42.02 -18.89 -42.02 -42.02 s 18.89 -42.02 42.02 -42.02 c 0 0 105.21 0 105.21 0 Z" fill="#00b3ff"/></g><g><path d="M 315.96 147.23 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 -18.89 42.02 -42.02 42.02 h -42.02 v -42.02 Z" fill="#41b658"/><path d="M 294.79 147.23 c 0 23.13 -18.89 42.02 -42.02 42.02 s -42.02 -18.89 -42.02 -42.02 V 42.02 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 v 105.21 Z" fill="#41b658"/></g><g><path d="M 252.77 315.96 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 -42.02 -18.89 -42.02 -42.02 v -42.02 h 42.02 Z" fill="#fcc003"/><path d="M 252.77 294.79 c -23.13 0 -42.02 -18.89 -42.02 -42.02 s 18.89 -42.02 42.02 -42.02 h 105.21 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 h -105.21 Z" fill="#fcc003"/></g></svg>`},name:`Slack`,description:`Mentions, messages, and reactions in a Slack workspace`,installLabel:`Add to Slack`,sample:`slack:C0000000000:1700000000.000100`,hint:`Do not use Markdown headings. Use short paragraphs and code spans, and reply only in the thread where you were addressed.`,events:{mention:{description:`Slack app mention`,on:`mention`,addressed:!0},command:{description:`/setup and other slash commands`,on:`command`},reaction:{description:`Reaction added`,on:`reaction`},message:{description:`Channel, group, or direct message`,on:`message`,noisy:!0,addressed:!0}},tools:{presets:{observe:Object.keys(K),comment:[...Object.keys(K),...Object.keys(q)],write:[...Object.keys(K),...Object.keys(q)]},serve:Je},get app(){return nt},target(e,t){let n=ct.safeParse(lt(t)).data;if(n?.type===`url_verification`&&n.challenge)return new Response(n.challenge);let r=n?.authorizations?.[0]?.team_id??n?.team_id??lt(t).team?.id,i=n?.authorizations?.[0]?.user_id;return n?.api_app_id?{app:n.api_app_id,...r?{installation:r}:{},...i?{self:i}:{}}:void 0},adapter:async e=>(await import(`./adapter-DaiJMOYo.js`)).slackAdapter(e),reactionId:e=>e.raw.event_ts,auth:{async token(e){if(!e.token)throw Error(`Slack installation ${e.id} has no bot token`);return e.token}}},Z=`https://login.microsoftonline.com`,dt=`https://api.botframework.com/.default`,ft=[`appId`,`appPassword`,`tenantId`],Q=e=>e.replace(/\/$/,``),pt={createPage({publicUrl:e,state:t}){return k(e,`teams`,t,{title:`Connect Microsoft Teams`,steps:[`In the Azure portal, create an Azure Bot of type Single Tenant with a new app registration.`,`Set its messaging endpoint to ${Q(e)}/hooks/teams?app= followed by the Microsoft App ID, and turn on the Microsoft Teams channel.`,`In the app registration, add the web redirect URI ${Q(e)}/install/teams/callback and create a client secret.`,`In the Teams Developer Portal, create a Teams app for the bot and install it in your organization.`,`Fill in the Microsoft App ID, the client secret, and the directory (tenant) ID.`],fields:[[`appId`,`Microsoft App ID`],[`appPassword`,`Client secret`],[`tenantId`,`Directory (tenant) ID`]]})},async createCallback(e,{state:t,definition:n}){let r=await A(e,ft);return{platformAppId:r.appId,name:n.name??t.agent,credentials:r}},installUrl(e,t,{publicUrl:n,state:r}){let{appId:i,tenantId:a}=t,o=new URLSearchParams({client_id:i,response_type:`code`,redirect_uri:`${Q(n)}/install/teams/callback`,scope:`openid profile`,state:r});return`${Z}/${encodeURIComponent(a)}/oauth2/v2.0/authorize?${o}`},async installCallback(e,{credentials:t,publicUrl:n,fetch:r}){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw Error(`Microsoft sent no authorization code`);let{appId:a,appPassword:o,tenantId:s}=t,{idToken:c}=await j(`${Z}/${encodeURIComponent(s)}/oauth2/v2.0/token`,{grant_type:`authorization_code`,code:i,client_id:a,client_secret:o,redirect_uri:`${Q(n)}/install/teams/callback`,scope:`openid profile`},r),l=N(c,a);if(l.tid!==s)throw Error(`That account belongs to another Microsoft directory than the bot`);let u=String(l.preferred_username??``).split(`@`)[1]||s;return{platformInstallId:s,account:{login:u},response:m(`<title>Connected</title><p>Connected Microsoft Teams for ${p(u)}.</p>`)}}};async function mt(e){let{appId:t,appPassword:n,tenantId:r}=e;return(await j(`${Z}/${encodeURIComponent(r)}/oauth2/v2.0/token`,{grant_type:`client_credentials`,client_id:t,client_secret:n,scope:dt})).accessToken}const ht={id:`teams`,brand:{color:`#4B53BC`,icon:`M3 4h18v4h-7v12h-4V8H3z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none"><path d="M 22 20 H 34 C 37.31 20 40 22.69 40 26 V 36 C 40 39.31 37.31 42 34 42 C 30.69 42 28 39.31 28 36 V 26 C 28 22.69 25.31 20 22 20 Z" fill="url(#teams-mark-15)"/><path d="M 8 24 C 8 20.69 10.69 18 14 18 H 22 C 25.31 18 28 20.69 28 24 V 36 C 28 39.31 30.69 42 34 42 L 18 42 C 12.48 42 8 37.52 8 32 V 24 Z" fill="url(#teams-mark-20)"/><path d="M 8 24 C 8 20.69 10.69 18 14 18 H 22 C 25.31 18 28 20.69 28 24 V 36 C 28 39.31 30.69 42 34 42 L 18 42 C 12.48 42 8 37.52 8 32 V 24 Z" fill="url(#teams-mark-24)" fill-opacity="0.7"/><path d="M 8 24 C 8 20.69 10.69 18 14 18 H 22 C 25.31 18 28 20.69 28 24 V 36 C 28 39.31 30.69 42 34 42 L 18 42 C 12.48 42 8 37.52 8 32 V 24 Z" fill="url(#teams-mark-27)" fill-opacity="0.7"/><path d="M 33 18 C 35.76 18 38 15.76 38 13 C 38 10.24 35.76 8 33 8 C 30.24 8 28 10.24 28 13 C 28 15.76 30.24 18 33 18 Z" fill="url(#teams-mark-30)"/><path d="M 33 18 C 35.76 18 38 15.76 38 13 C 38 10.24 35.76 8 33 8 C 30.24 8 28 10.24 28 13 C 28 15.76 30.24 18 33 18 Z" fill="url(#teams-mark-33)" fill-opacity="0.46"/><path d="M 33 18 C 35.76 18 38 15.76 38 13 C 38 10.24 35.76 8 33 8 C 30.24 8 28 10.24 28 13 C 28 15.76 30.24 18 33 18 Z" fill="url(#teams-mark-36)" fill-opacity="0.4"/><path d="M 18 16 C 21.31 16 24 13.31 24 10 C 24 6.69 21.31 4 18 4 C 14.69 4 12 6.69 12 10 C 12 13.31 14.69 16 18 16 Z" fill="url(#teams-mark-39)"/><path d="M 18 16 C 21.31 16 24 13.31 24 10 C 24 6.69 21.31 4 18 4 C 14.69 4 12 6.69 12 10 C 12 13.31 14.69 16 18 16 Z" fill="url(#teams-mark-42)" fill-opacity="0.6"/><path d="M 18 16 C 21.31 16 24 13.31 24 10 C 24 6.69 21.31 4 18 4 C 14.69 4 12 6.69 12 10 C 12 13.31 14.69 16 18 16 Z" fill="url(#teams-mark-45)" fill-opacity="0.5"/><rect x="4" y="23" width="16" height="16" rx="3.25" fill="url(#teams-mark-48)"/><rect x="4" y="23" width="16" height="16" rx="3.25" fill="url(#teams-mark-51)" fill-opacity="0.7"/><path d="M 15.48 28.11 H 13.03 V 35.57 H 10.97 V 28.11 H 8.52 V 26.43 H 15.48 V 28.11 Z" fill="white"/><defs><radialGradient id="teams-mark-15" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(39.8 22.17) scale(13.48 33.27)"><stop stop-color="#A98AFF"/><stop offset="0.14" stop-color="#8C75FF"/><stop offset="0.56" stop-color="#5F50E2"/><stop offset="0.9" stop-color="#3C2CB8"/></radialGradient><radialGradient id="teams-mark-20" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(8.81 16.4) rotate(68.15) scale(32.75 33.12)"><stop stop-color="#85C2FF"/><stop offset="0.69" stop-color="#7588FF"/><stop offset="1" stop-color="#6459FE"/></radialGradient><linearGradient id="teams-mark-24" x1="20.59" y1="18" x2="20.59" y2="42" gradientUnits="userSpaceOnUse"><stop offset="0.8" stop-color="#6864F6" stop-opacity="0"/><stop offset="1" stop-color="#5149DE"/></linearGradient><radialGradient id="teams-mark-27" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(27.5 17.2) rotate(113.33) scale(19.22 15.43)"><stop stop-color="#BD96FF"/><stop offset="0.69" stop-color="#BD96FF" stop-opacity="0"/></radialGradient><radialGradient id="teams-mark-30" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(33 11.57) rotate(-90) scale(10 12.62)"><stop offset="0.27" stop-color="#6868F7"/><stop offset="1" stop-color="#3923B1"/></radialGradient><radialGradient id="teams-mark-33" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(28.87 10.54) rotate(40.05) scale(7.15 10.34)"><stop offset="0.27" stop-color="#A1D3FF"/><stop offset="0.81" stop-color="#A1D3FF" stop-opacity="0"/></radialGradient><radialGradient id="teams-mark-36" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(36.98 10.37) rotate(-41.66) scale(8.51 20.88)"><stop stop-color="#E3ACFD"/><stop offset="0.82" stop-color="#9FA2FF" stop-opacity="0"/></radialGradient><radialGradient id="teams-mark-39" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(18 8.29) rotate(-90) scale(12 15.15)"><stop offset="0.27" stop-color="#8282FF"/><stop offset="1" stop-color="#3923B1"/></radialGradient><radialGradient id="teams-mark-42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.04 7.05) rotate(40.05) scale(8.58 12.4)"><stop offset="0.27" stop-color="#A1D3FF"/><stop offset="0.81" stop-color="#A1D3FF" stop-opacity="0"/></radialGradient><radialGradient id="teams-mark-45" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(22.78 6.84) rotate(-41.66) scale(10.22 25.06)"><stop stop-color="#E3ACFD"/><stop offset="0.82" stop-color="#9FA2FF" stop-opacity="0"/></radialGradient><radialGradient id="teams-mark-48" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(4 23) rotate(45) scale(22.63)"><stop offset="0.05" stop-color="#688EFF"/><stop offset="0.95" stop-color="#230F94"/></radialGradient><radialGradient id="teams-mark-51" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12 32.6) rotate(90) scale(11.2 13.07)"><stop offset="0.57" stop-color="#6965F6" stop-opacity="0"/><stop offset="1" stop-color="#8F8FFF"/></radialGradient></defs></svg>`},name:`Microsoft Teams`,description:`Mentions, messages, and reactions in Microsoft Teams`,installLabel:`Add to Teams`,sample:`teams:MTk6Z2VuZXJhbEB0aHJlYWQudGFjdjI:aHR0cHM6Ly9zbWJhLnRyYWZmaWNtYW5hZ2VyLm5ldC90ZWFtcy8:channel`,history:!1,hint:`Keep replies short. Use plain paragraphs and code spans, no Markdown headings, and reply in the conversation where you were addressed.`,events:{mention:{description:`Teams mention of the bot, or a direct message to it`,on:`mention`,addressed:!0},reaction:{description:`Reaction added`,on:`reaction`},message:{description:`Channel or group chat message the bot can read`,on:`message`,noisy:!0,addressed:!0}},tools:{presets:{observe:[],comment:[],write:[]}},get app(){return pt},auth:{token:(e,t)=>mt(t)},target(e,t){let n=new URL(e.url).searchParams.get(`app`),r;try{let e=JSON.parse(t);r=e.channelData?.tenant?.id??e.conversation?.tenantId}catch{return}return n&&typeof r==`string`?{app:n,installation:r}:void 0},reactionId:e=>e.raw.id,adapter:async e=>(await import(`./adapter-H4GlcKQz.js`)).teamsAdapter(e)};var gt=e({INTEGRATIONS:()=>$,enabledIntegrations:()=>_t,repositoryReader:()=>vt});const $={github:Me,slack:ut,teams:ht,gmail:Be,linear:Ge};function _t(e){if(!e)return $;let t=e.filter(e=>!$[e]);if(t.length)throw Error(`Unknown integration ${t.join(`, `)} in SERVER_INTEGRATIONS; pick from ${Object.keys($).join(`, `)}`);return Object.fromEntries(e.map(e=>[e,$[e]]))}const vt=e=>Object.values(e).find(e=>e.repos);export{dt as a,p as c,s as d,vt as i,m as l,_t as n,T as o,gt as r,h as s,$ as t,o as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-DtTdpTy3.js";const t=e(`agent integrations`,{list:async()=>(await import(`./list-NtMN55g0.js`)).commandIntegrationsList,ls:async()=>(await import(`./list-NtMN55g0.js`)).commandIntegrationsList,show:async()=>(await import(`./show-jdaVKG0f.js`)).commandIntegrationsShow},{menu:[{usage:`list`,blurb:`list integrations with their events and tools`},{usage:`show <id>`,blurb:`events and tools of one integration`}],description:[`The platforms an agent can listen to and act on: their events and tool presets.`]},{aliases:{ls:`list`}});export{t as commandAgentIntegrations};
|
package/dist/lib/broker.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
package/dist/list-CJhHYVb2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-DtTdpTy3.js";import{g as n,p as r,s as i}from"./output-BKeyLbvt.js";import{i as a,n as o,s,t as c}from"./args-DEMOfLz2.js";import l from"node:process";const u={server:a,workspace:s,yes:o},d=e=>`builtin`in e,f=e=>e.map(e=>d(e)?{id:e.id,name:e.name,source:e.builtin?`builtin`:`repo`,description:e.definition.description??null}:{id:e.id,name:e.name,source:e.source,version:e.currentVersion,description:e.description??null});function p(e,t){if(!e.length)return void l.stdout.write(`No agents configured.
|
|
2
|
-
`);let a=r;l.stdout.write(n([{header:`id`,value:e=>e.id,paint:e=>a.cyan(e)},{header:`name`,value:e=>e.name},{header:`source`,value:e=>e.source,paint:e=>a.light(e)},...t?[{header:`version`,value:e=>String(e.version)}]:[],{header:`description`,value:e=>e.description??`-`}],e,a)),!t&&l.stdout.write(`\n${i([`An agent's settings, triggers, and tools: coder agent show <id>`,`Scaffold a new agent in this repo: coder agent init <id>`],a)}\n`)}const m=e({name:`agent list`,help:{usage:`coder agent list [--server [url]] [--json] [--cwd <dir>]`,summary:`Without --server, one row per built-in and workspace agent. With --server, list the agent records and current versions owned by that Coder server.`,flags:[t]},options:{...c,...u},run:async({options:e,cwd:t})=>{let{agents:n}=await import(`./agent-D0pQ_ewc.js`).then(e=>e.t);return n.list({...e,cwd:t,organization:e.workspace})},json:e=>f(e),print:(e,{options:t})=>p(f(e),t.server!==void 0)});export{m as commandAgentList,d as isLocal};
|
package/dist/list-Cr4c8mT6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-DtTdpTy3.js";import{g as n,p as r,s as i}from"./output-BKeyLbvt.js";import{t as a}from"./args-DEMOfLz2.js";import o from"node:process";const s=t({name:`mcp list`,help:{usage:`coder mcp list [--json] [--cwd <dir>]`,summary:`List MCP servers from the merged user and repo config.`},options:a,run:({cwd:t})=>e(t),print:c});function c(e){let t=r,a=Object.keys(e);if(!a.length)return void o.stdout.write(`No MCP servers configured.\n\n${i([`Add a server: coder mcp add <name> -- <command>`],t)}\n`);o.stdout.write(n([{header:`name`,value:e=>e.name,paint:e=>t.cyan(e)},{header:`target`,value:e=>e.entry.url??[e.entry.command,...e.entry.args??[]].join(` `),paint:e=>t.light(e)},{header:`tools`,value:e=>e.entry.tools?.join(`, `)??`-`,paint:e=>t.light(e)}],a.map(t=>({name:t,entry:e[t]})),t))}export{s as commandMcpList};
|
package/dist/load-DDZfByUe.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Mt as e,an as t,ht as n,it as r,tt as i}from"./dispatch-YW1aqjEg.js";import{t as a}from"./types-D0q15RJa.js";import o from"node:path";import{fileURLToPath as s}from"node:url";import*as c from"zod/mini";import l from"node:fs";const u=c.string().check(c.regex(/^[a-z0-9][a-z0-9_-]*$/i,`agent or flow name`)),d=c.enum([`low`,`medium`,`high`]),f=c.enum([`read-only`,`workspace-write`,`auto`]),p=c.enum([`observe`,`comment`,`write`]),m=c.union([p,c.array(c.string())]),h=c.strictObject({flow:c.optional(u),match:c.optional(c.string().check(c.minLength(1))),permissions:c.optional(f),actAs:c.optional(c.literal(`requester`))}),g=c.strictObject({triggers:c.optional(c.union([c.array(c.string()),c.record(c.string(),c.union([u,h,c.literal(!0)]))])),tools:c.optional(m)}),_=c.strictObject({$schema:c.optional(c.string()),name:c.optional(c.string().check(c.minLength(1))),description:c.optional(c.string()),engine:c.optional(c.string()),runner:c.optional(c.string().check(c.minLength(1))),model:c.optional(c.string()),effort:c.optional(d),permissions:c.optional(f),mcp:c.optional(c.record(u,r)),integrations:c._default(c.record(c.string(),g),{})}),v=c.strictObject({allowedTools:c.optional(m),allowedEvents:c.optional(c.array(c.string()))}),y=c.strictObject({engine:c.optional(c.string()),model:c.optional(c.string()),effort:c.optional(d),permissions:c.optional(f),integrations:c.optional(c.record(c.string(),v))}),b=c.record(u,c.union([c.boolean(),y]));function x(e){return e.issues.map(e=>`${e.path.map(String).join(`.`)||`(root)`}: ${e.message}`).join(`; `)}function S(e,t){let n=_.safeParse(t);if(!n.success)throw Error(`Invalid agent definition "${e}": ${x(n.error)}`);let{$schema:r,...i}=n.data;return i}function C(e){if(e===void 0)return{};let t=b.safeParse(e);if(!t.success)throw Error(`Invalid agents usage: ${x(t.error)}`);return t.data}function w(e){return e?.triggers?Array.isArray(e.triggers)?e.triggers:Object.keys(e.triggers):[]}function T(e,t){if(!e?.triggers)return;if(Array.isArray(e.triggers))return e.triggers.includes(t)?{}:void 0;if(!Object.prototype.hasOwnProperty.call(e.triggers,t))return;let n=e.triggers[t];return n===!0?{}:typeof n==`string`?{flow:n}:n}function E(e,t){let n=[],r=Object.keys(t).sort().join(`, `)||`none`;for(let i of e){for(let[e,a]of Object.entries(i.definition.integrations)){let o=`agents.${i.id}.integrations.${e}`,s=t[e];if(!s){n.push(`${o}: unknown integration; valid: ${r}`);continue}let c=Object.keys(s.events).sort().join(`, `)||`none`;for(let e of w(a)){e in s.events||n.push(`${o}.triggers.${e}: unknown event; valid: ${c}`);let t=T(a,e)?.match;if(t!==void 0)try{new RegExp(t)}catch{n.push(`${o}.triggers.${e}.match: invalid regex`)}}n.push(...D(`${o}.tools`,a.tools,s))}for(let[e,a]of Object.entries(i.usage?.integrations??{})){let o=`agents.${i.id}.integrations.${e}`,s=t[e];if(!s){n.push(`${o}: unknown integration; valid: ${r}`);continue}n.push(...D(`${o}.allowedTools`,a.allowedTools,s));let c=Object.keys(s.events).sort().join(`, `)||`none`;for(let e of a.allowedEvents??[])e in s.events||n.push(`${o}.allowedEvents: unknown event "${e}"; valid: ${c}`)}}return n}function D(e,t,n){if(t===void 0)return[];if(typeof t==`string`)return a.includes(t)?[]:[`${e}: unknown preset "${t}"; valid: ${a.join(`, `)}`];let r=new Set(Object.values(n.tools.presets).flat());return t.filter(e=>!r.has(e)).map(t=>`${e}: unknown tool "${t}"; valid: ${[...r].sort().join(`, `)||`none`}`)}function O(e,t){if(Array.isArray(e))return[...new Set(e)];let n=a.indexOf(e);return[...new Set(a.slice(0,n+1).flatMap(e=>t.tools.presets[e]??[]))]}function k(e,t,n){let r=O(e.definition.integrations[t]?.tools??`observe`,n),i=e.usage?.integrations?.[t]?.allowedTools;if(i===void 0)return r;let a=new Set(O(i,n));return r.filter(e=>a.has(e))}function A(e,t){let n=w(e.definition.integrations[t]),r=e.usage?.integrations?.[t]?.allowedEvents;return r===void 0?n:n.filter(e=>r.includes(e))}function j(e){return{engine:e.usage?.engine??e.definition.engine,model:e.usage?.model??e.definition.model,effort:e.usage?.effort??e.definition.effort,permissions:e.usage?.permissions??e.definition.permissions??`read-only`}}const M={"read-only":0,"workspace-write":1,auto:2};function N(e,t){return t&&M[t]<=M[e]?t:e}const P=`coder`;function F(){let e=o.dirname(s(import.meta.url));for(let t of[o.join(e,`builtin`),e])if(l.statSync(o.join(t,`coder`),{throwIfNoEntry:!1})?.isDirectory())return t;return e}function I(e,t=!1){let n={},r;try{r=l.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return n}for(let i of r){let r=o.join(e,i),a=o.join(r,`agent.json`);l.statSync(a,{throwIfNoEntry:!1})?.isFile()&&(n[i]={json:JSON.parse(l.readFileSync(a,`utf8`)),builtin:t,dir:r})}return n}function L(){return I(F(),!0)}function R(e,t,n){let r=C(e.usage),i=Object.keys(r).filter(t=>!(t in e.definitions));if(i.length){let t=Object.keys(e.definitions).sort().join(`, `)||`none`;throw Error(`Invalid agents:\n agents.${i.sort().join(`, agents.`)}: no agent definition; known ids: ${t}`)}let a=[];for(let[t,n]of Object.entries(e.definitions)){let e=r[t];if(e===!1)continue;let i=S(t,n.json);a.push({id:t,name:i.name??t,definition:i,...typeof e==`object`?{usage:e}:{},...n.dir?{dir:n.dir}:{},builtin:n.builtin})}let o=E(a,t);if(o.length)throw Error(`Invalid agents:\n ${o.join(`
|
|
2
|
-
`)}`);return a}function z(e){let t=e.filter(e=>e in L()).sort();if(t.length)throw Error(`Invalid agents:\n agents.${t.join(`, agents.`)}: built-in agent ids are reserved`)}async function B(r,a){r=o.resolve(r);let s={...L()},c=I(e(`agents`)),u=I(o.join(r,`.coder`,`agents`));z([...Object.keys(c),...Object.keys(u)]),Object.assign(s,c,u);let d={...i(r).agents},f=n(t(r)),p=l.existsSync(f)?JSON.parse(l.readFileSync(f,`utf8`)).agents??{}:{};for(let e of Object.keys(d))!(e in s)&&!(e in p)&&delete d[e];return R({definitions:s,usage:d},a,r)}export{B as a,N as c,A as d,k as f,L as i,S as l,R as n,j as o,z as r,T as s,P as t,C as u};
|
package/dist/local-B0GiaLV0.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Sn as e}from"./dispatch-YW1aqjEg.js";import{t}from"./integrations-B2CavXR1.js";import{a as n,i as r,l as i,s as a}from"./task-DhZ5vhyY.js";import o from"node:path";import s from"node:process";import c from"node:fs";import{execFile as l,spawn as u}from"node:child_process";import d from"node:fs/promises";import{promisify as f}from"node:util";const p=e=>Buffer.from(JSON.stringify(e)).toString(`base64url`),m=e=>JSON.parse(Buffer.from(e,`base64url`).toString(`utf8`)),h=f(l);async function g(e){if(s.platform===`linux`){let t=await d.readFile(`/proc/${e}/stat`,`utf8`).catch(()=>``);return t.slice(t.lastIndexOf(`)`)+2).split(` `)[19]}return(await h(`ps`,[`-p`,String(e),`-o`,`lstart=`]).catch(()=>void 0))?.stdout.trim()||void 0}function _(e){let t=m(e);if(!Number.isInteger(t.pid)||typeof t.dir!=`string`||typeof t.started!=`string`)throw Error(`Invalid local runner handle`);return t}var v=class{workDir;kind=`local`;children=new Map;constructor(e){this.workDir=e}async start(t,i){await d.mkdir(this.workDir,{recursive:!0});let l=await d.mkdtemp(o.join(this.workDir,`task-`)),f=t.runner===`local`?r(t):void 0,m=c.openSync(o.join(l,`runner.log`),`a`),h=u(s.execPath,[e,`agent`,`run`,`--task`,t.id],{cwd:l,detached:!0,env:{PATH:s.env.PATH??``,HOME:s.env.HOME??``,TMPDIR:s.env.TMPDIR??``,...s.env.CODER_HOME?{CODER_HOME:s.env.CODER_HOME}:{},...i,...f?{CODER_CHECKOUT_CACHE:f}:{},CODER_INBOX_SOCKET:n(l)},stdio:[`ignore`,m,m]});await new Promise((e,t)=>{h.once(`spawn`,e),h.once(`error`,t)}),c.closeSync(m);let _={child:h};this.children.set(h.pid,_),h.once(`close`,e=>{_.code=e,a(o.join(l,`repo`)).catch(e=>console.error(`coder runner: checkout cleanup failed`,e))}),h.unref();let v=await g(h.pid);if(!v)throw Error(`Could not identify the local runner process`);return p({pid:h.pid,dir:l,started:v})}async status(e){let{pid:t,dir:n,started:r}=_(e),i=this.children.get(t);if(i?.code===void 0)try{if(s.kill(t,0),await g(t)===r)return{state:`running`}}catch{}return await a(o.join(n,`repo`)),{state:`exited`,...i?.code==null?{}:{code:i.code}}}async logs(e,t=-1){let{dir:n}=_(e),r=x(await d.readFile(o.join(n,`runner.log`),`utf8`).catch(()=>``));return{lines:r.slice(t+1),next:r.length-1}}async stop(e){let{pid:t,started:n}=_(e);if(await g(t)===n)try{s.kill(-t,`SIGTERM`)}catch{try{s.kill(t,`SIGTERM`)}catch{}}}async push(e,t){let{pid:r,dir:a,started:o}=_(e);if(await g(r)!==o)throw Error(`The task process exited`);return i(n(a),t)}};function y(e,t,n={}){return new Promise((r,i)=>{let a=u(e,t,{env:n,stdio:[`ignore`,`pipe`,`pipe`]}),o=``,s=``;a.stdout.on(`data`,e=>o+=String(e)),a.stderr.on(`data`,e=>s+=String(e)),a.once(`error`,i),a.once(`close`,e=>r({code:e,stdout:o,stderr:s}))})}function b(){return Object.values(t).flatMap(e=>e.tools.install?[`(${e.tools.install})`]:[])}function x(e,t=`out`){return e.split(/\r?\n/).filter(Boolean).map(e=>({level:t,line:e}))}export{m as a,b as i,x as n,p as o,y as r,v as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";var t=e({LogView:()=>o,isApproval:()=>n,logEntry:()=>a,stripCwd:()=>i});const n=e=>e.includes(`approval`)||e===`sidecar-decision`||e===`auto-review`,r=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function i(e,t){return t?e.split(`${t}/`).join(``).split(t).join(`.`):e}function a(e){try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t)){let e=`kind`in t&&typeof t.kind==`string`?t.kind:void 0,n=`message`in t&&typeof t.message==`string`?t.message:void 0;if(e!==void 0||n!==void 0)return{...t,kind:e,message:n,at:`at`in t&&typeof t.at==`string`?t.at:void 0}}}catch{}}var o=class{cwd;opts;prevKind=null;lastAssistant=``;lastToolText=``;openCalls=[];callIds=new WeakMap;approval;approvals=new Map;lastUsageTotal=0;constructor(e,t={}){this.cwd=e,this.opts=t}get lastAssistantMessage(){return this.lastAssistant}reduce(e){let t=e.entry,r=t?String(t.kind??`status`):`line`,a=t?r===`tool-result`?this.close(e,t):n(r)?this.decide(e,t,r):void 0:void 0;if(a)return this.prevKind=r,[a];let o={seq:e.seq,at:e.at,kind:`status`,title:``,sourceKind:r,separated:!1,tone:`muted`};if(!t)o.kind=e.level===`err`?`error`:e.level===`sys`?`status`:`line`,o.title=i(e.line,this.cwd),e.level===`err`&&(o.tone=`error`);else if(r===`usage`){let e=t.tokens;if(!e)return[];let n=this.lastUsageTotal>0,r=e.total-this.lastUsageTotal;if(!n||r<Math.max(2e4,this.lastUsageTotal*.2))return this.lastUsageTotal=Math.max(this.lastUsageTotal,e.total),[];this.lastUsageTotal=e.total,o.kind=`usage`,o.tokens=e,o.title=`ctx ${c(e.input+e.cachedInput)} · out ${c(e.output)}`}else if(r===`approval-decision`&&t.decision===`escalate`||r===`approval-escalated`){let e=i(t.summary?String(t.summary):``,this.cwd),n=/^(?:run command: |Run command\. |Apply file changes\. |\w+: )?([\s\S]*)$/.exec(e)[1],a=String(t.method??``),s=a&&!a.includes(`/`)?a:this.openCalls.at(-1)?.tool,c=n.startsWith(`{`)?``:n.split(/\s+/)[0],l=i(t.reason?String(t.reason):``,this.cwd);o.kind=`approval`,o.title=[`Approval`,[s,c].filter(Boolean).join(` `)].filter(Boolean).join(` · `),o.detail=[n,l&&`Policy · ${l}`].filter(Boolean).join(`
|
|
2
|
-
`),o.state=r===`approval-escalated`?`waiting`:`escalated`,r===`approval-escalated`?this.approvals.set(String(t.approvalId),o):this.approval=o}else if(n(r)&&(t.decision||!t.message)){o.kind=`approval`;let e=r===`sidecar-decision`?`sidecar`:r===`auto-review`?`auto-review`:`approval`,n=t.riskLevel?`(${String(t.riskLevel)} risk)`:``,a=i(t.summary?String(t.summary):``,this.cwd),s=a.slice(a.indexOf(`: `)+2),c=a&&s&&this.lastToolText.includes(s)?``:a,l=c?``:String(t.method??``);o.title=`${[e,String(t.decision??``),n,l].filter(Boolean).join(` `)}${c?` · ${c}`:``}`,o.detail=i(t.reason?String(t.reason):``,this.cwd)}else{let e=t.message?String(t.message):String(t.kind??``);if(!e&&!(r===`tool-result`&&(t.exitCode!=null||t.isError)))return[];o.title=i(e,this.cwd),r===`assistant`?(o.kind=`assistant`,o.tone=void 0,this.lastAssistant=o.title):r===`error`||r===`steer`?(o.kind=r,o.tone=r===`error`?`error`:`warning`):r===`reasoning`?(o.kind=`reasoning`,o.durationMs=typeof t.durationMs==`number`?t.durationMs:0):r===`tool`?(o.kind=`tool`,t.tool&&(o.tool=String(t.tool)),this.lastToolText=o.title,t.callId&&this.callIds.set(o,String(t.callId)),this.openCalls.push(o)):r===`tool-result`&&(o.kind=`tool-result`,o.title=this.output(e),o.exitCode=typeof t.exitCode==`number`?t.exitCode:void 0,o.tone=o.exitCode!==void 0&&o.exitCode!==0||t.isError===!0?`error`:`muted`,o.durationMs=typeof t.durationMs==`number`?t.durationMs:0,t.tool&&(o.tool=String(t.tool)))}return this.prevKind!==null&&(o.separated=[`assistant`,`error`,`steer`].includes(r)||r===`reasoning`&&this.prevKind!==`reasoning`||r===`tool`&&[`assistant`,`reasoning`].includes(this.prevKind)),this.prevKind=r,[o]}close(e,t){let n=t.tool?String(t.tool):void 0,r=t.callId?this.openCalls.findIndex(e=>this.callIds.get(e)===String(t.callId)):-1,i=r>=0?r:n?this.openCalls.findIndex(e=>e.tool===n):this.openCalls.length-1;if(i<0)return;let[a]=this.openCalls.splice(i,1),o=typeof t.exitCode==`number`?t.exitCode:void 0,s=typeof t.durationMs==`number`?t.durationMs:e.at-a.at||0;return{...a,result:{ok:!o&&t.isError!==!0,exitCode:o,durationMs:Math.max(0,s),detail:this.output(t.message?String(t.message):``)}}}decide(e,t,n){let r=String(t.approvalId??``),a=t.decision===`accept`;if(n===`sidecar-decision`&&this.approval){let n=i(t.reason?String(t.reason):``,this.cwd),r={...this.approval,detail:[this.approval.detail,n&&`Sidecar · ${n}`].filter(Boolean).join(`
|
|
3
|
-
`)};return t.decision===`escalate`?this.approval=r:(this.approval=void 0,s(r,e,`${a?`accepted`:`denied`} by sidecar`,a))}if(n===`approval-escalated`&&this.approval){let e={...this.approval,state:`waiting`};return this.approval=void 0,this.approvals.set(r,e),e}let o=this.approvals.get(r);if(!(!o||n!==`approval-answered`&&n!==`approval-timeout`))return this.approvals.delete(r),n===`approval-timeout`?s(o,e,`timed out`,!1):s(o,e,`${a?`accepted`:`denied`} by reviewer`,a)}output(e){return i(this.opts.keepAnsi?e:e.replace(r,``),this.cwd)}};function s(e,t,n,r){return{...e,state:n,result:{ok:r,durationMs:Math.max(0,t.at-e.at||0),detail:``}}}function c(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4))}k`:`${(e/1e6).toFixed(1)}M`}export{t as n,a as t};
|
package/dist/login-p2VknR9f.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{St as e}from"./dispatch-YW1aqjEg.js";import{a as t,i as n,r}from"./prompt-K7-bKcTC.js";import{i,r as a}from"./cli-DtTdpTy3.js";import{p as o}from"./output-BKeyLbvt.js";import{i as s,n as c,s as l}from"./args-DEMOfLz2.js";import u from"node:process";const d=t=>{throw t instanceof e&&t.code===`login-failed`?new e(`invalid-option`,t.message,t.hint?{hint:t.hint}:{}):t},f=i({name:`auth login`,globalFlags:{cwd:!1},help:{usage:`coder auth login [--server [url]] [--workspace <slug>] [--device] [--json]`,summary:`Sign in with Wular Auth in your browser. The CLI keeps the tokens in ~/.coder/session.json, and commands that talk to a server then act as you.`,flags:[a,[`--device`,`show a code to approve on another device; the default without a local browser`]],env:[[`CODER_SERVER`,`the server to use instead of https://coder.wular.ai`]],examples:[[`coder auth login`,`sign in to the hosted service`],[`coder auth login --server https://agents.example.com`,`sign in to a self-hosted server`]]},options:{json:c,server:s,workspace:l,yes:c,device:c},run:async({options:e})=>{let{hasBrowser:i,sessions:a}=await import(`./remote-AcWWfKVS.js`).then(e=>e.c);return a.login({server:e.server,yes:e.yes,device:e.device||!i(),open:e=>{u.stdout.write(`Opening your browser to sign in. If it does not open, visit\n${o.light(e)}\n`),n(e)},onCode:(e,t)=>u.stdout.write(`Confirm this code in your browser: ${o.bold(e)}\n${o.light(t)}\n`),organization:e.workspace,...r()?{chooseOrganization:async e=>{let[n]=await t({title:`Workspace`,hint:`Commands for this server use this workspace by default.`,options:e.map(e=>({value:e.slug,label:e.name,hint:e.slug}))});return n}}:{}}).catch(d)},json:e=>({server:e.server,user:e.user,organization:e.organization}),print:e=>{let t=o;u.stdout.write(`${t.green(`✔`)} Signed in to ${t.bold(e.server)} as ${e.user.email}${e.organization?` ${t.dim(`· ${e.organization.name}`)}`:``}\n`)}});export{f as commandLogin,d as ownHint};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{St as t}from"./dispatch-YW1aqjEg.js";import{Bn as n,In as r,Rn as i,ft as a,n as o,t as s,zn as c}from"./store-Cxc2GYyj.js";import{n as l}from"./env-LsVTi18f.js";import{c as u,d,i as f}from"./schema-DoNO0dPh.js";import{n as p,t as m}from"./migrate-rwTojdkz.js";import{v as h}from"./shared-D64pQ0XU.js";import g from"node:process";import{eq as _,isNotNull as v,like as y}from"drizzle-orm";var b=e({migrate:()=>S,rotateKey:()=>C});async function x(e){try{return await e()}catch(e){throw e instanceof t?e:new t(`server`,e instanceof Error?e.message:String(e))}}function S(e={}){return x(async()=>{let n=l(e.env??g.env);if(!n.databaseUrl)throw new t(`invalid-option`,`No database to migrate.`,{hint:`Set DATABASE_URL to the Postgres the server uses.`});let r=await o(n);try{return await p(r,m(n.databaseUrl))}finally{await r.close()}})}function C(e={}){return x(async()=>{let o=l(e.env??g.env);if(!o.encryptionKey)throw new t(`invalid-option`,`SERVER_ENCRYPTION_KEY is required to rotate keys.`,{hint:`Set the new key in SERVER_ENCRYPTION_KEY and the old key in SERVER_ENCRYPTION_KEY_PREVIOUS.`});let p=await s(o);try{let e=new Set([p.defaultOrganizationId]);if(p.connection){let t=p.connection.db,[n,r]=await Promise.all([t.selectDistinct({id:d.organizationId}).from(d),t.select({key:f.key}).from(f).where(y(f.key,`o:%,"config"]:workspace`))]);for(let t of n)e.add(t.id);for(let t of r){let n;try{n=JSON.parse(t.key.slice(2,-10))}catch{continue}Array.isArray(n)&&n.length===2&&typeof n[0]==`string`&&n[1]===`config`&&t.key===h(n[0],`config`,`workspace`)&&e.add(n[0])}}let t=0;for(let n of e)t+=await a(p.store(n),o);let s=p.connection?.db,l=c(o.encryptionKey);for(let e of s?await s.select().from(u).where(v(u.token)):[])n(o,e.token)!==l&&(await s.update(u).set({token:i(o,r(o,e.token))}).where(_(u.id,e.id)),t++);return{moved:t}}finally{await p.close()}})}export{S as n,C as r,b as t};
|
package/dist/match-DMI54zg4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,d as t,f as n,s as r}from"./load-DDZfByUe.js";import{t as i}from"./integrations-B2CavXR1.js";function a(e){let t={};for(let r of Object.keys(e.definition.integrations)){let a=i[r];a&&(t[r]=n(e,r,a))}return t}function o(n,o){if(!i[n.integration]||!t(o,n.integration).includes(n.type))return;let s=r(o.definition.integrations[n.integration],n.type);if(!s||s.match!==void 0&&!new RegExp(s.match).test(n.text))return;let c=o.usage?.permissions??o.definition.permissions;return{flow:s.flow??`default`,tools:a(o),...s.actAs?{actAs:s.actAs}:{},...c?{permissions:e(c,s.permissions)}:s.permissions?{permissions:s.permissions}:{}}}function s(e,t){return t.flatMap(t=>{let n=o(e,t);return n?[{agent:t,...n}]:[]})}export{s as n,o as t};
|
package/dist/mcp--MIvjMWZ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-DtTdpTy3.js";const t=e(`mcp`,{serve:async()=>(await import(`./serve-DeX0lpXj.js`)).commandMcp,add:async()=>(await import(`./add-DiwLZmjp.js`)).commandMcpAdd,"add-json":async()=>(await import(`./add-json-wOUPHwUD.js`)).commandMcpAddJson,list:async()=>(await import(`./list-Cr4c8mT6.js`)).commandMcpList,ls:async()=>(await import(`./list-Cr4c8mT6.js`)).commandMcpList,rm:async()=>(await import(`./remove-7y1b_gHT.js`)).commandMcpRemove,remove:async()=>(await import(`./remove-7y1b_gHT.js`)).commandMcpRemove},{menu:[{usage:`add <name> (--url <url> | -- <command> [args])`,blurb:`add a server`},{usage:`add-json <name> '<json>'`,blurb:`add a server from a .mcp.json entry`},{usage:`list`,blurb:`list configured servers`},{usage:`rm <name>`,blurb:`remove a server`}],details:!0},{aliases:{ls:`list`,remove:`rm`},help:{usage:`coder mcp <add|add-json|list|rm>`,summary:"Manage the `mcp` map in .coder/config.json (or ~/.coder with --user). Entries use the .mcp.json shape (stdio command or remote url) plus an optional tools allowlist; attach them with `coder task run --mcp <names|all>`.",examples:[[`coder mcp add docs -- npx -y docs-mcp`,`add a stdio server from its command line`],[`coder mcp add linear --url https://mcp.linear.app/mcp`,`add a remote server; the engine handles its OAuth login`],[`coder mcp add-json github '{"url":"https://api.githubcopilot.com/mcp/","headers":{"Authorization":"Bearer \${GH_TOKEN}"}}'`,`paste an entry from any .mcp.json`],[`coder run --mcp docs,linear "find why uploads fail"`,`attach by name`]],seeAlso:`task run`}});export{t as commandMcpConfig};
|
package/dist/mcp-DgMoPoUo.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{Sn as t}from"./dispatch-YW1aqjEg.js";import{t as n}from"./integrations-B2CavXR1.js";import{t as r}from"./mcp-server-DGzme0YX.js";import i from"node:process";import a from"node:fs/promises";var o=e({NOTE_FILE_ENV:()=>f,NOTE_TOOLS:()=>m,agentToolServer:()=>l,agentTools:()=>s,noteToolServer:()=>h,taskToolServers:()=>d,tokenEnvName:()=>c,toolServerToken:()=>u});function s(e){return e===`note`?m:n[e]?.tools.serve}function c(e){return`APP_TOKEN_${e.toUpperCase().replace(/[^A-Z0-9]/g,`_`)}`}function l(e,r,a){let{serve:o,server:s}=n[e].tools;if(s)return s(r,a.event,a.token);let c=a.scope??(a.event?.chat?{thread:a.event.chat.thread.id}:void 0);return{name:e,command:i.execPath,args:[t,`agent`,`tools`,e],env:{APP_TOKEN:a.token,CODER_AGENT_TOOLS:r.join(`,`),...c?{CODER_AGENT_SCOPE:JSON.stringify(c)}:{}},tools:Object.keys(o??{})}}function u(e,t){if(!n[t])return;let r=l(t,[],{token:`\0`}),i=Object.entries(r.env??{}).find(([,e])=>e===`\0`)?.[0];return i&&e.find(e=>e.name===r.name)?.env?.[i]||void 0}function d(e,t){return Object.entries(e.tools).flatMap(([r,i])=>{let a=t[r];return n[r]&&a&&i.length?[l(r,i,{token:a,...e.event?{event:e.event}:{},scope:e.toolScopes?.[r]})]:[]})}const f=`CODER_NOTE_FILE`,p=2e3,m={note:{description:`Read this thread's note, or replace it by passing text: at most 5 short lines a future turn in this thread must remember. Empty text clears it.`,inputSchema:r({text:`string`},[]),handler:async e=>{let t=i.env[f];if(!t)throw Error(`${f} is not set`);if(typeof e.text!=`string`)return{note:await a.readFile(t,`utf8`).catch(()=>``)};if(e.text.length>p)throw Error(`A note holds at most ${p} characters`);return await a.writeFile(t,e.text.trim()),{saved:!0}}}};function h(e){return{name:`note`,command:i.execPath,args:[t,`agent`,`tools`,`note`],env:{[f]:e},tools:Object.keys(m)}}export{u as a,c as i,h as n,d as r,o as t};
|
package/dist/migrate-CSwkAInI.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./cli-DtTdpTy3.js";import{n as t}from"./args-DEMOfLz2.js";import n from"node:process";const r=e({name:`server migrate`,globalFlags:{cwd:!1},help:{usage:`coder server migrate [--json]`,summary:`Create or update the tables in the Postgres at DATABASE_URL. Run it before the first start and after every upgrade; the server only warns when it is behind.`,env:[[`DATABASE_URL`,`the Postgres to migrate`]],examples:[[`DATABASE_URL=postgres://... coder server migrate`,`bring a database up to date`]]},options:{json:t},run:async()=>{let{migrate:e}=await import(`./maintenance-C02_cNLp.js`).then(e=>e.t);return e()},json:({applied:e})=>({ok:!0,applied:e}),print:({applied:e})=>n.stdout.write(e?`Applied ${e} migration${e===1?``:`s`}.\n`:`Database is up to date.
|
|
2
|
-
`)});export{r as commandServerMigrate};
|
package/dist/migrate-rwTojdkz.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Cn as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./client-31YzOj-i.js";import n from"node:path";import{fileURLToPath as r}from"node:url";import i from"node:fs";import{sql as a}from"drizzle-orm";import{migrate as o}from"drizzle-orm/postgres-js/migrator";const s=r(new URL(`../migrations`,import.meta.url)),c=i.existsSync(s)?s:n.join(e,`migrations`);async function l(e,n){let r=await t(e,()=>e.execute(n));return Array.isArray(r)?r:r.rows}async function u(e){try{let t=await l(e,a`select count(*)::text as n from drizzle.__drizzle_migrations`);return Number(t[0]?.n??0)}catch{return 0}}function d(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`}catch{return`the database`}}async function f(e,t){if(await u(e))return;let n=(await l(e,a`select table_name as name from information_schema.tables where table_schema = 'coder' order by 1`)).map(e=>e.name);if(n.length)throw Error(`${t} already has a "coder" schema with tables (${n.slice(0,5).join(`, `)}${n.length>5?`, …`:``}) that Coder did not create. Point DATABASE_URL elsewhere or drop that schema.`)}async function p(e){let t=JSON.parse(i.readFileSync(n.join(c,`meta`,`_journal.json`),`utf8`)),r=await l(e,a`select count(*)::text as n, max(created_at)::text as at from drizzle.__drizzle_migrations`).catch(()=>[]),o=Number(r[0]?.n??0),s=Number(r[0]?.at??0);return{applied:o,pending:t.entries.filter(e=>e.when>s).length,total:t.entries.length}}async function m(e,t=`the database`){await f(e.db,t);let n=await u(e.db);try{await o(e.db,{migrationsFolder:c})}catch(e){let n=e instanceof Error&&`cause`in e&&e.cause instanceof Error?e.cause:e;throw Error(`Could not migrate ${t}: ${n instanceof Error?n.message:String(n)}`)}return{applied:await u(e.db)-n}}export{m as n,p as r,d as t};
|
package/dist/models-DGPrMV51.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,G as t,H as n,K as r,Q as i,S as a,St as o,U as s,Z as c,an as l,ct as u,et as d,ht as f,k as p,mt as m,st as h,tt as g,ut as _,vt as v}from"./dispatch-YW1aqjEg.js";import{t as y}from"./wire-DxxfWapP.js";import b from"node:process";const x=new Set([`codex`,`claude`,`custom`]);async function S(e,t={}){let n=`key`in t?t.key:e.envKey?b.env[e.envKey]:void 0,r=t.fetch??fetch,i=c(e.baseUrl,`models`),a=null;for(let t of i)try{let i=await r(t,{headers:n?{Authorization:`Bearer ${n}`}:{},signal:AbortSignal.timeout(5e3)});if(!i.ok){a=i.status===404?{reachable:!0,modelListed:null,models:null,detail:`endpoint reachable (no model list to verify against)`}:{reachable:!1,modelListed:null,models:null,detail:`${t} -> HTTP ${i.status}`};continue}let o=await i.json().catch(()=>null),s=Array.isArray(o?.data)?o.data.map(e=>e.id).filter(e=>typeof e==`string`):null;if(!s)return{reachable:!0,modelListed:null,models:null,detail:`endpoint reachable`};if(!e.model)return{reachable:!0,modelListed:null,models:s,detail:`endpoint reachable; ${s.length} models listed`};let c=s.includes(e.model);return{reachable:!0,modelListed:c,models:s,detail:c?`endpoint reachable; model "${e.model}" listed`:`endpoint reachable, but "${e.model}" is not in its model list`}}catch(e){a={reachable:!1,modelListed:null,models:null,detail:`${t} unreachable (${e instanceof Error?e.message:String(e)})`}}return a}function C(e,t){v(e,e=>{e.models=e.models??{},t(e.models)})}function w(e,t){return e.workspace?f(l(t)):m()}function T(t){let n=t.models??{},a=Object.entries(n).filter(e=>d(e[1])),o=e=>`${e.provider}:${e.model}${e.effort?`:${e.effort}`:``}`,c=Object.entries(n).filter(e=>i(e[1])).map(([t,n])=>{let i=n.provider===`claude`?s:r,a=i[n.model]??n.model,c=e(t)?t:Object.entries(i).find(([,e])=>e===a)?.[0];return{name:t,spec:o(n),replaces:c,disabled:!!n.disabled}}),l=new Map;for(let e of c)e.replaces&&(e.name===e.replaces||!l.has(e.replaces))&&l.get(e.replaces)?.name!==e.replaces&&l.set(e.replaces,e);let u=e=>!!n[e]?.disabled,f=c.filter(e=>![...l.values()].some(t=>t.name===e.name));return{models:n,endpoints:a,providerRows:(e,t)=>[...Object.entries(t).map(([e,t])=>{let n=l.get(e);return n?{alias:n.name,spec:n.spec,overrides:e,disabled:n.disabled}:{alias:e,model:t,builtin:!0,disabled:u(e)}}),...f.filter(t=>t.spec.startsWith(`${e}:`)).map(({name:e,spec:t,disabled:n})=>({alias:e,spec:t,disabled:n}))],toggledSlugs:Object.entries(n).filter(([t,n])=>!d(n)&&!i(n)&&!e(t)).map(([e,t])=>({name:e,disabled:!!t.disabled})),disabled:u}}async function E(e){let{endpoints:t,providerRows:n,toggledSlugs:i}=T(g(e)),a=await Promise.all(t.map(async([e,t])=>({name:e,...t,probe:await S(t)})));return{codex:n(`codex`,r),claude:n(`claude`,s),custom:a,...i.length?{toggles:i}:{}}}async function D(e,t,n,r){let i=await y(t),o=i?.wireApi===`responses`;i?(t.wireApi=i.wireApi,t.baseUrl=i.baseUrl??t.baseUrl):delete t.wireApi,C(n,n=>{n[e]=t});let s=await S(t),c=a(p(r)),l=p(r);return{name:e,entry:t,file:n,probe:s,codex:l,install:c,nativeResponses:o,keyMissing:!!(t.envKey&&!b.env[t.envKey]),ready:s.reachable&&l.available}}const O=`Usage: coder model add <name> --base-url <url> --model <id> [--env-key VAR]`,k=`Usage: coder model update <name> [--base-url <url>] [--model <id>] [--env-key VAR]`,A=`Usage: coder model alias <name> <spec> (e.g. coder model alias fast codex:luna)`,j=`List them: coder model list`;function M(t,n,r){if(!t)throw new o(`invalid-option`,`Missing model name.`,{hint:r});if(!/^[a-z][a-z0-9-]*$/.test(t))throw new o(`invalid-option`,`Invalid model name "${t}". Use lowercase kebab-case (e.g. qwen-local).`);if(x.has(t)||n===`model`&&e(t))throw new o(`invalid-option`,`"${t}" is reserved; pick another name.`)}async function N(e,t,n){M(t,`model`,O);let r=g(e).models?.[t];if(r)throw new o(`invalid-option`,d(r)?`Custom model "${t}" already exists.`:`"${t}" is already configured as an ${i(r)?`alias`:`entry`}; remove it first.`,{hint:`Change it: coder model update ${t} [--base-url|--model|--env-key], or remove it first.`});if(!n.baseUrl||!n.model)throw new o(`invalid-option`,`Missing --base-url or --model.`,{hint:O});return D(t,{baseUrl:h(n.baseUrl),model:n.model,...n.envKey?{envKey:n.envKey}:{}},w({workspace:n.workspace},e),e)}async function P(e,t,n){let r=t?g(e).models?.[t]:void 0,i=r&&d(r)?r:void 0;if(!t||!i)throw new o(`invalid-option`,t?`No custom model named "${t}".`:`Missing model name.`,{hint:t?j:k});if(!n.baseUrl&&!n.model&&!n.envKey)throw new o(`invalid-option`,`Nothing to update: pass --base-url, --model, or --env-key.`,{hint:k});return D(t,{...i,...n.baseUrl?{baseUrl:h(n.baseUrl)}:{},...n.model?{model:n.model}:{},...n.envKey?{envKey:n.envKey}:{}},w({workspace:n.workspace},e),e)}function F(e,t,n={}){if(!t||!g(e).models?.[t])throw new o(`invalid-option`,t?`No custom model named "${t}".`:`Missing model name.`,{hint:t?j:`Usage: coder model remove <name>`});let r=w({workspace:n.workspace},e);return v(r,e=>_(e,t)),{removed:t,file:r}}function I(e,i,a,c={}){M(i,`alias`,A);let l=g(e),f=l.models?.[i];if(f&&d(f))throw new o(`invalid-option`,`"${i}" is a custom model name; pick another alias name.`);if(!a)throw new o(`invalid-option`,`Missing alias spec.`,{hint:A});let p;try{p=u(a,l)}catch(e){throw new o(`invalid-option`,e instanceof Error?e.message:String(e),{hint:A})}if(!p||!p.model)throw new o(`invalid-option`,`Alias spec "${a}" does not resolve to a model.`,{hint:A});if(p.engine===`custom`)throw new o(`invalid-option`,`"${a}" names a custom model, which is already dispatchable by name; aliases target codex/claude models.`);let m=a.split(`:`).some(e=>t.has(e.trim())||n.has(e.trim())),h=p.engine===`claude`?s:r,_={provider:p.engine,model:h[p.model]??p.model,...m&&p.effort?{effort:p.effort}:{}},v=w({workspace:c.workspace},e);return C(v,e=>{e[i]=_}),{alias:i,..._,file:v}}function L(e,t,n={}){let r=t?g(e).models?.[t]:void 0;if(!t||!r||!i(r))throw new o(`invalid-option`,t?`No alias named "${t}".`:`Missing alias name.`,{hint:t?j:`Usage: coder model unalias <name>`});let a=w({workspace:n.workspace},e);return v(a,e=>_(e,t)),{unaliased:t,file:a}}function R(e,t,n,r={}){if(!t)throw new o(`invalid-option`,`Missing model name.`,{hint:`Usage: coder model ${n?`disable`:`enable`} <name>`});let a=!!g(e).models?.[t],s=w({workspace:r.workspace},e);return C(s,e=>{let r=e[t];if(!r){n?e[t]={disabled:!0}:a&&(e[t]={disabled:!1});return}d(r)||i(r)?n?r.disabled=!0:delete r.disabled:n?r.disabled=!0:delete e[t]}),{name:t,disabled:n,file:s}}export{R as a,S as c,F as i,I as n,L as o,E as r,P as s,N as t};
|
package/dist/prompt-K7-bKcTC.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{Mt as e,St as t}from"./dispatch-YW1aqjEg.js";import{p as n,x as r,y as i}from"./output-BKeyLbvt.js";import a from"node:path";import o from"node:process";import s from"node:fs";import{spawn as c}from"node:child_process";var l=class extends t{authenticate;constructor(e,t,n=``,r){super(`server`,t,{status:e,...r?{hint:r}:{}}),this.authenticate=n}};function u(e){try{let t=new URL(e).hostname.toLowerCase();return t===`localhost`||t===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(t)}catch{return!1}}function d(e){let n;try{n=new URL(e)}catch{throw new t(`invalid-option`,`Give the server as a URL, e.g. https://agents.example.com.`)}if(n.protocol!==`https:`&&!(n.protocol===`http:`&&u(n.origin)))throw new t(`invalid-option`,`Coder servers require HTTPS unless they are loopback.`,{hint:`Use https://, or http://localhost for a local server.`});if(n.username||n.password||n.search||n.hash)throw new t(`invalid-option`,`The server must be an origin without credentials, query, or fragment.`);return n.toString().replace(/\/+$/,``)}const f=(e,t,n)=>`/admin/credentials/${encodeURIComponent(e)}${t}${n?`?workspace`:``}`,p=(e,t)=>{let n=new URLSearchParams;`cursor`in t&&typeof t.cursor==`string`&&n.set(`cursor`,t.cursor);for(let[e,r]of Object.entries(t))e!==`cursor`&&r!==void 0&&r!==!1&&r!==``&&n.set(e,r===!0?`1`:Array.isArray(r)?r.join(`,`):String(r));return`${e}?${n}`},m=new Set([`completed`,`failed`,`cancelled`]);var h=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,n,r={}){if(this.cookie=`cookie`in n,this.url=e?d(e):``,!this.cookie&&!this.url)throw new t(`invalid-option`,`Bearer clients need a server URL.`);this.token=`token`in n?n.token:void 0,this.fetchImpl=r.fetch??((e,t)=>fetch(e,t)),this.organization=r.organization,this.renewal=r.renewal,this.onError=r.onError}request(e,t={}){let n=this.read(e,t);return n.catch(()=>{}),n}async read(e,n){this.renewal&&this.renewal.expiresAt()-Date.now()<3e4&&(this.token=await this.renewal.renew());let r=await this.send(e,n);r.status===401&&this.renewal&&/invalid_token/.test(r.headers.get(`www-authenticate`)??``)&&(this.token=await this.renewal.renew(),r=await this.send(e,n));let i=await r.text().catch(()=>``),a={},o;try{i&&r.status!==204&&(a=JSON.parse(i))}catch{if(r.ok)throw new t(`server`,`The server answered ${r.status} with a body that is not JSON.`);this.cookie&&i&&(o=i)}if(!r.ok){let e=new l(r.status,a.error??a.message??o??`The server answered ${r.status}.`,r.headers.get(`www-authenticate`)??``,a.hint);throw this.onError?.(e),e}return a}send(e,n){let r=new Headers(n.headers);return n.body&&!r.has(`content-type`)&&r.set(`content-type`,`application/json`),this.cookie||r.set(`authorization`,`Bearer ${this.token}`),this.organization&&r.set(`x-coder-organization`,this.organization),this.fetchImpl(`${this.url}${e}`,{...n,headers:r,...this.cookie?{credentials:`same-origin`}:{}}).catch(e=>{throw e instanceof t||e.name===`AbortError`?e:new t(`server`,this.url?`No Coder server answers at ${this.url}: ${e.message}`:`The server did not answer. Check the connection and try again.`)})}post(e,t){return this.request(e,{method:`POST`,...t===void 0?{}:{body:JSON.stringify(t)}})}me(){return this.request(`/me`)}info(){return this.request(`/api/auth/capabilities`)}linkAccount(e){return this.post(`/connect`,{token:e})}signOut(){return this.post(`/api/auth/sign-out`,{})}agents={list:e=>this.request(p(`/admin/agents`,{...e,...e?.connect?{connect:1}:{}})),get:(e,t)=>this.request(p(`/admin/agents/${encodeURIComponent(e)}`,{...t?.versions===!1?{versions:0}:{},...t?.content===!1?{content:0}:{}})),versions:(e,t={})=>this.request(p(`/admin/agents/${encodeURIComponent(e)}/versions`,t)),remove:e=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:`DELETE`}),preview:(e,t)=>this.request(p(`/admin/agents/import`,{repo:e,ref:t})),version:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/versions/${t}`),put:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify(t)}).then(t=>({id:e,version:t.version,unchanged:t.unchanged})),settings:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/settings`,{method:`PATCH`,body:JSON.stringify(t)}),import:(e,t,n)=>this.post(`/admin/agents/import`,{repo:e,ref:t,...n?{agents:n}:{}})};folders={list:()=>this.request(`/admin/folders`),check:e=>this.post(`/admin/folders/check`,{path:e}),clone:e=>this.post(`/admin/folders/clone`,{url:e}),pick:()=>this.post(`/admin/folders/pick`,{})};tasks={run:e=>this.post(`/admin/tasks`,e),list:e=>this.request(p(`/admin/tasks`,{limit:20,...e,...e?.archived?{archived:1}:{},...e?.summary?{summary:1}:{},...e?.counts?{counts:1}:{}})),get:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`),logs:(e,t=-1,n)=>this.request(p(`/admin/tasks/${encodeURIComponent(e)}/logs`,{after:t,limit:n})),stream:(e,t=-1,n)=>this.send(`/admin/tasks/${encodeURIComponent(e)}/stream?after=${t}`,{headers:{accept:`text/event-stream`},signal:n}),events:(e,t,n)=>this.send(p(`/admin/events`,{tasks:e}),{headers:{accept:`text/event-stream`,...t?{"last-event-id":t}:{}},signal:n}),cancel:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/cancel`),steer:(e,t,n={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/steer`,{text:t,...n}),ask:(e,t)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/ask`,{question:t}),approve:(e,t,n)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/approve`,{approvalId:t,decision:n}),archive:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/archive`),delete:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`,{method:`DELETE`}),create:e=>this.post(`/admin/tasks`,e),wait:async(e,n={})=>{let r=-1;for(;;){let i=await this.tasks.stream(e,r);if(!i.ok||!i.body){let n=await this.tasks.get(e);if(m.has(n.status))return n;if(i.status===401)continue;throw new t(`server`,`The task stream answered ${i.status}.`)}let a=!1;for await(let e of g(i.body))if(e.event===`log`){let t=JSON.parse(e.data);r=t.seq,n.onLog?.(t)}else e.event===`end`&&(a=!0);if(a)return this.tasks.get(e)}}};credentials={list:e=>this.request(p(`/admin/credentials`,e??{})),add:e=>this.post(`/admin/credentials`,e),remove:(e,{workspace:t}={})=>this.request(f(e,``,t),{method:`DELETE`}),setDefault:(e,{workspace:t}={})=>this.post(f(e,`/default`,t)),login:e=>this.post(`/admin/logins`,{engine:e}),loginStatus:e=>this.request(`/admin/logins/${encodeURIComponent(e)}`),loginCode:(e,t)=>this.post(`/admin/logins/${encodeURIComponent(e)}`,{code:t}),cancelLogin:e=>this.request(`/admin/logins/${encodeURIComponent(e)}`,{method:`DELETE`})};runners={list:()=>this.request(`/admin/runners`),add:e=>this.post(`/admin/runners`,e),pair:e=>this.post(`/admin/runners/pair`,e),update:(e,t)=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),test:e=>this.post(`/admin/runners/${encodeURIComponent(e)}/test`,{}),remove:e=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:`DELETE`})};integrations={list:()=>this.request(`/admin/integrations`)};repositories={list:()=>this.request(`/admin/repositories`)};engines={status:()=>this.request(`/admin/engines/status`),login:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/login`,{}),logout:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/logout`,{})};apps={list:e=>this.request(p(`/admin/apps`,{agent:e})),install:(e,t)=>this.post(p(`/admin/apps/${encodeURIComponent(e)}/install`,{back:t}))};installations={list:e=>this.request(p(`/admin/installations`,{agent:e}))};connections={add:e=>this.post(`/admin/connections`,e)};config={get:()=>this.request(`/admin/config`),put:e=>this.request(`/admin/config`,{method:`PUT`,body:JSON.stringify(e)}),patch:e=>this.request(`/admin/config`,{method:`PATCH`,headers:{"content-type":`application/merge-patch+json`},body:JSON.stringify(e)})};models={list:()=>this.request(`/admin/models`),add:e=>this.post(`/admin/models`,e),probe:e=>this.post(`/admin/models/probe`,e),remove:e=>this.request(`/admin/models/${encodeURIComponent(e)}`,{method:`DELETE`}),alias:(e,t)=>this.post(`/admin/models/${encodeURIComponent(e)}/alias`,{spec:t}),enable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/enable`),disable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/disable`)};mcp={list:()=>this.request(`/admin/mcp`),add:e=>this.post(`/admin/mcp`,e),remove:e=>this.request(`/admin/mcp/${encodeURIComponent(e)}`,{method:`DELETE`}),search:e=>this.request(p(`/admin/mcp-registry`,{q:e}))};flows={list:e=>this.request(p(`/admin/flows`,{repo:e})),run:(e,t)=>this.post(`/admin/flows/${encodeURIComponent(e)}/run`,t)};pulls={list:e=>this.request(p(`/admin/pulls`,{repo:e}))};review(e){return this.post(`/admin/review`,e)}usage(e={}){return this.request(p(`/admin/usage/totals`,{...e,since:e.since??Date.now()-6048e5}))}usageRows(e){return this.request(p(`/admin/usage`,{installation:e}))}};async function*g(e){let t=new TextDecoder,n=``;for await(let r of e){n+=t.decode(r,{stream:!0});let e;for(;(e=n.indexOf(`
|
|
2
|
-
|
|
3
|
-
`))>=0;){let t=n.slice(0,e);n=n.slice(e+2);let r=`message`,i,a=[];for(let e of t.split(`
|
|
4
|
-
`))e.startsWith(`event: `)?r=e.slice(7):e.startsWith(`data: `)?a.push(e.slice(6)):e.startsWith(`id: `)&&(i=e.slice(4));(a.length||i)&&(yield{event:r,data:a.join(`
|
|
5
|
-
`),...i?{id:i}:{}})}}}function _(){return e(`session.json`)}function v(){try{let e=JSON.parse(s.readFileSync(_(),`utf8`));return Object.fromEntries(Object.entries(e).filter(e=>!!(e[1].token&&e[1].refreshToken&&e[1].user)))}catch{return{}}}function y(){try{return JSON.parse(s.readFileSync(_(),`utf8`))}catch{return{}}}const b=e=>e.replace(/\/+$/,``),x=`https://coder.wular.ai`,S=e=>b((e===!0?void 0:e)??process.env.CODER_SERVER??`https://coder.wular.ai`);function C(e){return d(S(e))}function w(e){let t=b(e);return t===`https://coder.wular.ai`||!!y()[t]}function T(e){let t=y(),n=b(e),r=t[n]??{};O({...t,[n]:{...r,confirmedAt:Date.now()}})}function E(e){return v()[b(e)]}function D(e){let t=y(),n=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,{confirmedAt:t.confirmedAt??Date.now()}]));O(Object.fromEntries(Object.entries({...n,...e}).map(([e,n])=>[e,{...n,...t[e]?{confirmedAt:t[e].confirmedAt??Date.now()}:{}}])))}function O(e){let t=_();s.mkdirSync(a.dirname(t),{recursive:!0}),s.writeFileSync(t,`${JSON.stringify(e,null,2)}\n`,{mode:384}),s.chmodSync(t,384)}function k(e){let t=i()??80;return Math.max(1,Math.ceil(r(e)/t))}const A={tab:[` `],up:[`\x1B[A`,`k`],down:[`\x1B[B`,`j`],enter:[`\r`,`
|
|
6
|
-
`],space:[` `],backspace:[``,`\b`],cancel:[``,`\x1B`]};var j=class extends Error{constructor(){super(`Cancelled.`)}};function M(){return!!(o.stdin.isTTY&&o.stdout.isTTY)}function N(e){let t=[];for(let n=0;n<e.length;)if(e[n]===`\x1B`&&e[n+1]===`[`){let r=n+2;for(;r<e.length&&!/[@-~]/.test(e[r]);)r++;t.push(e.slice(n,r+1)),n=r+1}else t.push(e[n]),n++;return t}const P=[];function F(){return P.length?Promise.resolve(P.shift()):new Promise(e=>{let t=n=>{o.stdin.off(`data`,t);let r=N(n.toString(`utf8`));P.push(...r.slice(1)),e(r[0])};o.stdin.on(`data`,t)})}async function I(e){return(await L(e)).values}async function L(e){let t=n,r=o.stdout,i=Math.max(3,e.window??8),a=new Set(e.selected??[]),s=Math.max(0,e.options.findIndex(e=>a.has(e.value))),c=0,l=``,u=0,d=``,f=new Map(e.options.flatMap(e=>e.input?.value?[[e.value,e.input.value]]:[])),p=!1,m=e.options.some(e=>e.input),h=()=>e.options.filter(e=>!l||e.value.toLowerCase().includes(l.toLowerCase())||(e.label??``).toLowerCase().includes(l.toLowerCase())),g=(n=!1)=>{u&&r.write(`\x1b[${u}A\x1b[J`);let o=h();s=Math.min(s,Math.max(0,o.length-1)),s<c&&(c=s),s>=c+i&&(c=s-i+1);let g=m?` · tab to edit`:``,_=p?`type to edit · enter when done · esc to discard`:e.multi?`↑↓ to move · space to toggle · type to filter${g} · enter to continue · esc to cancel`:`↑↓ to move · type to filter${g} · enter to choose · esc to cancel`,v=[`${t.bold(e.title)} ${t.dim(_)}`];if(n){let n=[...a].map(e=>f.get(e)?`${e} (${f.get(e)})`:e).join(`, `)||`-`;r.write(`${t.green(`✔`)} ${t.bold(e.title)} ${t.cyan(n)}\n\n`),u=0;return}e.hint&&v.push(` ${t.light(e.hint)}`),e.multi&&v.push(` ${t.light(`selected:`)} ${[...a].join(`, `)||t.dim(`none`)}`),l&&v.push(` ${t.light(`filter:`)} ${l}${t.dim(`▏`)}`),o.length||v.push(` ${t.dim(`no matches`)}`),c>0&&v.push(` ${t.dim(`↑ ${c} more`)}`);let y=Math.max(0,...o.map(e=>(e.label??e.value).length));o.slice(c,c+i).forEach((n,r)=>{let i=c+r===s,o=`${e.multi?a.has(n.value)?`◉`:`◯`:i?`●`:`○`} ${(n.label??n.value).padEnd(y)}${n.hint?` ${t.light(n.hint)}`:``}`,l=f.get(n.value)??``,u=n.input&&(l||i&&p)?` ${t.light(`${n.input.label}:`)} ${l}${i&&p?t.dim(`▏`):``}`:n.input&&i&&n.input.placeholder?` ${t.dim(n.input.placeholder)}`:``;v.push(`${i?t.cyan(`❯ `):` `}${i?t.cyan(o):o}${u}`)});let b=o.length-(c+i);b>0&&v.push(` ${t.dim(`↓ ${b} more`)}`),d&&v.push(` ${t.red(d)}`),r.write(`${v.join(`
|
|
7
|
-
`)}\n`),u=v.reduce((e,t)=>e+k(t),0)},_=o.stdin,v=_.isRaw;_.setRawMode(!0),_.resume(),r.write(`\x1B[?25l`);try{for(g();;){let t=await F();d=``;let n=h(),r=n[s];if(p&&r?.input){let e=f.get(r.value)??``;if(A.cancel.includes(t))f.delete(r.value),p=!1;else if(A.enter.includes(t)){let t=e?r.input.validate?.(e):void 0;t?d=t:p=!1}else A.backspace.includes(t)?f.set(r.value,e.slice(0,-1)):t.length===1&&t>=` `&&f.set(r.value,e+t);g();continue}if(A.cancel.includes(t))throw new j;if(A.tab.includes(t)&&r?.input){p=!0,e.multi&&a.add(r.value),g();continue}if(A.up.includes(t)&&!(t===`k`&&l))s=Math.max(0,s-1);else if(A.down.includes(t)&&!(t===`j`&&l))s=Math.min(n.length-1,s+1);else if(A.enter.includes(t))if(!e.multi&&n[s]&&(a.clear(),a.add(n[s].value)),e.required&&!a.size)d=`Pick at least one.`;else{g(!0);let e={};for(let[t,n]of f)n&&a.has(t)&&(e[t]=n);return{values:[...a],inputs:e}}else if(e.multi&&A.space.includes(t)&&n[s]){let e=n[s].value;a.has(e)?a.delete(e):a.add(e)}else A.backspace.includes(t)?l=l.slice(0,-1):t.length===1&&t>=` `&&t!==` `&&(l+=t,s=0,c=0);g()}}finally{r.write(`\x1B[?25h`),_.setRawMode(!!v),_.pause()}}async function R(e,t=``,r,i){let a=n;i&&o.stdout.write(`${a.bold(e)}\n ${a.light(i)}\n`);let s=(await import(`node:readline/promises`)).createInterface({input:o.stdin,output:o.stdout}),c=i?k(e)+k(` ${i}`):0;try{for(;;){let n=i?` ${t?a.dim(`[${t}] `):``}`:`${a.bold(e)} ${t?a.dim(`[${t}] `):``}`,l=(await s.question(n)).trim()||t;c+=k(`${i?` `:`${e} `}${t?`[${t}] `:``}${l}`);let u=r?.(l);if(!u)return o.stdout.write(`\x1b[${c}A\x1b[J${a.green(`✔`)} ${a.bold(e)} ${a.cyan(l||`-`)}\n\n`),l;o.stdout.write(` ${a.red(u)}\n`),c+=k(` ${u}`)}}finally{s?.close()}}function z(e){let t=o.env.BROWSER;if(t===`none`||o.env.CI||o.env.NODE_ENV===`test`)return!1;let[n,r]=t?o.platform===`darwin`?[`open`,[`-a`,t,e]]:[t,[e]]:o.platform===`darwin`?[`open`,[e]]:o.platform===`win32`?[`cmd`,[`/c`,`start`,``,e]]:[`xdg-open`,[e]];try{return c(n,r,{detached:!0,stdio:`ignore`}).unref(),!0}catch{return!1}}export{I as a,w as c,v as d,_ as f,u as g,h,z as i,T as l,D as m,R as n,L as o,C as p,M as r,x as s,j as t,E as u};
|
package/dist/push-D3vxfhc_.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-DtTdpTy3.js";import{p as n}from"./output-BKeyLbvt.js";import{i as r,n as i,s as a,t as o}from"./args-DEMOfLz2.js";import s from"node:process";const c=e({name:`agent push`,help:{usage:`coder agent push [id] [--server [url]] [--json] [--cwd <dir>]`,summary:`Upload one workspace agent, or every agent in .coder/agents when no id is given. The server creates a new immutable version only when its definition, prompt, or files changed.`,flags:[t],examples:[[`coder agent push helper`,`upload helper`]]},options:{...o,server:r,workspace:a,yes:i},args:1,run:async({options:e,args:[t],cwd:n})=>{let{agents:r}=await import(`./agent-D0pQ_ewc.js`).then(e=>e.t);return r.push(t,{...e,cwd:n,organization:e.workspace})},print:e=>{for(let t of e)s.stdout.write(t.unchanged?`Pushed ${n.bold(t.id)} unchanged (version ${t.version})\n`:`Pushed ${n.bold(t.id)} as version ${t.version}\n`)}});export{c as commandAgentPush};
|
package/dist/queue-EvplGOuk.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import{Ct as e,pn as t,xt as n}from"./dispatch-YW1aqjEg.js";import{Hn as r,a as i,u as a}from"./store-Cxc2GYyj.js";import{_ as o,g as s,h as c,i as l,m as u,o as d,p as f,s as p}from"./schema-DoNO0dPh.js";import{i as m,r as h,t as g}from"./client-31YzOj-i.js";import{b as _,c as v,f as y,m as b,v as x,y as S}from"./shared-D64pQ0XU.js";import{randomBytes as C}from"node:crypto";import{and as w,asc as T,desc as E,eq as D,getTableColumns as O,gt as k,ilike as A,inArray as j,isNotNull as M,isNull as N,lt as P,or as F,sql as I}from"drizzle-orm";import{CasingCache as L}from"drizzle-orm/casing";function R(e,t){if(typeof t==`number`)return I`to_jsonb(coalesce(case when jsonb_typeof(${e}) = 'number' then (${e} #>> '{}')::numeric end, 0) + ${t}::numeric)`;if(!t||typeof t!=`object`||Array.isArray(t))return e;let n=Object.entries(t).map(([t,n])=>I`${t}::text, ${R(I`(${e} -> ${t}::text)`,n)}`);return I`(case when jsonb_typeof(${e}) = 'object' then ${e} else '{}'::jsonb end || jsonb_build_object(${I.join(n,I`, `)}))`}const z=e=>I`(case ${e} ${I.join([...i,...t].map(e=>I`when ${e} then ${I.raw(String(n(e)))}`),I` `)} end)`,B=e=>I`date_trunc('milliseconds', ${e})`,V=e=>[T(z(e.status)),E(B(e.createdAt)),E(e.publicId)];var H=class{db;constructor(e){this.db=e}async metrics(e,t){let n=await this.db.select({status:f.status,total:I`count(*)::int`,recent:I`count(*) filter (where ${f.createdAt} >= ${new Date(t).toISOString()}::timestamptz)::int`}).from(f).where(D(f.organizationId,e)).groupBy(f.status),r={tasks:{queued:0,running:0,waiting:0,completed:0,failed:0,cancelled:0},queueDepth:0};for(let e of n)r.tasks[e.status]=e.recent,e.status===`queued`&&(r.queueDepth=e.total);return r}where(e,t){return w(D(f.organizationId,e),D(f.publicId,t))}fence(e,t,n={}){return w(this.where(e,t),n.generation===void 0?void 0:D(f.generation,n.generation),n.attempts===void 0?void 0:D(f.attempts,n.attempts),n.tokenHash===void 0?void 0:n.tokenHash===null?N(f.tokenHash):D(f.tokenHash,n.tokenHash),n.handle===void 0?void 0:n.handle===null?N(f.handle):D(f.handle,n.handle),n.lastSeenAt===void 0?void 0:n.lastSeenAt===null?N(f.lastSeenAt):D(f.lastSeenAt,new Date(n.lastSeenAt)),n.updatedAt===void 0?void 0:D(f.updatedAt,new Date(n.updatedAt)),n.statuses?j(f.status,n.statuses):void 0)}async enqueue(e,t,n,r,i){let a=this.insertion(e,t,n,r,i),[o]=i===void 0?await b(this.db,a):await h(this.db,[I`select pg_advisory_xact_lock(1, hashtext(${e}))`],a);if(!o?.allowed)throw Error(`Organization task queue is full`);return!!o.inserted}insertion(e,t,n,r,i,a){let o=t.event,s=new Date(n).toISOString(),c=e=>I`${e===void 0?null:JSON.stringify(e)}::jsonb`,m=r?I`
|
|
2
|
-
receipt as (
|
|
3
|
-
insert into ${l} (key, value, expires_at)
|
|
4
|
-
select ${x(e,`delivery`,r.key)}, ${c({at:n})}, ${new Date(n+r.ttlMs).toISOString()}::timestamptz
|
|
5
|
-
from capacity where allowed ${a?I`and (${a.create} or exists (select 1 from target))`:I``}
|
|
6
|
-
on conflict (key) do update set value = excluded.value, expires_at = excluded.expires_at
|
|
7
|
-
where ${l.expiresAt} <= ${s}::timestamptz
|
|
8
|
-
returning key
|
|
9
|
-
),`:I``;return I`
|
|
10
|
-
with ${a?I`target as materialized (${a.target}),`:I``} capacity as (
|
|
11
|
-
select ${i===void 0?I`true`:I`(select count(*) from ${f} where organization_id = ${e} and status = 'queued') < ${i} ${r?I`or exists (select 1 from ${l} where key = ${x(e,`delivery`,r.key)} and expires_at > ${s}::timestamptz)`:I``}`} ${a?I`or exists (select 1 from target) or not ${a.create}`:I``} as allowed
|
|
12
|
-
), ${m} ${a?I`advanced as (
|
|
13
|
-
update ${f} set inbox_seq = inbox_seq + 1, updated_at = ${s}::timestamptz where id in (select id from target) and exists (select 1 from receipt)
|
|
14
|
-
returning id, inbox_seq, generation
|
|
15
|
-
), forwarded as (
|
|
16
|
-
insert into ${u} (organization_id, task_id, seq, generation, at, kind, value)
|
|
17
|
-
select ${e}, id, inbox_seq, generation, ${s}::timestamptz, 'steer', ${c({text:o?.text})} from advanced returning seq
|
|
18
|
-
),`:I``} inserted as (
|
|
19
|
-
insert into ${f} (organization_id, public_id, source, status, agent, flow, runner, permissions,
|
|
20
|
-
app_id, installation_id, event, prompt, args, mcp, author, definition, credential, requester,
|
|
21
|
-
runner_id, usage, tools, tool_scopes, context, files, attempts, created_at, updated_at)
|
|
22
|
-
select ${e}, ${t.id}, ${t.source}, 'queued', ${t.agent}, ${t.flow}, ${t.runner}, ${t.permissions??null},
|
|
23
|
-
${o?I`coalesce((select id from ${d} where key = ${o.appId} and organization_id in (${e}, '')), 0)`:I`null`},
|
|
24
|
-
${o?I`coalesce((select id from ${p} where key = ${`${o.appId}:${o.installationId}`} and organization_id = ${e}), 0)`:I`null`},
|
|
25
|
-
${c(o)}, ${t.prompt??null}, ${c(t.args)}, ${c(t.mcp)}, ${t.author??null}, ${c(t.definition)},
|
|
26
|
-
${t.credential??null}, ${t.requester??null}, ${t.runnerId??null}, ${c(t.usage)}, ${c(t.tools)},
|
|
27
|
-
${c(t.toolScopes)}, ${c(t.context)}, ${c(t.files)}, 0, ${s}::timestamptz, ${s}::timestamptz
|
|
28
|
-
from capacity where allowed ${a?I`and ${a.create} and not exists (select 1 from target)`:I``} ${r?I`and exists (select 1 from receipt)`:I``}
|
|
29
|
-
returning id
|
|
30
|
-
) select allowed, exists (select 1 from inserted) as inserted ${a?I`, exists (select 1 from forwarded) as steered`:I``} from capacity`}async deliver(e,t,n,r,i,o,s=!0){if(!i)return s&&await this.enqueue(e,t,n,r,o)?{taskId:t.id}:{};let c=t.event,l=I`select id from ${f} where organization_id = ${e} and status in ('queued', 'running', 'waiting')
|
|
31
|
-
and agent = ${t.agent} and source = ${t.source} and flow = 'default'
|
|
32
|
-
and requester is not distinct from ${t.requester??null}
|
|
33
|
-
and event->>'appId' is not distinct from ${c?.appId??null}
|
|
34
|
-
and event->>'installationId' is not distinct from ${c?.installationId??null}
|
|
35
|
-
and event->'chat'->'thread'->>'id' is not distinct from ${c?.chat?.thread.id??null}
|
|
36
|
-
and event->'actor'->>'id' = ${c?.actor.id||null}
|
|
37
|
-
order by created_at desc, public_id desc limit 1 for update`,u=this.insertion(e,t,n,r,o,{target:l,create:s}),d=[I`select pg_advisory_xact_lock(3, hashtext(${JSON.stringify([e,a(t)])}))`];o!==void 0&&s&&d.push(I`select pg_advisory_xact_lock(1, hashtext(${e}))`);let[p]=await h(this.db,d,u);if(!p?.allowed)throw Error(`Organization task queue is full`);return p.inserted?{taskId:t.id}:p.steered?{steered:!0}:{}}async claim(e,t,n=!1,i){let a=i===void 0?I`true`:I`(select count(*) from ${f} active where active.organization_id = ${f.organizationId} and active.status in ('running', 'waiting')) < ${i}`;if(!n){let[e]=await m(this.db,()=>b(this.db,I`select exists (select 1 from ${f} where status = 'queued' and ${a})
|
|
38
|
-
and ${t===void 0?I`true`:I`(select count(*) from ${f} where status in ('running', 'waiting')) < ${t}`} as ready`));if(!e?.ready)return}let o=C(32).toString(`base64url`),s=I`translate(rtrim(replace(encode(convert_to(format('{"task":%s,"organization":%s,"attempt":%s}',
|
|
39
|
-
to_json(public_id), to_json(organization_id), attempts + 1), 'UTF8'), 'base64'), E'\\n', ''), '='), '+/', '-_') || '.' || ${o}`,c=I`with stamp as materialized (select date_trunc('milliseconds', clock_timestamp()) as at), picked as materialized (
|
|
40
|
-
select id, ${s} as bearer from ${f} where status = 'queued'
|
|
41
|
-
and ${a}
|
|
42
|
-
${t===void 0?I``:I`and (select count(*) from ${f} where status in ('running', 'waiting')) < ${t}`}
|
|
43
|
-
order by created_at, id limit 1 for update
|
|
44
|
-
), claimed as (
|
|
45
|
-
update ${f} set status = 'running', attempts = attempts + 1, locked_at = (select at from stamp),
|
|
46
|
-
started_at = (select at from stamp), updated_at = (select at from stamp), last_seen_at = (select at from stamp),
|
|
47
|
-
token_hash = translate(rtrim(encode(sha256(convert_to(picked.bearer, 'UTF8')), 'base64'), '='), '+/', '-_')
|
|
48
|
-
from picked where ${f.id} = picked.id returning ${f}.*
|
|
49
|
-
) select to_jsonb(claimed) as record, exists (select 1 from ${f} where status = 'queued' and id <> claimed.id
|
|
50
|
-
and ${i===void 0?I`true`:I`(select count(*) from ${f} active where active.organization_id = ${f.organizationId} and active.status in ('running', 'waiting')) + case when ${f.organizationId} = claimed.organization_id then 1 else 0 end < ${i}`})
|
|
51
|
-
and ${t===void 0?I`true`:I`(select count(*) from ${f} where status in ('running', 'waiting')) + 1 < ${t}`} as more from claimed`,[l]=await h(this.db,t===void 0&&i===void 0?[]:[I`select pg_advisory_xact_lock(2, 0)`],c);if(!l)return;let u=new L(g),d=Object.fromEntries(Object.entries(O(f)).map(([e,t])=>{let n=l.record[u.getColumnCasing(t)];return[e,n===null?null:t.mapFromDriverValue(n)]}));return{organizationId:d.organizationId,status:_(d),token:r(d.publicId,d.organizationId,d.attempts,o).token,more:l.more}}async touch(e,t,n,r,i,a=!1){let o=j(f.status,[`running`,`waiting`]),s=new Date(i).toISOString(),[c]=await this.db.update(f).set({lastSeenAt:I`case when ${o} then ${s}::timestamptz else ${f.lastSeenAt} end`,updatedAt:I`case when ${o} then ${s}::timestamptz else ${f.updatedAt} end`}).where(this.fence(e,t,{tokenHash:n,attempts:r,statuses:a?[`running`,`waiting`,`completed`,`failed`,`cancelled`]:[`running`,`waiting`]})).returning();return c&&_(c)}async patchTask(e,t,n,r,i={}){let{answer:a,archivedAt:o,autoArchived:s,lastSeenAt:c,...l}=n,[u]=await this.db.update(f).set({...Object.fromEntries(Object.entries(l).map(([e,t])=>[e,t??null])),...a===void 0?{}:{answer:I`coalesce(${f.answer}, '[]'::jsonb) || ${JSON.stringify([a])}::jsonb`},...Object.hasOwn(n,`archivedAt`)?{archivedAt:o===void 0?null:new Date(o)}:{},...Object.hasOwn(n,`lastSeenAt`)?{lastSeenAt:c===void 0?null:new Date(c)}:{},updatedAt:new Date(r)}).where(this.fence(e,t,i)).returning({id:f.id});return!!u}async archiveStopped(n,r,i){await this.db.update(f).set({archivedAt:new Date(r)}).where(w(D(f.organizationId,n),i?j(f.publicId,i):void 0,N(f.archivedAt),j(f.status,[...t]),P(I`coalesce(${f.finishedAt}, ${f.updatedAt})`,I`${new Date(r-e).toISOString()}::timestamptz`)))}async requeue(e,t,n,r={}){let[i]=await this.db.update(f).set({status:`queued`,lockedAt:null,handle:null,tokenHash:null,lastSeenAt:null,updatedAt:new Date(n)}).where(this.fence(e,t,{...r,statuses:[`running`,`waiting`]})).returning({id:f.id});return!!i}async finish(e,t,n,r,i={}){let a=new Date(r),[o]=await this.db.update(f).set({status:n.status,result:n.result??null,error:n.error??null,tokens:n.tokens??null,lastSeenAt:a,lockedAt:null,finishedAt:a,updatedAt:a}).where(this.fence(e,t,{...i,statuses:[`queued`,`running`,`waiting`]})).returning({id:f.id});return!!o}async continueTask(e,t,n,r,i){let a=I`(select value from ${l} where key = ${S(e,`note`)} ||
|
|
52
|
-
case when ${f.source} = ${f.event}->>'integration' then
|
|
53
|
-
(${f.event}->>'appId') || ':' || (${f.event}->>'installationId') || ':' || coalesce(${f.event}->'chat'->'thread'->>'id', ${f.event}->>'deliveryId')
|
|
54
|
-
else 'task:' || ${f.publicId} end
|
|
55
|
-
and (${l.expiresAt} is null or ${l.expiresAt} > ${new Date(r).toISOString()}::timestamptz))`,o=I`(${JSON.stringify(n.context??{})}::jsonb - 'note') || jsonb_strip_nulls(jsonb_build_object('note', nullif(${a}, '""'::jsonb)))`,[s]=await this.db.update(f).set({prompt:n.prompt??null,context:o,status:`queued`,attempts:0,generation:I`${f.generation} + 1`,inboxAck:-1,result:null,error:null,tokens:null,handle:null,tokenHash:null,lastSeenAt:null,logCursor:null,lockedAt:null,startedAt:null,finishedAt:null,cancelRequestedAt:null,approval:null,answer:null,archivedAt:null,updatedAt:new Date(r)}).where(this.fence(e,t,{...i,statuses:[`completed`,`failed`,`cancelled`]})).returning({context:f.context});return s&&(n.context=s.context??void 0),!!s}async completeTask(e,t,n,r){let{outcome:i,usage:a,note:s}=n,c=new Date(r).toISOString(),d=s&&x(e,`note`,s.key),p=s?s.value?I`, note as (
|
|
56
|
-
insert into ${l} (key, value, expires_at)
|
|
57
|
-
select ${d}, ${JSON.stringify(s.value)}::jsonb, ${new Date(r+s.ttlMs).toISOString()}::timestamptz from finished
|
|
58
|
-
on conflict (key) do update set value = excluded.value, expires_at = excluded.expires_at
|
|
59
|
-
)`:I`, note as (delete from ${l} where key = ${d} and exists (select 1 from finished))`:I``,[m]=await b(this.db,I`
|
|
60
|
-
with finished as (
|
|
61
|
-
update ${f} set status = ${i.status}, result = ${JSON.stringify(i.result??null)}::jsonb,
|
|
62
|
-
error = ${i.error??null}, tokens = ${JSON.stringify(i.tokens??null)}::jsonb,
|
|
63
|
-
last_seen_at = ${c}::timestamptz, locked_at = null, finished_at = ${c}::timestamptz, updated_at = ${c}::timestamptz
|
|
64
|
-
where ${this.fence(e,t,{attempts:n.attempts,tokenHash:n.tokenHash,statuses:[`running`,`waiting`]})}
|
|
65
|
-
returning id, installation_id, generation
|
|
66
|
-
), inbox as (delete from ${u} where (task_id, generation) in (select id, generation from finished)), recorded as (
|
|
67
|
-
insert into ${o} (organization_id, task_id, installation_id, agent, target, engine, model, credential, runner_ms, tokens, at, updated_at)
|
|
68
|
-
select ${e}, id, installation_id, ${a.agent}, ${a.target}, ${a.engine??null}, ${a.model??null},
|
|
69
|
-
${a.credential}, ${a.runnerElapsedMs}, ${JSON.stringify(a.tokens??null)}::jsonb, ${new Date(a.at).toISOString()}::timestamptz, ${c}::timestamptz from finished
|
|
70
|
-
on conflict (task_id) do update set installation_id = excluded.installation_id, agent = excluded.agent, target = excluded.target,
|
|
71
|
-
engine = excluded.engine, model = excluded.model, credential = excluded.credential, runner_ms = ${o.runnerMs} + excluded.runner_ms,
|
|
72
|
-
tokens = ${R(I`${o.tokens}`,a.tokens)}, at = excluded.at, updated_at = excluded.updated_at
|
|
73
|
-
) ${p}
|
|
74
|
-
select exists (select 1 from finished) as completed`);return!!m?.completed}async cancel(e,t,n,r={}){let a=new Date(n).toISOString(),[o]=await b(this.db,I`
|
|
75
|
-
with cancelled as (
|
|
76
|
-
update ${f} set status = case when status = 'queued' then 'cancelled' else status end,
|
|
77
|
-
finished_at = case when status = 'queued' then ${a}::timestamptz else finished_at end,
|
|
78
|
-
inbox_seq = case when status = 'queued' then inbox_seq else inbox_seq + 1 end,
|
|
79
|
-
cancel_requested_at = ${a}::timestamptz, updated_at = ${a}::timestamptz
|
|
80
|
-
where ${this.fence(e,t,{...r,statuses:i})} returning id, generation, inbox_seq, status
|
|
81
|
-
), message as (
|
|
82
|
-
insert into ${u} (organization_id, task_id, seq, generation, kind, value, at)
|
|
83
|
-
select ${e}, id, inbox_seq, generation, 'cancel', 'null'::jsonb, ${a}::timestamptz from cancelled where status in ('running', 'waiting')
|
|
84
|
-
) select exists(select 1 from cancelled) as accepted`);return!!o?.accepted}async cancelRequested(e,t){let[n]=await m(this.db,()=>this.db.select({at:f.cancelRequestedAt}).from(f).where(this.where(e,t)));return!!n?.at}filter(e,t){let n=t.status?[t.status]:t.statuses,r=t.q?.trim(),i=r&&`%${r.replace(/[\\%_]/g,`\\$&`)}%`;return w(D(f.organizationId,e),n?j(f.status,n):void 0,t.agent?D(f.agent,t.agent):void 0,t.source?D(f.source,t.source):void 0,t.archived===void 0?void 0:t.archived?M(f.archivedAt):N(f.archivedAt),i?F(A(I`${f.event}->>'text'`,i),A(f.prompt,i),A(f.agent,i),A(f.publicId,i)):void 0)}pageQuery(e,t){let{before:n}=t,r=t.summary?{publicId:f.publicId,source:f.source,agent:f.agent,flow:f.flow,prompt:f.prompt,event:I`case when ${f.event} is not null then jsonb_build_object('integration', ${f.event}->>'integration', 'type', ${f.event}->>'type', 'text', ${f.event}->>'text') end`.as(`event`),status:f.status,attempts:f.attempts,createdAt:f.createdAt,startedAt:f.startedAt,finishedAt:f.finishedAt}:O(f),i=this.db.select(r).from(f).where(w(this.filter(e,t),n?this.after(n):void 0)).orderBy(...V(f));return t.limit===void 0?i:i.limit(t.limit)}after(e){let t=I`(${B(f.createdAt)}, ${f.publicId}) < (${new Date(e.createdAt).toISOString()}::timestamptz, ${e.id})`;return F(k(z(f.status),e.rank),w(D(z(f.status),e.rank),t))}record(e,t){return t?v({task:v({id:e.publicId,source:e.source,agent:e.agent,flow:e.flow,prompt:e.prompt,event:e.event}),status:e.status,attempts:e.attempts,createdAt:y(e.createdAt),startedAt:e.startedAt?y(e.startedAt):void 0,finishedAt:e.finishedAt?y(e.finishedAt):void 0}):_(e)}async list(e,t={}){return(await m(this.db,()=>this.pageQuery(e,t))).map(e=>this.record(e,t.summary))}async changes(e,t){if(!e.length)return{rows:[],deleted:[]};let n=e.map(e=>e.organizationId),r=e.flatMap(e=>e.ids.map(()=>e.organizationId)),i=e.flatMap(e=>e.ids),a=i.length?I`(${f.organizationId}, ${f.publicId}) in (select * from unnest(${I.param(r)}::text[], ${I.param(i)}::text[]))`:I`false`,[o,c]=await Promise.all([m(this.db,()=>this.db.select({organizationId:f.organizationId,publicId:f.publicId,source:f.source,agent:f.agent,flow:f.flow,status:f.status,approval:f.approval,answer:I`case when ${a} then ${f.answer} end`,result:I`case when ${a} then ${f.result} end`,error:I`case when ${a} then ${f.error} end`,attempts:f.attempts,archivedAt:f.archivedAt,createdAt:f.createdAt,startedAt:f.startedAt,finishedAt:f.finishedAt,updatedAt:f.updatedAt}).from(f).where(F(w(j(f.organizationId,n),k(f.updatedAt,new Date(t))),i.length?a:void 0))),m(this.db,()=>this.db.select().from(s).where(w(j(s.organizationId,n),k(s.deletedAt,new Date(t)))))]);return{rows:o.map(e=>({organizationId:e.organizationId,status:v({task:{id:e.publicId,source:e.source,agent:e.agent,flow:e.flow},status:e.status,approval:e.approval,answer:Array.isArray(e.answer)?e.answer:void 0,result:e.result,error:e.error,attempts:e.attempts,archivedAt:e.archivedAt&&y(e.archivedAt),createdAt:y(e.createdAt),startedAt:e.startedAt&&y(e.startedAt),finishedAt:e.finishedAt&&y(e.finishedAt),updatedAt:y(e.updatedAt)})})),deleted:c.map(e=>({organizationId:e.organizationId,id:e.publicId,at:y(e.deletedAt)}))}}countQuery(e,t){return this.db.select({all:I`count(*)::int`.as(`all`),active:I`(count(*) filter (where ${j(f.status,i)}))::int`.as(`active`),waiting:I`(count(*) filter (where ${D(f.status,`waiting`)}))::int`.as(`waiting`)}).from(f).where(this.filter(e,t))}async counts(e,t={}){let[n]=await m(this.db,()=>this.countQuery(e,t));return n??{all:0,active:0,waiting:0}}async listWithCounts(e,t){let n=this.db.$with(`totals`).as(this.countQuery(e,t)),r=this.db.$with(`page`).as(this.pageQuery(e,{...t,limit:t.limit??20})),i=Object.fromEntries(Object.keys(r._.selectedFields).map(e=>[e,r[e]])),a=await m(this.db,()=>this.db.with(n,r).select({...i,all:n.all,active:n.active,waiting:n.waiting}).from(n).leftJoin(r,I`true`).orderBy(...V({status:i.status,createdAt:i.createdAt,publicId:i.publicId}))),{all:o=0,active:s=0,waiting:c=0}=a[0]??{};return{items:a.filter(e=>e.publicId!==null&&e.publicId!==void 0).map(e=>this.record(e,t.summary)),counts:{all:o,active:s,waiting:c}}}async runningCount(){let[e]=await m(this.db,()=>this.db.select({value:I`count(*)::int`}).from(f).where(j(f.status,[`running`,`waiting`])));return e?.value??0}async running(){return(await m(this.db,()=>this.db.select().from(f).where(j(f.status,[`running`,`waiting`])))).map(e=>({organizationId:e.organizationId,status:_(e)}))}async appendLogs(e,t,n,r,i,a,o){let s=n.length?I`, inserted as (
|
|
85
|
-
insert into ${c} (organization_id, task_id, seq, at, level, line)
|
|
86
|
-
select ${e}, accepted.id, entry.seq, to_timestamp(entry.at / 1000.0), entry.level, entry.line
|
|
87
|
-
from accepted cross join jsonb_to_recordset(${JSON.stringify(n)}::jsonb) as entry(seq int, at bigint, level text, line text)
|
|
88
|
-
)`:I``,[l]=await b(this.db,I`
|
|
89
|
-
with accepted as (
|
|
90
|
-
update ${f} set log_cursor = ${i.cursor}, log_seq = ${i.seq}, log_bytes = ${i.bytes}, updated_at = ${new Date(a).toISOString()}::timestamptz
|
|
91
|
-
where ${this.fence(e,t,o)} and coalesce(log_seq, 0) = ${r.seq} and coalesce(log_cursor, -1) = ${r.cursor}
|
|
92
|
-
returning id
|
|
93
|
-
) ${s} select exists (select 1 from accepted) as accepted`);return!!l?.accepted}async readInbox(e,t,n,r){return(await m(this.db,()=>this.db.select({seq:u.seq,generation:u.generation,at:u.at,kind:u.kind,value:u.value}).from(u).innerJoin(f,D(f.id,u.taskId)).where(w(this.where(e,t),D(f.generation,n),j(f.status,i),D(u.generation,n),I`${u.seq} > ${r}`)).orderBy(T(u.seq)).limit(100))).map(e=>({...e,at:y(e.at)}))}async appendInbox(e,t,n,r,a,o){let[s]=await b(this.db,I`
|
|
94
|
-
with next as (
|
|
95
|
-
update ${f} set inbox_seq = inbox_seq + 1, updated_at = ${new Date(a).toISOString()}::timestamptz where ${this.fence(e,t,{generation:o,statuses:i})} returning id, inbox_seq, generation
|
|
96
|
-
) insert into ${u} (organization_id, task_id, seq, generation, kind, value, at)
|
|
97
|
-
select ${e}, id, inbox_seq, generation, ${n}, ${JSON.stringify(r??null)}::jsonb, ${new Date(a).toISOString()}::timestamptz from next returning seq`);return s&&{seq:s.seq,generation:o,at:a,kind:n,value:r}}async fetchInbox(e,t,n,r,i){let[a]=await m(this.db,()=>b(this.db,I`
|
|
98
|
-
select coalesce(jsonb_agg(jsonb_build_object('seq', i.seq, 'generation', i.generation, 'at', extract(epoch from i.at) * 1000, 'kind', i.kind, 'value', i.value) order by i.seq) filter (where i.seq is not null), '[]'::jsonb) as entries
|
|
99
|
-
from ${f} left join ${u} i on i.task_id = ${f.id} and i.generation = ${f.generation} and i.seq > ${i}
|
|
100
|
-
where ${this.fence(e,t,{tokenHash:n,attempts:r,statuses:[`running`,`waiting`]})} group by ${f.id}`));return a?.entries}async ackInbox(e,t,n,r){if(r.generation!==void 0&&r.generation!==n.generation)return!1;let[i]=await b(this.db,I`
|
|
101
|
-
with current as (
|
|
102
|
-
select id from ${f} where ${this.fence(e,t,{...r,generation:n.generation,statuses:void 0})}
|
|
103
|
-
and inbox_seq >= ${n.seq} and (status in ('running', 'waiting') or (status in ('completed', 'failed', 'cancelled') and inbox_ack >= ${n.seq})) for update
|
|
104
|
-
), applied as (
|
|
105
|
-
delete from ${u} where task_id in (select id from current) and generation = ${n.generation} and seq <= ${n.seq} returning seq, kind, value
|
|
106
|
-
), answers as (
|
|
107
|
-
select jsonb_agg(a.value order by a.seq) as value from jsonb_to_recordset(${JSON.stringify(n.answers??[])}::jsonb) a(seq int, value jsonb)
|
|
108
|
-
where exists (select 1 from applied where applied.seq = a.seq and applied.kind = 'ask')
|
|
109
|
-
), updated as (
|
|
110
|
-
update ${f} set inbox_ack = greatest(inbox_ack, ${n.seq}), answer = coalesce(answer, '[]'::jsonb) || coalesce(answers.value, '[]'::jsonb),
|
|
111
|
-
status = case when exists(select 1 from applied where kind = 'cancel') then 'cancelled'
|
|
112
|
-
when exists(select 1 from applied where kind = 'approve' and value->>'approvalId' = ${f.approval}->>'id') then 'running' else status end,
|
|
113
|
-
approval = case when exists(select 1 from applied where kind = 'approve' and value->>'approvalId' = ${f.approval}->>'id') then null else approval end,
|
|
114
|
-
finished_at = case when exists(select 1 from applied where kind = 'cancel') then now() else finished_at end,
|
|
115
|
-
updated_at = now()
|
|
116
|
-
from answers where id in (select id from current)
|
|
117
|
-
) select exists (select 1 from current) as accepted`);return!!i?.accepted}async pendingInbox(){return(await m(this.db,()=>this.db.select().from(f).where(w(j(f.status,[`running`,`waiting`]),I`exists (select 1 from ${u} where ${u.taskId} = ${f.id} and ${u.generation} = ${f.generation})`)))).map(e=>({organizationId:e.organizationId,status:_(e)}))}};export{H as DrizzleQueue};
|
package/dist/refresh-BFuahSFK.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as e,wn as t}from"./dispatch-YW1aqjEg.js";import{i as n}from"./cli-DtTdpTy3.js";const r=n({name:`upgrade refresh`,options:{},run:()=>e(t())});export{r as commandRefreshUpdate};
|
package/dist/remote-AcWWfKVS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{St as t}from"./dispatch-YW1aqjEg.js";import{c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,p as u,u as ee}from"./prompt-K7-bKcTC.js";import{a as d}from"./load-DDZfByUe.js";import{t as f}from"./integrations-B2CavXR1.js";import p from"node:path";import m from"node:process";import h from"node:fs";import{execFile as g}from"node:child_process";import{createHash as _}from"node:crypto";import v from"node:fs/promises";import{promisify as y}from"node:util";import te from"node:http";import*as b from"openid-client";const x={"**/":`(?:.*/)?`,"/**":`/.*`,"**":`.*`,"*":`[^/]*`,"?":`[^/]`};function S(e){return e.split(/\r?\n/).flatMap(e=>{let t=e.trimEnd();if(!t||t.startsWith(`#`))return[];let n=t.startsWith(`!`);n&&(t=t.slice(1));let r=t.endsWith(`/`);r&&(t=t.slice(0,-1));let i=t.replace(/^\//,``).replace(/[.+^${}()|[\]\\]/g,`\\$&`).replace(/\*\*\/|\/\*\*$|\*\*|\*|\?/g,e=>x[e]),a=t.includes(`/`);return[{pattern:RegExp(a?`^${i}$`:`^(?:.*/)?${i}$`),negate:n,directory:r}]})}const C=(e,t,n)=>e.reduce((e,r)=>(!r.directory||n)&&r.pattern.test(t)?!r.negate:e,!1);async function w(e,t,n=``){let r=[];for(let i of await v.readdir(p.join(e,n),{withFileTypes:!0})){let a=n?`${n}/${i.name}`:i.name;i.isDirectory()&&!C(t,a,!0)?r.push(...await w(e,t,a)):i.isFile()&&!C(t,a,!1)&&r.push(a)}return r}async function T(e){return(await y(g)(`git`,[`-C`,e,`ls-files`,`--cached`,`--others`,`--exclude-standard`,`-z`,`--`,`.`],{maxBuffer:67108864}).catch(()=>void 0))?.stdout.split(`\0`).filter(Boolean)}async function E(e){let t=await T(e)??await w(e,S(await v.readFile(p.join(e,`.gitignore`),`utf8`).catch(()=>``))),n={};for(let r of t){if(r===`agent.json`||r===`system.md`)continue;let t=p.join(e,r);(await v.lstat(t).catch(()=>void 0))?.isFile()&&(n[r]=await v.readFile(t,`utf8`))}return n}var D=e({deviceSignIn:()=>P,hasBrowser:()=>ne,logoutSession:()=>z,loopbackSignIn:()=>N,refreshSignIn:()=>F,revokeSignIn:()=>I,selectLoginOrganization:()=>L,sessions:()=>B,signIn:()=>R});const O=`openid profile email offline_access organizations:read`,k=e=>`${e}/.well-known/oauth-cli-client.json`;async function A(e,n){let r=new URL(e).origin,i=await fetch(`${r}/.well-known/oauth-protected-resource`).catch(n=>{throw new t(`login-failed`,`No Coder server answers at ${e}: ${n.message}`)}),a=await i.json().catch(()=>({})),o=Array.isArray(a.authorization_servers)?a.authorization_servers[0]:void 0;if(!i.ok||a.resource!==r||typeof o!=`string`)throw new t(`login-failed`,`${e} does not offer sign-in.`,{hint:`Sign-in needs a Postgres-backed server; see coder docs self-host`});if(n!==void 0&&o!==n)throw new t(`login-failed`,`The server's sign-in issuer has changed. Sign in again before using this session.`);return{config:await b.discovery(new URL(o),k(e),void 0,b.None(),new URL(o).protocol===`http:`?{execute:[b.allowInsecureRequests]}:void 0).catch(e=>{throw new t(`login-failed`,`Wular Auth at ${o} did not answer: ${e.message}`)}),resource:r}}function j(e,n,r){let i=n.claims(),a=n.refresh_token??r?.refreshToken;if(!a)throw new t(`login-failed`,`Wular Auth returned no refresh token.`);return{token:n.access_token,refreshToken:a,expiresAt:Date.now()+(n.expires_in??600)*1e3,issuer:e.serverMetadata().issuer,user:i?{name:typeof i.name==`string`?i.name:``,email:typeof i.email==`string`?i.email:``}:r?.user??{name:``,email:``}}}const M=e=>new t(`login-failed`,e instanceof b.ResponseBodyError||e instanceof b.AuthorizationResponseError?e.error===`access_denied`?`Sign-in was denied in the browser.`:e.error_description??e.error:e instanceof Error?e.message:String(e));async function N(e,n){let{config:r,resource:i}=await A(e),a=b.randomPKCECodeVerifier(),o=b.randomState(),s=te.createServer();await new Promise(e=>s.listen(0,`127.0.0.1`,e));let{port:c}=s.address(),l=`http://127.0.0.1:${c}/callback`;try{let e=new Promise((e,n)=>{let r=setTimeout(()=>n(new t(`login-failed`,`Sign-in timed out.`)),3e5);s.on(`request`,(t,n)=>{let i=new URL(t.url??`/`,l);if(i.pathname!==`/callback`||i.searchParams.get(`state`)!==o){n.writeHead(404).end();return}n.writeHead(200,{"content-type":`text/plain; charset=utf-8`}).end(i.searchParams.has(`error`)?`Sign-in failed. You can close this tab and return to the terminal.`:`Signed in. You can close this tab and return to the terminal.`),clearTimeout(r),e(i)})});return n(b.buildAuthorizationUrl(r,{redirect_uri:l,scope:O,resource:i,code_challenge:await b.calculatePKCECodeChallenge(a),code_challenge_method:`S256`,state:o}).href),j(r,await b.authorizationCodeGrant(r,await e,{pkceCodeVerifier:a,expectedState:o},{resource:i}).catch(e=>{throw M(e)}))}finally{s.close(),s.closeAllConnections()}}async function P(e,t){let{config:n,resource:r}=await A(e);try{let e=await b.initiateDeviceAuthorization(n,{scope:O,resource:r});return t(e.user_code,e.verification_uri_complete??e.verification_uri),j(n,await b.pollDeviceAuthorizationGrant(n,e,{resource:r}))}catch(e){throw M(e)}}async function F(e,n){let{config:r,resource:i}=await A(e,n.issuer);try{return j(r,await b.refreshTokenGrant(r,n.refreshToken,{resource:i}),n)}catch(e){if(e instanceof b.ResponseBodyError&&(e.error===`invalid_grant`||e.error===`invalid_client`))return;throw new t(`server`,`Wular Auth did not refresh the session: ${e instanceof Error?e.message:String(e)}`)}}async function I(e,t){let{config:n}=await A(e,t.issuer);n.serverMetadata().revocation_endpoint&&await b.tokenRevocation(n,t.refreshToken,{token_type_hint:`refresh_token`})}async function L(e,n,r){if(!e.length)throw new t(`login-failed`,`This account belongs to no workspace.`);if(n){let r=e.find(e=>e.slug===n);if(!r)throw new t(`login-failed`,`You are not a member of workspace "${n}".`);return r}if(e.length<=1)return e[0];if(!r)throw new t(`login-failed`,`Choose a workspace for this server.`,{hint:`Pass --workspace <slug>.`});let i=await r(e);return e.find(e=>e.slug===i)}const ne=()=>!m.env.SSH_CONNECTION&&(m.platform!==`linux`||!!(m.env.DISPLAY||m.env.WAYLAND_DISPLAY));async function R(e,n={}){let r=n.device?await P(e,n.onCode??(()=>{})):await N(e,n.open??s),i=await fetch(`${e}/me`,{headers:{authorization:`Bearer ${r.token}`}}).catch(n=>{throw new t(`login-failed`,`No Coder server answers at ${e}: ${n.message}`)}),a=await i.json().catch(()=>({}));if(!i.ok)throw new t(`login-failed`,`Signed in, but the server refused the token.`);let o=await L(a.organizations??[],n.organization,n.chooseOrganization);return{...r,...o?{organization:o}:{},at:Date.now()}}async function z(e){let n=r(),i=n[e];if(!i)throw new t(`login-failed`,`Not signed in to ${e}.`);return await I(e,i).catch(()=>void 0),delete n[e],l(n),{ok:!0,server:e}}const B={async login(e={}){let t=G(e),n=await R(t,e);return e.save!==!1&&l({...r(),[t]:n}),{...n,server:t}},logout:(e={})=>z(G(e)),status:()=>Object.fromEntries(Object.entries(r()).map(([e,t])=>[e,{user:t.user,organization:t.organization,at:t.at}]))};function V(e,t){let n=t,r;return{expiresAt:()=>n.expiresAt,async renew(){return r||=H(e,n).finally(()=>{r=void 0}),n=await r,n.token}}}async function H(e,t){let n=_(`sha256`).update(e).digest(`hex`),r=`${i()}.${n}.lock`;for(h.mkdirSync(p.dirname(r),{recursive:!0});;)try{let e=h.openSync(r,`wx`,384);try{h.writeFileSync(e,String(process.pid))}catch(e){throw h.unlinkSync(r),e}finally{h.closeSync(e)}break}catch(e){if(e.code!==`EEXIST`)throw e;try{let e=Number(h.readFileSync(r,`utf8`));e?process.kill(e,0):Date.now()-h.statSync(r).mtimeMs>3e4&&h.unlinkSync(r)}catch(e){if(e.code===`ESRCH`)try{h.unlinkSync(r)}catch{}}await new Promise(e=>setTimeout(e,25))}try{return await U(e,t)}finally{h.unlinkSync(r)}}async function U(e,n){let i=e=>e&&e.refreshToken!==n.refreshToken?e:void 0,a=i(r()[e]);if(a&&a.expiresAt>n.expiresAt)return a;let o=await F(e,n),s=r();if(o){let t={...n,...o};return l({...s,[e]:t}),t}let c=i(s[e]);if(c)return c;throw delete s[e],l(s),new t(`login-failed`,`Signed out of ${e}.`,{hint:`Sign in again: coder auth login`})}var W=e({addCredential:()=>Q,coderClient:()=>q,connect:()=>K,loginCredential:()=>$,pushAgents:()=>J,serverFor:()=>G});function G(e={}){let r=u(e.server);if(!n(r)){if(!e.yes)throw new t(`invalid-option`,`First use of Coder server ${new URL(r).origin} needs confirmation.`,{hint:`Inspect the origin, then pass yes: true.`});c(r)}return r}function K(e={}){let t=G(e);return q(t,{token:e.token,missingHint:`auth.login({ server: '${t}' })`,organization:e.organization})}function q(e,{token:n,missingHint:r,organization:i}={}){let s=u(e),c=ee(s),l=c?.token,d=m.env.ADMIN_TOKEN,f=n??l??d;if(f&&f===d&&!a(s))throw new t(`invalid-option`,`ADMIN_TOKEN cannot be sent to a non-loopback server.`);if(!f)throw new t(`login-failed`,`Not signed in to ${s}.`,{...r?{hint:r}:{}});return new o(s,{token:f},{organization:i??c?.organization?.slug,renewal:c&&f===l?V(s,c):void 0})}async function J(e,n,r){let i=(await d(n,f)).filter(e=>!e.builtin),a=r?i.filter(e=>e.id===r):i;if(r&&!a.length)throw new t(`invalid-option`,`No workspace agent named "${r}".`);let o=[];for(let t of a)o.push(await e.agents.put(t.id,{definition:t.definition,systemPrompt:await v.readFile(p.join(t.dir,`system.md`),`utf8`).catch(()=>``),files:await E(t.dir),name:t.name,description:t.definition.description}));return o}const Y=/^[A-Za-z_][A-Za-z0-9_]*$/,X=[`claude`,`codex`,`custom`],Z=(e,n)=>new t(`invalid-option`,e,n?{hint:n}:{}),re=()=>new Promise(e=>setTimeout(e,1e3));async function ie(){let e=``;for await(let t of m.stdin)e+=t.toString();return e.replace(/\r?\n$/,``)}async function Q(e,t){let n=Array.isArray(t.env)?t.env:Object.keys(t.env);for(let e of n)if(!Y.test(e))throw Z(`Invalid environment variable name ${JSON.stringify(e)}.`);if(!t.engine)throw Z(`Missing required --engine.`,`Use claude, codex, or custom`);let r=X.find(e=>e===t.engine);if(!r)throw Z(`Invalid --engine value.`,`Use claude, codex, or custom`);if(!n.length)throw Z(`At least one --env NAME is required.`);if(t.value!==void 0&&n.length!==1)throw Z(`--value requires exactly one --env NAME.`);let i=Array.isArray(t.env)?Object.fromEntries(await Promise.all(n.map(async e=>{let n=t.value===`-`?await ie():t.value??m.env[e];if(!n)throw Z(`Environment variable ${e} is not set.`);return[e,n]}))):t.env;return K(t).credentials.add({...e?{label:e}:{},env:i,engine:r,workspace:t.workspace,noCheck:t.noCheck,default:t.default})}async function $(e,t={}){if(e!==`claude`&&e!==`codex`)throw Z(`Name the engine to sign in to.`,`Usage: coder credentials login <claude|codex>`);let n=K(t).credentials,r=await n.login(e);t.onStart?.(()=>n.cancelLogin(r.id));let i=async e=>{for(;!e(r.state);)await re(),r=await n.loginStatus(r.id)};return await i(e=>e!==`starting`),t.onOpen?.(r),e===`claude`&&r.state===`open`&&t.code&&await n.loginCode(r.id,await t.code()),await i(e=>e===`done`||e===`failed`),r}export{W as a,D as c,J as i,K as n,G as o,$ as r,B as s,Q as t};
|
package/dist/remove-7y1b_gHT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ot as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-DtTdpTy3.js";import{n,t as r}from"./args-DEMOfLz2.js";import i from"node:process";const a=t({name:`mcp remove`,helpName:`mcp rm`,help:{usage:`coder mcp rm <name> [--user] [--cwd <dir>]`,summary:"Remove `mcp.<name>` from the repo config (or the user config with --user).",flags:[[`--user`,`edit ~/.coder config`]]},options:{...r,user:n},args:1,run:({options:t,args:[n],cwd:r})=>e(r,n,t),print:({name:e,file:t})=>i.stdout.write(`Removed MCP server "${e}" from ${t}.\n`)});export{a as commandMcpRemove};
|
package/dist/remove-BRj1kPYm.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{St as e}from"./dispatch-YW1aqjEg.js";import{i as t,t as n}from"./cli-DtTdpTy3.js";import{p as r}from"./output-BKeyLbvt.js";import{n as i,o as a}from"./args-DEMOfLz2.js";import o from"node:process";const s={json:i,server:a,workspace:i,yes:i},c=()=>new e(`invalid-option`,`Missing credential label.`),l=t({name:`credentials remove`,globalFlags:{cwd:!1},help:{usage:`coder credentials remove <label> [--workspace] [--server [url]] [--json]`,flags:[[`--workspace`,`the workspace credential of that label`],n]},options:s,args:1,async run({options:e,args:[t]}){let{connect:n}=await import(`./remote-AcWWfKVS.js`).then(e=>e.a);if(!t)throw c();return n(e).credentials.remove(t,e)},print:(e,{args:[t]})=>o.stdout.write(`Removed ${r.bold(t)}.\n`)});export{l as commandCredentialsRemove,s as credentialOptions,c as missingLabel};
|
package/dist/remove-C57QDigT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{i as t}from"./cli-DtTdpTy3.js";import{p as n}from"./output-BKeyLbvt.js";import{i as r}from"./models-DGPrMV51.js";import{n as i}from"./add-DpsjB8Mp.js";import a from"node:process";var o=e({commandModelRemove:()=>s,printModelChange:()=>c});const s=t({name:`model remove`,help:{usage:`coder model remove <name>`,summary:`Remove a configured custom model.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]},options:i,args:1,run:({options:e,args:[t],cwd:n})=>r(n,t,e),print:e=>c(`removed`,e.removed,e.file)});function c(e,t,r){a.stdout.write(`${e} ${n.cyan(t)} ${n.dim(`(${r})`)}\n`)}export{o as n,c as t};
|
package/dist/remove-UVD3W2OE.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{St as e}from"./dispatch-YW1aqjEg.js";import{i as t,t as n}from"./cli-DtTdpTy3.js";import{p as r}from"./output-BKeyLbvt.js";import{n as i,o as a}from"./args-DEMOfLz2.js";import o from"node:process";const s={json:i,server:a,yes:i},c=t({name:`runner remove`,globalFlags:{cwd:!1},help:{usage:`coder runner remove <id> [--server [url]] [--json]`,flags:[n]},options:s,args:1,async run({options:t,args:[n]}){let{removeRunner:r}=await import(`./runner-c-2w6Eoj.js`).then(e=>e.a);if(!n)throw new e(`invalid-option`,`Missing runner id.`);return r(n,t)},print:(e,{args:[t]})=>o.stdout.write(`Removed ${r.bold(t)}.\n`)});export{c as commandRunnerRemove,s as runnerOptions};
|
package/dist/rename-CCv5pca3.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{St as e}from"./dispatch-YW1aqjEg.js";import{i as t,t as n}from"./cli-DtTdpTy3.js";import{p as r}from"./output-BKeyLbvt.js";import{runnerOptions as i}from"./remove-UVD3W2OE.js";import a from"node:process";const o=t({name:`runner rename`,globalFlags:{cwd:!1},help:{usage:`coder runner rename <id> <name> [--server [url]] [--json]`,flags:[n]},options:i,args:2,async run({options:t,args:[n,r]}){let{updateRunner:i}=await import(`./runner-c-2w6Eoj.js`).then(e=>e.a);if(!n||!r)throw new e(`invalid-option`,`Usage: coder runner rename <id> <name>`);return i(n,{name:r},t)},print:(e,{args:[t]})=>a.stdout.write(`Renamed ${t} to ${r.bold(e.name)}.\n`)});export{o as commandRunnerRename};
|
package/dist/result-BWrYnt0u.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{St as e,pn as t}from"./dispatch-YW1aqjEg.js";import{i as n}from"./cli-DtTdpTy3.js";import{c as r,m as i,p as a,s as o}from"./output-BKeyLbvt.js";import{l as s,t as c}from"./args-DEMOfLz2.js";import{gateLine as l,gateRunningLine as u,paintPlain as d,printLedger as f,resultJson as p,stepSymbol as m,taskLabel as h,taskLine as g}from"./watch-B3gAEK1N.js";import _ from"node:process";const v=n({name:`flow result`,help:{usage:`coder flow result [run-id] [--tail <n|all>] [--json]`,summary:`Show a flow run's status and result, with its tasks, gates, and token ledger.
|
|
2
|
-
--tail <n> caps the step rows (0 for the result alone). Defaults to the most
|
|
3
|
-
recent run. To watch a run live, prefer \`coder flow watch\`.`,flags:[[`--tail <n|all>`,`show the last n step rows (default: all; 0 hides them)`]],examples:[[`coder flow result --tail 0`,`the most recent run's result, no step rows`]]},options:{...c,tail:s},args:1,async run({options:t,args:[n]}){let{runResult:r}=await import(`./executor-HWnIIYUL.js`).then(e=>e.b),i=r(n);if(!i&&!t.json)throw new e(`flow-failed`,n?`No flow run "${n}".`:`No flow runs yet.`,{hint:`Run one: coder flow run <name>`});return i},json:e=>e&&p(e),print:(e,{options:t})=>b(e,t.tail)});function y(e,t=!1){let n=a;if(t)return e.map(d);let r=(t,n)=>{for(let r=t+1;r<e.length;r+=1){let t=e[r].depth;if(t<n)return!1;if(t===n)return!0}return!1};return e.map((e,t)=>{let i=``;for(let n=0;n<e.depth;n+=1)i+=r(t,n)?`│ `:` `;return i+=e.log?`│ `:r(t,e.depth)?`├─`:`└─`,`${n.dim(i)} ${e.body}`})}function b(e,n=`all`){let s=a,c=!_.stdout.isTTY;_.stdout.write(`${s.bold(`Flow`)} ${s.cyan(e.name)} ${s.dim(`(${e.runId})`)}. ${s.bold(i(e.status))}\n`);let d=e.steps,p=d.filter(e=>t.includes(e.status)).length,v=e.status===`running`?`${p}/${d.length} tasks`:`${e.taskCount} tasks`;if(_.stdout.write(`${s.dim(`started ${e.startedAt}${e.endedAt?` · ended ${e.endedAt}`:``} · ${v}`)}\n`),n!==0){let t=new Map,r=new Map,i=new Map,a=[];for(let n of e.events)if(n.kind===`task-start`){let e={name:h(n.name,n.prompt),engine:n.engine,depth:n.depth??0};t.set(n.taskId,e),r.set(n.taskId,e)}else if(n.kind===`task-end`){r.delete(n.taskId);let e=t.get(n.taskId);a.push({depth:e?.depth??0,body:g(m(n.status,c),e?.name??null,n.taskId,n.tokens,e?.engine)})}else if(n.kind===`gate-start`)i.set(n.gateId,{cmd:n.cmd,depth:n.depth??0});else if(n.kind===`gate`)n.gateId&&i.delete(n.gateId),a.push({depth:n.depth??0,body:l(n,c)});else if(n.kind===`log`)for(let e of n.message.split(`
|
|
4
|
-
`))a.push({depth:n.depth??0,body:s.light(e),log:!0});else n.kind===`flow-start`&&a.push({depth:n.depth-1,body:s.bold(`flow ${n.name}`)});for(let[e,t]of r)a.push({depth:t.depth??0,body:g(m(`running`,c),t.name,e,null,t.engine)+(c?``:` ${s.light(`running`)}`)});for(let e of i.values())a.push({depth:e.depth,body:u(e.cmd,m(`running`,c))+(c?``:` ${s.light(`running`)}`)});if(!a.length)for(let e of n===`all`?d:d.slice(-n))a.push({depth:0,body:g(m(e.status,c),e.name,e.taskId??`-`,e.tokens)});let o=y(a,c),f=n===`all`?o:o.slice(-n);f.length&&_.stdout.write(`\n${f.join(`
|
|
5
|
-
`)}\n`)}e.endedAt&&e.result!==void 0&&_.stdout.write(`\n${s.bold(`Result:`)}\n${r(e.result)}\n`),e.error&&_.stdout.write(`\n${s.red(`error:`)} ${e.error}\n`),f(e.ledger);let b=e.status===`running`?[`Follow live: coder flow watch ${e.runId}`,`Stop it: coder flow stop ${e.runId}`]:e.status===`stopped`||e.status===`failed`?[`Resume: coder flow resume ${e.runId}`]:[];b.length&&_.stdout.write(`\n${o(b,s)}\n`)}export{v as commandResult};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"node:module";var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};export{t};
|
package/dist/runner-DRgQvMiZ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-DtTdpTy3.js";const t=e(`runner`,{add:async()=>(await import(`./add-8Z5bNm74.js`)).commandRunnerAdd,default:async()=>(await import(`./default-DgP-hBmn.js`)).commandRunnerDefault,test:async()=>(await import(`./test-TvJAUf4S.js`)).commandRunnerTest,serve:async()=>(await import(`./serve-SWjydoBC.js`)).commandRunnerServe,list:async()=>(await import(`./list-yoGxyIlx.js`)).commandRunnerList,rename:async()=>(await import(`./rename-CCv5pca3.js`)).commandRunnerRename,remove:async()=>(await import(`./remove-UVD3W2OE.js`)).commandRunnerRemove},{menu:[{usage:`add <kind>`,blurb:`connect a runner`},{usage:`default <id>`,blurb:`set the default in its scope`},{usage:`test <id>`,blurb:`check a runner connection`},{usage:`serve --url <public url>`,blurb:`run your server's tasks on this machine`},{usage:`list`,blurb:`list your runners and the workspace's`},{usage:`rename <id> <name>`,blurb:`rename a runner`},{usage:`remove <id>`,blurb:`remove a runner`}],description:[`Run your Coder server's tasks on your own machine, reached through any tunnel.`],exampleCommand:`runner serve`});export{t as commandRunner};
|
package/dist/runner-c-2w6Eoj.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{St as t}from"./dispatch-YW1aqjEg.js";import{n}from"./remote-AcWWfKVS.js";var r=e({addRunner:()=>a,addRunnerFields:()=>u,listRunners:()=>i,pairRunner:()=>o,removeRunner:()=>l,testRunner:()=>c,updateRunner:()=>s});const i=(e={})=>n(e).runners.list(),a=(e,t={})=>n(t).runners.add(e),o=(e,t={})=>n(t).runners.pair(e),s=(e,t,r={})=>n(r).runners.update(e,t),c=(e,t={})=>n(t).runners.test(e),l=(e,t={})=>n(t).runners.remove(e);async function u(e,r){let i=n(r),{catalog:a}=await i.runners.list(),o=a.find(t=>t.kind===e);if(!o)throw new t(`invalid-option`,`Unknown runner kind.`);if(!o.available)throw new t(`invalid-option`,o.reason??`Runner unavailable.`);let s={};for(let e of r.field??[]){let n=e.indexOf(`=`);if(n<1)throw new t(`invalid-option`,`Use --field key=value.`);let r=e.slice(0,n),i=e.slice(n+1),a=o.fields.find(e=>e.key===r);if(!a)throw new t(`invalid-option`,`Unknown runner field ${r}.`);if(a.secret){if(!/^env:[A-Z_][A-Z0-9_]*$/.test(i)||!process.env[i.slice(4)])throw new t(`invalid-option`,`Read ${r} from the environment with --field ${r}=env:VARIABLE.`);s[r]=process.env[i.slice(4)]}else s[r]=i}let c=r.scope??((await i.me()).user?`personal`:`workspace`);if(c!==`personal`&&c!==`workspace`)throw new t(`invalid-option`,`Scope must be personal or workspace.`);return o.connect===`pair`?i.runners.pair({name:r.name,scope:c}):i.runners.add({kind:o.kind,name:r.name??o.name,scope:c,config:s})}export{r as a,l as i,i as n,c as o,o as r,s,a as t};
|
package/dist/schema-DoNO0dPh.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{sql as t}from"drizzle-orm";import{bigint as n,bigserial as r,boolean as i,index as a,integer as o,jsonb as s,pgSchema as c,primaryKey as l,text as u,timestamp as d,unique as f}from"drizzle-orm/pg-core";var p=e({agent:()=>b,agentVersion:()=>x,chatItem:()=>N,chatState:()=>M,coder:()=>m,engineCredential:()=>T,integrationApp:()=>C,integrationAppInstallation:()=>w,platformLink:()=>y,runner:()=>E,secret:()=>S,tables:()=>P,task:()=>D,taskInbox:()=>O,taskLog:()=>k,taskTombstone:()=>A,usage:()=>j});const m=c(`coder`),h=m.table,g=()=>d({withTimezone:!0}),_={createdAt:g().notNull().defaultNow(),updatedAt:g().notNull().defaultNow()},v={id:r({mode:`number`}).primaryKey(),organizationId:u().notNull()},y=h(`platform_link`,{id:r({mode:`number`}).primaryKey(),platform:u().notNull(),platformUserId:u().notNull(),userId:u().notNull(),name:u().notNull(),email:u().notNull(),organizations:s().$type(),token:u(),createdAt:g().notNull().defaultNow()},e=>[f().on(e.platform,e.platformUserId),a().on(e.userId)]),b=h(`agent`,{...v,slug:u().notNull(),name:u().notNull(),description:u(),source:u().$type().notNull(),repo:u(),path:u(),currentVersion:o().notNull(),settings:s().$type(),..._},e=>[f().on(e.organizationId,e.slug)]),x=h(`agent_version`,{id:r({mode:`number`}).primaryKey(),agentId:n({mode:`number`}).notNull().references(()=>b.id),version:o().notNull(),definition:s().$type().notNull(),systemPrompt:u().notNull(),files:s().$type(),commit:u(),importedFrom:u().notNull(),createdAt:g().notNull().defaultNow()},e=>[f().on(e.agentId,e.version)]),S=h(`secret`,{...v,kind:u().$type().notNull(),iv:u().notNull(),tag:u().notNull(),ciphertext:u().notNull(),keyVersion:o().notNull(),..._},e=>[a().on(e.organizationId,e.kind)]),C=h(`integration_app`,{...v,key:u().notNull(),integration:u().notNull(),platformAppId:u().notNull(),agent:u().notNull(),name:u().notNull(),agentsRepo:u(),branch:u(),credentialsSecretId:n({mode:`number`}).notNull().references(()=>S.id),..._},e=>[f().on(e.organizationId,e.key),f().on(e.integration,e.platformAppId)]),w=h(`integration_app_installation`,{...v,key:u().notNull(),appId:n({mode:`number`}).notNull().references(()=>C.id),platformInstallId:u().notNull(),account:s().$type().notNull(),tokenSecretId:n({mode:`number`}).references(()=>S.id),installer:u(),connections:s().$type(),settings:s().$type(),..._,deletedAt:g()},e=>[f().on(e.key),a().on(e.organizationId,e.appId)]),T=h(`engine_credential`,{...v,secretId:n({mode:`number`}).notNull().references(()=>S.id).unique(),owner:u(),engine:u().$type().notNull(),label:u().notNull(),isDefault:i().notNull().default(!1),account:s().$type(),..._},e=>[f().on(e.organizationId,e.owner,e.label).nullsNotDistinct()]),E=h(`runner`,{...v,publicId:u().notNull(),owner:u(),name:u().notNull(),kind:u().$type().notNull(),scope:u().$type().notNull(),config:s().$type().notNull(),createdBy:u(),isDefault:i().notNull().default(!1),lastSeen:d({withTimezone:!0}),secretId:n({mode:`number`}).notNull().references(()=>S.id),..._},e=>[f().on(e.organizationId,e.publicId)]),D=h(`task`,{...v,publicId:u().notNull(),source:u().$type().notNull(),status:u().$type().notNull(),agent:u().notNull(),flow:u().notNull(),runner:u().notNull(),permissions:u().$type(),appId:n({mode:`number`}).references(()=>C.id),installationId:n({mode:`number`}).references(()=>w.id),event:s().$type(),prompt:u(),args:s().$type(),mcp:s().$type(),author:u(),definition:s().$type().notNull(),credential:u(),requester:u(),runnerId:u(),usage:s().$type(),tools:s().$type().notNull(),toolScopes:s().$type(),context:s().$type(),files:s().$type(),result:s().$type(),error:u(),tokens:s(),handle:u(),tokenHash:u(),lastSeenAt:g(),logCursor:o(),logSeq:o(),logBytes:o(),archivedAt:g(),approval:s(),answer:s(),attempts:o().notNull().default(0),inboxSeq:o().notNull().default(-1),inboxAck:o().notNull().default(-1),generation:o().notNull().default(0),lockedAt:g(),startedAt:g(),finishedAt:g(),cancelRequestedAt:g(),..._},e=>[f().on(e.organizationId,e.publicId),a().on(e.publicId),a().on(e.organizationId,e.createdAt.desc(),e.publicId.desc()),a().on(e.organizationId,e.updatedAt),a().on(e.organizationId).where(t`${e.status} = 'queued'`),a().on(e.status,e.createdAt)]),O=h(`task_inbox`,{...v,taskId:n({mode:`number`}).notNull().references(()=>D.id,{onDelete:`cascade`}),seq:o().notNull(),generation:o().notNull().default(0),kind:u().$type().notNull(),value:s(),at:g().notNull()},e=>[f().on(e.taskId,e.seq),a().on(e.taskId,e.generation,e.seq)]),k=h(`task_log`,{...v,taskId:n({mode:`number`}).notNull().references(()=>D.id,{onDelete:`cascade`}),seq:o().notNull(),at:g().notNull(),level:u().$type().notNull(),line:u().notNull()},e=>[f().on(e.taskId,e.seq)]),A=h(`task_tombstone`,{organizationId:u().notNull(),publicId:u().notNull(),deletedAt:g().notNull()},e=>[a().on(e.organizationId,e.deletedAt)]),j=h(`usage`,{...v,taskId:n({mode:`number`}).notNull().references(()=>D.id,{onDelete:`cascade`}).unique(),installationId:n({mode:`number`}).references(()=>w.id),agent:u().notNull(),target:u().notNull(),engine:u(),model:u(),credential:u().notNull(),runnerMs:o().notNull(),tokens:s(),at:g().notNull(),..._},e=>[a().on(e.organizationId,e.at)]),M=h(`chat_state`,{key:u().primaryKey(),value:s().notNull(),expiresAt:g()},e=>[a().on(e.expiresAt).where(t`${e.expiresAt} is not null`)]),N=h(`chat_item`,{key:u().notNull(),seq:n({mode:`number`}).generatedAlwaysAsIdentity(),value:s().notNull(),expiresAt:g()},e=>[l({columns:[e.key,e.seq]}),a().on(e.expiresAt).where(t`${e.expiresAt} is not null`)]),P={platformLink:y,agent:b,agentVersion:x,secret:S,integrationApp:C,integrationAppInstallation:w,engineCredential:T,runner:E,task:D,taskInbox:O,taskLog:k,taskTombstone:A,usage:j,chatState:M,chatItem:N};export{j as _,T as a,y as c,S as d,P as f,A as g,k as h,M as i,E as l,O as m,x as n,C as o,D as p,N as r,w as s,b as t,p as u};
|