@wular/coder 0.4.9 → 0.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions-C3Mgpl9J.js +2 -0
- package/dist/adapter-BeezVK-B.js +1 -0
- package/dist/{adapter-YCvP9H2n.js → adapter-ChaISKgI.js} +42 -42
- package/dist/{adapter-B2RXnvqt.js → adapter-MD6ahqPR.js} +6 -6
- package/dist/{add-CvBTpxgY.js → add-B26QSwPY.js} +2 -2
- package/dist/add-BbXuvqj1.js +1 -0
- package/dist/add-Bk8drM-8.js +1 -0
- package/dist/add-CD_L-WW8.js +2 -0
- package/dist/agent-B8ItyuHN.js +8 -0
- package/dist/{agent-vYm7Geh-.js → agent-DHpMqHVi.js} +1 -1
- package/dist/alias-CScCzXhS.js +2 -0
- package/dist/{app-CJPFaLIV.js → app-wHQJHu6N.js} +1 -1
- package/dist/approvals-BIGQBbCM.js +2 -0
- package/dist/{approve-CBuGu3du.js → approve-BnZ3v-3c.js} +1 -1
- package/dist/approve-DFSy7Z72.js +2 -0
- package/dist/apps-6BgpUsFh.js +372 -0
- package/dist/archive-CU0nhUeJ.js +4 -0
- package/dist/{archive-C89Z4kSx.js → archive-CY2lvp_c.js} +2 -2
- package/dist/args-BekfmD9t.js +1 -0
- package/dist/ask-CLDgHB_Y.js +4 -0
- package/dist/auth-C3KrIUf1.js +1 -0
- package/dist/auth-CGeSfgNb.js +1 -0
- package/dist/builtin/coder/agent.json +5 -9
- package/dist/chat-AbW-LOHo.js +13 -0
- package/dist/chat-bridge-WK-pKNfw.js +2 -0
- package/dist/chat-bwKd3y6V.js +1 -0
- package/dist/cli-Fp28pM4Y.js +9 -0
- package/dist/cli.js +1 -1
- package/dist/client-DzwzCsue.js +22 -0
- package/dist/config-DoVedq6T.js +3 -0
- package/dist/{connection-BtUZA2St.js → connection-5V8doFL7.js} +1 -1
- package/dist/connection-Cb0TK201.js +1 -0
- package/dist/conversation-DT-35cEt.js +1 -0
- package/dist/create-CrjRdQip.js +1 -0
- package/dist/credentials-DoL9w8D1.js +1 -0
- package/dist/dash/standalone/server/build-index.json +1 -1
- package/dist/dash/standalone/server/manifest.json +1317 -1303
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.8e150ef2bc6a5f4e.js → index.843431e3538fd9a4.js} +7 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{defaults.e6ce0944639198a2.js → defaults.1b615366c56838a1.js} +27 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/event-prompt.87f064ca0141e796.js +30 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.871cbff2605b5cfd.js → log-view.60308a11f7001eb7.js} +10 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.4f942c7f68b2e273.js → load.7ae462ef36271be8.js} +15 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{types.9f59e6c761d6aac4.js → types.79f9092cdb5a00d1.js} +4 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.a2a16ead424b2185.js → page.806027fde54ab723.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.90e312759b87cfa2.js → page.bd04d2d3eba00676.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.787d09fb0b2b6b57.js → loading.e348ec45e9ed951b.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.5fc5e4346dcbfc32.js → notify.857748e260c691e3.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.1641da62504df30a.js → page.25153459858542f9.js} +9 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.5dac3bf780c74354.js → sign-out.ff98573f362d76f3.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.f1dacbfebc27a656.js → agent-menu.2ed0e66d131fc148.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.5da78e9a741b028a.js → agents-grid.8efd14bc39281da9.js} +22 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{connect-apps.722bc3e4ec1f9fad.js → connect-apps.d1e67db29b12dc0a.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.2815a010098aa676.js → loading.fac1132ad9c4248e.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.b01992337eeca2dc.js → page.0f7d5e3e42462870.js} +15 -20
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.8aeb0fddffe22ad5.js → layout.05210ffa6038791f.js} +19 -19
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.50692149df9abb28.js → loading.388aeaf0c2edf8f8.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.e2e23101c05b9548.js → page.19fe116c0f802cb1.js} +80 -30
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.31d2c13229ae9222.js → loading.4da9e2ba3fea937f.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.11c7b50d6119efe6.js → page.f87fd8eb66f73af0.js} +37 -30
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.92ac7aa258e706a4.js → platform-actions.b6c3d3184e167d0b.js} +68 -41
- 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 → agent-settings-form.28220621573033d7.js} +47 -72
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.bf17bd39f41db826.js → loading.ad1a4c9b000d269a.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.6e95dfe07dfebf4b.js → page.2f7467868f599ebc.js} +15 -21
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.7b17368ee81275ab.js → loading.ec94096015346f2c.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.0bd3da9b3227b12f.js → page.a92a36a8ce21088c.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.d2cc33cf044a92a3.js → loading.8f998a9c511e1fb3.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.91c43fbc54e37646.js → page.8935a5fe5c08bcf1.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.23e4131cdf71daa5.js → versions-list.5b97ab6d40e2e639.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.47c4c8f31b4f17cc.js → loading.bedcc1aba372fbce.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.cbd2bad8fede6fef.js → page.14760e9eedd6ff8e.js} +13 -24
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.d8e785c45f5410a6.js → agent-pills.f987c12bcbc5c850.js} +13 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.a6e27ac4171bfdb0.js → agent-toggle.a6ee8bd882178e29.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.96bdca9762ff3e2e.js → hero.8be1dd4ea3ed6e17.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.ca0c09d4849bfc30.js → instructions.85b1cd986a9edbb5.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.258f6c2c5f1b1b17.js → connect-repositories.59d89152fe845af2.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.20c42102ed262db7.js → editor.77f68d431408745b.js} +36 -76
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.b8093a7ca97656a5.js → import-picker.a7b01817a821819a.js} +15 -16
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.6012b36c10c68657.js → loading.ee001af7a96e3972.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.1ebdb0247922fc14.js → page.c4570fd80bdda68c.js} +11 -19
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.6d2242d49ae9dd35.js → layout.19006c2d7dc8d114.js} +13 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.a56516bc0ba79187.js → operator-apps.d350a52d27f69fa6.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.af19494c89ac62c0.js → page.4a652f5080c2b863.js} +8 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.c720853404d94114.js → page.d39f7a1719f50c6d.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.9b96914a4fa4e2a9.js → connections-list.ff7e1dadcd4df17f.js} +36 -31
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.dbaa8f3d82445b90.js → credentials-list.87a1f8ab71eb4bed.js} +204 -240
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.c4b01484d183549d.js → credentials.a535c9c6dd8b4cdf.js} +10 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.5c03e83663a6a9b7.js → engines-list.29fffd07c1c3b771.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.df5ee5d74bec0f5b.js → list.0c87d55cf4ef382c.js} +43 -33
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.480b8f915bae18c1.js → loading.7ca95dcb4fb3362b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.2835a48d1edeb6d1.js → models-list.6fea9faddb8300bb.js} +147 -137
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.1d53415d55e77fee.js → page.295245052b93af90.js} +23 -23
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.bf5746f48e3f78f5.js → runners-list.a4a38e54d834a1ec.js} +18 -19
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.b0dedc1567efc09f.js → secrets-list.50f487766f87383c.js} +23 -15
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.567d27e39d42d719.js → layout.c42e0ab39cb2c0e0.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-options.2eacf7f8ac0032df.js → model-options.a96c11d11674f598.js} +13 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.bac05d6e87953d0e.js → page.6997506eaa1a4824.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.5e2dff2550b3b73e.js → settings-head.bbc7ced8dd5491eb.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{tunnel-guide.d6fae1c5d62f2c74.js → tunnel-guide.29eee1a0b1852168.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.03989d2f7585a045.js → create-link.9458b49dc99bbaaa.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.4debc1a8c644df4b.js → outcome-dialog.894c73f9abee3ce1.js} +5 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.43c969f59a710781.js → page.77e402bb6e8e7f7e.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.3755ae6065c3fc28.js → activity.fcda6f18c8207c99.js} +22 -27
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.9efbed6531879838.js → loading.56520888d5270b88.js} +6 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.7b92dcd08095b934.js → page.d0f039221a27b8ef.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.62422b873f98ee8e.js → task-actions.f5f2016d2dc7f422.js} +14 -12
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.ae0e9c9dffe0ff9f.js → task-view.a292baa2410cdf64.js} +129 -66
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.ff108c0ef82a4d7b.js → composer-data.309a194fc7fa34be.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.fdad306647cbaa59.js → composer.2d4122eb33addbdd.js} +29 -41
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.af5001e51d2f612b.js → task.a0c68180db5fb4c1.js} +26 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.952f37a9486aebe7.js → tasks-list.021bdc2f3d90af2d.js} +34 -31
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.1247d4765d0e1bdc.js → tasks-section.13f64b0836ae406b.js} +10 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.cf74c55e6528c7c9.js → page.b78f0df100410db0.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{custom-range.2d55812ec086b540.js → custom-range.2e21c7f891966c15.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.08d378cca93d3ab1.js → day-chart.261b6651df2d3966.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.7aed78a276b08a4f.js → loading.97d277dbab9c15cf.js} +4 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{metric.ada350d2b7449b39.js → metric.5ff3636065481c44.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.fed9345ebac3e1b3.js → page.93c2306069c03c68.js} +11 -18
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.b1296c2378128472.js → range-bar.2197d8f43216d104.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.e215d44e00192271.js → top-agents.18fc469e781e2305.js} +6 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.b7e3af142b17941b.js → layout.185dbc99875e208a.js} +11 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.226544940a39fd3a.js → page.a82be2fd23e9ac67.js} +2 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/zone.0515a688ee5ff6ca.js +17 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.8287e5a02144e4f1.js → drawer.d3e61538dbc8ec39.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.86f0cc228353da6e.js → foreign-link.1f4217895ff1e835.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/heads.37e35439c02fc636.js +16 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.0c6ac62ff3ccf38a.js → loading-card.cc76fc9708142525.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.bd54e52ac4a7a89c.js → page-head.85f15db7b648d48c.js} +4 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.1cc355a530dcc5e3.js → stream.95a2468086aceb84.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.63f673632770924d.js → task-toasts.e1a484113e1df660.js} +11 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.5f59814a635caeec.js → theme-choices.85100ed66d6f9200.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.5681714d0cf45454.js → back.180765bdadf6d602.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.4d84ad0ac340fbe2.js → org.572ad93c7707ab27.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.249400957d6a7527.js → side-toggle.489faf1a259479f7.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.0851f234f300c694.js → badge.c0bc352791a95fd6.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{button.983daea9e687fc5d.js → button.ce9e6cdb08ca86db.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.c08471eaa0bc1cec.js → card.9f0d45b73bc78b4f.js} +9 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.762eba56417214ca.js → collapse.93e4d1b20c2873ed.js} +13 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.efb84f0cca771948.js → combo.54270c0251466fda.js} +3 -22
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.53edc755945b0563.js → confirm.c1281f9b12854210.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.0b23d7dc05757df5.js → copy.bd6fc1577a393965.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.1983b85dd0679af6.js → filter.3a452a262f040973.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.a34176f37808cd66.js → icons.e36c72f54750663a.js} +0 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu-items.a8e580a0c90631ff.js → menu-items.1d082ac4dae8f3d4.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.a41edd5cde1c90cf.js → menu.ee45bace979944b6.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.b5f74ebf59590fa6.js → modal.25d53e5b41b9c4e5.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.36c6f21ce6aa720f.js → select.2eb33e5bea28d804.js} +28 -23
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.a8a951c757376590.js → tail.04132db0c5033d4f.js} +4 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.9621ef221a896a8e.js → toolbar.24036899654de6df.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.1a6356d5b722cafb.js → action.968bcab0f5e3665d.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.d25e6dcc6704eb60.js → client.189224c16057d7a1.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/follow.bfb9bcff3c1366d7.js +32 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{format.6a7d1beaf4d09d9c.js → format.ceeaafa10a0563f3.js} +1 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{paged.18f5872fc5aebe96.js → paged.0e54c3044f8ca567.js} +1 -7
- package/dist/dash/standalone/static/assets/chunks/action-410bdc82c416bc01.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agent-pills-0c0b8d40b9bfc78f.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-5a2601316e2ab283.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{agent-toggle-b2f2c22e63dedc1f.js → agent-toggle-5ede0c449e88cb9d.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/agents-grid-ffb18df48e951ecb.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{back-1d1b062f0e1b29b7.js → back-602db2cfdccf2e7f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/combo-df2685e277db02c0.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-08e49d49c0c3ee94.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-data-5fed6c271a4791ca.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-e1cefed81ea89b7e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{confirm-1cb4d8df3974f34a.js → confirm-d163e6865d66dfab.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/connect-apps-ce3c9d049ebad459.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{connect-repositories-995d55b3f166337d.js → connect-repositories-0aa9abc77b9c3d48.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/connections-list-6eddeb8583ded10f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{copy-c938369a1bfe75fd.js → copy-0cc00656953531be.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-bc365f8dfe88e6b3.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/credentials-list-1b6a81e9b4934dc8.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{custom-range-4eeb710748887f3a.js → custom-range-cae5567874db83ca.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/defaults-52f30e83d7666f7a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/editor-d55d247a1d7de5f0.js +6 -0
- package/dist/dash/standalone/static/assets/chunks/engines-list-288559344de4d4b9.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{field-657227821326b5b3.js → field-693bb870ad0bdee8.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/format-a27067f0186e78ac.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/instructions-3f18e035338b0d0b.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/instructions-a3d7688e421f2a08.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/list-2a59237cb7cb0a7c.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/model-options-8d2170eebe0d061d.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/models-list-5ed9ee02f9b66d98.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{notice-cd32ca98bbc10844.js → notice-7d84ffab32ff24ca.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-3cffe3507ea92af2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-f6fb8c69efa66508.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-4dc31567d00c4cb2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-ecd7200f7749c258.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/runners-list-984246a8f9450da1.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{runtime-e8b9eb1e537215ed-1.js → runtime-6e12333f12903a62-1.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/secrets-list-88f8b30abbab52f0.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{segmented-24da438244eedc8f.js → segmented-79c9c69b702e0b90.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-962398d15ee67c92.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-ae95a674d381c095.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/side-toggle-7ada95cc7601eb49.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/tail-99e29a541a072002.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-95daa40d39de664f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-actions-1cdca1e8d3eee490.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-view-fdcde0e31f63b737.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/tasks-list-3ad1c93deff4fb2e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/types-3eca2c7f47c46054.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{versions-list-31f31eb1923a0ded.js → versions-list-60ac4d8f715bf5f7.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{wular-pnext-e8b9eb1e537215ed-0.js → wular-pnext-6e12333f12903a62-0.js} +1 -1
- package/dist/dash/standalone/static/assets/create-param-id-da3f7e20689fe51a.css +1 -0
- package/dist/dash/standalone/static/assets/{dash-param-org-account-3f646d473e3bd795.css → dash-param-org-account-9471bec93c444232.css} +1 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-64500e78caae32df.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-new-c067c22928a2d7cc.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-9dec87710e04f949.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-779c474301e04440.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-c7d594b5232630c2.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-a80e62570716fdb9.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-ce278252012297b9.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-d3b6d701eb8e1403.css +1 -0
- package/dist/dash/standalone/static/assets/{dash-param-org-67f7811b1343c064.css → dash-param-org-bcfa3de29341d5ba.css} +1 -1
- package/dist/dash/standalone/static/assets/dash-param-org-operator-b7bc6447cc27c9ce.css +1 -0
- package/dist/dash/standalone/static/assets/{dash-param-org-settings-a851a659784d94b5.css → dash-param-org-settings-6d6902345d88a687.css} +1 -1
- package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-85c7af9a89eef06e.css +1 -0
- package/dist/dash/standalone/static/assets/{dash-param-org-setup-1b708aa5bb2f83ef.css → dash-param-org-setup-173efecd7b990c2e.css} +1 -1
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-ae0bc03f468e63cc.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-7325d8cff5be3592.css +1 -0
- package/dist/dash/standalone/static/assets/{dash-param-org-operator-56742192a9aafc19.css → dash-param-org-usage-517b2a7ae462ac57.css} +1 -1
- package/dist/dash/standalone/static/assets/global-87e1762113874559.css +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-0b3b70f1aefb9947.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-0d90849808b6eb05.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-12faa1754e3ef3be.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-23384b239b81a761.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-23e200dd9b7a79c0.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2562299eef46e62c.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-3a4ada64991e6a40.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-71e7ecdfcf86be84.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-726c29bbb81054c0.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-825e9f5b63950ef4.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-894cff70289fb7a3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-8f96a4b8a00ff460.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-9bc9b14c08020649.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-ab36b406301fd2a4.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-b8c585cae8da7778.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-bab4305b41abb15a.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-bd80926822b3993d.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-cd4c7b4318fa1846.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-db55344d00b7888f.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-eddcd5df2b28120f.js +1 -0
- package/dist/default-tTTSBdXq.js +1 -0
- package/dist/delete-DM2sA12f.js +2 -0
- package/dist/{delete-DS6P_fun.js → delete-DR37NTr1.js} +2 -2
- package/dist/disable-Dz_zLPX5.js +1 -0
- package/dist/{discover-pKrMDvpW.js → discover-CqabH4Fx.js} +2 -2
- package/dist/dispatch-BJZqI7sj.js +8 -0
- package/dist/{dist-C3wD7GfG.js → dist-B2jiMMxZ.js} +2 -2
- package/dist/{dist-DkATuPBB.js → dist-ClCNj65n.js} +2 -2
- package/dist/{dist-BTornX7Y.js → dist-DAnSqY1s.js} +2 -2
- package/dist/docs-BV9SC67g.js +2 -0
- package/dist/{docs-sFUXzJbk.js → docs-b2mAKC8Z.js} +1 -1
- package/dist/drive-CU2HOCfR.js +1 -0
- package/dist/{enable-BWvDv7dP.js → enable-Cfeki-ne.js} +1 -1
- package/dist/env-DSddo-fz.js +1 -0
- package/dist/exec-DcWxZar6.js +3 -0
- package/dist/executor-LkokKTTd.js +11 -0
- package/dist/flow/builtin/review.d.ts +2 -2
- package/dist/flow/builtin/review.js +7 -14
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/flow-BQcdyrVK.js +1 -0
- package/dist/history-D_A5odLI.js +8 -0
- package/dist/http-CXaW1e7x.js +1 -0
- package/dist/init-DU_S43NG.js +1 -0
- package/dist/integrations-DPxWtNnS.js +2 -0
- package/dist/integrations-Dwvxl7i2.js +1 -0
- package/dist/lib/broker.js +2 -2
- package/dist/{list-BDpYPbJF.js → list-7yd9K7d8.js} +1 -1
- package/dist/list-BJ0j5eP9.js +4 -0
- package/dist/list-Boaz5b5n.js +2 -0
- package/dist/{list-CaFQOnfI.js → list-CIS-GYO1.js} +1 -1
- package/dist/list-CR0_Emod2.js +4 -0
- package/dist/list-CnHZriYt.js +3 -0
- package/dist/list-_EH6c041.js +1 -0
- package/dist/list-i2r3Nlyz.js +1 -0
- package/dist/load-C-GZnuok.js +2 -0
- package/dist/local-Fs-dx_dP.js +5 -0
- package/dist/log-view-CL3_S0IQ.js +3 -0
- package/dist/{login-CpHx_RCq.js → login-CzD2EMD_.js} +1 -1
- package/dist/login-DISw6--d.js +1 -0
- package/dist/{logout-zSQBDPCK.js → logout-DMnc5yri.js} +1 -1
- package/dist/{maintenance-DuIspk-y.js → maintenance-BVDuG9Hg.js} +1 -1
- package/dist/match-BfjPZ7gJ.js +1 -0
- package/dist/mcp-B-hy3eM-.js +11 -0
- package/dist/mcp-CbN-QcpF.js +1 -0
- package/dist/mcp-server-DQqSgD3P.js +1 -0
- package/dist/model-Ckyoyji3.js +1 -0
- package/dist/models-VaiIYlOW.js +1 -0
- package/dist/prompt-DQyPCLUo.js +8 -0
- package/dist/prompts-CEf7z4i_.js +77 -0
- package/dist/push-BNomfHJ3.js +1 -0
- package/dist/reconnect-Bd_jna1M.js +1 -0
- package/dist/refresh-D-broYEx.js +1 -0
- package/dist/remote-f-uny3XZ.js +3 -0
- package/dist/remove-CCYHc1FN.js +1 -0
- package/dist/remove-DMTz_c25.js +1 -0
- package/dist/remove-DdcQ-6by.js +1 -0
- package/dist/{remove-BcewhH1U.js → remove-VtavIuGm.js} +1 -1
- package/dist/rename-CKMyelWN.js +1 -0
- package/dist/{result-Bg557zR6.js → result-CH3_tVXO.js} +2 -2
- package/dist/result-DvOqIwhh.js +18 -0
- package/dist/{resume-fnx4FUQF.js → resume-6j3RUpqa.js} +2 -2
- package/dist/{review-CAHDqPq8.js → review-B4ETH5ki.js} +2 -2
- package/dist/{index-vd37q3fn.d.ts → review-DDYD3Yvq.d.ts} +173 -74
- package/dist/{rotate-key-Dpx_WmuU.js → rotate-key-Byk_wI73.js} +1 -1
- package/dist/run-DKJW7qwy.js +2 -0
- package/dist/run-DkYzyUnp.js +5 -0
- package/dist/run-LCE1XiyU.js +2 -0
- package/dist/runner-CxtzTgVq.js +1 -0
- package/dist/runner-Dnu1Vx_i.js +1 -0
- package/dist/runner.json +1 -0
- package/dist/runner.tgz +0 -0
- package/dist/runners-vsoGeyuc.js +36 -0
- package/dist/schema-Brm7WIKd.js +8 -0
- package/dist/schema.d.ts +2 -2
- package/dist/schema.js +1 -1
- package/dist/{sdk-CWerLcF5.d.ts → sdk-CKTCrtGe.d.ts} +660 -376
- package/dist/sdk.d.ts +4 -5
- package/dist/sdk.js +1 -1
- package/dist/serve-C1zag2nr.js +1 -0
- package/dist/{serve-w-9qRCP1.js → serve-C6tsUF0D.js} +2 -2
- package/dist/serve-CCxSxXgv.js +1 -0
- package/dist/serve-D8J-sEqm.js +12 -0
- package/dist/{server-Bw_YmgCf.js → server-B4SRYM2L.js} +1 -1
- package/dist/setup-host-EaP4GPKB.js +6 -0
- package/dist/show-CjUG_aIp.js +1 -0
- package/dist/show-xdsqD6de.js +1 -0
- package/dist/slack-Kpj-G9FE.js +5 -0
- package/dist/{status-PO1YXbt4.js → status-BxV_ITeF.js} +1 -1
- package/dist/steer-DZ3nkHfC.js +4 -0
- package/dist/{stop-CkvoZEAH.js → stop-DGTUYxd6.js} +2 -2
- package/dist/stop-qDw_DjOB.js +1 -0
- package/dist/task-C506SkPR.js +1 -0
- package/dist/task-CQmx_2SI.js +7 -0
- package/dist/task-Ls_-kcSx.js +1 -0
- package/dist/test-DF_qVK6S.js +1 -0
- package/dist/tools-S3eRQOVm.js +1 -0
- package/dist/{types-C1tWi5lP.d.ts → types-8zO5Tc9c.d.ts} +91 -26
- package/dist/{types-B42Oh0zF.js → types-D_xnfP7m.js} +1 -1
- package/dist/unalias-CklkAN1B.js +1 -0
- package/dist/update-CZaFjwOJ.js +2 -0
- package/dist/upgrade-CUhFmPhl.js +2 -0
- package/dist/usage-DTAlb2rC.js +1 -0
- package/dist/views-LmbLfqpu.js +5 -0
- package/dist/watch-CJruitc6.js +5 -0
- package/dist/watch-p0j69fVA.js +9 -0
- package/dist/wire-DshFMRsS.js +1 -0
- package/dist/worker-BHXjDzRp.js +1 -0
- package/dist/worker-nyRZuq4g.js +2 -0
- package/dist/{workflow-BKxG9OUk.js → workflow-CJJUiSfv.js} +1 -1
- package/docs/agents/coder.md +7 -7
- package/docs/agents/index.md +17 -19
- package/docs/agents/prompt.md +220 -0
- package/docs/cli.md +2 -2
- package/docs/config.md +5 -3
- package/docs/mcp.md +1 -1
- package/docs/review.md +1 -1
- package/docs/sdk.md +1 -1
- package/docs/self-host.md +7 -9
- package/package.json +2 -1
- package/dist/actions-5TDwmn_z.js +0 -20
- package/dist/adapter-sKt1J1Cm.js +0 -1
- package/dist/add-BftLUw05.js +0 -1
- package/dist/add-CXAGrCnC.js +0 -1
- package/dist/add-Ck_y_nKX.js +0 -2
- package/dist/agent-ChnedLBv.js +0 -8
- package/dist/alias-BpgVDY6_.js +0 -2
- package/dist/approvals-CE8dXZhE.js +0 -2
- package/dist/approve-dWW4qt76.js +0 -2
- package/dist/apps-B60OpAHX.js +0 -242
- package/dist/archive-CmRVm4iS.js +0 -4
- package/dist/archive-sweep-EiiXIqjr.js +0 -1
- package/dist/args-CxsMr9Un.js +0 -1
- package/dist/ask-Bou8zg-4.js +0 -4
- package/dist/auth-CImjIcG5.js +0 -1
- package/dist/auth-CWzSsiSC.js +0 -1
- package/dist/chat-Bbzlea60.js +0 -1
- package/dist/chat-Djps0Seg.js +0 -13
- package/dist/chat-bridge-CvspGKBc.js +0 -2
- package/dist/cli-ZUdhZnuW.js +0 -9
- package/dist/config-CF3_A3NX.js +0 -3
- package/dist/config-D2FxHWwi.js +0 -14
- package/dist/connection-BCRJHTgp.js +0 -1
- package/dist/create-Z0QxarzN.js +0 -1
- package/dist/credentials-Dt2uP3AQ.js +0 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/responsive.82549d958fae8f00.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/zone.dbc84f981415d8f7.js +0 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/heads.20414ddcb2d08bcd.js +0 -51
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/card.15f7435f202831c3.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/static/assets/chunks/action-977f2355e308d7d0.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-pills-e75e6ac80d515ffc.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-09f23ed893d441c7.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agents-grid-bb4f3e4d38b2f459.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/combo-126d5709a0b3a5bd.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-6bf94d1087a6e6a6.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-9c1fe67a0de73997.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/connect-apps-32c169b6e00711ff.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/connections-list-a102e909edff14d4.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-a147953f343355ec.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/credentials-list-31e0fbc1ef0d003e.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/defaults-dcc0eccad4e8585b.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/editor-79560c0f91cfc2f6.js +0 -7
- package/dist/dash/standalone/static/assets/chunks/engines-list-d22f50040e6842ae.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/format-b19b8eec331414f4.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-a08bb02650dedb8d.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/instructions-a1f10bc3c2866e3f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/list-a0cc9bdb05fc71d4.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/model-options-3a57918eaa4a2a82.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/models-list-63ab774de3bf3788.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-4ab62d613bee243a.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-40824017c7b5b910.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-a515643f341df568.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/runners-list-a9f4f71695f7b376.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/secrets-list-34e09c332363564c.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-02aaa49ed4606a76.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/shared-init-03e620f936463465.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/shared-init-6f8c76316a2cd9da.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-e8b9eb1e537215ed-2.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/side-toggle-8563e6056e862225.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/tail-ebdefca4d5c23266.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-6ae2bb4f1b384140.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-actions-462507b76bda4657.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-view-341d79730a341007.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/tasks-list-6037ecd098332564.js +0 -1
- package/dist/dash/standalone/static/assets/create-param-id-8fa3e9101430f26a.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-0ddb989cab5b0fbf.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-new-504d1a906feabb6f.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-7cd987a1a42a3b44.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-fcdddf2dc26453ce.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-26b84d659dbca7f4.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-97ff652f9fe5979d.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-d47377c0f877c5c0.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-6a09580f11d669b7.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-06283106fffbd5c6.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-9cb2bb12389c9a04.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-a87fa0eaa02e4008.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-usage-786c91a7640542e6.css +0 -1
- package/dist/dash/standalone/static/assets/global-eee296f070a9bb95.css +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-17c3ee29b7487596.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-1eaa8deb5395345f.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-29e2b964470f6587.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-2a1e756934e7be1a.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-31e64d49f6132b26.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-3d13328ad0b1148b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-4ac29d3e9f1a91be.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-7d479b3375e3c07e.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-9eac45990b233b55.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-a8c9c169322e7e3d.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-b622d087a38b1b77.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-b7fea94dfda72453.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-cc8e5e6c95040688.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-d16e2a42b0a274c0.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-dbccfef0cbb6b18d.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-e74706ae238018e5.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-ebe7c9692619ea00.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-ef8d348060493085.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-fcdfa8b2c8824449.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-ff36e2f8a0522759.js +0 -1
- package/dist/default-DcYwZCnl.js +0 -1
- package/dist/default-EXRzdZUY.js +0 -1
- package/dist/delete-Bmn2_TiV.js +0 -2
- package/dist/disable-CnCxTC3X.js +0 -1
- package/dist/discover-CBP4Uw0N.js +0 -1
- package/dist/dispatch-D3Dqxijf.js +0 -8
- package/dist/docs-3SW1O9iS.js +0 -2
- package/dist/env-C_DoQYl5.js +0 -1
- package/dist/exec-BsXFIdTl.js +0 -11
- package/dist/executor-5j-Ewzzb.js +0 -11
- package/dist/flow-CuUq-MDm.js +0 -1
- package/dist/http-Cg_wYcZT.js +0 -1
- package/dist/init-Dgj6V-aS.js +0 -1
- package/dist/integrations-D3OgJk6Y.js +0 -1
- package/dist/integrations-DsFX2KCq.js +0 -1
- package/dist/list-B6lwbCEp.js +0 -1
- package/dist/list-BE3xmX_4.js +0 -1
- package/dist/list-BVIAyAAE.js +0 -4
- package/dist/list-Bggy3HZY.js +0 -4
- package/dist/list-CLtqMYPK.js +0 -2
- package/dist/list-DkO78ZEF.js +0 -3
- package/dist/load-CRmQB1LD.js +0 -2
- package/dist/local-ccKBhpQc.js +0 -1
- package/dist/log-view-DB4nXHXO.js +0 -3
- package/dist/login-BCdXHQ7z.js +0 -1
- package/dist/match-Kt3vFTl1.js +0 -1
- package/dist/mcp-O8VTfzdL.js +0 -12
- package/dist/mcp-YhyTUMIM.js +0 -11
- package/dist/mcp-server-DGzme0YX.js +0 -1
- package/dist/model-Bzpwl_95.js +0 -1
- package/dist/models-CdvmuaLv.js +0 -1
- package/dist/prompt-C--TI1qn.js +0 -8
- package/dist/push-vt81gcxD.js +0 -1
- package/dist/reconnect-BfghDbl1.js +0 -1
- package/dist/refresh-yXJ13FAf.js +0 -1
- package/dist/remote-oQs6My_3.js +0 -1
- package/dist/remove-5iAM2aTO.js +0 -1
- package/dist/remove-BZCA-gdU.js +0 -1
- package/dist/remove-BwhcR6ig.js +0 -1
- package/dist/rename-lyssPQfD.js +0 -1
- package/dist/result-jeiRJTzA.js +0 -18
- package/dist/review-CJS59vO-.d.ts +0 -157
- package/dist/run-CLy9a2MO.js +0 -2
- package/dist/run-DU4G8gNw.js +0 -2
- package/dist/run-D_pl9GF_.js +0 -5
- package/dist/runner-DME7ohjt.js +0 -1
- package/dist/runner-zT5Oyrfr.js +0 -1
- package/dist/runners-CNhxPjg8.js +0 -36
- package/dist/schema-BSlHRFSP.js +0 -8
- package/dist/serve-FG2LgXxM.js +0 -9
- package/dist/serve-UE1fcf4t.js +0 -1
- package/dist/serve-wQgyxwdY.js +0 -1
- package/dist/setup-host-BsbDs4lJ.js +0 -6
- package/dist/show-Cajmf606.js +0 -1
- package/dist/show-D0qTuXRU.js +0 -1
- package/dist/slack-C_RlVDz7.js +0 -3
- package/dist/steer-i6w87g_t.js +0 -4
- package/dist/stop-CJ0PHvKp.js +0 -1
- package/dist/task-DTN_fIGC.js +0 -1
- package/dist/task-DXHKWB_J.js +0 -5
- package/dist/task-IoBYe7ok.js +0 -1
- package/dist/test-BTkKFbnx.js +0 -1
- package/dist/tools-B-2oi2wI.js +0 -1
- package/dist/unalias-Cqx7i_L0.js +0 -1
- package/dist/update-MNyeVXyy.js +0 -2
- package/dist/upgrade-CGSkY0FY.js +0 -2
- package/dist/usage-sx-FR0bz.js +0 -1
- package/dist/views-BhsnL0nr.js +0 -5
- package/dist/watch-IL2eEgwD.js +0 -9
- package/dist/watch-qfr7aSfo.js +0 -5
- package/dist/wire-B5rc5Av6.js +0 -1
- package/dist/worker-BBZ36xL0.js +0 -1
- package/dist/worker-D2csFtoH.js +0 -9
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.5954bd9bd05e8230.js → errors.0a735590a5412ea6.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.76589c15dee1732d.css.pnext-asset.js → page.cf7460a024706f75.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.3ffef848a0b0dda3.css.pnext-asset.js → page.c811938ae8a8f1df.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.2d19ea3a4d380e0d.css.pnext-asset.js → agent-settings-form.ca926c58d15044aa.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.13019680f38b0630.css.pnext-asset.js → hero.1bef5dca89b5942c.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{operator/page.9002a449f872a10e.css.pnext-asset.js → settings/[tab]/connections-list.46786fe36b121a43.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.f742847e4887f072.css.pnext-asset.js → credentials-list.f7c27f170ec1e868.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.98e0b34932a6ee4c.css.pnext-asset.js → list.8cbee173a5aff98d.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.e0ce46919b75ef76.css.pnext-asset.js → runners-list.53c7ea80b6fb734c.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/runners-list.a835c9a264cf8903.css.pnext-asset.js → tasks/[id]/task-view.57990cfd2bdf5c11.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{[id]/task-view.38b1b7ef3976ba71.css.pnext-asset.js → composer.5b8687662e1629fa.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.79c015348f861749.css.pnext-asset.js → list/tasks-list.abbbc9ace4d866e5.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{dash/[org]/tasks/list/tasks-list.2282a7cef8b15bd8.css.pnext-asset.js → globals.c8fd2b8b01e7077b.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{dash/[org]/usage/usage.775df2f43187c487.css.pnext-asset.js → responsive.ebc5f7d77b4b86a0.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{app/globals.dccea8b03fa4b6d2.css.pnext-asset.js → comps/ui/card.f80288cc42f9bcae.css.pnext-asset.js} +0 -0
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{K as t,Pt as n,Sn as r,X as i,bt as a,ct as o,it as s,nt as c,qt as l,st as u,ut as d,xn as f,y as ee,yt as p}from"./config-D2FxHWwi.js";import{H as m,I as h,L as g,f as _,m as te,n as ne,r as re,u as ie}from"./dispatch-D3Dqxijf.js";import{r as ae,s as oe}from"./output-BKeyLbvt.js";import{a as v}from"./discover-CBP4Uw0N.js";import{c as se,l as ce,s as le}from"./actions-5TDwmn_z.js";import{createRequire as ue}from"node:module";import y from"node:path";import b from"node:process";import{fileURLToPath as de,pathToFileURL as fe}from"node:url";import x 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 S(e){return typeof e!=`object`||!e?JSON.stringify(e)??`null`:Array.isArray(e)?`[${e.map(S).join(`,`)}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${S(e[t])}`).join(`,`)}}`}function ye(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function C(e,t){return he.createHash(`sha256`).update(`${e}\0${S(t)}`).digest(`hex`)}function w(e){return x.existsSync(e)?x.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})),x.writeFileSync(t,``,`utf8`)}write(e){e.seq=this.seq++,x.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:()=>N,archiveRuns:()=>Pe,collectFlowRuns:()=>ze,deleteRun:()=>P,deleteRuns:()=>Fe,flowSteps:()=>Re,generateRunId:()=>O,latestRun:()=>U,listArchivedRuns:()=>H,listRuns:()=>V,markRunArchived:()=>M,readFlowRecord:()=>L,readRawRecord:()=>F,reconcileRun:()=>I,resumeRun:()=>je,runDirFor:()=>j,runResult:()=>E,startRun:()=>Ae,unarchiveRun:()=>Le,watchRun:()=>D,writeFlowRecord:()=>R});const T=`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`)||b.versions.bun||b.features.typescript)return;if(!Se())throw new m(`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`,[l,...t],{stdio:`inherit`});b.exit(n.status??1)}function we(e){b.once(`SIGINT`,()=>{(async()=>{let{runId:t}=e,n=x.existsSync(y.join(j(t),xt));if(b.stderr.write(`\n[flow] Stopping run ${t}. No new tasks will dispatch.\n`),n){let t=e.runningIds();t.length&&b.stderr.write(`[flow] left running: ${t.join(`, `)}\n`)}else{let n=await wt(t,e.runningIds());n.length&&b.stderr.write(`[flow] stopped tasks: ${n.join(`, `)}\n`)}b.stderr.write(`\n${oe([`Resume: coder flow resume ${t}`],ae)}\n`),e.requestStop(),b.exit(130)})()})}function Te(e){let t=y.join(j(e),`events.jsonl`),n=e=>{try{x.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=b.env[T];if(t){delete b.env[T];try{await $(t,e,Te(t)),b.exit(0)}catch(e){Z(t,e instanceof Error?e.message:String(e)),b.exit(1)}}}function De(e,t,n){let r=j(e.runId);x.writeFileSync(y.join(r,`events.jsonl`),``,`utf8`);let i=x.openSync(y.join(r,`flow.log`),`a`),a=pe(b.execPath,[l,...t],{detached:!0,stdio:[`ignore`,i,i],env:{...b.env,[T]:e.runId}});return a.unref(),x.closeSync(i),{runId:e.runId,status:`running`,...n?{watch:D(e.runId,{bootPid:a.pid})}:{}}}async function Oe(e,t,n){try{return await n()}catch(n){if(!(n instanceof m)||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 m(`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?L(e):U();if(!n)throw new m(`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(v(e,t.cwd?y.resolve(t.cwd):b.cwd()).path,t.argv),await Ee(t),!t.dryRun)?De(Y(e,t),t.argv,t.wait):Oe(`run`,t.dryRun,()=>kt(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=y.join(j(e),`events.jsonl`);return x.existsSync(t)?x.readFileSync(t,`utf8`).split(`
|
|
3
|
-
`).filter(Boolean).flatMap(e=>{try{return[JSON.parse(e)]}catch{return[]}}):[]}function E(e,t={}){let n=e?L(e):U();return n?{...n,steps:Re(n.runId,t.tail),journal:w(y.join(j(n.runId),`journal.jsonl`)).map(e=>({kind:e.kind,taskId:e.taskId,tokens:e.tokens})),events:Me(n.runId)}:null}function D(e,t={}){let n=ke(e,`No flow runs yet.`);return{record:n,events:Et(n.runId,t.bootPid,{tail:t.tail}),final(){let e=E(n.runId,{tail:0});if(!e)throw new m(`flow-failed`,`[flow] run ${n.runId} vanished while following.`,{hint:`Recent runs: coder flow list`});return e}}}function Ne(e){let t=L(e);if(!t)throw new m(`flow-failed`,`No flow run "${e}".`,{hint:`Recent runs: coder flow list`});if(t.status===`running`||t.status===`queued`)throw new m(`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=V().filter(e=>e.status!==`running`&&e.status!==`queued`);for(let t of e)N(t);let t=e.map(e=>e.runId);return{archived:t,count:t.length}}if(!e)throw new m(`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 N(n),{runId:n.runId,archived:!0}}function Fe(e,t={}){if(t.allArchived){let e=H().filter(e=>P(e.runId)).map(e=>e.runId);return{deleted:e,count:e.length}}if(!e)throw new m(`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:P(n.runId)}}function O(){return`flow-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function k(){let e=g();return a(e)}function A(){return p()}function j(e){i(e,`flow run id`);let t=y.join(k(),e);if(x.existsSync(y.join(t,`flow.json`)))return t;let n=y.join(A(),e);return x.existsSync(y.join(n,`flow.json`))?n:t}function M(e){if(e.archived)return e;let t={...e,archived:!0,archivedAt:new Date().toISOString()};return R(j(e.runId),t),t}function N(e){let t=j(e.runId),n=y.join(A(),e.runId);return t!==n&&r(t,n),M(e)}function Ie(e){for(let t of e){let e=L(t);e&&N(e)}}function Le(e){let t=j(e.runId),n=y.join(k(),e.runId);t!==n&&r(t,n);let i={...e,archived:void 0,archivedAt:void 0};return R(j(e.runId),i),i}function P(e){let t=j(e);return x.existsSync(y.join(t,`flow.json`))?(x.rmSync(t,{recursive:!0,force:!0}),!0):!1}function F(e){if(!s(e))return null;let t=y.join(j(e),`flow.json`);if(!x.existsSync(t))return null;try{return JSON.parse(x.readFileSync(t,`utf8`))}catch{return null}}function I(e){return e.status!==`running`||!e.pid||Q(e)?e:(Z(e.runId,`orchestrator died`),F(e.runId)??e)}function L(e){let t=F(e);return t?I(t):null}function R(e,t){x.writeFileSync(y.join(e,`flow.json`),`${JSON.stringify(t,null,2)}\n`,`utf8`)}function z(e){let t=[];try{t=x.readdirSync(e)}catch{return[]}let n=[];for(let r of t)try{n.push(I(JSON.parse(x.readFileSync(y.join(e,r,`flow.json`),`utf8`))))}catch{}return n}const B=(e,t)=>String(t.startedAt).localeCompare(String(e.startedAt));function V(){let e=[];for(let t of z(k()))t.archived?N(t):e.push(t);return e.sort(B)}function H(e){let t=e?.migrate??!0,n=z(A()),r=new Set(n.map(e=>e.runId));for(let e of z(k()))e.archived&&!r.has(e.runId)&&n.push(t?N(e):e);return n.sort(B)}function U(){return[...V(),...H()].sort(B)[0]??null}function Re(e,t=`all`){if(t===0)return[];let n=w(y.join(j(e),`journal.jsonl`)).filter(e=>e.kind===`task`),r=u(b.cwd()),i=new Map(r.map(e=>[e.id,e])),a=e=>e?.name??e?.prompt?.replace(/\s+/g,` `).trim().slice(0,60)??null,o=n.map(e=>{let t=e.taskId?i.get(e.taskId):void 0;return{taskId:e.taskId??null,name:a(t),status:t?.status??e.result?.status??`?`,tokens:e.tokens??null}}),s=new Set(o.map(e=>e.taskId));for(let t of r)t.flowRunId===e&&!s.has(t.id)&&o.push({taskId:t.id,name:a(t),status:t.status,tokens:null});return t===`all`?o:o.slice(-t)}function ze(e={}){let n=e.limit===`all`?void 0:e.limit,r;if(e.archived)r=H();else{let e=[];r=V().filter(n=>n.status===`running`||n.status===`queued`||t(n.endedAt??n.startedAt)<=18e5||(M(n),e.push(n.runId),!1)),le(b.cwd(),e,{flows:!0})}let i=n===void 0?0:Math.max(0,r.length-n);return{runs:n===void 0?r:r.slice(0,n),clipped:i}}const Be=globalThis,W=Be.__coderFlowCtxALS??=new ve,G=Be.__coderFlowScopeALS??=new ve;function Ve(){return G.getStore()?.args}function He(){return W.getStore()?.integrationToken}function K(){return G.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 q(e){try{let t=await import(`./zod-BoqHoRCH.js`).then(e=>e.n);if(typeof t.toJSONSchema==`function`)return t.toJSONSchema(e)}catch{}return null}async function qe(e){let t=await q(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 J(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?ne(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(g())return await h(`wait`,{taskId:t});let n=await te(e,t);return{status:n.status,result:n.result,model:n.task.model??null,next:_(e,n)??null}}finally{n?.running.delete(t)}}async function Qe(e,t,n,r){let i=r?.cwd??b.cwd();if(g())await h(`steer`,{taskId:e,text:t,...n});else{let a=o(i,e);if(!a)throw new m(`invalid-option`,`No task "${e}".`);await se(a.cwd??i,a,t,{...r?.connections?{resolveConnections:async e=>({mcp:Object.fromEntries(Object.entries(r.connections.mcp).filter(([t])=>e.includes(t))),env:r.connections.env,warnings:[]})}:{},model:n.model,effort:n.effort,permissions:r?.ceiling&&n.permissions?ne(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?y.resolve(t.cwd):n?.cwd??b.cwd(),i=t.returns?await q(t.returns):null,a=t.returns&&!i?[t.system,await qe(t.returns)].filter(Boolean).join(`
|
|
4
|
-
|
|
5
|
-
`):t.system,s;for(;;){let l={prompt:e,...Ye(t,r,n),system:a,...i?{outputSchema:i}:{},...s?{engine:s,model:void 0,effort:void 0}:{}},u=!!g(),d=n?.connections?ie(l.mcp,ee(r).mcp,{},n.connections.mcp):void 0,f=u?await h(`dispatch`,l):await re({...l,...n?.connections?{...d,mcpWarnings:d?.warnings,connectionEnv:n.connections.env,connections:n.connections.ids,connectionSource:`server`}:{},onFallback:e=>lt(`${e.engine} failed to start. Falling back to ${e.next}. ${e.detail.replace(/\s+/g,` `).slice(0,140)}`)}),p=o(r,f.taskId),m=p?c(p):void 0;n?.hooks.onTaskStart?.({taskId:f.taskId,name:t.name,prompt:e,engine:m,depth:K()});let _=await Ze(r,f.taskId,n);if(_.next){let e=_.next;n?.hooks.onTaskEnd?.({taskId:f.taskId,status:`failed`,tokens:null}),s=e;continue}return Xe(f.taskId,_)}}async function et(e,t,n){if(n?.dryRun){b.stdout.write(`\n[dry-run] task${t.name?` (${t.name})`:``}:\n${e}\n`);let n={...t,returns:t.returns?`<schema>`:void 0};return b.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 m(`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=J(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=J(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 m(`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 q(e)??`<schema>`}async function nt(e,t={}){let n=W.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=C(`task`,ye(r)),a=n.journal.replay(i,C(`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 m?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=W.getStore(),i=async()=>{if(r?.dryRun)return b.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 m(`task-failed`,`Task ${e} ${i.status}: ${i.output||`no output`}`,{taskId:e,result:i});return i};if(!r)return i();let a=C(`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 it=262144;function at(e){let t=[];for(let n=e;;){t.push(y.join(n,`node_modules`,`.bin`));let e=y.dirname(n);if(e===n)break;n=e}let n=b.platform===`win32`?`;`:`:`;return{...b.env,PATH:[...t,b.env.PATH??``].join(n)}}async function ot(e,t){return new Promise(n=>{let r=pe(e,{shell:!0,cwd:t,env:at(t)}),i=``,a=e=>{i.length>=it||(i+=e,i.length>=it&&(i=`${i.slice(0,it)}\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 st(e,t={}){let n=W.getStore(),r=t.cwd?y.resolve(t.cwd):n?.cwd??b.cwd();if(!n)return ot(e,r);let i=C(`gate`,{cmd:e,cwd:t.cwd}),a=n.journal.replay(i);if(a)return a.result;if(n.dryRun){b.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-${b.pid}-${ge()}`,c=K();n.hooks.onGateStart?.({gateId:s,cmd:e,depth:c});let l=await ot(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 ct(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 lt(e){let t=W.getStore();if(t)try{x.appendFileSync(y.join(t.runDir,`flow.log`),`${JSON.stringify({at:new Date().toISOString(),message:e})}\n`,`utf8`)}catch{}t?.hooks.onLog?t.hooks.onLog(e,K()):(b.stderr.isTTY||!t)&&b.stderr.write(`[flow] ${e}\n`)}const ut=ue(import.meta.url);function dt(e){let t=y.dirname(de(import.meta.url));for(;y.basename(t)!==`dist`&&y.dirname(t)!==t;)t=y.dirname(t);return y.basename(t)===`dist`?fe(y.join(t,e)).href:null}function ft(e){if(e===`zod`||e.startsWith(`zod/`)){let e=dt(`zod.js`)??new URL(`./zod.js`,import.meta.url).href;if(x.existsSync(de(e)))return e}if(!(e===`@wular/coder`||e===`@wular/coder/flow`||e===`zod`||e.startsWith(`zod/`)))return null;try{return fe(ut.resolve(e)).href}catch{}return e===`@wular/coder/flow`?dt(`flow/index.js`):e===`@wular/coder`?dt(`sdk.js`):null}const pt=/(\bfrom\s+|\bimport\s+|\bimport\s*\(\s*)(['"])([^'"]+)\2/g;function mt(e){return e.replace(pt,(e,t,n,r)=>{let i=ft(r);return i?`${t}${n}${i}${n}`:e})}async function ht(e){e=x.realpathSync(e);let t=G.getStore(),n=t.imports??={dirs:new Set,node:!1};if(b.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:mt(x.readFileSync(e.path,`utf8`)),loader:y.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=ft(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 (spec.startsWith('zod/') && urls.zod) return { url: urls.zod, shortCircuit: true };
|
|
8
|
-
if (urls[spec]) return { url: urls[spec], shortCircuit: true };
|
|
9
|
-
return next(spec, spec.startsWith('zod/') ? { ...ctx, parentURL: parent } : ctx);
|
|
10
|
-
}`;r(`data:text/javascript,${encodeURIComponent(a)}`)}async function gt(e,t,n){try{return await import(fe(e).href)}catch(e){let r=e instanceof Error?e.message:String(e);throw t===`.ts`&&!b.versions?.bun&&/Unknown file extension|Unexpected token|SyntaxError|Cannot parse|import type|interface/i.test(r)?Error(`Could not run ${y.basename(n)}: TypeScript flows need bun. Run under \`bun\`, or write the flow as .mjs/.js.`):e}}async function _t(e){if(!x.existsSync(e))throw Error(`Cannot read flow file: ${e}`);return await ht(y.dirname(e)),gt(e,y.extname(e),e)}async function vt(e,t){let n=G.getStore();n.args=t??{};let r=await _t(e),i=W.getStore();i?.flowConcurrency&&!n.depth&&typeof r.concurrency==`number`&&(i.semaphore.limit=Math.max(1,r.concurrency),R(i.runDir,{...L(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=J(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 yt(e,t){let n=W.getStore(),r=n?.cwd??b.cwd(),i=v(e,r);if(!n)return G.run({args:t??{},depth:0},()=>vt(i.path,t));let a=G.getStore();if(a&&a.depth>=1)throw Error(`flow("${e}") nesting is one level deep; a sub-flow cannot call flow().`);let o=C(`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 G.run({args:t??{},depth:(a?.depth??0)+1,imports:a?.imports},()=>vt(i.path,t));return n.journal.record({kind:`flow`,fingerprint:o,result:l,startedAt:c,endedAt:new Date().toISOString()}),l}var bt=e({STOP_KEEP_TASKS_MARKER:()=>xt,markRunFailed:()=>Z,orchestratorAlive:()=>Q,pidAlive:()=>St,prepareRun:()=>Y,resumeFlow:()=>$,runFlowByName:()=>kt,stopFlowTasks:()=>wt,stopRun:()=>Tt,streamFlowCore:()=>Et});function Y(e,t={},n){let r,i,a;if(n){let e=L(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=v(e,t.cwd?y.resolve(t.cwd):b.cwd());r=n.name,i=n.path,a=t.args??{}}let o=n??t.runId??O(),s=j(o);x.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 R(s,c),c}function X(e,t,n){R(e,{...t,endedAt:new Date().toISOString(),pid:void 0,pidStartedAt:void 0,...n})}function Z(e,t){let n=F(e);!n||n.status!==`running`||X(j(e),n,{status:`failed`,error:t})}const xt=`stop-keep-tasks`;function St(e){try{return b.kill(e,0),!0}catch{return!1}}function Q(e){if(!e.pid||!St(e.pid))return!1;let t=d(e.pid),n=Date.parse(e.pidStartedAt??``);return t===null||!Number.isFinite(n)||t<=n+6e4}function Ct(e){let t=u(b.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 w(y.join(j(e),`journal.jsonl`)))t.kind===`task`&&t.taskId&&i.add(t.taskId);return[...i].filter(e=>{let t=r.get(e);return!!t&&!n.includes(t.status)})}async function wt(e,t=[]){let r=b.cwd(),i=[];for(let a of new Set([...Ct(e),...t])){let e=o(r,a);if(!(!e||n.includes(e.status)))try{await ce(r,e),i.push(a)}catch{}}return i}async function Tt(e,t={}){let r=e?L(e):U();if(!r)throw new m(`flow-failed`,e?`No flow run "${e}".`:`No flow runs.`,{hint:`Run one: coder flow run <name>`});if(r.status!==`running`)throw new m(`flow-failed`,`Run ${r.runId} is not running.`,{runId:r.runId,hint:`Result: coder flow result ${r.runId}`});let i=j(r.runId);if(!Q(r))return X(i,r,{status:`failed`,error:`orchestrator died`}),{runId:r.runId,status:`failed`,stoppedTasks:[],keptTasks:Ct(r.runId)};let a=Ct(r.runId),s=y.join(i,xt);t.keepTasks&&x.writeFileSync(s,``,`utf8`);try{b.kill(r.pid,`SIGINT`);let e=L(r.runId);for(let t=0;t<25&&e?.status===`running`;t+=1)await new Promise(e=>setTimeout(e,200)),e=L(r.runId);if(!e||e.status===`running`)throw new m(`flow-failed`,`Run ${r.runId} did not stop within 5s.`,{runId:r.runId,hint:`Check it: coder flow result ${r.runId}`});let t=b.cwd(),i=[],s=[];for(let e of a){let r=o(t,e);r&&(r.status===`cancelled`?i.push(e):n.includes(r.status)||s.push(e))}return{runId:r.runId,status:e.status,stoppedTasks:i,keptTasks:s}}finally{if(t.keepTasks)try{x.unlinkSync(s)}catch{}}}async function*Et(e,t,n={}){let r=y.join(j(e),`events.jsonl`),i=n.tail??`all`,a=0;if(i!==`all`)try{a=Math.max(0,x.readFileSync(r,`utf8`).split(`
|
|
11
|
-
`).length-1-i)}catch{}let o=f(r),s=()=>{let e=[];for(let t of o()){if(a>0){--a;continue}try{e.push(JSON.parse(t))}catch{}}return e},c=L(e);for(;!c||c.status===`running`;){yield*s();let n=c?.pid?!Q(c):t!==void 0&&!St(t);if(c&&(c.pid||t!==void 0)&&n){Z(e,`orchestrator died`);break}await new Promise(e=>setTimeout(e,400)),c=L(e)??c}yield*s()}function Dt(e,t,n,r){let i={...Y(e,t,r),pid:b.pid,pidStartedAt:new Date().toISOString()},{runId:a}=i,o=j(a);R(o,i);let s=y.join(o,`journal.jsonl`),c=r?w(s):[],l=new be(c,s),u={runId:a,runDir:o,cwd:t.cwd?y.resolve(t.cwd):b.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.connections?{connections:t.connections}:{},...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 Ot(e,t,n,r){let{ctx:i,runDir:a,runId:o}=e,s=L(o);try{let e=await W.run(i,()=>G.run({args:r??{},depth:0},()=>vt(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 m&&(e.code===`chain-exhausted`||e.code===`approval-pending`)?(e.runId??=o,e):new m(`flow-failed`,e instanceof Error?e.message:String(e),{runId:o})}}async function kt(e,t={},n={}){let{started:r}=Dt(e,t,n),i=L(r.runId).script;return n.onStart?.({runId:r.runId,requestStop:r.markStopped,runningIds:()=>[...r.ctx.running]}),Ot(r,i,L(r.runId).name,t.args??{})}async function $(e,t={},n={}){let{started:r,args:i,name:a,replayable:o}=Dt(``,t,n,e),s=L(e).script;return n.onStart?.({runId:e,requestStop:r.markStopped,runningIds:()=>[...r.ctx.running]}),o&&n.onReplay?.(o),Ot(r,s,a,i)}export{D as S,L as _,He as a,xe as b,st as c,rt as d,nt as f,O as g,Fe as h,Tt as i,lt as l,ze as m,kt as n,Ve as o,Pe as p,wt as r,yt as s,bt as t,ct as u,je as v,Ae as x,E as y};
|
package/dist/flow-CuUq-MDm.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-ZUdhZnuW.js";const t=e(`flow`,{run:async()=>(await import(`./run-D_pl9GF_.js`)).commandRun,list:async()=>(await import(`./list-BVIAyAAE.js`)).commandList,ls:async()=>(await import(`./list-BVIAyAAE.js`)).commandList,discover:async()=>(await import(`./discover-pKrMDvpW.js`)).commandDiscover,result:async()=>(await import(`./result-Bg557zR6.js`)).commandResult,watch:async()=>(await import(`./watch-qfr7aSfo.js`)).commandWatch,stream:async()=>(await import(`./watch-qfr7aSfo.js`)).commandWatch,stop:async()=>(await import(`./stop-CkvoZEAH.js`)).commandStop,resume:async()=>(await import(`./resume-fnx4FUQF.js`)).commandResume,archive:async()=>(await import(`./archive-C89Z4kSx.js`)).commandArchive,delete:async()=>(await import(`./delete-DS6P_fun.js`)).commandDelete},{menu:[{usage:`run <name|path> [--wait] [--args ...]`,blurb:`run a flow in the background (--wait to follow it live)`},{usage:`list`,blurb:`recent flow runs (by default running + just stopped)`},{usage:`discover`,blurb:`list flows runnable here (workspace + global)`},{usage:`result [run-id]`,blurb:`progress and result of a run`},{usage:`watch [run-id]`,blurb:`watch a run live (replay + follow)`},{usage:`stop [run-id]`,blurb:`stop a run and its still-running tasks`},{usage:`resume [run-id]`,blurb:`continue a stopped or edited run`},{usage:`archive <run-id> | --all-stopped`,blurb:`hide a run (or all stopped) from the list`},{usage:`delete <run-id> | --all-archived`,blurb:`delete a run's record (or all archived)`}],description:[`Orchestrate many coder tasks with a plain TypeScript file: dispatch, gates,`,`concurrency, journaling, and resume. Flows live in .coder/flows/ (workspace)`,"or ~/.coder/flows/ (global). See `coder docs flows`."]},{aliases:{stream:`watch`,ls:`list`},hint:`Run a flow: coder flow run <name>`});export{t as commandFlow};
|
package/dist/http-Cg_wYcZT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t}from"./local-ccKBhpQc.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(e){if(e)try{return t(e)}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(t,n,r){let i=t.slice(0,n);return{items:i,...t.length>n?{next:e(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,headers:{"content-type":`text/plain; charset=utf-8`}}),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};
|
package/dist/init-Dgj6V-aS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,o as n,r}from"./prompt-C--TI1qn.js";import{i}from"./cli-ZUdhZnuW.js";import{p as a,s as o}from"./output-BKeyLbvt.js";import{n as s,s as c,t as l}from"./args-CxsMr9Un.js";import u from"node:path";import d from"node:process";const f={observe:`read the platform only`,comment:`also post replies and reactions`,write:`also push, branch, and open or merge pull requests`};function p(e,t){let n=a,{id:r,samples:i,integrations:s}=e;d.stdout.write(`Created ${n.cyan(t)}.\n`);let c=s.length?[`1. Write ${t}/system.md. Try it with no server: coder task run --agent ${r} "<task>"`,`2. Run it on a server: coder dash on this machine reads it from this repo; a cloud server imports it from the dashboard or with coder agent push.`,`3. On the dashboard, create the agent's app on each platform it uses (${s.join(`, `)}) from its Platforms tab, and install it.`,`4. Fire an event by hand, or leave --server out to run it offline: coder agent run ${r} ${i[0]??`<event.json>`} --server <url>`,`Guide: https://github.com/muzam1l/coder/blob/main/docs/agents/index.md`,`Agents: coder docs agents`]:[`1. Write ${t}/system.md. Try it with no server: coder task run --agent ${r} "<task>"`,`2. Give the agent a platform under "integrations" in ${t}/agent.json, then run init again or follow the guide: coder agent integrations list`,`Guide: https://github.com/muzam1l/coder/blob/main/docs/agents/index.md`,`Agents: coder docs agents`];d.stdout.write(`\n${o(c,n)}\n`)}async function m(r){let{regexError:i}=await import(`./agent-ChnedLBv.js`).then(e=>e.t),{INTEGRATIONS:o}=await import(`./integrations-D3OgJk6Y.js`).then(e=>e.r),{PRESETS:s}=await import(`./types-B42Oh0zF.js`).then(e=>e.n),c=a;d.stdout.write(`Creating ${c.cyan(`.coder/agents/${r}`)}. Pick what the agent listens to and what it may do; flags skip these questions.\n\n`);let l=await e({title:`Integrations`,hint:`Platforms the agent listens to and acts on. Add or remove them later in agent.json.`,multi:!0,selected:[Object.keys(o)[0]],options:Object.values(o).map(e=>({value:e.id,hint:e.description}))}),u={},p={};for(let e of l){let t=o[e],r=Object.keys(t.events),a=await n({title:`${e} events`,hint:`What wakes the agent on ${e}; each event runs the agent with that event as its prompt.`,multi:!0,required:!0,selected:[r.includes(`mention`)?`mention`:r[0]],options:Object.entries(t.events).map(([e,t])=>({value:e,hint:t.description,...t.noisy?{input:{label:`match`,value:`^help\\b`,placeholder:`tab to add a match`,validate:i}}:{}}))});u[e]=a.values,p[e]=a.inputs}let[m]=l.length?await e({title:`Tools`,hint:`What the agent may do on its platforms; comment suits most agents.`,selected:[`comment`],options:s.map(e=>({value:e,hint:f[e]}))}):[`comment`],h=await t(`Display name`,r,void 0,`Shown in replies and app names.`);return{...h===r?{}:{name:h},integrations:l,events:u,matches:p,tools:m}}const h=i({name:`agent init`,help:{usage:`coder agent init [id] [--integrations a,b] [--events a,b] [--tools <preset>] [--name <text>] [--description <text>] [--permissions <mode>] [--yes]`,summary:"Create .coder/agents/<id>/ with an agent.json built from the integration catalog, a system.md to write the prompt in, and one sample event per integration for `coder agent run`. Asks for the id, integrations, events, and tools when run in a terminal without them.",flags:[[`--integrations <a,b>`,`platforms the agent listens to (see coder agent integrations list)`],[`--events <a,b>`,`events that start tasks, applied to each integration that has them (default: mention)`],[`--tools <preset>`,`observe, comment, or write (default: comment)`],[`--name <text>`,`display name used in replies (default: the id)`],[`--description <text>`,`one line for agent list`],[`--permissions <mode>`,`engine permission mode (default: read-only)`],[`--yes`,`skip the questions and take the defaults`]],examples:[[`coder agent init`,`answer the questions, id included`],[`coder agent init triage --integrations github --events issue,mention --tools comment`,`no questions`]]},options:{...l,name:c,description:c,integrations:c,events:c,tools:c,permissions:c,match:c,yes:s},args:1,run:async({options:e,args:[n],cwd:i})=>{let{agents:a}=await import(`./agent-ChnedLBv.js`).then(e=>e.t),o=r()&&!e.yes;return a.init(n,{...e,cwd:i,permissions:e.permissions,...o?{askId:e=>t(`Agent id`,``,e,`Folder name under .coder/agents and the name used in commands.`)}:{},...o&&!e.integrations?{askPicks:m}:{}})},json:(e,{cwd:t})=>({id:e.id,dir:u.relative(t,e.dir),files:e.files,samples:e.samples}),print:(e,{cwd:t})=>p(e,u.relative(t,e.dir))});export{h as commandAgentInit};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{i as t,n,s as r}from"./slack-C_RlVDz7.js";import{randomUUID as i}from"node:crypto";async function a(e,t,n=fetch){if(!e.actor.id||!e.installationId)throw Error(`Linear event has no actor or workspace`);let r=await n(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"content-type":`application/json`},body:JSON.stringify({query:`query CoderWorkspaceMember($id: String!) { user(id: $id) { id active guest app organization { id } } }`,variables:{id:e.actor.id}}),redirect:`error`,signal:AbortSignal.timeout(5e3)}),i=await r.json(),a=i.data?.user;if(!r.ok||i.errors!==void 0&&(!Array.isArray(i.errors)||i.errors.length>0)||!a)throw Error(`Linear returned no valid workspace member`);return a.id===e.actor.id&&a.active===!0&&a.guest===!1&&a.app===!1&&a.organization?.id===e.installationId}async function o(e,t){let n=new URLSearchParams(await e.text()),i=Object.fromEntries(t.map(e=>[e,n.get(e)?.trim()??``])),a=t.filter(e=>!i[e]);if(a.length)throw new r(`invalid-field`,a[0],`Missing ${a.join(`, `)}`);return i}async function s(e,t,n=fetch,i=Date.now()){let a=await n(e,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t)}),o=await a.json().catch(()=>({}));if(!a.ok||!o.access_token)throw new r(`platform-error`,o.error??String(a.status),`${new URL(e).host} refused the token request: ${o.error_description??o.error??a.status}`);return{accessToken:o.access_token,...o.refresh_token?{refreshToken:o.refresh_token}:{},...o.expires_in?{expiresAt:i+o.expires_in*1e3}:{},...o.id_token?{idToken:o.id_token}:{}}}async function c(e,t,n,r=Date.now()){if(!e)throw Error(`The installation has no token; connect it again from the dashboard`);let i=JSON.parse(e);if(!i.refreshToken||(i.expiresAt??1/0)-3e5>r)return i.accessToken;let{idToken:a,...o}=await t(i.refreshToken),s={...o,refreshToken:o.refreshToken??i.refreshToken},c=await n?.(JSON.stringify(s));return c?JSON.parse(c).accessToken:s.accessToken}const l=`https://api.linear.app/oauth/token`,u=[`clientId`,`clientSecret`,`webhookSecret`],d=e=>e.replace(/\/$/,``);async function f(e,t,n){let r=await n(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${e}`,"content-type":`application/json`},body:JSON.stringify({query:t})}),i=await r.json().catch(()=>({}));if(!r.ok||!i.data)throw Error(`Linear refused the query: ${r.status}`);return i.data}function p(e,t,n,r,i=!1){return`https://linear.app/oauth/authorize?${new URLSearchParams({client_id:e.clientId,redirect_uri:t,response_type:`code`,scope:r?`read,write,app:mentionable,app:assignable`:i?`read,write`:`read`,state:n,...r?{actor:`app`}:{}})}`}function m(e,t,n,i){let a=new URL(e.url).searchParams.get(`code`);if(!a)throw new r(`missing-code`);let{clientId:o,clientSecret:c}=t;return s(l,{grant_type:`authorization_code`,code:a,redirect_uri:n,client_id:o,client_secret:c},i)}function h(e,t,n){let r=new URLSearchParams(n?{"oauth.client_name":n}:{});return r.set(`developer.name`,d(e).replace(/^https?:\/\//,``)),r.set(`oauth.client_uri`,d(e)),r.append(`oauth.redirect_uris`,`${d(e)}/install/linear/callback`),r.append(`oauth.redirect_uris`,`${d(e)}/connect/linear/callback`),r.set(`webhook.enabled`,`true`),r.set(`webhook.url`,`${d(e)}/hooks/linear?app=${t}`),r.set(`webhook.resourceTypes`,`AgentSessionEvent`),`https://linear.app/settings/api/applications/new?${r}`}const g={builtin:`shared`,createStep:(e,{name:t}={},n=i())=>({intro:`Linear runs the agent as an app of your own OAuth application.`,link:h(e,n,t),steps:[{text:`Open the link signed in to Linear, check the form and click **Create**.`},{text:`Copy the client ID, the client secret and the webhook signing secret into the fields below.`}],notes:[`The link fills in the name, the callback URLs and the webhook.`,`To install the app in other Linear workspaces, make it public in its Linear settings.`],hidden:{key:n},fields:[{name:`clientId`,label:`Client ID`,placeholder:`9f3c2a7d1e8b4c6a0d5e7f1a2b3c4d5e`,required:!0},{name:`clientSecret`,label:`Client secret`,placeholder:`4b1e9c7a2d0f8e3c5a6b9d1f0e2c4a7b`,required:!0},{name:`webhookSecret`,label:`Webhook signing secret`,hint:`shown with the webhook settings`,placeholder:`lin_wh_…`,required:!0}],submit:`Create Linear app`}),settingsUrl:()=>`https://linear.app/settings/api`,values:(e,{publicUrl:t,definition:n})=>({url:`https://linear.app/settings/api`,label:`Open application`,lines:[{text:`Application name`,copy:n.name??e.agent},{text:`Callback URL`,copy:`${d(t)}/install/linear/callback`},{text:`Callback URL`,copy:`${d(t)}/connect/linear/callback`},{text:`Webhook URL`,copy:`${d(t)}/hooks/linear?app=${e.id.slice(e.id.indexOf(`:`)+1)}`},{text:`Webhook resource types`,copy:`AgentSessionEvent`}]}),async createCallback(e,{state:t,definition:n}){let{key:i,...a}=await o(e,[...u,`key`]);if(!/^[0-9a-f-]{36}$/.test(i))throw new r(`invalid-field`,`key`);return{platformAppId:i,name:n.name??t.agent,credentials:a}},accountUrl:({login:e})=>`https://linear.app/${encodeURIComponent(e)}`,installUrl(e,t,{publicUrl:n,state:r}){return p(t,`${d(n)}/install/linear/callback`,r,!0)},async installCallback(e,{credentials:t,publicUrl:n,fetch:r}){let{idToken:i,...a}=await m(e,t,`${d(n)}/install/linear/callback`,r),{organization:o,viewer:s}=await f(a.accessToken,`query { organization { id name urlKey } viewer { id } }`,r);return{platformInstallId:o.id,account:{login:o.urlKey},token:JSON.stringify(a),self:s.id}}},_={authorizeUrl:(e,{publicUrl:t,state:n,access:r})=>p(e,`${d(t)}/connect/linear/callback`,n,!1,!!r),async exchange(e,t,{publicUrl:n,fetch:r,access:i}){let{idToken:a,...o}=await m(e,t,`${d(n)}/connect/linear/callback`,r),{viewer:s}=await f(o.accessToken,`query { viewer { id displayName } }`,r);return{id:s.id,login:s.displayName,...i?{token:JSON.stringify(o)}:{}}},async access(e,t,{fetch:n,now:r}){let{clientId:i,clientSecret:a}=t,o;return{accessToken:await c(e,e=>s(l,{grant_type:`refresh_token`,refresh_token:e,client_id:i,client_secret:a},n,r),async e=>{o=e},r),...o?{refreshed:o}:{}}}};function v(e,t,n,r){let{clientId:i,clientSecret:a}=t;return c(e.token,e=>s(l,{grant_type:`refresh_token`,refresh_token:e,client_id:i,client_secret:a},r),n)}const y={observe:[`get_issue`],comment:[],write:[`get_issue`,`create_comment`]};async function b(e,t,n,r){if(!e.tools?.includes(t))throw Error(`Linear tool ${t} is not allowed`);if(t===`create_comment`&&e.scope?.thread)throw Error(`Commenting requires a native connection`);let i=await e.fetch(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${e.token}`,"content-type":`application/json`},body:JSON.stringify({query:n,variables:r}),redirect:`manual`,signal:AbortSignal.timeout(5e3)}),a=await i.json();if(!i.ok||a.errors?.length||!a.data)throw Error(`Linear request failed with status ${i.status}`);return a.data}const x={id:`linear`,brand:{color:`#222326`,icon:`M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" fill="#222326" viewBox="0 0 100 100" style="fill:light-dark(#222326,#fff)"><path d="M 1.23 61.52 c -0.22 -0.95 0.91 -1.55 1.6 -0.86 L 39.33 97.18 c 0.69 0.69 0.09 1.82 -0.86 1.6 C 20.05 94.45 5.55 79.95 1.23 61.52 Z M 0 46.89 c -0.02 0.28 0.09 0.56 0.29 0.76 L 52.35 99.71 c 0.2 0.2 0.48 0.31 0.76 0.29 2.37 -0.15 4.69 -0.46 6.96 -0.93 0.76 -0.16 1.03 -1.1 0.48 -1.65 L 2.58 39.45 c -0.55 -0.55 -1.49 -0.29 -1.65 0.48 -0.47 2.27 -0.78 4.59 -0.93 6.96 Z M 4.21 29.71 c -0.17 0.37 -0.08 0.81 0.21 1.1 l 64.78 64.78 c 0.29 0.29 0.73 0.37 1.1 0.21 1.79 -0.8 3.52 -1.69 5.19 -2.68 0.55 -0.33 0.64 -1.09 0.18 -1.54 L 8.44 24.34 c -0.45 -0.45 -1.21 -0.37 -1.54 0.18 -0.99 1.67 -1.89 3.4 -2.68 5.19 Z M 12.66 18.07 c -0.37 -0.37 -0.39 -0.96 -0.04 -1.35 C 21.78 6.46 35.11 0 49.95 0 77.59 0 100 22.41 100 50.05 c 0 14.84 -6.46 28.17 -16.72 37.34 -0.39 0.35 -0.98 0.33 -1.35 -0.04 L 12.66 18.07 Z"/></svg>`},name:`Linear`,description:`Agent sessions on Linear issues: mentions and assignments`,installLabel:`Connect Linear`,use:`Mention @{handle} or delegate an issue to it.`,answersEveryPrompt:!0,sample:`linear:2f1e6a1c-0000-4000-8000-000000000001:s:5b7d3c2a-0000-4000-8000-000000000002`,hint:`You are working in a Linear issue's agent session. Keep replies short and about the issue; link pull requests you open.`,events:{mention:{description:`Agent session started or prompted by mentioning or assigning the agent`,on:`mention`,addressed:!0,steers:!0}},tools:{presets:y,serve:{get_issue:{description:`Read a Linear issue by its UUID or identifier, such as ENG-123.`,inputSchema:{type:`object`,properties:{id:{type:`string`}},required:[`id`]},handler:async(e,t)=>{if(typeof e.id!=`string`||!e.id.trim())throw Error(`An issue ID is required`);return b(t,`get_issue`,`query($id: String!) { issue(id: $id) { id identifier title description url state { name } } }`,{id:e.id})}},create_comment:{description:`Add a comment to an issue reached by the connected Linear account.`,inputSchema:{type:`object`,properties:{issueId:{type:`string`},body:{type:`string`}},required:[`issueId`,`body`]},handler:async(e,t)=>{if(typeof e.issueId!=`string`||!e.issueId.trim()||typeof e.body!=`string`||!e.body.trim())throw Error(`An issue ID and comment are required`);return b(t,`create_comment`,`mutation($issueId: String!, $body: String!) { commentCreate(input: { issueId: $issueId, body: $body }) { success comment { id url } } }`,{issueId:e.issueId,body:e.body})}}}},hosts:[`api.linear.app`],get app(){return g},auth:{canWrite:a,token:(e,t,n,{save:r,fetch:i}={})=>v(e,t,r,i),get user(){return _}},target(e,t){let n=new URL(e.url).searchParams.get(`app`),r;try{r=JSON.parse(t).organizationId}catch{return}return n&&typeof r==`string`?{app:n,installation:r}:void 0},adapter:async e=>(await import(`./adapter-B2RXnvqt.js`)).linearAdapter(e),event(e,t,n){t.startTyping(`Reading the issue`).catch(()=>{});let r=n.raw.agentSessionPromptContext;return{type:e,actor:{id:n.author.userId,login:n.author.userName},...r?{promptContext:r.slice(0,16384)}:{}}}};var S=e({INTEGRATIONS:()=>C,enabledIntegrations:()=>w,repositoryReader:()=>T});const C={slack:n,github:t,linear:x};function w(e){if(!e)return C;let t=e.filter(e=>!C[e]);if(t.length)throw Error(`Unknown integration ${t.join(`, `)} in SERVER_INTEGRATIONS; pick from ${Object.keys(C).join(`, `)}`);return Object.fromEntries(e.map(e=>[e,C[e]]))}const T=e=>Object.values(e).find(e=>e.repos);export{T as i,w as n,S as r,C as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-ZUdhZnuW.js";const t=e(`agent integrations`,{list:async()=>(await import(`./list-BDpYPbJF.js`)).commandIntegrationsList,ls:async()=>(await import(`./list-BDpYPbJF.js`)).commandIntegrationsList,show:async()=>(await import(`./show-D0qTuXRU.js`)).commandIntegrationsShow},{menu:[{usage:`list`,blurb:`list integrations with their events and tools`},{usage:`show <id>`,blurb:`events and tools of one integration`}],description:[`The platforms an agent can listen to and act on: their events and tool presets.`]},{aliases:{ls:`list`}});export{t as commandAgentIntegrations};
|
package/dist/list-B6lwbCEp.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-ZUdhZnuW.js";import{g as n,p as r,s as i}from"./output-BKeyLbvt.js";import{t as a}from"./args-CxsMr9Un.js";import{describe as o,serverOptions as s}from"./add-Ck_y_nKX.js";import c from"node:process";function l({connections:e,declared:t}){let a=r;c.stdout.write(e.length?n([{header:`name`,value:e=>e.id,paint:e=>a.cyan(e)},{header:`connects`,value:e=>o(e),paint:e=>a.light(e)},{header:`access`,value:e=>e.access===`observe`?`read`:`write`},{header:`for`,value:e=>e.mine?`you`:e.owner?e.owner:`workspace`},{header:`status`,value:e=>e.status}],e,a):`${a.dim(`No connections.`)}\n`),t.length&&c.stdout.write(`\n${a.bold(`Declared in this repository`)}\n${n([{header:`name`,value:e=>e.name,paint:e=>a.cyan(e)},{header:`in`,value:e=>e.source},{header:`runs`,value:e=>e.target,paint:e=>a.light(e)},{header:`here`,value:e=>e.approved?`approved`:`needs approval`}],t,a)}`);let s=[...t.filter(e=>!e.approved).map(e=>`Approve: coder connection approve ${e.name}`),...e.length?[]:[`Add one: coder connection add <name> --env <NAME>`]];s.length&&c.stdout.write(`\n${i(s,a)}\n`)}const u=e({name:`connection list`,help:{usage:`coder connection list [--server [url]] [--json] [--cwd <dir>]`,summary:`Your connections, and the MCP servers this repository and its agents declare with whether each is approved on this machine.`,flags:[t]},options:{...a,...s},run:async({options:e,cwd:t})=>{let{connection:n}=await import(`./connection-BCRJHTgp.js`).then(e=>e.n);return n.list({...e,cwd:t})},print:l});export{u as commandConnectionList};
|
package/dist/list-BE3xmX_4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./cli-ZUdhZnuW.js";import{g as n,p as r}from"./output-BKeyLbvt.js";import{n as i,o as a}from"./args-CxsMr9Un.js";import o from"node:process";function s(e){if(!e.length)return void o.stdout.write(`${r.dim(`No engine credentials.`)}\n`);o.stdout.write(`${n([{header:`label`,value:e=>e.label,paint:e=>r.cyan(e)},{header:`engine`,value:e=>e.engine},{header:`scope`,value:e=>e.scope},{header:`default`,value:e=>e.isDefault?`✔`:``},{header:`value`,value:e=>e.masked},{header:`account`,value:e=>[e.account?.email,e.account?.plan].filter(Boolean).join(` `)}],e,r)}\n`)}const c=e({name:`credentials list`,globalFlags:{cwd:!1},help:{usage:`coder credentials list [--server [url]] [--json]`,flags:[t]},options:{json:i,server:a,yes:i},run:async({options:e})=>{let{connect:t}=await import(`./remote-oQs6My_3.js`).then(e=>e.a);return t(e).credentials.list()},print:s});export{c as commandCredentialsList};
|
package/dist/list-BVIAyAAE.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{K as e}from"./config-D2FxHWwi.js";import{i as t}from"./cli-ZUdhZnuW.js";import{a as n,l as r,m as i,n as a,p as o,s}from"./output-BKeyLbvt.js";import{n as c,r as l,t as u}from"./args-CxsMr9Un.js";import d from"node:process";const f=t({name:`flow list`,help:{usage:`coder flow list [--archived] [--limit N] [--json]`,summary:`List recent flow runs, most recent first: running runs plus ones that ended
|
|
2
|
-
within the last 30 minutes. Older runs auto-archive and move to --archived.`,flags:[[`--archived`,`show archived runs (auto-archived or via flow archive)`],[`--limit <n|all>`,`show at most n runs (default all)`]]},options:{...u,archived:c,limit:l},run:async({options:e})=>{let{collectFlowRuns:t}=await import(`./executor-5j-Ewzzb.js`).then(e=>e.b);return t(e)},json:e=>e.runs,print:(e,{options:t})=>p(e,t)});function p({runs:t,clipped:c},l){if(!t.length){d.stdout.write(l.archived?`No archived flow runs.
|
|
3
|
-
`:`No recent flow runs.
|
|
4
|
-
`),d.stdout.write(`\n${s([`Run one: coder flow run <name>`,`Runnable flows: coder flow discover`],o)}\n`);return}let u=o,f=(e,t,n)=>Math.min(t,Math.max(e,...n.map(e=>e.length))),p={id:f(6,28,t.map(e=>e.runId)),name:f(4,30,t.map(e=>e.name))};d.stdout.write(u.bold(u.light(`${`run-id`.padEnd(p.id)} ${`name`.padEnd(p.name)} ${`status`.padEnd(10)} ${`tasks`.padEnd(9)} ${`tokens`.padEnd(10)} age\n`)));for(let o of t){let t=Object.values(o.ledger).reduce((e,t)=>e+t.total,0);d.stdout.write(`${u.cyan(a(o.runId,p.id))} ${a(o.name,p.name)} ${i(o.status,10)} ${u.light(a(`${o.taskCount} tasks`,9))} ${u.light(a(t?`${r(t)} tok`:`-`,10))} ${u.light(n(e(o.startedAt)))}\n`)}c&&d.stdout.write(u.dim(`\n... ${c} more not shown (--limit ${l.limit})\n`)),d.stdout.write(`\n${s([`Result: coder flow result <run-id>`,`Tasks: coder list`,`Runnable flows: coder flow discover`],u)}\n`)}export{f as commandList};
|
package/dist/list-Bggy3HZY.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import"./config-D2FxHWwi.js";import{i as e,r as t}from"./cli-ZUdhZnuW.js";import{a as n,g as r,m as i,p as a,s as o}from"./output-BKeyLbvt.js";import{i as s,n as c,r as l,s as u}from"./args-CxsMr9Un.js";import{c as d,o as f}from"./result-jeiRJTzA.js";import p from"node:path";import m from"node:process";const h={server:s,workspace:u,yes:c};function g(e){if(!e.length)return void m.stdout.write(`No server tasks.
|
|
2
|
-
`);let t=a;m.stdout.write(r([{header:`task-id`,value:e=>e.task.id,paint:e=>t.cyan(e)},{header:`status`,value:e=>e.status,paint:e=>d(e,t)},{header:`agent`,value:e=>e.task.agent},{header:`source`,value:e=>e.task.source},{header:`request`,value:e=>(e.task.prompt??(e.task.event?`${e.task.event.type}: ${e.task.event.text}`:`-`)).slice(0,80)},{header:`reply`,value:e=>f(e)??`-`}],e,t))}function _(e,t,s){let c=a;if(!e.length){let n=t.archived?`archived tasks`:t.running?`running tasks`:t.stopped?`recently stopped tasks`:`recent tasks`;m.stdout.write(`No ${n}.\n`),e.archived&&m.stdout.write(`\n${o([`${e.archived} archived: coder task list --archived [--limit N]`],c)}\n`);return}let l=[{header:`task-id`,value:e=>e.taskId,paint:e=>c.cyan(e),max:28},{header:`status`,value:e=>e.status,paint:(e,t)=>i(t.status,e.length),max:16},{header:`engine`,value:e=>(e.engine===`custom`&&e.model?e.model:(e.engine??`-`)+(e.model?`/${e.model}`:``))+(e.effort?`/${e.effort}`:``),paint:e=>c.light(e),max:26},{header:`cwd`,value:e=>e.cwd?p.basename(e.cwd):`-`,paint:e=>c.light(e),max:24},{header:`name`,value:e=>{let t=e.archived?` ${c.dim(`(archived)`)}`:``;return`${e.name?e.name:c.light(e.prompt)}${e.idleMs!==null&&e.idleMs>=12e4?` ${(e.idleMs>6e5?c.red:c.dim)(`· idle ${n(e.idleMs)}`)}`:``}${t}`}}],u=[],d=new Map;for(let t of e){if(!t.flowRunId){let e=u.at(-1);e&&!e.header?e.rows.push(t):u.push({rows:[t]});continue}let e=d.get(t.flowRunId);if(!e){let n=s(t.flowRunId);e={header:n?`(${c.bold(t.flowRunId)} ${n.status}. Flow ${n.name})`:`(${c.bold(t.flowRunId)} flow)`,rows:[]},d.set(t.flowRunId,e),u.push(e)}e.rows.push(t)}m.stdout.write(r(l,u,c)),e.clipped&&m.stdout.write(c.dim(`\n... ${e.clipped} more not shown (--limit ${t.limit===`all`?void 0:t.limit})\n`));let f=[`Result: coder task result <task-id>`];t.archived||f.push(`Older tasks: coder task list --archived [--limit N]`),m.stdout.write(`\n${o(f,c)}\n`)}const v=e({name:`task list`,help:{usage:`coder task list [--running] [--stopped] [--archived [--limit N]] [--server [url]]`,summary:`List recent tasks across all workspaces, most recent first: running tasks plus
|
|
3
|
-
ones stopped within the last 30 minutes. Older stopped tasks auto-archive and
|
|
4
|
-
move to --archived. Shortcut: \`coder list\`.`,flags:[[`--running`,`show only running tasks`],[`--stopped`,`show only recently stopped tasks (not yet archived)`],[`--archived`,`show only archived tasks (auto-archived or via task archive)`],[`--limit <n|all>`,`show at most n tasks (default all)`],[`--dir <dir>`,`only tasks launched in that workspace`],t]},options:{cwd:u,dir:u,limit:l,json:c,running:c,stopped:c,archived:c,...h},run:async({options:e})=>{let{tasks:t}=await import(`./task-IoBYe7ok.js`).then(e=>e.t);return t.list({...e,organization:e.workspace})},async print(e,{options:t}){if(t.server!==void 0)return g(e);let{readFlowRecord:n}=await import(`./executor-5j-Ewzzb.js`).then(e=>e.b);_(e,t,n)}});export{v as commandTasks};
|
package/dist/list-CLtqMYPK.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-ZUdhZnuW.js";import{g as n,p as r,s as i}from"./output-BKeyLbvt.js";import{i as a,n as o,s,t as c}from"./args-CxsMr9Un.js";import l from"node:process";const u={server:a,workspace:s,yes:o},d=e=>`builtin`in e,f=e=>e.map(e=>d(e)?{id:e.id,name:e.name,source:e.builtin?`builtin`:`repo`,description:e.definition.description??null}:{id:e.id,name:e.name,source:e.source,version:e.currentVersion,description:e.description??null});function p(e,t){if(!e.length)return void l.stdout.write(`No agents configured.
|
|
2
|
-
`);let a=r;l.stdout.write(n([{header:`id`,value:e=>e.id,paint:e=>a.cyan(e)},{header:`name`,value:e=>e.name},{header:`source`,value:e=>e.source,paint:e=>a.light(e)},...t?[{header:`version`,value:e=>String(e.version)}]:[],{header:`description`,value:e=>e.description??`-`}],e,a)),!t&&l.stdout.write(`\n${i([`An agent's settings, events, and tools: coder agent show <id>`,`Scaffold a new agent in this repo: coder agent init <id>`],a)}\n`)}const m=e({name:`agent list`,help:{usage:`coder agent list [--server [url]] [--json] [--cwd <dir>]`,summary:`Without --server, one row per built-in and workspace agent. With --server, list the agent records and current versions owned by that Coder server.`,flags:[t]},options:{...c,...u},run:async({options:e,cwd:t})=>{let{agents:n}=await import(`./agent-ChnedLBv.js`).then(e=>e.t);return n.list({...e,cwd:t,organization:e.workspace})},json:e=>f(e),print:(e,{options:t})=>p(f(e),t.server!==void 0)});export{m as commandAgentList,d as isLocal};
|
package/dist/list-DkO78ZEF.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t}from"./cli-ZUdhZnuW.js";import{p as n,s as r}from"./output-BKeyLbvt.js";import{r as i}from"./models-CdvmuaLv.js";import{n as a}from"./add-CvBTpxgY.js";import o from"node:process";const s=e({name:`model list`,help:{usage:`coder model list [--json]`,summary:`List built-in aliases, configured custom models, and user aliases. Only custom\nmodels are probed.\n\n${t}`},options:a,run:({cwd:e})=>i(e),print:c});function c(e){let i=n,a=e=>e?` ${i.dim(`(disabled)`)}`:``,s=[],c=(e,t)=>{s.push(i.bold(e));for(let e of t)`overrides`in e?s.push(` ${e.disabled?i.dim(`∅`):i.cyan(`↳`)} ${e.alias.padEnd(14)} ${i.dim(`-> ${e.spec} (overrides ${e.overrides})`)}${a(e.disabled)}`):`builtin`in e?s.push(` ${e.disabled?i.dim(`∅`):i.green(`✔`)} ${e.alias.padEnd(14)} ${i.dim(`-> ${e.model}`)}${a(e.disabled)}`):s.push(` ${e.disabled?i.dim(`∅`):i.cyan(`↳`)} ${e.alias.padEnd(14)} ${i.dim(`-> ${e.spec}`)}${a(e.disabled)}`);s.push(``)};c(`Codex models`,e.codex),c(`Claude models`,e.claude),s.push(i.bold(`Custom models`),``),e.custom.length||s.push(i.dim(` None.`));for(let{name:t,probe:n,...r}of e.custom){let e=r.disabled?i.dim(`∅`):n.reachable?i.green(`✔`):i.red(`✘`);s.push(` ${e} ${t.padEnd(14)} ${r.model} ${i.dim(`@ ${r.baseUrl}. ${n.detail}`)}${a(r.disabled)}`)}if(s.push(``),e.toggles){s.push(i.bold(`Other`),``);for(let t of e.toggles)s.push(` ${t.disabled?i.dim(`∅`):i.green(`✔`)} ${t.name.padEnd(14)} ${i.dim(`raw model id`)}${a(t.disabled)}`);s.push(``)}s.push(...t.split(`
|
|
2
|
-
`),``,r([`Add a custom model: coder model add <name> --base-url <url> --model <id> [--env-key VAR]`,`Alias a model, e.g. fast codex:luna: coder model alias <name> <spec>`,`Run with a model: coder run --model <name> "<task>"`],i)),o.stdout.write(`${s.join(`
|
|
3
|
-
`)}\n`)}export{s as commandModelList};
|
package/dist/load-CRmQB1LD.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Rt as e,en as t,qi as n}from"./core-DwsAMCnL.js";import{$ as r,An as i,Et as a,Hn as o,Ln as s,Nn as c,On as l,P as u,Vn as d,Wn as f,b as ee,jn as p,k as m,kn as h,y as te,zn as g}from"./config-D2FxHWwi.js";import{t as _}from"./types-B42Oh0zF.js";import v from"node:path";import{fileURLToPath as y}from"node:url";import b from"node:fs";const x=o().check(t(/^[a-z0-9][a-z0-9_-]*$/i,`agent or flow name`)),S=h([`low`,`medium`,`high`]),C=h([`read-only`,`workspace-write`,`auto`]),w=h([`observe`,`comment`,`write`]),T=f([w,i(o())]),E=d({flow:s(x),match:s(o().check(e(1))),permissions:s(C),actAs:s(c(`requester`))}),D=d({events:s(f([i(o()),g(o(),f([x,E,c(!0)]))])),tools:s(T)}),O=d({$schema:s(o()),name:s(o().check(e(1))),description:s(o()),engine:s(o()),runner:s(o().check(e(1))),model:s(o()),effort:s(S),permissions:s(C),mcp:s(g(x,ee)),integrations:l(g(o(),D),{})}),k=d({allowedTools:s(T),allowedEvents:s(i(o()))}),A=d({connections:s(i(o())),engine:s(o()),model:s(o()),effort:s(S),permissions:s(C),integrations:s(g(o(),k)),disabled:s(p())}),j=g(x,f([p(),A]));function M(e){return e.issues.map(e=>`${e.path.map(String).join(`.`)||`(root)`}: ${e.message}`).join(`; `)}function N(e,t,n=!0){let r=O.safeParse(t);if(!r.success)throw Error(`Invalid agent definition "${e}": ${M(r.error)}`);let{$schema:i,...a}=r.data;return u(a.mcp,n),a}function P(e){if(e===void 0)return{};let t=j.safeParse(e);if(!t.success)throw Error(`Invalid agents usage: ${M(t.error)}`);return t.data}function F(e){return e?.events?Array.isArray(e.events)?e.events:Object.keys(e.events):[]}function I(e,t){if(!e?.events)return;if(Array.isArray(e.events))return e.events.includes(t)?{}:void 0;if(!Object.prototype.hasOwnProperty.call(e.events,t))return;let n=e.events[t];return n===!0?{}:typeof n==`string`?{flow:n}:n}function L(e,t){let n=[],r=Object.keys(t).sort().join(`, `)||`none`;for(let i of e){for(let[e,a]of Object.entries(i.definition.integrations)){let o=`agents.${i.id}.integrations.${e}`,s=t[e];if(!s){n.push(`${o}: unknown integration; valid: ${r}`);continue}let c=Object.keys(s.events).sort().join(`, `)||`none`;for(let e of F(a)){e in s.events||n.push(`${o}.events.${e}: unknown event; valid: ${c}`);let t=I(a,e)?.match;if(t!==void 0)try{new RegExp(t)}catch{n.push(`${o}.events.${e}.match: invalid regex`)}}n.push(...R(`${o}.tools`,a.tools,s))}for(let[e,a]of Object.entries(i.usage?.integrations??{})){let o=`agents.${i.id}.integrations.${e}`,s=t[e];if(!s){n.push(`${o}: unknown integration; valid: ${r}`);continue}n.push(...R(`${o}.allowedTools`,a.allowedTools,s));let c=Object.keys(s.events).sort().join(`, `)||`none`;for(let e of a.allowedEvents??[])e in s.events||n.push(`${o}.allowedEvents: unknown event "${e}"; valid: ${c}`)}}return n}function R(e,t,n){if(t===void 0)return[];if(typeof t==`string`)return _.includes(t)?[]:[`${e}: unknown preset "${t}"; valid: ${_.join(`, `)}`];let r=new Set(Object.values(n.tools.presets).flat());return t.filter(e=>!r.has(e)).map(t=>`${e}: unknown tool "${t}"; valid: ${[...r].sort().join(`, `)||`none`}`)}function z(e,t){if(Array.isArray(e))return[...new Set(e)];let n=_.indexOf(e);return[...new Set(_.slice(0,n+1).flatMap(e=>t.tools.presets[e]??[]))]}function B(e,t,n){let r=z(e.definition.integrations[t]?.tools??`observe`,n),i=e.usage?.integrations?.[t]?.allowedTools;if(i===void 0)return r;let a=new Set(z(i,n));return r.filter(e=>a.has(e))}function V(e,t){let n=F(e.definition.integrations[t]),r=e.usage?.integrations?.[t]?.allowedEvents;return r===void 0?n:n.filter(e=>r.includes(e))}function H(e){return{engine:e.usage?.engine??e.definition.engine,model:e.usage?.model??e.definition.model,effort:e.usage?.effort??e.definition.effort,permissions:e.usage?.permissions??e.definition.permissions??`read-only`}}const U={"read-only":0,"workspace-write":1,auto:2};function W(e,t){return t&&U[t]<=U[e]?t:e}var G=n({agentsFromSources:()=>Y,assertNotReserved:()=>X,builtinDefinitions:()=>q,defaultAgent:()=>J,loadAgents:()=>$,repoAgentOverride:()=>Q});function ne(){let e=v.dirname(y(import.meta.url));for(let t of[y(new URL(`./builtin/`,import.meta.url)),e])if(Object.keys(K(t)).length)return t;return e}function K(e,t=!1){let n={},r;try{r=b.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return n}for(let i of r){let r=v.join(e,i),a=v.join(r,`agent.json`);if(!b.statSync(a,{throwIfNoEntry:!1})?.isFile())continue;let o=JSON.parse(b.readFileSync(a,`utf8`)),s=t&&o.default===!0;t&&delete o.default,n[i]={json:o,builtin:t,dir:r,...s?{default:!0}:{}}}return n}function q(){return K(ne(),!0)}function J(){return Object.entries(q()).find(([,e])=>e.default)?.[0]}function re(e,t){let n=Object.entries(e.integrations).flatMap(([e,n])=>{let r=t[e]?.events;if(!r)return[];let i=Array.isArray(n.events)?n.events.filter(e=>e in r):n.events&&Object.fromEntries(Object.entries(n.events).filter(([e])=>e in r));return[[e,{...n,...i?{events:i}:{}}]]});return{...e,integrations:Object.fromEntries(n)}}function Y(e,t,n){let r=P(e.usage),i=Object.keys(r).filter(t=>!(t in e.definitions));if(i.length){let t=Object.keys(e.definitions).sort().join(`, `)||`none`;throw Error(`Invalid agents:\n agents.${i.sort().join(`, agents.`)}: no agent definition; known ids: ${t}`)}let a=[];for(let[n,i]of Object.entries(e.definitions)){let o=r[n],s=o===!1?{disabled:!0}:o,c=typeof s==`object`&&s.disabled;if(c&&!e.includeDisabled)continue;let l;try{l=N(n,i.json,i.repository??!i.builtin)}catch(e){if(c)continue;throw e}let u=i.builtin?re(l,t):l;a.push({id:n,name:u.name??n,definition:u,...typeof s==`object`?{usage:s}:{},...i.dir?{dir:i.dir}:{},builtin:i.builtin})}let o=L(a.filter(e=>!e.usage?.disabled),t);if(o.length)throw Error(`Invalid agents:\n ${o.join(`
|
|
2
|
-
`)}`);return a}function X(e){let t=e.filter(e=>e in q()).sort();if(t.length)throw Error(`Invalid agents:\n agents.${t.join(`, agents.`)}: built-in agent ids are reserved`)}function Z(e){let t=m(a(v.resolve(e)));return{file:t,usage:b.existsSync(t)?JSON.parse(b.readFileSync(t,`utf8`)).agents??{}:{}}}function Q(e,t,n){let{file:r,usage:i}=Z(e),a=i[t],o=typeof a==`boolean`?!a:a?.disabled;return o===void 0||o===n?void 0:r}async function $(e,t,{includeDisabled:n=!1}={}){e=v.resolve(e);let i={...q()},a=K(r(`agents`));for(let e of Object.values(a))e.repository=!1;let o=K(v.join(e,`.coder`,`agents`));X([...Object.keys(a),...Object.keys(o)]),Object.assign(i,a,o);let s={...te(e).agents},{usage:c}=Z(e);for(let e of Object.keys(s))!(e in i)&&!(e in c)&&delete s[e];return Y({definitions:i,usage:s,includeDisabled:n},t,e)}export{$ as a,F as c,W as d,N as f,B as h,J as i,H as l,V as m,X as n,G as o,P as p,q as r,Q as s,Y as t,I as u};
|
package/dist/local-ccKBhpQc.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{qt as e}from"./config-D2FxHWwi.js";import{t}from"./integrations-D3OgJk6Y.js";import{a as n,i as r,l as i,s as a}from"./task-DXHKWB_J.js";import o from"node:path";import s from"node:process";import c from"node:fs";import{execFile as l,spawn as u}from"node:child_process";import d from"node:fs/promises";import{promisify as f}from"node:util";const p=e=>Buffer.from(JSON.stringify(e)).toString(`base64url`),m=e=>JSON.parse(Buffer.from(e,`base64url`).toString(`utf8`)),h=f(l);async function g(e){if(s.platform===`linux`){let t=await d.readFile(`/proc/${e}/stat`,`utf8`).catch(()=>``);return t.slice(t.lastIndexOf(`)`)+2).split(` `)[19]}return(await h(`ps`,[`-p`,String(e),`-o`,`lstart=`]).catch(()=>void 0))?.stdout.trim()||void 0}function _(e){let t=m(e);if(!Number.isInteger(t.pid)||typeof t.dir!=`string`||typeof t.started!=`string`)throw Error(`Invalid local runner handle`);return t}var v=class{workDir;kind=`local`;children=new Map;constructor(e){this.workDir=e}async start(t,i){await d.mkdir(this.workDir,{recursive:!0});let l=await d.mkdtemp(o.join(this.workDir,`task-`)),f=t.runner===`local`?r(t):void 0,m=c.openSync(o.join(l,`runner.log`),`a`),h=u(s.execPath,[e,`agent`,`run`,`--task`,t.id],{cwd:l,detached:!0,env:{PATH:s.env.PATH??``,HOME:s.env.HOME??``,TMPDIR:s.env.TMPDIR??``,...s.env.CODER_HOME?{CODER_HOME:s.env.CODER_HOME}:{},...i,...f?{CODER_CHECKOUT_CACHE:f}:{},CODER_INBOX_SOCKET:n(l)},stdio:[`ignore`,m,m]});await new Promise((e,t)=>{h.once(`spawn`,e),h.once(`error`,t)}),c.closeSync(m);let _={child:h};this.children.set(h.pid,_),h.once(`close`,e=>{_.code=e,a(o.join(l,`repo`)).catch(e=>console.error(`coder runner: checkout cleanup failed`,e))}),h.unref();let v=await g(h.pid);if(!v)throw Error(`Could not identify the local runner process`);return p({pid:h.pid,dir:l,started:v})}async status(e){let{pid:t,dir:n,started:r}=_(e),i=this.children.get(t);if(i?.code===void 0)try{if(s.kill(t,0),await g(t)===r)return{state:`running`}}catch{}return await a(o.join(n,`repo`)),{state:`exited`,...i?.code==null?{}:{code:i.code}}}async stop(e){let{pid:t,started:n}=_(e);if(await g(t)===n)try{s.kill(-t,`SIGTERM`)}catch{try{s.kill(t,`SIGTERM`)}catch{}}}async push(e,t){let{pid:r,dir:a,started:o}=_(e);if(await g(r)!==o)throw Error(`The task process exited`);return i(n(a),t)}};function y(e,t,n={}){return new Promise((r,i)=>{let a=u(e,t,{env:n,stdio:[`ignore`,`pipe`,`pipe`]}),o=``,s=``;a.stdout.on(`data`,e=>o+=String(e)),a.stderr.on(`data`,e=>s+=String(e)),a.once(`error`,i),a.once(`close`,e=>r({code:e,stdout:o,stderr:s}))})}function b(){return Object.values(t).flatMap(e=>e.tools.install?[`(${e.tools.install})`]:[])}export{p as a,m as i,y as n,b as r,v as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";var t=e({LogView:()=>o,isApproval:()=>n,logEntry:()=>a,stripCwd:()=>i});const n=e=>e.includes(`approval`)||e===`sidecar-decision`||e===`auto-review`,r=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function i(e,t){return t?e.split(`${t}/`).join(``).split(t).join(`.`):e}function a(e){try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t)){let e=`kind`in t&&typeof t.kind==`string`?t.kind:void 0,n=`message`in t&&typeof t.message==`string`?t.message:void 0;if(e!==void 0||n!==void 0)return{...t,kind:e,message:n,at:`at`in t&&typeof t.at==`string`?t.at:void 0}}}catch{}}var o=class{cwd;opts;prevKind=null;lastAssistant=``;lastToolText=``;openCalls=[];callIds=new WeakMap;approval;approvals=new Map;lastUsageTotal=0;constructor(e,t={}){this.cwd=e,this.opts=t}get lastAssistantMessage(){return this.lastAssistant}reduce(e){let t=e.entry,r=t?String(t.kind??`status`):`line`,a=t?r===`tool-result`?this.close(e,t):n(r)?this.decide(e,t,r):void 0:void 0;if(a)return this.prevKind=r,[a];let o={seq:e.seq,at:e.at,kind:`status`,title:``,sourceKind:r,separated:!1,tone:`muted`};if(!t)o.kind=e.level===`err`?`error`:e.level===`sys`?`status`:`line`,o.title=i(e.line,this.cwd),e.level===`err`&&(o.tone=`error`);else if(r===`usage`){let e=t.tokens;if(!e)return[];let n=this.lastUsageTotal>0,r=e.total-this.lastUsageTotal;if(!n||r<Math.max(2e4,this.lastUsageTotal*.2))return this.lastUsageTotal=Math.max(this.lastUsageTotal,e.total),[];this.lastUsageTotal=e.total,o.kind=`usage`,o.tokens=e,o.title=`ctx ${c(e.input+e.cachedInput)} · out ${c(e.output)}`}else if(r===`approval-decision`&&t.decision===`escalate`||r===`approval-escalated`){let e=i(t.summary?String(t.summary):``,this.cwd),n=/^(?:run command: |Run command\. |Apply file changes\. |\w+: )?([\s\S]*)$/.exec(e)[1],a=String(t.method??``),s=a&&!a.includes(`/`)?a:this.openCalls.at(-1)?.tool,c=n.startsWith(`{`)?``:n.split(/\s+/)[0],l=i(t.reason?String(t.reason):``,this.cwd);o.kind=`approval`,o.title=[`Approval`,[s,c].filter(Boolean).join(` `)].filter(Boolean).join(` · `),o.detail=[n,l&&`Policy · ${l}`].filter(Boolean).join(`
|
|
2
|
-
`),o.state=r===`approval-escalated`?`waiting`:`escalated`,r===`approval-escalated`?this.approvals.set(String(t.approvalId),o):this.approval=o}else if(n(r)&&(t.decision||!t.message)){o.kind=`approval`;let e=r===`sidecar-decision`?`sidecar`:r===`auto-review`?`auto-review`:`approval`,n=t.riskLevel?`(${String(t.riskLevel)} risk)`:``,a=i(t.summary?String(t.summary):``,this.cwd),s=a.slice(a.indexOf(`: `)+2),c=a&&s&&this.lastToolText.includes(s)?``:a,l=c?``:String(t.method??``);o.title=`${[e,String(t.decision??``),n,l].filter(Boolean).join(` `)}${c?` · ${c}`:``}`,o.detail=i(t.reason?String(t.reason):``,this.cwd)}else{let e=t.message?String(t.message):r===`tool-result`?`(no output)`:String(t.tool||t.kind||``);if(!e&&!(r===`tool-result`&&(t.exitCode!=null||t.isError)))return[];o.title=i(e,this.cwd),r===`assistant`?(o.kind=`assistant`,o.tone=void 0,this.lastAssistant=o.title):r===`error`||r===`steer`?(o.kind=r,o.tone=r===`error`?`error`:`warning`):r===`reasoning`?(o.kind=`reasoning`,o.durationMs=typeof t.durationMs==`number`?t.durationMs:0):r===`tool`?(o.kind=`tool`,t.tool&&(o.tool=String(t.tool)),this.lastToolText=o.title,t.callId&&this.callIds.set(o,String(t.callId)),this.openCalls.push(o)):r===`tool-result`&&(o.kind=`tool-result`,o.title=this.output(e),o.exitCode=typeof t.exitCode==`number`?t.exitCode:void 0,o.tone=o.exitCode!==void 0&&o.exitCode!==0||t.isError===!0?`error`:`muted`,o.durationMs=typeof t.durationMs==`number`?t.durationMs:0,t.tool&&(o.tool=String(t.tool)))}return this.prevKind!==null&&(o.separated=[`assistant`,`error`,`steer`].includes(r)||r===`reasoning`&&this.prevKind!==`reasoning`||r===`tool`&&[`assistant`,`reasoning`].includes(this.prevKind)),this.prevKind=r,[o]}close(e,t){let n=t.tool?String(t.tool):void 0,r=t.callId?this.openCalls.findIndex(e=>this.callIds.get(e)===String(t.callId)):-1,a=t.callId?r:n?this.openCalls.findIndex(e=>e.tool===n):this.openCalls.length-1;if(a<0)return;let[o]=this.openCalls.splice(a,1),s=typeof t.exitCode==`number`?t.exitCode:void 0,c=typeof t.durationMs==`number`?t.durationMs:e.at-o.at||0;return{...o,title:t.callMessage?i(String(t.callMessage),this.cwd):o.title,result:{ok:!s&&t.isError!==!0,exitCode:s,durationMs:Math.max(0,c),detail:this.output(t.message?String(t.message):``)}}}decide(e,t,n){let r=String(t.approvalId??``),a=t.decision===`accept`;if(n===`sidecar-decision`&&this.approval){let n=i(t.reason?String(t.reason):``,this.cwd),r={...this.approval,detail:[this.approval.detail,n&&`Sidecar · ${n}`].filter(Boolean).join(`
|
|
3
|
-
`)};return t.decision===`escalate`?this.approval=r:(this.approval=void 0,s(r,e,`${a?`accepted`:`denied`} by sidecar`,a))}if(n===`approval-escalated`&&this.approval){let e={...this.approval,state:`waiting`};return this.approval=void 0,this.approvals.set(r,e),e}let o=this.approvals.get(r);if(!(!o||n!==`approval-answered`&&n!==`approval-timeout`))return this.approvals.delete(r),n===`approval-timeout`?s(o,e,`timed out`,!1):s(o,e,`${a?`accepted`:`denied`} by reviewer`,a)}output(e){return i(this.opts.keepAnsi?e:e.replace(r,``),this.cwd)}};function s(e,t,n,r){return{...e,state:n,result:{ok:r,durationMs:Math.max(0,t.at-e.at||0),detail:``}}}function c(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4))}k`:`${(e/1e6).toFixed(1)}M`}export{t as n,a as t};
|
package/dist/login-BCdXHQ7z.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./cli-ZUdhZnuW.js";import{p as n,r,s as i}from"./output-BKeyLbvt.js";import{n as a,o}from"./args-CxsMr9Un.js";import s from"node:process";import c from"node:readline/promises";function l(e){e.url&&s.stderr.write(`Open ${n.cyan(e.url)}\n`),e.code&&s.stderr.write(`Enter the code ${n.bold(e.code)}\n`)}async function u(){let e=c.createInterface({input:s.stdin,output:s.stderr}),t=(await e.question(`Paste the code from the sign-in page `)).trim();return e.close(),t}function d(e){if(e.state===`failed`)return void s.stderr.write(`${r.red(e.error??`Sign-in failed.`)}\n\n${i([`Try again`],r)}\n`);s.stdout.write(`Signed in. Personal credential ${n.bold(e.label??e.engine)} is your ${e.engine} default.\n`)}const f=e({name:`credentials login`,globalFlags:{cwd:!1},help:{usage:`coder credentials login <claude|codex> [--server [url]] [--json]`,summary:`Runs the official claude or codex sign-in on the server's runner, prints the sign-in link or device code, and waits. Claude asks you to paste the code the sign-in page shows. The result is your personal default for that engine. Needs CLAUDE_SUBSCRIPTIONS=1 or CODEX_SUBSCRIPTIONS=1 on the server.`,flags:[t]},options:{json:a,server:o,yes:a},args:1,run:async({options:e,args:[t]})=>{let{loginCredential:n}=await import(`./remote-oQs6My_3.js`).then(e=>e.a);return n(t,{...e,onStart:e=>s.once(`SIGINT`,()=>void e().finally(()=>s.exit(130))),onOpen:l,code:u})},print:d,exit:(e,{options:t})=>!t.json&&e.state===`failed`?1:void 0});export{f as commandCredentialsLogin};
|
package/dist/match-Kt3vFTl1.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as e,h as t,m as n,u as r}from"./load-CRmQB1LD.js";import{t as i}from"./integrations-D3OgJk6Y.js";function a(e){let n={};for(let r of Object.keys(e.definition.integrations)){let a=i[r];a&&(n[r]=t(e,r,a))}return n}function o(t,o){if(!i[t.integration]||!n(o,t.integration).includes(t.type))return;let s=r(o.definition.integrations[t.integration],t.type);if(!s||s.match!==void 0&&!new RegExp(s.match).test(t.text))return;let c=o.usage?.permissions??o.definition.permissions;return{flow:s.flow??`default`,tools:a(o),...s.actAs?{actAs:s.actAs}:{},...c?{permissions:e(c,s.permissions)}:s.permissions?{permissions:s.permissions}:{}}}function s(e,t){return t.flatMap(t=>{let n=o(e,t);return n?[{agent:t,...n}]:[]})}export{s as n,o as t};
|
package/dist/mcp-O8VTfzdL.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{Ct as e,En as t,Et as n,Yt as r,a as i,ct as a,q as o,wn as s,y as c}from"./config-D2FxHWwi.js";import{_ as l,v as u,y as d}from"./dispatch-D3Dqxijf.js";import{i as f}from"./cli-ZUdhZnuW.js";import{s as p}from"./args-CxsMr9Un.js";import{n as m}from"./mcp-server-DGzme0YX.js";import h from"node:path";import g from"node:fs";import{spawn as _}from"node:child_process";import{randomUUID as v}from"node:crypto";function y(e){return h.join(e,`sidecar.json`)}function b(e){return s(y(e))??{sessionId:null,declineStreak:0}}async function x(e){let t=h.join(e,`sidecar.lock`),n=Date.now()+12e4;for(;;)try{return g.mkdirSync(t),()=>{try{g.rmdirSync(t)}catch{}}}catch{try{if(Date.now()-g.statSync(t).mtimeMs>9e4){g.rmdirSync(t);continue}}catch{continue}if(Date.now()>n)throw Error(`sidecar lock wait timed out`);await new Promise(e=>setTimeout(e,250))}}function S(e,t,n,r){return[`-p`,r,`--output-format`,`json`,`--model`,`sonnet`,`--effort`,`low`,`--strict-mcp-config`,`--no-chrome`,`--mcp-config`,`{"mcpServers":{}}`,`--settings`,`{"disableClaudeAiConnectors":true}`,n?`--resume`:`--session-id`,t,...i,`--add-dir`,e]}function C(e,t,n,r,i){let a=S(t,n,r,i);return new Promise((t,n)=>{let r=_(`claude`,a,{cwd:e,stdio:[`ignore`,`pipe`,`pipe`]}),i=``,o=``,s=setTimeout(()=>{r.kill(`SIGKILL`),n(Error(`sidecar call timed out`))},12e4);r.stdout.on(`data`,e=>i+=e),r.stderr.on(`data`,e=>o+=e),r.on(`error`,e=>{clearTimeout(s),n(e)}),r.on(`close`,e=>{if(clearTimeout(s),e!==0){n(Error(`sidecar claude exited ${e}: ${o.trim().slice(0,200)}`));return}try{let e=JSON.parse(i);if(e.is_error){n(Error(`sidecar turn errored: ${String(e.result??``).slice(0,200)}`));return}t(String(e.result??``))}catch{n(Error(`sidecar returned unparseable output`))}})})}function w(e){let t=e.match(/\{[^{}]*"decision"[^{}]*\}/);if(!t)return null;try{let e=JSON.parse(t[0]);if(e.decision===`accept`||e.decision===`decline`||e.decision===`escalate`)return{decision:e.decision,reason:String(e.reason??``)}}catch{}return null}async function T(e,n,r){let i=null;try{i=await x(n);let a=b(n);if(a.declineStreak>=3)return{decision:`escalate`,reason:`sidecar decline streak; needs human review`};if(!a.sessionId){let i=v();await C(e,n,i,!1,`You are the approval reviewer for a "coder" background coding task. The task runs inside an OS sandbox; you review only actions that escape it.
|
|
2
|
-
|
|
3
|
-
Rules:
|
|
4
|
-
- git stays read-only: decline any git write (commit/push/checkout/reset/...).
|
|
5
|
-
- Decline anything destructive or system-level (sudo, rm -rf outside workspace, killing processes, changing system config, piping downloads to shells).
|
|
6
|
-
- Temp locations (/tmp, \$TMPDIR, os temp dirs) and paths this task created are workspace scratch. They can be deleted after checking the progress log.
|
|
7
|
-
- Accept actions clearly needed for the task goal (package installs in the workspace, running tests/builds/linters, reading system info, network to well-known package registries).
|
|
8
|
-
- Escalate when genuinely uncertain, when the action is irreversible beyond the workspace, or when it touches credentials/secrets.
|
|
9
|
-
|
|
10
|
-
You may Read/Grep workspace files and the task progress log to inform a decision. Do this only when the action line alone is not enough. Most decisions should not need it.
|
|
11
|
-
|
|
12
|
-
Reply with ONLY one line of JSON: {"decision":"accept"|"decline"|"escalate","reason":"<short>"}. Acknowledge now with {"decision":"escalate","reason":"ready"}.${r.taskGoal?`\n\nTask goal: ${r.taskGoal.replace(/\s+/g,` `).slice(0,500)}`:``}${`\nTask progress log: ${h.join(n,`log.jsonl`)}`}`),a.sessionId=i,t(y(n),a)}let o=w(await C(e,n,a.sessionId,!0,`action: ${r.summary.slice(0,500)}`));return o?.decision===`decline`?a.declineStreak+=1:o?.decision===`accept`&&(a.declineStreak=0),t(y(n),a),o??{decision:`escalate`,reason:`sidecar verdict unparseable`}}catch(e){return{decision:`escalate`,reason:`sidecar unavailable: ${e instanceof Error?e.message:String(e)}`}}finally{i?.()}}const E=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]);async function D(t,r,i){let s=String(i.tool_name??``),f=i.input??i.tool_input??{},p=n(t),m=e(t,r),h=c(t),g=e=>o(t,r,e),_,v;if(s===`Bash`){let e=String(f.command??``);v=`run command: ${e||`(unknown command)`}`,_=l(e,{allowedNetworkHosts:h.approvals.allowedNetworkHosts})}else if(E.has(s)){let e=String(f.file_path??f.notebook_path??``);v=`${s}: ${e||`(unknown path)`}`,_=u(e?[e]:[],p)}else v=`${s||`(unknown tool)`}: ${JSON.stringify(f).slice(0,200)}`,_={decision:`escalate`,reason:`tool needs approval: ${s}`};g({kind:`approval-decision`,method:s,decision:_.decision,reason:_.reason,summary:v});let y=_.decision,b=_.reason;if(y===`escalate`){let e=await T(t,m,{taskGoal:a(t,r)?.prompt??null,summary:v});g({kind:`sidecar-decision`,decision:e.decision,reason:e.reason,summary:v}),e.decision===`escalate`?(y=await d(m,{method:`claude/${s}`,summary:v,params:{tool_name:s,input:f}},{timeoutMs:h.approvals.escalationTimeoutMs,onEvent:g}),b=`escalated for human review`):(y=e.decision,b=e.reason)}return y===`accept`?{behavior:`allow`,updatedInput:f}:{behavior:`deny`,message:`Denied by coder policy: ${b}`}}const O={approval_prompt:{description:`Coder approval policy for claude permission prompts.`,inputSchema:{type:`object`,additionalProperties:!0},handler:(e,{cwd:t,taskId:n})=>D(t,n,e).catch(e=>({behavior:`deny`,message:`coder mcp tool failed: ${e instanceof Error?e.message:String(e)}`}))}},k=f({name:`task mcp`,options:{cwd:p},args:1,run:({args:e,cwd:t})=>m(`coder`,O,{cwd:t,taskId:e[0]},void 0,r())});export{k as commandTaskMcp};
|
package/dist/mcp-YhyTUMIM.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{qt as t}from"./config-D2FxHWwi.js";import{t as n}from"./integrations-D3OgJk6Y.js";import{t as r}from"./mcp-server-DGzme0YX.js";import i from"node:path";import a from"node:process";import o from"node:os";import s from"node:fs/promises";var c=e({NOTE_FILE_ENV:()=>h,NOTE_TOOLS:()=>_,agentToolServer:()=>d,agentTools:()=>l,gitToolEnvironment:()=>m,noteToolServer:()=>v,taskToolServers:()=>p,tokenEnvName:()=>u,toolServerToken:()=>f});function l(e,t){if(e===`note`)return _;let r=n[e]?.tools,i=r?.serve;return!i||!t||!Object.values(r.presets).some(e=>e.some(e=>Object.hasOwn(i,e)))?i:Object.fromEntries(Object.entries(i).filter(([e])=>t.includes(e)))}function u(e){return`APP_TOKEN_${e.toUpperCase().replace(/[^A-Z0-9]/g,`_`)}`}function d(e,r,i){let{serve:o,server:s,presets:c}=n[e].tools;if(s){let t=s(r,i.event,i.token),a=Object.entries(t.env??{}).find(([,e])=>e===i.token)?.[0];return{...t,...a?{credentialFields:{env:a}}:{},...n[e].repos?.credentialUsername?{gitCredential:r.some(e=>!c.observe.includes(e))}:{}}}let u=i.scope??(i.event?.chat?{thread:i.event.chat.thread.id}:void 0);return{name:e,command:a.execPath,args:[t,`agent`,`tools`,e],env:{APP_TOKEN:i.token,CODER_AGENT_TOOLS:r.join(`,`),...u?{CODER_AGENT_SCOPE:JSON.stringify(u)}:{}},credentialFields:{env:`APP_TOKEN`},tools:Object.keys(l(e,r)??o??{})}}function f(e,t){if(!n[t])return;let r=d(t,[],{token:`\0`}),i=Object.entries(r.env??{}).find(([,e])=>e===`\0`)?.[0];return i&&e.find(e=>e.name===r.name)?.env?.[i]||void 0}function p(e,t){return Object.entries(e.tools).flatMap(([r,i])=>{let a=t[r];return n[r]&&a&&i.length?[d(r,i,{token:a,...e.event?{event:e.event}:{},scope:e.toolScopes?.[r]})]:[]})}async function m(e){let t=Object.values(n).flatMap(t=>{let n=t.repos,r=f(e.filter(e=>e.gitCredential),t.id);return n?.credentialUsername&&r&&!/[\r\n]/.test(r)?n.cloneHosts.map(e=>({host:e,username:n.credentialUsername,password:r})):[]});if(!t.length)return{env:{},close:async()=>{}};let r=await s.mkdtemp(i.join(o.tmpdir(),`coder-git-`)),c=i.join(r,`credential.cjs`);try{await s.writeFile(i.join(r,`tokens.json`),JSON.stringify(t),{mode:384}),await s.writeFile(c,`const fs = require('node:fs');
|
|
2
|
-
let input = '';
|
|
3
|
-
process.stdin.on('data', data => input += data);
|
|
4
|
-
process.stdin.on('end', () => {
|
|
5
|
-
if (process.argv[2] !== 'get') return;
|
|
6
|
-
const fields = Object.fromEntries(input.trim().split('\\n').map(line => { const at = line.indexOf('='); return [line.slice(0, at), line.slice(at + 1)]; }));
|
|
7
|
-
const entries = JSON.parse(fs.readFileSync(require('node:path').join(__dirname, 'tokens.json'), 'utf8'));
|
|
8
|
-
const credential = entries.find(entry => fields.protocol === 'https' && fields.host === entry.host);
|
|
9
|
-
if (credential) process.stdout.write('username=' + credential.username + '\\npassword=' + credential.password + '\\n');
|
|
10
|
-
});
|
|
11
|
-
`,{mode:384});let e=e=>`'${e.replaceAll(`'`,`'\\''`)}'`,n=Number(a.env.GIT_CONFIG_COUNT??0);if(!Number.isInteger(n)||n<0||n>1e3)throw Error(`Invalid git config count`);return{env:{GIT_CONFIG_COUNT:String(n+2),[`GIT_CONFIG_KEY_${n}`]:`credential.helper`,[`GIT_CONFIG_VALUE_${n}`]:``,[`GIT_CONFIG_KEY_${n+1}`]:`credential.helper`,[`GIT_CONFIG_VALUE_${n+1}`]:`!${e(a.execPath)} ${e(c)}`},close:()=>s.rm(r,{recursive:!0,force:!0})}}catch(e){throw await s.rm(r,{recursive:!0,force:!0}),e}}const h=`CODER_NOTE_FILE`,g=2e3,_={note:{description:`Read this thread's note, or replace it by passing text: at most 5 short lines a future turn in this thread must remember. Empty text clears it.`,inputSchema:r({text:`string`},[]),handler:async e=>{let t=a.env[h];if(!t)throw Error(`${h} is not set`);if(typeof e.text!=`string`)return{note:await s.readFile(t,`utf8`).catch(()=>``)};if(e.text.length>g)throw Error(`A note holds at most ${g} characters`);return await s.writeFile(t,e.text.trim()),{saved:!0}}}};function v(e){return{name:`note`,command:a.execPath,args:[t,`agent`,`tools`,`note`],env:{[h]:e},tools:Object.keys(_)}}export{u as a,p as i,c as n,f as o,v as r,m as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e from"node:readline";async function t(t,n,r,i={input:process.stdin,write:e=>process.stdout.write(`${e}\n`)},a=`1`){let o=e=>i.write(JSON.stringify(e)),s=e.createInterface({input:i.input,terminal:!1});for await(let e of s){if(!e.trim())continue;let i;try{i=JSON.parse(e)}catch{continue}let{id:s,method:c,params:l}=i;if(c===`initialize`)o({jsonrpc:`2.0`,id:s,result:{protocolVersion:l?.protocolVersion??`2024-11-05`,capabilities:{tools:{}},serverInfo:{name:t,version:a}}});else if(c===`tools/list`)o({jsonrpc:`2.0`,id:s,result:{tools:Object.entries(n).map(([e,t])=>({name:e,description:t.description,inputSchema:t.inputSchema}))}});else if(c===`tools/call`){let e=n[String(l?.name??``)],t,i=!1;try{if(!e)throw Error(`unknown tool: ${l?.name}`);let n=await e.handler(l?.arguments??{},r);t=typeof n==`string`?n:JSON.stringify(n)}catch(e){i=!0,t=e instanceof Error?e.message:String(e)}o({jsonrpc:`2.0`,id:s,result:{content:[{type:`text`,text:t}],isError:i}})}else s!==void 0&&o({jsonrpc:`2.0`,id:s,result:{}})}}function n(e,t=Object.keys(e)){return{type:`object`,properties:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{type:t}])),required:t}}export{t as n,n as t};
|
package/dist/model-Bzpwl_95.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-ZUdhZnuW.js";const t=e(`model`,{list:async()=>(await import(`./list-DkO78ZEF.js`)).commandModelList,ls:async()=>(await import(`./list-DkO78ZEF.js`)).commandModelList,add:async()=>(await import(`./add-CvBTpxgY.js`).then(e=>e.t)).commandModelAdd,setup:async()=>(await import(`./add-CvBTpxgY.js`).then(e=>e.t)).commandModelAdd,update:async()=>(await import(`./update-MNyeVXyy.js`)).commandModelUpdate,remove:async()=>(await import(`./remove-BcewhH1U.js`).then(e=>e.n)).commandModelRemove,disable:async()=>(await import(`./disable-CnCxTC3X.js`)).commandModelDisable,enable:async()=>(await import(`./enable-BWvDv7dP.js`)).commandModelEnable,alias:async()=>(await import(`./alias-BpgVDY6_.js`)).commandModelAlias,unalias:async()=>(await import(`./unalias-Cqx7i_L0.js`)).commandModelUnalias},{menu:[{usage:`list`,blurb:`list built-ins, custom models, and aliases`},{usage:`add <name> --base-url <url> --model <id> [--env-key VAR]`,blurb:`connect a model (alias: setup)`},{usage:`update <name> [--base-url|--model|--env-key]`,blurb:`change a model in place`},{usage:`remove <name>`,blurb:`delete a custom model`},{usage:`disable <name>`,blurb:`turn off a model (built-in, custom, or alias)`},{usage:`enable <name>`,blurb:`re-enable a disabled model`},{usage:`alias <name> <spec>`,blurb:`name a spec, e.g. fast codex:luna`},{usage:`unalias <name>`,blurb:`remove an alias`}],description:["Manage the models coder can dispatch to. `add` connects any OpenAI-compatible",`endpoint (Ollama, vLLM, OpenRouter, ...) as the custom engine, alongside the`,"built-in codex/claude models. Name your own shortcuts with `alias`",`(e.g. fast -> codex:luna); disable/enable turns any model off and on.`]});export{t as commandModel};
|
package/dist/models-CdvmuaLv.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Et as e,M as t,O as n,S as r,_ as i,g as a,h as o,k as s,n as c,o as l,s as u,t as d,v as f,w as p,x as m,y as h}from"./config-D2FxHWwi.js";import{H as g,k as _,w as v}from"./dispatch-D3Dqxijf.js";import{t as y}from"./wire-B5rc5Av6.js";import b from"node:process";const x=new Set([`codex`,`claude`,`custom`]);async function S(e,t={}){let n=`key`in t?t.key:e.envKey?b.env[e.envKey]:void 0,r=t.fetch??fetch,i=o(e.baseUrl,`models`),a=null;for(let t of i)try{let i=await r(t,{headers:n?{Authorization:`Bearer ${n}`}:{},signal:AbortSignal.timeout(5e3)});if(!i.ok){a=i.status===404?{reachable:!0,modelListed:null,models:null,detail:`endpoint reachable (no model list to verify against)`}:{reachable:!1,modelListed:null,models:null,detail:`${t} -> HTTP ${i.status}`};continue}let o=await i.json().catch(()=>null),s=Array.isArray(o?.data)?o.data.map(e=>e.id).filter(e=>typeof e==`string`):null;if(!s)return{reachable:!0,modelListed:null,models:null,detail:`endpoint reachable`};if(!e.model)return{reachable:!0,modelListed:null,models:s,detail:`endpoint reachable; ${s.length} models listed`};let c=s.includes(e.model);return{reachable:!0,modelListed:c,models:s,detail:c?`endpoint reachable; model "${e.model}" listed`:`endpoint reachable, but "${e.model}" is not in its model list`}}catch(e){a={reachable:!1,modelListed:null,models:null,detail:`${t} unreachable (${e instanceof Error?e.message:String(e)})`}}return a}function C(e,n){t(e,e=>{e.models=e.models??{},n(e.models)})}function w(t,r){return t.workspace?s(e(r)):n()}function T(e){let t=e.models??{},n=Object.entries(t).filter(e=>f(e[1])),r=e=>`${e.provider}:${e.model}${e.effort?`:${e.effort}`:``}`,o=Object.entries(t).filter(e=>a(e[1])).map(([e,t])=>{let n=t.provider===`claude`?c:u,a=n[t.model]??t.model,o=i(e)?e:Object.entries(n).find(([,e])=>e===a)?.[0];return{name:e,spec:r(t),replaces:o,disabled:!!t.disabled}}),s=new Map;for(let e of o)e.replaces&&(e.name===e.replaces||!s.has(e.replaces))&&s.get(e.replaces)?.name!==e.replaces&&s.set(e.replaces,e);let l=e=>!!t[e]?.disabled,d=o.filter(e=>![...s.values()].some(t=>t.name===e.name));return{models:t,endpoints:n,providerRows:(e,t)=>[...Object.entries(t).map(([e,t])=>{let n=s.get(e);return n?{alias:n.name,spec:n.spec,overrides:e,disabled:n.disabled}:{alias:e,model:t,builtin:!0,disabled:l(e)}}),...d.filter(t=>t.spec.startsWith(`${e}:`)).map(({name:e,spec:t,disabled:n})=>({alias:e,spec:t,disabled:n}))],toggledSlugs:Object.entries(t).filter(([e,t])=>!f(t)&&!a(t)&&!i(e)).map(([e,t])=>({name:e,disabled:!!t.disabled})),disabled:l}}async function E(e){let{endpoints:t,providerRows:n,toggledSlugs:r}=T(h(e)),i=await Promise.all(t.map(async([e,t])=>({name:e,...t,probe:await S(t)})));return{codex:n(`codex`,u),claude:n(`claude`,c),custom:i,...r.length?{toggles:r}:{}}}async function D(e,t,n,r){let i=await y(t),a=i?.wireApi===`responses`;i?(t.wireApi=i.wireApi,t.baseUrl=i.baseUrl??t.baseUrl):delete t.wireApi,C(n,n=>{n[e]=t});let o=await S(t),s=v(_(r)),c=_(r);return{name:e,entry:t,file:n,probe:o,codex:c,install:s,nativeResponses:a,keyMissing:!!(t.envKey&&!b.env[t.envKey]),ready:o.reachable&&c.available}}const O=`Usage: coder model add <name> --base-url <url> --model <id> [--env-key VAR]`,k=`Usage: coder model update <name> [--base-url <url>] [--model <id>] [--env-key VAR]`,A=`Usage: coder model alias <name> <spec> (e.g. coder model alias fast codex:luna)`,j=`List them: coder model list`;function M(e,t,n){if(!e)throw new g(`invalid-option`,`Missing model name.`,{hint:n});if(!/^[a-z][a-z0-9-]*$/.test(e))throw new g(`invalid-option`,`Invalid model name "${e}". Use lowercase kebab-case (e.g. qwen-local).`);if(x.has(e)||t===`model`&&i(e))throw new g(`invalid-option`,`"${e}" is reserved; pick another name.`)}async function N(e,t,n){M(t,`model`,O);let r=h(e).models?.[t];if(r)throw new g(`invalid-option`,f(r)?`Custom model "${t}" already exists.`:`"${t}" is already configured as an ${a(r)?`alias`:`entry`}; remove it first.`,{hint:`Change it: coder model update ${t} [--base-url|--model|--env-key], or remove it first.`});if(!n.baseUrl||!n.model)throw new g(`invalid-option`,`Missing --base-url or --model.`,{hint:O});return D(t,{baseUrl:m(n.baseUrl),model:n.model,...n.envKey?{envKey:n.envKey}:{}},w({workspace:n.workspace},e),e)}async function P(e,t,n){let r=t?h(e).models?.[t]:void 0,i=r&&f(r)?r:void 0;if(!t||!i)throw new g(`invalid-option`,t?`No custom model named "${t}".`:`Missing model name.`,{hint:t?j:k});if(!n.baseUrl&&!n.model&&!n.envKey)throw new g(`invalid-option`,`Nothing to update: pass --base-url, --model, or --env-key.`,{hint:k});return D(t,{...i,...n.baseUrl?{baseUrl:m(n.baseUrl)}:{},...n.model?{model:n.model}:{},...n.envKey?{envKey:n.envKey}:{}},w({workspace:n.workspace},e),e)}function F(e,n,r={}){if(!n||!h(e).models?.[n])throw new g(`invalid-option`,n?`No custom model named "${n}".`:`Missing model name.`,{hint:n?j:`Usage: coder model remove <name>`});let i=w({workspace:r.workspace},e);return t(i,e=>p(e,n)),{removed:n,file:i}}function I(e,t,n,i={}){M(t,`alias`,A);let a=h(e),o=a.models?.[t];if(o&&f(o))throw new g(`invalid-option`,`"${t}" is a custom model name; pick another alias name.`);if(!n)throw new g(`invalid-option`,`Missing alias spec.`,{hint:A});let s;try{s=r(n,a)}catch(e){throw new g(`invalid-option`,e instanceof Error?e.message:String(e),{hint:A})}if(!s||!s.model)throw new g(`invalid-option`,`Alias spec "${n}" does not resolve to a model.`,{hint:A});if(s.engine===`custom`)throw new g(`invalid-option`,`"${n}" names a custom model, which is already dispatchable by name; aliases target codex/claude models.`);let p=n.split(`:`).some(e=>l.has(e.trim())||d.has(e.trim())),m=s.engine===`claude`?c:u,_={provider:s.engine,model:m[s.model]??s.model,...p&&s.effort?{effort:s.effort}:{}},v=w({workspace:i.workspace},e);return C(v,e=>{e[t]=_}),{alias:t,..._,file:v}}function L(e,n,r={}){let i=n?h(e).models?.[n]:void 0;if(!n||!i||!a(i))throw new g(`invalid-option`,n?`No alias named "${n}".`:`Missing alias name.`,{hint:n?j:`Usage: coder model unalias <name>`});let o=w({workspace:r.workspace},e);return t(o,e=>p(e,n)),{unaliased:n,file:o}}function R(e,t,n,r={}){if(!t)throw new g(`invalid-option`,`Missing model name.`,{hint:`Usage: coder model ${n?`disable`:`enable`} <name>`});let i=!!h(e).models?.[t],o=w({workspace:r.workspace},e);return C(o,e=>{let r=e[t];if(!r){n?e[t]={disabled:!0}:i&&(e[t]={disabled:!1});return}f(r)||a(r)?n?r.disabled=!0:delete r.disabled:n?r.disabled=!0:delete e[t]}),{name:t,disabled:n,file:o}}export{R as a,S as c,F as i,I as n,L as o,E as r,P as s,N as t};
|
package/dist/prompt-C--TI1qn.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{$ as t}from"./config-D2FxHWwi.js";import{H as n}from"./dispatch-D3Dqxijf.js";import{p as r,x as i,y as a}from"./output-BKeyLbvt.js";import o from"node:path";import s from"node:process";import c from"node:fs";import{spawn as l}from"node:child_process";var u=class extends n{authenticate;needs;constructor(e,t,n=``,r,i){super(`server`,t,{status:e,...r?{hint:r}:{}}),this.authenticate=n,this.needs=i}};function d(e){try{let t=new URL(e).hostname.toLowerCase();return t===`localhost`||t===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(t)}catch{return!1}}function f(e){let t;try{t=new URL(e)}catch{throw new n(`invalid-option`,`Give the server as a URL, e.g. https://agents.example.com.`)}if(t.protocol!==`https:`&&!(t.protocol===`http:`&&d(t.origin)))throw new n(`invalid-option`,`Coder servers require HTTPS unless they are loopback.`,{hint:`Use https://, or http://localhost for a local server.`});if(t.username||t.password||t.search||t.hash)throw new n(`invalid-option`,`The server must be an origin without credentials, query, or fragment.`);return t.toString().replace(/\/+$/,``)}const p=(e,t,n)=>`/admin/credentials/${encodeURIComponent(e)}${t}${n?`?workspace`:``}`,m=(e,t)=>{let n=new URLSearchParams;`cursor`in t&&typeof t.cursor==`string`&&n.set(`cursor`,t.cursor);for(let[e,r]of Object.entries(t))e!==`cursor`&&r!==void 0&&r!==!1&&r!==``&&n.set(e,r===!0?`1`:Array.isArray(r)?r.join(`,`):String(r));return`${e}?${n}`},h=new Set([`completed`,`failed`,`cancelled`]);var g=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,t,r={}){if(this.cookie=`cookie`in t,this.url=e?f(e):``,!this.cookie&&!this.url)throw new n(`invalid-option`,`Bearer clients need a server URL.`);this.token=`token`in t?t.token:void 0,this.fetchImpl=r.fetch??((e,t)=>fetch(e,t)),this.organization=r.organization,this.renewal=r.renewal,this.onError=r.onError}request(e,t={}){let n=this.read(e,t);return n.catch(()=>{}),n}async read(e,t){this.renewal&&this.renewal.expiresAt()-Date.now()<3e4&&(this.token=await this.renewal.renew());let r=await this.send(e,t);r.status===401&&this.renewal&&/invalid_token/.test(r.headers.get(`www-authenticate`)??``)&&(this.token=await this.renewal.renew(),r=await this.send(e,t));let i=await r.text().catch(()=>``),a={},o;try{i&&r.status!==204&&(a=JSON.parse(i))}catch{if(r.ok)throw new n(`server`,`The server answered ${r.status} with a body that is not JSON.`);this.cookie&&i&&(o=i)}if(!r.ok){let e=new u(r.status,a.error??a.message??o??`The server answered ${r.status}.`,r.headers.get(`www-authenticate`)??``,a.hint,a.needs===`key`?a.needs:void 0);throw this.onError?.(e),e}return a}send(e,t){let r=new Headers(t.headers);return t.body&&!r.has(`content-type`)&&r.set(`content-type`,`application/json`),this.cookie||r.set(`authorization`,`Bearer ${this.token}`),this.organization&&r.set(`x-coder-organization`,this.organization),this.fetchImpl(`${this.url}${e}`,{...t,headers:r,...this.cookie?{credentials:`same-origin`}:{}}).catch(e=>{throw e instanceof n||e.name===`AbortError`?e:new n(`server`,this.url?`No Coder server answers at ${this.url}: ${e.message}`:`The server did not answer. Check the connection and try again.`)})}post(e,t){return this.request(e,{method:`POST`,...t===void 0?{}:{body:JSON.stringify(t)}})}me(){return this.request(`/me`)}info(){return this.request(`/api/auth/capabilities`)}linkAccount(e){return this.post(`/connect`,{token:e})}signOut(){return this.post(`/api/auth/sign-out`,{})}agents={list:e=>this.request(m(`/admin/agents`,{...e,...e?.connect?{connect:1}:{}})),get:(e,t)=>this.request(m(`/admin/agents/${encodeURIComponent(e)}`,{...t?.versions===!1?{versions:0}:{},...t?.content===!1?{content:0}:{},...t?.handles?{handles:1}:{}})),versions:(e,t={})=>this.request(m(`/admin/agents/${encodeURIComponent(e)}/versions`,t)),remove:e=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:`DELETE`}),preview:(e,t)=>this.request(m(`/admin/agents/import`,{repo:e,ref:t})),version:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/versions/${t}`),put:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify(t)}).then(t=>({id:e,version:t.version,unchanged:t.unchanged,...t.apps?.length?{apps:t.apps}:{}})),settings:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/settings`,{method:`PATCH`,body:JSON.stringify(t)}),import:(e,t,n)=>this.post(`/admin/agents/import`,{repo:e,ref:t,...n?{agents:n}:{}})};composer(){return this.request(`/admin/composer`)}folders={list:()=>this.request(`/admin/folders`),check:e=>this.post(`/admin/folders/check`,{path:e}),clone:e=>this.post(`/admin/folders/clone`,{url:e}),pick:()=>this.post(`/admin/folders/pick`,{})};tasks={run:e=>this.post(`/admin/tasks`,e),list:e=>this.request(m(`/admin/tasks`,{limit:20,...e,...e?.archived?{archived:1}:{},...e?.summary?{summary:1}:{},...e?.counts?{counts:1}:{}})),get:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`),logs:(e,t=-1,n)=>this.request(m(`/admin/tasks/${encodeURIComponent(e)}/logs`,{after:t,limit:n})),stream:(e,t=-1,n)=>this.send(`/admin/tasks/${encodeURIComponent(e)}/stream?after=${t}`,{headers:{accept:`text/event-stream`},signal:n}),events:(e,t,n)=>this.send(m(`/admin/events`,{tasks:e}),{headers:{accept:`text/event-stream`,...t?{"last-event-id":t}:{}},signal:n}),cancel:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/cancel`),steer:(e,t,n={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/steer`,{text:t,...n}),ask:(e,t)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/ask`,{question:t}),approve:(e,t,n)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/approve`,{approvalId:t,decision:n}),archive:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/archive`),delete:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`,{method:`DELETE`}),create:e=>this.post(`/admin/tasks`,e),wait:async(e,t={})=>{let r=-1;for(;;){let i=await this.tasks.stream(e,r);if(!i.ok||!i.body){let t=await this.tasks.get(e);if(h.has(t.status))return t;if(i.status===401)continue;throw new n(`server`,`The task stream answered ${i.status}.`)}let a=!1;for await(let e of _(i.body))if(e.event===`log`){let n=JSON.parse(e.data);r=n.seq,t.onLog?.(n)}else e.event===`end`&&(a=!0);if(a)return this.tasks.get(e)}}};credentials={list:e=>this.request(m(`/admin/credentials`,e??{})),add:e=>this.post(`/admin/credentials`,e),remove:(e,{workspace:t}={})=>this.request(p(e,``,t),{method:`DELETE`}),setDefault:(e,{workspace:t}={})=>this.post(p(e,`/default`,t)),login:e=>this.post(`/admin/logins`,{engine:e}),loginStatus:e=>this.request(`/admin/logins/${encodeURIComponent(e)}`),loginCode:(e,t)=>this.post(`/admin/logins/${encodeURIComponent(e)}`,{code:t}),cancelLogin:e=>this.request(`/admin/logins/${encodeURIComponent(e)}`,{method:`DELETE`})};runners={list:()=>this.request(`/admin/runners`),add:e=>this.post(`/admin/runners`,e),pair:e=>this.post(`/admin/runners/pair`,e),update:(e,t)=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),test:e=>this.post(`/admin/runners/${encodeURIComponent(e)}/test`,{}),remove:e=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:`DELETE`})};integrations={list:e=>this.request(m(`/admin/integrations`,{agent:e}))};repositories={list:()=>this.request(`/admin/repositories`),refresh:()=>this.post(`/admin/repositories/refresh`,{})};engines={status:()=>this.request(`/admin/engines/status`),login:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/login`,{}),logout:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/logout`,{})};apps={list:e=>this.request(m(`/admin/apps`,{agent:e})),install:(e,t,n)=>this.post(m(`/admin/apps/${encodeURIComponent(e)}/install`,{back:t,link:n})),remove:e=>this.request(`/admin/apps/${encodeURIComponent(e)}`,{method:`DELETE`}),update:e=>this.post(`/admin/apps/${encodeURIComponent(e)}/update`,{}),drift:e=>this.request(`/admin/apps/${encodeURIComponent(e)}/drift`),create:(e,t)=>this.post(`/admin/apps/create/${encodeURIComponent(e)}`,t),start:(e,t)=>this.post(m(`/create/${encodeURIComponent(e)}`,t)),finish:(e,t)=>this.request(`/create/${encodeURIComponent(e)}/callback`,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t)})};operator={apps:()=>this.request(`/admin/operator/apps`),setUp:(e,t)=>this.post(`/admin/operator/apps/${encodeURIComponent(e)}`,t),audit:()=>this.request(`/admin/operator/audit`)};installations={list:(e,t={})=>this.request(m(`/admin/installations`,{agent:e,limit:t.limit,...t.active?{active:1}:{}}))};connections={list:e=>this.request(m(`/admin/connections`,{authorization:e})),add:e=>this.post(`/admin/connections`,e),update:(e,t)=>this.request(`/admin/connections/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),remove:e=>this.request(`/admin/connections/${encodeURIComponent(e)}`,{method:`DELETE`}),authorize:e=>this.post(`/admin/connections/${encodeURIComponent(e)}/authorize`)};config={get:()=>this.request(`/admin/config`),put:e=>this.request(`/admin/config`,{method:`PUT`,body:JSON.stringify(e)}),patch:e=>this.request(`/admin/config`,{method:`PATCH`,headers:{"content-type":`application/merge-patch+json`},body:JSON.stringify(e)})};models={list:()=>this.request(`/admin/models`),add:e=>this.post(`/admin/models`,e),probe:e=>this.post(`/admin/models/probe`,e),remove:e=>this.request(`/admin/models/${encodeURIComponent(e)}`,{method:`DELETE`}),alias:(e,t)=>this.post(`/admin/models/${encodeURIComponent(e)}/alias`,{spec:t}),enable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/enable`),disable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/disable`)};mcp={search:e=>this.request(m(`/admin/mcp-registry`,{q:e}))};flows={list:e=>this.request(m(`/admin/flows`,{repo:e})),run:(e,t)=>this.post(`/admin/flows/${encodeURIComponent(e)}/run`,t)};pulls={list:e=>this.request(m(`/admin/pulls`,{repo:e}))};review(e){return this.post(`/admin/review`,e)}usage(e={}){return this.request(m(`/admin/usage/totals`,{...e,since:e.since??Date.now()-6048e5}))}usageRows(e){return this.request(m(`/admin/usage`,{installation:e}))}};async function*_(e){let t=new TextDecoder,n=``;for await(let r of e){n+=t.decode(r,{stream:!0});let e;for(;(e=n.indexOf(`
|
|
2
|
-
|
|
3
|
-
`))>=0;){let t=n.slice(0,e);n=n.slice(e+2);let r=`message`,i,a=[];for(let e of t.split(`
|
|
4
|
-
`))e.startsWith(`event: `)?r=e.slice(7):e.startsWith(`data: `)?a.push(e.slice(6)):e.startsWith(`id: `)&&(i=e.slice(4));(a.length||i)&&(yield{event:r,data:a.join(`
|
|
5
|
-
`),...i?{id:i}:{}})}}}function v(){return t(`session.json`)}function y(){try{let e=JSON.parse(c.readFileSync(v(),`utf8`));return Object.fromEntries(Object.entries(e).filter(e=>!!(e[1].token&&e[1].refreshToken&&e[1].user)))}catch{return{}}}function b(){try{return JSON.parse(c.readFileSync(v(),`utf8`))}catch{return{}}}const x=e=>e.replace(/\/+$/,``),S=`https://coder.wular.ai`,C=e=>x((e===!0?void 0:e)??process.env.CODER_SERVER??`https://coder.wular.ai`);function w(e){return f(C(e))}function T(e){let t=x(e);return t===`https://coder.wular.ai`||!!b()[t]}function E(e){let t=b(),n=x(e),r=t[n]??{};k({...t,[n]:{...r,confirmedAt:Date.now()}})}function D(e){return y()[x(e)]}function O(e){let t=b(),n=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,{confirmedAt:t.confirmedAt??Date.now()}]));k(Object.fromEntries(Object.entries({...n,...e}).map(([e,n])=>[e,{...n,...t[e]?{confirmedAt:t[e].confirmedAt??Date.now()}:{}}])))}function k(e){let t=v();c.mkdirSync(o.dirname(t),{recursive:!0}),c.writeFileSync(t,`${JSON.stringify(e,null,2)}\n`,{mode:384}),c.chmodSync(t,384)}var A=e({PromptCancelled:()=>N,ask:()=>V,askSecret:()=>B,canPrompt:()=>P,openUrl:()=>H,pick:()=>R,pickDetailed:()=>z});function j(e){let t=a()??80;return Math.max(1,Math.ceil(i(e)/t))}const M={tab:[` `],up:[`\x1B[A`,`k`],down:[`\x1B[B`,`j`],enter:[`\r`,`
|
|
6
|
-
`],space:[` `],backspace:[``,`\b`],cancel:[``,`\x1B`]};var N=class extends Error{constructor(){super(`Cancelled.`)}};function P(){return!!(s.stdin.isTTY&&s.stdout.isTTY)}function F(e){let t=[];for(let n=0;n<e.length;)if(e[n]===`\x1B`&&e[n+1]===`[`){let r=n+2;for(;r<e.length&&!/[@-~]/.test(e[r]);)r++;t.push(e.slice(n,r+1)),n=r+1}else t.push(e[n]),n++;return t}const I=[];function L(){return I.length?Promise.resolve(I.shift()):new Promise(e=>{let t=n=>{s.stdin.off(`data`,t);let r=F(n.toString(`utf8`));I.push(...r.slice(1)),e(r[0])};s.stdin.on(`data`,t)})}async function R(e){return(await z(e)).values}async function z(e){let t=r,n=s.stdout,i=Math.max(3,e.window??8),a=new Set(e.selected??[]),o=Math.max(0,e.options.findIndex(e=>a.has(e.value))),c=0,l=``,u=0,d=``,f=new Map(e.options.flatMap(e=>e.input?.value?[[e.value,e.input.value]]:[])),p=!1,m=e.options.some(e=>e.input),h=()=>e.options.filter(e=>!l||e.value.toLowerCase().includes(l.toLowerCase())||(e.label??``).toLowerCase().includes(l.toLowerCase())),g=(r=!1)=>{u&&n.write(`\x1b[${u}A\x1b[J`);let s=h();o=Math.min(o,Math.max(0,s.length-1)),o<c&&(c=o),o>=c+i&&(c=o-i+1);let g=m?` · tab to edit`:``,_=p?`type to edit · enter when done · esc to discard`:e.multi?`↑↓ to move · space to toggle · type to filter${g} · enter to continue · esc to cancel`:`↑↓ to move · type to filter${g} · enter to choose · esc to cancel`,v=[`${t.bold(e.title)} ${t.dim(_)}`];if(r){let r=[...a].map(e=>f.get(e)?`${e} (${f.get(e)})`:e).join(`, `)||`-`;n.write(`${t.green(`✔`)} ${t.bold(e.title)} ${t.cyan(r)}\n\n`),u=0;return}e.hint&&v.push(` ${t.light(e.hint)}`),e.multi&&v.push(` ${t.light(`selected:`)} ${[...a].join(`, `)||t.dim(`none`)}`),l&&v.push(` ${t.light(`filter:`)} ${l}${t.dim(`▏`)}`),s.length||v.push(` ${t.dim(`no matches`)}`),c>0&&v.push(` ${t.dim(`↑ ${c} more`)}`);let y=Math.max(0,...s.map(e=>(e.label??e.value).length));s.slice(c,c+i).forEach((n,r)=>{let i=c+r===o,s=`${e.multi?a.has(n.value)?`◉`:`◯`:i?`●`:`○`} ${(n.label??n.value).padEnd(y)}${n.hint?` ${t.light(n.hint)}`:``}`,l=f.get(n.value)??``,u=n.input&&(l||i&&p)?` ${t.light(`${n.input.label}:`)} ${l}${i&&p?t.dim(`▏`):``}`:n.input&&i&&n.input.placeholder?` ${t.dim(n.input.placeholder)}`:``;v.push(`${i?t.cyan(`❯ `):` `}${i?t.cyan(s):s}${u}`)});let b=s.length-(c+i);b>0&&v.push(` ${t.dim(`↓ ${b} more`)}`),d&&v.push(` ${t.red(d)}`),n.write(`${v.join(`
|
|
7
|
-
`)}\n`),u=v.reduce((e,t)=>e+j(t),0)},_=s.stdin,v=_.isRaw;_.setRawMode(!0),_.resume(),n.write(`\x1B[?25l`);try{for(g();;){let t=await L();d=``;let n=h(),r=n[o];if(p&&r?.input){let e=f.get(r.value)??``;if(M.cancel.includes(t))f.delete(r.value),p=!1;else if(M.enter.includes(t)){let t=e?r.input.validate?.(e):void 0;t?d=t:p=!1}else M.backspace.includes(t)?f.set(r.value,e.slice(0,-1)):t.length===1&&t>=` `&&f.set(r.value,e+t);g();continue}if(M.cancel.includes(t))throw new N;if(M.tab.includes(t)&&r?.input){p=!0,e.multi&&a.add(r.value),g();continue}if(M.up.includes(t)&&!(t===`k`&&l))o=Math.max(0,o-1);else if(M.down.includes(t)&&!(t===`j`&&l))o=Math.min(n.length-1,o+1);else if(M.enter.includes(t))if(!e.multi&&n[o]&&(a.clear(),a.add(n[o].value)),e.required&&!a.size)d=`Pick at least one.`;else{g(!0);let e={};for(let[t,n]of f)n&&a.has(t)&&(e[t]=n);return{values:[...a],inputs:e}}else if(e.multi&&M.space.includes(t)&&n[o]){let e=n[o].value;a.has(e)?a.delete(e):a.add(e)}else M.backspace.includes(t)?l=l.slice(0,-1):t.length===1&&t>=` `&&t!==` `&&(l+=t,o=0,c=0);g()}}finally{n.write(`\x1B[?25h`),_.setRawMode(!!v),_.pause()}}async function B(e){let t=s.stdin;if(!t.isTTY){let e=``;for await(let n of t)e+=n.toString();return e.replace(/\r?\n$/,``)}s.stderr.write(`${r.bold(e)} `),t.setRawMode(!0),t.resume();let n=``;try{for(;;){let e=await L();if(M.cancel.includes(e))throw new N;if(M.enter.includes(e))return n;M.backspace.includes(e)?n=n.slice(0,-1):e.length===1&&e>=` `&&(n+=e)}}finally{t.setRawMode(!1),t.pause(),s.stderr.write(`
|
|
8
|
-
`)}}async function V(e,t=``,n,i){let a=r;i&&s.stdout.write(`${a.bold(e)}\n ${a.light(i)}\n`);let o=(await import(`node:readline/promises`)).createInterface({input:s.stdin,output:s.stdout}),c=i?j(e)+j(` ${i}`):0;try{for(;;){let r=i?` ${t?a.dim(`[${t}] `):``}`:`${a.bold(e)} ${t?a.dim(`[${t}] `):``}`,l=(await o.question(r)).trim()||t;c+=j(`${i?` `:`${e} `}${t?`[${t}] `:``}${l}`);let u=n?.(l);if(!u)return s.stdout.write(`\x1b[${c}A\x1b[J${a.green(`✔`)} ${a.bold(e)} ${a.cyan(l||`-`)}\n\n`),l;s.stdout.write(` ${a.red(u)}\n`),c+=j(` ${u}`)}}finally{o?.close()}}function H(e){let t=s.env.BROWSER;if(t===`none`||s.env.CI||s.env.NODE_ENV===`test`)return!1;let[n,r]=t?s.platform===`darwin`?[`open`,[`-a`,t,e]]:[t,[e]]:s.platform===`darwin`?[`open`,[e]]:s.platform===`win32`?[`cmd`,[`/c`,`start`,``,e]]:[`xdg-open`,[e]];try{return l(n,r,{detached:!0,stdio:`ignore`}).unref(),!0}catch{return!1}}export{d as _,R as a,S as c,D as d,y as f,g,O as h,H as i,T as l,w as m,V as n,z as o,v as p,P as r,A as s,N as t,E as u};
|
package/dist/push-vt81gcxD.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-ZUdhZnuW.js";import{p as n}from"./output-BKeyLbvt.js";import{i as r,n as i,s as a,t as o}from"./args-CxsMr9Un.js";import s from"node:process";const c=e({name:`agent push`,help:{usage:`coder agent push [id] [--server [url]] [--json] [--cwd <dir>]`,summary:`Upload one workspace agent, or every agent in .coder/agents when no id is given. The server creates a new immutable version only when its definition, prompt, or files changed.`,flags:[t],examples:[[`coder agent push helper`,`upload helper`]]},options:{...o,server:r,workspace:a,yes:i},args:1,run:async({options:e,args:[t],cwd:n})=>{let{agents:r}=await import(`./agent-ChnedLBv.js`).then(e=>e.t);return r.push(t,{...e,cwd:n,organization:e.workspace})},print:e=>{for(let t of e){s.stdout.write(t.unchanged?`Pushed ${n.bold(t.id)} unchanged (version ${t.version})\n`:`Pushed ${n.bold(t.id)} as version ${t.version}\n`);for(let e of t.apps??[])e.error?s.stderr.write(`${e.error}\n`):e.drift&&s.stderr.write(`${e.name} needs changes on ${e.integration}; see Update on the agent's Platforms tab.\n`)}}});export{c as commandAgentPush};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-ZUdhZnuW.js";import{p as n}from"./output-BKeyLbvt.js";import{t as r}from"./args-CxsMr9Un.js";import{askKey as i,openSignIn as a,serverOptions as o}from"./add-Ck_y_nKX.js";import s from"node:process";const c=e({name:`connection reconnect`,help:{usage:`coder connection reconnect <name> [--server [url]] [--json]`,summary:`Give a key connection its new key, read from stdin or a prompt, or sign in to an OAuth connection again in the browser. The credential an API key connection reads gets the new value, so every connection reading it rotates.`,flags:[t],examples:[[`pbpaste | coder connection reconnect groq`,`the new key from the clipboard`]]},options:{...r,...o},args:1,run:async({options:e,args:[t],cwd:n})=>{let{connection:r}=await import(`./connection-BCRJHTgp.js`).then(e=>e.n);return r.reconnect(t,{...e,cwd:n,askKey:i,onAuthorize:a})},print:e=>s.stdout.write(`Reconnected ${n.bold(e.id)}.\n`)});export{c as commandConnectionReconnect};
|
package/dist/refresh-yXJ13FAf.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Yt as e}from"./config-D2FxHWwi.js";import{O as t}from"./dispatch-D3Dqxijf.js";import{i as n}from"./cli-ZUdhZnuW.js";const r=n({name:`upgrade refresh`,options:{},run:()=>t(e())});export{r as commandRefreshUpdate};
|
package/dist/remote-oQs6My_3.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{H as t}from"./dispatch-D3Dqxijf.js";import{_ as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,p as u,u as d}from"./prompt-C--TI1qn.js";import{a as f}from"./load-CRmQB1LD.js";import{t as p}from"./integrations-D3OgJk6Y.js";import{_t as ee,a as m,c as h,f as g,h as _,i as v,l as te,m as ne,p as re,r as ie,s as ae,t as y,u as oe,vt as b}from"./build-CmtlB7pX.js";import x from"node:path";import S from"node:process";import C from"node:fs";import{execFile as w}from"node:child_process";import{createHash as T}from"node:crypto";import E from"node:fs/promises";import{promisify as D}from"node:util";import O from"node:http";const se={"**/":`(?:.*/)?`,"/**":`/.*`,"**":`.*`,"*":`[^/]*`,"?":`[^/]`};function ce(e){return e.split(/\r?\n/).flatMap(e=>{let t=e.trimEnd();if(!t||t.startsWith(`#`))return[];let n=t.startsWith(`!`);n&&(t=t.slice(1));let r=t.endsWith(`/`);r&&(t=t.slice(0,-1));let i=t.replace(/^\//,``).replace(/[.+^${}()|[\]\\]/g,`\\$&`).replace(/\*\*\/|\/\*\*$|\*\*|\*|\?/g,e=>se[e]),a=t.includes(`/`);return[{pattern:RegExp(a?`^${i}$`:`^(?:.*/)?${i}$`),negate:n,directory:r}]})}const k=(e,t,n)=>e.reduce((e,r)=>(!r.directory||n)&&r.pattern.test(t)?!r.negate:e,!1);async function A(e,t,n=``){let r=[];for(let i of await E.readdir(x.join(e,n),{withFileTypes:!0})){let a=n?`${n}/${i.name}`:i.name;i.isDirectory()&&!k(t,a,!0)?r.push(...await A(e,t,a)):i.isFile()&&!k(t,a,!1)&&r.push(a)}return r}async function le(e){return(await D(w)(`git`,[`-C`,e,`ls-files`,`--cached`,`--others`,`--exclude-standard`,`-z`,`--`,`.`],{maxBuffer:67108864}).catch(()=>void 0))?.stdout.split(`\0`).filter(Boolean)}async function ue(e){let t=await le(e)??await A(e,ce(await E.readFile(x.join(e,`.gitignore`),`utf8`).catch(()=>``))),n={};for(let r of t){if(r===`agent.json`||r===`system.md`)continue;let t=x.join(e,r);(await E.lstat(t).catch(()=>void 0))?.isFile()&&(n[r]=await E.readFile(t,`utf8`))}return n}var j=e({deviceSignIn:()=>R,hasBrowser:()=>H,logoutSession:()=>W,loopbackSignIn:()=>L,refreshSignIn:()=>z,revokeSignIn:()=>B,selectLoginOrganization:()=>V,sessions:()=>G,signIn:()=>U});const M=`openid profile email offline_access organizations:read`,N=e=>`${e}/.well-known/oauth-cli-client.json`;async function P(e,n){let r=new URL(e).origin,i=await fetch(`${r}/.well-known/oauth-protected-resource`).catch(n=>{throw new t(`login-failed`,`No Coder server answers at ${e}: ${n.message}`)}),a=await i.json().catch(()=>({})),o=Array.isArray(a.authorization_servers)?a.authorization_servers[0]:void 0;if(!i.ok||a.resource!==r||typeof o!=`string`)throw new t(`login-failed`,`${e} does not offer sign-in.`,{hint:`Sign-in needs a Postgres-backed server; see coder docs self-host`});if(n!==void 0&&o!==n)throw new t(`login-failed`,`The server's sign-in issuer has changed. Sign in again before using this session.`);return{config:await h(new URL(o),N(e),void 0,y(),new URL(o).protocol===`http:`?{execute:[ie]}:void 0).catch(e=>{throw new t(`login-failed`,`Wular Auth at ${o} did not answer: ${e.message}`)}),resource:r}}function F(e,n,r){let i=n.claims(),a=n.refresh_token??r?.refreshToken;if(!a)throw new t(`login-failed`,`Wular Auth returned no refresh token.`);return{token:n.access_token,refreshToken:a,expiresAt:Date.now()+(n.expires_in??600)*1e3,issuer:e.serverMetadata().issuer,user:i?{name:typeof i.name==`string`?i.name:``,email:typeof i.email==`string`?i.email:``}:r?.user??{name:``,email:``}}}const I=e=>new t(`login-failed`,e instanceof b||e instanceof ee?e.error===`access_denied`?`Sign-in was denied in the browser.`:e.error_description??e.error:e instanceof Error?e.message:String(e));async function L(e,n){let{config:r,resource:i}=await P(e),a=g(),o=re(),s=O.createServer();await new Promise(e=>s.listen(0,`127.0.0.1`,e));let{port:c}=s.address(),l=`http://127.0.0.1:${c}/callback`;try{let e=new Promise((e,n)=>{let r=setTimeout(()=>n(new t(`login-failed`,`Sign-in timed out.`)),3e5);s.on(`request`,(t,n)=>{let i=new URL(t.url??`/`,l);if(i.pathname!==`/callback`||i.searchParams.get(`state`)!==o){n.writeHead(404).end();return}n.writeHead(200,{"content-type":`text/plain; charset=utf-8`}).end(i.searchParams.has(`error`)?`Sign-in failed. You can close this tab and return to the terminal.`:`Signed in. You can close this tab and return to the terminal.`),clearTimeout(r),e(i)})});return n(m(r,{redirect_uri:l,scope:M,resource:i,code_challenge:await ae(a),code_challenge_method:`S256`,state:o}).href),F(r,await v(r,await e,{pkceCodeVerifier:a,expectedState:o},{resource:i}).catch(e=>{throw I(e)}))}finally{s.close(),s.closeAllConnections()}}async function R(e,t){let{config:n,resource:r}=await P(e);try{let e=await te(n,{scope:M,resource:r});return t(e.user_code,e.verification_uri_complete??e.verification_uri),F(n,await oe(n,e,{resource:r}))}catch(e){throw I(e)}}async function z(e,n){let{config:r,resource:i}=await P(e,n.issuer);try{return F(r,await ne(r,n.refreshToken,{resource:i}),n)}catch(e){if(e instanceof b&&(e.error===`invalid_grant`||e.error===`invalid_client`))return;throw new t(`server`,`Wular Auth did not refresh the session: ${e instanceof Error?e.message:String(e)}`)}}async function B(e,t){let{config:n}=await P(e,t.issuer);n.serverMetadata().revocation_endpoint&&await _(n,t.refreshToken,{token_type_hint:`refresh_token`})}async function V(e,n,r){if(!e.length)throw new t(`login-failed`,`This account belongs to no workspace.`);if(n){let r=e.find(e=>e.slug===n);if(!r)throw new t(`login-failed`,`You are not a member of workspace "${n}".`);return r}if(e.length<=1)return e[0];if(!r)throw new t(`login-failed`,`Choose a workspace for this server.`,{hint:`Pass --workspace <slug>.`});let i=await r(e);return e.find(e=>e.slug===i)}const H=()=>!S.env.SSH_CONNECTION&&(S.platform!==`linux`||!!(S.env.DISPLAY||S.env.WAYLAND_DISPLAY));async function U(e,n={}){let r=n.device?await R(e,n.onCode??(()=>{})):await L(e,n.open??s),i=await fetch(`${e}/me`,{headers:{authorization:`Bearer ${r.token}`}}).catch(n=>{throw new t(`login-failed`,`No Coder server answers at ${e}: ${n.message}`)}),a=await i.json().catch(()=>({}));if(!i.ok)throw new t(`login-failed`,`Signed in, but the server refused the token.`);let o=await V(a.organizations??[],n.organization,n.chooseOrganization);return{...r,...o?{organization:o}:{},at:Date.now()}}async function W(e){let n=i(),r=n[e];if(!r)throw new t(`login-failed`,`Not signed in to ${e}.`);return await B(e,r).catch(()=>void 0),delete n[e],o(n),{ok:!0,server:e}}const G={async login(e={}){let t=K(e),n=await U(t,e);return e.save!==!1&&o({...i(),[t]:n}),{...n,server:t}},logout:(e={})=>W(K(e)),status:()=>Object.fromEntries(Object.entries(i()).map(([e,t])=>[e,{user:t.user,organization:t.organization,at:t.at}]))};function de(e,t){let n=t,r;return{expiresAt:()=>n.expiresAt,async renew(){return r||=fe(e,n).finally(()=>{r=void 0}),n=await r,n.token}}}async function fe(e,t){let n=T(`sha256`).update(e).digest(`hex`),r=`${u()}.${n}.lock`;for(C.mkdirSync(x.dirname(r),{recursive:!0});;)try{let e=C.openSync(r,`wx`,384);try{C.writeFileSync(e,String(process.pid))}catch(e){throw C.unlinkSync(r),e}finally{C.closeSync(e)}break}catch(e){if(e.code!==`EEXIST`)throw e;try{let e=Number(C.readFileSync(r,`utf8`));e?process.kill(e,0):Date.now()-C.statSync(r).mtimeMs>3e4&&C.unlinkSync(r)}catch(e){if(e.code===`ESRCH`)try{C.unlinkSync(r)}catch{}}await new Promise(e=>setTimeout(e,25))}try{return await pe(e,t)}finally{C.unlinkSync(r)}}async function pe(e,n){let r=e=>e&&e.refreshToken!==n.refreshToken?e:void 0,a=r(i()[e]);if(a&&a.expiresAt>n.expiresAt)return a;let s=await z(e,n),c=i();if(s){let t={...n,...s};return o({...c,[e]:t}),t}let l=r(c[e]);if(l)return l;throw delete c[e],o(c),new t(`login-failed`,`Signed out of ${e}.`,{hint:`Sign in again: coder auth login`})}var me=e({addCredential:()=>Q,coderClient:()=>J,connect:()=>q,loginCredential:()=>$,pushAgents:()=>Y,serverFor:()=>K});function K(e={}){let n=l(e.server);if(!c(n)){if(!e.yes)throw new t(`invalid-option`,`First use of Coder server ${new URL(n).origin} needs confirmation.`,{hint:`Inspect the origin, then pass yes: true.`});d(n)}return n}function q(e={}){let t=K(e);return J(t,{token:e.token,missingHint:`auth.login({ server: '${t}' })`,organization:e.organization})}function J(e,{token:i,missingHint:o,organization:s}={}){let c=l(e),u=r(c),d=u?.token,f=S.env.ADMIN_TOKEN,p=i??d??f;if(p&&p===f&&!n(c))throw new t(`invalid-option`,`ADMIN_TOKEN cannot be sent to a non-loopback server.`);if(!p)throw new t(`login-failed`,`Not signed in to ${c}.`,{...o?{hint:o}:{}});return new a(c,{token:p},{organization:s??u?.organization?.slug,renewal:u&&p===d?de(c,u):void 0})}async function Y(e,n,r){let i=(await f(n,p)).filter(e=>!e.builtin),a=r?i.filter(e=>e.id===r):i;if(r&&!a.length)throw new t(`invalid-option`,`No workspace agent named "${r}".`);let o=[];for(let t of a)o.push(await e.agents.put(t.id,{definition:t.definition,systemPrompt:await E.readFile(x.join(t.dir,`system.md`),`utf8`).catch(()=>``),files:await ue(t.dir),name:t.name,description:t.definition.description}));return o}const he=/^[A-Za-z_][A-Za-z0-9_]*$/,X=[`claude`,`codex`,`custom`],Z=(e,n)=>new t(`invalid-option`,e,n?{hint:n}:{}),ge=()=>new Promise(e=>setTimeout(e,1e3));async function _e(){let e=``;for await(let t of S.stdin)e+=t.toString();return e.replace(/\r?\n$/,``)}async function Q(e,t){let n=Array.isArray(t.env)?t.env:Object.keys(t.env);for(let e of n)if(!he.test(e))throw Z(`Invalid environment variable name ${JSON.stringify(e)}.`);if(!t.engine)throw Z(`Missing required --engine.`,`Use claude, codex, or custom`);let r=X.find(e=>e===t.engine);if(!r)throw Z(`Invalid --engine value.`,`Use claude, codex, or custom`);if(!n.length)throw Z(`At least one --env NAME is required.`);if(t.value!==void 0&&n.length!==1)throw Z(`--value requires exactly one --env NAME.`);let i=Array.isArray(t.env)?Object.fromEntries(await Promise.all(n.map(async e=>{let n=t.value===`-`?await _e():t.value??S.env[e];if(!n)throw Z(`Environment variable ${e} is not set.`);return[e,n]}))):t.env;return q(t).credentials.add({...e?{label:e}:{},env:i,engine:r,workspace:t.workspace,noCheck:t.noCheck,default:t.default})}async function $(e,t={}){if(e!==`claude`&&e!==`codex`)throw Z(`Name the engine to sign in to.`,`Usage: coder credentials login <claude|codex>`);let n=q(t).credentials,r=await n.login(e);t.onStart?.(()=>n.cancelLogin(r.id));let i=async e=>{for(;!e(r.state);)await ge(),r=await n.loginStatus(r.id)};return await i(e=>e!==`starting`),t.onOpen?.(r),e===`claude`&&r.state===`open`&&t.code&&await n.loginCode(r.id,await t.code()),await i(e=>e===`done`||e===`failed`),r}export{me as a,j as c,Y as i,q as n,K as o,$ as r,G as s,Q as t};
|
package/dist/remove-5iAM2aTO.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{H as e}from"./dispatch-D3Dqxijf.js";import{i as t,t as n}from"./cli-ZUdhZnuW.js";import{p as r}from"./output-BKeyLbvt.js";import{n as i,o as a}from"./args-CxsMr9Un.js";import o from"node:process";const s={json:i,server:a,workspace:i,yes:i},c=()=>new e(`invalid-option`,`Missing credential label.`),l=t({name:`credentials remove`,globalFlags:{cwd:!1},help:{usage:`coder credentials remove <label> [--workspace] [--server [url]] [--json]`,flags:[[`--workspace`,`the workspace credential of that label`],n]},options:s,args:1,async run({options:e,args:[t]}){let{connect:n}=await import(`./remote-oQs6My_3.js`).then(e=>e.a);if(!t)throw c();return n(e).credentials.remove(t,e)},print:(e,{args:[t]})=>o.stdout.write(`Removed ${r.bold(t)}.\n`)});export{l as commandCredentialsRemove,s as credentialOptions,c as missingLabel};
|
package/dist/remove-BZCA-gdU.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{H as e}from"./dispatch-D3Dqxijf.js";import{i as t,t as n}from"./cli-ZUdhZnuW.js";import{p as r}from"./output-BKeyLbvt.js";import{n as i,o as a}from"./args-CxsMr9Un.js";import o from"node:process";const s={json:i,server:a,yes:i},c=t({name:`runner remove`,globalFlags:{cwd:!1},help:{usage:`coder runner remove <id> [--server [url]] [--json]`,flags:[n]},options:s,args:1,async run({options:t,args:[n]}){let{removeRunner:r}=await import(`./runner-DME7ohjt.js`).then(e=>e.a);if(!n)throw new e(`invalid-option`,`Missing runner id.`);return r(n,t)},print:(e,{args:[t]})=>o.stdout.write(`Removed ${r.bold(t)}.\n`)});export{c as commandRunnerRemove,s as runnerOptions};
|
package/dist/remove-BwhcR6ig.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-ZUdhZnuW.js";import{p as n}from"./output-BKeyLbvt.js";import{t as r}from"./args-CxsMr9Un.js";import{serverOptions as i}from"./add-Ck_y_nKX.js";import a from"node:process";const o=e({name:`connection remove`,helpName:`connection rm`,help:{usage:`coder connection rm <name> [--server [url]] [--json]`,summary:`Remove a connection. The credential an API key connection reads stays.`,flags:[t]},options:{...r,...i},args:1,run:async({options:e,args:[t],cwd:n})=>{let{connection:r}=await import(`./connection-BCRJHTgp.js`).then(e=>e.n);return r.remove(t,{...e,cwd:n})},print:e=>a.stdout.write(`Removed ${n.bold(e.id)}.\n`)});export{o as commandConnectionRemove};
|
package/dist/rename-lyssPQfD.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{H as e}from"./dispatch-D3Dqxijf.js";import{i as t,t as n}from"./cli-ZUdhZnuW.js";import{p as r}from"./output-BKeyLbvt.js";import{runnerOptions as i}from"./remove-BZCA-gdU.js";import a from"node:process";const o=t({name:`runner rename`,globalFlags:{cwd:!1},help:{usage:`coder runner rename <id> <name> [--server [url]] [--json]`,flags:[n]},options:i,args:2,async run({options:t,args:[n,r]}){let{updateRunner:i}=await import(`./runner-DME7ohjt.js`).then(e=>e.a);if(!n||!r)throw new e(`invalid-option`,`Usage: coder runner rename <id> <name>`);return i(n,{name:r},t)},print:(e,{args:[t]})=>a.stdout.write(`Renamed ${t} to ${r.bold(e.name)}.\n`)});export{o as commandRunnerRename};
|
package/dist/result-jeiRJTzA.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{K as t,Nt as n,Tn as r,nt as i}from"./config-D2FxHWwi.js";import{i as a,r as o}from"./cli-ZUdhZnuW.js";import{S as s,a as c,d as l,m as u,o as d,p as f,s as p,u as m,x as h,y as g}from"./output-BKeyLbvt.js";import{i as _,l as v,n as y,s as b,t as x}from"./args-CxsMr9Un.js";import S from"node:process";var C=e({LogRenderer:()=>z,OUTPUT_PREVIEW_CHARS:()=>500,commandResult:()=>q,finalMessageLine:()=>T,finishedHints:()=>U,printOutcome:()=>W,promptBlock:()=>D,replyOf:()=>H,statusStyle:()=>B,taskHeaderLines:()=>A,taskSummaryLines:()=>M,trimStep:()=>N});const w={server:_,workspace:b,yes:y};function T(e,t,n,r=f){let i=e?.error?.message??t;return e?.finalMessage||(i?`${r.red(`error:`)} ${i}`:n)}const E=1e3;function D(e,t=f,{truncate:n=!0}={}){let r=e=>e.split(`
|
|
2
|
-
`).map(e=>` ${t.dim(e)}`);return!n||e.length<=E?[t.dim(`prompt:`),...r(e)]:[t.dim(`prompt:`),...r(e.slice(0,500).trimEnd()),t.light(` … <${e.length-E} chars trimmed> …`),...r(e.slice(-500).trimStart())]}function O(e,t=f){let n=[];e.permissions&&n.push([`perms`,e.permissions]),e.cwd&&n.push([`cwd`,e.cwd]);for(let t of e.addDirs??[])n.push([`add-dir`,t]);return n.map(([e,n])=>`${t.dim(e.padEnd(8))} ${n}`)}function k(e,n){if(n)return e.createdAt?`started ${c(t(e.createdAt))} ago`:``;let r=e.createdAt&&e.completedAt?Date.parse(e.completedAt)-Date.parse(e.createdAt):null;return[e.completedAt?`finished ${c(t(e.completedAt))} ago`:``,r!==null&&r>=0?`took ${c(r)}`:``].filter(Boolean).join(` · `)}function A(e,{status:t,tokens:r,tokenModel:a,files:o,live:s=!1,style:c=f}){let d=k(e,n.includes(e.status)||t===`waiting-approval`),p=e=>c.dim(e.padEnd(8));return[`${p(`task`)} ${c.cyan(e.id)}`,...e.name?[`${p(`name`)} ${e.name}`]:[],`${p(`status`)} ${u(t)}${d?` ${c.dim(`(${d})`)}`:``}`,`${p(`engine`)} ${i(e)}`,...O(e,c),...r?[`${p(`tokens`)} ${s?l(r):m(r,a??e.model)}${s?c.dim(` (so far)`):``}`]:[],...j(o,p,c)]}const j=(e,t,n)=>e?.length?[`${t(`files`)} ${e.join(`, `)} ${n.dim(`(shell edits not included)`)}`]:[];function M(e,{tokens:t,tokenModel:n,files:r,statusChanged:i=!0,style:a=f}){let o=e=>a.dim(e.padEnd(8)),s=e.createdAt&&e.completedAt?Date.parse(e.completedAt)-Date.parse(e.createdAt):null;return[...i?[`${o(`status`)} ${u(e.status)}${s!==null&&s>=0?` ${a.dim(`(took ${c(s)})`)}`:``}`]:[],...t?[`${o(`tokens`)} ${m(t,n??e.model)}`]:[],...j(r,o,a)]}function N(e,t=300,{plain:n=!1,style:r=f}={}){if(e.length<=t)return e;let i=`<${e.length-t} more chars>`;return`${e.slice(0,t)} ${n?i:r.dim(i)}`}const P=` `.repeat(8),F={assistant:`●`,reasoning:`✻`,tool:`→`,"tool-result":` `,usage:`·`,status:`·`,info:`·`,error:`✘`,steer:`⚑`};function I(e,t){let n=/^\x1b\[[0-9;]*m/.exec(t(``))?.[0];return t(n&&e.includes(L)?e.split(L).join(`${L}${n}`):e)}const L=`\x1B[0m`;function R(e,t,n,r,i=r.dim){if(!e)return``;let a=(e.length>t?e.slice(0,t):e).split(`
|
|
3
|
-
`).map(e=>I(e,i));return e.length>t&&(a[a.length-1]+=` ${r.light(`<${e.length-t} more chars>`)}`),a.length>n?[...a.slice(0,n),r.light(`… +${a.length-n} more lines`)].join(`
|
|
4
|
-
`):a.join(`
|
|
5
|
-
`)}var z=class e{opts;presentation;separated=!1;entryAt=null;lastTool;lastCall=``;lastCallSeq=-1;seq=0;view;style;static async create(t={}){return new e(t,await import(`./log-view-DB4nXHXO.js`).then(e=>e.n))}constructor(e,t){this.opts=e,this.presentation=t,this.view=new t.LogView(e.cwd,{keepAnsi:!0}),this.style=e.style??f}get lastAssistantMessage(){return this.view.lastAssistantMessage}render(e){let t=Date.parse(String(e.at??``));this.entryAt=Number.isFinite(t)?t:null;let n=this.seq++,[r]=this.view.reduce({seq:n,at:t,level:`out`,line:``,entry:e});if(!r)return[];this.separated=r.separated&&r.seq===n;let i=this.style,a=r.sourceKind,o=r.title,s=this.opts.trim??500,l=this.opts.explicitTrim||s===1/0?1/0:6;if(r.kind===`usage`)return this.compose(a,i.dim(o),!1);if(r.kind===`approval`&&r.state){let t=e=>this.presentation.stripCwd(String(e??``),this.opts.cwd),i=t(e.summary),s=i.slice(i.indexOf(`: `)+2),l=i&&!this.lastCall.includes(s)?` · ${i}`:``,u=r.result&&r.result.durationMs>=1e3?` · ${c(r.result.durationMs)}`:``,d=r.seq===n?`${o} ${r.state}${l}`:`${r.state}${u}`;return this.compose(a,this.approval(d,t(e.reason??e.message)),!1)}if(r.kind===`approval`)return this.compose(a,this.approval(o,r.detail??``),!1);if(r.kind===`assistant`)return this.compose(a,o,!0);if(r.kind===`steer`)return this.compose(a,i.yellow(o),!0);if(r.kind===`error`)return this.compose(a,i.red(o),!0);if(r.kind===`reasoning`){let e=Math.round((r.durationMs??0)/1e3),t=e>=1?`thought ${c(e*1e3)} · `:``,n=l===1/0?`${i.dim(t)}${R(o,s,1/0,i)}`:this.clip(`${t}${o.split(`
|
|
6
|
-
`)[0]??``}`,3,i.dim);return this.compose(a,n,!1)}if(r.kind===`tool`&&r.seq===n)return this.lastTool=r.tool,this.lastCall=o,this.lastCallSeq=r.seq,this.compose(a,this.clip(o.replace(/\s*\n\s*/g,` `),2,i.light),!1);if(r.kind===`tool`||r.kind===`tool-result`){let t=r.kind===`tool`&&(e.callId||e.callMessage)&&(r.seq!==this.lastCallSeq||o!==this.lastCall)?this.compose(`tool`,this.clip(o.replace(/\s*\n\s*/g,` `),2,i.light),!1):[];t.length&&(this.lastTool=r.tool,this.lastCall=o,this.lastCallSeq=r.seq);let n=r.result??{ok:r.tone!==`error`,exitCode:r.exitCode,durationMs:r.durationMs??0,detail:o},a=[r.kind===`tool-result`&&e.callId?i.dim(`from ${r.tool||`tool`} (${String(e.callId)})`):r.tool&&r.tool!==this.lastTool?i.dim(`from ${r.tool}`):``,n.ok?``:i.red(n.exitCode===void 0?`failed`:`exit ${n.exitCode}`),n.durationMs>=3e3?i.dim(c(n.durationMs)):``].filter(Boolean),u=R(n.detail,s,l,i),d=[...a.length?[a.join(i.dim(` · `))]:[],...u?[u]:[]];return[...t,...d.length?this.compose(`tool-result`,d.join(`
|
|
7
|
-
`),!1):[]]}return this.compose(a,this.clip(o,3,i.dim),!1)}approval(e,t){let n=this.style,r=this.opts.width?this.opts.width-P.length:1/0,i=`${e}${t?`. ${t}`:``}`;return!t||h(i)<=r?`${n.light(e)}${t?n.dim(`. ${t}`):``}`:[this.clip(e,1,n.light),this.clip(t,2,n.dim)].join(`
|
|
8
|
-
`)}clip(e,t,n){let r=this.opts.trim??500;if(this.opts.explicitTrim||r===1/0)return R(e,r,1/0,this.style,n);let i=this.opts.width;return i?s(e,Math.max(i-P.length,24),t).map(e=>I(e,n)).join(`
|
|
9
|
-
`):n(e)}compose(e,t,n){let r=this.separated?[``]:[],i=F[e]??(this.presentation.isApproval(e)?`⚑`:`·`),[a=``,...o]=t.split(`
|
|
10
|
-
`);return[...r,`${this.gutter(e)}${this.style.dim(i)} ${a}`,...o.map(e=>n?e:`${P}${e}`)]}gutter(e){let t=` `.repeat(6);return e===`tool-result`||!this.opts.startedAt||this.entryAt===null?t:`${this.style.dim(d(this.entryAt-this.opts.startedAt).padStart(5))} `}};const B=(e,t)=>e===`completed`?t.green(e):e===`failed`?t.red(e):e===`running`?t.yellow(e):t.dim(e);function V(e){return e.startedAt===void 0?``:c((e.finishedAt??Date.now())-e.startedAt)}function H(e){let t=(e.result?.output??``).trim().split(`
|
|
11
|
-
`);for(let e=t.length-1;e>=0;--e){let n=t[e].trim();if(n.startsWith(`{`))try{let e=JSON.parse(n).reply;return typeof e==`string`?e:void 0}catch{return}}}function U(e,t,n=!1){return p([`Continue on the same task: coder task steer ${e} "<follow-up>"${n?` --server`:``}`],t)}function W(e,t){S.stdout.write(`${t.bold(e.task.id)} ${B(e.status,t)}${e.error?` ${t.red(e.error)}`:``}${V(e)?` ${t.dim(`took ${V(e)}`)}`:``}\n`),e.credential&&S.stdout.write(`${t.dim(`credential`)} ${e.credential}\n`);let n=H(e);n&&S.stdout.write(`\n${t.bold(`Reply`)}\n${n.trim()}\n`),[`completed`,`failed`,`cancelled`].includes(e.status)&&S.stdout.write(`\n${U(e.task.id,t,!0)}\n`)}function G(e,t=!1){let{task:n,steps:r,result:i}=e;return{taskId:n.id,name:n.name??null,prompt:n.prompt??null,system:n.system??null,status:e.status,engine:n.engine,model:n.model??null,effort:n.effort??null,permissions:n.permissions??null,cwd:n.cwd??null,addDirs:n.addDirs??[],createdAt:n.createdAt??null,completedAt:n.completedAt??null,...e.idleMs===void 0?{}:{idleMs:e.idleMs,lastActivityAt:e.lastActivityAt??null,stalled:e.stalled},pendingApprovals:e.pendingApprovals,...r.length?{steps:r}:{},turnCount:e.turns.length,...t?{turns:e.turns}:{},result:i}}async function K(e,t,i={}){let{task:a,steps:o,result:s,turns:l,pendingApprovals:u}=e,d=f,m=n.includes(a.status),h=A(a,{status:e.status,tokens:s?.tokens??e.liveTokens??null,tokenModel:s?.model,files:s?.touchedFiles?.map(e=>r(a.cwd??t,e)),live:!s?.tokens&&!!e.liveTokens,style:d});if(a.prompt&&h.push(...D(a.prompt,d)),u.length){h.push(``,d.dim(`pending approvals:`));for(let e of u)h.push(` ${d.cyan(e.id)} ${e.summary}`),e.cwd&&h.push(` ${d.dim(`runs in ${e.cwd}`)}`),h.push(` ${d.bold(`coder task approve ${a.id} ${e.id}`)} ${d.dim(`(--deny to reject)`)}`)}if(o.length){h.push(``,d.dim(`steps:`));let e=await z.create({cwd:a.cwd??t,startedAt:Date.parse(a.createdAt??``)||void 0,width:g(),style:d}),n=s?.finalMessage&&String(o.at(-1)?.message??``).trim()===String(s.finalMessage).trim()?o.slice(0,-1):o;for(let t of n)h.push(...e.render(t))}if(h.push(``),i.turns&&l.length)l.forEach((e,t)=>{t&&h.push(``),h.push(d.dim(`Turn ${t+1} of ${l.length}. ${N(String(e.prompt??``))}`)),h.push(String(e.finalMessage||d.dim(`(no final message)`)))});else if(s)h.push(T({...s,error:s.error??void 0},a.error,`(no final message)`,d)),l.length>1&&h.push(d.dim(`Turn ${l.length} of ${l.length}. All answers are in coder task result ${a.id} --turns.`));else if(m){let{lastLog:t}=e;h.push(d.dim(e.stalled?`Result pending. No progress for ${c(e.idleMs??0)}. The task may be stalled.${t?` Last: ${N(t.message??t.kind??``)}`:``}`:`Result pending. The task is still running.`))}else h.push(d.dim(`(no result)`));if(m||h.push(``,U(a.id,d)),m&&!i.wait){let t=[`Wait in its own background shell, one per task; do not poll: coder task result ${a.id} --wait`,`Follow live: coder task watch ${a.id}`];e.stalled&&t.push(`Check the transcript: coder task result ${a.id} --tail all`),h.push(``,p(t,d))}S.stdout.write(`${h.join(`
|
|
12
|
-
`)}\n`)}const q=a({name:`task result`,help:{usage:`coder task result [task-id] [--server [url]]`,summary:`Show a task's status and its final answer (result pending while it runs), plus
|
|
13
|
-
any pending approvals. --wait blocks until it finishes, then prints. --tail <n>
|
|
14
|
-
includes the last n progress-log steps (--tail all for the whole transcript).
|
|
15
|
-
Defaults to the most recent task. Shortcut: \`coder result\`.
|
|
16
|
-
|
|
17
|
-
Run each --wait in its own background shell, one per task. Never wait on several
|
|
18
|
-
tasks in one call, or their approvals and answers never reach you one by one.`,flags:[[`--wait`,`block until the task finishes or needs an approval, then print`],[`--turns`,`every turn's answer (a steered task accretes turns)`],[`--tail <n|all>`,`include the last n progress-log steps (default: 0, final result only)`],o],exitCodes:[[`0`,`The task completed successfully.`],[`1`,`The task failed or was cancelled.`],[`4`,`An approval is pending; answer it, then run --wait again.`]],examples:[[`coder result <task-id> --wait`,`block until the task finishes, print the answer`],[`coder result <task-id> --turns`,`every turn's answer for a steered task`]]},options:{...x,tail:v,wait:y,turns:y,...w},args:1,run:async({options:e,args:[t]})=>{let{tasks:n}=await import(`./task-IoBYe7ok.js`).then(e=>e.t);return n.result(t,{...e,organization:e.workspace,onWaiting:e=>S.stderr.write(`${f.dim(`[coder] waiting for task ${e} to finish...`)}\n`)})},json:(e,{options:t})=>`attempts`in e?e:G(e,t.turns),print:(e,{options:t,cwd:n})=>`attempts`in e?W(e,f):K(e,n,t),exit:(e,{options:t})=>t.wait&&!(`attempts`in e)?e.task.status===`completed`?0:1:void 0});export{D as a,B as c,N as d,W as i,A as l,T as n,H as o,U as r,C as s,z as t,M as u};
|