@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 +0,0 @@
|
|
|
1
|
-
import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as s,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:g,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:f},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:s},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-ea656259bc",Component:c}]});e();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,g as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as f}from"./chunks/custom-range-63f577240e5d5d85.js";import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as r,$0b as i,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as e}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:v,unmountRoute:u}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:r},{id:"c-2cfb5c118d",Component:e},{id:"c-2f39143d38",Component:i},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-d9e42b1374",Component:f},{id:"c-ea656259bc",Component:p}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,v as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as d,$0b as r,$0d as s,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as m}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:N,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:f},{id:"c-26b2a32d8a",Component:d},{id:"c-2cfb5c118d",Component:m},{id:"c-2f39143d38",Component:r},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:s},{id:"c-39db89e6a1",Component:a},{id:"c-3acf145303",options:{},load:()=>import("./chunks/credentials-list-08cd5dfe29f42bf2.js").then(o=>o.EngineLogins)},{id:"c-3d4f646942",options:{},load:()=>import("./chunks/models-list-c758db0c40f5173f.js").then(o=>o.ModelsList)},{id:"c-67b5383ad3",Component:p},{id:"c-914b397ba5",options:{},load:()=>import("./chunks/engines-list-dab79c4e3e22eefe.js").then(o=>o.EnginesList)},{id:"c-e35a149e11",options:{},load:()=>import("./chunks/credentials-list-08cd5dfe29f42bf2.js").then(o=>o.CredentialsList)},{id:"c-ea656259bc",Component:c},{id:"c-f0cf975d16",options:{},load:()=>import("./chunks/mcp-list-bae4d2186f67849e.js").then(o=>o.McpList)},{id:"c-f8cb94e579",options:{},load:()=>import("./chunks/runners-list-9d27c76eed33cb05.js").then(o=>o.RunnersList)}]});e();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,N as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as r,$0d as s,$0e as d,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as e}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(l=>l.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:e},{id:"c-2f39143d38",Component:r},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:s},{id:"c-39db89e6a1",Component:a},{id:"c-67b5383ad3",Component:d},{id:"c-ea656259bc",Component:p}]});i();n()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as l}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as s,$0b as m,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:v,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:l},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-22a2687aca",options:{},load:()=>import("./chunks/instructions-f3ecfb5c50f270c2.js").then(o=>o.Instructions)},{id:"c-26b2a32d8a",Component:s},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:m},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-91b99482e6",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-875a9a0ebb3f7d08.js").then(o=>o.VersionsList)},{id:"c-ea656259bc",Component:c}]});e();i()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,v as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as i,$0b as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:i},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-c94427b1a7",options:{},load:()=>import("./chunks/task-view-0b3d7ea9cc41888b.js").then(l=>l.TaskView)},{id:"c-ea656259bc",Component:p}]});m();t()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as l}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as s,$0d as d,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:l},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:s},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:d},{id:"c-39db89e6a1",Component:a},{id:"c-5650e42951",options:{},load:()=>import("./chunks/agent-settings-form-738f9ac4b9fb67ef.js").then(o=>o.AgentSettingsForm)},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-ea656259bc",Component:c}]});e();i()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as l}from"./chunks/composer-a969037cf22215c7.js";import"./chunks/connect-repositories-8864a63f83ffd411.js";import"./chunks/composer-data-6f7608fed13f3dd7.js";import"./chunks/model-options-15c53331a2f28a4f.js";import"./chunks/select-adccc9ac86ac833f.js";import"./chunks/task-ddfddeaf07fb684c.js";import"./chunks/card-818c7a0d580e2e0d.js";import"./chunks/field-43fea54c1c287e30.js";import"./chunks/format-b19b8eec331414f4.js";import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as d,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as s}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as n,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:G,unmountRoute:C}=n({islands:[{id:"c-0824f8e785",Component:f},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:d},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:a},{id:"c-384b712f48",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-37e2e7f7a37b7a35.js").then(o=>o.AgentsGrid)},{id:"c-39db89e6a1",Component:s},{id:"c-67b5383ad3",Component:p},{id:"c-8abdf16cfe",options:{},load:()=>import("./chunks/connect-apps-97c10fa6e35ccae6.js").then(o=>o.ConnectApps)},{id:"c-ad4e2a70f0",Component:l},{id:"c-ea656259bc",Component:c}]});i();e()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:C});export{u as mountRoute,G as remountRoute,C as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as l}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as d,$0d as s,$0e as c,$0f as f}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a,$2c as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:L,unmountRoute:I}=t({islands:[{id:"c-0824f8e785",Component:l},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:d},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:s},{id:"c-39db89e6a1",Component:a},{id:"c-67b5383ad3",Component:c},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-ce751855ed",Component:p},{id:"c-d49f435a4e",options:{},load:()=>import("./chunks/platform-actions-4454493d02a1c172.js").then(o=>o.PlatformActions)},{id:"c-ea656259bc",Component:f}]});e();i()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:I});export{u as mountRoute,L as remountRoute,I as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as r,$0b as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as i}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:h,unmountRoute:l}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:r},{id:"c-2cfb5c118d",Component:i},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-ea656259bc",Component:p}]});m();t()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:l});export{f as mountRoute,h as remountRoute,l as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as l}from"./chunks/custom-range-63f577240e5d5d85.js";import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as s,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:G,unmountRoute:C}=t({islands:[{id:"c-0824f8e785",Component:f},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:s},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-d9e42b1374",Component:l},{id:"c-ea656259bc",Component:c}]});e();i()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:C});export{u as mountRoute,G as remountRoute,C as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as C}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as p,$0b as I,$0d as N,$0e as b,$0f as g}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5b as t,$5g as u}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as h}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$2a as e}from"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as l}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as f}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as c,$0b as d}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import{$1g as s,$1i as m}from"./chunks/shared-init-8f2ac936c95a7f7b.js";function T(){let[_,a]=s(!1),[r,i]=s(!1);m(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),a(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let k=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(t,"1"):localStorage.removeItem(t),o.checked=n,a(n),i(Notification.permission==="denied")};return e("label",{class:"notify",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:_,disabled:r,onChange:o=>void k(o.currentTarget)}),r?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:w,remountRoute:Z,unmountRoute:S}=c({islands:[{id:"c-0824f8e785",Component:C},{id:"c-26b2a32d8a",Component:p},{id:"c-2cfb5c118d",Component:u},{id:"c-2f39143d38",Component:I},{id:"c-34c96f4c56",Component:d},{id:"c-3562f7cd24",Component:N},{id:"c-39db89e6a1",Component:h},{id:"c-4d3a64746a",Component:T},{id:"c-67b5383ad3",Component:b},{id:"c-ea656259bc",Component:g}]});l();f()||w();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:w,unmountRoute:S});export{w as mountRoute,Z as remountRoute,S as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as u}from"./chunks/field-43fea54c1c287e30.js";import{g as p}from"./chunks/format-b19b8eec331414f4.js";import{$0b as f}from"./chunks/shared-init-17c1fd399ac53851.js";import{$1b as m}from"./chunks/shared-init-17c1fd399ac53851.js";import{$2a as t}from"./chunks/shared-init-17c1fd399ac53851.js";import{$0a as c,$0b as d}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import{$1g as i}from"./chunks/shared-init-8f2ac936c95a7f7b.js";function h({tag:e,title:a,lead:o,children:r}){return t("section",{class:"auth",children:t("div",{class:"auth-side",children:[t("div",{class:"auth-frame frame",children:[t("div",{class:"bar",children:[t("a",{class:"brand",href:"/",children:[t(f,{}),t("span",{class:"lockup",children:["coder ",t("small",{children:"wular"})]})]}),t("span",{class:"tag",children:e})]}),t("div",{class:"auth-body",children:[t("h1",{children:a}),o?t("p",{class:"lead",children:o}):null,r]})]}),t("nav",{class:"auth-links",children:[t("a",{href:"https://wular.ai",children:"wular.ai"}),t("a",{href:"https://coder.wular.ai",children:"hosted service"})]})]})})}function l(){let[e,a]=i(""),[o,r]=i(""),v=typeof location>"u"?"":new URLSearchParams(location.search).get("token")??"";return t(h,{tag:"connect",title:"Connect your account",lead:o||"Link this platform identity to your signed-in Coder account.",children:[o?null:t("button",{type:"button",class:"btn wide",onClick:()=>void m.linkAccount(v).then(n=>r(`${n.platform} account ${n.platformUserId} is connected.`)).catch(n=>a(p(n))),children:"Connect"}),t(u,{value:e})]})}var{mountRoute:_,remountRoute:M,unmountRoute:R}=c({islands:[{id:"c-34c96f4c56",Component:d}],Page:l});(window.__PNEXT_ROUTER_IMPORTS__??0)>0||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,M as remountRoute,R as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$0a as r,$0b as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as i}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:c,remountRoute:S,unmountRoute:f}=o({islands:[{id:"c-26b2a32d8a",Component:r},{id:"c-2cfb5c118d",Component:i},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-ea656259bc",Component:p}]});m();n()||c();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:c,unmountRoute:f});export{c as mountRoute,S as remountRoute,f as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as i,$0b as e,$0d as d,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-00c11152f2",options:{},load:()=>import("./chunks/editor-9752c8ab26ebd328.js").then(l=>l.AgentEditor)},{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:i},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:d},{id:"c-39db89e6a1",Component:a},{id:"c-67b5383ad3",Component:s},{id:"c-ea656259bc",Component:p}]});m();n()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as r}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:m,remountRoute:p,unmountRoute:n}=o({islands:[{id:"c-34c96f4c56",Component:t}]});i();r()||m();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:m,unmountRoute:n});export{m as mountRoute,p as remountRoute,n as unmountRoute};
|
package/dist/default-DgP-hBmn.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{runnerOptions as r}from"./remove-UVD3W2OE.js";import i from"node:process";const a=t({name:`runner default`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner default <id> [--server [url]] [--json]`,summary:`Use this runner by default within its scope.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{updateRunner:r}=await import(`./runner-c-2w6Eoj.js`).then(e=>e.a);return r(n,{default:!0},t)},print:e=>i.stdout.write(`Default runner ${e.name}.\n`)});export{a as commandRunnerDefault};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{Mt as t,an as n}from"./dispatch-YW1aqjEg.js";import r from"node:path";import{fileURLToPath as i}from"node:url";import a from"node:fs";var o=e({builtinFlowsDir:()=>c,discoverFlows:()=>d,flowsIn:()=>l,resolveFlow:()=>p});const s=[`.ts`,`.mjs`,`.js`];function c(){let e=r.dirname(i(import.meta.url)),t=e;for(;r.basename(t)!==`dist`&&r.dirname(t)!==t;)t=r.dirname(t);return r.basename(t)===`dist`?r.join(t,`flow`,`builtin`):r.join(e,`builtin`)}function l(e,t){let n=[];try{n=a.readdirSync(e)}catch{return[]}let i=[];for(let o of n.sort()){let n=r.extname(o);if(s.includes(n)&&!o.endsWith(`.d.ts`)){i.push({name:r.basename(o,n),path:r.join(e,o),scope:t});continue}let c=s.map(t=>r.join(e,o,`index${t}`)).find(e=>a.existsSync(e));c&&i.push({name:o,path:c,scope:t})}return i}function u(e){let i=n(e),a=[],o=r.resolve(e);for(;a.push({dir:r.join(o,`.coder`,`flows`),scope:`workspace`}),o!==i&&r.dirname(o)!==o;)o=r.dirname(o);return a.push({dir:t(`flows`),scope:`global`}),a}function d(e){let t=new Set,n=[];for(let{dir:r,scope:i}of u(e))for(let e of l(r,i))t.has(e.name)||(t.add(e.name),n.push(e));for(let e of l(c(),`builtin`))t.has(e.name)||n.push(e);return n}function f(e){return e.includes(`/`)||s.includes(r.extname(e))}function p(e,t){if(f(e)){let n=r.resolve(t,e);if(a.existsSync(n))return{name:r.basename(n,r.extname(n)),path:n};throw Error(`Flow file not found: ${e}`)}let n=d(t).find(t=>t.name===e);if(!n)throw Error(`No flow named "${e}". Run \`coder flow discover\` to see available flows.`);return{name:n.name,path:n.path,scope:n.scope}}export{p as a,l as i,d as n,o as r,c as t};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import e from"node:path";import t from"node:process";import{fileURLToPath as n}from"node:url";import*as r from"zod/mini";import i from"node:fs";import{execFileSync as a,spawn as o,spawnSync as s}from"node:child_process";import{createHash as c,randomUUID as l}from"node:crypto";import u from"node:os";import d from"node:net";import f from"node:readline";function p(t,n){if(!n)return``;if(!e.isAbsolute(n))return n;let r=e.relative(t,n);return r&&!r.startsWith(`..`)?r:n}function m(e){try{return JSON.parse(i.readFileSync(e,`utf8`))}catch{return null}}function h(t,n){i.mkdirSync(e.dirname(t),{recursive:!0});let r=`${t}.${process.pid}.${l()}.tmp`;try{i.writeFileSync(r,`${JSON.stringify(n,null,2)}\n`,{encoding:`utf8`,flag:`wx`}),i.renameSync(r,t)}finally{i.rmSync(r,{force:!0})}}function g(t,n){if(i.mkdirSync(e.dirname(n),{recursive:!0}),i.existsSync(n))throw Object.assign(Error(`Directory already exists: ${n}`),{code:`EEXIST`});try{i.renameSync(t,n);return}catch(e){if(e.code!==`EXDEV`)throw e}let r=`${n}.${process.pid}.${l()}.tmp`;try{i.cpSync(t,r,{recursive:!0,preserveTimestamps:!0,verbatimSymlinks:!0,errorOnExist:!0,force:!1}),i.renameSync(r,n),i.rmSync(t,{recursive:!0})}finally{i.rmSync(r,{recursive:!0,force:!0})}}async function _(t,n){if(await i.promises.mkdir(e.dirname(n),{recursive:!0}),await i.promises.lstat(n).catch(e=>{if(e.code!==`ENOENT`)throw e}))throw Object.assign(Error(`Directory already exists: ${n}`),{code:`EEXIST`});try{await i.promises.rename(t,n);return}catch(e){if(e.code!==`EXDEV`)throw e}let r=`${n}.${process.pid}.${l()}.tmp`;try{await i.promises.cp(t,r,{recursive:!0,preserveTimestamps:!0,verbatimSymlinks:!0,errorOnExist:!0,force:!1}),await i.promises.rename(r,n),await i.promises.rm(t,{recursive:!0})}finally{await i.promises.rm(r,{recursive:!0,force:!0})}}function v(e){let t=0,n=``;return()=>{let r;try{r=i.statSync(e).size}catch{return[]}if(r<t&&(t=0,n=``),r===t)return[];let a;try{a=i.openSync(e,`r`)}catch{return[]}try{let e=Buffer.alloc(r-t),o=i.readSync(a,e,0,e.length,t);t+=o;let s=(n+e.toString(`utf8`,0,o)).split(`
|
|
2
|
-
`);return n=s.pop()??``,s.filter(Boolean)}finally{i.closeSync(a)}}}function y(e){return String(e??``).replace(/[^A-Za-z0-9._-]/g,`-`).replace(/^-+|-+$/g,``)}function b(n,r=t.platform){return r===`win32`?`pipe:\\\\.\\pipe\\${y(`${e.win32.basename(n)}-codex-app-server`)}`:`unix:${e.join(n,`broker.sock`)}`}function x(e){if(typeof e!=`string`||e.length===0)throw Error(`Missing broker endpoint.`);if(e.startsWith(`pipe:`)){let t=e.slice(5);if(!t)throw Error(`Broker pipe endpoint is missing its path.`);return{kind:`pipe`,path:t}}if(e.startsWith(`unix:`)){let t=e.slice(5);if(!t)throw Error(`Broker Unix socket endpoint is missing its path.`);return{kind:`unix`,path:t}}throw Error(`Unsupported broker endpoint: ${e}`)}function ee(){let t=e.dirname(n(import.meta.url));for(let n=0;n<10;n++){let n=e.join(t,`package.json`);try{if(JSON.parse(i.readFileSync(n,`utf8`)).name===`@wular/coder`)return t}catch{}let r=e.dirname(t);if(r===t)break;t=r}return e.resolve(e.dirname(n(import.meta.url)),`..`)}const S=ee(),C=i.existsSync(e.join(S,`dist/cli.js`))?e.join(S,`dist/cli.js`):e.join(S,`src/cli.ts`);function w(){try{return JSON.parse(i.readFileSync(e.join(S,`package.json`),`utf8`)).version??`unknown`}catch{return`unknown`}}function T(e){try{return JSON.parse(i.readFileSync(e,`utf8`)).version??null}catch{return null}}function te(){return S}const ne={false:`broker.json`,true:`broker-network.json`};function re(t=`coder-`){return i.mkdtempSync(e.join(u.tmpdir(),t))}function ie(e){let t=x(e);return d.createConnection({path:t.path})}async function ae(e,t=2e3){let n=Date.now();for(;Date.now()-n<t;){if(await new Promise(t=>{let n=ie(e);n.on(`connect`,()=>{n.end(),t(!0)}),n.on(`error`,()=>t(!1))}))return!0;await new Promise(e=>setTimeout(e,50))}return!1}function oe({scriptPath:e,cwd:n,endpoint:r,pidFile:a,logFile:s,networkAccess:c=!1,env:l=t.env}){let u=i.openSync(s,`a`),d=o(t.execPath,[e,`serve`,`--endpoint`,r,`--cwd`,n,`--pid-file`,a,`--network-access`,String(c)],{cwd:n,env:l,detached:!0,stdio:[`ignore`,u,u]});return d.unref(),i.closeSync(u),d}function se(){let e=[new URL(`./lib/broker.js`,import.meta.url),new URL(`./main.js`,import.meta.url)];for(let t of e){let e=n(t);if(i.existsSync(e))return e}throw Error("Coder broker script not found next to the runtime. Rebuild with `bun run build`.")}function ce(t,n=!1){return e.join(M(t),ne[n?`true`:`false`])}function le(e,t=!1){let n=ce(e,t);if(!i.existsSync(n))return null;try{let e=JSON.parse(i.readFileSync(n,`utf8`));return(e.networkAccess??!1)===t?e:null}catch{return null}}function ue(e,t,n=t.networkAccess??!1){let r=M(e);i.mkdirSync(r,{recursive:!0}),i.writeFileSync(ce(e,n),`${JSON.stringify(t,null,2)}\n`,`utf8`)}function de(e,t=!1){let n=ce(e,t);i.existsSync(n)&&i.unlinkSync(n)}async function fe(e){if(!e)return!1;try{return await ae(e,150)}catch{return!1}}async function pe(n,r={}){let i=r.scriptPath??se(),a=w(),o=r.networkAccess??!1,s=le(n,o),c=s?.version===a&&s?.scriptPath===i&&(s?.networkAccess??!1)===o;if(s&&c&&await fe(s.endpoint))return s;s&&(me({endpoint:s.endpoint??null,pidFile:s.pidFile??null,logFile:s.logFile??null,sessionDir:s.sessionDir??null,pid:s.pid??null,killProcess:r.killProcess??null}),de(n,o));let l=re(),u=(r.createBrokerEndpoint??b)(l,r.platform),d=e.join(l,`broker.pid`),f=e.join(l,`broker.log`),p=oe({scriptPath:i,cwd:n,endpoint:u,pidFile:d,logFile:f,networkAccess:o,env:r.env??t.env});if(!await ae(u,r.timeoutMs??2e3))return me({endpoint:u,pidFile:d,logFile:f,sessionDir:l,pid:p.pid??null,killProcess:r.killProcess??null}),null;let m={endpoint:u,pidFile:d,logFile:f,sessionDir:l,pid:p.pid??null,networkAccess:o,version:a,scriptPath:i};return ue(n,m,o),m}function me({endpoint:t=null,pidFile:n,logFile:r,sessionDir:a=null,pid:o=null,killProcess:s=null}){if(Number.isFinite(o)&&s)try{s(o)}catch{}if(n&&i.existsSync(n)&&i.unlinkSync(n),r&&i.existsSync(r)&&i.unlinkSync(r),t)try{let e=x(t);e.kind===`unix`&&i.existsSync(e.path)&&i.unlinkSync(e.path)}catch{}let c=a??(n?e.dirname(n):r?e.dirname(r):null);if(c&&i.existsSync(c))try{i.rmdirSync(c)}catch{}}function he(e,n=[],r={}){let i=s(e,n,{cwd:r.cwd,env:r.env,encoding:`utf8`,input:r.input,maxBuffer:r.maxBuffer,stdio:r.stdio??`pipe`,shell:t.platform===`win32`?t.env.SHELL||!0:!1,windowsHide:!0});return{command:e,args:n,status:i.status??0,signal:i.signal??null,stdout:i.stdout??``,stderr:i.stderr??``,error:i.error??null}}function ge(e,t=[`--version`],n={}){let r=he(e,t,n);return r.error&&r.error.code===`ENOENT`?{available:!1,detail:`not found`}:r.error?{available:!1,detail:r.error.message}:r.status===0?{available:!0,detail:r.stdout.trim()||r.stderr.trim()||`ok`}:{available:!1,detail:r.stderr.trim()||r.stdout.trim()||`exit ${r.status}`}}function _e(e){return/not found|no running instance|cannot find|does not exist|no such process/i.test(e)}function ve(e,n={}){if(!Number.isFinite(e))return{attempted:!1,delivered:!1,method:null};let r=e,i=n.platform??t.platform,a=n.runCommandImpl??he,o=n.killImpl??t.kill.bind(t);if(i===`win32`){let e=a(`taskkill`,[`/PID`,String(r),`/T`,`/F`],{cwd:n.cwd,env:n.env});if(!e.error&&e.status===0)return{attempted:!0,delivered:!0,method:`taskkill`,result:e};let t=`${e.stderr}\n${e.stdout}`.trim();if(!e.error&&_e(t))return{attempted:!0,delivered:!1,method:`taskkill`,result:e};if(e.error?.code===`ENOENT`)try{return o(r),{attempted:!0,delivered:!0,method:`kill`}}catch(e){if(e?.code===`ESRCH`)return{attempted:!0,delivered:!1,method:`kill`};throw e}throw e.error?e.error:Error(ye(e))}try{return o(-r,`SIGTERM`),{attempted:!0,delivered:!0,method:`process-group`}}catch(e){if(e?.code!==`ESRCH`)try{return o(r,`SIGTERM`),{attempted:!0,delivered:!0,method:`process`}}catch(e){if(e?.code===`ESRCH`)return{attempted:!0,delivered:!1,method:`process`};throw e}return{attempted:!0,delivered:!1,method:`process-group`}}}function ye(e){let t=[`${e.command} ${e.args.join(` `)}`.trim()];e.signal?t.push(`signal=${e.signal}`):t.push(`exit=${e.status}`);let n=(e.stderr||``).trim(),r=(e.stdout||``).trim();return n?t.push(n):r&&t.push(r),t.join(`: `)}function be(e){return new Promise(n=>{let r=o(e,t.argv.slice(1),{env:t.env,shell:!1,stdio:`inherit`}),i=()=>r.kill(`SIGINT`),a=()=>r.kill(`SIGTERM`);t.once(`SIGINT`,i),t.once(`SIGTERM`,a);let s=e=>{t.off(`SIGINT`,i),t.off(`SIGTERM`,a),n(e)};r.once(`error`,e=>s({error:e,status:null,signal:null})),r.once(`close`,(e,t)=>s({status:e,signal:t}))})}const xe=-32001,Se=`coder/notice`,Ce=`coder/appServerExited`,we=`broker/recycle`;function Te(){let e=he(`codex`,[`--version`]),t=/(\d+\.\d+\.\d+(?:-[\w.]+)?)/.exec(`${e.stdout} ${e.stderr}`);return t?t[1]:`0.144.1`}function Ee(){return{title:`Coder`,name:`coder`,version:Te()}}const De={experimentalApi:!1,requestAttestation:!1,optOutNotificationMethods:[`item/agentMessage/delta`,`item/reasoning/summaryTextDelta`,`item/reasoning/summaryPartAdded`,`item/reasoning/textDelta`]};function Oe(e,t,n){return n===void 0?{code:e,message:t}:{code:e,message:t,data:n}}function ke(e,t){let n=Error(e);return n.data=t,t?.code!==void 0&&(n.rpcCode=t.code),n}var Ae=class{cwd;options;pending;nextId;stderr;closed;exitError;notificationHandler;serverRequestHandler;noticeHandler;lineBuffer;transport;exitPromise;exitResolved;resolveExit;handleServerRequest;constructor(e,t={}){this.cwd=e,this.options=t,this.pending=new Map,this.nextId=1,this.stderr=``,this.closed=!1,this.exitError=null,this.notificationHandler=null,this.serverRequestHandler=null,this.noticeHandler=null,this.lineBuffer=``,this.transport=`unknown`,this.handleServerRequest=e=>this.defaultHandleServerRequest(e),this.exitPromise=new Promise(e=>{this.resolveExit=e})}setNotificationHandler(e){this.notificationHandler=e}setServerRequestHandler(e){this.serverRequestHandler=e}setNoticeHandler(e){this.noticeHandler=e}request(e,t){if(this.closed)throw Error(`codex app-server client is closed.`);if(this.exitResolved)return Promise.reject(this.exitError??Error(`codex app-server connection closed.`));let n=this.nextId;return this.nextId+=1,new Promise((r,i)=>{this.pending.set(n,{resolve:r,reject:i,method:e}),this.sendMessage({id:n,method:e,params:t})})}notify(e,t={}){this.closed||this.sendMessage({method:e,params:t})}handleChunk(e){this.lineBuffer+=e;let t=this.lineBuffer.indexOf(`
|
|
3
|
-
`);for(;t!==-1;){let e=this.lineBuffer.slice(0,t);this.lineBuffer=this.lineBuffer.slice(t+1),this.handleLine(e),t=this.lineBuffer.indexOf(`
|
|
4
|
-
`)}}handleLine(e){if(!e.trim())return;let t;try{t=JSON.parse(e)}catch(t){this.handleExit(ke(`Failed to parse codex app-server JSONL: ${t instanceof Error?t.message:String(t)}`,{line:e}));return}if(t.id!==void 0&&t.method){this.handleServerRequest(t);return}if(t.id!==void 0){let e=this.pending.get(t.id);if(!e)return;this.pending.delete(t.id),t.error?e.reject(ke(t.error.message??`codex app-server ${e.method} failed.`,t.error)):e.resolve(t.result??{});return}if(t.method===`coder/notice`){this.noticeHandler?.(String(t.params?.message??``));return}if(t.method===`coder/appServerExited`){this.handleExit(ke(String(t.params?.message??`codex app-server exited.`)));return}t.method&&this.notificationHandler&&this.notificationHandler(t)}defaultHandleServerRequest(e){let t=this.serverRequestHandler;if(!t){this.sendMessage({id:e.id,error:Oe(-32601,`Unsupported server request: ${e.method}`)});return}Promise.resolve().then(()=>t(e.method,e.params??{})).then(t=>{this.sendMessage({id:e.id,result:t??{}})}).catch(t=>{this.sendMessage({id:e.id,error:Oe(-32e3,t instanceof Error?t.message:String(t))})})}handleExit(e){if(!this.exitResolved){this.exitResolved=!0,this.exitError=e??null;for(let e of this.pending.values())e.reject(this.exitError??Error(`codex app-server connection closed.`));this.pending.clear(),this.resolveExit(void 0)}}sendMessage(e){throw Error(`sendMessage must be implemented by subclasses.`)}},je=class extends Ae{proc;readline;constructor(e,t={}){super(e,t),this.transport=`direct`}async initialize(){let e=this.options.networkAccess??!1;this.proc=o(`codex`,Me(e,this.options.nativeMcp),{cwd:this.cwd,env:this.options.env??t.env,stdio:[`pipe`,`pipe`,`pipe`],shell:t.platform===`win32`?t.env.SHELL||!0:!1,windowsHide:!0});let n=this.proc.stdout,r=this.proc.stderr;if(!n||!r)throw Error(`codex app-server did not expose stdio streams.`);n.setEncoding(`utf8`),r.setEncoding(`utf8`),r.on(`data`,e=>{this.stderr+=e}),this.proc.on(`error`,e=>{this.handleExit(e)}),this.proc.stdin?.on(`error`,()=>{}),this.proc.on(`exit`,(e,t)=>{let n=this.stderr.trim(),r=e===0?null:ke(`codex app-server exited unexpectedly (${t?`signal ${t}`:`exit ${e}`}).${n?`\n${n}`:``}`);this.handleExit(r)}),this.readline=f.createInterface({input:n}),this.readline.on(`line`,e=>{this.handleLine(e)}),await this.request(`initialize`,{clientInfo:this.options.clientInfo??Ee(),capabilities:this.options.capabilities??De}),this.notify(`initialized`,{})}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.readline&&this.readline.close(),this.proc&&!this.proc.killed&&(this.proc.stdin?.end(),setTimeout(()=>{if(this.proc&&!this.proc.killed&&this.proc.exitCode===null)if(t.platform===`win32`)try{ve(this.proc.pid)}catch{}else this.proc.kill(`SIGTERM`)},50).unref?.()),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.proc?.stdin;if(!n)throw Error(`codex app-server stdin is not available.`);n.write(t)}};function Me(e,t=!1){return[`-c`,`sandbox_workspace_write.network_access=${e}`,`app-server`,...t?[]:[`--disable`,`plugins`,`--disable`,`apps`]]}var Ne=class extends Ae{endpoint;socket;constructor(e,t={}){super(e,t),this.transport=`broker`,this.endpoint=t.brokerEndpoint}async initialize(){await new Promise((e,t)=>{let n=x(this.endpoint);this.socket=d.createConnection({path:n.path}),this.socket.setEncoding(`utf8`),this.socket.on(`connect`,e),this.socket.on(`data`,e=>{this.handleChunk(e)}),this.socket.on(`error`,e=>{this.exitResolved||t(e),this.handleExit(e)}),this.socket.on(`close`,()=>{this.handleExit(this.exitError)})}),await this.request(`initialize`,{clientInfo:this.options.clientInfo??Ee(),capabilities:this.options.capabilities??De}),this.notify(`initialized`,{})}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.socket&&this.socket.end(),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.socket;if(!n)throw Error(`codex app-server broker connection is not connected.`);n.write(t)}},E=class{static async connect(e,n={}){let r=n.networkAccess??!1,i=null;!n.disableBroker&&!n.nativeMcp&&(i=n.brokerEndpoint??n.env?.CODER_APP_SERVER_ENDPOINT??t.env.CODER_APP_SERVER_ENDPOINT??null,!i&&n.reuseExistingBroker&&(i=le(e,r)?.endpoint??null),!i&&!n.reuseExistingBroker&&(i=(await pe(e,{env:n.env,networkAccess:r}))?.endpoint??null));let a=i?new Ne(e,{...n,brokerEndpoint:i}):new je(e,n);return await a.initialize(),a}};async function Pe(e,t,n){for(let r of[!1,!0]){if(!le(e,r))continue;let i=null;try{return i=await E.connect(e,{networkAccess:r,reuseExistingBroker:!0}),await i.request(t,{threadId:n}),!0}catch{}finally{await i?.close().catch(()=>{})}}return!1}function Fe(e){try{let t=o(`codex`,e,{detached:!0,stdio:`ignore`});t.on(`error`,()=>{}),t.unref()}catch{}}async function Ie(e,t){await Pe(e,`thread/archive`,t)||Fe([`archive`,t])}function Le(t){let n=e.join(process.env.CODEX_HOME||e.join(u.homedir(),`.codex`),`archived_sessions`);try{return i.readdirSync(n).some(e=>e.endsWith(`-${t}.jsonl`))}catch{return!1}}function Re(e){return new Promise(t=>{try{let n=o(`codex`,[`unarchive`,e],{stdio:`ignore`});n.on(`error`,()=>t(!1)),n.on(`close`,e=>t(e===0))}catch{t(!1)}})}async function ze(e,t){return await Pe(e,`thread/delete`,t)?!0:s(`codex`,[`delete`,`--force`,t],{encoding:`utf8`}).status===0}const D=[`completed`,`failed`,`cancelled`],Be=[`queued`,`running`],Ve=/^[a-z0-9][a-z0-9_-]*$/i;function O(e){return Ve.test(e)}function He(e,t){if(!O(e))throw Error(`Invalid ${t} "${e}".`)}function k(...t){return e.join(e.resolve(process.env.CODER_HOME||e.join(u.homedir(),`.coder`)),...t)}function A(...t){let n=u.homedir(),r=u.platform(),i=process.env.CODER_CACHE_HOME||(r===`darwin`?e.join(n,`Library`,`Caches`,`wular-coder`):r===`win32`?e.join(process.env.LOCALAPPDATA||e.join(n,`AppData`,`Local`),`wular-coder`,`cache`):e.join(process.env.XDG_CACHE_HOME||e.join(n,`.cache`),`wular-coder`));return e.join(e.resolve(i),...t)}function Ue(){return k()}function We(t){return t?e.join(t,`flows`):k(`state`,`global`,`flows`)}function Ge(){return A(`flows-archived`)}function Ke(){return A(`usage.json`)}function qe(e=Ke()){return`${e}.${process.pid}.${l()}.tmp`}function Je(){return A(`runner`,`usage.json`)}function j(e){try{return a(`git`,[`rev-parse`,`--show-toplevel`],{cwd:e,encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return e}}const Ye=`global`;function M(e){return k(`state`,Ye)}function Xe(){let t=k(`state`),n=[];try{n=i.readdirSync(t,{withFileTypes:!0})}catch{}return n.filter(e=>e.isDirectory()&&e.name!==Ye).map(n=>e.join(t,n.name))}function N(t){return e.join(M(t),`jobs`)}const Ze=18e5,Qe=(e,t=Date.now())=>t-e>Ze;function P(e){return A(`archive`)}function F(t,n){He(n,`task id`);let r=e.join(N(t),n);if(i.existsSync(e.join(r,`job.json`)))return r;let a=e.join(P(t),n);if(i.existsSync(e.join(a,`job.json`)))return a;for(let t of Xe()){let r=e.join(t,`jobs`,n);if(i.existsSync(e.join(r,`job.json`)))return r}return r}function $e(e,t,n={}){return t.archived&&(n.auto||!t.autoArchived)?t:t.archived?I(e,t.id,{autoArchived:void 0}):I(e,t.id,{archived:!0,archivedAt:new Date().toISOString(),...n.auto?{autoArchived:!0}:{}},{touch:!n.auto})}function et(t,n,r={}){if(Be.includes(n.status))return $e(t,n,r);let i=F(t,n.id),a=e.join(P(t),n.id);i!==a&&g(i,a);let o=$e(t,n,r);return n.engine!==`claude`&&n.threadId&&Ie(t,n.threadId),o}function tt(e){return!!e.archived&&(e.resumedAt??``)>(e.archivedAt??``)}function nt(t,n){let r=F(t,n.id),i=e.join(N(t),n.id);return r!==i&&g(r,i),I(t,n.id,{archived:void 0,archivedAt:void 0,autoArchived:void 0})}function rt(){let e=Math.random().toString(36).slice(2,8);return`task-${Date.now().toString(36)}-${e}`}function I(t,n,r,a={}){let o=F(t,n);i.mkdirSync(o,{recursive:!0});let s=e.join(o,`job.json`),c=L(t,n)??{id:n,createdAt:new Date().toISOString(),status:`queued`},l={...c,...r,updatedAt:a.touch===!1?c.updatedAt:new Date().toISOString()};return i.writeFileSync(s,`${JSON.stringify(l,null,2)}\n`,`utf8`),l}function it(e){return e.agent&&(e.engine=e.agent),delete e.agent,e}function L(t,n){if(!O(n))return null;let r=e.join(F(t,n),`job.json`);if(!i.existsSync(r))return null;try{return it(JSON.parse(i.readFileSync(r,`utf8`)))}catch{return null}}function at(e,t){let n=F(e,t);return i.existsSync(n)?(i.rmSync(n,{recursive:!0,force:!0}),!0):!1}function ot(e){if(!e)return!1;try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function st(e){try{let t=a(`ps`,[`-o`,`lstart=`,`-p`,String(e)],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`],env:{...process.env,TZ:Intl.DateTimeFormat().resolvedOptions().timeZone}}).trim(),n=t?Date.parse(t):NaN;return Number.isFinite(n)?n:null}catch{return null}}function ct(e,t,n){if(!ot(e))return!1;let r=n(e),i=Date.parse(t.resumedAt??t.createdAt??``);return r===null||!Number.isFinite(i)||r<=i+6e4}function R(e,t,n=st){if(t.status!==`running`&&t.status!==`queued`)return t;let r;if(t.pid)r=!ct(t.pid,t,n);else{let e=Date.parse(t.updatedAt??t.createdAt??``);r=Number.isFinite(e)&&Date.now()-e>6e4}return r?I(e,t.id,{status:`failed`,error:`worker exited without finishing`,completedAt:new Date().toISOString()}):t}function lt(t,n){let r=[];for(let a of t){let t=[];try{t=i.readdirSync(a)}catch{continue}for(let o of t){if(n.has(o))continue;let t=e.join(a,o,`job.json`);try{let e=it(JSON.parse(i.readFileSync(t,`utf8`)));n.add(o),r.push(e)}catch{}}}return r}async function*ut(t){let n=await i.promises.readdir(e.dirname(M(t)),{withFileTypes:!0}).catch(()=>[]),r=[{dir:N(t),archived:!1},{dir:P(t),archived:!0},...n.filter(e=>e.isDirectory()&&e.name!==Ye).map(n=>({dir:e.join(e.dirname(M(t)),n.name,`jobs`),archived:!1}))];for(let{dir:t,archived:n}of r){let r=await i.promises.readdir(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r)i.isDirectory()&&O(i.name)&&(yield{id:i.name,dir:e.join(t,i.name),archived:n})}}const dt=(e,t)=>String(t.updatedAt??``).localeCompare(String(e.updatedAt??``));function ft(){let e=new Map;return t=>(e.has(t)||e.set(t,st(t)),e.get(t))}function pt(t){let n=ft(),r=[N(t),...Xe().map(t=>e.join(t,`jobs`))],i=[];for(let e of lt(r,new Set)){let r=R(t,e,n);r.archived&&!tt(r)?et(t,r,{auto:!0}):i.push(r.archived?nt(t,r):r)}return i.sort(dt)}function mt(e,t,n=!1){if(t.status===`queued`)return!0;let r=t.generation??0;if(n&&!r)return!1;let i=L(e,t.task.id);return i?r?t.startedAt===void 0||(Date.parse(i.resumedAt??``)||0)<t.startedAt:!1:!0}function ht(t){let n=m(e.join(M(t),`runner`,`task.json`))??{},r=e=>e===void 0?void 0:new Date(e).toISOString();return Object.values(n).map(({value:e})=>e).filter(e=>mt(t,e)).map(e=>{let t=e.status===`waiting`?`running`:e.status,n=e.archivedAt??(D.includes(t)&&Qe(e.finishedAt??e.updatedAt)?e.finishedAt??e.updatedAt:void 0);return{id:e.task.id,status:t,...e.task.name?{name:e.task.name}:{},...e.task.prompt?{prompt:e.task.prompt}:{},...e.task.cwd?{cwd:e.task.cwd}:{},...e.task.agent?{agentId:e.task.agent}:{},source:e.task.source??`dashboard`,...e.error?{error:e.error}:{},createdAt:r(e.createdAt),updatedAt:r(e.updatedAt),...e.finishedAt?{completedAt:r(e.finishedAt)}:{},...n===void 0?{}:{archived:!0,archivedAt:r(n)}}})}function gt(t,n){let r=ft(),i=n?.migrate??!0,a=new Set,o=[];for(let e of lt([P(t)],a))tt(e)?i&&nt(t,R(t,e,r)):o.push(R(t,e,r));let s=[N(t),...Xe().map(t=>e.join(t,`jobs`))];for(let e of lt(s,a))if(e.archived&&!tt(e)){let n=R(t,e,r);o.push(i?et(t,n,{auto:!0}):n)}return o.sort(dt)}function _t(e,t){let n=gt(e),r=[...pt(e),...n].sort(dt);if(!t)return r[0]??null;let i=r.find(e=>e.id===t);if(i)return i;let a=r.filter(e=>e.id.startsWith(t));if(a.length===1)return a[0];if(a.length>1)throw Error(`Task reference "${t}" is ambiguous. Use a longer id.`);return null}function vt(t,n){let r=F(t,n);try{i.mkdirSync(r,{recursive:!0}),i.writeFileSync(e.join(r,`heartbeat`),``,`utf8`)}catch{}}function yt(t,n){let r=F(t,n.id),a=Date.parse(n.updatedAt??``)||0;for(let t of[`log.jsonl`,`heartbeat`])try{a=Math.max(a,i.statSync(e.join(r,t)).mtimeMs)}catch{}return a?new Date(a).toISOString():void 0}async function bt(e,t,n=400){let r=t;for(;!D.includes(r.status);)await new Promise(e=>setTimeout(e,n)),r=R(e,L(e,r.id)??r);return r}const xt=`steer-queue.jsonl`;function St(t,n,r){let a=F(t,n);i.mkdirSync(a,{recursive:!0}),i.appendFileSync(e.join(a,xt),`${JSON.stringify({at:new Date().toISOString(),text:r})}\n`,`utf8`)}function Ct(t,n){let r=F(t,n),a=e.join(r,xt),o=e.join(r,`steer-claim-${process.pid}-${Date.now()}.tmp`);try{i.renameSync(a,o)}catch{return[]}try{return i.readFileSync(o,`utf8`).split(/\r?\n/).filter(Boolean).map(e=>{try{return String(JSON.parse(e).text??``)}catch{return``}}).filter(Boolean)}finally{try{i.unlinkSync(o)}catch{}}}function wt(t,n,r){let a=F(t,n);i.mkdirSync(a,{recursive:!0}),i.appendFileSync(e.join(a,`log.jsonl`),`${JSON.stringify({at:new Date().toISOString(),...r})}\n`,`utf8`)}function Tt(t,n){let r=e.join(F(t,n),`results.jsonl`);return i.existsSync(r)?i.readFileSync(r,`utf8`).split(/\r?\n/).filter(Boolean).flatMap(e=>{try{return[JSON.parse(e)]}catch{return[]}}):[]}function Et(e,t){if(t<=0)return[];let n=0;for(let r=e.length-1;r>=0;--r)if(e[r]?.kind!==`usage`&&(n+=1)===t)return e.slice(r);return e}function z(t,n,r=40){let a=e.join(F(t,n),`log.jsonl`);return i.existsSync(a)?i.readFileSync(a,`utf8`).split(/\r?\n/).filter(Boolean).slice(-r).map(e=>{try{return JSON.parse(e)}catch{return{message:e}}}):[]}function Dt(e){return[e.engine??`-`,e.model,e.model?e.effort:null].filter(Boolean).join(`/`)}function Ot(e){let t=Date.parse(e??``);return Number.isFinite(t)?Math.max(0,Date.now()-t):0}const kt=6e5;var B=class extends Error{code;hint;taskId;payload;approval;result;runId;status;constructor(e,t,n={}){super(t),this.name=`CoderError`,this.code=e,Object.assign(this,n)}};const V={chain:[`codex`,`claude`],engines:{codex:{model:`gpt-6.1-sol`,effort:`high`,permissions:`auto`},claude:{model:`opus`,effort:`medium`,permissions:`auto`}},models:{},approvals:{escalationTimeoutMs:12e4,allowedNetworkHosts:[]}},At=e=>e===`failed`?0:e===`completed`?3:e===`cancelled`?2:1,jt=(e,t)=>e.rank-t.rank||t.createdAt-e.createdAt||(t.id<e.id?-1:+(t.id>e.id)),H={luna:`gpt-6-luna`,sol:`gpt-6.1-sol`,astra:`gpt-6-astra`},Mt=new Set([`low`,`medium`,`high`]),U={sonnet:`sonnet`,opus:`opus`,fable:`fable`},Nt=new Set([`low`,`medium`,`high`]),Pt={"read-only":{sandbox:`read-only`,approvalPolicy:`never`,approvalMode:null},"workspace-write":{sandbox:`workspace-write`,approvalPolicy:`never`,approvalMode:null},auto:{sandbox:`workspace-write`,approvalPolicy:`on-request`,approvalMode:`auto`}},Ft={"read-only":[`--permission-mode`,`dontAsk`,`--disallowedTools`,`Edit`,`Write`,`NotebookEdit`],"workspace-write":[`--permission-mode`,`acceptEdits`],auto:[`--permission-mode`,`auto`]},It=[`--permission-mode`,`dontAsk`,`--disallowedTools`,`Edit`,`Write`,`NotebookEdit`,`Bash`,`WebFetch`,`WebSearch`,`Task`],Lt=/failIfUnavailable|sandbox\b[^.\n]*?(?:failed|could ?n[o']t|cannot|unavailable|not available|not supported)/i,Rt=new Set([`localhost`,`127.0.0.1`,`::1`,`[::1]`]);function zt(e){return e.flatMap(e=>d.isIPv6(e)?[`[${e}]`]:e.startsWith(`[`)||e.includes(`:`)||d.isIP(e)?[e]:[e,`*.${e}`])}function Bt(e,t,n=[],r=[],i=[]){let a=e===`read-only`?r:[...r,...i],o=a.length?{permissions:{additionalDirectories:a}}:{};return JSON.stringify(e===`read-only`?{...o,sandbox:{enabled:!0,failIfUnavailable:!0,autoAllowBashIfSandboxed:!0,filesystem:{denyWrite:[t,...r],...i.length?{allowWrite:i}:{}}}}:{...o,sandbox:{enabled:!0,autoAllowBashIfSandboxed:!0,...e===`auto`&&n.length?{network:{allowedDomains:zt(n),...n.some(e=>Rt.has(e))?{allowLocalBinding:!0}:{}}}:{}}})}const Vt=r.enum([`codex`,`claude`]),Ht=r.enum([`codex`,`claude`,`custom`]),Ut=r.enum([`low`,`medium`,`high`]),Wt=r.enum([`read-only`,`workspace-write`,`auto`]),Gt=r.partial(r.strictObject({model:r.string().check(r.minLength(1)),effort:Ut,permissions:Wt})),Kt=r.partial(r.strictObject({model:r.string().check(r.minLength(1)),effort:Ut,permissions:Wt,network:r.boolean()})),qt=r.strictObject({baseUrl:r.url(),model:r.string().check(r.minLength(1)),envKey:r.optional(r.string().check(r.minLength(1))),wireApi:r.optional(r.enum([`chat`,`responses`])),disabled:r.optional(r.boolean())}),Jt=r.strictObject({provider:Vt,model:r.string().check(r.minLength(1)),effort:r.optional(Ut),disabled:r.optional(r.boolean())}),Yt=r.strictObject({disabled:r.boolean()}),Xt=r.union([qt,Jt,Yt]),Zt=r.strictObject({escalationTimeoutMs:r.number().check(r.positive()),allowedNetworkHosts:r.array(r.string())}),Qt=r.enum([`observe`,`comment`,`write`]),$t=r.string().check(r.regex(/^[a-z0-9][a-z0-9_-]*$/i,`agent or flow name`)),en=r.strictObject({allowedTools:r.optional(r.union([Qt,r.array(r.string())])),allowedEvents:r.optional(r.array(r.string()))}),tn=r.union([r.boolean(),r.strictObject({engine:r.optional(r.string()),model:r.optional(r.string()),effort:r.optional(Ut),permissions:r.optional(Wt),runner:r.optional(r.enum([`local`,`local-docker`,`vercel-sandbox`,`github-actions`])),integrations:r.optional(r.record(r.string(),en))})]),nn=r.strictObject({command:r.optional(r.string().check(r.minLength(1))),args:r.optional(r.array(r.string())),env:r.optional(r.record(r.string(),r.string())),url:r.optional(r.string().check(r.minLength(1))),type:r.optional(r.enum([`stdio`,`http`,`sse`])),headers:r.optional(r.record(r.string(),r.string())),tools:r.optional(r.array(r.string())),description:r.optional(r.string())}).check(r.refine(e=>!!e.command!=!!e.url,`one of command or url`)),rn=r.strictObject({chain:r.array(Ht).check(r.minLength(1)),engines:r.partial(r.strictObject({codex:Kt,claude:Gt,custom:Gt})),models:r.optional(r.record(r.string().check(r.regex(/^[a-z0-9][a-z0-9./_-]*$/i,`model name`)),Xt)),agents:r.optional(r.record($t,tn)),mcp:r.optional(r.record($t,nn)),approvals:Zt}),an=r.partial(r.extend(rn,{approvals:r.partial(Zt)}));function W(e){return`baseUrl`in e}function on(e){return`provider`in e}function sn(e,t){return t??e===`auto`}const cn=/^(?!-)[a-z0-9-]{1,63}(?<!-)(?:\.(?!-)[a-z0-9-]{1,63}(?<!-))*(?::\d{1,5})?$/i;function ln(e){if(d.isIP(e))return!0;let t=/^\[([^\]]+)\](?::\d{1,5})?$/.exec(e);return t?d.isIPv6(t[1]):e.length<=253&&cn.test(e)}function un(e,t){delete e.models?.[t];for(let n of Object.values(e.engines??{}))n?.model===t&&delete n.model}function G(e){let t=Object.keys(e?.agents??{}).filter(e=>[`codex`,`claude`,`custom`].includes(e));if(t.length)return t.map(e=>`agents.${e}: engine defaults moved to engines.${e}`);let n=an.safeParse(e);if(!n.success)return n.error.issues.map(e=>`${e.path.join(`.`)||`config`}: ${e.message}`);let r=pn(V,n.data),i=[];for(let[e,t]of(n.data.approvals?.allowedNetworkHosts??[]).entries())ln(t)||i.push(`approvals.allowedNetworkHosts.${e}: "${t}" is not a host name or IP address`);for(let[e,t]of Object.entries(n.data.models??{})){if(e===`codex`||e===`claude`||e===`custom`){i.push(`models.${e}: reserved engine name`);continue}if(on(t)){let n=r.models?.[t.model];n&&!W(n)&&i.push(`models.${e}: alias target "${t.model}" is itself a config entry`)}}return i}function dn(e){if(!i.existsSync(e))return null;try{return JSON.parse(i.readFileSync(e,`utf8`))}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Invalid JSON in ${e}: ${n}`)}}function fn(e){return pn(V,e)}function pn(e,t){if(!t||typeof t!=`object`||Array.isArray(t))return t??e;let n={...e},r=e;for(let[e,i]of Object.entries(t))n[e]=i&&typeof i==`object`&&!Array.isArray(i)&&r?.[e]&&typeof r[e]==`object`?pn(r[e],i):i;return n}function K(){return k(`config.json`)}const mn=[`coder.config.json`,`coder.json`];function q(t){let n=e.join(t,`.coder`,`config.json`);if(i.existsSync(n))return n;for(let r of mn){let a=e.join(t,r);if(i.existsSync(a)){i.mkdirSync(e.dirname(n),{recursive:!0}),i.renameSync(a,n),process.stderr.write(`coder: moved ${r} to .coder/config.json\n`);break}}return n}const hn=`CODER_WORKSPACE_CONFIG`;function gn(e,t){let n=t.approvals?.allowedNetworkHosts?.filter(t=>e.approvals.allowedNetworkHosts.includes(t)),r=Object.fromEntries(Object.entries(t.engines??{}).map(([e,t])=>[e,{...t?.model?{model:t.model}:{},...t?.effort?{effort:t.effort}:{}}])),i=Object.entries(t.models??{}).filter(([,e])=>e.disabled===!0);return{...t.chain?{chain:t.chain.filter(t=>e.chain.includes(t))}:{},engines:r,models:Object.fromEntries(i.map(([e])=>[e,{disabled:!0}])),...n?{approvals:{...e.approvals,allowedNetworkHosts:n}}:{}}}function J(e){let t=j(e),n=process.env[hn],r=[[K(),dn(K())],...n?[[`the workspace config`,JSON.parse(n)]]:[]],i=q(t);r.push([i,dn(i)]);let a=V;for(let[e,t]of r){if(!t)continue;let r=G(t);if(r.length)throw Error(`Invalid config in ${e}:\n ${r.join(`
|
|
5
|
-
`)}`);a=pn(a,n&&e===i?gn(a,t):t)}let o=G(a);if(o.length)throw Error(`Invalid merged config:\n ${o.join(`
|
|
6
|
-
`)}`);return a}function _n(e){return e.replace(/\/+$/,``).replace(/\/(chat\/completions|completions|responses)$/,``)}function vn(e,t,n){let r=[q(j(e)),K()];for(let e of r){let r;try{r=dn(e)}catch{continue}if(r?.models?.[t])return Object.assign(r.models[t],n),!G(r).length&&(i.writeFileSync(e,`${JSON.stringify(r,null,2)}\n`,`utf8`),!0)}return!1}function yn(e){return/\/(chat\/completions|completions|responses)\/*$/.test(e)}function bn(e,t){let n=_n(e);return yn(e)||/\/v\d+(alpha|beta)?$/.test(n)?[`${n}/${t}`]:[`${n}/${t}`,`${n}/v1/${t}`]}function xn(e,t,n){let r=t?e.models?.[t]:void 0;if(!t||!r||!W(r))return null;let i=`coder-${t}`;return{model:r.model,modelProvider:i,configOverrides:{[`model_providers.${i}`]:{name:t,base_url:n?.url??_n(r.baseUrl),...r.envKey&&!n?{env_key:r.envKey}:{},wire_api:`responses`}}}}function Sn(e){return e?H[e]??e:null}function Cn(e){return e in H||e in U}function wn(e,t){return!!(t&&e.models?.[t]?.disabled)}function Tn(e,t){if(wn(e,t))throw Error(`model "${t}" is disabled in config`)}function En(e,t){if(!e)return null;let n=String(e).trim().split(`:`).map(e=>e.trim());if(!n.length||n.length>3||n.some(e=>!e))throw Error(`Invalid engine spec "${e}".`);let r=null,i=null,a=null,o=e=>Mt.has(e)||Nt.has(e);for(let t of n)if(t===`codex`||t===`claude`||t===`custom`){if(r)throw Error(`Invalid engine spec "${e}".`);r=t}else if(o(t)&&!a)a=t;else if(!i)i=t;else throw Error(`Invalid engine spec "${e}".`);let s=i?t.models?.[i]:void 0;if(s&&on(s)){if(s.disabled)throw Error(`model "${i}" is disabled in config`);if(r&&r!==s.provider)throw Error(`Alias "${i}" runs on ${s.provider}, not ${r}.`);r=s.provider,a=a??s.effort??null,i=s.model}r||=i&&i in U?`claude`:i&&s&&W(s)?`custom`:`codex`;let c=t.engines[r]??{},l=i??c.model??null;return Tn(t,l),{engine:r,model:l,effort:a??c.effort??null}}function Dn(t){let n=K();return i.mkdirSync(e.dirname(n),{recursive:!0}),i.writeFileSync(n,`${JSON.stringify(t,null,2)}\n`,`utf8`),n}function On(e,t){return t.split(`.`).reduce((e,t)=>e?.[t],e)}function kn(e,t){return t?q(j(e)):K()}function An(e,t){let n=J(e);return t?On(n,t):n}function jn(e,t,n,r={}){let i=kn(e,r.workspace);Mn(i,e=>{let i=t.split(`.`),a=i.at(-1),o=e;for(let e of i.slice(0,-1))(typeof o[e]!=`object`||o[e]===null)&&(o[e]={}),o=o[e];r.unset?delete o[a]:o[a]=n});let a=On(J(e),t)??null;return{file:i,key:t,...r.unset?{unset:!0}:{value:n},effective:a}}function Mn(t,n){let r=i.existsSync(t)?JSON.parse(i.readFileSync(t,`utf8`)):{};n(r),r.models&&Object.keys(r.models).length===0&&delete r.models;let a=G(r);if(a.length)throw Error(`Refusing to write invalid config:\n ${a.join(`
|
|
7
|
-
`)}`);i.mkdirSync(e.dirname(t),{recursive:!0}),i.writeFileSync(t,`${JSON.stringify(r,null,2)}\n`,`utf8`)}function Nn(e,t){return t?K():q(j(e))}function Pn(e,t){let n={};for(let r of(e??``).split(`,`).map(e=>e.trim()).filter(Boolean)){let e=r.indexOf(`=`);if(e<1)throw Error(`Invalid ${t} "${r}": use KEY=VALUE (values may hold \${VAR}).`);n[r.slice(0,e)]=r.slice(e+1)}return n}function Fn(e,t,n,r){let i=Nn(e,r);return Mn(i,e=>{e.mcp={...e.mcp,[t]:n}}),{name:t,file:i}}function In(e,t,n={}){let[r,...i]=n.command??[];if(!t)throw Error(`Usage: coder mcp add <name> [--tools a,b] [--user] (--url <url> [--header K=V] | -- <command> [args...])`);if(!r&&!n.url)throw Error("Give a remote --url, or a command after `--`.");if(r&&n.url)throw Error(`Use either --url or a command, not both.`);let a=n.tools?{tools:n.tools.split(`,`).map(e=>e.trim()).filter(Boolean)}:{},o=Pn(n.env,`--env`),s=Pn(n.header,`--header`);return Fn(e,t,n.url?{url:n.url,...n.transport?{type:n.transport}:{},...Object.keys(s).length?{headers:s}:{},...a}:{command:r,...i.length?{args:i}:{},...Object.keys(o).length?{env:o}:{},...a},n.user)}function Ln(e,t,n,r={}){if(!t||!n)throw Error(`Usage: coder mcp add-json <name> '<json entry>' [--user]`);let i=n;if(typeof n==`string`)try{i=JSON.parse(n)}catch(e){throw Error(`Invalid JSON: ${e instanceof Error?e.message:String(e)}`)}if(!i||typeof i!=`object`||Array.isArray(i))throw Error(`The entry must be a JSON object.`);return Fn(e,t,i,r.user)}function Rn(e){return J(e).mcp??{}}function zn(e,t,n={}){if(!t)throw Error(`Usage: coder mcp rm <name> [--user]`);let r=Nn(e,n.user);return Mn(r,e=>{if(!e.mcp?.[t])throw Error(`No MCP server "${t}" in ${r}.`);delete e.mcp[t],Object.keys(e.mcp).length||delete e.mcp}),{name:t,file:r}}const Bn=/access token could not be refreshed/i,Vn=/model is not supported|Codex cannot run model/i;function Hn(e){return e instanceof Error?e.message:String(e??``)}function Un(e){return Bn.test(e??``)}function Wn(e){return Vn.test(e??``)}function Gn(e,t){return!Wn(e)||/Codex cannot run model/.test(e??``)?null:`Codex cannot run model ${/'([^']+)' model/.exec(e??``)?.[1]??t??`this model`} on the signed-in account. Run \`codex login\` with an account that has it, or pick another alias (coder model list).`}function Kn(t=process.env){return e.join(t.CODEX_HOME||e.join(u.homedir(),`.codex`),`auth.json`)}function qn(e){try{let t=JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString(`utf8`));return String(t.sub??t.email??``)}catch{return``}}function Jn(e=process.env,t){let n=Kn(e),r;try{r=i.statSync(n).mtimeMs}catch{return``}if(t?.file===n&&t.mtimeMs===r)return t.fingerprint??``;try{let e=JSON.parse(i.readFileSync(n,`utf8`)),a=e.OPENAI_API_KEY?c(`sha256`).update(String(e.OPENAI_API_KEY)).digest(`hex`):``,o=[e.auth_mode??``,e.tokens?.account_id??``,qn(e.tokens?.id_token),a].join(`|`);return t&&Object.assign(t,{file:n,mtimeMs:r,fingerprint:o}),o}catch{return t?.file===n?t.fingerprint??``:``}}const Yn=`CODER_MAILBOX`,Xn=/^([a-f0-9-]{36})\.(?:req|applying)\.json$/;function Zn(e){if(!e)return l();if(!e.task||!Number.isInteger(e.generation)||e.generation<0||!Number.isInteger(e.seq)||e.seq<0)throw Error(`Invalid command key`);let t=c(`sha256`).update(JSON.stringify([e.task,e.generation,e.seq])).digest(`hex`).slice(0,32);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}const Qn=[`hint`,`taskId`,`payload`,`approval`,`result`,`runId`,`status`];function $n(e=t.env){return e.CODER_MAILBOX||void 0}function er(e,t){let n=`${e}.${l()}.tmp`;i.writeFileSync(n,JSON.stringify(t),{encoding:`utf8`,flag:`wx`}),i.renameSync(n,e)}async function tr(t,n,r={}){let a=r.dir??$n();if(!a)throw Error(`No mailbox: not inside an agent task.`);let o=r.id??l(),s=e.join(a,`${o}.res.json`);i.existsSync(s)||er(e.join(a,`${o}.req.json`),{kind:t,payload:n});let c=Date.now();for(;!i.existsSync(s);){if(r.timeoutMs&&Date.now()-c>=r.timeoutMs)throw Error(`Worker control timed out`);await new Promise(e=>setTimeout(e,100))}let{result:u,error:d}=JSON.parse(i.readFileSync(s,`utf8`));if(r.keepReply||i.rmSync(s,{force:!0}),d){let{code:e,message:t,...n}=d;throw new B(e,t,n)}return u}function nr(t,n){i.mkdirSync(t,{recursive:!0});let r=new Set,a=async(a,o)=>{let s;try{let r=e.join(t,a);if(!i.lstatSync(r).isFile())throw Error(`mailbox request is not a regular file`);let{kind:c,payload:l}=JSON.parse(i.readFileSync(r,`utf8`)),u=e.join(t,`${o}.applying.json`);i.existsSync(u)||er(u,{kind:c,payload:l});let d=Object.hasOwn(n,c)?n[c]:void 0;if(!d)throw Error(`unknown mailbox request "${c}"`);s={result:await d(l??{})??null}}catch(e){let t=e instanceof B?e:void 0;s={error:{code:t?.code??`invalid-option`,message:e instanceof Error?e.message:String(e),...Object.fromEntries(Qn.flatMap(e=>t?.[e]===void 0?[]:[[e,t[e]]]))}}}try{er(e.join(t,`${o}.res.json`),s),i.rmSync(e.join(t,`${o}.req.json`),{force:!0}),i.rmSync(e.join(t,`${o}.applying.json`),{force:!0}),r.delete(o)}catch{}},o=setInterval(()=>{let n=[];try{n=i.readdirSync(t)}catch{return}for(let o of n){let n=Xn.exec(o)?.[1];if(n){if(i.existsSync(e.join(t,`${n}.res.json`))){i.rmSync(e.join(t,o),{force:!0});continue}r.has(n)||(r.add(n),a(o,n))}}},100);return()=>clearInterval(o)}function rr(t,n){return n.agentId?e.join(F(t,n.id),`mailbox`):null}function ir(e,t){let n=`${e}.${process.pid}.${l()}.tmp`;i.writeFileSync(n,`${JSON.stringify(t)}\n`,`utf8`),i.renameSync(n,e)}function ar(e){let t=e instanceof Error?e.message:String(e);return/no active turn|active turn.*(?:ended|completed)|turn.*(?:already )?(?:ended|completed)|turn.*not active/i.test(t)}function Y(e,t,n){return Object.assign(Error(e),{retryable:t,...n===void 0?{}:{rpcCode:n}})}function or(e,t,n,r){if(!e||e.id!==t||e.method!==`turn/steer`&&e.method!==`turn/interrupt`)throw Y(`Invalid Codex control request.`,!1);let i=e.params;if(!i||typeof i!=`object`||i.threadId!==n)throw Y(`Codex control request does not match its owning thread.`,!1);if(e.method===`turn/interrupt`){if(i.turnId!==r)throw Y(`Codex turn/interrupt request does not match its owning active turn.`,!1);return{method:e.method,params:i}}if(i.expectedTurnId!==r)throw Y(`Codex turn/steer request does not match its owning active turn.`,!1);let a=i.input;if(!Array.isArray(a)||a.length!==1||a[0]?.type!==`text`||typeof a[0]?.text!=`string`||!a[0].text.trim())throw Y(`Invalid Codex turn/steer input schema.`,!1);return{method:e.method,params:i}}async function sr(t,{threadId:n,turnId:r}){let a=i.mkdtempSync(e.join(u.tmpdir(),`coder-codex-control-`)),o=`file:${a}`,s=new Set,c=new Set,l=!1,d=!1,f=(o=!1)=>{if(!(l&&!o||d)){d=!0;try{for(let o of i.readdirSync(a).filter(e=>e.endsWith(`.request.json`))){let u=o.slice(0,-13),d=e.join(a,o),f=e.join(a,`${u}.response.json`);if(i.existsSync(f)){i.unlinkSync(d);continue}if(c.has(u))continue;let p=`${d}.${process.pid}.processing`;try{i.renameSync(d,p)}catch{continue}c.add(u);let m=(async()=>{let e;try{if(l)throw Y(`Codex owner endpoint is shutting down.`,!0);let a=or(JSON.parse(i.readFileSync(p,`utf8`)),u,n,r);try{let n=await t.request(a.method,a.params);e={id:u,result:n}}catch(t){let n=t;e={id:u,error:{message:t instanceof Error?t.message:String(t),retryable:ar(t),...n.rpcCode===void 0?{}:{rpcCode:n.rpcCode}}}}}catch(t){let n=t;e={id:u,error:{message:n.message,retryable:n.retryable===!0,...n.rpcCode===void 0?{}:{rpcCode:n.rpcCode}}}}try{ir(f,e)}finally{c.delete(u);try{i.unlinkSync(p)}catch{}}})();s.add(m),m.then(()=>s.delete(m),()=>s.delete(m))}}catch{}finally{d=!1}}},p=setInterval(f,10);return p.unref?.(),{endpoint:o,async close(){l||(l=!0,clearInterval(p),f(!0),await Promise.allSettled([...s]),await new Promise(e=>setTimeout(e,50)),i.rmSync(a,{recursive:!0,force:!0}))}}}function cr(t){if(t?.startsWith(`file:`)&&t.length>5){let n=e.resolve(t.slice(5)),r=e.resolve(u.tmpdir());e.dirname(n)===r&&e.basename(n).startsWith(`coder-codex-control-`)&&i.rmSync(n,{recursive:!0,force:!0})}}async function lr(t,n,r,a=3e3,o){if(!t)return{ok:!1,retryable:!0,detail:`Codex owner endpoint is not ready.`};if(!t.startsWith(`file:`)||t.length===5)return{ok:!1,retryable:!1,detail:`Unsupported Codex control endpoint: ${t}`};let s=t.slice(5);if(!i.existsSync(s))return{ok:!1,retryable:!0,detail:`Codex owner endpoint is no longer available.`};let c=Zn(o),l=e.join(s,`${c}.request.json`),u=e.join(s,`${c}.response.json`);try{i.existsSync(u)||ir(l,{id:c,method:n,params:r,command:o})}catch(e){return{ok:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let d=Date.now();for(;Date.now()-d<a;){try{let e=JSON.parse(i.readFileSync(u,`utf8`));try{(!o||e?.error?.retryable)&&i.unlinkSync(u)}catch{}return e?.id===c?e?.error?{ok:!1,retryable:e.error.retryable===!0,detail:String(e.error.message??`Malformed Codex owner error response.`)}:`result`in e?{ok:!0,retryable:!1,result:e.result,detail:`Codex owner accepted control.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response id.`}}catch(e){if(e.code!==`ENOENT`)return{ok:!1,retryable:!1,detail:`Invalid Codex owner response: ${e instanceof Error?e.message:String(e)}`};if(!i.existsSync(s))return{ok:!1,retryable:!1,detail:`Codex owner endpoint closed after control publication; acceptance is unknown.`}}await new Promise(e=>setTimeout(e,10))}return{ok:!1,retryable:!1,detail:`Timed out waiting for Codex owner acknowledgement.`}}const ur=`Coder Task`;function dr(e,t=72){let n=String(e??``).trim().replace(/\s+/g,` `);return n?n.length<=t?n:`${n.slice(0,t-3)}...`:``}function fr(e){let t=dr(e,56);return t?`${ur}: ${t}`:ur}function pr(e){return e?.params?.threadId??null}function mr(e){return e?.params?.turnId?e.params.turnId:e?.params?.turn?.id?e.params.turn.id:null}function hr(e){let t=new Set;for(let n of e)for(let e of n.changes??[])e.path&&t.add(e.path);return[...t]}function gr(e,t){let n=[];for(let r of e.matchAll(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/gm)){let e=t===`delete`,i=Number(e?r[1]:r[3]),a=Number((e?r[2]:r[4])??1);!Number.isFinite(i)||!Number.isFinite(a)||n.push(a<=1?`L${i}`:`L${i}-L${i+a-1}`)}return n}function _r(e){try{let t=i.readFileSync(e,`utf8`),n=t?t.split(/\r\n|\r|\n/).length-+!!t.endsWith(`
|
|
8
|
-
`):0;return n>0?[n===1?`L1`:`L1-L${n}`]:[]}catch{return[]}}function vr(e,t,n){let r=typeof e.kind==`string`?e.kind:e.kind?.type??`change`,i=e.path||`(unknown path)`,a=gr(e.diff??``,r),o=a.length||r!==`add`||!t?a:_r(i),s=typeof e.kind==`object`&&e.kind?.move_path?` -> ${n?p(n,e.kind.move_path):e.kind.move_path}`:``;return`${r} ${n?p(n,i):i}${s}${o.length?` ${o.join(`, `)}`:``}`}function yr(e,t=!1,n){return(e.changes??[]).map(e=>vr(e,t,n)).join(`; `)}function br(e){let t=e.trim().split(` `)[0]??``;return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function xr(e,t){let n=new Map,r=``,i=``;for(let t of e.split(/\r?\n/)){if(t.startsWith(`--- `)){r=br(t.slice(4));continue}if(t.startsWith(`+++ `)){i=br(t.slice(4));continue}let e=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/.exec(t);if(!e)continue;let a=Number(e[1]),o=Number(e[2]??1),s=Number(e[3]),c=Number(e[4]??1),l=c===0,u=(l?r:i)||i||r||`(unknown path)`,d=l?a:s,f=l?o:c,p=f<=1?`L${d}`:`L${d}-L${d+f-1}`,m=n.get(u)??[];m.push(p),n.set(u,m)}return[...n].map(([e,n])=>`${t?p(t,e):e} ${n.join(`, `)}`).join(`; `)}function Sr(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.inputTokens),r=t(e.cachedInputTokens),i=t(e.outputTokens);return{input:n,cachedInput:r,output:i,total:t(e.totalTokens)||n+r+i}}function Cr(e){if(e.tokenUsageByThread.size===0)return null;let t={input:0,cachedInput:0,output:0,total:0};for(let n of e.tokenUsageByThread.values())t.input+=n.input,t.cachedInput+=n.cachedInput,t.output+=n.output,t.total+=n.total;return t}function wr(e){return String(e??``).replace(/\s+/g,` `).trim()}function X(e){if(!e)return[];if(typeof e==`string`){let t=wr(e);return t?[t]:[]}if(Array.isArray(e))return e.flatMap(e=>X(e));if(typeof e==`object`){let t=e;if(typeof t.text==`string`)return X(t.text);if(`summary`in t)return X(t.summary);if(`content`in t)return X(t.content);if(`parts`in t)return X(t.parts)}return[]}function Tr(e,t){let n=[];for(let r of[...e,...t]){let e=wr(r);!e||n.includes(e)||n.push(e)}return n}function Z(e,t,n=null,r={}){!e||t==null||e({message:t,phase:n,...r})}function Er(e,t){t&&Z(e,t.message,t.phase??null,t.extra??{})}function Dr(e){return e.replace(/^\/(?:usr\/)?bin\/\w*sh\s+-l?c\s+/,``)}function Or(e,t){let n=e?.extra?.kind;return!e||n!==`tool`&&n!==`tool-result`||typeof t.id!=`string`?e:{...e,extra:{...e.extra,callId:t.id}}}function kr(e,t){switch(e.type){case`commandExecution`:return{message:Dr(String(e.command??``).trim()),phase:`running`,extra:{kind:`tool`,tool:`command`}};case`fileChange`:return null;case`mcpToolCall`:return{message:`${e.server}/${e.tool}`,phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`dynamicToolCall`:return{message:String(e.tool??``),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`webSearch`:return{message:`search: ${String(e.query??``).trim()}`,phase:`investigating`,extra:{kind:`tool`,tool:`search`}};default:return null}}function Ar(e,t){switch(e.type){case`agentMessage`:{let t=String(e.text??``).trim();return t?{message:t,phase:null,extra:{kind:`assistant`}}:null}case`reasoning`:{let t=X(e.summary).join(`
|
|
9
|
-
`);return t?{message:t,phase:null,extra:{kind:`reasoning`}}:null}case`commandExecution`:{let t=typeof e.exitCode==`number`?e.exitCode:null;return{message:String(e.aggregatedOutput??``).trim(),phase:`running`,extra:{kind:`tool-result`,tool:`command`,command:String(e.command??``).trim(),...t===null?{isError:e.status!==`completed`}:{exitCode:t}}}}case`fileChange`:return{message:yr(e,!0,t)||`(details unavailable)`,phase:`editing`,extra:{kind:`tool`,tool:`edit`}};case`mcpToolCall`:return{message:`${e.server}/${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,isError:e.status!==`completed`}};case`dynamicToolCall`:return{message:`${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,isError:e.status!==`completed`}};default:return null}}function jr(e,t={}){let n,r,i=new Promise((e,t)=>{n=e,r=t});return{threadId:e,rootThreadId:e,threadIds:new Set([e]),threadTurnIds:new Map,turnId:null,bufferedNotifications:[],completion:i,resolveCompletion:n,rejectCompletion:r,finalTurn:null,completed:!1,finalAnswerSeen:!1,pendingCollaborations:new Set,activeSubagentTurns:new Set,completionTimer:null,lastAgentMessage:``,reasoningSummary:[],error:null,fileChanges:[],commandExecutions:[],tokenUsageByThread:new Map,lastDiffSummary:``,loggedTokens:0,reportedChanges:new Set,cwd:t.cwd??``,itemIndex:new Map,onProgress:t.onProgress??null,onHeartbeat:t.onHeartbeat??null}}function Mr(e){e.completionTimer&&=(clearTimeout(e.completionTimer),null)}function Nr(e,t=null){e.completed||(Mr(e),e.completed=!0,t?(e.finalTurn=t,e.turnId||=t.id??null):e.finalTurn||={id:e.turnId??`inferred-turn`,status:`completed`},e.resolveCompletion(e))}function Pr(e){e.completed||e.finalTurn||!e.finalAnswerSeen||e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||(Mr(e),e.completionTimer=setTimeout(()=>{e.completionTimer=null,!(e.completed||e.finalTurn||!e.finalAnswerSeen)&&(e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||Nr(e,null))},250),e.completionTimer.unref?.())}function Fr(e,t){let n=pr(t);if(!n||!e.threadIds.has(n))return!1;let r=e.threadTurnIds.get(n)??null,i=mr(t);return r===null||i===null||i===r}function Ir(e,t,n,r=null){if(t.id&&e.itemIndex.set(t.id,t),t.type===`collabAgentToolCall`){(!r||r===e.threadId)&&(n===`started`||t.status===`inProgress`?e.pendingCollaborations.add(t.id):n===`completed`&&(e.pendingCollaborations.delete(t.id),Pr(e)));for(let n of t.receiverThreadIds??[])e.threadIds.add(n)}if(t.type===`agentMessage`){t.text&&(!r||r===e.threadId)&&(e.lastAgentMessage=t.text.trim(),n===`completed`&&t.phase===`final_answer`&&(e.finalAnswerSeen=!0,Pr(e)));return}if(t.type===`reasoning`&&n===`completed`){e.reasoningSummary=Tr(e.reasoningSummary,X(t.summary));return}if(t.type===`fileChange`&&n===`completed`){e.fileChanges.push(t);return}t.type===`commandExecution`&&n===`completed`&&e.commandExecutions.push(t)}function Lr(e,t){switch(e.onHeartbeat?.(),t.method){case`thread/started`:e.threadIds.add(t.params.thread.id);break;case`turn/started`:e.threadIds.add(t.params.threadId),e.threadTurnIds.set(t.params.threadId,t.params.turn.id),(t.params.threadId??null)!==e.threadId&&e.activeSubagentTurns.add(t.params.threadId),Z(e.onProgress,`Turn started (${t.params.turn.id}).`,`starting`,{kind:`status`,threadId:t.params.threadId??null,turnId:t.params.turn.id??null});break;case`item/started`:Ir(e,t.params.item,`started`,t.params.threadId??null),Er(e.onProgress,Or(kr(t.params.item,e.cwd),t.params.item));break;case`item/completed`:{Ir(e,t.params.item,`completed`,t.params.threadId??null);let n=t.params.item;if(n?.type===`fileChange`)for(let t of n.changes??[])t.path&&e.reportedChanges.add(p(e.cwd,t.path));Er(e.onProgress,Or(Ar(n,e.cwd),n));break}case`thread/tokenUsage/updated`:{let n=Sr(t.params?.tokenUsage?.total??t.params?.tokenUsage),r=pr(t);if(n&&r){e.tokenUsageByThread.set(r,n);let t=Cr(e);t&&(!e.loggedTokens||t.total-e.loggedTokens>=1e3)&&(e.loggedTokens=t.total,e.onProgress?.({kind:`usage`,tokens:t}))}break}case`turn/diff/updated`:{let n=xr(String(t.params?.diff??``),e.cwd).split(`; `).filter(t=>!e.reportedChanges.has(t.split(` `)[0]??``)).join(`; `);n&&n!==e.lastDiffSummary&&(e.lastDiffSummary=n,Z(e.onProgress,`changed: ${n}`,`editing`,{kind:`status`}));break}case`item/autoApprovalReview/completed`:{let n=t.params?.review??{},r=t.params?.action??{},i=Dr(String(r.command??r.type??``).trim());Z(e.onProgress,`Auto-review ${n.status}. ${dr(i,48)}${n.rationale?`. ${dr(n.rationale,320)}`:``}`,null,{kind:`auto-review`,decision:String(n.status??``),...n.riskLevel?{riskLevel:String(n.riskLevel)}:{},...i?{summary:`run command: ${i}`}:{},...n.rationale?{reason:String(n.rationale)}:{}});break}case`error`:e.error=t.params.error,Z(e.onProgress,`Codex error: ${t.params.error.message}`,`failed`,{kind:`error`});break;case`turn/completed`:if((t.params.threadId??null)!==e.threadId){e.activeSubagentTurns.delete(t.params.threadId),Pr(e);break}Z(e.onProgress,`Turn ${t.params.turn.status}.`,`finalizing`,{kind:`status`}),Nr(e,t.params.turn)}}async function Rr(e,t,n,r={}){let i=jr(t,r),a=e.notificationHandler;e.setNotificationHandler(e=>{if(!i.turnId){i.bufferedNotifications.push(e);return}if(e.method===`thread/started`){Lr(i,e);return}if(!Fr(i,e)){a?.(e);return}Lr(i,e)});let o=r.onApprovalRequest;o&&e.setServerRequestHandler((e,t)=>o(e,t,i));try{let t=await n();i.turnId=t.turn?.id??null,i.turnId&&(i.threadTurnIds.set(i.threadId,i.turnId),await r.onTurnStarted?.(i.turnId));for(let e of i.bufferedNotifications)Fr(i,e)?Lr(i,e):a?.(e);i.bufferedNotifications.length=0,t.turn?.status&&t.turn.status!==`inProgress`&&Nr(i,t.turn);let o=e.exitPromise?.then(()=>{throw e.exitError??Error(`codex app-server connection closed before the turn completed.`)});return await(o?Promise.race([i.completion,o]):i.completion)}finally{Mr(i),e.setNotificationHandler(a??null),e.setServerRequestHandler(null)}}function zr(e,t,n=[]){return e!==`workspace-write`||!n.length?null:{type:`workspaceWrite`,writableRoots:n,networkAccess:t??!1}}const Br=`coder_read_only`;function Vr(e,t=[]){return(e??`read-only`)!==`read-only`||!t.length?null:{default_permissions:Br,[`permissions.${Br}`]:{extends:`:read-only`,filesystem:Object.fromEntries(t.map(e=>[e,`write`]))}}}function Hr(e=[],t=[],n=!1){let r={};!n&&t.length&&(r.mcp_servers=Object.fromEntries(t.map(e=>[e,{enabled:!1}])));let i=new Set([...t,...e.map(e=>e.name)]);for(let n of e){let e=n.name;if(t.includes(e)){for(let t=1;i.has(e);t++)e=`${n.name}_coder_${t}`;i.add(e)}r[`mcp_servers.${e}`]={...n.url?{url:n.url,...n.headers?{http_headers:n.headers}:{}}:{command:n.command,args:n.args??[],...n.env?{env:n.env}:{}},...n.tools?.length?{enabled_tools:n.tools}:{}}}return r}function Ur(e){return e.split(/\r?\n/).map(e=>e.trimEnd()).filter(e=>e&&!e.startsWith(`WARNING: proceeding, even though we could not update PATH:`)).join(`
|
|
10
|
-
`)}async function Wr(e,t,n={}){let r=n.connect??E.connect,i={...n.networkAccess===void 0?{}:{networkAccess:n.networkAccess},nativeMcp:n.nativeMcp??!1},a=null;try{a=await r(e,i);let n=await t(a);return await a.close(),n}catch(n){let o=n,s=a?.transport===`broker`||!!process.env.CODER_APP_SERVER_ENDPOINT,c=a?.transport===`broker`&&o?.rpcCode===-32001||s&&(o?.code===`ENOENT`||o?.code===`ECONNREFUSED`);if(a&&=(await a.close().catch(()=>{}),null),!c)throw n;let l=await r(e,{...i,disableBroker:!0});try{return await t(l)}finally{await l.close()}}}function Q(t){let n=process.env.CODEX_AUTH_JSON;if(n){let t=e.join(u.homedir(),`.codex`),r=e.join(t,`auth.json`);if(!i.existsSync(r)){i.mkdirSync(t,{recursive:!0,mode:448});try{i.writeFileSync(r,n,{encoding:`utf8`,flag:`wx`,mode:384})}catch(e){if(e.code!==`EEXIST`)throw e}}}let r=ge(`codex`,[`--version`],{cwd:t});if(!r.available)return r;let a=ge(`codex`,[`app-server`,`--help`],{cwd:t});return a.available?{available:!0,detail:`${r.detail}; app-server runtime available`}:{available:!1,detail:`${r.detail}; app-server runtime unavailable: ${a.detail}`}}async function Gr(e){let t=Q(e);if(!t.available)return{available:!1,loggedIn:!1,detail:t.detail};let n=null;try{n=await E.connect(e,{reuseExistingBroker:!0});let t=await n.request(`account/read`,{refreshToken:!1}),r=t?.account??null;return r?.type===`chatgpt`?{available:!0,loggedIn:!0,detail:r.email?`ChatGPT login active for ${r.email}`:`ChatGPT login active`}:r?.type===`apiKey`?{available:!0,loggedIn:!0,detail:`API key configured`}:t?.requiresOpenaiAuth===!1?{available:!0,loggedIn:!0,detail:`Active provider does not require OpenAI authentication`}:{available:!0,loggedIn:!1,detail:"Not authenticated. Run `codex login`."}}catch(e){let t=s(`codex`,[`login`,`status`],{encoding:`utf8`}),n=`${t.stdout??``}${t.stderr??``}`.trim();return t.status===0?{available:!0,loggedIn:!0,detail:n||`Logged in`}:{available:!0,loggedIn:!1,detail:n||(e instanceof Error?e.message:String(e))}}finally{await n?.close().catch(()=>{})}}async function Kr(e,{endpoint:t,threadId:n,turnId:r}){if(!n||!r)return{interrupted:!1,detail:`missing threadId or turnId`};let i=await lr(t,`turn/interrupt`,{threadId:n,turnId:r});return i.ok?{interrupted:!0,detail:`Interrupted ${r} on ${n}.`}:{interrupted:!1,detail:i.detail}}async function qr(e,{endpoint:t,threadId:n,turnId:r,text:i,command:a}){if(!n)return{steered:!1,retryable:!0,detail:`missing active threadId`};if(!r)return{steered:!1,retryable:!0,detail:`missing active turnId`};let o=i.trim();if(!o)return{steered:!1,retryable:!1,detail:`empty follow-up`};let s=await lr(t,`turn/steer`,{threadId:n,input:[{type:`text`,text:o,text_elements:[]}],expectedTurnId:r},3e3,a);return s.ok?s.result?.turnId===r?{steered:!0,retryable:!1,detail:`Steered follow-up into ${r} on ${n}.`}:{steered:!1,retryable:!1,detail:`turn/steer returned unexpected turnId ${String(s.result?.turnId??`(missing)`)}; expected ${r}`}:{steered:!1,retryable:s.retryable,detail:s.detail}}async function Jr(e,t={},n={}){let r=Q(e);if(!r.available)throw Error(`Codex CLI is not available: ${r.detail}`);let i=t.prompt?.trim();if(!i)throw Error(`A prompt is required.`);let a=Vr(t.sandbox,t.writableRoots),o=a?{}:{sandbox:t.sandbox??`read-only`},s={...t.configOverrides??{},...a},c=Object.keys(s).length?s:null,l=zr(t.sandbox,t.networkAccess,t.writableRoots),u=async n=>{let r=null,a,s=await n.request(`config/read`,{cwd:e,includeLayers:!1}),u={...c,...Hr(t.mcpServers,Object.keys(s.config?.mcp_servers??{}),t.nativeMcp),...t.nativeMcp?{}:{"features.apps":!1,"features.plugins":!1}};if(t.resumeThreadId)Z(t.onProgress,`Resuming thread ${t.resumeThreadId}.`,`starting`,{kind:`status`}),Le(t.resumeThreadId)&&await Re(t.resumeThreadId),a=(await n.request(`thread/resume`,{threadId:t.resumeThreadId,cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:u,approvalPolicy:t.approvalPolicy??`never`,...o,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{}})).thread.id;else if(Z(t.onProgress,`Starting Codex task thread.`,`starting`,{kind:`status`}),a=(await n.request(`thread/start`,{cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:u,approvalPolicy:t.approvalPolicy??`never`,...o,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{},serviceName:`coder_runtime`,ephemeral:t.ephemeral??!1})).thread.id,!(t.ephemeral??!1))try{await n.request(`thread/name/set`,{threadId:a,name:fr(i)})}catch(e){let t=String(e?.message??e??``);if(!t.includes(`unknown variant`)&&!t.includes(`unknown method`))throw e}Z(t.onProgress,`Thread ready (${a}).`,`starting`,{kind:`status`,threadId:a});let d;try{d=await Rr(n,a,()=>n.request(`turn/start`,{threadId:a,input:[{type:`text`,text:i,text_elements:[]}],model:t.model??null,effort:t.effort??null,outputSchema:t.outputSchema??null,...l?{sandboxPolicy:l}:{}}),{cwd:e,onProgress:t.onProgress,onHeartbeat:t.onHeartbeat,onApprovalRequest:t.onApprovalRequest,onTurnStarted:t.onControlReady?async e=>{r=await sr(n,{threadId:a,turnId:e}),t.onControlReady?.(r.endpoint,a,e)}:void 0}),t.onResult?.({status:d.finalTurn?.status===`completed`?0:1,threadId:a,turnId:d.turnId,finalMessage:d.lastAgentMessage,error:d.error??null})}finally{await r?.close()}return{status:d.finalTurn?.status===`completed`?0:1,threadId:a,turnId:d.turnId,finalMessage:d.lastAgentMessage,reasoningSummary:d.reasoningSummary,turn:d.finalTurn,error:d.error??d.finalTurn?.error??null,stderr:Ur(n.stderr),fileChanges:d.fileChanges,touchedFiles:hr(d.fileChanges),tokens:Cr(d),model:t.model??null,commandExecutions:d.commandExecutions}},d=async e=>{e.setNoticeHandler?.(e=>Z(t.onProgress,e,`starting`,{kind:`status`}));try{let t=await u(e);return Un(t.error?.message)&&await Yr(e),t}catch(t){throw Un(Hn(t))&&await Yr(e),t}},f=()=>Wr(e,d,{...n,networkAccess:t.networkAccess,nativeMcp:t.nativeMcp}),p=!1,m=()=>(p=!0,Z(t.onProgress,`Codex login changed; restarted the Codex app-server and retrying the turn once.`,`starting`,{kind:`status`}),f());try{let e=await f().catch(e=>{if(!Un(Hn(e)))throw e;return m()}),n=!e.touchedFiles?.length&&!e.commandExecutions.length;!p&&n&&Un(e.error?.message)&&(e=await m());let r=Gn(e.error?.message,t.model);return r?{...e,error:{...e.error,message:r}}:e}catch(e){let n=Gn(Hn(e),t.model);throw n?Error(n):e}}async function Yr(e){e.transport===`broker`&&await e.request(we,{}).catch(()=>{})}const Xr=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]);function Zr(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>typeof e?.text==`string`?e.text:``).join(``):e==null?``:JSON.stringify(e)}function Qr(e){if(!e)return 0;let t=e.split(/\r\n|\r|\n/);return t.at(-1)===``&&t.pop(),Math.max(1,t.length)}function $r(e,t,n=!1){if(!t)return[];let r;try{r=i.readFileSync(e,`utf8`)}catch{return[]}let a=[],o=0;for(;o<=r.length;){let e=r.indexOf(t,o);if(e<0)break;let i=Qr(r.slice(0,e))+1,s=Math.max(1,Qr(t));if(a.push(s===1?`L${i}`:`L${i}-L${i+s-1}`),!n)break;o=e+Math.max(t.length,1)}return a.length>4?[...a.slice(0,4),`+${a.length-4} matches`]:a}function ei(e){let t=(typeof e==`string`?e:JSON.stringify(e)??String(e)).replace(/\s+/g,` `).trim();return t.length>80?`${t.slice(0,80)}…`:t}function ti(t,n,r){let i=String(n.file_path??n.notebook_path??n.path??``),a=i?e.isAbsolute(i)?i:e.resolve(r,i):``,o=i?p(r,a)||i:`(unknown path)`,s=n.path?` in ${p(r,String(n.path))}`:``;if(t===`Write`){let e=Qr(String(n.content??``));return`Write ${o} ${e?`L1-L${e}`:`(empty file)`}`}if(t===`Edit`){let e=$r(a,String(n.old_string??``),n.replace_all===!0);return`Edit ${o}${e.length?` ${e.join(`, `)}`:``}`}if(t===`MultiEdit`){let e=Array.isArray(n.edits)?n.edits:[],t=e.flatMap(e=>$r(a,String(e?.old_string??``),e?.replace_all===!0));return`MultiEdit ${o}${t.length?` ${t.join(`, `)}`:``} (${e.length} edits)`}if(t===`NotebookEdit`){let e=n.cell_id??n.cell_number;return`NotebookEdit ${o}${e==null?``:` cell ${e}`}`}if(t===`Read`){let e=Number(n.offset??0),t=Number(n.limit??0);return`Read ${o}${e&&t?` L${e}-L${e+t-1}`:e?` from L${e}`:``}`}if(t===`Bash`)return`Bash ${String(n.command??``).trim()||`(no command)`}`;if(t===`Glob`)return`Glob ${String(n.pattern??``)}${s}`;if(t===`Grep`){let e=n.glob?` (${String(n.glob)})`:``;return`Grep ${String(n.pattern??``)}${s}${e}`}if(t===`Task`)return`Task ${n.subagent_type?`${String(n.subagent_type)}: `:``}${ei(n.description??n.prompt??``)}`;if(t===`WebFetch`)return`WebFetch ${String(n.url??``)}`;if(t===`WebSearch`)return`WebSearch ${String(n.query??``)}`;if(t===`TodoWrite`){let e=Array.isArray(n.todos)?n.todos:[];return`TodoWrite ${e.length} item${e.length===1?``:`s`}`}let c=Object.entries(n??{}).map(([e,t])=>`${e}=${ei(t)}`).join(` `);return c?`${t} ${c}`:t}function ni(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.input_tokens),r=t(e.cache_read_input_tokens)+t(e.cache_creation_input_tokens),i=t(e.output_tokens);return{input:n,cachedInput:r,output:i,total:n+r+i}}function ri(){let e=s(`claude`,[`--version`],{encoding:`utf8`});return e.error||e.status!==0?{available:!1,detail:`claude CLI not found on PATH (npm install -g @anthropic-ai/claude-code)`}:{available:!0,detail:String(e.stdout||``).trim()}}function ii(){if(t.env.CLAUDE_CODE_OAUTH_TOKEN)return{loggedIn:!0,detail:`CLAUDE_CODE_OAUTH_TOKEN configured`};if(t.env.ANTHROPIC_API_KEY)return{loggedIn:!0,detail:`ANTHROPIC_API_KEY configured`};let e=s(`claude`,[`auth`,`status`,`--json`],{encoding:`utf8`});if(e.error||e.status!==0)return{loggedIn:!1,detail:`not logged in`};try{let t=JSON.parse(String(e.stdout||``));return t.loggedIn?{loggedIn:!0,detail:[t.email,t.subscriptionType].filter(Boolean).join(`, `)||`logged in`}:{loggedIn:!1,detail:`not logged in`}}catch{return{loggedIn:!1,detail:`unknown`}}}function ai(e,n){let r=n.permissions??`auto`,i=n.mcpServers??[],a={};r===`auto`&&n.approvalTaskId&&(a.coder={type:`stdio`,command:t.execPath,args:[C,`mcp`,`serve`,n.approvalTaskId,`--cwd`,e]});for(let e of i)a[e.name]=e.url?{type:e.type??`http`,url:e.url,...e.headers?{headers:e.headers}:{}}:{type:`stdio`,command:e.command,args:e.args??[],...e.env?{env:e.env}:{}};return a}function oi(t,n,r,i){let a=[`-p`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--replay-user-messages`];a.push(n.resumeSessionId?`--resume`:`--session-id`,r),n.model&&a.push(`--model`,n.model),n.effort&&a.push(`--effort`,n.effort),n.outputSchema&&a.push(`--json-schema`,JSON.stringify(n.outputSchema));let o=n.permissions??`auto`,s=n.additionalDirectories??[],c=o===`read-only`?n.readOnlyAllowedTools??[]:[],l=n.mcpServers??[],u=ai(t,n),d=o===`auto`&&n.approvalTaskId,f=l.flatMap(e=>e.tools?.length?e.tools.map(t=>`mcp__${e.name}__${t}`):[`mcp__${e.name}`]),p=Object.keys(u).length?[`--mcp-config`,i??e.join(n.taskRoot??t,`.claude-mcp.json`)]:n.nativeMcp?[]:[`--mcp-config`,`{"mcpServers":{}}`];n.nativeMcp||a.push(`--strict-mcp-config`,`--no-chrome`),d?(a.push(`--permission-mode`,`default`,...p,`--permission-prompt-tool`,`mcp__coder__approval_prompt`),f.length&&a.push(`--allowedTools`,...f)):c.length?a.push(...It,...p,`--allowedTools`,...c,...f):(a.push(...Ft[o]??Ft.auto,...p),f.length&&a.push(`--allowedTools`,...f));let m=n.writableDirectories??[];for(let e of[...s,...o===`read-only`?[]:m])a.push(`--add-dir`,e);let h=Bt(o,t,n.allowedNetworkHosts??[],s,m),g={...h?JSON.parse(h):{},...n.nativeMcp?{}:{disableClaudeAiConnectors:!0}};return Object.keys(g).length&&a.push(`--settings`,JSON.stringify(g)),a}function si(e,t){return Object.assign(Error(e),{retryable:t})}function ci(e,t){let n=t&&Zn(t),r=n&&`${n.slice(0,14)}5${n.slice(15,19)}${(Number.parseInt(n[19],16)&3|8).toString(16)}${n.slice(20)}`;return{type:`user`,...r?{uuid:r}:{},message:{role:`user`,content:[{type:`text`,text:e}]}}}function li(e){let t=!0;return{sendInitial(t,n){return new Promise((r,i)=>{e(`${JSON.stringify(ci(t,n))}\n`,e=>{e?i(e):r()})})},sendSteer(n,r){return t?new Promise((t,i)=>{e(`${JSON.stringify(ci(n,r))}\n`,e=>{if(!e){t();return}let n=e.code,r=n===`EPIPE`||n===`ERR_STREAM_DESTROYED`||n===`ERR_STREAM_WRITE_AFTER_END`;i(si(`Failed to write Claude live steer: ${e.message}`,r))})}):Promise.reject(si(`Claude turn is no longer accepting live input.`,!0))},stopAccepting(){t=!1}}}function ui(e,n){let r=`${e}.${t.pid}.${l()}.tmp`;i.writeFileSync(r,`${JSON.stringify(n)}\n`,`utf8`),i.renameSync(r,e)}async function di(n){let r=i.mkdtempSync(e.join(u.tmpdir(),`coder-claude-steer-`)),a=`file:${r}`,o=new Set,s=new Set,c=!1,l=!1,d=(a=!1)=>{if(!(c&&!a||l)){l=!0;try{for(let a of i.readdirSync(r).filter(e=>e.endsWith(`.request.json`))){let c=a.slice(0,-13),l=e.join(r,a),u=e.join(r,`${c}.response.json`);if(i.existsSync(u)){i.unlinkSync(l);continue}if(s.has(c))continue;let d=`${l}.${t.pid}.processing`;try{i.renameSync(l,d)}catch{continue}s.add(c);let f=(async()=>{let e;try{let t=JSON.parse(i.readFileSync(d,`utf8`)),r=typeof t?.params?.text==`string`?t.params.text.trim():``;if(t?.method!==`turn/steer`||!r||t?.id!==c)e={id:c,error:{message:`Invalid Claude steer request.`,retryable:!1}};else try{await n(r,t.command),e={id:c,result:{accepted:!0}}}catch(t){let n=t;e={id:c,error:{message:n.message,retryable:n.retryable===!0}}}}catch(t){e={id:c,error:{message:`Invalid Claude steer JSON: ${t instanceof Error?t.message:String(t)}`,retryable:!1}}}try{ui(u,e)}finally{s.delete(c);try{i.unlinkSync(d)}catch{}}})();o.add(f),f.then(()=>o.delete(f),()=>o.delete(f))}}catch{}finally{l=!1}}},f=setInterval(d,10);return{endpoint:a,async close(){c=!0,clearInterval(f),d(!0),await Promise.allSettled([...o]),await new Promise(e=>setTimeout(e,50)),i.rmSync(r,{recursive:!0,force:!0})}}}async function fi(t,n,r=3e3,a){if(!t)return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is not ready.`};let o=n.trim();if(!o)return{steered:!1,retryable:!1,detail:`empty follow-up`};if(!t.startsWith(`file:`)||t.length===5)return{steered:!1,retryable:!1,detail:`Unsupported Claude steer endpoint: ${t}`};let s=t.slice(5);if(!i.existsSync(s))return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is no longer available.`};let c=Zn(a),l=e.join(s,`${c}.request.json`),u=e.join(s,`${c}.response.json`);try{i.existsSync(u)||ui(l,{id:c,method:`turn/steer`,params:{text:o},command:a})}catch(e){return{steered:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let d=Date.now();for(;Date.now()-d<r;){try{let e=JSON.parse(i.readFileSync(u,`utf8`));try{(!a||e?.error?.retryable)&&i.unlinkSync(u)}catch{}return e?.result?.accepted===!0?{steered:!0,retryable:!1,detail:`Claude accepted the live follow-up.`}:{steered:!1,retryable:e?.error?.retryable===!0,detail:String(e?.error?.message??`Malformed Claude steer response.`)}}catch(e){if(e.code!==`ENOENT`)return{steered:!1,retryable:!1,detail:`Invalid Claude steer response: ${e instanceof Error?e.message:String(e)}`}}await new Promise(e=>setTimeout(e,10))}return{steered:!1,retryable:!1,detail:`Timed out waiting for Claude live steer acknowledgement.`}}async function pi(n,r){let a=r.resumeSessionId??l(),s=ai(n,r),c=Object.keys(s).length?e.join(r.taskRoot??n,`.claude-mcp-${l()}.json`):void 0;c&&(i.mkdirSync(e.dirname(c),{recursive:!0}),i.writeFileSync(c,`${JSON.stringify({mcpServers:s})}\n`,{encoding:`utf8`,flag:`wx`,mode:384}));let u=oi(n,r,a,c),d=()=>{if(c)try{i.unlinkSync(c)}catch{}};return r.onProgress?.({kind:`status`,message:`claude turn started (session ${a})`,threadId:a}),new Promise((s,c)=>{let l=o(r.executable??`claude`,u,{cwd:n,stdio:[`pipe`,`pipe`,`pipe`],...r.env?{env:{...t.env,...r.env}}:{}}),f=``,p=``,m=[],h=null,g=a,_=null,v=!1,y=li((e,t)=>l.stdin.write(e,t)),b=Date.now(),x=new Map,ee=0,S=0,C=new Set,w=t=>{if(!(!t||typeof t!=`object`)){if(d(),r.onHeartbeat?.(),t.type===`system`&&t.subtype===`init`&&t.session_id)g=t.session_id;else if(t.type===`assistant`){let i=ni(t.message?.usage);if(i){ee+=i.output;let e=i.input+i.cachedInput+ee;(!S||e-S>=1e3)&&(S=e,r.onProgress?.({kind:`usage`,tokens:{...i,output:ee,total:e},threadId:g}))}for(let i of t.message?.content??[])if(i?.type===`tool_use`){let t=String(i.name??`Tool`);if(i.id&&x.set(String(i.id),{name:t,at:Date.now()}),Xr.has(t)){let t=String(i.input?.file_path??i.input?.notebook_path??``);t&&C.add(e.isAbsolute(t)?t:e.resolve(n,t))}r.onProgress?.({kind:`tool`,tool:t,...i.id?{callId:String(i.id)}:{},message:ti(t,i.input??{},n),threadId:g})}else i?.type===`text`&&typeof i.text==`string`&&i.text.trim()?r.onProgress?.({kind:`assistant`,message:i.text.trim(),threadId:g}):i?.type===`thinking`&&typeof i.thinking==`string`&&i.thinking.trim()&&r.onProgress?.({kind:`reasoning`,message:i.thinking.trim(),durationMs:Math.max(1e3,Date.now()-b),threadId:g})}else if(t.type===`user`){for(let e of t.message?.content??[])if(e?.type===`tool_result`){let t=Zr(e.content).trim(),n=e.is_error===!0,i=e.tool_use_id?x.get(String(e.tool_use_id)):void 0;if(e.tool_use_id&&x.delete(String(e.tool_use_id)),!t&&!n&&!i)continue;r.onProgress?.({kind:`tool-result`,...e.tool_use_id?{callId:String(e.tool_use_id)}:{},...i?{tool:i.name,durationMs:Date.now()-i.at}:{},...n?{isError:!0}:{},message:t||(n?`(tool failed with no output)`:``),threadId:g})}}else t.type===`result`&&(h=t,r.onResult?.({status:+!!t.is_error,threadId:t.session_id??g,finalMessage:t.structured_output===void 0?String(t.result??``).trim():JSON.stringify(t.structured_output),error:t.is_error?{message:String(t.result??``)}:null}),t.session_id&&(g=t.session_id),y.stopAccepting(),l.stdin.end());b=Date.now()}};l.stdout.on(`data`,e=>{f+=e;let t;for(;(t=f.indexOf(`
|
|
11
|
-
`))>=0;){let e=f.slice(0,t).trim();if(f=f.slice(t+1),e)try{w(JSON.parse(e))}catch(e){m.push(`Invalid Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}}}),l.stderr.on(`data`,e=>{p+=e});let T=()=>{y.stopAccepting(),l.kill(`SIGTERM`),d();let e=_?.endpoint;e?.startsWith(`file:`)&&i.rmSync(e.slice(5),{recursive:!0,force:!0}),t.exit(143)};t.on(`SIGTERM`,T),(async()=>{r.onSteerReady&&(_=await di((e,t)=>y.sendSteer(e,t))),await y.sendInitial(r.prompt,r.command),_&&r.onSteerReady?.(_.endpoint)})().catch(e=>{v||(v=!0,y.stopAccepting(),l.kill(`SIGTERM`),d(),t.removeListener(`SIGTERM`,T),_?.close(),c(e))}),l.on(`error`,e=>{v||(v=!0,y.stopAccepting(),t.removeListener(`SIGTERM`,T),d(),_?.close(),c(Error(`claude spawn failed: ${e.message}`)))}),l.on(`close`,async e=>{if(v)return;v=!0,y.stopAccepting(),t.removeListener(`SIGTERM`,T),d(),await _?.close();let n=f.trim();if(n)try{w(JSON.parse(n))}catch(e){m.push(`Invalid trailing Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}let i=h?.structured_output===void 0?(h?.result??``).trim():JSON.stringify(h.structured_output),a=e!==0||h?.is_error===!0||h==null||m.length>0;s({status:+!!a,threadId:h?.session_id??g,turnId:null,finalMessage:i,touchedFiles:[...C],tokens:ni(h?.usage),model:h?.modelUsage&&Object.keys(h.modelUsage).join(`+`)||r.model||null,error:a?{message:m[0]||i||p.trim()||`claude exited ${e}`}:null})})})}const $=`@wular/coder`,mi=`https://registry.npmjs.org/${$}/latest`;function hi(){return A(`update-check.json`)}function gi(e,t){let n=String(e).split(`.`).map(e=>parseInt(e,10)||0),r=String(t).split(`.`).map(e=>parseInt(e,10)||0);for(let e=0;e<3;e+=1){if((n[e]??0)>(r[e]??0))return 1;if((n[e]??0)<(r[e]??0))return-1}return 0}function _i(){try{return JSON.parse(i.readFileSync(hi(),`utf8`))}catch{return null}}function vi(e){try{i.mkdirSync(A(),{recursive:!0}),i.writeFileSync(hi(),JSON.stringify(e))}catch{}}function yi(){try{i.rmSync(hi(),{force:!0})}catch{}}function bi(e,n){if(t.env.CODER_NO_UPDATE_CHECK||t.env.CI)return;let r=_i();if(!r?.checkedAt||Date.now()-r.checkedAt>864e5)try{o(t.execPath,[n,`upgrade`,`refresh`],{detached:!0,stdio:`ignore`}).unref()}catch{}return r?.latest&&gi(r.latest,e)>0?r.latest:void 0}async function xi(e){let t=_i()?.latest??null;try{let e=new AbortController,n=setTimeout(()=>e.abort(),3e3),r=await fetch(mi,{signal:e.signal,headers:{accept:`application/json`}});if(clearTimeout(n),r.ok){let e=await r.json();e?.version&&(t=e.version)}}catch{}vi({checkedAt:Date.now(),latest:t,current:e})}function Si(e){let t=e;try{t=i.realpathSync(e)}catch{}let n=t.replace(/\\/g,`/`);return/\/\.bun\//.test(n)?{pm:`bun`,command:[`bun`,`add`,`-g`,`${$}@latest`]}:/\/\.pnpm\//.test(n)||/\/pnpm(-global)?\//i.test(n)||/\/Library\/pnpm\//.test(n)?{pm:`pnpm`,command:[`pnpm`,`add`,`-g`,`${$}@latest`]}:/\/\.config\/yarn\/global\//.test(n)||/\/yarn\/global\//.test(n)||/\/Yarn\/Data\/global\//.test(n)?{pm:`yarn`,command:[`yarn`,`global`,`add`,`${$}@latest`]}:{pm:`npm`,command:[`npm`,`install`,`-g`,`${$}@latest`]}}function Ci(e){s(`claude`,[`plugin`,`marketplace`,`remove`,`coder-plugins`],{encoding:`utf8`});let t=s(`claude`,[`plugin`,`marketplace`,`add`,e],{encoding:`utf8`}),n=s(`claude`,[`plugin`,`install`,`coder@coder-plugins`],{encoding:`utf8`}),r=t.status===0&&n.status===0;return{marketplace:e,installed:r,note:r?`Plugin installed; restart any running Claude Code session to load it.`:`Automatic install failed (${(n.stderr||t.stderr||`claude not found`).trim()}); run: claude plugin marketplace add "${e}" && claude plugin install coder@coder-plugins`}}function wi(){return e.join(u.homedir(),`.agents`,`skills`,`coder`)}function Ti(){try{let t=i.readFileSync(e.join(wi(),`SKILL.md`),`utf8`);return/^\s*version:\s*(\S+)/m.exec(t)?.[1]??null}catch{return null}}function Ei(t){let n=wi();try{let r=e.join(t,`plugins`,`agents`,`skills`,`coder`);i.rmSync(n,{recursive:!0,force:!0}),i.mkdirSync(n,{recursive:!0}),i.cpSync(r,n,{recursive:!0});let a=e.join(n,`SKILL.md`),o=i.readFileSync(a,`utf8`).replace(`
|
|
12
|
-
---
|
|
13
|
-
`,`\nmetadata:\n version: ${w()}\n---\n`);return i.writeFileSync(a,o),{marketplace:n,installed:!0,note:`Skill installed to ~/.agents/skills/coder; restart running sessions to load it.`}}catch(e){return{marketplace:n,installed:!1,note:`Skill install failed: ${e instanceof Error?e.message:String(e)}`}}}function Di(e){if(e.available)return null;let t=s(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`});return t.status===0?{installed:!0,note:`codex CLI installed (runs your custom models; no login needed for them)`}:{installed:!1,note:`custom models run on the codex CLI and it is not installed; auto-install failed: ${(t.stderr||`npm not found`).trim()}. Run: npm install -g @openai/codex`}}const Oi={codex:{"gpt-6-astra":`0.154.0`,"gpt-6-sol":`0.156.1`,"gpt-6-luna":`0.156.1`,"gpt-6.1-sol":`0.159.1`},claude:{sonnet:`2.1.197`,fable:`2.1.257`,opus:`2.1.280`}};function ki(e){let t=/(\d+\.\d+\.\d+)/.exec(String(e??``));return t?t[1]:null}function Ai(e,t,n){let r=t?Oi[e][t]:void 0,i=ki(n.detail);return!r||!i||gi(i,r)>=0?null:`${e} ${i} predates ${t} (needs ${r}), so it may fail or run another model. Run: ${e} update`}function ji(e){if(!e.available)return null;let t=ki(e.detail);if(!t||gi(t,`0.159.1`)>=0)return null;let n=s(`codex`,[`update`],{encoding:`utf8`});return n.status!==0&&(n=s(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`})),n.status===0?{updated:!0,from:t}:{updated:!1,from:t,note:`codex ${t} is too old for the default codex model (needs >= 0.159.1); auto-update failed: ${(n.stderr||`codex/npm not found`).trim()}. Run: codex update`}}async function Mi(e,t={},r){let a=t.hosts??[],o=a.find(e=>![`claude`,`codex`,`agents`].includes(e));if(o)throw new B(`invalid-option`,`Unknown host "${o}". Use claude, codex, or agents.`,{hint:`Codex, Pi, OpenCode, and other Agent Skills hosts: coder setup-host agents`});let s=e=>t[e]||a.includes(e);r?.();let c=Q(e),l=ji(c);l?.updated&&(c=Q(e));let u=c.available?await Gr(e):{loggedIn:!1,detail:c.detail},d=ri(),f=d.available?ii():{loggedIn:!1,detail:d.detail},p=K();if(!i.existsSync(p)){let e=c.available?[`codex`,`claude`]:d.available?[`claude`,`codex`]:[`codex`,`claude`];Dn({...V,chain:e})}let m=te(),h=s(`claude`)?Ci(m):null,g=s(`agents`)||s(`codex`)?Ei(m):null,_=J(e),v=c.available&&u.loggedIn||d.available&&f.loggedIn;return{codex:{available:c.available,detail:c.detail,auth:u.detail,loggedIn:u.loggedIn},...l?{codexUpdate:l}:{},claude:{available:d.available,detail:d.detail,auth:f.detail,loggedIn:f.loggedIn},configFile:p,runtime:n(new URL(`../bin/coder.mjs`,import.meta.url)),...h?{claudePlugin:h}:{},...g?{agentsSkill:g}:{},config:_,ready:v}}async function Ni(t={},n){let r=!t.pluginsOnly,a=!t.cliOnly,o=te(),c=e.join(o,`plugins/claude/.claude-plugin/plugin.json`),l={cli:w(),claude:T(c)},u={};if(r){let e=Si(C),[r,...i]=t.pm===`npm`?[`npm`,`install`,`-g`,`@wular/coder@latest`]:t.pm===`pnpm`?[`pnpm`,`add`,`-g`,`@wular/coder@latest`]:t.pm===`yarn`?[`yarn`,`global`,`add`,`@wular/coder@latest`]:t.pm===`bun`?[`bun`,`add`,`-g`,`@wular/coder@latest`]:e.command,a=t.pm??e.pm;n?.(`via ${a}`);let o=s(r,i,{encoding:`utf8`});if(o.error?.code===`ENOENT`)throw new B(`invalid-option`,`${a} not found on PATH. Re-run with --pm <npm|pnpm|yarn|bun>, or update manually: ${r} ${i.join(` `)}`);if(o.status!==0){let e=(o.stderr||o.stdout||``).trim();throw new B(`invalid-option`,`CLI update failed (${a}).${e?`\n${e}`:``}\nRun manually: ${r} ${i.join(` `)}`)}yi();let c=w();u.cli={pm:a,from:l.cli,to:c,changed:c!==l.cli}}if(a){if(t.claude||!t.codex&&ri().available){let e=Ci(o);u.claudePlugin={installed:e.installed,note:e.note,from:l.claude,to:T(c)}}if(i.existsSync(wi())){let e=Ti(),t=Ei(o);u.agentsSkill={installed:t.installed,note:t.note,from:e,to:Ti()}}}return u}const Pi=new Set(`commit.checkout.switch.restore.stash.reset.rebase.merge.push.pull.cherry-pick.revert.clean.am.apply.tag.branch.worktree.filter-branch.filter-repo.gc.prune.reflog.remote.submodule.config`.split(`.`)),Fi=[/\bsudo\b/,/\brm\s+(-[a-zA-Z]*r[a-zA-Z]*f|-[a-zA-Z]*f[a-zA-Z]*r)\b.*\s(\/\*?|~\/?|\$HOME\/?)(\s|$)/,/\b(shutdown|reboot|halt|poweroff)\b/,/\bmkfs\b|\bdiskutil\s+erase/i,/\b(chmod|chown)\b.*-R.*\s\/(\s|$)/,/\bkill(all)?\s+-9\s+1\b/,/curl[^|;&]*\|\s*(ba|z|da)?sh\b/,/wget[^|;&]*\|\s*(ba|z|da)?sh\b/,/\blaunchctl\b|\bsystemctl\b/,/\bdefaults\s+write\b/,/>\s*\/dev\/(sd|disk)/],Ii=new Set([`status`,`log`,`diff`,`show`,`blame`,`rev-parse`,`ls-files`,`ls-tree`,`cat-file`,`describe`,`shortlog`,`grep`,`branch`,`stash`]);function Li(e){return e.match(/^\s*(?:ba|z|da)?sh\s+(?:-[a-zA-Z]+\s+)*(?:-c\s+)?(["'])([\s\S]*)\1\s*$/)?.[2]??e}function Ri(e){return e.trim().split(/\s+/).filter(Boolean)}function zi(e){let t=e.find((e,t)=>t>0&&!e.startsWith(`-`));if(!t)return{decision:`accept`,reason:`bare git`};if(t===`branch`&&e.some(e=>/^-(d|D|m|M|c|C|f|u)|^--(delete|move|copy|force|set-upstream)/.test(e)))return{decision:`decline`,reason:`git branch write operation (git is read-only for Coder)`};if(t===`stash`){let t=e.find((e,t)=>t>1&&!e.startsWith(`-`));return t===`list`||t===`show`?{decision:`accept`,reason:`git stash ${t} is read-only`}:{decision:`decline`,reason:`git stash write operation (git is read-only for Coder)`}}return Ii.has(t)?{decision:`accept`,reason:`git ${t} is read-only`}:Pi.has(t)?{decision:`decline`,reason:`git ${t} is a write operation (git is read-only for Coder)`}:{decision:`escalate`,reason:`unrecognized git subcommand: ${t}`}}function Bi(t,n={}){let r=Li(String(t??``));if(!r.trim())return{decision:`escalate`,reason:`empty command`};for(let e of Fi)if(e.test(r))return{decision:`decline`,reason:`matches hard-deny pattern ${e}`};if(/\$\(|`|<\(/.test(r))return{decision:`escalate`,reason:`contains command substitution`};let i=r.split(/&&|\|\||;|\||\r?\n/).map(e=>e.trim()).filter(Boolean);if(i.length>1){let e={decision:`accept`,reason:`all segments safe`};for(let t of i){let r=Bi(t,n);if(r.decision===`decline`)return r;r.decision===`escalate`&&(e=r)}return e}let a=Ri(r),o=e.basename(a[0]??``);if(o===`git`)return zi(a);let s=n.networkHost;return s?(n.allowedNetworkHosts??[]).some(e=>s===e||s.endsWith(`.${e}`))?{decision:`accept`,reason:`network host ${s} is allowlisted`}:{decision:`escalate`,reason:`network access to ${s}`}:{decision:`escalate`,reason:`command needs approval: ${o||`(unknown)`}`}}function Vi(t,n){if(!t.length)return{decision:`escalate`,reason:`file change with no resolvable paths`};for(let r of t){let t=e.resolve(n,r),i=e.relative(n,t);if(i.startsWith(`..`)||e.isAbsolute(i))return{decision:`escalate`,reason:`path outside workspace: ${r}`};if(i===`.git`||i.startsWith(`.git${e.sep}`))return{decision:`decline`,reason:`direct .git modification: ${r}`}}return{decision:`accept`,reason:`all paths inside workspace`}}function Hi(t){return e.join(t,`approvals`)}function Ui(t){let n=Hi(t);return i.existsSync(n)?i.readdirSync(n).filter(e=>e.endsWith(`.request.json`)).flatMap(t=>{let r=t.replace(/\.request\.json$/,``),i=m(e.join(n,t));if(!i)return[];let a=m(e.join(n,`${r}.response.json`));return[{...i,id:r,response:a}]}).sort((e,t)=>String(e.createdAt??``).localeCompare(String(t.createdAt??``))):[]}function Wi(t,n,r){let a=Hi(t),o=e.join(a,`${n}.request.json`);if(!i.existsSync(o))throw Error(`No pending approval "${n}" for this task.`);i.writeFileSync(e.join(a,`${n}.response.json`),`${JSON.stringify({decision:r,answeredAt:new Date().toISOString()},null,2)}\n`,`utf8`)}async function Gi(t,n,{timeoutMs:r,onEvent:a}){let o=Hi(t);i.mkdirSync(o,{recursive:!0});let s=`apr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`;i.writeFileSync(e.join(o,`${s}.request.json`),`${JSON.stringify({...n,createdAt:new Date().toISOString()},null,2)}\n`,`utf8`),a?.({kind:`approval-escalated`,approvalId:s,summary:n.summary,message:`Approval needed (${s}): ${n.summary}. Answer with: coder task approve ${e.basename(t)} ${s} [--deny]`});let c=e.join(o,`${s}.response.json`),l=Date.now()+r;for(;Date.now()<l;){if(i.existsSync(c))try{let e=JSON.parse(i.readFileSync(c,`utf8`)).decision===`accept`?`accept`:`decline`;return a?.({kind:`approval-answered`,approvalId:s,decision:e}),e}catch{}await new Promise(e=>setTimeout(e,400))}return a?.({kind:`approval-timeout`,approvalId:s,message:`Approval ${s} timed out; declining.`}),`decline`}function Ki(e,t={}){return Gi(e,{method:`simulate`,summary:`simulated approval probe (--simulate-approval)`},{timeoutMs:t.timeoutMs??12e4,onEvent:t.onEvent??null})}function qi({workspaceRoot:e,taskDir:t,mode:n=`auto`,escalationTimeoutMs:r=12e4,allowedNetworkHosts:i=[],onEvent:a=null}){return async(o,s,c)=>{if(o===`item/commandExecution/requestApproval`){let l=c?.itemIndex?.get(s.itemId??``),u=s.command??l?.command??``,d=s.cwd??l?.cwd??e,f=`Run command. ${u||`Unknown command`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:f}),{decision:`decline`};let p=Bi(u,{networkHost:s.networkApprovalContext?.host??null,allowedNetworkHosts:i});return a?.({kind:`approval-decision`,method:o,decision:p.decision,reason:p.reason,summary:f}),p.decision===`escalate`?{decision:await Gi(t,{method:o,summary:f,command:u,cwd:d,params:s},{timeoutMs:r,onEvent:a})}:{decision:p.decision}}if(o===`item/fileChange/requestApproval`){let i=(c?.itemIndex?.get(s.itemId??``)?.changes??[]).map(e=>e.path).filter(e=>!!e),l=`Apply file changes. ${i.join(`, `)||`Unknown paths`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:l}),{decision:`decline`};let u=Vi(i,e);return a?.({kind:`approval-decision`,method:o,decision:u.decision,reason:u.reason,summary:l}),u.decision===`escalate`?{decision:await Gi(t,{method:o,summary:l,paths:i,params:s},{timeoutMs:r,onEvent:a})}:{decision:u.decision}}throw a?.({kind:`approval-unsupported`,method:o}),Error(`Coder does not handle server request ${o}; treating as denied.`)}}const Ji=/usage|quota|rate.?limit|429|401|unauthorized|not authenticated|login|insufficient|exhausted|not available|ENOENT/i;function Yi(e){return Ji.test(e)&&!Wn(e)}var Xi=class extends Error{engine;detail;constructor(e,t){super(t),this.engine=e,this.detail=t}};function Zi(e,t){let n=e.engine,r=!!n,i=e.model,a=e.effort,o=e=>{let n=e?t.models?.[e]:void 0;return n&&on(n)?n:void 0},s=e=>{let n=e?t.models?.[e]:void 0;return n&&W(n)?n:void 0};if(o(i)){let e;try{e=En(i,t)}catch(e){throw new B(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),i=e.model??void 0,a=a??e.effort??void 0)}if(!n&&i&&(i in U?n=`claude`:i in H?n=`codex`:s(i)?n=`custom`:/^(?:claude-|opus|sonnet|haiku|fable)/i.test(i)&&(n=`claude`)),n=n??t.chain[0]??`codex`,n!==`codex`&&n!==`claude`&&n!==`custom`){let e=n in H||n in U||n in(t.models??{})?` "${n}" is a model; use --model ${n}.`:``;throw new B(`invalid-option`,`Invalid --engine "${n}". Use codex, claude, or custom.${e}`)}let c=t.engines[n]??{},l=i??c.model??null,u=a??c.effort??null;if(o(l)){let e;try{e=En(l,t)}catch(e){throw new B(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),l=e.model,u=a??e.effort??u)}let d=e.permissions??c.permissions??`auto`;try{Tn(t,l)}catch(e){throw new B(`invalid-option`,e instanceof Error?e.message:String(e))}if(n===`custom`){let e=Object.entries(t.models??{}).filter(([,e])=>W(e)).map(([e])=>e);if(!l&&e.length===1&&(l=e[0]),!l||!s(l))throw new B(`invalid-option`,l?`No custom model named "${l}". Configured: ${e.join(`, `)||`none`}.`:`No custom model to run: pass --model <name> or set engines.custom.model.`,{hint:`Add one: coder model add <name> --base-url <url> --model <id>`})}let f=n===`claude`;if(!(d in Pt))throw new B(`invalid-option`,`Invalid --permissions "${d}". Use one of: ${Object.keys(Pt).join(`, `)}`);if(!f&&u&&!Mt.has(u))throw new B(`invalid-option`,`Invalid codex --effort "${u}". Use one of: ${[...Mt].join(`, `)}`);if(f&&u&&!Nt.has(u))throw new B(`invalid-option`,`Invalid claude --effort "${u}". Use one of: ${[...Nt].join(`, `)}`);return{engine:n,model:l,effort:u,permissions:d}}const Qi=r.strictObject({name:r.string().check(r.minLength(1)),command:r.optional(r.string().check(r.minLength(1))),args:r.optional(r.array(r.string())),env:r.optional(r.record(r.string(),r.string())),url:r.optional(r.string().check(r.minLength(1))),type:r.optional(r.enum([`stdio`,`http`,`sse`])),headers:r.optional(r.record(r.string(),r.string())),tools:r.optional(r.array(r.string()))}).check(r.refine(e=>!!e.command!=!!e.url,`one of command or url`)),$i=r.array(Qi);function ea(e,t={}){let n=e.trim();return/^[\[{]/.test(n)?na(n):(n===`all`?Object.keys(t):n.split(`,`).map(e=>e.trim()).filter(Boolean)).map(e=>{let n=t[e];if(!n)throw new B(`invalid-option`,`Unknown MCP server "${e}".`,{hint:`configured: ${Object.keys(t).join(`, `)||`none`}; or pass a JSON array`});return{name:e,...n}})}function ta(e,t={},n={}){return typeof e==`string`&&!e.trim()&&(e=void 0),{mcp:typeof e==`string`?ea(e,{...t,...n}):e??Object.entries(n).map(([e,t])=>({name:e,...t})),nativeMcp:typeof e==`string`&&e.trim()===`all`}}function na(e){let t;try{t=JSON.parse(e)}catch(e){throw new B(`invalid-option`,`Invalid --mcp JSON: ${e instanceof Error?e.message:String(e)}`)}let n=$i.safeParse(t);if(!n.success)throw new B(`invalid-option`,`Invalid --mcp value: ${r.prettifyError(n.error)}`,{hint:`--mcp '[{"name":"docs","command":"npx","args":["-y","docs-mcp"],"tools":["search"]}]'`});return n.data}function ra(n,r=t.env,a){let o=e=>e.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g,(e,t,n)=>r[t]??n??``),s=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,o(t)]));return(n??[]).map(t=>{let n={...t,...t.command?{command:o(t.command)}:{},...t.args?{args:t.args.map(o)}:{},...t.url?{url:o(t.url)}:{},...t.env?{env:s(t.env)}:{},...t.headers?{headers:s(t.headers)}:{}};if(!a||!n.command)return n;let c=(n.command.includes(e.sep)?[e.resolve(a,n.command)]:(n.env?.PATH??r.PATH??`/usr/bin:/bin`).split(e.delimiter).map(t=>e.resolve(a,t,n.command))).find(e=>{try{return i.accessSync(e,i.constants.X_OK),i.statSync(e).isFile()}catch{return!1}});if(!c)throw new B(`invalid-option`,`MCP server "${t.name}" command cannot be resolved.`);return n.command=i.realpathSync(c),n.args=n.args?.map(t=>{if(t.startsWith(`-`)||e.isAbsolute(t))return t;let n=e.resolve(a,t),r=i.existsSync(n)&&i.statSync(n).isFile();return!r&&!t.startsWith(`./`)&&!t.startsWith(`../`)?t:r?i.realpathSync(n):n}),n})}function ia(t,n=[]){let r=[...new Set(n.map(n=>e.resolve(t,n)))];for(let e of r)if(!i.statSync(e,{throwIfNoEntry:!1})?.isDirectory())throw new B(`invalid-option`,`--add-dir ${e} is not a directory.`);return r}function aa(e,t){return e===`read-only`&&Lt.test(t??``)}const oa=[`read-only`,`workspace-write`,`auto`];function sa(e,t,n){if(!t)return n.permissions;if(oa.indexOf(t)>oa.indexOf(n.permissions))throw new B(`invalid-option`,`task "${e??`task`}" asks for ${t} but agent "${n.agent}" is ${n.permissions}: lower the task's permissions or raise the agent's`);return t}function ca(n,r){let a=F(n,r),s=i.openSync(e.join(a,`worker.log`),`a`),c=o(t.execPath,[C,`task`,`worker`,r,`--cwd`,n],{cwd:n,detached:!0,stdio:[`ignore`,s,s],env:{...t.env,CODER_WORKER:`1`}});c.unref(),i.closeSync(s),I(n,r,{pid:c.pid??null})}async function la(t,n,r,i,a){let o=r.cwd,s=n.engine===`claude`?ri():Q(o),c=n.model?t.models?.[n.model]:void 0;if(!s.available&&c&&W(c)){let e=Di(s);r.onNote?.(e.note),s=Q(o)}if(!s.available)throw new Xi(n.engine,s.detail);let u=c?null:n.engine===`claude`?Ai(`claude`,n.model,s):Ai(`codex`,Sn(n.model),s);u&&r.onNote?.(u);let d=r.addDirs??[],f=r.taskId??rt(),p=I(o,f,{status:`queued`,...r.taskId?{dispatchId:l()}:{},kind:`task`,name:i.name??null,system:r.system??null,engine:n.engine,prompt:r.prompt,...r.outputSchema?{outputSchema:r.outputSchema}:{},model:n.model,effort:n.effort,permissions:n.permissions,resumeThreadId:null,cwd:o,background:!r.wait,...i.simulateApproval?{simulateApproval:!0}:{},...r.flowRunId?{flowRunId:r.flowRunId}:{},...r.agentId?{agentId:r.agentId}:{},...r.source?{source:r.source}:{},...r.author?{author:r.author}:{},...r.repo?{repo:r.repo}:{},...r.mcp?.length?{mcp:r.mcp}:{},nativeMcp:r.nativeMcp??!1,...d.length?{addDirs:d}:{}});if(ca(o,f),!a)return{taskId:f,task:L(o,f)??p,engine:n.engine,startupCheck:`pending`};let h=2**53-1,g=new Set([`status`,`usage`]),_=()=>z(o,f,h).filter(e=>{let{phase:t,kind:n}=e;return t!==`starting`&&!g.has(String(n??``))}).length,v=Date.now()+15e3,y=p,b=null,x=null;for(;Date.now()<(x??v)&&(y=L(o,f)??y,y.status!==`failed`&&y.status!==`completed`);){if(y.threadId&&b===null&&(b=_(),x=Date.now()+5e3),b!==null&&_()>b){y=L(o,f)??y;break}await new Promise(e=>setTimeout(e,150))}if(y.status===`failed`){let t=m(e.join(F(o,f),`result.json`))?.error?.message??``,r=z(o,f,5).map(e=>e.message??``).join(`
|
|
14
|
-
`),i=t||r;throw aa(n.permissions,i)?new B(`read-only-unavailable`,i):Yi(i)?new Xi(n.engine,i):new B(`startup-failed`,i,{taskId:f})}return{taskId:f,task:y,engine:n.engine,startupCheck:y.threadId?`passed`:`pending`}}function ua(e,t,n,r,i){return{error:`${e} failed to start: ${t}`,fallback:{action:`run-native-subagent`,reason:`no-engine-available`,permissions:n,instructions:`Mention the engine failure to the user, including any limit reset time. If your harness has a native subagent facility, spawn one subagent with fallback.task verbatim, prefixed with: "NEVER run git write operations (commit, checkout, stash, reset, push, etc.); leave changes uncommitted." If fallback.permissions is "read-only", append: "Investigate and report without modifying anything." If it is "workspace-write", append: "Never touch anything outside the workspace." Relay its output when it completes. If your harness has no native subagent facility, report the failure and stop; do not implement the task yourself.`,note:`Every coder engine failed to start. Spawn your own native subagent and forward the task verbatim; tell it to never run git write operations (commit, checkout, stash, reset, push, ...) and to honor the permissions.`,...r?{system:r}:{},task:i}}}async function da(e,n={}){if(t.env.CODER_WORKER&&!n.fromMailbox)throw new B(`nested-dispatch`,`Nested dispatch is disabled inside a worker; do the work directly.`);if(e.outputSchema!==void 0&&(!e.outputSchema||typeof e.outputSchema!=`object`||Array.isArray(e.outputSchema)))throw new B(`invalid-option`,`outputSchema must be an object.`);if(!e.prompt.trim())throw new B(`invalid-option`,`Missing task text.`,{hint:[`Usage: coder run "<task text>"`,`Help: coder task run --help`]});e={...e,addDirs:ia(e.cwd,e.addDirs)};let r=J(e.cwd),i=ta(e.mcp,r.mcp),a={...e,mcp:i.mcp,nativeMcp:e.nativeMcp??i.nativeMcp},o={engine:e.engine,model:e.model,effort:e.effort,permissions:e.permissions},s={name:e.name,simulateApproval:e.simulateApproval};for(;;){let t=Zi(o,r);try{return await la(r,t,a,s,n.waitForStartup!==!1)}catch(n){if(!(n instanceof Xi))throw n;let i=r.chain[r.chain.indexOf(n.engine)+1];if(!i){let r=ua(n.engine,n.detail,t.permissions,e.system,e.prompt);throw new B(`chain-exhausted`,r.error,{payload:r})}e.onFallback?.({engine:n.engine,detail:n.detail,next:i}),o={engine:i,permissions:e.permissions},s={name:void 0,simulateApproval:void 0}}}}function fa(e,t){if(t.status!==`failed`)return;let n=t.result;if(!n||!Yi(n.error?.message??``)||!(!n.touchedFiles?.length&&!n.fileChanges?.length&&!n.commandExecutions?.length))return;let r=J(e).chain;return r[r.indexOf(t.task.engine)+1]}function pa(t,n){return m(e.join(F(t,n),`result.json`))}function ma(e,t,n=0){if(n===0)return[];let r=z(e,t,2**53-1);return n===`all`?r:Et(r,n)}function ha(e,t,n={}){let r=L(e,t);if(!r)throw Error(`No task found for "${t}".`);return{taskId:t,status:r.status,result:Be.includes(r.status)?null:pa(e,t),steps:ma(e,t,n.tail),turns:Tt(e,t),task:r}}async function ga(e,t,n={}){let r=L(e,t);if(!r)throw Error(`No task found for "${t}".`);let i=await _a(e,r);if(i.reason===`approval`){let e=i.approval;throw new B(`approval-pending`,`Approval needed for task ${t}: ${e.summary}`,{taskId:t,approval:e})}n.onSettle?.();let a=i.task;return{taskId:t,status:a.status,result:pa(e,t),steps:ma(e,t,n.tail),turns:Tt(e,t),task:a}}async function _a(e,t,n=400){let r=t;for(;;){if(D.includes(r.status))return{task:r,reason:`terminal`};let t=Ui(F(e,r.id)).filter(e=>!e.response);if(t[0]){let e=t[0].params;return{task:r,reason:`approval`,approval:{id:t[0].id,summary:String(t[0].summary??``),cwd:typeof t[0].cwd==`string`?t[0].cwd:null,networkHost:e?.networkApprovalContext?.host??null}}}await new Promise(e=>setTimeout(e,n)),r=R(e,L(e,r.id)??r)}}export{Cn as $,We as $t,Kr as A,m as An,Ct as At,Jn as B,pt as Bt,Mi as C,S as Cn,Ze as Ct,pi as D,v as Dn,Qe as Dt,xi as E,x as En,wt as Et,rr as F,Dt as Ft,Mt as G,mt as Gt,Nt as H,$e as Ht,tr as I,rt as It,hn as J,R as Jt,H as K,z as Kt,$n as L,O as Lt,qr as M,h as Mn,k as Mt,cr as N,St as Nt,fi as O,g as On,et as Ot,Yn as P,_t as Pt,on as Q,Ge as Qt,Zn as R,yt as Rt,Di as S,C as Sn,B as St,bi as T,te as Tn,Ot as Tt,U,st as Ut,Hn as V,L as Vt,It as W,ht as Wt,jn as X,P as Xt,An as Y,at as Yt,bn as Z,Ue as Zt,Bi as _,Se as _n,fn as _t,Yi as a,j as an,Rn as at,Ui as b,be as bn,jt as bt,ra as c,vt as cn,En as ct,ca as d,I as dn,Sn as dt,Je as en,W as et,fa as f,Be as fn,sn as ft,qi as g,xe as gn,G as gt,Wi as h,Ce as hn,q as ht,aa as i,qe as in,nn as it,Jr as j,p as jn,A as jt,Q as k,_ as kn,He as kt,Zi as l,nt as ln,vn as lt,ga as m,ze as mn,K as mt,sa as n,F as nn,In as nt,pa as o,Et as on,zn as ot,_a as p,D as pn,xn as pt,Pt as q,Tt as qt,da as r,Ke as rn,Ln as rt,ha as s,ut as sn,_n as st,ua as t,M as tn,J as tt,ta as u,bt as un,un as ut,Vi as v,we as vn,Mn as vt,Ni as w,w as wn,kt as wt,Ki as x,le as xn,At as xt,Gi as y,E as yn,Dn as yt,nr as z,gt as zt};
|
package/dist/docs-Byrpar10.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{St as e,Tn as t}from"./dispatch-YW1aqjEg.js";import n from"node:path";import r from"node:fs";const i=[{name:`readme`,file:`README.md`,description:`What Coder is and how to get started.`},{name:`skill`,file:`plugins/agents/skills/coder/SKILL.md`,description:`How a host agent should drive Coder.`}];function a(e){let t=n.join(e,`docs`),a=[];try{a=r.readdirSync(t,{withFileTypes:!0})}catch{a=[]}let c=(t,r)=>({name:t,file:r,description:s(n.join(e,r))}),l=[...new Set(a.filter(e=>e.isDirectory()?o(n.join(t,e.name)):e.name.endsWith(`.md`)).map(e=>e.isDirectory()?e.name:n.basename(e.name,`.md`)))].sort(),u=[];for(let e of l){let i=n.join(t,e);if(!a.some(t=>t.isDirectory()&&t.name===e)){u.push(c(e,n.join(`docs`,`${e}.md`)));continue}u.push(c(e,n.join(`docs`,e,`index.md`)));let o=r.readdirSync(i).filter(e=>e.endsWith(`.md`)&&e!==`index.md`).sort();for(let t of o){let r=n.basename(t,`.md`);u.push(c(`${e}/${r}`,n.join(`docs`,e,t)))}}let d=i.map(e=>({name:e.name,file:e.file,description:e.description}));return[...u,...d]}function o(e){return r.existsSync(n.join(e,`index.md`))}function s(e){let t=``;try{t=r.readFileSync(e,`utf8`)}catch{return``}let n=t.split(`
|
|
2
|
-
`),i=``,a=``,o=!1;for(let e of n){let t=e.trim();if(t.startsWith("```")){o=!o;continue}if(!(o||t===``)){if(t.startsWith(`#`)){i||=t.replace(/^#+\s*/,``);continue}a=t;break}}return c(a)||i}function c(e){if(!e)return``;let t=e.match(/^.*?[.!?](?=\s|$)/);return(t?t[0]:e).trim()}function l(i,o={}){let s=t(),c=a(s);if(!i)return{topics:c.map(e=>({name:e.name,description:e.description}))};let l=i.toLowerCase(),u=c.find(e=>{let t=e.name.toLowerCase();return t===l||t.replace(`/`,`-`)===l});if(u?.name===`skill`&&o.claude&&(u={...u,file:`plugins/claude/skills/dispatch/SKILL.md`}),!u)throw new e(`invalid-option`,`Unknown docs topic "${i}". Available: ${c.map(e=>e.name).join(`, `)}`,{hint:`List topics: coder docs`});let d=n.join(s,u.file),f;try{f=r.readFileSync(d,`utf8`)}catch{throw new e(`invalid-option`,`Could not read docs for "${u.name}" (${u.file}).`)}return{name:u.name,content:f}}export{l as t};
|
package/dist/env-LsVTi18f.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{St as t,bn as n}from"./dispatch-YW1aqjEg.js";import r from"node:path";import i from"node:process";import*as a from"zod/mini";import o from"node:os";var s=e({loadServerConfig:()=>g,requireBunServer:()=>v,rerunUnderBun:()=>y});const c=e=>a._default(a.coerce.number().check(a.int(),a.positive()),e),l=a.pipe(a.optional(a.string()),a.transform(e=>e===`1`)),u=(e,t)=>a.string().check(a.overwrite(e=>e.replace(/\/$/,``)),a.refine(e=>URL.canParse(e),{error:`must be a URL`,abort:!0}),a.refine(t=>e(new URL(t)),t)),d=e=>a.pipe(a.transform(e=>e||void 0),e),f=a.pipe(a.string(),a.transform((e,t)=>{try{let t=JSON.parse(e);if(t&&!Array.isArray(t)&&typeof t==`object`)return t}catch{}return t.issues.push({code:`custom`,message:`must be a JSON object`,input:e}),a.NEVER})),p=a.object({AUTH_WULAR_URL:a._default(u(e=>e.protocol===`https:`||e.hostname===`localhost`,`must use HTTPS unless it is localhost`),`https://auth.wular.ai`)}),m=a.object({SERVER_LIMITS:d(a.optional(a.pipe(f,a.strictObject({principalPerMinute:a.optional(a.number().check(a.int(),a.positive())),authPerMinute:a.optional(a.number().check(a.int(),a.positive())),registerPerMinute:a.optional(a.number().check(a.int(),a.positive())),ipPerMinute:a.optional(a.number().check(a.int(),a.positive())),pairingPerMinute:a.optional(a.number().check(a.int(),a.positive())),concurrentTasks:a.optional(a.number().check(a.int(),a.positive()))})))),RUNNER:a.optional(a.enum([`local`,`local-docker`,`vercel-sandbox`,`github-actions`,`http`])),RUNNER_CONFIG:d(a._default(f,{})),WORK_DIR:a.optional(a.string()),SERVER_ENCRYPTION_KEY:a.optional(a.string()),SERVER_ENCRYPTION_KEY_PREVIOUS:a.optional(a.string()),ADMIN_TOKEN:a.optional(a.string()),PUBLIC_URL:d(a.optional(u(e=>e.pathname===`/`&&!e.search&&!e.hash,`must be an origin, with no path, query or fragment`))),SERVER_NAME:a.optional(a.string().check(a.trim())),VERCEL_PROJECT_PRODUCTION_URL:a.optional(a.string()),VERCEL_URL:a.optional(a.string()),VERCEL:a.optional(a.string()),DATABASE_URL:a.optional(a.string()),POSTGRES_URL:a.optional(a.string()),DATABASE_POOL_MAX:a.optional(a.coerce.number().check(a.int(),a.positive())),DATABASE_IDLE_TIMEOUT:a.optional(a.coerce.number().check(a.int(),a.positive())),MAX_TASKS:a.optional(a.coerce.number().check(a.int(),a.positive())),MAX_QUEUED:c(1e3),TASK_STALL:c(3e5),TASK_ATTEMPTS:c(2),TASK_TIMEOUT:c(18e5),CLAUDE_SUBSCRIPTIONS:l,CODEX_SUBSCRIPTIONS:l,SERVER_INTEGRATIONS:d(a.optional(a.string()))});function h(e,n){let r=e.safeParse(n);if(r.success)return r.data;let i=r.error.issues[0];throw new t(`invalid-option`,`Invalid server configuration:${String(i.path[0])} ${i.message}`)}function g(e=i.env,n=`node`){let a=h(m,e),s=a.DATABASE_URL??a.POSTGRES_URL,c=s?`postgres`:`memory`;if(c===`postgres`&&!a.SERVER_ENCRYPTION_KEY)throw new t(`invalid-option`,`SERVER_ENCRYPTION_KEY is required with DATABASE_URL`);let l=n===`vercel`?a.VERCEL_PROJECT_PRODUCTION_URL??a.VERCEL_URL:void 0,u=a.PUBLIC_URL??(l?`https://${l}`:void 0),d=c===`postgres`?h(p,e).AUTH_WULAR_URL:void 0;return{runner:a.RUNNER??(n===`vercel`||a.VERCEL?`vercel-sandbox`:`local`),store:c,workDir:a.WORK_DIR??r.join(o.tmpdir(),`coder`),...a.SERVER_ENCRYPTION_KEY?{encryptionKey:a.SERVER_ENCRYPTION_KEY}:{},...a.SERVER_ENCRYPTION_KEY_PREVIOUS?{previousEncryptionKey:a.SERVER_ENCRYPTION_KEY_PREVIOUS}:{},...a.ADMIN_TOKEN?{adminToken:a.ADMIN_TOKEN}:{},...u?{publicUrl:u}:{},...a.SERVER_NAME?{name:a.SERVER_NAME}:{},...s?{databaseUrl:s,databasePool:{max:a.DATABASE_POOL_MAX??(n===`vercel`||a.VERCEL?2:10),idleTimeout:a.DATABASE_IDLE_TIMEOUT??(n===`vercel`||a.VERCEL?30:240)}}:{},runnerConfig:a.RUNNER_CONFIG,maxTasks:a.MAX_TASKS,limits:a.SERVER_LIMITS,maxQueued:a.MAX_QUEUED,taskTimeoutMs:a.TASK_TIMEOUT,taskStallMs:a.TASK_STALL,taskAttempts:a.TASK_ATTEMPTS,...a.CLAUDE_SUBSCRIPTIONS||a.CODEX_SUBSCRIPTIONS?{subscriptions:{claude:a.CLAUDE_SUBSCRIPTIONS,codex:a.CODEX_SUBSCRIPTIONS}}:{},...d?{auth:{wular:{url:d}}}:{},...a.SERVER_INTEGRATIONS?{integrations:a.SERVER_INTEGRATIONS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{}}}function _(){return new t(`invalid-option`,`The Coder server needs Bun; the CLI itself runs on Node.`,{hint:[i.platform===`win32`?`Install Bun: powershell -c "irm bun.sh/install.ps1 | iex"`:`Install Bun: curl -fsSL https://bun.sh/install | bash`,`Or with npm: npm install -g bun`,`Then run the command again. More: https://bun.sh/docs/installation`]})}function v(){if(typeof Bun>`u`)throw _()}async function y(){if(typeof Bun<`u`)return;let e=i.platform===`win32`?[`bun.exe`,`bun.cmd`,`bun`]:[`bun`];for(let t of e){let e=await n(t);if(e.error?.code!==`ENOENT`&&e.error?.code!==`EINVAL`){if(e.error)throw e.error;if(e.signal){let t=o.constants.signals[e.signal];i.exit(typeof t==`number`?128+t:1)}i.exit(e.status??1)}}throw _()}export{g as n,v as r,s as t};
|
package/dist/exec-DgI3boHa.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{F as t,St as n,Vt as r,c as i,f as a,l as o,m as s,n as c,r as l,tt as u,u as d,z as f}from"./dispatch-YW1aqjEg.js";import{a as p,f as m,o as h}from"./load-DDZfByUe.js";import{t as g}from"./integrations-B2CavXR1.js";import{a as _}from"./discover-CaAtyC0h.js";import{c as v}from"./actions-CmfXOVXQ.js";import{n as y}from"./executor-HWnIIYUL.js";import{REVIEW_PLATFORM as b,postReview as x,resolveReviewTarget as S}from"./flow/builtin/review.js";import{a as C,i as w,n as T,r as E}from"./mcp-DgMoPoUo.js";import D from"node:path";import O from"node:process";import{readFileSync as k,readdirSync as A,realpathSync as j}from"node:fs";import M from"node:os";import N from"node:fs/promises";var P=e({AGENT_TASK_PREFIX:()=>F,agentInstructions:()=>q,agentSystemPrompt:()=>K,agentTaskOptions:()=>W,builtinArgs:()=>U,builtinTaskArgs:()=>V,defaultTask:()=>Q,execAgent:()=>z,postReply:()=>L,renderContext:()=>X,startAgentMailbox:()=>$,taskFromEvent:()=>I,waitForAgentTask:()=>B});const F=`agent:`;function I(e,t,n){let r=g[n.integration];return{id:`local-${n.deliveryId}-${e.id}`,source:n.integration,agent:e.id,flow:t,runner:`local`,event:n,definition:e.definition,...e.usage?{usage:e.usage}:{},tools:r?{[n.integration]:m(e,n.integration,r)}:{}}}async function L(e,t,n,r,i=e.id){if(!t.chat)throw Error(`The ${t.integration} event has no thread to reply in`);let[{Chat:a},{LocalChatState:o}]=await Promise.all([import(`chat`),import(`./chat-3Znsevah.js`).then(e=>e.r)]),s=await e.adapter({fetch,appId:t.appId.slice(e.id.length+1),name:i,installationId:t.installationId,token:async()=>r}),c=new a({userName:i,adapters:{[e.id]:s},state:new o,logger:`error`});await c.initialize();let l=c.thread(t.chat.thread.id);s.reply&&t.chat.message?.id?await l.reply(t.chat.message.id,n):await l.post(n)}function R(e,t){return Object.fromEntries(Object.keys(e.tools).map(n=>[n,t[w(n)]??(n===e.event?.integration?t.APP_TOKEN:void 0)]))}async function z(e){let{cwd:t,flow:n}=e,r=u(t),i=await p(t,g),a=e.task;!a&&e.taskFile&&(a={...JSON.parse(await N.readFile(D.resolve(t,e.taskFile),`utf8`)),flow:n});let s=i.find(t=>t.id===e.agent);if(!s&&a&&(s={id:a.agent,name:a.definition.name??a.agent,definition:a.definition,...a.usage?{usage:a.usage}:{},...a.files?{files:a.files}:{},builtin:!1}),!s)throw Error(`No agent named "${e.agent}".`);a??=await H(t,s,n,e);let c=a.event,f=c&&g[c.integration];if(c&&!f)throw Error(`Unknown integration "${c.integration}".`);if(n==="default"){let i=Q(s,a),u=e.noteFile?void 0:await N.mkdtemp(D.join(M.tmpdir(),`coder-note-`)),p=e.noteFile??D.join(u,`note`);e.noteFile||await N.writeFile(p,a.context?.note??``);let m=o(h(s),r),g=d(a.mcp?.join(`,`),r.mcp,s.definition.mcp),_=[...E(a,e.toolEnvironment?.tokens??R(a,O.env)),T(p),...g.mcp],v=e.resumeTaskId?{taskId:e.resumeTaskId}:await l({taskId:e.taskId,mcp:_,nativeMcp:g.nativeMcp,cwd:t,agentId:a.agent,...a.author?{author:a.author}:{},...c?.repo?{repo:`${c.repo.owner}/${c.repo.name}`}:{},...e.source?{source:e.source}:{name:`${F}${a.id}`},engine:m.engine,model:m.model??void 0,effort:m.effort??void 0,permissions:a.permissions??m.permissions,system:i.system,prompt:i.prompt,outputSchema:a.context?.outputSchema,wait:!0});await e.onTask?.(v.taskId);let y=await B(t,v.taskId,e.onApproval),b=(y.result?.finalMessage??y.result?.error?.message??``).trim(),x=(await N.readFile(p,`utf8`).catch(()=>``)).trim();u&&await N.rm(u,{recursive:!0,force:!0});let S=e.post!==!1&&!!f;return S&&await L(f,c,b,e.postToken??O.env.APP_TOKEN,a.author),{ok:y.status===`completed`,flow:n,reply:b,posted:S,taskId:v.taskId,tokens:y.result?.tokens??void 0,...x===(a.context?.note??``).trim()?{}:{note:x}}}let m=_(n,t),v=m.scope===`builtin`?{...await V(a,s,e.post!==!1),cwd:t,...a.args}:a.args??c,b=await y(m.path,{cwd:t,...e.taskId?{runId:e.taskId}:{},args:v,ceiling:{agent:s.id,permissions:a.permissions??o(h(s),r).permissions},...e.postToken?{integrationToken:e.postToken}:{}},{...e.onTask?{onTaskStart:t=>e.onTask(t.taskId)}:{},...e.onStart?{onStart:e.onStart}:{}});return{ok:!0,flow:n,runId:b.runId,result:b.result,tokens:b.tokens}}async function B(e,t,r,i=s,a=()=>new Promise(e=>setTimeout(e,100))){let o;for(;;)try{return await i(e,t)}catch(e){if(!(e instanceof n)||e.code!==`approval-pending`||!r)throw e;e.approval?.id!==o&&(o=e.approval?.id,await r(e.approval)),await a()}}async function V(e,t,n=!0){if(!e.event)throw Error(`built-in flows need a GitHub pull request event`);return{...await U(e.event,t,e.context,e.author,n),...h(t),...e.permissions?{permissions:e.permissions}:{}}}async function H(e,t,n,r){if(r.taskFile){let t=JSON.parse(await N.readFile(D.resolve(e,r.taskFile),`utf8`));return{...t,flow:n,tools:t.tools??{}}}if(!r.eventFile)throw Error(`Missing --task or --event file.`);return I(t,n,JSON.parse(await N.readFile(D.resolve(e,r.eventFile),`utf8`)))}function U(e,t,n,r,i=!0){let a=g[e.integration]?.repos?.pullRequest(e);if(!a)throw Error(`built-in flows need a pull request event`);return{pr:a,post:i,...r?{author:r}:{}}}async function W(e,t,r){let i=await p(e,g),a=i.find(e=>e.id===t);if(!a)throw new n(`invalid-option`,`No agent named "${t}".`,{hint:`Agents here: ${i.map(e=>e.id).join(`, `)}`});let{definition:o,usage:s}=a,c=o.mcp??{},l=d(r,u(e).mcp,c);return{engine:s?.engine??o.engine,model:s?.model??o.model,effort:s?.effort??o.effort,permissions:s?.permissions??o.permissions,system:q(a)||void 0,...l}}const G=48e3;function K(e){let t=[`You are an agent named "{name}" acting on behalf of a software team. You receive one request, a platform event or a task, and must produce the reply that goes back to its thread verbatim. Be direct and specific, use the attached tools to read context before answering, never invent facts about the repository, and stay within the actions your tools allow. Reply in plain markdown with no preamble.`.replace(`{name}`,e.definition.name??e.id)];e.definition.description&&t.push(`Your role: ${e.definition.description}`);let n=q(e);return n&&t.push(`## Agent instructions\n\n${n}`),t.join(`
|
|
2
|
-
|
|
3
|
-
`)}function q(e){if(!e.dir)return J(e.files??{});let t;try{t=A(e.dir).filter(e=>e.endsWith(`.md`))}catch{return``}t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${k(D.join(e.dir,r),`utf8`).trim()}\n`;if(n+=t.slice(0,G-n.length),n.length===G)break}return n.trimEnd()}function J(e){let t=Object.keys(e).filter(e=>e.endsWith(`.md`));t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${e[r].trim()}\n`;if(n+=t.slice(0,G-n.length),n.length===G)break}return n.trimEnd()}function Y(e){let t=[`**Integration:** ${e.integration}`,`**Type:** ${e.type}`,`**Actor:** ${e.actor.login??e.actor.id}`];return e.repo&&t.push(`**Repo:** ${e.repo.owner}/${e.repo.name}`),e.chat&&t.push(`**Thread:** ${e.chat.thread.id}${e.chat.thread.isDM?` (direct message)`:``}`),[t.join(`
|
|
4
|
-
`),e.promptContext,e.text].filter(Boolean).join(`
|
|
5
|
-
|
|
6
|
-
`)}function X(e){if(!e)return``;let t=[];return e.messages?.length&&t.push(`## Recent thread\n\n${e.messages.map(e=>`- ${e.user}: ${e.text}`).join(`
|
|
7
|
-
`)}`),e.note&&t.push(`## Note from earlier in this thread\n\n${e.note}`),e.instructions&&t.push(`## Repository instructions\n\n${e.instructions}`),e.user&&t.push(`## Who asked\n\n${e.user.name} (${e.user.email}), a member of this Coder server.`),t.join(`
|
|
8
|
-
|
|
9
|
-
`)}function Z({event:e,prompt:t}){return t===void 0?e?Y(e):``:e?.repo?`**Repo:** ${e.repo.owner}/${e.repo.name}\n\n${t}`:t}function Q(e,t){let n=X(t.context),r=t.prompt===void 0&&t.event?g[t.event.integration]?.hint:void 0,i=Z(t);return{system:[K(e),r?`## Platform\n\n${r}`:``].filter(Boolean).join(`
|
|
10
|
-
|
|
11
|
-
`),prompt:n?`${i}\n\n${n}`:i}}function $(e,o){let u=t(e,o);if(!u)return()=>{};let d={agent:o.agentId,permissions:o.permissions??`auto`},p=j(e),m=new Map((o.mcp??[]).map(e=>[e.name,e])),h=e=>{if(!e.command)return e;let[t]=i([e],O.env,p);return{...e,command:t.command,args:t.args}},g=e=>{try{return j(e)}catch{return null}},_=[e,...o.addDirs??[]].flatMap(e=>g(D.resolve(e))??[]),y=e=>_.some(t=>e===t||e.startsWith(t+D.sep)),w=new Map,T=new Set,E=()=>{let e=C(i(o.mcp),b);return e?{token:e}:{}};return f(u,{async dispatch(e){let t=e.name??`task`;if(e.mcp!==void 0&&(typeof e.mcp!=`string`||/^[\[{]/.test(e.mcp.trim())))throw new n(`invalid-option`,`Mailbox MCP selections must be server names.`);let r=(e.mcp??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e===`all`?void 0:m.get(e);if(!t)throw new n(`invalid-option`,`MCP server "${e}" is not authorized for agent "${d.agent}".`);return h(t)}),i=D.resolve(String(e.cwd??p));if(g(i)!==g(p)&&r.some(e=>e.command))throw new n(`invalid-option`,`Inherited stdio MCP servers do not allow a cwd override.`);let a=[i,...(e.addDirs??[]).map(e=>D.resolve(i,e))],o=a.find(e=>!g(e));if(o)throw new n(`invalid-option`,`task "${t}" asks for ${o}, which does not exist`);let[s,...u]=a.map(e=>g(e)),f=[s,...u].find(e=>!y(e));if(f)throw new n(`invalid-option`,`task "${t}" asks for ${f}, outside the workspace of agent "${d.agent}"`);let _=await l({prompt:String(e.prompt??``),outputSchema:e.outputSchema,cwd:s,engine:e.engine,model:e.model,effort:e.effort,mcp:r,permissions:c(t,e.permissions,d),name:e.name,system:e.system,addDirs:u,flowRunId:e.flowRunId,wait:!0},{fromMailbox:!0});return w.set(_.taskId,s),{taskId:_.taskId}},async steer(e){let t=w.get(e.taskId);if(!t)throw new n(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let i=r(t,e.taskId);if(!i)throw new n(`invalid-option`,`No task "${e.taskId}".`);return v(t,i,String(e.text??``),{model:e.model,effort:e.effort,permissions:e.permissions?c(i.name,e.permissions,d):void 0})},async wait(e){let t=w.get(e.taskId);if(!t)throw new n(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let r=await s(t,e.taskId);return{status:r.status,result:r.result,model:r.task.model??null,next:a(t,r)??null}},review(t){if(t.op===`resolveTarget`){let{repo:r,...i}=t.input??{};if(!o.repo&&!/^\d+$/.test(String(i.pr)))throw new n(`invalid-option`,`review target must be a pull request number in this task's repository`);let a=S({...i,cwd:e,...o.repo?{repo:o.repo}:{},...o.author?{author:o.author}:{}},E());return a.pr&&T.add(`${a.pr.repo}#${a.pr.number}`),a}if(t.op!==`post`)throw new n(`invalid-option`,`unknown review action "${t.op}"`);if(!T.has(`${t.input?.repo}#${t.input?.pr}`))throw new n(`invalid-option`,`review post: pull request was not resolved by this task`);return x({...t.input,cwd:e},E())}})}export{I as a,P as i,W as n,z as r,F as t};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{$t as t,Bt as n,Dn as r,Ft as i,I as a,L as o,Lt as s,On as c,Qt as l,Sn as u,St as d,Tt as f,Ut as ee,Vt as p,f as m,kt as te,m as ne,n as re,pn as h,r as ie}from"./dispatch-YW1aqjEg.js";import{r as ae,s as oe}from"./output-BKeyLbvt.js";import{a as g}from"./discover-CaAtyC0h.js";import{c as se,l as ce,s as le}from"./actions-CmfXOVXQ.js";import{createRequire as ue}from"node:module";import _ from"node:path";import v from"node:process";import{fileURLToPath as de,pathToFileURL as fe}from"node:url";import y from"node:fs";import{spawn as pe,spawnSync as me}from"node:child_process";import he,{randomUUID as ge}from"node:crypto";import _e from"node:os";import{AsyncLocalStorage as ve}from"node:async_hooks";function b(e){return typeof e!=`object`||!e?JSON.stringify(e)??`null`:Array.isArray(e)?`[${e.map(b).join(`,`)}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${b(e[t])}`).join(`,`)}}`}function ye(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function x(e,t){return he.createHash(`sha256`).update(`${e}\0${b(t)}`).digest(`hex`)}function S(e){return y.existsSync(e)?y.readFileSync(e,`utf8`).split(/\r?\n/).filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>e!==null):[]}var be=class{file;recorded;seq=0;constructor(e,t){this.file=t,this.recorded=e.map(e=>({...e})),y.writeFileSync(t,``,`utf8`)}write(e){e.seq=this.seq++,y.appendFileSync(this.file,`${JSON.stringify(e)}\n`,`utf8`)}replay(...e){let t=this.recorded.find(t=>!t.consumed&&e.includes(t.fingerprint));if(!t)return null;t.consumed=!0;let{consumed:n,...r}=t;return this.write(r),r}record(e){this.write({...e,seq:0})}},xe=e({archiveFlaggedRuns:()=>Ie,archiveRun:()=>j,archiveRuns:()=>Pe,collectFlowRuns:()=>ze,deleteRun:()=>M,deleteRuns:()=>Fe,flowSteps:()=>Re,generateRunId:()=>E,latestRun:()=>V,listArchivedRuns:()=>B,listRuns:()=>z,markRunArchived:()=>A,readFlowRecord:()=>F,readRawRecord:()=>N,reconcileRun:()=>P,resumeRun:()=>je,runDirFor:()=>k,runResult:()=>w,startRun:()=>Ae,unarchiveRun:()=>Le,watchRun:()=>T,writeFlowRecord:()=>I});const C=`CODER_FLOW_ATTACH`;function Se(){try{return me(`bun`,[`--version`],{stdio:`ignore`}).status===0}catch{return!1}}function Ce(e,t){if(!e.endsWith(`.ts`)||v.versions.bun||v.features.typescript)return;if(!Se())throw new d(`invalid-option`,`This flow is a TypeScript file (${e}) and this Node cannot run TypeScript.`,{hint:[`Upgrade to Node 23.6+ or install bun: https://bun.sh`,`Or write the flow as .mjs / .js`]});let n=me(`bun`,[u,...t],{stdio:`inherit`});v.exit(n.status??1)}function we(e){v.once(`SIGINT`,()=>{(async()=>{let{runId:t}=e,n=y.existsSync(_.join(k(t),yt));if(v.stderr.write(`\n[flow] Stopping run ${t}. No new tasks will dispatch.\n`),n){let t=e.runningIds();t.length&&v.stderr.write(`[flow] left running: ${t.join(`, `)}\n`)}else{let n=await St(t,e.runningIds());n.length&&v.stderr.write(`[flow] stopped tasks: ${n.join(`, `)}\n`)}v.stderr.write(`\n${oe([`Resume: coder flow resume ${t}`],ae)}\n`),e.requestStop(),v.exit(130)})()})}function Te(e){let t=_.join(k(e),`events.jsonl`),n=e=>{try{y.appendFileSync(t,`${JSON.stringify(e)}\n`,`utf8`)}catch{}};return{onStart:e=>we(e),onTaskStart:e=>n({kind:`task-start`,...e}),onTaskEnd:e=>n({kind:`task-end`,...e}),onGateStart:e=>n({kind:`gate-start`,...e}),onGate:e=>n({kind:`gate`,...e}),onLog:(e,t)=>n({kind:`log`,message:e,depth:t}),onFlowStart:e=>n({kind:`flow-start`,...e}),onReplay:e=>n({kind:`replay`,count:e})}}async function Ee(e){let t=v.env[C];if(t){delete v.env[C];try{await $(t,e,Te(t)),v.exit(0)}catch(e){Z(t,e instanceof Error?e.message:String(e)),v.exit(1)}}}function De(e,t,n){let r=k(e.runId);y.writeFileSync(_.join(r,`events.jsonl`),``,`utf8`);let i=y.openSync(_.join(r,`flow.log`),`a`),a=pe(v.execPath,[u,...t],{detached:!0,stdio:[`ignore`,i,i],env:{...v.env,[C]:e.runId}});return a.unref(),y.closeSync(i),{runId:e.runId,status:`running`,...n?{watch:T(e.runId,{bootPid:a.pid})}:{}}}async function Oe(e,t,n){try{return await n()}catch(n){if(!(n instanceof d)||n.code!==`flow-failed`)throw n;let r=t?`
|
|
2
|
-
[flow] dry-run ended early: a downstream step depends on real task output (stub it or run for real).`:``;throw new d(`flow-failed`,`[flow] ${e} ${n.runId} failed: ${n.message}${r}`,{runId:n.runId,hint:`Resume${e===`resume`?` again`:``}: coder flow resume ${n.runId}`})}}function ke(e,t){let n=e?F(e):V();if(!n)throw new d(`flow-failed`,e?`No flow run "${e}".`:t,{hint:`Run one: coder flow run <name>`});return n}async function Ae(e,t={},n={}){return t.argv&&(Ce(g(e,t.cwd?_.resolve(t.cwd):v.cwd()).path,t.argv),await Ee(t),!t.dryRun)?De(Y(e,t),t.argv,t.wait):Oe(`run`,t.dryRun,()=>Dt(e,t,n))}async function je(e,t={},n={}){let r=ke(e,`No flow runs to resume.`);return t.argv&&(Ce(r.script,t.argv),await Ee(t),!t.dryRun)?De(Y(``,t,r.runId),t.argv,t.wait):Oe(`resume`,t.dryRun,()=>$(r.runId,t,n))}function Me(e){let t=_.join(k(e),`events.jsonl`);return y.existsSync(t)?y.readFileSync(t,`utf8`).split(`
|
|
3
|
-
`).filter(Boolean).flatMap(e=>{try{return[JSON.parse(e)]}catch{return[]}}):[]}function w(e,t={}){let n=e?F(e):V();return n?{...n,steps:Re(n.runId,t.tail),journal:S(_.join(k(n.runId),`journal.jsonl`)).map(e=>({kind:e.kind,taskId:e.taskId,tokens:e.tokens})),events:Me(n.runId)}:null}function T(e,t={}){let n=ke(e,`No flow runs yet.`);return{record:n,events:wt(n.runId,t.bootPid,{tail:t.tail}),final(){let e=w(n.runId,{tail:0});if(!e)throw new d(`flow-failed`,`[flow] run ${n.runId} vanished while following.`,{hint:`Recent runs: coder flow list`});return e}}}function Ne(e){let t=F(e);if(!t)throw new d(`flow-failed`,`No flow run "${e}".`,{hint:`Recent runs: coder flow list`});if(t.status===`running`||t.status===`queued`)throw new d(`flow-failed`,`Run ${t.runId} is still running.`,{runId:t.runId,hint:`Stop it first: coder flow stop ${t.runId}`});return t}function Pe(e,t={}){if(t.allStopped){let e=z().filter(e=>e.status!==`running`&&e.status!==`queued`);for(let t of e)j(t);let t=e.map(e=>e.runId);return{archived:t,count:t.length}}if(!e)throw new d(`invalid-option`,`Missing run id.`,{hint:[`Archive one: coder flow archive <run-id>`,`Archive all stopped: coder flow archive --all-stopped`]});let n=Ne(e);return j(n),{runId:n.runId,archived:!0}}function Fe(e,t={}){if(t.allArchived){let e=B().filter(e=>M(e.runId)).map(e=>e.runId);return{deleted:e,count:e.length}}if(!e)throw new d(`invalid-option`,`Missing run id.`,{hint:[`Delete one: coder flow delete <run-id>`,`Delete all archived: coder flow delete --all-archived`]});let n=Ne(e);return{runId:n.runId,deleted:M(n.runId)}}function E(){return`flow-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function D(){let e=o();return t(e)}function O(){return l()}function k(e){te(e,`flow run id`);let t=_.join(D(),e);if(y.existsSync(_.join(t,`flow.json`)))return t;let n=_.join(O(),e);return y.existsSync(_.join(n,`flow.json`))?n:t}function A(e){if(e.archived)return e;let t={...e,archived:!0,archivedAt:new Date().toISOString()};return I(k(e.runId),t),t}function j(e){let t=k(e.runId),n=_.join(O(),e.runId);return t!==n&&c(t,n),A(e)}function Ie(e){for(let t of e){let e=F(t);e&&j(e)}}function Le(e){let t=k(e.runId),n=_.join(D(),e.runId);t!==n&&c(t,n);let r={...e,archived:void 0,archivedAt:void 0};return I(k(e.runId),r),r}function M(e){let t=k(e);return y.existsSync(_.join(t,`flow.json`))?(y.rmSync(t,{recursive:!0,force:!0}),!0):!1}function N(e){if(!s(e))return null;let t=_.join(k(e),`flow.json`);if(!y.existsSync(t))return null;try{return JSON.parse(y.readFileSync(t,`utf8`))}catch{return null}}function P(e){return e.status!==`running`||!e.pid||Q(e)?e:(Z(e.runId,`orchestrator died`),N(e.runId)??e)}function F(e){let t=N(e);return t?P(t):null}function I(e,t){y.writeFileSync(_.join(e,`flow.json`),`${JSON.stringify(t,null,2)}\n`,`utf8`)}function L(e){let t=[];try{t=y.readdirSync(e)}catch{return[]}let n=[];for(let r of t)try{n.push(P(JSON.parse(y.readFileSync(_.join(e,r,`flow.json`),`utf8`))))}catch{}return n}const R=(e,t)=>String(t.startedAt).localeCompare(String(e.startedAt));function z(){let e=[];for(let t of L(D()))t.archived?j(t):e.push(t);return e.sort(R)}function B(e){let t=e?.migrate??!0,n=L(O()),r=new Set(n.map(e=>e.runId));for(let e of L(D()))e.archived&&!r.has(e.runId)&&n.push(t?j(e):e);return n.sort(R)}function V(){return[...z(),...B()].sort(R)[0]??null}function Re(e,t=`all`){if(t===0)return[];let r=S(_.join(k(e),`journal.jsonl`)).filter(e=>e.kind===`task`),i=n(v.cwd()),a=new Map(i.map(e=>[e.id,e])),o=e=>e?.name??e?.prompt?.replace(/\s+/g,` `).trim().slice(0,60)??null,s=r.map(e=>{let t=e.taskId?a.get(e.taskId):void 0;return{taskId:e.taskId??null,name:o(t),status:t?.status??e.result?.status??`?`,tokens:e.tokens??null}}),c=new Set(s.map(e=>e.taskId));for(let t of i)t.flowRunId===e&&!c.has(t.id)&&s.push({taskId:t.id,name:o(t),status:t.status,tokens:null});return t===`all`?s:s.slice(-t)}function ze(e={}){let t=e.limit===`all`?void 0:e.limit,n;if(e.archived)n=B();else{let e=[];n=z().filter(t=>t.status===`running`||t.status===`queued`||f(t.endedAt??t.startedAt)<=18e5||(A(t),e.push(t.runId),!1)),le(v.cwd(),e,{flows:!0})}let r=t===void 0?0:Math.max(0,n.length-t);return{runs:t===void 0?n:n.slice(0,t),clipped:r}}const Be=globalThis,H=Be.__coderFlowCtxALS??=new ve,U=Be.__coderFlowScopeALS??=new ve;function Ve(){return U.getStore()?.args}function He(){return H.getStore()?.integrationToken}function W(){return U.getStore()?.depth??0}var Ue=class{limit;active=0;queue=[];constructor(e){this.limit=e}async run(e){this.active<this.limit?this.active+=1:await new Promise(e=>this.queue.push(e));try{return await e()}finally{let e=this.queue.shift();e?e():--this.active}}};function We(e,t){return t?e?{input:e.input+t.input,cachedInput:e.cachedInput+t.cachedInput,output:e.output+t.output,total:e.total+t.total}:{...t}:e}function Ge(e,t){if(!t.tokens)return;let n=t.model??`default`;e.ledger[n]=We(e.ledger[n]??null,t.tokens)}function Ke(e){return!!e&&typeof e.safeParse==`function`}async function G(e){try{let t=await import(`zod`);if(typeof t.toJSONSchema==`function`)return t.toJSONSchema(e)}catch{}return null}async function qe(e){let t=await G(e);return`Reply with only a single JSON object ${t?`matching this JSON Schema:\n${JSON.stringify(t,null,2)}`:`matching the requested shape`}\nUse no prose or markdown fences. Return only the JSON object.`}function Je(e){let t=e.trim(),n=t.match(/```(?:json)?\s*([\s\S]*?)```/i);n&&(t=n[1].trim());let r=t.indexOf(`{`);if(r===-1)throw Error(`no JSON object found in reply`);let i=0,a=!1,o=!1;for(let e=r;e<t.length;e+=1){let n=t[e];if(a){o?o=!1:n===`\\`?o=!0:n===`"`&&(a=!1);continue}if(n===`"`)a=!0;else if(n===`{`)i+=1;else if(n===`}`&&(--i,i===0))return JSON.parse(t.slice(r,e+1))}throw Error(`unterminated JSON object in reply`)}function K(e,t){if(!Ke(e))return{ok:!0,data:t};let n=e.safeParse(t);if(n.success)return{ok:!0,data:n.data};let r=n.error?.issues??n.error?.errors??[];return{ok:!1,errors:Array.isArray(r)?r.map(e=>`${(e.path??[]).join(`.`)||`(root)`}: ${e.message}`).join(`; `):String(n.error)}}function Ye(e,t,n){return{cwd:t,engine:e.engine,model:e.model,effort:e.effort,mcp:e.mcp,permissions:n?.ceiling?re(e.name,e.permissions,n.ceiling):e.permissions,name:e.name,system:e.system,addDirs:e.addDirs,wait:!0,flowRunId:n?.runId}}function Xe(e,t){return{taskId:e,status:t.status,output:t.result?.finalMessage||t.result?.error?.message||``,tokens:t.result?.tokens??null,model:t.result?.model??t.model}}async function Ze(e,t,n){n?.running.add(t);try{if(o())return await a(`wait`,{taskId:t});let n=await ne(e,t);return{status:n.status,result:n.result,model:n.task.model??null,next:m(e,n)??null}}finally{n?.running.delete(t)}}async function Qe(e,t,n,r){let i=r?.cwd??v.cwd();if(o())await a(`steer`,{taskId:e,text:t,...n});else{let a=p(i,e);if(!a)throw new d(`invalid-option`,`No task "${e}".`);await se(a.cwd??i,a,t,{model:n.model,effort:n.effort,permissions:r?.ceiling&&n.permissions?re(a.name,n.permissions,r.ceiling):n.permissions})}return Xe(e,await Ze(i,e,r))}async function $e(e,t,n){let r=t.cwd?_.resolve(t.cwd):n?.cwd??v.cwd(),s=t.returns?await G(t.returns):null,c=t.returns&&!s?[t.system,await qe(t.returns)].filter(Boolean).join(`
|
|
4
|
-
|
|
5
|
-
`):t.system,l;for(;;){let u={prompt:e,...Ye(t,r,n),system:c,...s?{outputSchema:s}:{},...l?{engine:l,model:void 0,effort:void 0}:{}},d=o()?await a(`dispatch`,u):await ie({...u,onFallback:e=>ct(`${e.engine} failed to start. Falling back to ${e.next}. ${e.detail.replace(/\s+/g,` `).slice(0,140)}`)}),f=p(r,d.taskId),ee=f?i(f):void 0;n?.hooks.onTaskStart?.({taskId:d.taskId,name:t.name,prompt:e,engine:ee,depth:W()});let m=await Ze(r,d.taskId,n);if(m.next){let e=m.next;n?.hooks.onTaskEnd?.({taskId:d.taskId,status:`failed`,tokens:null}),l=e;continue}return Xe(d.taskId,m)}}async function et(e,t,n){if(n?.dryRun){v.stdout.write(`\n[dry-run] task${t.name?` (${t.name})`:``}:\n${e}\n`);let n={...t,returns:t.returns?`<schema>`:void 0};return v.stdout.write(`[dry-run] opts: ${JSON.stringify(n)}\n`),{taskId:`dry`,status:`completed`,output:`[dry-run]`,data:void 0,tokens:null,model:t.model??null}}let r=await $e(e,t,n);if(r.status!==`completed`){let e={...r,data:void 0};throw new d(`task-failed`,`Task ${r.taskId} ${r.status}: ${r.output||`no output`}`,{taskId:r.taskId,result:e})}let i=r.output,a=r.tokens,o;if(t.returns){let e;try{e=K(t.returns,Je(i))}catch(t){e={ok:!1,errors:t instanceof Error?t.message:String(t)}}if(e.ok)o=e.data;else{let s=`Your previous reply did not match the required format: ${e.errors}\n\nReply again with the required JSON object.`,c=await Qe(r.taskId,s,{},n);i=c.output||i,a=We(a,c.tokens);try{let e=K(t.returns,Je(i));if(!e.ok)throw Error(e.errors);o=e.data}catch(e){let t={taskId:r.taskId,status:`completed`,output:i,data:void 0,tokens:a,model:r.model};throw new d(`task-failed`,`Task ${r.taskId} produced no valid structured output: ${e instanceof Error?e.message:String(e)}`,{taskId:r.taskId,result:t})}}}return{taskId:r.taskId,status:`completed`,output:i,data:o,tokens:a,model:r.model}}async function tt(e){if(e)return await G(e)??`<schema>`}async function nt(e,t={}){let n=H.getStore();if(!n)return et(e,t);let r={prompt:e,agent:t.engine,model:t.model,effort:t.effort,...t.mcp===void 0?{}:{mcp:t.mcp},permissions:t.permissions,name:t.name,system:t.system,resume:void 0,cwd:t.cwd,...t.addDirs?.length?{addDirs:t.addDirs}:{},returns:await tt(t.returns)},i=x(`task`,ye(r)),a=n.journal.replay(i,x(`task`,r));if(a)return a.result;if(n.taskCount+=1,n.taskCount>n.maxTasks)throw Error(`Flow exceeded --max-tasks (${n.maxTasks}). Raise it with --max-tasks, or fix a runaway loop; the run is resumable.`);return n.semaphore.run(async()=>{let r=new Date().toISOString(),a;try{a=await et(e,t,n)}catch(e){let t=e instanceof d?e.result:void 0;throw t&&n.hooks.onTaskEnd?.({taskId:t.taskId,status:t.status===`completed`?`failed`:t.status,tokens:t.tokens}),e}return Ge(n,a),n.dryRun||n.hooks.onTaskEnd?.({taskId:a.taskId,status:a.status,tokens:a.tokens}),n.journal.record({kind:`task`,fingerprint:i,result:a,taskId:a.taskId,tokens:a.tokens,startedAt:r,endedAt:new Date().toISOString()}),a})}async function rt(e,t,n={}){let r=H.getStore(),i=async()=>{if(r?.dryRun)return v.stdout.write(`\n[dry-run] steer ${e}:\n${t}\n`),{taskId:e,status:`completed`,output:`[dry-run]`,tokens:null,model:n.model??null};let i=await Qe(e,t,n,r);if(i.status!==`completed`)throw new d(`task-failed`,`Task ${e} ${i.status}: ${i.output||`no output`}`,{taskId:e,result:i});return i};if(!r)return i();let a=x(`steer`,ye({taskId:e,text:t,...n})),o=r.journal.replay(a);if(o)return o.result;if(r.taskCount+=1,r.taskCount>r.maxTasks)throw Error(`Flow exceeded --max-tasks (${r.maxTasks}). Raise it with --max-tasks, or fix a runaway loop; the run is resumable.`);return r.semaphore.run(async()=>{let e=new Date().toISOString(),t=await i();return Ge(r,t),r.dryRun||r.hooks.onTaskEnd?.({taskId:t.taskId,status:t.status,tokens:t.tokens}),r.journal.record({kind:`task`,fingerprint:a,result:t,taskId:t.taskId,tokens:t.tokens,startedAt:e,endedAt:new Date().toISOString()}),t})}const q=262144;function it(e){let t=[];for(let n=e;;){t.push(_.join(n,`node_modules`,`.bin`));let e=_.dirname(n);if(e===n)break;n=e}let n=v.platform===`win32`?`;`:`:`;return{...v.env,PATH:[...t,v.env.PATH??``].join(n)}}async function at(e,t){return new Promise(n=>{let r=pe(e,{shell:!0,cwd:t,env:it(t)}),i=``,a=e=>{i.length>=q||(i+=e,i.length>=q&&(i=`${i.slice(0,q)}\n... [gate output truncated]`))};r.stdout?.on(`data`,a),r.stderr?.on(`data`,a),r.on(`error`,e=>n({ok:!1,code:1,output:String(e.message??e).trim()})),r.on(`close`,e=>n({ok:e===0,code:e??0,output:i.trim()}))})}async function ot(e,t={}){let n=H.getStore(),r=t.cwd?_.resolve(t.cwd):n?.cwd??v.cwd();if(!n)return at(e,r);let i=x(`gate`,{cmd:e,cwd:t.cwd}),a=n.journal.replay(i);if(a)return a.result;if(n.dryRun){v.stdout.write(`\n[dry-run] gate: ${e}\n`);let t={ok:!0,code:0,output:``};return n.journal.record({kind:`gate`,fingerprint:i,result:t,startedAt:new Date().toISOString(),endedAt:new Date().toISOString()}),t}let o=new Date().toISOString(),s=`gate-${v.pid}-${ge()}`,c=W();n.hooks.onGateStart?.({gateId:s,cmd:e,depth:c});let l=await at(e,r);return n.hooks.onGate?.({gateId:s,cmd:e,ok:l.ok,code:l.code,depth:c}),n.journal.record({kind:`gate`,fingerprint:i,result:l,startedAt:o,endedAt:new Date().toISOString()}),l}async function st(e,...t){return Promise.all(e.map(async(e,n)=>{let r=e;for(let i of t)try{r=await i(r,e,n)}catch{return null}return r}))}function ct(e){let t=H.getStore();if(t)try{y.appendFileSync(_.join(t.runDir,`flow.log`),`${JSON.stringify({at:new Date().toISOString(),message:e})}\n`,`utf8`)}catch{}t?.hooks.onLog?t.hooks.onLog(e,W()):(v.stderr.isTTY||!t)&&v.stderr.write(`[flow] ${e}\n`)}const lt=ue(import.meta.url);function ut(e){let t=_.dirname(de(import.meta.url));for(;_.basename(t)!==`dist`&&_.dirname(t)!==t;)t=_.dirname(t);return _.basename(t)===`dist`?fe(_.join(t,e)).href:null}function dt(e){if(!(e===`@wular/coder`||e===`@wular/coder/flow`||e===`zod`||e.startsWith(`zod/`)))return null;try{return fe(lt.resolve(e)).href}catch{}return e===`@wular/coder/flow`?ut(`flow/index.js`):e===`@wular/coder`?ut(`sdk.js`):null}const ft=/(\bfrom\s+|\bimport\s+|\bimport\s*\(\s*)(['"])([^'"]+)\2/g;function pt(e){return e.replace(ft,(e,t,n,r)=>{let i=dt(r);return i?`${t}${n}${i}${n}`:e})}async function mt(e){let t=U.getStore(),n=t.imports??={dirs:new Set,node:!1};if(v.versions?.bun){if(n.dirs.has(e))return;n.dirs.add(e);let{plugin:t}=await import(`bun`),r=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);t({name:`coder-flow:${e}`,setup(e){e.onLoad({filter:RegExp(`^${r}/(?!.*node_modules/).*\\.m?[jt]sx?$`)},e=>({contents:pt(y.readFileSync(e.path,`utf8`)),loader:_.extname(e.path).replace(/^\.m?/,``)}))}});return}if(n.node)return;n.node=!0;let{register:r}=await import(`node:module`),i=Object.fromEntries([`@wular/coder`,`@wular/coder/flow`,`zod`].flatMap(e=>{let t=dt(e);return t?[[e,t]]:[]})),a=`const urls = ${JSON.stringify(i)}, parent = ${JSON.stringify(import.meta.url)};
|
|
6
|
-
export function resolve(spec, ctx, next) {
|
|
7
|
-
if (urls[spec]) return { url: urls[spec], shortCircuit: true };
|
|
8
|
-
return next(spec, spec.startsWith('zod/') ? { ...ctx, parentURL: parent } : ctx);
|
|
9
|
-
}`;r(`data:text/javascript,${encodeURIComponent(a)}`)}async function ht(e,t,n){try{return await import(fe(e).href)}catch(e){let r=e instanceof Error?e.message:String(e);throw t===`.ts`&&!v.versions?.bun&&/Unknown file extension|Unexpected token|SyntaxError|Cannot parse|import type|interface/i.test(r)?Error(`Could not run ${_.basename(n)}: TypeScript flows need bun. Run under \`bun\`, or write the flow as .mjs/.js.`):e}}async function gt(e){if(!y.existsSync(e))throw Error(`Cannot read flow file: ${e}`);return await mt(_.dirname(e)),ht(e,_.extname(e),e)}async function J(e,t){let n=U.getStore();n.args=t??{};let r=await gt(e),i=H.getStore();i?.flowConcurrency&&!n.depth&&typeof r.concurrency==`number`&&(i.semaphore.limit=Math.max(1,r.concurrency),I(i.runDir,{...F(i.runId),concurrency:i.semaphore.limit}));let a=r.args,o=n.args;if(Ke(a)){let e=a.safeParse(t??{});if(!e.success){let e=K(a,t??{});throw Error(`Invalid flow args: ${e.errors??`validation failed`}`)}o=e.data,n.args=o}let s=r.default;return typeof s==`function`?s(o):s}async function _t(e,t){let n=H.getStore(),r=n?.cwd??v.cwd(),i=g(e,r);if(!n)return U.run({args:t??{},depth:0},()=>J(i.path,t));let a=U.getStore();if(a&&a.depth>=1)throw Error(`flow("${e}") nesting is one level deep; a sub-flow cannot call flow().`);let o=x(`flow`,{name:i.name,args:t??{}}),s=n.journal.replay(o);if(s)return s.result;let c=new Date().toISOString();n.hooks.onFlowStart?.({name:i.name,depth:(a?.depth??0)+1});let l=await U.run({args:t??{},depth:(a?.depth??0)+1,imports:a?.imports},()=>J(i.path,t));return n.journal.record({kind:`flow`,fingerprint:o,result:l,startedAt:c,endedAt:new Date().toISOString()}),l}var vt=e({STOP_KEEP_TASKS_MARKER:()=>yt,markRunFailed:()=>Z,orchestratorAlive:()=>Q,pidAlive:()=>bt,prepareRun:()=>Y,resumeFlow:()=>$,runFlowByName:()=>Dt,stopFlowTasks:()=>St,stopRun:()=>Ct,streamFlowCore:()=>wt});function Y(e,t={},n){let r,i,a;if(n){let e=F(n);if(!e)throw Error(`No flow run "${n}".`);e.archived&&Le(e),r=e.name,i=e.script,a=t.args??e.args}else{let n=g(e,t.cwd?_.resolve(t.cwd):v.cwd());r=n.name,i=n.path,a=t.args??{}}let o=n??t.runId??E(),s=k(o);y.mkdirSync(s,{recursive:!0});let c={runId:o,name:r,script:i,args:a,status:`running`,startedAt:new Date().toISOString(),concurrency:Math.max(1,t.concurrency??_e.cpus().length),maxTasks:Math.max(1,t.maxTasks??_e.cpus().length*10),taskCount:0,ledger:{}};return I(s,c),c}function X(e,t,n){I(e,{...t,endedAt:new Date().toISOString(),pid:void 0,pidStartedAt:void 0,...n})}function Z(e,t){let n=N(e);!n||n.status!==`running`||X(k(e),n,{status:`failed`,error:t})}const yt=`stop-keep-tasks`;function bt(e){try{return v.kill(e,0),!0}catch{return!1}}function Q(e){if(!e.pid||!bt(e.pid))return!1;let t=ee(e.pid),n=Date.parse(e.pidStartedAt??``);return t===null||!Number.isFinite(n)||t<=n+6e4}function xt(e){let t=n(v.cwd()),r=new Map(t.map(e=>[e.id,e])),i=new Set(t.filter(t=>t.flowRunId===e).map(e=>e.id));for(let t of S(_.join(k(e),`journal.jsonl`)))t.kind===`task`&&t.taskId&&i.add(t.taskId);return[...i].filter(e=>{let t=r.get(e);return!!t&&!h.includes(t.status)})}async function St(e,t=[]){let n=v.cwd(),r=[];for(let i of new Set([...xt(e),...t])){let e=p(n,i);if(!(!e||h.includes(e.status)))try{await ce(n,e),r.push(i)}catch{}}return r}async function Ct(e,t={}){let n=e?F(e):V();if(!n)throw new d(`flow-failed`,e?`No flow run "${e}".`:`No flow runs.`,{hint:`Run one: coder flow run <name>`});if(n.status!==`running`)throw new d(`flow-failed`,`Run ${n.runId} is not running.`,{runId:n.runId,hint:`Result: coder flow result ${n.runId}`});let r=k(n.runId);if(!Q(n))return X(r,n,{status:`failed`,error:`orchestrator died`}),{runId:n.runId,status:`failed`,stoppedTasks:[],keptTasks:xt(n.runId)};let i=xt(n.runId),a=_.join(r,yt);t.keepTasks&&y.writeFileSync(a,``,`utf8`);try{v.kill(n.pid,`SIGINT`);let e=F(n.runId);for(let t=0;t<25&&e?.status===`running`;t+=1)await new Promise(e=>setTimeout(e,200)),e=F(n.runId);if(!e||e.status===`running`)throw new d(`flow-failed`,`Run ${n.runId} did not stop within 5s.`,{runId:n.runId,hint:`Check it: coder flow result ${n.runId}`});let t=v.cwd(),r=[],a=[];for(let e of i){let n=p(t,e);n&&(n.status===`cancelled`?r.push(e):h.includes(n.status)||a.push(e))}return{runId:n.runId,status:e.status,stoppedTasks:r,keptTasks:a}}finally{if(t.keepTasks)try{y.unlinkSync(a)}catch{}}}async function*wt(e,t,n={}){let i=_.join(k(e),`events.jsonl`),a=n.tail??`all`,o=0;if(a!==`all`)try{o=Math.max(0,y.readFileSync(i,`utf8`).split(`
|
|
10
|
-
`).length-1-a)}catch{}let s=r(i),c=()=>{let e=[];for(let t of s()){if(o>0){--o;continue}try{e.push(JSON.parse(t))}catch{}}return e},l=F(e);for(;!l||l.status===`running`;){yield*c();let n=l?.pid?!Q(l):t!==void 0&&!bt(t);if(l&&(l.pid||t!==void 0)&&n){Z(e,`orchestrator died`);break}await new Promise(e=>setTimeout(e,400)),l=F(e)??l}yield*c()}function Tt(e,t,n,r){let i={...Y(e,t,r),pid:v.pid,pidStartedAt:new Date().toISOString()},{runId:a}=i,o=k(a);I(o,i);let s=_.join(o,`journal.jsonl`),c=r?S(s):[],l=new be(c,s),u={runId:a,runDir:o,cwd:t.cwd?_.resolve(t.cwd):v.cwd(),journal:l,semaphore:new Ue(i.concurrency),flowConcurrency:t.concurrency===void 0,maxTasks:i.maxTasks,dryRun:t.dryRun??!1,ledger:{},running:new Set,taskCount:0,stopping:!1,hooks:n,...t.integrationToken?{integrationToken:t.integrationToken}:{},...t.ceiling?{ceiling:t.ceiling}:{}};return{started:{runId:a,runDir:o,ctx:u,markStopped:()=>{u.stopping=!0,X(o,i,{status:`stopped`,concurrency:u.semaphore.limit,taskCount:u.taskCount,ledger:u.ledger})}},args:i.args,name:i.name,replayable:c.length}}async function Et(e,t,n,r){let{ctx:i,runDir:a,runId:o}=e,s=F(o);try{let e=await H.run(i,()=>U.run({args:r??{},depth:0},()=>J(t,r)));return X(a,s,{status:`completed`,concurrency:i.semaphore.limit,taskCount:i.taskCount,ledger:i.ledger,result:e}),{runId:o,name:n,status:`completed`,result:e,tokens:i.ledger,taskCount:i.taskCount}}catch(e){throw i.stopping||X(a,s,{status:`failed`,concurrency:i.semaphore.limit,taskCount:i.taskCount,ledger:i.ledger,error:e instanceof Error?e.message:String(e)}),e instanceof d&&(e.code===`chain-exhausted`||e.code===`approval-pending`)?(e.runId??=o,e):new d(`flow-failed`,e instanceof Error?e.message:String(e),{runId:o})}}async function Dt(e,t={},n={}){let{started:r}=Tt(e,t,n),i=F(r.runId).script;return n.onStart?.({runId:r.runId,requestStop:r.markStopped,runningIds:()=>[...r.ctx.running]}),Et(r,i,F(r.runId).name,t.args??{})}async function $(e,t={},n={}){let{started:r,args:i,name:a,replayable:o}=Tt(``,t,n,e),s=F(e).script;return n.onStart?.({runId:e,requestStop:r.markStopped,runningIds:()=>[...r.ctx.running]}),o&&n.onReplay?.(o),Et(r,s,a,i)}export{T as S,F as _,He as a,xe as b,ot as c,rt as d,nt as f,E as g,Fe as h,Ct as i,ct as l,ze as m,Dt as n,Ve as o,Pe as p,St as r,_t as s,vt as t,st as u,je as v,Ae as x,w as y};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{a as t,i as n,n as r,o as i}from"./local-B0GiaLV0.js";var a=e({ACTIONS_WORKFLOW_YAML:()=>o,GithubActionsRunner:()=>c});const o=`name: Coder agent
|
|
2
|
-
run-name: Coder agent \${{ inputs.task }}
|
|
3
|
-
on:
|
|
4
|
-
workflow_dispatch:
|
|
5
|
-
inputs:
|
|
6
|
-
task: { required: true, type: string }
|
|
7
|
-
server: { required: true, type: string }
|
|
8
|
-
token: { required: true, type: string }
|
|
9
|
-
mode: { required: true, type: string }
|
|
10
|
-
jobs:
|
|
11
|
-
run:
|
|
12
|
-
runs-on: ubuntu-latest
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/setup-node@v4
|
|
15
|
-
with: { node-version: 22 }
|
|
16
|
-
- run: npm i -g @wular/coder @anthropic-ai/claude-code @openai/codex
|
|
17
|
-
${n().map(e=>` - run: sudo sh -c '${e}'\n`).join(``)} - run: coder agent run --task "$TASK"
|
|
18
|
-
env:
|
|
19
|
-
TASK: \${{ inputs.task }}
|
|
20
|
-
CODER_SERVER: \${{ inputs.server }}
|
|
21
|
-
CODER_TASK_TOKEN: \${{ inputs.token }}
|
|
22
|
-
CODER_INBOX_MODE: \${{ inputs.mode }}
|
|
23
|
-
`,s=e=>t(e);var c=class{options;kind=`github-actions`;fetcher;constructor(e={}){this.options=e,this.fetcher=e.fetch??fetch}async request(e,t={},n=1e4){if(!this.options.token)throw Error(`RUNNER_CONFIG.token is required for github-actions`);let r=AbortSignal.timeout(n);for(let n=0;;n++){let i=await this.fetcher(`https://api.github.com${e}`,{...t,signal:r,redirect:`manual`,headers:{accept:`application/vnd.github+json`,authorization:`Bearer ${this.options.token}`,"content-type":`application/json`,"user-agent":`coder`,"x-github-api-version":`2022-11-28`,...t.headers}});if((t.method??`GET`)!==`GET`||n===2||i.status!==429&&i.status<500)return i;let a=Number(i.headers.get(`retry-after`));await i.body?.cancel(),await new Promise((e,t)=>{let i=()=>{clearTimeout(s),r.removeEventListener(`abort`,o)},o=()=>{i(),t(r.reason)},s=setTimeout(()=>{i(),e()},Number.isFinite(a)&&a>0?a*1e3:100*2**n);r.addEventListener(`abort`,o,{once:!0}),r.aborted&&o()})}}async start(e,t){let n=this.options.repo??(e.event?.repo&&`${e.event.repo.owner}/${e.event.repo.name}`);if(!n)throw Error(`The github-actions runner requires a repository`);let r=Date.now()+(this.options.lookupTimeoutMs??25e3),a=encodeURIComponent(this.options.workflow??`coder-agent.yml`),o=e.event?.repo,s=this.options.ref??(o&&`${o.owner}/${o.name}`===n?o.defaultBranch:void 0);if(!s){let e=await this.request(`/repos/${n}`,{},Math.max(1,r-Date.now()));if(!e.ok)throw Error(`GitHub repository lookup failed: ${e.status}`);let t=await e.json();if(!t.default_branch)throw Error(`GitHub repository has no default branch`);s=t.default_branch}let c=`/repos/${n}/actions/workflows/${a}/runs?event=workflow_dispatch&per_page=100&branch=${encodeURIComponent(s)}`,l=await this.request(c,{},Math.max(1,r-Date.now()));if(!l.ok)throw Error(`GitHub workflow run lookup failed: ${l.status}`);let u=await l.json(),d=Math.max(0,...u.workflow_runs.map(e=>e.id)),f=await this.request(`/repos/${n}/actions/workflows/${a}/dispatches`,{method:`POST`,body:JSON.stringify({ref:s,inputs:{task:e.id,server:t.CODER_SERVER,token:t.CODER_TASK_TOKEN,mode:t.CODER_INBOX_MODE}})},Math.max(1,r-Date.now()));if(f.status!==204)throw Error(`GitHub workflow dispatch failed: ${f.status}`);do{for(let t=1;Date.now()<r;t++){let a=await this.request(`${c}&page=${t}`,{},Math.max(1,r-Date.now()));if(!a.ok)throw Error(`GitHub workflow run lookup failed: ${a.status}`);let o=(await a.json()).workflow_runs.find(t=>t.id>d&&t.display_title===`Coder agent ${e.id}`);if(o)return i({repo:n,run:o.id});if(!a.headers.get(`link`)?.includes(`rel="next"`))break}await new Promise(e=>setTimeout(e,Math.min(this.options.pollIntervalMs??1e3,Math.max(0,r-Date.now()))))}while(Date.now()<r);throw Error(`GitHub workflow run for task ${e.id} was not found before timeout`)}async status(e){let{repo:t,run:n}=s(e),r=await this.request(`/repos/${t}/actions/runs/${n}`);if(r.status===404)return{state:`exited`,code:1};if(!r.ok)throw Error(`GitHub workflow status failed: ${r.status}`);let i=await r.json();return i.status===`completed`?{state:`exited`,code:i.conclusion===`success`?0:1}:{state:`running`}}async logs(e,t=-1){let{repo:n,run:i}=s(e),a=[];for(let e=1;;e++){let t=await this.request(`/repos/${n}/actions/runs/${i}/jobs?per_page=100&page=${e}`);if(!t.ok)throw Error(`GitHub workflow jobs failed: ${t.status}`);let r=await t.json();if(a.push(...r.jobs),!t.headers.get(`link`)?.includes(`rel="next"`))break}let o=[];for(let e of a.sort((e,t)=>e.id-t.id)){let r=await this.request(`/repos/${n}/actions/jobs/${e.id}/logs`);if(r.status===404)return{lines:[],next:t};if(r.status===302&&r.headers.get(`location`)){let e=await this.fetcher(r.headers.get(`location`),{redirect:`manual`,signal:AbortSignal.timeout(1e4)});if(!e.ok)throw Error(`GitHub job log download failed: ${e.status}`);o.push(await e.text())}else if(r.ok)o.push(await r.text());else throw Error(`GitHub job logs failed: ${r.status}`)}let c=r(o.join(`
|
|
24
|
-
`));return{lines:c.slice(t+1),next:Math.max(t,c.length-1)}}async stop(e){let{repo:t,run:n}=s(e),r=await this.request(`/repos/${t}/actions/runs/${n}/cancel`,{method:`POST`});if(r.status!==202&&r.status!==409)throw Error(`GitHub workflow cancellation failed: ${r.status}`)}};export{c as n,a as r,o as t};
|
package/dist/http-DG54kyx4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,o as t}from"./local-B0GiaLV0.js";import{Readable as n}from"node:stream";import{pipeline as r}from"node:stream/promises";function i(e,t=200,n={}){return new Response(JSON.stringify(e),{status:t,headers:{"content-type":`application/json`,...n}})}const a=e=>e.searchParams.has(`cursor`);function o(t){if(t)try{return e(t)}catch{return}}const s=e=>o(e.searchParams.get(`cursor`));function c(e,t=50,n=200){let r=Number(e.searchParams.get(`limit`)??t);return Number.isInteger(r)&&r>0?Math.min(r,n):t}function l(e,n,r){let i=e.slice(0,n);return{items:i,...e.length>n?{next:t(r(i.at(-1)))}:{}}}const u=(e,t=302)=>new Response(null,{status:t,headers:{location:e}}),d=()=>new Response(`Forbidden`,{status:403}),f=()=>new Response(`Not found`,{status:404}),p=()=>new Response(`Method not allowed`,{status:405}),m=e=>u(`/login?return=${encodeURIComponent(`${e.pathname}${e.search}`)}`),h=e=>e.startsWith(`/api/auth`)?65536:1048576;async function g(e,t,n){let r=Number(t??0);if(Number.isFinite(r)&&r>n)throw Object.assign(Error(`Payload too large`),{status:413});let i=[],a=0;for await(let t of e){if(a+=t.byteLength,a>n)throw Object.assign(Error(`Payload too large`),{status:413});i.push(t)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.byteLength;return o}function _(e){let t=new Headers;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,Array.isArray(r)?r.join(`, `):r);return t}async function v(e,t,n){let r=e.url??`/`,i=await g(e,e.headers[`content-length`],t);return new Request(`http://${e.headers.host??`localhost`}${r}`,{method:e.method,headers:_(e.headers),body:i.byteLength?Buffer.from(i):void 0,signal:n})}function y(e,{limit:t,admit:i=()=>!0}){return async(a,o)=>{if(!i(a))return void o.writeHead(404).end(`Not found`);let s=new AbortController,c=()=>{a.socket.destroyed&&s.abort()};o.once(`close`,()=>s.abort()),c();try{let i=await e(await v(a,t(a.url??`/`),s.signal),a.socket.remoteAddress?.replace(/^::ffff:/,``));c();let l=Object.fromEntries(i.headers.entries()),u=i.headers.getSetCookie();u.length&&(l[`set-cookie`]=u),o.writeHead(i.status,l),i.body?await r(n.fromWeb(i.body),o).catch(()=>{}):o.end()}catch(e){if(o.headersSent)return void o.destroy();let t=typeof e==`object`&&e&&`status`in e;t||console.error(`coder server: request failed`,e);let n=t?e instanceof Error?e.message:String(e):`Internal server error`;o.writeHead(t?Number(e.status):500,{"content-type":`application/json`}),o.end(JSON.stringify({error:n}))}}}async function b(e,t){if(e.method===`GET`||e.method===`HEAD`||!e.body)return e;try{let n=await g(e.body,e.headers.get(`content-length`)??void 0,t);return new Request(e.url,{method:e.method,headers:e.headers,body:n.byteLength?Buffer.from(n):void 0,signal:e.signal})}catch(e){if(e.status===413)return new Response(`Payload too large`,{status:413});throw e}}export{i as a,p as c,c as d,a as f,d as i,f as l,m,s as n,b as o,u as p,o as r,y as s,h as t,l as u};
|