@wular/coder 0.4.8 → 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-DcR15CL7.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-B2Ikhp7u.js → agent-DHpMqHVi.js} +1 -1
- package/dist/alias-CScCzXhS.js +2 -0
- package/dist/{app-snjvOKJA.js → app-wHQJHu6N.js} +1 -1
- package/dist/approvals-BIGQBbCM.js +2 -0
- package/dist/{approve-DAuvq9Eq.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-BhfGdyuC.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-CQPndo-u.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 +1731 -1566
- 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.a4ec4bce860e3e71.js → page.806027fde54ab723.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.4c818ef18a084013.js → page.bd04d2d3eba00676.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.f8373428f20c270b.js → loading.e348ec45e9ed951b.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.b0946ff7951ecc11.js → notify.857748e260c691e3.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.55eef4b0e71415d9.js → page.25153459858542f9.js} +13 -14
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/sign-out.ff98573f362d76f3.js +20 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/agent-menu.2ed0e66d131fc148.js +13 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.3a3c550ff68aeb11.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.7a4cfa5c917e5db9.js → connect-apps.d1e67db29b12dc0a.js} +9 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.fd26a5414b0a06db.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.b2bed855b68a77b2.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.95b8bf3c438955c2.js → layout.05210ffa6038791f.js} +35 -37
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.39c596735b108f80.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.1401a08ea4e27c01.js → page.19fe116c0f802cb1.js} +87 -36
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.2d6e75e5923f73f2.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.848ccc3a609385a9.js → page.f87fd8eb66f73af0.js} +50 -48
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.4b14873a20ebd56c.js → platform-actions.b6c3d3184e167d0b.js} +103 -93
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.dd8f3cbc00876ebd.js → agent-settings-form.28220621573033d7.js} +54 -82
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.80f597fd04fc4a97.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.35d01036ce840ff9.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.ff54c7100f781fbc.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.e5a405c518c1d8e6.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.55aa8df7712e6820.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.67c3489c62b661da.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.0c20e2100b321316.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.bedcc1aba372fbce.js +23 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.7132b3ef68d33cc4.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.19e913c8cb22db21.js → agent-pills.f987c12bcbc5c850.js} +18 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.ec6d07ccd1f9796e.js → agent-toggle.a6ee8bd882178e29.js} +14 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.9de48723967d8546.js → hero.8be1dd4ea3ed6e17.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.6558ffd02a59ad53.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.9e1a0945f6880076.js → editor.77f68d431408745b.js} +56 -99
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.e54af9841da11373.js → import-picker.a7b01817a821819a.js} +33 -39
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/loading.ee001af7a96e3972.js +28 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.6c8e9ef5d72b7ef1.js → page.c4570fd80bdda68c.js} +11 -19
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.c67ccee8b4770821.js → layout.19006c2d7dc8d114.js} +54 -84
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.3365f9248dfe735d.js → operator-apps.d350a52d27f69fa6.js} +20 -23
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.c60ebc5afe4dcdae.js → page.4a652f5080c2b863.js} +9 -10
- 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.544315916300ed07.js → connections-list.ff7e1dadcd4df17f.js} +77 -78
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/credentials-list.87a1f8ab71eb4bed.js +486 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.c1a312e6ec58db83.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.75dc69caed34ff8f.js → engines-list.29fffd07c1c3b771.js} +11 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.6d6180438e2bd0c8.js → list.0c87d55cf4ef382c.js} +46 -34
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.9d7c30db2ecccda3.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.04eb5a47bca3bd09.js → models-list.6fea9faddb8300bb.js} +156 -147
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.dd00f57d398be882.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.e644287ae91ea8c3.js → runners-list.a4a38e54d834a1ec.js} +37 -45
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.35fa72bf3f00d1af.js → secrets-list.50f487766f87383c.js} +30 -21
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.3a17085fb262e4ab.js → layout.c42e0ab39cb2c0e0.js} +9 -9
- 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.a14b9796a8af62dc.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.1fd664df1fd0e3c1.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.3acdd50e1cc0c729.js → create-link.9458b49dc99bbaaa.js} +6 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.d730e0bfbe0cf2f8.js → outcome-dialog.894c73f9abee3ce1.js} +8 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.079600422889e725.js → page.77e402bb6e8e7f7e.js} +10 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.ed49ee2686d1ee41.js → activity.fcda6f18c8207c99.js} +23 -28
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.0d973b51fee68801.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.05dd344bada1d4d8.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.ece7ec732352ce70.js → task-actions.f5f2016d2dc7f422.js} +29 -27
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.8a5908c42647923f.js → task-view.a292baa2410cdf64.js} +147 -90
- 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.c7ec618e215d63ce.js → composer.2d4122eb33addbdd.js} +90 -140
- 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.0976f1812d6d15f5.js → tasks-list.021bdc2f3d90af2d.js} +44 -41
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.fd72404364042b87.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.293492d13a9dca2e.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.471edcb853889c2e.js → custom-range.2e21c7f891966c15.js} +25 -26
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.d40438efa74b0596.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.5b28c7d8f3a473a3.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.69adbf6cde427292.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.2197d8f43216d104.js +57 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.b00f571862b5b608.js → top-agents.18fc469e781e2305.js} +6 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.ab6f86cc5b8b2dab.js → layout.185dbc99875e208a.js} +11 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.088b41424cd6cf3c.js → page.a82be2fd23e9ac67.js} +6 -9
- 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.0e2e3636f33049f5.js → drawer.d3e61538dbc8ec39.js} +8 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.fe46528a6a66c0f4.js → foreign-link.1f4217895ff1e835.js} +4 -4
- 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.cc76fc9708142525.js +40 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.e5d2185c1cdac740.js → page-head.85f15db7b648d48c.js} +10 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.2fea238dc4f4f9a4.js → stream.95a2468086aceb84.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.4282affa47415a36.js → task-toasts.e1a484113e1df660.js} +12 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.ef190ef1cd197199.js → theme-choices.85100ed66d6f9200.js} +8 -17
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.af528135d7e33d6d.js → back.180765bdadf6d602.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.813dc34bd23a336f.js → org.572ad93c7707ab27.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.bafcb4b273b1c4d0.js → side-toggle.489faf1a259479f7.js} +9 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.c0bc352791a95fd6.js +83 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/button.ce9e6cdb08ca86db.js +91 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.6227f43fc0ae4bd1.js → card.9f0d45b73bc78b4f.js} +21 -12
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.dab7f208cbbe6a33.js → collapse.93e4d1b20c2873ed.js} +17 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.0572dd5730c94112.js → combo.54270c0251466fda.js} +14 -40
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.c1281f9b12854210.js +27 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.9be99c94423eb1ca.js → copy.bd6fc1577a393965.js} +8 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.4f703a4ce7d2a519.js → filter.3a452a262f040973.js} +34 -53
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.868385119bf2de28.js → icons.e36c72f54750663a.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu-items.1d082ac4dae8f3d4.js +145 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.0f064f75822888be.js → menu.ee45bace979944b6.js} +16 -45
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.92432959e3a3e2c0.js → modal.25d53e5b41b9c4e5.js} +10 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.5ac52bb38fb64ae5.js → segmented.a08dc08338d080e9.js} +13 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.7f481669998074f8.js → select.2eb33e5bea28d804.js} +62 -61
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.30913c92f5ca6102.js → tail.04132db0c5033d4f.js} +7 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.801bbd3163d3fbb0.js → toolbar.24036899654de6df.js} +10 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.568346602027ac74.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-5ede0c449e88cb9d.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agents-grid-ffb18df48e951ecb.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/back-602db2cfdccf2e7f.js +1 -0
- 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-d163e6865d66dfab.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/connect-apps-ce3c9d049ebad459.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{connect-repositories-569c181ff81509f4.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-0cc00656953531be.js +1 -0
- 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-cae5567874db83ca.js +1 -0
- 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-f40df6a5289dfe05.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-84358e912a9f01cc.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-37175329f2865f15-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-79c9c69b702e0b90.js +1 -0
- 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-60ac4d8f715bf5f7.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{wular-pnext-37175329f2865f15-0.js → wular-pnext-6e12333f12903a62-0.js} +1 -1
- package/dist/dash/standalone/static/assets/connect-a550b6f3a8c00186.css +1 -0
- package/dist/dash/standalone/static/assets/create-param-id-da3f7e20689fe51a.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-account-9471bec93c444232.css +1 -0
- 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-bcfa3de29341d5ba.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-operator-b7bc6447cc27c9ce.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-settings-6d6902345d88a687.css +1 -0
- 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-173efecd7b990c2e.css +1 -0
- 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-usage-517b2a7ae462ac57.css +1 -0
- package/dist/dash/standalone/static/assets/global-87e1762113874559.css +1 -0
- package/dist/dash/standalone/static/assets/login-9760b85feae40270.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-Dbo9goyQ.js → delete-DR37NTr1.js} +2 -2
- package/dist/disable-Dz_zLPX5.js +1 -0
- package/dist/{discover-hpHsnxqU.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-CYMICGEv.js → docs-b2mAKC8Z.js} +1 -1
- package/dist/drive-CU2HOCfR.js +1 -0
- package/dist/{enable-BmvNVDHO.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-uS9iEE0F.js → list-7yd9K7d8.js} +1 -1
- package/dist/list-BJ0j5eP9.js +4 -0
- package/dist/list-Boaz5b5n.js +2 -0
- package/dist/{list-D2eSpGoo.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-CCA0uLsW.js → login-CzD2EMD_.js} +1 -1
- package/dist/login-DISw6--d.js +1 -0
- package/dist/{logout-Cv0cm9F8.js → logout-DMnc5yri.js} +1 -1
- package/dist/{maintenance-B_79IJ_E.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-VtavIuGm.js +1 -0
- package/dist/rename-CKMyelWN.js +1 -0
- package/dist/{result-70jciKDJ.js → result-CH3_tVXO.js} +2 -2
- package/dist/result-DvOqIwhh.js +18 -0
- package/dist/{resume-xqhwHn3l.js → resume-6j3RUpqa.js} +2 -2
- package/dist/{review-vlPAshsb.js → review-B4ETH5ki.js} +2 -2
- package/dist/{index-CVjkwYeS.d.ts → review-DDYD3Yvq.d.ts} +173 -74
- package/dist/{rotate-key-CfeZ6Rg7.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-4Vjo5Q6R.d.ts → sdk-CKTCrtGe.d.ts} +649 -365
- package/dist/sdk.d.ts +4 -5
- package/dist/sdk.js +1 -1
- package/dist/serve-C1zag2nr.js +1 -0
- package/dist/{serve-BoTW4P2G.js → serve-C6tsUF0D.js} +2 -2
- package/dist/serve-CCxSxXgv.js +1 -0
- package/dist/serve-D8J-sEqm.js +12 -0
- package/dist/{server-B1x8gx33.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-ZN0HYtLa.js → status-BxV_ITeF.js} +1 -1
- package/dist/steer-DZ3nkHfC.js +4 -0
- package/dist/{stop-DTzpTbg1.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-BktBEKW5.d.ts → types-8zO5Tc9c.d.ts} +86 -21
- 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-CcC-xbfp.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-BDBCRqKN.js +0 -1
- package/dist/add-Df1Ezy3y.js +0 -2
- package/dist/add-yIlNqPSu.js +0 -1
- package/dist/agent-C1HI4JlI.js +0 -3
- package/dist/alias-DghaKDbh.js +0 -2
- package/dist/approvals-BziBKWgU.js +0 -2
- package/dist/approve-DKrTnZfk.js +0 -2
- package/dist/apps-aj_JtpAm.js +0 -242
- package/dist/archive-DxWYJ7Zi.js +0 -4
- package/dist/archive-sweep-CqTQUafj.js +0 -1
- package/dist/args-CxsMr9Un.js +0 -1
- package/dist/ask-B_si1yM4.js +0 -4
- package/dist/auth-B3RiDPMI.js +0 -1
- package/dist/auth-Cx4ePjWG.js +0 -1
- package/dist/chat-Bbzlea60.js +0 -1
- package/dist/chat-DLolwsuq.js +0 -13
- package/dist/chat-bridge-CvspGKBc.js +0 -2
- package/dist/cli-D5hyqGq0.js +0 -9
- package/dist/config-BdeKsCPh.js +0 -3
- package/dist/config-D2FxHWwi.js +0 -14
- package/dist/connection-wq0CJZKh.js +0 -1
- package/dist/create-8_XbAnHs.js +0 -1
- package/dist/credentials-BOAy2_-6.js +0 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/sign-out.1ee9b7f1343376e9.js +0 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/agent-menu.79e38c6e4139b9de.js +0 -12
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/loading.2fa9e225a5c42496.js +0 -29
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/loading.38715a27e2d25ebd.js +0 -30
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/credentials-list.41ce6eb622300bb3.js +0 -540
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/range-bar.884e58b044238e98.js +0 -60
- 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/frame/loading-card.df3717186948c93f.js +0 -64
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.3d9163a51e6f6d6e.js +0 -43
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.fe133a074c2743af.js +0 -26
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/select.32a95ad31c0436ad.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.40284b41c03c5dcb.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/static/assets/chunks/action-df9907c7a10bf826.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-pills-106a518bef96408e.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-d1aa82950d30d829.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-toggle-44667051d8be2040.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agents-grid-69fabb48962a282a.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/back-e02e04679467c05b.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/badge-b302b4d707908367.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/card-31a2cdcfeda5254f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/combo-fd495e7fa91b69ed.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-10f0a825a16e1fc7.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-8c1198d45f700738.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/confirm-7b6112578a1c4877.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/connect-apps-bd95a6cbdc89a438.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/connections-list-5bbf7321d9bfd08f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/copy-f057128db8aefd1b.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-6f6e6b87e46f67c8.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/credentials-list-8fc72c0331289ac6.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/custom-range-d06cd17fcc05183d.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/defaults-dcc0eccad4e8585b.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/editor-b5a9659f85edea17.js +0 -7
- package/dist/dash/standalone/static/assets/chunks/engines-list-c10ca5e7410b790f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/filter-966a9aae3b0b6d77.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/format-b19b8eec331414f4.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-c9e1097c4e1b352a.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/instructions-e969d4439f6676c9.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/list-5db1dd782965a5fc.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-b6237067c9a39f97.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-c4f75d37645035b8.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/paged-c44eccacea100110.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-6004e96f54953935.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-d8dd016336a3d768.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/runners-list-0b288b2b79de8968.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/secrets-list-64650cb827e93322.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/segmented-5423dcc766dc7abc.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/select-53722330d2e3f1c6.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-35a0e9007eeca198.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/shared-init-37175329f2865f15-2.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-a7f2e71a718bc285.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/shared-init-b8184e0e554d5aa4.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-e0aa7cbf9ac680b5.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/side-toggle-34ee3bbe5ac64a60.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/tail-7dece33a58f72850.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-6ae2bb4f1b384140.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-actions-b36dc5fcd9b2b2c5.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-view-1696d47594c6dbfa.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/tasks-list-7c70210e7121b95a.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/versions-list-26475f0d05e2d434.js +0 -1
- package/dist/dash/standalone/static/assets/connect-b73a327c12fa5c63.css +0 -1
- package/dist/dash/standalone/static/assets/create-param-id-d679f8832eafd7e8.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-14abc8f62d04dc4c.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-account-aba6d7e7f99c97cb.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-570ddee6de22492e.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-new-9fa9b19084b3cd2f.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-0e7e591f05cbddf5.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-f16fb90321952887.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-5cf30b084239d643.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-1c84b31df8c64b88.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-7da323ffa5be29aa.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-4900a42b805e90cb.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-operator-2f4e497a01a78f29.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-settings-0ea983332482dbc6.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-e1c1f81610bb925f.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-setup-6824fce3862dbb43.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-f914c28afa705d66.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-65c8bb06f94ff868.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-usage-5dbb2aa369c46eed.css +0 -1
- package/dist/dash/standalone/static/assets/global-eecd2b20d5e4b08d.css +0 -1
- package/dist/dash/standalone/static/assets/login-ca4c0cd7d65b3269.css +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-0bcd0cbf2549bdf2.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-22414b6c8a870c92.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-2a02ab5209cae1ea.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-46d843cfdabf3e71.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-5a50a2a4da7e870e.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-5b6ea850cead1482.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-5b94497ba23568a8.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-6686f1714e481293.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-67155accb837a12a.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-7db5d810ee904f4b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-8d779b89650f4b7a.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-9d7a7a634c9be6ac.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-9edebc462604c881.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-aa5a424e38b430a5.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-b983cd476c808b15.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-bdf1cb75a3de35ea.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-c5177dd613b27b84.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-d998d7077d159f68.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-f01c6d0c6beb582b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-fd4c0f3ecbcc461c.js +0 -1
- package/dist/default-CNhVH61w.js +0 -1
- package/dist/default-dQC33jLt.js +0 -1
- package/dist/delete-BDOtztW_.js +0 -2
- package/dist/disable-VvU6oDku.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-4Rr-2NUz.js +0 -1
- package/dist/http-BYMXT_p6.js +0 -1
- package/dist/init-kZdO2PF5.js +0 -1
- package/dist/integrations-35T26qmP.js +0 -1
- package/dist/integrations-D3OgJk6Y.js +0 -1
- package/dist/list-CLqNS8_q.js +0 -4
- package/dist/list-CbN2giPy.js +0 -1
- package/dist/list-ChFFjT_a.js +0 -2
- package/dist/list-D0NK3Iqu.js +0 -3
- package/dist/list-D3LCULQt.js +0 -1
- package/dist/list-P2Ztf1bQ.js +0 -4
- package/dist/load-CRmQB1LD.js +0 -2
- package/dist/local-XNsjb-UM.js +0 -1
- package/dist/log-view-DB4nXHXO.js +0 -3
- package/dist/login-BoOBMH4y.js +0 -1
- package/dist/match-Kt3vFTl1.js +0 -1
- package/dist/mcp-C13n4A3y.js +0 -12
- package/dist/mcp-YhyTUMIM.js +0 -11
- package/dist/mcp-server-DGzme0YX.js +0 -1
- package/dist/model-0sxp5GdI.js +0 -1
- package/dist/models-CdvmuaLv.js +0 -1
- package/dist/prompt-C--TI1qn.js +0 -8
- package/dist/push-IpLeKMp-.js +0 -1
- package/dist/reconnect-CR3RaXX0.js +0 -1
- package/dist/refresh-D0YjtXBD.js +0 -1
- package/dist/remote-oQs6My_3.js +0 -1
- package/dist/remove-B01SXfEq.js +0 -1
- package/dist/remove-C9eahMDh.js +0 -1
- package/dist/remove-D1UOd48O.js +0 -1
- package/dist/remove-D65xtbw5.js +0 -1
- package/dist/rename-Qwr_XDxD.js +0 -1
- package/dist/result-DXL9N9Ip.js +0 -18
- package/dist/review-D-U_2KyT.d.ts +0 -157
- package/dist/run-CoTg7SkY.js +0 -2
- package/dist/run-CvdayZfK.js +0 -5
- package/dist/run-VOuS-hHe.js +0 -2
- package/dist/runner-D0TLZrrO.js +0 -1
- package/dist/runner-DME7ohjt.js +0 -1
- package/dist/runners-UNKPlmYE.js +0 -36
- package/dist/schema-BSlHRFSP.js +0 -8
- package/dist/serve-BQsv2KZs.js +0 -1
- package/dist/serve-ByWMT5Gm.js +0 -1
- package/dist/serve-HNXk3HMY.js +0 -9
- package/dist/setup-host-DExG-bWZ.js +0 -6
- package/dist/show-BeacgzZ0.js +0 -1
- package/dist/show-D3OC0c35.js +0 -1
- package/dist/slack-C_RlVDz7.js +0 -3
- package/dist/steer-DwSC8AO4.js +0 -4
- package/dist/stop-CEEiI1RA.js +0 -1
- package/dist/task-4gw9OZun.js +0 -1
- package/dist/task-CB-j4EO8.js +0 -5
- package/dist/task-IoBYe7ok.js +0 -1
- package/dist/test-BnGF24Hg.js +0 -1
- package/dist/tools-ar-D3jOh.js +0 -1
- package/dist/unalias-9AwJnbpE.js +0 -1
- package/dist/update-DoJEPBvm.js +0 -2
- package/dist/upgrade-DRPBwDYe.js +0 -2
- package/dist/usage-CItBLFFE.js +0 -1
- package/dist/views-BhsnL0nr.js +0 -5
- package/dist/watch-BMuVZorc.js +0 -9
- package/dist/watch-Bl_pCGfq.js +0 -5
- package/dist/wire-B5rc5Av6.js +0 -1
- package/dist/worker-BFGETvid.js +0 -1
- package/dist/worker-BiJ7jiOr.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]/agents/editor/{editor.d2e3bc878dcb47da.css.pnext-asset.js → editor.c496247a81ed832c.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.3827c440c6421a06.css.pnext-asset.js → layout.a4efa8d807fe5416.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.1236d6680ec02696.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.360b393e5938c60b.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 → usage/range-bar.476c059123ef6c23.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{dash/[org]/usage/range-bar.1da88d087e3b5302.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 → login/page.586a41a7ab9988e0.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.76731787d2a1aa3b.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/login/page.57e5198339e9ca28.css.pnext-asset.js → comps/frame/drawer.0b0220d1edabce29.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{app/responsive.82549d958fae8f00.css.pnext-asset.js → comps/frame/task-toasts.d13d9f628e530552.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{frame/@/comps/ui/toast.a4c3e977997216cf.css.pnext-asset.js → ui/button.d7f4433f4e7faa80.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{frame/drawer.e8201d78154045bc.css.pnext-asset.js → ui/card.f80288cc42f9bcae.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.15f7435f202831c3.css.pnext-asset.js → copy.fb3240de6c9479cd.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.d18497f656702a16.css.pnext-asset.js → filter.b53f21acc3e2cfef.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.991f1efa061e71d6.css.pnext-asset.js → menu.25b184f68cba7b46.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.e20fbd035f24ed01.css.pnext-asset.js → select.419208bb34700af2.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.1d42c8d0493e2221.css.pnext-asset.js → toolbar.19e1ce5224a23acf.css.pnext-asset.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as u}from"./chunks/custom-range-d06cd17fcc05183d.js";import{a as d,b as s,c as p,d as f,e as c,f as l}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as i,$1i as r}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as a}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as e}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as o,$1b as n}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:C,remountRoute:P,unmountRoute:I}=o({islands:[{id:"c-0e05879d0c",Component:a},{id:"c-11c3ba1c30",Component:d},{id:"c-390a6b842f",Component:n},{id:"c-3a66c00df4",Component:s},{id:"c-5cf41d4913",Component:u},{id:"c-5f72648061",Component:e},{id:"c-a41e865a04",Component:p},{id:"c-bc41f5d923",Component:i},{id:"c-bc99af7510",Component:r},{id:"c-db3da8a95a",Component:f},{id:"c-f92c7afa46",Component:c},{id:"c-fbff464959",Component:l}]});m();t()||C();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:C,unmountRoute:I});export{C as mountRoute,P as remountRoute,I as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as u}from"./chunks/agent-toggle-44667051d8be2040.js";import"./chunks/action-df9907c7a10bf826.js";import"./chunks/format-b19b8eec331414f4.js";import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as a,$1i as e}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as i,$3o as r}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as d,$2c as s}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as o,$1b as n}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:_,remountRoute:x,unmountRoute:R}=o({islands:[{id:"c-0e05879d0c",Component:i},{id:"c-11c3ba1c30",Component:p},{id:"c-390a6b842f",Component:n},{id:"c-3a66c00df4",Component:c},{id:"c-5f72648061",Component:d},{id:"c-a41e865a04",Component:f},{id:"c-b0f4b7dee6",Component:u},{id:"c-bc41f5d923",Component:a},{id:"c-bc99af7510",Component:e},{id:"c-bf95e76c92",options:{},load:()=>import("./chunks/editor-b5a9659f85edea17.js").then(b=>b.AgentEditor)},{id:"c-c0dc2d6f7a",Component:s},{id:"c-db3da8a95a",Component:l},{id:"c-ed3c1c674b",Component:r},{id:"c-f92c7afa46",Component:C},{id:"c-fbff464959",Component:I}]});m();t()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,x as remountRoute,R as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as s,b as p,c,d as f,e as l,f as u}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as r,$1i as e}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as i,$3p as a}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as d}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as o,$1b as n}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:C,remountRoute:P,unmountRoute:_}=o({islands:[{id:"c-0e05879d0c",Component:i},{id:"c-11c3ba1c30",Component:s},{id:"c-390a6b842f",Component:n},{id:"c-3a66c00df4",Component:p},{id:"c-5f72648061",Component:d},{id:"c-8e21acc3fa",Component:a},{id:"c-a41e865a04",Component:c},{id:"c-bc41f5d923",Component:r},{id:"c-bc99af7510",Component:e},{id:"c-bf95e76c92",options:{},load:()=>import("./chunks/editor-b5a9659f85edea17.js").then(I=>I.AgentEditor)},{id:"c-db3da8a95a",Component:f},{id:"c-f92c7afa46",Component:l},{id:"c-fbff464959",Component:u}]});m();t()||C();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:C,unmountRoute:_});export{C as mountRoute,P as remountRoute,_ as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,b as d,c as s,d as p,e as f,f as c}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as a,$1i as i}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as r}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as o,$1b as n}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:l,remountRoute:h,unmountRoute:u}=o({islands:[{id:"c-11c3ba1c30",Component:e},{id:"c-390a6b842f",Component:n},{id:"c-3a66c00df4",Component:d},{id:"c-5f72648061",Component:r},{id:"c-a41e865a04",Component:s},{id:"c-bc41f5d923",Component:a},{id:"c-bc99af7510",Component:i},{id:"c-db3da8a95a",Component:p},{id:"c-f92c7afa46",Component:f},{id:"c-fbff464959",Component:c}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,h as remountRoute,u as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as C}from"./chunks/back-e02e04679467c05b.js";import{a as s,b as p,c,d as f,e as l,f as u}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as d,$1i as m}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as e}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as r}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as a}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as t,$1b as n}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:I,remountRoute:M,unmountRoute:b}=t({islands:[{id:"c-0e05879d0c",Component:e},{id:"c-11c3ba1c30",Component:s},{id:"c-1583af22cd",options:{},load:()=>import("./chunks/credentials-list-8fc72c0331289ac6.js").then(o=>o.CredentialsList)},{id:"c-390a6b842f",Component:n},{id:"c-3a66c00df4",Component:p},{id:"c-4e3afd9170",options:{},load:()=>import("./chunks/models-list-b6237067c9a39f97.js").then(o=>o.ModelsList)},{id:"c-5a8d952797",options:{},load:()=>import("./chunks/credentials-list-8fc72c0331289ac6.js").then(o=>o.EngineLogins)},{id:"c-5f72648061",Component:r},{id:"c-6ab193b131",options:{},load:()=>import("./chunks/engines-list-c10ca5e7410b790f.js").then(o=>o.EnginesList)},{id:"c-729fd0c984",options:{},load:()=>import("./chunks/runners-list-0b288b2b79de8968.js").then(o=>o.RunnersList)},{id:"c-7c227aeb61",Component:C},{id:"c-91b1d58ca3",options:{},load:()=>import("./chunks/connections-list-5bbf7321d9bfd08f.js").then(o=>o.ConnectionsList)},{id:"c-a41e865a04",Component:c},{id:"c-a80f71b0fa",options:{},load:()=>import("./chunks/secrets-list-64650cb827e93322.js").then(o=>o.TaskSecrets)},{id:"c-bc41f5d923",Component:d},{id:"c-bc99af7510",Component:m},{id:"c-db3da8a95a",Component:f},{id:"c-f677dcd4b7",options:{},load:()=>import("./chunks/outcome-dialog-c4f75d37645035b8.js").then(o=>o.OutcomeDialog)},{id:"c-f92c7afa46",Component:l},{id:"c-fbff464959",Component:u}]});a();i()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:b});export{I as mountRoute,M as remountRoute,b as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as b,b as h,c as g,d as T,e as k,f as w}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1b as e,$1h as u,$1i as I}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as p}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as C,$2c as N}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1a as t}from"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as l}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as f}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as m,$1b as d}from"./chunks/shared-init-b8184e0e554d5aa4.js";import{$0h as a,$0j as c}from"./chunks/shared-init-b8184e0e554d5aa4.js";function _(){let[S,s]=a(!1),[r,i]=a(!1);c(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),s(localStorage.getItem(e)==="1"&&Notification.permission==="granted")},[]);let E=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(e,"1"):localStorage.removeItem(e),o.checked=n,s(n),i(Notification.permission==="denied")};return t("label",{class:"notify",children:[t("input",{type:"checkbox",role:"switch",class:"switch",checked:S,disabled:r,onChange:o=>void E(o.currentTarget)}),r?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:R,remountRoute:V,unmountRoute:v}=m({islands:[{id:"c-0e05879d0c",Component:p},{id:"c-11c3ba1c30",Component:b},{id:"c-390a6b842f",Component:d},{id:"c-3a66c00df4",Component:h},{id:"c-5f72648061",Component:C},{id:"c-a41e865a04",Component:g},{id:"c-bc41f5d923",Component:u},{id:"c-bc99af7510",Component:I},{id:"c-c0dc2d6f7a",Component:N},{id:"c-d8f4eb06d1",Component:_},{id:"c-db3da8a95a",Component:T},{id:"c-f92c7afa46",Component:k},{id:"c-fbff464959",Component:w}]});l();f()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:v});export{R as mountRoute,V as remountRoute,v as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as T}from"./chunks/agent-toggle-44667051d8be2040.js";import{a as b}from"./chunks/composer-8c1198d45f700738.js";import"./chunks/shared-init-e0aa7cbf9ac680b5.js";import"./chunks/task-6ae2bb4f1b384140.js";import"./chunks/defaults-dcc0eccad4e8585b.js";import"./chunks/shared-init-e0aa7cbf9ac680b5.js";import"./chunks/connect-repositories-569c181ff81509f4.js";import"./chunks/model-options-3a57918eaa4a2a82.js";import"./chunks/notice-84358e912a9f01cc.js";import"./chunks/select-53722330d2e3f1c6.js";import"./chunks/back-e02e04679467c05b.js";import"./chunks/card-31a2cdcfeda5254f.js";import"./chunks/action-df9907c7a10bf826.js";import"./chunks/format-b19b8eec331414f4.js";import{a as c,b as f,c as l,d as C,e as I,f as u}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as r,$1i as d}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as m,$3o as a}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as s,$2c as p}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as n,$1b as t}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:_,remountRoute:B,unmountRoute:R}=n({islands:[{id:"c-0e05879d0c",Component:m},{id:"c-11c3ba1c30",Component:c},{id:"c-390a6b842f",Component:t},{id:"c-3a66c00df4",Component:f},{id:"c-5f72648061",Component:s},{id:"c-82eb0b3ac3",options:{},load:()=>import("./chunks/agent-settings-form-d1aa82950d30d829.js").then(o=>o.AgentSettingsForm)},{id:"c-94c655e4ef",Component:b},{id:"c-a41e865a04",Component:l},{id:"c-b0f4b7dee6",Component:T},{id:"c-bc41f5d923",Component:r},{id:"c-bc99af7510",Component:d},{id:"c-c0dc2d6f7a",Component:p},{id:"c-db3da8a95a",Component:C},{id:"c-ea95c61a2c",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-7c70210e7121b95a.js").then(o=>o.TasksList)},{id:"c-ed3c1c674b",Component:a},{id:"c-f92c7afa46",Component:I},{id:"c-fbff464959",Component:u},{id:"c-fdfde05882",options:{},load:()=>import("./chunks/composer-10f0a825a16e1fc7.js").then(o=>o.NewTaskButton)}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,B as remountRoute,R as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as o,$1b as t}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:r,remountRoute:a,unmountRoute:m}=o({islands:[{id:"c-390a6b842f",Component:t},{id:"c-9ee5b947b9",options:{},load:()=>import("./chunks/create-link-6f6e6b87e46f67c8.js").then(n=>n.CreateLink)}]});i();e()||r();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:r,unmountRoute:m});export{r as mountRoute,a as remountRoute,m as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as s,b as d,c as p,d as c,e as f,f as l}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as m,$1i as r}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as a}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as e}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as o,$1b as n}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:u,remountRoute:G,unmountRoute:I}=o({islands:[{id:"c-0e05879d0c",Component:a},{id:"c-11c3ba1c30",Component:s},{id:"c-390a6b842f",Component:n},{id:"c-3a66c00df4",Component:d},{id:"c-5f72648061",Component:e},{id:"c-a41e865a04",Component:p},{id:"c-bc41f5d923",Component:m},{id:"c-bc99af7510",Component:r},{id:"c-db3da8a95a",Component:c},{id:"c-ea95c61a2c",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-7c70210e7121b95a.js").then(C=>C.TasksList)},{id:"c-f92c7afa46",Component:f},{id:"c-fbff464959",Component:l}]});i();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:I});export{u as mountRoute,G as remountRoute,I as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as r}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as o,$1b as t}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:m,remountRoute:p,unmountRoute:n}=o({islands:[{id:"c-390a6b842f",Component:t}]});i();r()||m();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:m,unmountRoute:n});export{m as mountRoute,p as remountRoute,n as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as b}from"./chunks/agent-toggle-44667051d8be2040.js";import{a as T}from"./chunks/composer-8c1198d45f700738.js";import"./chunks/shared-init-e0aa7cbf9ac680b5.js";import"./chunks/task-6ae2bb4f1b384140.js";import"./chunks/defaults-dcc0eccad4e8585b.js";import"./chunks/shared-init-e0aa7cbf9ac680b5.js";import"./chunks/connect-repositories-569c181ff81509f4.js";import"./chunks/model-options-3a57918eaa4a2a82.js";import"./chunks/notice-84358e912a9f01cc.js";import"./chunks/select-53722330d2e3f1c6.js";import"./chunks/back-e02e04679467c05b.js";import"./chunks/card-31a2cdcfeda5254f.js";import"./chunks/action-df9907c7a10bf826.js";import"./chunks/format-b19b8eec331414f4.js";import{a as c,b as f,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as m,$1i as s}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as r,$3o as a}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as d,$2c as p}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as n,$1b as t}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:_,remountRoute:D,unmountRoute:R}=n({islands:[{id:"c-0e05879d0c",Component:r},{id:"c-11c3ba1c30",Component:c},{id:"c-390a6b842f",Component:t},{id:"c-3a66c00df4",Component:f},{id:"c-5612834807",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-26475f0d05e2d434.js").then(o=>o.VersionsList)},{id:"c-5803c6c735",options:{},load:()=>import("./chunks/instructions-e969d4439f6676c9.js").then(o=>o.Instructions)},{id:"c-5f72648061",Component:d},{id:"c-94c655e4ef",Component:T},{id:"c-a41e865a04",Component:l},{id:"c-b0f4b7dee6",Component:b},{id:"c-bc41f5d923",Component:m},{id:"c-bc99af7510",Component:s},{id:"c-c0dc2d6f7a",Component:p},{id:"c-db3da8a95a",Component:u},{id:"c-ea95c61a2c",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-7c70210e7121b95a.js").then(o=>o.TasksList)},{id:"c-ed3c1c674b",Component:a},{id:"c-f92c7afa46",Component:C},{id:"c-fbff464959",Component:I},{id:"c-fdfde05882",options:{},load:()=>import("./chunks/composer-10f0a825a16e1fc7.js").then(o=>o.NewTaskButton)}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,D as remountRoute,R as unmountRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as R}from"./chunks/agent-toggle-44667051d8be2040.js";import{a as _}from"./chunks/composer-8c1198d45f700738.js";import"./chunks/shared-init-e0aa7cbf9ac680b5.js";import"./chunks/task-6ae2bb4f1b384140.js";import"./chunks/defaults-dcc0eccad4e8585b.js";import"./chunks/shared-init-e0aa7cbf9ac680b5.js";import"./chunks/connect-repositories-569c181ff81509f4.js";import"./chunks/model-options-3a57918eaa4a2a82.js";import"./chunks/notice-84358e912a9f01cc.js";import"./chunks/select-53722330d2e3f1c6.js";import{a as T}from"./chunks/back-e02e04679467c05b.js";import"./chunks/card-31a2cdcfeda5254f.js";import"./chunks/action-df9907c7a10bf826.js";import"./chunks/format-b19b8eec331414f4.js";import{a as f,b as l,c as C,d as I,e as u,f as b}from"./chunks/side-toggle-34ee3bbe5ac64a60.js";import"./chunks/shared-init-35a0e9007eeca198.js";import{$1h as m,$1i as r}from"./chunks/shared-init-35a0e9007eeca198.js";import{$3k as e,$3o as a}from"./chunks/shared-init-35a0e9007eeca198.js";import{$2a as s,$2c as p,$2d as c}from"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/shared-init-35a0e9007eeca198.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import"./chunks/shared-init-a7f2e71a718bc285.js";import{$1c as d}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$1a as t,$1b as n}from"./chunks/shared-init-b8184e0e554d5aa4.js";import"./chunks/shared-init-b8184e0e554d5aa4.js";var{mountRoute:g,remountRoute:j,unmountRoute:h}=t({islands:[{id:"c-052b6d1aec",Component:T},{id:"c-0e05879d0c",Component:e},{id:"c-11c3ba1c30",Component:f},{id:"c-390a6b842f",Component:n},{id:"c-3a66c00df4",Component:l},{id:"c-457fae7a39",Component:c},{id:"c-5f72648061",Component:s},{id:"c-94c655e4ef",Component:_},{id:"c-a41e865a04",Component:C},{id:"c-b0f4b7dee6",Component:R},{id:"c-bc41f5d923",Component:m},{id:"c-bc99af7510",Component:r},{id:"c-c0dc2d6f7a",Component:p},{id:"c-c6579bb6e6",options:{},load:()=>import("./chunks/platform-actions-6004e96f54953935.js").then(o=>o.PlatformActions)},{id:"c-db3da8a95a",Component:I},{id:"c-dcb692b43c",options:{},load:()=>import("./chunks/platform-actions-6004e96f54953935.js").then(o=>o.DriftQueue)},{id:"c-ea95c61a2c",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-7c70210e7121b95a.js").then(o=>o.TasksList)},{id:"c-ed3c1c674b",Component:a},{id:"c-f677dcd4b7",options:{},load:()=>import("./chunks/outcome-dialog-c4f75d37645035b8.js").then(o=>o.OutcomeDialog)},{id:"c-f92c7afa46",Component:u},{id:"c-fbff464959",Component:b},{id:"c-fd16dde3d9",options:{},load:()=>import("./chunks/platform-actions-6004e96f54953935.js").then(o=>o.InstallButton)},{id:"c-fdfde05882",options:{},load:()=>import("./chunks/composer-10f0a825a16e1fc7.js").then(o=>o.NewTaskButton)}]});d();i()||g();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:g,unmountRoute:h});export{g as mountRoute,j as remountRoute,h as unmountRoute};
|
package/dist/default-CNhVH61w.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./cli-D5hyqGq0.js";import{p as n}from"./output-BKeyLbvt.js";import{credentialOptions as r,missingLabel as i}from"./remove-B01SXfEq.js";import a from"node:process";const o=e({name:`credentials default`,globalFlags:{cwd:!1},help:{usage:`coder credentials default <label> [--workspace] [--server [url]] [--json]`,flags:[[`--workspace`,`the workspace credential of that label`],t]},options:r,args:1,async run({options:e,args:[t]}){let{connect:n}=await import(`./remote-oQs6My_3.js`).then(e=>e.a);if(!t)throw i();return n(e).credentials.setDefault(t,e)},print:(e,{args:[t]})=>a.stdout.write(`Made default ${n.bold(t)}.\n`)});export{o as commandCredentialsDefault};
|
package/dist/default-dQC33jLt.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{H as e}from"./dispatch-D3Dqxijf.js";import{i as t,t as n}from"./cli-D5hyqGq0.js";import{runnerOptions as r}from"./remove-D65xtbw5.js";import i from"node:process";const a=t({name:`runner default`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner default <id> [--server [url]] [--json]`,summary:`Use this runner by default within its scope.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{updateRunner:r}=await import(`./runner-DME7ohjt.js`).then(e=>e.a);return r(n,{default:!0},t)},print:e=>i.stdout.write(`Default runner ${e.name}.\n`)});export{a as commandRunnerDefault};
|
package/dist/delete-BDOtztW_.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-D5hyqGq0.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{plural as s}from"./archive-DxWYJ7Zi.js";import c from"node:process";const l={server:r,workspace:a,yes:i},u=e({name:`task delete`,help:{usage:`coder task delete <task-id> | coder task delete --all-archived [--server [url]]`,summary:`Delete a task's session from disk. This is permanent. Pass --all-archived to
|
|
2
|
-
delete every archived task at once. A running task must be stopped first.`,flags:[[`--all-archived`,`delete every archived task`],t]},options:{...o,"all-archived":i,...l},args:1,run:async({options:e,args:[t]})=>{let{tasks:n}=await import(`./task-IoBYe7ok.js`).then(e=>e.t);return n.delete(t,{...e,organization:e.workspace,allArchived:e[`all-archived`]})},print(e,{options:t}){if(e.count===void 0)return void c.stdout.write(`Deleted task ${n.cyan(e.taskId)}.\n`);c.stdout.write(t.server===void 0?e.count?`Deleted ${e.count} archived task${s(e.count)}.\n`:`${n.dim(`No archived tasks to delete.`)}\n`:`Deleted ${e.count} server task${s(e.count)}.\n`)}});export{u as commandDelete};
|
package/dist/disable-VvU6oDku.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./cli-D5hyqGq0.js";import{a as t}from"./models-CdvmuaLv.js";import{n}from"./add-DcR15CL7.js";import{t as r}from"./remove-D1UOd48O.js";const i=(i,a)=>e({name:`model ${i?`disable`:`enable`}`,help:a,options:n,args:1,run:({options:e,args:[n],cwd:r})=>t(r,n,i,e),json:({name:e,file:t})=>({[i?`disabled`:`enabled`]:e,file:t}),print:({name:e,file:t})=>r(i?`disabled`:`enabled`,e,t)}),a=i(!0,{usage:`coder model disable <name> [--workspace]`,summary:`Disable a model - built-in, custom, or alias. Requests for it fail until re-enabled.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]});export{a as commandModelDisable,i as toggle};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{$ as t,Et as n}from"./config-D2FxHWwi.js";import r from"node:path";import{fileURLToPath as i}from"node:url";import a from"node:fs";var o=e({builtinFlowsDir:()=>c,discoverFlows:()=>d,flowsIn:()=>l,resolveFlow:()=>p});const s=[`.ts`,`.mjs`,`.js`];function c(){let e=r.dirname(i(import.meta.url)),t=e;for(;r.basename(t)!==`dist`&&r.dirname(t)!==t;)t=r.dirname(t);return r.basename(t)===`dist`?r.join(t,`flow`,`builtin`):r.join(e,`builtin`)}function l(e,t){let n=[];try{n=a.readdirSync(e)}catch{return[]}let i=[];for(let o of n.sort()){let n=r.extname(o);if(s.includes(n)&&!o.endsWith(`.d.ts`)){i.push({name:r.basename(o,n),path:r.join(e,o),scope:t});continue}let c=s.map(t=>r.join(e,o,`index${t}`)).find(e=>a.existsSync(e));c&&i.push({name:o,path:c,scope:t})}return i}function u(e){let i=n(e),a=[],o=r.resolve(e);for(;a.push({dir:r.join(o,`.coder`,`flows`),scope:`workspace`}),o!==i&&r.dirname(o)!==o;)o=r.dirname(o);return a.push({dir:t(`flows`),scope:`global`}),a}function d(e){let t=new Set,n=[];for(let{dir:r,scope:i}of u(e))for(let e of l(r,i))t.has(e.name)||(t.add(e.name),n.push(e));for(let e of l(c(),`builtin`))t.has(e.name)||n.push(e);return n}function f(e){return e.includes(`/`)||s.includes(r.extname(e))}function p(e,t){if(f(e)){let n=r.resolve(t,e);if(a.existsSync(n))return{name:r.basename(n,r.extname(n)),path:n};throw Error(`Flow file not found: ${e}`)}let n=d(t).find(t=>t.name===e);if(!n)throw Error(`No flow named "${e}". Run \`coder flow discover\` to see available flows.`);return{name:n.name,path:n.path,scope:n.scope}}export{p as a,l as i,d as n,o as r,c as t};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{Rt as e,wi as t}from"./core-DwsAMCnL.js";import{An as n,Bn as r,Ct as i,Dt as a,Hn as o,Ht as s,I as c,It as l,Jt as u,Ln as d,Lt as f,Mt as p,N as m,Nt as h,O as g,Pt as _,Q as v,R as y,S as b,T as ee,Tn as x,Ut as S,Vn as te,Wt as ne,Xt as re,Yt as C,a as ie,c as ae,ct as w,d as oe,f as se,g as ce,ht as le,i as ue,kn as de,l as fe,mt as pe,n as me,o as he,pt as ge,q as _e,qt as ve,r as ye,rt as be,s as xe,t as Se,un as T,v as E,wn as D,y as Ce,z as we,zn as Te}from"./config-D2FxHWwi.js";import O from"node:path";import k from"node:process";import{fileURLToPath as Ee}from"node:url";import A from"node:fs";import{spawn as De,spawnSync as j}from"node:child_process";import{createHash as Oe,randomUUID as M}from"node:crypto";import N from"node:os";var P=class extends Error{code;hint;taskId;payload;approval;result;runId;status;needs;constructor(e,t,n={}){super(t),this.name=`CoderError`,this.code=e,Object.assign(this,n)}};const ke=/access token could not be refreshed/i,Ae=/model is not supported|Codex cannot run model/i;function F(e){return e instanceof Error?e.message:String(e??``)}function I(e){return ke.test(e??``)}function je(e){return Ae.test(e??``)}function Me(e,t){return!je(e)||/Codex cannot run model/.test(e??``)?null:`Codex cannot run model ${/'([^']+)' model/.exec(e??``)?.[1]??t??`this model`} on the signed-in account. Run \`codex login\` with an account that has it, or pick another alias (coder model list).`}function Ne(e=process.env){return O.join(e.CODEX_HOME||O.join(N.homedir(),`.codex`),`auth.json`)}function Pe(e){try{let t=JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString(`utf8`));return String(t.sub??t.email??``)}catch{return``}}function Fe(e=process.env,t){let n=Ne(e),r;try{r=A.statSync(n).mtimeMs}catch{return``}if(t?.file===n&&t.mtimeMs===r)return t.fingerprint??``;try{let e=JSON.parse(A.readFileSync(n,`utf8`)),i=e.OPENAI_API_KEY?Oe(`sha256`).update(String(e.OPENAI_API_KEY)).digest(`hex`):``,a=[e.auth_mode??``,e.tokens?.account_id??``,Pe(e.tokens?.id_token),i].join(`|`);return t&&Object.assign(t,{file:n,mtimeMs:r,fingerprint:a}),a}catch{return t?.file===n?t.fingerprint??``:``}}const Ie=`CODER_MAILBOX`,Le=/^([a-f0-9-]{36})\.(?:req|applying)\.json$/;function L(e){if(!e)return M();if(!e.task||!Number.isInteger(e.generation)||e.generation<0||!Number.isInteger(e.seq)||e.seq<0)throw Error(`Invalid command key`);let t=Oe(`sha256`).update(JSON.stringify([e.task,e.generation,e.seq])).digest(`hex`).slice(0,32);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}const Re=[`hint`,`taskId`,`payload`,`approval`,`result`,`runId`,`status`];function ze(e=k.env){return e.CODER_MAILBOX||void 0}function Be(e,t){let n=`${e}.${M()}.tmp`;A.writeFileSync(n,JSON.stringify(t),{encoding:`utf8`,flag:`wx`}),A.renameSync(n,e)}async function Ve(e,t,n={}){let r=n.dir??ze();if(!r)throw Error(`No mailbox: not inside an agent task.`);let i=n.id??M(),a=O.join(r,`${i}.res.json`);A.existsSync(a)||Be(O.join(r,`${i}.req.json`),{kind:e,payload:t});let o=Date.now();for(;!A.existsSync(a);){if(n.timeoutMs&&Date.now()-o>=n.timeoutMs)throw Error(`Worker control timed out`);await new Promise(e=>setTimeout(e,100))}let{result:s,error:c}=JSON.parse(A.readFileSync(a,`utf8`));if(n.keepReply||A.rmSync(a,{force:!0}),c){let{code:e,message:t,...n}=c;throw new P(e,t,n)}return s}function He(e,t){A.mkdirSync(e,{recursive:!0});let n=new Set,r=async(r,i)=>{let a;try{let n=O.join(e,r);if(!A.lstatSync(n).isFile())throw Error(`mailbox request is not a regular file`);let{kind:o,payload:s}=JSON.parse(A.readFileSync(n,`utf8`)),c=O.join(e,`${i}.applying.json`);A.existsSync(c)||Be(c,{kind:o,payload:s});let l=Object.hasOwn(t,o)?t[o]:void 0;if(!l)throw Error(`unknown mailbox request "${o}"`);a={result:await l(s??{})??null}}catch(e){let t=e instanceof P?e:void 0;a={error:{code:t?.code??`invalid-option`,message:e instanceof Error?e.message:String(e),...Object.fromEntries(Re.flatMap(e=>t?.[e]===void 0?[]:[[e,t[e]]]))}}}try{Be(O.join(e,`${i}.res.json`),a),A.rmSync(O.join(e,`${i}.req.json`),{force:!0}),A.rmSync(O.join(e,`${i}.applying.json`),{force:!0}),n.delete(i)}catch{}},i=setInterval(()=>{let t=[];try{t=A.readdirSync(e)}catch{return}for(let i of t){let t=Le.exec(i)?.[1];if(t){if(A.existsSync(O.join(e,`${t}.res.json`))){A.rmSync(O.join(e,i),{force:!0});continue}n.has(t)||(n.add(t),r(i,t))}}},100);return()=>clearInterval(i)}function Ue(e,t){return t.agentId?O.join(i(e,t.id),`mailbox`):null}function We(e,t){let n=`${e}.${process.pid}.${M()}.tmp`;A.writeFileSync(n,`${JSON.stringify(t)}\n`,`utf8`),A.renameSync(n,e)}function Ge(e){let t=e instanceof Error?e.message:String(e);return/no active turn|active turn.*(?:ended|completed)|turn.*(?:already )?(?:ended|completed)|turn.*not active/i.test(t)}function R(e,t,n){return Object.assign(Error(e),{retryable:t,...n===void 0?{}:{rpcCode:n}})}function Ke(e,t,n,r){if(!e||e.id!==t||e.method!==`turn/steer`&&e.method!==`turn/interrupt`)throw R(`Invalid Codex control request.`,!1);let i=e.params;if(!i||typeof i!=`object`||i.threadId!==n)throw R(`Codex control request does not match its owning thread.`,!1);if(e.method===`turn/interrupt`){if(i.turnId!==r)throw R(`Codex turn/interrupt request does not match its owning active turn.`,!1);return{method:e.method,params:i}}if(i.expectedTurnId!==r)throw R(`Codex turn/steer request does not match its owning active turn.`,!1);let a=i.input;if(!Array.isArray(a)||a.length!==1||a[0]?.type!==`text`||typeof a[0]?.text!=`string`||!a[0].text.trim())throw R(`Invalid Codex turn/steer input schema.`,!1);return{method:e.method,params:i}}async function qe(e,{threadId:t,turnId:n}){let r=A.mkdtempSync(O.join(N.tmpdir(),`coder-codex-control-`)),i=`file:${r}`,a=new Set,o=new Set,s=!1,c=!1,l=(i=!1)=>{if(!(s&&!i||c)){c=!0;try{for(let i of A.readdirSync(r).filter(e=>e.endsWith(`.request.json`))){let c=i.slice(0,-13),l=O.join(r,i),u=O.join(r,`${c}.response.json`);if(A.existsSync(u)){A.unlinkSync(l);continue}if(o.has(c))continue;let d=`${l}.${process.pid}.processing`;try{A.renameSync(l,d)}catch{continue}o.add(c);let f=(async()=>{let r;try{if(s)throw R(`Codex owner endpoint is shutting down.`,!0);let i=Ke(JSON.parse(A.readFileSync(d,`utf8`)),c,t,n);try{let t=await e.request(i.method,i.params);r={id:c,result:t}}catch(e){let t=e;r={id:c,error:{message:e instanceof Error?e.message:String(e),retryable:Ge(e),...t.rpcCode===void 0?{}:{rpcCode:t.rpcCode}}}}}catch(e){let t=e;r={id:c,error:{message:t.message,retryable:t.retryable===!0,...t.rpcCode===void 0?{}:{rpcCode:t.rpcCode}}}}try{We(u,r)}finally{o.delete(c);try{A.unlinkSync(d)}catch{}}})();a.add(f),f.then(()=>a.delete(f),()=>a.delete(f))}}catch{}finally{c=!1}}},u=setInterval(l,10);return u.unref?.(),{endpoint:i,async close(){s||(s=!0,clearInterval(u),l(!0),await Promise.allSettled([...a]),await new Promise(e=>setTimeout(e,50)),A.rmSync(r,{recursive:!0,force:!0}))}}}function Je(e){if(e?.startsWith(`file:`)&&e.length>5){let t=O.resolve(e.slice(5)),n=O.resolve(N.tmpdir());O.dirname(t)===n&&O.basename(t).startsWith(`coder-codex-control-`)&&A.rmSync(t,{recursive:!0,force:!0})}}async function Ye(e,t,n,r=3e3,i){if(!e)return{ok:!1,retryable:!0,detail:`Codex owner endpoint is not ready.`};if(!e.startsWith(`file:`)||e.length===5)return{ok:!1,retryable:!1,detail:`Unsupported Codex control endpoint: ${e}`};let a=e.slice(5);if(!A.existsSync(a))return{ok:!1,retryable:!0,detail:`Codex owner endpoint is no longer available.`};let o=L(i),s=O.join(a,`${o}.request.json`),c=O.join(a,`${o}.response.json`);try{A.existsSync(c)||We(s,{id:o,method:t,params:n,command:i})}catch(e){return{ok:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let l=Date.now();for(;Date.now()-l<r;){try{let e=JSON.parse(A.readFileSync(c,`utf8`));try{(!i||e?.error?.retryable)&&A.unlinkSync(c)}catch{}return e?.id===o?e?.error?{ok:!1,retryable:e.error.retryable===!0,detail:String(e.error.message??`Malformed Codex owner error response.`)}:`result`in e?{ok:!0,retryable:!1,result:e.result,detail:`Codex owner accepted control.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response id.`}}catch(e){if(e.code!==`ENOENT`)return{ok:!1,retryable:!1,detail:`Invalid Codex owner response: ${e instanceof Error?e.message:String(e)}`};if(!A.existsSync(a))return{ok:!1,retryable:!1,detail:`Codex owner endpoint closed after control publication; acceptance is unknown.`}}await new Promise(e=>setTimeout(e,10))}return{ok:!1,retryable:!1,detail:`Timed out waiting for Codex owner acknowledgement.`}}const Xe=`Coder Task`;function Ze(e,t=72){let n=String(e??``).trim().replace(/\s+/g,` `);return n?n.length<=t?n:`${n.slice(0,t-3)}...`:``}function Qe(e){let t=Ze(e,56);return t?`${Xe}: ${t}`:Xe}function $e(e){return e?.params?.threadId??null}function et(e){return e?.params?.turnId?e.params.turnId:e?.params?.turn?.id?e.params.turn.id:null}function tt(e){let t=new Set;for(let n of e)for(let e of n.changes??[])e.path&&t.add(e.path);return[...t]}function nt(e,t){let n=[];for(let r of e.matchAll(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/gm)){let e=t===`delete`,i=Number(e?r[1]:r[3]),a=Number((e?r[2]:r[4])??1);!Number.isFinite(i)||!Number.isFinite(a)||n.push(a<=1?`L${i}`:`L${i}-L${i+a-1}`)}return n}function rt(e){try{let t=A.readFileSync(e,`utf8`),n=t?t.split(/\r\n|\r|\n/).length-+!!t.endsWith(`
|
|
2
|
-
`):0;return n>0?[n===1?`L1`:`L1-L${n}`]:[]}catch{return[]}}function it(e,t,n){let r=typeof e.kind==`string`?e.kind:e.kind?.type??`change`,i=e.path||`(unknown path)`,a=nt(e.diff??``,r),o=a.length||r!==`add`||!t?a:rt(i),s=typeof e.kind==`object`&&e.kind?.move_path?` -> ${n?x(n,e.kind.move_path):e.kind.move_path}`:``;return`${r} ${n?x(n,i):i}${s}${o.length?` ${o.join(`, `)}`:``}`}function at(e,t=!1,n){return(e.changes??[]).map(e=>it(e,t,n)).join(`; `)}function ot(e){let t=e.trim().split(` `)[0]??``;return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function st(e,t){let n=new Map,r=``,i=``;for(let t of e.split(/\r?\n/)){if(t.startsWith(`--- `)){r=ot(t.slice(4));continue}if(t.startsWith(`+++ `)){i=ot(t.slice(4));continue}let e=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/.exec(t);if(!e)continue;let a=Number(e[1]),o=Number(e[2]??1),s=Number(e[3]),c=Number(e[4]??1),l=c===0,u=(l?r:i)||i||r||`(unknown path)`,d=l?a:s,f=l?o:c,p=f<=1?`L${d}`:`L${d}-L${d+f-1}`,m=n.get(u)??[];m.push(p),n.set(u,m)}return[...n].map(([e,n])=>`${t?x(t,e):e} ${n.join(`, `)}`).join(`; `)}function ct(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.inputTokens),r=t(e.cachedInputTokens),i=t(e.outputTokens);return{input:n,cachedInput:r,output:i,total:t(e.totalTokens)||n+r+i}}function lt(e){if(e.tokenUsageByThread.size===0)return null;let t={input:0,cachedInput:0,output:0,total:0};for(let n of e.tokenUsageByThread.values())t.input+=n.input,t.cachedInput+=n.cachedInput,t.output+=n.output,t.total+=n.total;return t}function ut(e){return String(e??``).replace(/\s+/g,` `).trim()}function z(e){if(!e)return[];if(typeof e==`string`){let t=ut(e);return t?[t]:[]}if(Array.isArray(e))return e.flatMap(e=>z(e));if(typeof e==`object`){let t=e;if(typeof t.text==`string`)return z(t.text);if(`summary`in t)return z(t.summary);if(`content`in t)return z(t.content);if(`parts`in t)return z(t.parts)}return[]}function dt(e,t){let n=[];for(let r of[...e,...t]){let e=ut(r);!e||n.includes(e)||n.push(e)}return n}function B(e,t,n=null,r={}){!e||t==null||e({message:t,phase:n,...r})}function ft(e,t){t&&B(e,t.message,t.phase??null,t.extra??{})}function pt(e){return e.replace(/^\/(?:usr\/)?bin\/\w*sh\s+-l?c\s+/,``)}function mt(e,t){let n=e?.extra?.kind;return!e||n!==`tool`&&n!==`tool-result`||typeof t.id!=`string`?e:{...e,extra:{...e.extra,callId:t.id}}}function V(e){return e==null?``:typeof e==`string`?e:JSON.stringify(e)}function ht(e){let t=String(e.tool||e.name||e.kind||e.type||`tool`),n=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null&&![`id`,`type`,`kind`,`name`,`tool`,`status`,`result`,`results`,`output`,`error`,`contentItems`,`success`,`durationMs`,`exitCode`].includes(e))),r=Object.keys(n).length?V(n):``;return{message:r?`${t} ${r}`:t,phase:`investigating`,extra:{kind:`tool`,tool:t}}}function H(e,t){switch(e.type){case`commandExecution`:return{message:pt(String(e.command??``).trim())||`command`,phase:`running`,extra:{kind:`tool`,tool:`command`}};case`fileChange`:return{message:at(e,!1,t)||`edit`,phase:`editing`,extra:{kind:`tool`,tool:`edit`}};case`mcpToolCall`:return{message:[`${e.server}/${e.tool}`,V(e.arguments)].filter(Boolean).join(` `),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`dynamicToolCall`:return{message:[[e.namespace,e.tool||`tool`].filter(Boolean).join(`/`),V(e.arguments)].filter(Boolean).join(` `),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`webSearch`:{let t=e.action,n=Array.isArray(t?.queries)?t.queries.filter(e=>typeof e==`string`&&e.trim()):[],r=n.length?n.join(`; `):String(t?.query||e.query||``).trim()||V(t);return{message:r?`search: ${r}`:`search`,phase:`investigating`,extra:{kind:`tool`,tool:`search`}}}case`agentMessage`:case`reasoning`:case`userMessage`:return null;default:return ht(e)}}function gt(e,t){switch(e.type){case`agentMessage`:{let t=String(e.text??``).trim();return t?{message:t,phase:null,extra:{kind:`assistant`}}:null}case`reasoning`:{let t=z(e.summary).join(`
|
|
3
|
-
`);return t?{message:t,phase:null,extra:{kind:`reasoning`}}:null}case`commandExecution`:{let t=typeof e.exitCode==`number`?e.exitCode:null;return{message:String(e.aggregatedOutput??``).trim(),phase:`running`,extra:{kind:`tool-result`,tool:`command`,command:String(e.command??``).trim(),durationMs:e.durationMs,...t===null?{isError:e.status!==`completed`}:{exitCode:t}}}}case`fileChange`:return{message:at(e,!0,t)||`(details unavailable)`,phase:`editing`,extra:{kind:`tool-result`,tool:`edit`,isError:e.status!==`completed`}};case`mcpToolCall`:return{message:V(e.error??e.result)||`${e.server}/${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,tool:String(e.tool??``),durationMs:e.durationMs,isError:e.status!==`completed`||e.error!=null}};case`dynamicToolCall`:return{message:V(e.contentItems)||`${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,tool:String(e.tool??``),durationMs:e.durationMs,isError:e.status!==`completed`||e.success===!1}};case`userMessage`:return null;default:return{message:V(e.error??e.result??e.results??e.output??e.action??e),phase:`investigating`,extra:{kind:`tool-result`,tool:H(e,t)?.extra?.tool,durationMs:e.durationMs,isError:e.status===`failed`||e.status===`declined`||e.success===!1||e.error!=null}}}}function _t(e,t={}){let n,r,i=new Promise((e,t)=>{n=e,r=t});return{threadId:e,rootThreadId:e,threadIds:new Set([e]),threadTurnIds:new Map,turnId:null,bufferedNotifications:[],completion:i,resolveCompletion:n,rejectCompletion:r,finalTurn:null,completed:!1,finalAnswerSeen:!1,pendingCollaborations:new Set,activeSubagentTurns:new Set,completionTimer:null,lastAgentMessage:``,reasoningSummary:[],reasoningStartedAt:new Map,error:null,fileChanges:[],commandExecutions:[],tokenUsageByThread:new Map,lastDiffSummary:``,loggedTokens:0,reportedChanges:new Set,cwd:t.cwd??``,itemIndex:new Map,onProgress:t.onProgress??null,onHeartbeat:t.onHeartbeat??null}}function U(e){e.completionTimer&&=(clearTimeout(e.completionTimer),null)}function W(e,t=null){e.completed||(U(e),e.completed=!0,t?(e.finalTurn=t,e.turnId||=t.id??null):e.finalTurn||={id:e.turnId??`inferred-turn`,status:`completed`},e.resolveCompletion(e))}function G(e){e.completed||e.finalTurn||!e.finalAnswerSeen||e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||(U(e),e.completionTimer=setTimeout(()=>{e.completionTimer=null,!(e.completed||e.finalTurn||!e.finalAnswerSeen)&&(e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||W(e,null))},250),e.completionTimer.unref?.())}function vt(e,t){let n=$e(t);if(!n||!e.threadIds.has(n))return!1;let r=e.threadTurnIds.get(n)??null,i=et(t);return r===null||i===null||i===r}function yt(e,t,n,r=null){if(t.id&&e.itemIndex.set(t.id,t),t.type===`collabAgentToolCall`){(!r||r===e.threadId)&&(n===`started`||t.status===`inProgress`?e.pendingCollaborations.add(t.id):n===`completed`&&(e.pendingCollaborations.delete(t.id),G(e)));for(let n of t.receiverThreadIds??[])e.threadIds.add(n)}if(t.type===`agentMessage`){t.text&&(!r||r===e.threadId)&&(e.lastAgentMessage=t.text.trim(),n===`completed`&&t.phase===`final_answer`&&(e.finalAnswerSeen=!0,G(e)));return}if(t.type===`reasoning`&&n===`completed`){e.reasoningSummary=dt(e.reasoningSummary,z(t.summary));return}if(t.type===`fileChange`&&n===`completed`){e.fileChanges.push(t);return}t.type===`commandExecution`&&n===`completed`&&e.commandExecutions.push(t)}function K(e,t){switch(e.onHeartbeat?.(),t.method){case`thread/started`:e.threadIds.add(t.params.thread.id);break;case`turn/started`:e.threadIds.add(t.params.threadId),e.threadTurnIds.set(t.params.threadId,t.params.turn.id),(t.params.threadId??null)!==e.threadId&&e.activeSubagentTurns.add(t.params.threadId),B(e.onProgress,`Turn started (${t.params.turn.id}).`,`starting`,{kind:`status`,threadId:t.params.threadId??null,turnId:t.params.turn.id??null});break;case`item/started`:t.params.item?.type===`reasoning`&&t.params.item.id&&e.reasoningStartedAt.set(`${t.params.threadId}:${t.params.item.id}`,Date.now()),yt(e,t.params.item,`started`,t.params.threadId??null),ft(e.onProgress,mt(H(t.params.item,e.cwd),t.params.item));break;case`item/completed`:{let n={...e.itemIndex.get(t.params.item.id),...t.params.item};if(yt(e,n,`completed`,t.params.threadId??null),n?.type===`fileChange`)for(let t of n.changes??[])t.path&&e.reportedChanges.add(x(e.cwd,t.path));let r=mt(gt(n,e.cwd),n);if(r?.extra?.kind===`tool-result`){let t=H(n,e.cwd);r.extra={...r.extra,callMessage:n.type===`fileChange`?r.message:t?.message}}if(n?.type===`reasoning`){let i=`${t.params.threadId}:${n.id}`,a=e.reasoningStartedAt.get(i);e.reasoningStartedAt.delete(i),r&&(r.extra={...r.extra,durationMs:Math.max(0,Date.now()-(a??Date.now()))})}ft(e.onProgress,r);break}case`thread/tokenUsage/updated`:{let n=ct(t.params?.tokenUsage?.total??t.params?.tokenUsage),r=$e(t);if(n&&r){e.tokenUsageByThread.set(r,n);let t=lt(e);t&&(!e.loggedTokens||t.total-e.loggedTokens>=1e3)&&(e.loggedTokens=t.total,e.onProgress?.({kind:`usage`,tokens:t}))}break}case`turn/diff/updated`:{let n=st(String(t.params?.diff??``),e.cwd).split(`; `).filter(t=>!e.reportedChanges.has(t.split(` `)[0]??``)).join(`; `);n&&n!==e.lastDiffSummary&&(e.lastDiffSummary=n,B(e.onProgress,`changed: ${n}`,`editing`,{kind:`status`}));break}case`item/autoApprovalReview/completed`:{let n=t.params?.review??{},r=t.params?.action??{},i=pt(String(r.command??r.type??``).trim());B(e.onProgress,`Auto-review ${n.status}. ${Ze(i,48)}${n.rationale?`. ${Ze(n.rationale,320)}`:``}`,null,{kind:`auto-review`,decision:String(n.status??``),...n.riskLevel?{riskLevel:String(n.riskLevel)}:{},...i?{summary:`run command: ${i}`}:{},...n.rationale?{reason:String(n.rationale)}:{}});break}case`error`:e.error=t.params.error,B(e.onProgress,`Codex error: ${t.params.error.message}`,`failed`,{kind:`error`});break;case`turn/completed`:if((t.params.threadId??null)!==e.threadId){e.activeSubagentTurns.delete(t.params.threadId),G(e);break}B(e.onProgress,`Turn ${t.params.turn.status}.`,`finalizing`,{kind:`status`}),W(e,t.params.turn)}}async function bt(e,t,n,r={}){let i=_t(t,r),a=e.notificationHandler;e.setNotificationHandler(e=>{if(!i.turnId){i.bufferedNotifications.push(e);return}if(e.method===`thread/started`){K(i,e);return}if(!vt(i,e)){a?.(e);return}K(i,e)});let o=r.onApprovalRequest;o&&e.setServerRequestHandler((e,t)=>o(e,t,i));try{let t=await n();i.turnId=t.turn?.id??null,i.turnId&&(i.threadTurnIds.set(i.threadId,i.turnId),await r.onTurnStarted?.(i.turnId));for(let e of i.bufferedNotifications)vt(i,e)?K(i,e):a?.(e);i.bufferedNotifications.length=0,t.turn?.status&&t.turn.status!==`inProgress`&&W(i,t.turn);let o=e.exitPromise?.then(()=>{throw e.exitError??Error(`codex app-server connection closed before the turn completed.`)});return await(o?Promise.race([i.completion,o]):i.completion)}finally{U(i),e.setNotificationHandler(a??null),e.setServerRequestHandler(null)}}function xt(e,t,n=[]){return e!==`workspace-write`||!n.length?null:{type:`workspaceWrite`,writableRoots:n,networkAccess:t??!1}}const St=`coder_read_only`;function Ct(e,t=[]){return(e??`read-only`)!==`read-only`||!t.length?null:{default_permissions:St,[`permissions.${St}`]:{extends:`:read-only`,filesystem:Object.fromEntries(t.map(e=>[e,`write`]))}}}function wt(e=[],t=[],n=!1){let r={};!n&&t.length&&(r.mcp_servers=Object.fromEntries(t.map(e=>[e,{enabled:!1}])));let i=new Set([...t,...e.map(e=>e.name)]);for(let n of e){let e=n.name;if(t.includes(e)){for(let t=1;i.has(e);t++)e=`${n.name}_coder_${t}`;i.add(e)}r[`mcp_servers.${e}`]={...n.url?{url:n.url,...n.headers?{http_headers:n.headers}:{}}:{command:n.command,args:n.args??[],...n.env?{env:n.env}:{}},...n.tools?.length?{enabled_tools:n.tools}:{}}}return r}function Tt(e){return e.split(/\r?\n/).map(e=>e.trimEnd()).filter(e=>e&&!e.startsWith(`WARNING: proceeding, even though we could not update PATH:`)).join(`
|
|
4
|
-
`)}async function Et(e,t,n={}){let r=n.connect??S.connect,i={...n.networkAccess===void 0?{}:{networkAccess:n.networkAccess},nativeMcp:n.nativeMcp??!1},a=null;try{a=await r(e,i);let n=await t(a);return await a.close(),n}catch(n){let o=n,s=a?.transport===`broker`||!!process.env.CODER_APP_SERVER_ENDPOINT,c=a?.transport===`broker`&&o?.rpcCode===-32001||s&&(o?.code===`ENOENT`||o?.code===`ECONNREFUSED`);if(a&&=(await a.close().catch(()=>{}),null),!c)throw n;let l=await r(e,{...i,disableBroker:!0});try{return await t(l)}finally{await l.close()}}}function q(e){let t=process.env.CODEX_AUTH_JSON;if(t){let e=O.join(N.homedir(),`.codex`),n=O.join(e,`auth.json`);if(!A.existsSync(n)){A.mkdirSync(e,{recursive:!0,mode:448});try{A.writeFileSync(n,t,{encoding:`utf8`,flag:`wx`,mode:384})}catch(e){if(e.code!==`EEXIST`)throw e}}}let n=ne(`codex`,[`--version`],{cwd:e,env:T()});if(!n.available)return n;let r=ne(`codex`,[`app-server`,`--help`],{cwd:e,env:T()});return r.available?{available:!0,detail:`${n.detail}; app-server runtime available`}:{available:!1,detail:`${n.detail}; app-server runtime unavailable: ${r.detail}`}}async function Dt(e){let t=q(e);if(!t.available)return{available:!1,loggedIn:!1,detail:t.detail};let n=null;try{n=await S.connect(e,{reuseExistingBroker:!0});let t=await n.request(`account/read`,{refreshToken:!1}),r=t?.account??null;return r?.type===`chatgpt`?{available:!0,loggedIn:!0,detail:r.email?`ChatGPT login active for ${r.email}`:`ChatGPT login active`}:r?.type===`apiKey`?{available:!0,loggedIn:!0,detail:`API key configured`}:t?.requiresOpenaiAuth===!1?{available:!0,loggedIn:!0,detail:`Active provider does not require OpenAI authentication`}:{available:!0,loggedIn:!1,detail:"Not authenticated. Run `codex login`."}}catch(e){let t=j(`codex`,[`login`,`status`],{encoding:`utf8`,env:T()}),n=`${t.stdout??``}${t.stderr??``}`.trim();return t.status===0?{available:!0,loggedIn:!0,detail:n||`Logged in`}:{available:!0,loggedIn:!1,detail:n||(e instanceof Error?e.message:String(e))}}finally{await n?.close().catch(()=>{})}}async function Ot(e,{endpoint:t,threadId:n,turnId:r}){if(!n||!r)return{interrupted:!1,detail:`missing threadId or turnId`};let i=await Ye(t,`turn/interrupt`,{threadId:n,turnId:r});return i.ok?{interrupted:!0,detail:`Interrupted ${r} on ${n}.`}:{interrupted:!1,detail:i.detail}}async function kt(e,{endpoint:t,threadId:n,turnId:r,text:i,command:a}){if(!n)return{steered:!1,retryable:!0,detail:`missing active threadId`};if(!r)return{steered:!1,retryable:!0,detail:`missing active turnId`};let o=i.trim();if(!o)return{steered:!1,retryable:!1,detail:`empty follow-up`};let s=await Ye(t,`turn/steer`,{threadId:n,input:[{type:`text`,text:o,text_elements:[]}],expectedTurnId:r},3e3,a);return s.ok?s.result?.turnId===r?{steered:!0,retryable:!1,detail:`Steered follow-up into ${r} on ${n}.`}:{steered:!1,retryable:!1,detail:`turn/steer returned unexpected turnId ${String(s.result?.turnId??`(missing)`)}; expected ${r}`}:{steered:!1,retryable:s.retryable,detail:s.detail}}async function At(e,t={},n={}){let r=q(e);if(!r.available)throw Error(`Codex CLI is not available: ${r.detail}`);let i=t.prompt?.trim();if(!i)throw Error(`A prompt is required.`);let a=process.env.CODER_MACHINE_SANDBOX===`1`&&(t.sandbox??`read-only`)!==`read-only`?`danger-full-access`:t.sandbox,o=Ct(a,t.writableRoots),s=o?{}:{sandbox:a??`read-only`},c={...t.configOverrides??{},...o},u=Object.keys(c).length?c:null,d=xt(a,t.networkAccess,t.writableRoots),p=async n=>{let r=null,a,o=await n.request(`config/read`,{cwd:e,includeLayers:!1}),c={...t.modelProvider?{}:{model_reasoning_summary:`auto`},...u,...wt(t.mcpServers,Object.keys(o.config?.mcp_servers??{}),t.nativeMcp),...t.nativeMcp?{}:{"features.apps":!1,"features.plugins":!1}};if(t.resumeThreadId)B(t.onProgress,`Resuming thread ${t.resumeThreadId}.`,`starting`,{kind:`status`}),l(t.resumeThreadId)&&await f(t.resumeThreadId),a=(await n.request(`thread/resume`,{threadId:t.resumeThreadId,cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:c,approvalPolicy:t.approvalPolicy??`never`,...s,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{}})).thread.id;else if(B(t.onProgress,`Starting Codex task thread.`,`starting`,{kind:`status`}),a=(await n.request(`thread/start`,{cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:c,approvalPolicy:t.approvalPolicy??`never`,...s,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{},serviceName:`coder_runtime`,ephemeral:t.ephemeral??!1})).thread.id,!(t.ephemeral??!1))try{await n.request(`thread/name/set`,{threadId:a,name:Qe(i)})}catch(e){let t=String(e?.message??e??``);if(!t.includes(`unknown variant`)&&!t.includes(`unknown method`))throw e}B(t.onProgress,`Thread ready (${a}).`,`starting`,{kind:`status`,threadId:a});let p;try{p=await bt(n,a,()=>n.request(`turn/start`,{threadId:a,input:[{type:`text`,text:i,text_elements:[]}],model:t.model??null,effort:t.effort??null,outputSchema:t.outputSchema??null,...d?{sandboxPolicy:d}:{}}),{cwd:e,onProgress:t.onProgress,onHeartbeat:t.onHeartbeat,onApprovalRequest:t.onApprovalRequest,onTurnStarted:t.onControlReady?async e=>{r=await qe(n,{threadId:a,turnId:e}),t.onControlReady?.(r.endpoint,a,e)}:void 0}),t.onResult?.({status:p.finalTurn?.status===`completed`?0:1,threadId:a,turnId:p.turnId,finalMessage:p.lastAgentMessage,error:p.error??null})}finally{await r?.close()}return{status:p.finalTurn?.status===`completed`?0:1,threadId:a,turnId:p.turnId,finalMessage:p.lastAgentMessage,reasoningSummary:p.reasoningSummary,turn:p.finalTurn,error:p.error??p.finalTurn?.error??null,stderr:Tt(n.stderr),fileChanges:p.fileChanges,touchedFiles:tt(p.fileChanges),tokens:lt(p),model:t.model??null,commandExecutions:p.commandExecutions}},m=async e=>{e.setNoticeHandler?.(e=>B(t.onProgress,e,`starting`,{kind:`status`}));try{let t=await p(e);return I(t.error?.message)&&await jt(e),t}catch(t){throw I(F(t))&&await jt(e),t}},h=()=>Et(e,m,{...n,networkAccess:t.networkAccess,nativeMcp:t.nativeMcp}),g=!1,_=()=>(g=!0,B(t.onProgress,`Codex login changed; restarted the Codex app-server and retrying the turn once.`,`starting`,{kind:`status`}),h());try{let e=await h().catch(e=>{if(!I(F(e)))throw e;return _()}),n=!e.touchedFiles?.length&&!e.commandExecutions.length;!g&&n&&I(e.error?.message)&&(e=await _());let r=Me(e.error?.message,t.model);return r?{...e,error:{...e.error,message:r}}:e}catch(e){let n=Me(F(e),t.model);throw n?Error(n):e}}async function jt(e){e.transport===`broker`&&await e.request(s,{}).catch(()=>{})}const J=`@wular/coder`,Mt=`https://registry.npmjs.org/${J}/latest`;function Nt(){return v(`update-check.json`)}function Y(e,t){let n=String(e).split(`.`).map(e=>parseInt(e,10)||0),r=String(t).split(`.`).map(e=>parseInt(e,10)||0);for(let e=0;e<3;e+=1){if((n[e]??0)>(r[e]??0))return 1;if((n[e]??0)<(r[e]??0))return-1}return 0}function Pt(){try{return JSON.parse(A.readFileSync(Nt(),`utf8`))}catch{return null}}function Ft(e){try{A.mkdirSync(v(),{recursive:!0}),A.writeFileSync(Nt(),JSON.stringify(e))}catch{}}function It(){try{A.rmSync(Nt(),{force:!0})}catch{}}function Lt(e,t){if(k.env.CODER_NO_UPDATE_CHECK||k.env.CI)return;let n=Pt();if(!n?.checkedAt||Date.now()-n.checkedAt>864e5)try{De(k.execPath,[t,`upgrade`,`refresh`],{detached:!0,stdio:`ignore`}).unref()}catch{}return n?.latest&&Y(n.latest,e)>0?n.latest:void 0}async function Rt(e){let t=Pt()?.latest??null;try{let e=new AbortController,n=setTimeout(()=>e.abort(),3e3),r=await fetch(Mt,{signal:e.signal,headers:{accept:`application/json`}});if(clearTimeout(n),r.ok){let e=await r.json();e?.version&&(t=e.version)}}catch{}Ft({checkedAt:Date.now(),latest:t,current:e})}function zt(e){let t=e;try{t=A.realpathSync(e)}catch{}let n=t.replace(/\\/g,`/`);return/\/\.bun\//.test(n)?{pm:`bun`,command:[`bun`,`add`,`-g`,`${J}@latest`]}:/\/\.pnpm\//.test(n)||/\/pnpm(-global)?\//i.test(n)||/\/Library\/pnpm\//.test(n)?{pm:`pnpm`,command:[`pnpm`,`add`,`-g`,`${J}@latest`]}:/\/\.config\/yarn\/global\//.test(n)||/\/yarn\/global\//.test(n)||/\/Yarn\/Data\/global\//.test(n)?{pm:`yarn`,command:[`yarn`,`global`,`add`,`${J}@latest`]}:{pm:`npm`,command:[`npm`,`install`,`-g`,`${J}@latest`]}}function Bt(e){j(`claude`,[`plugin`,`marketplace`,`remove`,`coder-plugins`],{encoding:`utf8`});let t=j(`claude`,[`plugin`,`marketplace`,`add`,e],{encoding:`utf8`}),n=j(`claude`,[`plugin`,`install`,`coder@coder-plugins`],{encoding:`utf8`}),r=t.status===0&&n.status===0;return{marketplace:e,installed:r,note:r?`Plugin installed; restart any running Claude Code session to load it.`:`Automatic install failed (${(n.stderr||t.stderr||`claude not found`).trim()}); run: claude plugin marketplace add "${e}" && claude plugin install coder@coder-plugins`}}function Vt(){return O.join(N.homedir(),`.agents`,`skills`,`coder`)}function Ht(){try{let e=A.readFileSync(O.join(Vt(),`SKILL.md`),`utf8`);return/^\s*version:\s*(\S+)/m.exec(e)?.[1]??null}catch{return null}}function Ut(e){let t=Vt();try{let n=O.join(e,`plugins`,`agents`,`skills`,`coder`);A.rmSync(t,{recursive:!0,force:!0}),A.mkdirSync(t,{recursive:!0}),A.cpSync(n,t,{recursive:!0});let r=O.join(t,`SKILL.md`),i=A.readFileSync(r,`utf8`).replace(`
|
|
5
|
-
---
|
|
6
|
-
`,`\nmetadata:\n version: ${C()}\n---\n`);return A.writeFileSync(r,i),{marketplace:t,installed:!0,note:`Skill installed to ~/.agents/skills/coder; restart running sessions to load it.`}}catch(e){return{marketplace:t,installed:!1,note:`Skill install failed: ${e instanceof Error?e.message:String(e)}`}}}function Wt(e){if(e.available)return null;let t=j(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`});return t.status===0?{installed:!0,note:`codex CLI installed (runs your custom models; no login needed for them)`}:{installed:!1,note:`custom models run on the codex CLI and it is not installed; auto-install failed: ${(t.stderr||`npm not found`).trim()}. Run: npm install -g @openai/codex`}}const Gt={codex:{"gpt-6-astra":`0.154.0`,"gpt-6-sol":`0.156.1`,"gpt-6-luna":`0.156.1`,"gpt-6.1-sol":`0.159.1`},claude:{sonnet:`2.1.197`,fable:`2.1.257`,opus:`2.1.280`}};function Kt(e){let t=/(\d+\.\d+\.\d+)/.exec(String(e??``));return t?t[1]:null}function qt(e,t,n){let r=t?Gt[e][t]:void 0,i=Kt(n.detail);return!r||!i||Y(i,r)>=0?null:`${e} ${i} predates ${t} (needs ${r}), so it may fail or run another model. Run: ${e} update`}function Jt(e){if(!e.available)return null;let t=Kt(e.detail);if(!t||Y(t,`0.159.1`)>=0)return null;let n=j(`codex`,[`update`],{encoding:`utf8`});return n.status!==0&&(n=j(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`})),n.status===0?{updated:!0,from:t}:{updated:!1,from:t,note:`codex ${t} is too old for the default codex model (needs >= 0.159.1); auto-update failed: ${(n.stderr||`codex/npm not found`).trim()}. Run: codex update`}}async function Yt(e,t={},n){let r=t.hosts??[],i=r.find(e=>![`claude`,`codex`,`agents`].includes(e));if(i)throw new P(`invalid-option`,`Unknown host "${i}". Use claude, codex, or agents.`,{hint:`Codex, Pi, OpenCode, and other Agent Skills hosts: coder setup-host agents`});let a=e=>t[e]||r.includes(e);n?.();let o=q(e),s=Jt(o);s?.updated&&(o=q(e));let c=o.available?await Dt(e):{loggedIn:!1,detail:o.detail},l=Q(),u=l.available?cn():{loggedIn:!1,detail:l.detail},d=g();if(!A.existsSync(d)){let e=o.available?[`codex`,`claude`]:l.available?[`claude`,`codex`]:[`codex`,`claude`];m({...we,chain:e})}let f=re(),p=a(`claude`)?Bt(f):null,h=a(`agents`)||a(`codex`)?Ut(f):null,_=Ce(e),v=o.available&&c.loggedIn||l.available&&u.loggedIn;return{codex:{available:o.available,detail:o.detail,auth:c.detail,loggedIn:c.loggedIn},...s?{codexUpdate:s}:{},claude:{available:l.available,detail:l.detail,auth:u.detail,loggedIn:u.loggedIn},configFile:d,runtime:Ee(new URL(`../bin/coder.mjs`,import.meta.url)),...p?{claudePlugin:p}:{},...h?{agentsSkill:h}:{},config:_,ready:v}}async function Xt(e={},t){let n=!e.pluginsOnly,r=!e.cliOnly,i=re(),a=O.join(i,`plugins/claude/.claude-plugin/plugin.json`),o={cli:C(),claude:u(a)},s={};if(n){let n=zt(ve),[r,...i]=e.pm===`npm`?[`npm`,`install`,`-g`,`@wular/coder@latest`]:e.pm===`pnpm`?[`pnpm`,`add`,`-g`,`@wular/coder@latest`]:e.pm===`yarn`?[`yarn`,`global`,`add`,`@wular/coder@latest`]:e.pm===`bun`?[`bun`,`add`,`-g`,`@wular/coder@latest`]:n.command,a=e.pm??n.pm;t?.(`via ${a}`);let c=j(r,i,{encoding:`utf8`});if(c.error?.code===`ENOENT`)throw new P(`invalid-option`,`${a} not found on PATH. Re-run with --pm <npm|pnpm|yarn|bun>, or update manually: ${r} ${i.join(` `)}`);if(c.status!==0){let e=(c.stderr||c.stdout||``).trim();throw new P(`invalid-option`,`CLI update failed (${a}).${e?`\n${e}`:``}\nRun manually: ${r} ${i.join(` `)}`)}It();let l=C();s.cli={pm:a,from:o.cli,to:l,changed:l!==o.cli}}if(r){if(e.claude||!e.codex&&Q().available){let e=Bt(i);s.claudePlugin={installed:e.installed,note:e.note,from:o.claude,to:u(a)}}if(A.existsSync(Vt())){let e=Ht(),t=Ut(i);s.agentsSkill={installed:t.installed,note:t.note,from:e,to:Ht()}}}return s}const Zt=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]),X=new Map,Qt=`CODER_CLAUDE_VERSION`;function $t(e){let t=e=>e&&typeof e==`object`&&(typeof e.data==`string`||typeof e.blob==`string`||Object.values(e).some(t)),n=e=>typeof e==`string`?e:t(e)||[`image`,`document`,`audio`,`video`,`file`].includes(e?.type)?`[${e?.type??`binary`}]`:typeof e?.text==`string`?e.text:e==null?``:JSON.stringify(e);return Array.isArray(e)?e.map(n).join(``):n(e)}function en(e){if(!e)return 0;let t=e.split(/\r\n|\r|\n/);return t.at(-1)===``&&t.pop(),Math.max(1,t.length)}function tn(e,t,n=!1){if(!t)return[];let r;try{r=A.readFileSync(e,`utf8`)}catch{return[]}let i=[],a=0;for(;a<=r.length;){let e=r.indexOf(t,a);if(e<0)break;let o=en(r.slice(0,e))+1,s=Math.max(1,en(t));if(i.push(s===1?`L${o}`:`L${o}-L${o+s-1}`),!n)break;a=e+Math.max(t.length,1)}return i.length>4?[...i.slice(0,4),`+${i.length-4} matches`]:i}function nn(e){let t=(typeof e==`string`?e:JSON.stringify(e)??String(e)).replace(/\s+/g,` `).trim();return t.length>80?`${t.slice(0,80)}…`:t}function rn(e,t,n){let r=String(t.file_path??t.notebook_path??t.path??``),i=r?O.isAbsolute(r)?r:O.resolve(n,r):``,a=r?x(n,i)||r:`(unknown path)`,o=t.path?` in ${x(n,String(t.path))}`:``;if(e===`Write`){let e=en(String(t.content??``));return`Write ${a} ${e?`L1-L${e}`:`(empty file)`}`}if(e===`Edit`){let e=tn(i,String(t.old_string??``),t.replace_all===!0);return`Edit ${a}${e.length?` ${e.join(`, `)}`:``}`}if(e===`MultiEdit`){let e=Array.isArray(t.edits)?t.edits:[],n=e.flatMap(e=>tn(i,String(e?.old_string??``),e?.replace_all===!0));return`MultiEdit ${a}${n.length?` ${n.join(`, `)}`:``} (${e.length} edits)`}if(e===`NotebookEdit`){let e=t.cell_id??t.cell_number;return`NotebookEdit ${a}${e==null?``:` cell ${e}`}`}if(e===`Read`){let e=Number(t.offset??0),n=Number(t.limit??0);return`Read ${a}${e&&n?` L${e}-L${e+n-1}`:e?` from L${e}`:``}`}if(e===`Bash`)return`Bash ${String(t.command??``).trim()||`(no command)`}`;if(e===`Glob`)return`Glob ${String(t.pattern??``)}${o}`;if(e===`Grep`){let e=t.glob?` (${String(t.glob)})`:``;return`Grep ${String(t.pattern??``)}${o}${e}`}if(e===`Task`)return`Task ${t.subagent_type?`${String(t.subagent_type)}: `:``}${nn(t.description??t.prompt??``)}`;if(e===`WebFetch`)return`WebFetch ${String(t.url??``)}`;if(e===`WebSearch`)return`WebSearch ${String(t.query??``)}`;if(e===`TodoWrite`){let e=Array.isArray(t.todos)?t.todos:[];return`TodoWrite ${e.length} item${e.length===1?``:`s`}`}let s=Object.entries(t??{}).map(([e,t])=>`${e}=${nn(t)}`).join(` `);return s?`${e} ${s}`:e}function an(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.input_tokens),r=t(e.cache_read_input_tokens)+t(e.cache_creation_input_tokens),i=t(e.output_tokens);return{input:n,cachedInput:r,output:i,total:n+r+i}}function Z(e,t,n){let r=k.platform===`win32`?t[Object.keys(t).sort().find(e=>e.toLowerCase()===`path`)??`PATH`]??k.env.PATH??``:t.PATH??`/usr/bin:/bin`,i=/[\\/]/.test(e)?[``]:[...k.platform===`win32`?[n]:[],...r.split(O.delimiter)],a=k.platform===`win32`&&!O.extname(e)?[``,...(t.PATHEXT??`.EXE;.COM`).split(`;`)]:[``];for(let t of i)for(let r of a){let i=O.resolve(n,t,e+r);try{if(A.accessSync(i,A.constants.X_OK),A.statSync(i).isFile())return A.realpathSync(i)}catch{}}return O.resolve(n,e)}function on(e,t){let n=Z(`claude`,T(e),t),r=X.get(n);return{[Qt]:r===void 0?void 0:JSON.stringify({executable:n,detail:r})}}function sn(e,t,n){let r=Z(e,t,n),i=X.get(r);if(i!==void 0)return i;try{let e=JSON.parse(t[Qt]??`null`);if(e?.executable===r&&typeof e.detail==`string`)return X.set(r,e.detail),e.detail}catch{}return Q(e,t,n).detail}function Q(e=`claude`,t=k.env,n=k.cwd()){t=T(t);let r=Z(e,t,n),i=j(e,[`--version`],{encoding:`utf8`,env:t,cwd:n}),a=!i.error&&i.status===0,o=a?String(i.stdout||``).trim():`claude CLI not found on PATH (npm install -g @anthropic-ai/claude-code)`;return X.set(r,o),{available:a,detail:o}}function cn(){if(k.env.CLAUDE_CODE_OAUTH_TOKEN)return{loggedIn:!0,detail:`CLAUDE_CODE_OAUTH_TOKEN configured`};if(k.env.ANTHROPIC_API_KEY)return{loggedIn:!0,detail:`ANTHROPIC_API_KEY configured`};let e=j(`claude`,[`auth`,`status`,`--json`],{encoding:`utf8`,env:T()});if(e.error||e.status!==0)return{loggedIn:!1,detail:`not logged in`};try{let t=JSON.parse(String(e.stdout||``));return t.loggedIn?{loggedIn:!0,detail:[t.email,t.subscriptionType].filter(Boolean).join(`, `)||`logged in`}:{loggedIn:!1,detail:`not logged in`}}catch{return{loggedIn:!1,detail:`unknown`}}}function ln(e,t){let n=t.permissions??`auto`,r=t.mcpServers??[],i={};n===`auto`&&t.approvalTaskId&&(i.coder={type:`stdio`,command:k.execPath,args:[ve,`task`,`mcp`,t.approvalTaskId,`--cwd`,e]});for(let e of r)i[e.name]=e.url?{type:e.type??`http`,url:e.url,...e.headers?{headers:e.headers}:{}}:{type:`stdio`,command:e.command,args:e.args??[],...e.env?{env:e.env}:{}};return i}function un(e,t,n,r,i){let a=[`-p`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--replay-user-messages`],o=Kt(i);if(o&&Y(o,`2.1.94`)>=0&&a.push(`--thinking-display`,`summarized`),a.push(t.resumeSessionId?`--resume`:`--session-id`,n),t.model&&a.push(`--model`,t.model),t.effort&&a.push(`--effort`,t.effort),t.outputSchema){let{$schema:e,...n}=t.outputSchema;a.push(`--json-schema`,JSON.stringify(n))}let s=t.permissions??`auto`,c=t.additionalDirectories??[],l=s===`read-only`?t.readOnlyAllowedTools??[]:[],u=t.mcpServers??[],d=ln(e,t),f=s===`auto`&&t.approvalTaskId,p=u.flatMap(e=>e.tools?.length?e.tools.map(t=>`mcp__${e.name}__${t}`):[`mcp__${e.name}`]),m=Object.keys(d).length?[`--mcp-config`,r??O.join(t.taskRoot??e,`.claude-mcp.json`)]:t.nativeMcp?[]:[`--mcp-config`,`{"mcpServers":{}}`];t.nativeMcp||a.push(`--strict-mcp-config`,`--no-chrome`),f?(a.push(`--permission-mode`,`default`,...m,`--permission-prompt-tool`,`mcp__coder__approval_prompt`),p.length&&a.push(`--allowedTools`,...p)):l.length?a.push(...ie.filter(e=>k.env.CODER_MACHINE_SANDBOX!==`1`||e!==`Bash`),...m,`--allowedTools`,...l,...p):(a.push(...ye[s]??ye.auto,...m),p.length&&a.push(`--allowedTools`,...p));let h=t.writableDirectories??[];for(let e of[...c,...s===`read-only`?[]:h])a.push(`--add-dir`,e);let g=se(s,e,t.allowedNetworkHosts??[],c,h,k.env[ae]!==`1`),_={...g?JSON.parse(g):{},...t.nativeMcp?{}:{disableClaudeAiConnectors:!0}};return Object.keys(_).length&&a.push(`--settings`,JSON.stringify(_)),a}function dn(e,t){return Object.assign(Error(e),{retryable:t})}function fn(e,t){let n=t&&L(t),r=n&&`${n.slice(0,14)}5${n.slice(15,19)}${(Number.parseInt(n[19],16)&3|8).toString(16)}${n.slice(20)}`;return{type:`user`,...r?{uuid:r}:{},message:{role:`user`,content:[{type:`text`,text:e}]}}}function pn(e){let t=!0;return{sendInitial(t,n){return new Promise((r,i)=>{e(`${JSON.stringify(fn(t,n))}\n`,e=>{e?i(e):r()})})},sendSteer(n,r){return t?new Promise((t,i)=>{e(`${JSON.stringify(fn(n,r))}\n`,e=>{if(!e){t();return}let n=e.code,r=n===`EPIPE`||n===`ERR_STREAM_DESTROYED`||n===`ERR_STREAM_WRITE_AFTER_END`;i(dn(`Failed to write Claude live steer: ${e.message}`,r))})}):Promise.reject(dn(`Claude turn is no longer accepting live input.`,!0))},stopAccepting(){t=!1}}}function mn(e,t){let n=`${e}.${k.pid}.${M()}.tmp`;A.writeFileSync(n,`${JSON.stringify(t)}\n`,`utf8`),A.renameSync(n,e)}async function hn(e){let t=A.mkdtempSync(O.join(N.tmpdir(),`coder-claude-steer-`)),n=`file:${t}`,r=new Set,i=new Set,a=!1,o=!1,s=(n=!1)=>{if(!(a&&!n||o)){o=!0;try{for(let n of A.readdirSync(t).filter(e=>e.endsWith(`.request.json`))){let a=n.slice(0,-13),o=O.join(t,n),s=O.join(t,`${a}.response.json`);if(A.existsSync(s)){A.unlinkSync(o);continue}if(i.has(a))continue;let c=`${o}.${k.pid}.processing`;try{A.renameSync(o,c)}catch{continue}i.add(a);let l=(async()=>{let t;try{let n=JSON.parse(A.readFileSync(c,`utf8`)),r=typeof n?.params?.text==`string`?n.params.text.trim():``;if(n?.method!==`turn/steer`||!r||n?.id!==a)t={id:a,error:{message:`Invalid Claude steer request.`,retryable:!1}};else try{await e(r,n.command),t={id:a,result:{accepted:!0}}}catch(e){let n=e;t={id:a,error:{message:n.message,retryable:n.retryable===!0}}}}catch(e){t={id:a,error:{message:`Invalid Claude steer JSON: ${e instanceof Error?e.message:String(e)}`,retryable:!1}}}try{mn(s,t)}finally{i.delete(a);try{A.unlinkSync(c)}catch{}}})();r.add(l),l.then(()=>r.delete(l),()=>r.delete(l))}}catch{}finally{o=!1}}},c=setInterval(s,10);return{endpoint:n,async close(){a=!0,clearInterval(c),s(!0),await Promise.allSettled([...r]),await new Promise(e=>setTimeout(e,50)),A.rmSync(t,{recursive:!0,force:!0})}}}async function gn(e,t,n=3e3,r){if(!e)return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is not ready.`};let i=t.trim();if(!i)return{steered:!1,retryable:!1,detail:`empty follow-up`};if(!e.startsWith(`file:`)||e.length===5)return{steered:!1,retryable:!1,detail:`Unsupported Claude steer endpoint: ${e}`};let a=e.slice(5);if(!A.existsSync(a))return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is no longer available.`};let o=L(r),s=O.join(a,`${o}.request.json`),c=O.join(a,`${o}.response.json`);try{A.existsSync(c)||mn(s,{id:o,method:`turn/steer`,params:{text:i},command:r})}catch(e){return{steered:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let l=Date.now();for(;Date.now()-l<n;){try{let e=JSON.parse(A.readFileSync(c,`utf8`));try{(!r||e?.error?.retryable)&&A.unlinkSync(c)}catch{}return e?.result?.accepted===!0?{steered:!0,retryable:!1,detail:`Claude accepted the live follow-up.`}:{steered:!1,retryable:e?.error?.retryable===!0,detail:String(e?.error?.message??`Malformed Claude steer response.`)}}catch(e){if(e.code!==`ENOENT`)return{steered:!1,retryable:!1,detail:`Invalid Claude steer response: ${e instanceof Error?e.message:String(e)}`}}await new Promise(e=>setTimeout(e,10))}return{steered:!1,retryable:!1,detail:`Timed out waiting for Claude live steer acknowledgement.`}}async function _n(e,t){let n=t.resumeSessionId??M(),r=ln(e,t),i=Object.keys(r).length?O.join(t.taskRoot??e,`.claude-mcp-${M()}.json`):void 0;i&&(A.mkdirSync(O.dirname(i),{recursive:!0}),A.writeFileSync(i,`${JSON.stringify({mcpServers:r})}\n`,{encoding:`utf8`,flag:`wx`,mode:384}));let a=T({...k.env,...t.env}),o=un(e,t,n,i,sn(t.executable??`claude`,a,e)),s=()=>{if(i)try{A.unlinkSync(i)}catch{}};return t.onProgress?.({kind:`status`,message:`claude turn started (session ${n})`,threadId:n}),new Promise((r,i)=>{let c=De(t.executable??`claude`,o,{cwd:e,stdio:[`pipe`,`pipe`,`pipe`],env:a}),l=``,u=``,d=[],f=null,p=n,m=null,h=!1,g=pn((e,t)=>c.stdin.write(e,t)),_=Date.now(),v=new Map,y=0,b=0,ee=new Set,x=n=>{if(!(!n||typeof n!=`object`)){if(s(),t.onHeartbeat?.(),n.type===`system`&&n.subtype===`init`&&n.session_id)p=n.session_id;else if(n.type===`assistant`||n.type===`user`){let r=n.type===`assistant`?an(n.message?.usage):null;if(r){y+=r.output;let e=r.input+r.cachedInput+y;(!b||e-b>=1e3)&&(b=e,t.onProgress?.({kind:`usage`,tokens:{...r,output:y,total:e},threadId:p}))}for(let r of n.message?.content??[])if(r?.type===`tool_use`||r?.type?.endsWith(`_tool_use`)){let n=String(r.name??`Tool`);if(r.id&&v.set(String(r.id),{name:n,at:Date.now()}),Zt.has(n)){let t=String(r.input?.file_path??r.input?.notebook_path??``);t&&ee.add(O.isAbsolute(t)?t:O.resolve(e,t))}t.onProgress?.({kind:`tool`,tool:n,...r.id?{callId:String(r.id)}:{},message:rn(n,r.input??{},e),threadId:p})}else if(r?.type===`tool_result`||r?.type?.endsWith(`_tool_result`)){let e=$t(r.content).trim(),n=r.is_error===!0||r.content?.type?.endsWith(`_error`)===!0,i=r.tool_use_id?v.get(String(r.tool_use_id)):void 0;r.tool_use_id&&v.delete(String(r.tool_use_id)),t.onProgress?.({kind:`tool-result`,...r.tool_use_id?{callId:String(r.tool_use_id)}:{},...i?{tool:i.name,durationMs:Date.now()-i.at}:{},...n?{isError:!0}:{},message:e||(n?`(tool failed with no output)`:`(no output)`),threadId:p})}else n.type===`assistant`&&r?.type===`text`&&typeof r.text==`string`&&r.text.trim()?t.onProgress?.({kind:`assistant`,message:r.text.trim(),threadId:p}):n.type===`assistant`&&r?.type===`thinking`&&typeof r.thinking==`string`&&r.thinking.trim()&&t.onProgress?.({kind:`reasoning`,message:r.thinking.trim(),durationMs:Math.max(0,Date.now()-_),threadId:p})}else n.type===`result`&&(f=n,t.onResult?.({status:+!!n.is_error,threadId:n.session_id??p,finalMessage:n.structured_output===void 0?String(n.result??``).trim():JSON.stringify(n.structured_output),error:n.is_error?{message:String(n.result??``)}:null}),n.session_id&&(p=n.session_id),g.stopAccepting(),c.stdin.end());_=Date.now()}};c.stdout.on(`data`,e=>{l+=e;let t;for(;(t=l.indexOf(`
|
|
7
|
-
`))>=0;){let e=l.slice(0,t).trim();if(l=l.slice(t+1),e)try{x(JSON.parse(e))}catch(e){d.push(`Invalid Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}}}),c.stderr.on(`data`,e=>{u+=e});let S=()=>{g.stopAccepting(),c.kill(`SIGTERM`),s();let e=m?.endpoint;e?.startsWith(`file:`)&&A.rmSync(e.slice(5),{recursive:!0,force:!0}),k.exit(143)};k.on(`SIGTERM`,S),(async()=>{t.onSteerReady&&(m=await hn((e,t)=>g.sendSteer(e,t))),await g.sendInitial(t.prompt,t.command),m&&t.onSteerReady?.(m.endpoint)})().catch(e=>{h||(h=!0,g.stopAccepting(),c.kill(`SIGTERM`),s(),k.removeListener(`SIGTERM`,S),m?.close(),i(e))}),c.on(`error`,e=>{h||(h=!0,g.stopAccepting(),k.removeListener(`SIGTERM`,S),s(),m?.close(),i(Error(`claude spawn failed: ${e.message}`)))}),c.on(`close`,async e=>{if(h)return;h=!0,g.stopAccepting(),k.removeListener(`SIGTERM`,S),s(),await m?.close();let n=l.trim();if(n)try{x(JSON.parse(n))}catch(e){d.push(`Invalid trailing Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}let i=f?.structured_output===void 0?(f?.result??``).trim():JSON.stringify(f.structured_output),a=e!==0||f?.is_error===!0||f==null||d.length>0;r({status:+!!a,threadId:f?.session_id??p,turnId:null,finalMessage:i,touchedFiles:[...ee],tokens:an(f?.usage),model:f?.modelUsage&&Object.keys(f.modelUsage).join(`+`)||t.model||null,error:a?{message:d[0]||i||u.trim()||`claude exited ${e}`}:null})})})}const vn=new Set(`commit.checkout.switch.restore.stash.reset.rebase.merge.push.pull.cherry-pick.revert.clean.am.apply.tag.branch.worktree.filter-branch.filter-repo.gc.prune.reflog.remote.submodule.config`.split(`.`)),yn=[/\bsudo\b/,/\brm\s+(-[a-zA-Z]*r[a-zA-Z]*f|-[a-zA-Z]*f[a-zA-Z]*r)\b.*\s(\/\*?|~\/?|\$HOME\/?)(\s|$)/,/\b(shutdown|reboot|halt|poweroff)\b/,/\bmkfs\b|\bdiskutil\s+erase/i,/\b(chmod|chown)\b.*-R.*\s\/(\s|$)/,/\bkill(all)?\s+-9\s+1\b/,/curl[^|;&]*\|\s*(ba|z|da)?sh\b/,/wget[^|;&]*\|\s*(ba|z|da)?sh\b/,/\blaunchctl\b|\bsystemctl\b/,/\bdefaults\s+write\b/,/>\s*\/dev\/(sd|disk)/],bn=new Set([`status`,`log`,`diff`,`show`,`blame`,`rev-parse`,`ls-files`,`ls-tree`,`cat-file`,`describe`,`shortlog`,`grep`,`branch`,`stash`]);function xn(e){return e.match(/^\s*(?:ba|z|da)?sh\s+(?:-[a-zA-Z]+\s+)*(?:-c\s+)?(["'])([\s\S]*)\1\s*$/)?.[2]??e}function Sn(e){return e.trim().split(/\s+/).filter(Boolean)}function Cn(e){let t=e.find((e,t)=>t>0&&!e.startsWith(`-`));if(!t)return{decision:`accept`,reason:`bare git`};if(t===`branch`&&e.some(e=>/^-(d|D|m|M|c|C|f|u)|^--(delete|move|copy|force|set-upstream)/.test(e)))return{decision:`decline`,reason:`git branch write operation (git is read-only for Coder)`};if(t===`stash`){let t=e.find((e,t)=>t>1&&!e.startsWith(`-`));return t===`list`||t===`show`?{decision:`accept`,reason:`git stash ${t} is read-only`}:{decision:`decline`,reason:`git stash write operation (git is read-only for Coder)`}}return bn.has(t)?{decision:`accept`,reason:`git ${t} is read-only`}:vn.has(t)?{decision:`decline`,reason:`git ${t} is a write operation (git is read-only for Coder)`}:{decision:`escalate`,reason:`unrecognized git subcommand: ${t}`}}function wn(e,t={}){let n=xn(String(e??``));if(!n.trim())return{decision:`escalate`,reason:`empty command`};for(let e of yn)if(e.test(n))return{decision:`decline`,reason:`matches hard-deny pattern ${e}`};if(/\$\(|`|<\(/.test(n))return{decision:`escalate`,reason:`contains command substitution`};let r=n.split(/&&|\|\||;|\||\r?\n/).map(e=>e.trim()).filter(Boolean);if(r.length>1){let e={decision:`accept`,reason:`all segments safe`};for(let n of r){let r=wn(n,t);if(r.decision===`decline`)return r;r.decision===`escalate`&&(e=r)}return e}let i=Sn(n),a=O.basename(i[0]??``);if(a===`git`)return Cn(i);let o=t.networkHost;return o?(t.allowedNetworkHosts??[]).some(e=>o===e||o.endsWith(`.${e}`))?{decision:`accept`,reason:`network host ${o} is allowlisted`}:{decision:`escalate`,reason:`network access to ${o}`}:{decision:`escalate`,reason:`command needs approval: ${a||`(unknown)`}`}}function Tn(e,t){if(!e.length)return{decision:`escalate`,reason:`file change with no resolvable paths`};for(let n of e){let e=O.resolve(t,n),r=O.relative(t,e);if(r.startsWith(`..`)||O.isAbsolute(r))return{decision:`escalate`,reason:`path outside workspace: ${n}`};if(r===`.git`||r.startsWith(`.git${O.sep}`))return{decision:`decline`,reason:`direct .git modification: ${n}`}}return{decision:`accept`,reason:`all paths inside workspace`}}function En(e){return O.join(e,`approvals`)}function Dn(e){let t=En(e);return A.existsSync(t)?A.readdirSync(t).filter(e=>e.endsWith(`.request.json`)).flatMap(e=>{let n=e.replace(/\.request\.json$/,``),r=D(O.join(t,e));if(!r)return[];let i=D(O.join(t,`${n}.response.json`));return[{...r,id:n,response:i}]}).sort((e,t)=>String(e.createdAt??``).localeCompare(String(t.createdAt??``))):[]}function On(e,t,n){let r=En(e),i=O.join(r,`${t}.request.json`);if(!A.existsSync(i))throw Error(`No pending approval "${t}" for this task.`);A.writeFileSync(O.join(r,`${t}.response.json`),`${JSON.stringify({decision:n,answeredAt:new Date().toISOString()},null,2)}\n`,`utf8`)}async function $(e,t,{timeoutMs:n,onEvent:r}){let i=En(e);A.mkdirSync(i,{recursive:!0});let a=`apr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`;A.writeFileSync(O.join(i,`${a}.request.json`),`${JSON.stringify({...t,createdAt:new Date().toISOString()},null,2)}\n`,`utf8`),r?.({kind:`approval-escalated`,approvalId:a,summary:t.summary,message:`Approval needed (${a}): ${t.summary}. Answer with: coder task approve ${O.basename(e)} ${a} [--deny]`});let o=O.join(i,`${a}.response.json`),s=Date.now()+n;for(;Date.now()<s;){if(A.existsSync(o))try{let e=JSON.parse(A.readFileSync(o,`utf8`)).decision===`accept`?`accept`:`decline`;return r?.({kind:`approval-answered`,approvalId:a,decision:e}),e}catch{}await new Promise(e=>setTimeout(e,400))}return r?.({kind:`approval-timeout`,approvalId:a,message:`Approval ${a} timed out; declining.`}),`decline`}function kn(e,t={}){return $(e,{method:`simulate`,summary:`simulated approval probe (--simulate-approval)`},{timeoutMs:t.timeoutMs??12e4,onEvent:t.onEvent??null})}function An({workspaceRoot:e,taskDir:t,mode:n=`auto`,escalationTimeoutMs:r=12e4,allowedNetworkHosts:i=[],onEvent:a=null}){return async(o,s,c)=>{if(o===`item/commandExecution/requestApproval`){let l=c?.itemIndex?.get(s.itemId??``),u=s.command??l?.command??``,d=s.cwd??l?.cwd??e,f=`Run command. ${u||`Unknown command`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:f}),{decision:`decline`};let p=wn(u,{networkHost:s.networkApprovalContext?.host??null,allowedNetworkHosts:i});return a?.({kind:`approval-decision`,method:o,decision:p.decision,reason:p.reason,summary:f}),p.decision===`escalate`?{decision:await $(t,{method:o,summary:f,command:u,cwd:d,params:s},{timeoutMs:r,onEvent:a})}:{decision:p.decision}}if(o===`item/fileChange/requestApproval`){let i=(c?.itemIndex?.get(s.itemId??``)?.changes??[]).map(e=>e.path).filter(e=>!!e),l=`Apply file changes. ${i.join(`, `)||`Unknown paths`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:l}),{decision:`decline`};let u=Tn(i,e);return a?.({kind:`approval-decision`,method:o,decision:u.decision,reason:u.reason,summary:l}),u.decision===`escalate`?{decision:await $(t,{method:o,summary:l,paths:i,params:s},{timeoutMs:r,onEvent:a})}:{decision:u.decision}}throw a?.({kind:`approval-unsupported`,method:o}),Error(`Coder does not handle server request ${o}; treating as denied.`)}}const jn=/usage|quota|rate.?limit|429|401|unauthorized|not authenticated|login|insufficient|exhausted|not available|ENOENT/i;function Mn(e){return jn.test(e)&&!je(e)}var Nn=class extends Error{engine;detail;constructor(e,t){super(t),this.engine=e,this.detail=t}};function Pn(e,t){let n=e.engine,r=!!n,i=e.model,a=e.effort,o=e=>{let n=e?t.models?.[e]:void 0;return n&&ce(n)?n:void 0},s=e=>{let n=e?t.models?.[e]:void 0;return n&&E(n)?n:void 0};if(o(i)){let e;try{e=b(i,t)}catch(e){throw new P(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),i=e.model??void 0,a=a??e.effort??void 0)}if(!n&&i&&(i in me?n=`claude`:i in xe?n=`codex`:s(i)?n=`custom`:/^(?:claude-|opus|sonnet|haiku|fable)/i.test(i)&&(n=`claude`)),n=n??t.chain[0]??`codex`,n!==`codex`&&n!==`claude`&&n!==`custom`){let e=n in xe||n in me||n in(t.models??{})?` "${n}" is a model; use --model ${n}.`:``;throw new P(`invalid-option`,`Invalid --engine "${n}". Use codex, claude, or custom.${e}`)}let c=t.engines[n]??{},l=i??c.model??null,u=a??c.effort??null;if(o(l)){let e;try{e=b(l,t)}catch(e){throw new P(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),l=e.model,u=a??e.effort??u)}let d=e.permissions??c.permissions??`auto`;try{oe(t,l)}catch(e){throw new P(`invalid-option`,e instanceof Error?e.message:String(e))}if(n===`custom`){let e=Object.entries(t.models??{}).filter(([,e])=>E(e)).map(([e])=>e);if(!l&&e.length===1&&(l=e[0]),!l||!s(l))throw new P(`invalid-option`,l?`No custom model named "${l}". Configured: ${e.join(`, `)||`none`}.`:`No custom model to run: pass --model <name> or set engines.custom.model.`,{hint:`Add one: coder model add <name> --base-url <url> --model <id>`})}let f=n===`claude`;if(!(d in fe))throw new P(`invalid-option`,`Invalid --permissions "${d}". Use one of: ${Object.keys(fe).join(`, `)}`);if(!f&&u&&!he.has(u))throw new P(`invalid-option`,`Invalid codex --effort "${u}". Use one of: ${[...he].join(`, `)}`);if(f&&u&&!Se.has(u))throw new P(`invalid-option`,`Invalid claude --effort "${u}". Use one of: ${[...Se].join(`, `)}`);return{engine:n,model:l,effort:u,permissions:d}}const Fn=te({name:o().check(e(1)),command:d(o().check(e(1))),args:d(n(o())),env:d(Te(o(),o())),url:d(o().check(e(1))),type:d(de([`stdio`,`http`,`sse`])),headers:d(Te(o(),o())),tools:d(n(o()))}).check(r(e=>!!e.command!=!!e.url,`one of command or url`)),In=n(Fn);function Ln(e,t={}){let n=e.trim();return/^[\[{]/.test(n)?zn(n):(n===`all`?Object.keys(t):n.split(`,`).map(e=>e.trim()).filter(Boolean)).map(e=>{let n=t[e];if(!n)throw new P(`invalid-option`,`Unknown MCP server "${e}".`,{hint:`configured: ${Object.keys(t).join(`, `)||`none`}; or pass a JSON array`});return{name:e,...n,...n.repository?{repository:!0}:{}}})}function Rn(e,t={},n={},r={}){typeof e==`string`&&!e.trim()&&(e=void 0);let i=typeof e==`string`?Ln(e,{...t,...n}):e??Object.entries(n).map(([e,t])=>({name:e,...t,...t.repository?{repository:!0}:{}})),a=[],o=i.filter(e=>e.connection).map(({name:e,connection:t,tools:n})=>({name:e,connection:t,...n?{tools:n}:{}})),s=new Set,c=[];for(let e of i){if(!e.connection||e.resolved){e.connection&&s.add(e.connection),e.repository&&a.push(...y(e.name,e)),c.push(e);continue}let t=Object.hasOwn(r,e.connection)?r[e.connection]:void 0;if(!t){a.push(`MCP server "${e.name}" skipped because connection "${e.connection}" was not granted to this task.`);continue}if(s.has(e.connection))continue;s.add(e.connection);let n=e.tools?.length?e.tools.filter(e=>!t.tools?.length||t.tools.includes(e)):t.tools;if(e.tools?.length&&!n?.length){a.push(`MCP server "${e.name}" skipped because its tools are not granted by connection "${e.connection}".`);continue}c.push({...t,name:e.name,connection:e.connection,resolved:!0,...n?{tools:n}:{}})}for(let[e,t]of Object.entries(r)){if(s.has(e))continue;let n=c.findIndex(e=>e.name===t.name);n>=0&&c.splice(n,1),c.push({...t,resolved:!0})}return{mcp:c,...o.length?{mcpBindings:o}:{},nativeMcp:typeof e==`string`&&e.trim()===`all`,...a.length?{warnings:a}:{}}}function zn(e){let n;try{n=JSON.parse(e)}catch(e){throw new P(`invalid-option`,`Invalid --mcp JSON: ${e instanceof Error?e.message:String(e)}`)}let r=In.safeParse(n);if(!r.success)throw new P(`invalid-option`,`Invalid --mcp value: ${t(r.error)}`,{hint:`--mcp '[{"name":"docs","command":"npx","args":["-y","docs-mcp"],"tools":["search"]}]'`});return r.data}function Bn(e,t=k.env,n,r={}){let i=r.cloud??t.CODER_MCP_MODE===`cloud`,a=r.connectionEnv??JSON.parse(t.CODER_MCP_CONNECTION_ENV??`{}`),o=r.onWarning??(e=>k.stderr.write(`coder: ${e}\n`));return(e??[]).flatMap(e=>{let r=e.repository&&!e.resolved;if(r){for(let t of y(e.name,e))o(t);if(!i&&!c(e))return o(`MCP server "${e.name}" skipped pending local approval. Run coder connection approve ${e.name} in its repository.`),[]}let s=new Set,l=new Set,u=n=>e.resolved?n.replace(/^\$\{(CODER_CONNECTION_[A-F0-9]{24})\}$/,(e,n)=>t[n]??``):n.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g,(e,n,o)=>r&&i?a[n]===null?(l.add(n),``):Object.hasOwn(a,n)?a[n]:(s.add(n),``):t[n]??o??``),d=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,u(t)])),f=r&&!!e.url,p={...e,...e.command?{command:u(e.command)}:{},...e.args?{args:e.args.map(u)}:{},...e.url?{url:f?e.url:u(e.url)}:{},...e.env?{env:d(e.env)}:{},...e.headers?{headers:f?e.headers:d(e.headers)}:{}};if(l.size)return o(`MCP server "${e.name}" skipped because connection variables ${[...l].join(`, `)} are ambiguous.`),[];if(s.size&&o(`MCP server "${e.name}" has unresolved connection variables ${[...s].join(`, `)}; expanded to empty.`),!n||!p.command)return[p];let m=(p.command.includes(O.sep)?[O.resolve(n,p.command)]:(p.env?.PATH??t.PATH??`/usr/bin:/bin`).split(O.delimiter).map(e=>O.resolve(n,e,p.command))).find(e=>{try{return A.accessSync(e,A.constants.X_OK),A.statSync(e).isFile()}catch{return!1}});if(!m)throw new P(`invalid-option`,`MCP server "${e.name}" command cannot be resolved.`);return p.command=A.realpathSync(m),p.args=p.args?.map(e=>{if(e.startsWith(`-`)||O.isAbsolute(e))return e;let t=O.resolve(n,e),r=A.existsSync(t)&&A.statSync(t).isFile();return!r&&!e.startsWith(`./`)&&!e.startsWith(`../`)?e:r?A.realpathSync(t):t}),[p]})}function Vn(e,t=[]){let n=[...new Set(t.map(t=>O.resolve(e,t)))];for(let e of n)if(!A.statSync(e,{throwIfNoEntry:!1})?.isDirectory())throw new P(`invalid-option`,`--add-dir ${e} is not a directory.`);return n}function Hn(e,t){return e===`read-only`&&ue.test(t??``)}const Un=[`read-only`,`workspace-write`,`auto`];function Wn(e,t,n){if(!t)return n.permissions;if(Un.indexOf(t)>Un.indexOf(n.permissions))throw new P(`invalid-option`,`task "${e??`task`}" asks for ${t} but agent "${n.agent}" is ${n.permissions}: lower the task's permissions or raise the agent's`);return t}function Gn(e,t,n={}){let r=i(e,t),a=A.openSync(O.join(r,`worker.log`),`a`),o={...k.env,...n},s=De(k.execPath,[ve,`task`,`worker`,t,`--cwd`,e],{cwd:e,detached:!0,stdio:[`ignore`,a,a],env:{...o,...on(o,e),CODER_WORKER:`1`}});s.unref(),A.closeSync(a),p(e,t,{pid:s.pid??null})}async function Kn(e,t,n,r,a){let o=n.cwd,s=t.engine===`claude`?Q(`claude`,{...k.env,...n.connectionEnv},o):q(o),c=t.model?e.models?.[t.model]:void 0;if(!s.available&&c&&E(c)){let e=Wt(s);n.onNote?.(e.note),s=q(o)}if(!s.available)throw new Nn(t.engine,s.detail);let l=c?null:t.engine===`claude`?qt(`claude`,t.model,s):qt(`codex`,ee(t.model),s);l&&n.onNote?.(l);let u=n.addDirs??[],d=n.taskId??be(),f=p(o,d,{status:`queued`,...n.taskId?{dispatchId:M()}:{},kind:`task`,name:r.name??null,system:n.system??null,engine:t.engine,prompt:n.prompt,...n.outputSchema?{outputSchema:n.outputSchema}:{},model:t.model,effort:t.effort,permissions:t.permissions,resumeThreadId:null,cwd:o,background:!n.wait,...r.simulateApproval?{simulateApproval:!0}:{},...n.flowRunId?{flowRunId:n.flowRunId}:{},...n.agentId?{agentId:n.agentId}:{},...n.source?{source:n.source}:{},...n.author?{author:n.author}:{},...n.repo?{repo:n.repo}:{},...n.mcp?.length?{mcp:n.mcp}:{},...n.mcpBindings?{mcpBindings:n.mcpBindings}:{},...n.connections?{connections:n.connections}:{},...n.connectionSource?{connectionSource:n.connectionSource}:{},nativeMcp:n.nativeMcp??!1,...u.length?{addDirs:u}:{}});for(let e of new Set(n.mcpWarnings??[]))_e(o,d,{kind:`warning`,message:e});if(Gn(o,d,n.connectionEnv),!a)return{taskId:d,task:w(o,d)??f,engine:t.engine,startupCheck:`pending`};let m=2**53-1,h=new Set([`status`,`usage`]),g=()=>ge(o,d,m).filter(e=>{let{phase:t,kind:n}=e;return t!==`starting`&&!h.has(String(n??``))}).length,_=Date.now()+15e3,v=f,y=null,b=null;for(;Date.now()<(b??_)&&(v=w(o,d)??v,v.status!==`failed`&&v.status!==`completed`);){if(v.threadId&&y===null&&(y=g(),b=Date.now()+5e3),y!==null&&g()>y){v=w(o,d)??v;break}await new Promise(e=>setTimeout(e,150))}if(v.status===`failed`){let e=O.join(i(o,d),`result.json`),n=D(e)?.error?.message??``,r=ge(o,d,5).map(e=>e.message??``).join(`
|
|
8
|
-
`),a=n||r;throw Hn(t.permissions,a)?new P(`read-only-unavailable`,a):Mn(a)?new Nn(t.engine,a):new P(`startup-failed`,a,{taskId:d})}return{taskId:d,task:v,engine:t.engine,startupCheck:v.threadId?`passed`:`pending`}}function qn(e,t,n,r,i){return{error:`${e} failed to start: ${t}`,fallback:{action:`run-native-subagent`,reason:`no-engine-available`,permissions:n,instructions:`Mention the engine failure to the user, including any limit reset time. If your harness has a native subagent facility, spawn one subagent with fallback.task verbatim, prefixed with: "NEVER run git write operations (commit, checkout, stash, reset, push, etc.); leave changes uncommitted." If fallback.permissions is "read-only", append: "Investigate and report without modifying anything." If it is "workspace-write", append: "Never touch anything outside the workspace." Relay its output when it completes. If your harness has no native subagent facility, report the failure and stop; do not implement the task yourself.`,note:`Every coder engine failed to start. Spawn your own native subagent and forward the task verbatim; tell it to never run git write operations (commit, checkout, stash, reset, push, ...) and to honor the permissions.`,...r?{system:r}:{},task:i}}}async function Jn(e,t={}){if(k.env.CODER_WORKER&&!t.fromMailbox)throw new P(`nested-dispatch`,`Nested dispatch is disabled inside a worker; do the work directly.`);if(e.outputSchema!==void 0&&(!e.outputSchema||typeof e.outputSchema!=`object`||Array.isArray(e.outputSchema)))throw new P(`invalid-option`,`outputSchema must be an object.`);if(!e.prompt.trim())throw new P(`invalid-option`,`Missing task text.`,{hint:[`Usage: coder run "<task text>"`,`Help: coder task run --help`]});e={...e,addDirs:Vn(e.cwd,e.addDirs)};let n=Ce(e.cwd),r=Rn(e.mcp,n.mcp),i={...e,mcp:r.mcp,mcpBindings:e.mcpBindings??r.mcpBindings,mcpWarnings:[...e.mcpWarnings??[],...r.warnings??[]],nativeMcp:e.nativeMcp??r.nativeMcp},a={engine:e.engine,model:e.model,effort:e.effort,permissions:e.permissions},o={name:e.name,simulateApproval:e.simulateApproval};for(;;){let r=Pn(a,n);try{return await Kn(n,r,i,o,t.waitForStartup!==!1)}catch(t){if(!(t instanceof Nn))throw t;let i=n.chain[n.chain.indexOf(t.engine)+1];if(!i){let n=qn(t.engine,t.detail,r.permissions,e.system,e.prompt);throw new P(`chain-exhausted`,n.error,{payload:n})}e.onFallback?.({engine:t.engine,detail:t.detail,next:i}),a={engine:i,permissions:e.permissions},o={name:void 0,simulateApproval:void 0}}}}function Yn(e,t){if(t.status!==`failed`)return;let n=t.result;if(!n||!Mn(n.error?.message??``)||!(!n.touchedFiles?.length&&!n.fileChanges?.length&&!n.commandExecutions?.length))return;let r=Ce(e).chain;return r[r.indexOf(t.task.engine)+1]}function Xn(e,t){return D(O.join(i(e,t),`result.json`))}function Zn(e,t,n=0){if(n===0)return[];let r=ge(e,t,2**53-1);return n===`all`?r:a(r,n)}function Qn(e,t,n={}){let r=w(e,t);if(!r)throw Error(`No task found for "${t}".`);return{taskId:t,status:r.status,result:h.includes(r.status)?null:Xn(e,t),steps:Zn(e,t,n.tail),turns:pe(e,t),task:r}}async function $n(e,t,n={}){let r=w(e,t);if(!r)throw Error(`No task found for "${t}".`);let i=await er(e,r);if(i.reason===`approval`){let e=i.approval;throw new P(`approval-pending`,`Approval needed for task ${t}: ${e.summary}`,{taskId:t,approval:e})}n.onSettle?.();let a=i.task;return{taskId:t,status:a.status,result:Xn(e,t),steps:Zn(e,t,n.tail),turns:pe(e,t),task:a}}async function er(e,t,n=400){let r=t;for(;;){if(_.includes(r.status))return{task:r,reason:`terminal`};let t=Dn(i(e,r.id)).filter(e=>!e.response);if(t[0]){let e=t[0].params;return{task:r,reason:`approval`,approval:{id:t[0].id,summary:String(t[0].summary??``),cwd:typeof t[0].cwd==`string`?t[0].cwd:null,networkHost:e?.networkApprovalContext?.host??null}}}await new Promise(e=>setTimeout(e,n)),r=le(e,w(e,r.id)??r)}}export{Ot as A,Fe as B,gn as C,Lt as D,Xt as E,Ue as F,P as H,Ve as I,ze as L,kt as M,Je as N,Rt as O,Ie as P,L as R,_n as S,Yt as T,F as V,wn as _,Mn as a,Dn as b,Bn as c,Gn as d,Yn as f,An as g,On as h,Hn as i,At as j,q as k,Pn as l,$n as m,Wn as n,Xn as o,er as p,Jn as r,Qn as s,qn as t,Rn as u,Tn as v,Wt as w,kn as x,$ as y,He as z};
|
package/dist/docs-3SW1O9iS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Xt as e}from"./config-D2FxHWwi.js";import{H as t}from"./dispatch-D3Dqxijf.js";import n from"node:path";import r from"node:fs";const i=[{name:`readme`,file:`README.md`,description:`What Coder is and how to get started.`},{name:`skill`,file:`plugins/agents/skills/coder/SKILL.md`,description:`How a host agent should drive Coder.`}];function a(e){let t=n.join(e,`docs`),a=[];try{a=r.readdirSync(t,{withFileTypes:!0})}catch{a=[]}let c=(t,r)=>({name:t,file:r,description:s(n.join(e,r))}),l=[...new Set(a.filter(e=>e.isDirectory()?o(n.join(t,e.name)):e.name.endsWith(`.md`)).map(e=>e.isDirectory()?e.name:n.basename(e.name,`.md`)))].sort(),u=[];for(let e of l){let i=n.join(t,e);if(!a.some(t=>t.isDirectory()&&t.name===e)){u.push(c(e,n.join(`docs`,`${e}.md`)));continue}u.push(c(e,n.join(`docs`,e,`index.md`)));let o=r.readdirSync(i).filter(e=>e.endsWith(`.md`)&&e!==`index.md`).sort();for(let t of o){let r=n.basename(t,`.md`);u.push(c(`${e}/${r}`,n.join(`docs`,e,t)))}}let d=i.map(e=>({name:e.name,file:e.file,description:e.description}));return[...u,...d]}function o(e){return r.existsSync(n.join(e,`index.md`))}function s(e){let t=``;try{t=r.readFileSync(e,`utf8`)}catch{return``}let n=t.split(`
|
|
2
|
-
`),i=``,a=``,o=!1;for(let e of n){let t=e.trim();if(t.startsWith("```")){o=!o;continue}if(!(o||t===``)){if(t.startsWith(`#`)){i||=t.replace(/^#+\s*/,``);continue}a=t;break}}return c(a)||i}function c(e){if(!e)return``;let t=e.match(/^.*?[.!?](?=\s|$)/);return(t?t[0]:e).trim()}function l(i,o={}){let s=e(),c=a(s);if(!i)return{topics:c.map(e=>({name:e.name,description:e.description}))};let l=i.toLowerCase(),u=c.find(e=>{let t=e.name.toLowerCase();return t===l||t.replace(`/`,`-`)===l});if(u?.name===`skill`&&o.claude&&(u={...u,file:`plugins/claude/skills/dispatch/SKILL.md`}),!u)throw new t(`invalid-option`,`Unknown docs topic "${i}". Available: ${c.map(e=>e.name).join(`, `)}`,{hint:`List topics: coder docs`});let d=n.join(s,u.file),f;try{f=r.readFileSync(d,`utf8`)}catch{throw new t(`invalid-option`,`Could not read docs for "${u.name}" (${u.file}).`)}return{name:u.name,content:f}}export{l as t};
|
package/dist/env-C_DoQYl5.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Wi as e,Xt as t,Zt as n,dn as r,qi as i}from"./core-DwsAMCnL.js";import{Bn as a,Dn as o,Fn as s,Gt as c,Hn as l,In as u,Ln as d,Mn as f,On as p,Rn as m,Un as h,Vn as g,kn as _}from"./config-D2FxHWwi.js";import{H as v}from"./dispatch-D3Dqxijf.js";import y from"node:path";import b from"node:process";import x from"node:os";var S=i({ISSUES_URL:()=>T,loadServerConfig:()=>M,requireBunServer:()=>P,rerunUnderBun:()=>F});const C=e=>p(o().check(f(),n()),e),w=m(d(l()),h(e=>e===`1`)),T=`https://github.com/muzam1l/coder/issues/new`,E=(e,n)=>l().check(t(e=>e.replace(/\/$/,``)),a(e=>URL.canParse(e),{error:`must be a URL`,abort:!0}),a(t=>e(new URL(t)),n)),D=e=>m(h(e=>e||void 0),e),O=m(l(),h((t,n)=>{try{let e=JSON.parse(t);if(e&&!Array.isArray(e)&&typeof e==`object`)return e}catch{}return n.issues.push({code:`custom`,message:`must be a JSON object`,input:t}),e})),k=u({AUTH_WULAR_URL:p(E(e=>e.protocol===`https:`||e.hostname===`localhost`,`must use HTTPS unless it is localhost`),`https://auth.wular.ai`)}),A=u({SERVER_LIMITS:D(d(m(O,g({principalPerMinute:d(s().check(f(),n())),authPerMinute:d(s().check(f(),n())),registerPerMinute:d(s().check(f(),n())),ipPerMinute:d(s().check(f(),n())),pairingPerMinute:d(s().check(f(),n())),concurrentTasks:d(s().check(f(),n()))})))),RUNNER:d(_([`local`,`local-docker`,`vercel-sandbox`,`github-actions`,`http`])),RUNNER_CONFIG:D(p(O,{})),WORK_DIR:d(l()),SERVER_ENCRYPTION_KEY:d(l()),SERVER_ENCRYPTION_KEY_PREVIOUS:d(l()),ADMIN_TOKEN:d(l()),PUBLIC_URL:D(d(E(e=>e.pathname===`/`&&!e.search&&!e.hash,`must be an origin, with no path, query or fragment`))),SERVER_NAME:d(l().check(r())),ISSUES_URL:D(d(E(()=>!0,`must be a URL`))),VERCEL_PROJECT_PRODUCTION_URL:d(l()),VERCEL_URL:d(l()),VERCEL:d(l()),DATABASE_URL:d(l()),POSTGRES_URL:d(l()),DATABASE_POOL_MAX:d(o().check(f(),n())),DATABASE_IDLE_TIMEOUT:d(o().check(f(),n())),MAX_TASKS:d(o().check(f(),n())),MAX_QUEUED:C(1e3),TASK_STALL:C(3e5),TASK_ATTEMPTS:C(2),TASK_TIMEOUT:C(18e5),CLAUDE_SUBSCRIPTIONS:w,CODEX_SUBSCRIPTIONS:w,SERVER_INTEGRATIONS:D(d(l())),SERVER_OPERATORS:D(d(l()))});function j(e,t){let n=e.safeParse(t);if(n.success)return n.data;let r=n.error.issues[0];throw new v(`invalid-option`,`Invalid server configuration:${String(r.path[0])} ${r.message}`)}function M(e=b.env,t=`node`){let n=j(A,e),r=n.DATABASE_URL??n.POSTGRES_URL,i=r?`postgres`:`memory`;if(i===`postgres`&&!n.SERVER_ENCRYPTION_KEY)throw new v(`invalid-option`,`SERVER_ENCRYPTION_KEY is required with DATABASE_URL`);let a=t===`vercel`?n.VERCEL_PROJECT_PRODUCTION_URL??n.VERCEL_URL:void 0,o=n.PUBLIC_URL??(a?`https://${a}`:void 0),s=i===`postgres`?j(k,e).AUTH_WULAR_URL:void 0;return{runner:n.RUNNER??(t===`vercel`||n.VERCEL?`vercel-sandbox`:`local`),store:i,workDir:n.WORK_DIR??y.join(x.tmpdir(),`coder`),...n.SERVER_ENCRYPTION_KEY?{encryptionKey:n.SERVER_ENCRYPTION_KEY}:{},...n.SERVER_ENCRYPTION_KEY_PREVIOUS?{previousEncryptionKey:n.SERVER_ENCRYPTION_KEY_PREVIOUS}:{},...n.ADMIN_TOKEN?{adminToken:n.ADMIN_TOKEN}:{},...o?{publicUrl:o}:{},...n.SERVER_NAME?{name:n.SERVER_NAME}:{},issuesUrl:n.ISSUES_URL??`https://github.com/muzam1l/coder/issues/new`,...r?{databaseUrl:r,databasePool:{max:n.DATABASE_POOL_MAX??(t===`vercel`||n.VERCEL?2:10),idleTimeout:n.DATABASE_IDLE_TIMEOUT??(t===`vercel`||n.VERCEL?30:240)}}:{},runnerConfig:n.RUNNER_CONFIG,maxTasks:n.MAX_TASKS,limits:n.SERVER_LIMITS,maxQueued:n.MAX_QUEUED,taskTimeoutMs:n.TASK_TIMEOUT,taskStallMs:n.TASK_STALL,taskAttempts:n.TASK_ATTEMPTS,...n.CLAUDE_SUBSCRIPTIONS||n.CODEX_SUBSCRIPTIONS?{subscriptions:{claude:n.CLAUDE_SUBSCRIPTIONS,codex:n.CODEX_SUBSCRIPTIONS}}:{},...s?{auth:{wular:{url:s}}}:{},...n.SERVER_INTEGRATIONS?{integrations:n.SERVER_INTEGRATIONS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{},...n.SERVER_OPERATORS?{operators:n.SERVER_OPERATORS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{}}}function N(){return new v(`invalid-option`,`The Coder server needs Bun; the CLI itself runs on Node.`,{hint:[b.platform===`win32`?`Install Bun: powershell -c "irm bun.sh/install.ps1 | iex"`:`Install Bun: curl -fsSL https://bun.sh/install | bash`,`Or with npm: npm install -g bun`,`Then run the command again. More: https://bun.sh/docs/installation`]})}function P(){if(typeof Bun>`u`)throw N()}async function F(){if(typeof Bun<`u`)return;let e=b.platform===`win32`?[`bun.exe`,`bun.cmd`,`bun`]:[`bun`];for(let t of e){let e=await c(t);if(e.error?.code!==`ENOENT`&&e.error?.code!==`EINVAL`){if(e.error)throw e.error;if(e.signal){let t=x.constants.signals[e.signal];b.exit(typeof t==`number`?128+t:1)}b.exit(e.status??1)}}throw N()}export{M as n,P as r,S as t};
|
package/dist/exec-BsXFIdTl.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{ct as t,fn as n,nn as r,pn as i,y as a}from"./config-D2FxHWwi.js";import{F as o,H as s,c,f as l,l as u,m as d,n as f,r as p,u as m,z as h}from"./dispatch-D3Dqxijf.js";import{a as g,f as _,h as v,l as y}from"./load-CRmQB1LD.js";import{t as b}from"./integrations-D3OgJk6Y.js";import{a as x}from"./discover-CBP4Uw0N.js";import{c as S}from"./actions-5TDwmn_z.js";import{n as C}from"./executor-5j-Ewzzb.js";import{REVIEW_PLATFORM as w,postReview as T,resolveReviewTarget as E}from"./flow/builtin/review.js";import{a as D,i as O,o as k,r as A}from"./mcp-YhyTUMIM.js";import j from"node:path";import M from"node:process";import{readFileSync as N,readdirSync as ee,realpathSync as P}from"node:fs";import F from"node:os";import I from"node:fs/promises";var L=e({AGENT_TASK_PREFIX:()=>R,agentInstructions:()=>Z,agentSystemPrompt:()=>X,agentTaskOptions:()=>J,builtinArgs:()=>q,builtinTaskArgs:()=>G,defaultTask:()=>$,execAgent:()=>U,postReply:()=>V,renderContext:()=>Q,startAgentMailbox:()=>ie,taskFromEvent:()=>z,threadReply:()=>B,waitForAgentTask:()=>W});const R=`agent:`;function z(e,t,n){let r=b[n.integration];return{id:`local-${n.deliveryId}-${e.id}`,source:n.integration,agent:e.id,flow:t,runner:`local`,event:n,definition:e.definition,...e.usage?{usage:e.usage}:{},tools:r?{[n.integration]:v(e,n.integration,r)}:{}}}function B(e,t,n){let r=t?.finalMessage?.trim();if(r)return{text:r,problem:!1};let i=t?.error?.message?.trim()??``;return n?{text:i,problem:!1}:{text:e.failureReply??i,problem:!0}}async function V(e,t,n,r,i=e.id,a=!1){if(!t.chat)throw Error(`The ${t.integration} event has no thread to reply in`);let[{Chat:o},{LocalChatState:s}]=await Promise.all([import(`./dist-BTornX7Y.js`).then(e=>e.a),import(`./chat-Bbzlea60.js`).then(e=>e.r)]),c=await e.adapter({fetch,appId:t.appId.slice(e.id.length+1),name:i,installationId:t.installationId,token:async()=>r,privateState:()=>new s}),l=new o({userName:i,adapters:{[e.id]:c},state:new s,logger:`error`});await l.initialize();let u=l.thread(t.chat.thread.id),d=c.postProblem;a&&d?await d.call(c,t.chat.thread.id,n):c.reply&&t.chat.message?.id?await u.reply(t.chat.message.id,n):await u.post(n)}function H(e,t){return Object.fromEntries(Object.keys(e.tools).map(n=>[n,t[D(n)]??(n===e.event?.integration?t.APP_TOKEN:void 0)]))}async function U(e){let{cwd:t,flow:n}=e,i=a(t),o=await g(t,b),s=e.task;!s&&e.taskFile&&(s={...JSON.parse(await I.readFile(j.resolve(t,e.taskFile),`utf8`)),flow:n});let c=o.find(t=>t.id===e.agent);if(!c&&s&&(c={id:s.agent,name:s.definition.name??s.agent,definition:_(s.agent,s.definition),...s.usage?{usage:s.usage}:{},...s.files?{files:s.files}:{},builtin:!1}),!c)throw Error(`No agent named "${e.agent}".`);s??=await K(t,c,n,e);let l=s.event,d=l&&b[l.integration];if(l&&!d)throw Error(`Unknown integration "${l.integration}".`);let f=r(e.connections??{},e.connectionEnv),h=r(Object.fromEntries(O(s,e.toolEnvironment?.tokens??H(s,M.env)).map(e=>[`native:${e.name}`,{...e,resolved:!0}])));if(n==="default"){let r=$(c,s),a=e.noteFile?void 0:await I.mkdtemp(j.join(F.tmpdir(),`coder-note-`)),o=e.noteFile??j.join(a,`note`);e.noteFile||await I.writeFile(o,s.context?.note??``);let g=u(y(c),i),_=m(s.mcp?.join(`,`),i.mcp,c.definition.mcp,f.mcp),v=[...Object.values(h.mcp),A(o),..._.mcp],b=e.resumeTaskId?{taskId:e.resumeTaskId}:await p({taskId:e.taskId,mcp:v,mcpBindings:_.mcpBindings,mcpWarnings:_.warnings,nativeMcp:_.nativeMcp,connectionEnv:{...f.env,...h.env},connections:s.connections,cwd:t,agentId:s.agent,...s.author?{author:s.author}:{},...l?.repo?{repo:`${l.repo.owner}/${l.repo.name}`}:{},...e.source?{source:e.source}:{name:`${R}${s.id}`},engine:g.engine,model:g.model??void 0,effort:g.effort??void 0,permissions:s.permissions??g.permissions,system:r.system,prompt:r.prompt,outputSchema:s.context?.outputSchema,wait:!0});await e.onTask?.(b.taskId);let x=await W(t,b.taskId,e.onApproval),{text:S,problem:C}=B(s,x.result,x.status===`cancelled`),w=(await I.readFile(o,`utf8`).catch(()=>``)).trim();a&&await I.rm(a,{recursive:!0,force:!0});let T=e.post!==!1&&!!d&&!!S;return T&&await V(d,l,S,e.postToken??M.env.APP_TOKEN,s.author,C),{ok:x.status===`completed`,flow:n,reply:S,posted:T,taskId:b.taskId,tokens:x.result?.tokens??void 0,...w===(s.context?.note??``).trim()?{}:{note:w}}}let v=x(n,t),S=v.scope===`builtin`?{...await G(s,c,e.post!==!1),cwd:t,...s.args}:s.args??l,w=await C(v.path,{cwd:t,...e.taskId?{runId:e.taskId}:{},args:S,ceiling:{agent:c.id,permissions:s.permissions??u(y(c),i).permissions},...e.postToken?{integrationToken:e.postToken}:{},connections:{mcp:{...f.mcp,...h.mcp},env:{...f.env,...h.env},ids:s.connections??[]}},{...e.onTask?{onTaskStart:t=>e.onTask(t.taskId)}:{},...e.onStart?{onStart:e.onStart}:{}});return{ok:!0,flow:n,runId:w.runId,result:w.result,tokens:w.tokens}}async function W(e,t,n,r=d,i=()=>new Promise(e=>setTimeout(e,100))){let a;for(;;)try{return await r(e,t)}catch(e){if(!(e instanceof s)||e.code!==`approval-pending`||!n)throw e;e.approval?.id!==a&&(a=e.approval?.id,await n(e.approval)),await i()}}async function G(e,t,n=!0){if(!e.event)throw Error(`built-in flows need a GitHub pull request event`);return{...await q(e.event,t,e.context,e.author,n),...y(t),...e.permissions?{permissions:e.permissions}:{}}}async function K(e,t,n,r){if(r.taskFile){let t=JSON.parse(await I.readFile(j.resolve(e,r.taskFile),`utf8`));return{...t,flow:n,tools:t.tools??{}}}if(!r.eventFile)throw Error(`Missing --task or --event file.`);return z(t,n,JSON.parse(await I.readFile(j.resolve(e,r.eventFile),`utf8`)))}function q(e,t,n,r,i=!0){let a=b[e.integration]?.repos?.pullRequest(e);if(!a)throw Error(`built-in flows need a pull request event`);return{pr:a,post:i,...r?{author:r}:{}}}async function J(e,t,r,o,c){let l=await g(e,b),u=l.find(e=>e.id===t);if(!u)throw new s(`invalid-option`,`No agent named "${t}".`,{hint:`Agents here: ${l.map(e=>e.id).join(`, `)}`});let{definition:d,usage:f}=u,p=o===void 0?await n(i(f?.connections,c)):void 0,h=d.mcp??{},_=m(r,a(e).mcp,h,o??p?.mcp);return{engine:f?.engine??d.engine,model:f?.model??d.model,effort:f?.effort??d.effort,permissions:f?.permissions??d.permissions,system:Z(u)||void 0,..._,mcpWarnings:_.warnings,connections:f?.connections,...p?{connected:p}:{}}}const Y=48e3;function X(e){let t=[`You are an agent named "{name}" acting on behalf of a software team. You receive one request, a platform event or a task, and must produce the reply that goes back to its thread verbatim. Be direct and specific, use the attached tools to read context before answering, never invent facts about the repository, and stay within the actions your tools allow. Reply in plain markdown with no preamble.`.replace(`{name}`,e.definition.name??e.id)];e.definition.description&&t.push(`Your role: ${e.definition.description}`);let n=Z(e);return n&&t.push(`## Agent instructions\n\n${n}`),t.join(`
|
|
2
|
-
|
|
3
|
-
`)}function Z(e){if(!e.dir)return te(e.files??{});let t;try{t=ee(e.dir).filter(e=>e.endsWith(`.md`))}catch{return``}t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${N(j.join(e.dir,r),`utf8`).trim()}\n`;if(n+=t.slice(0,Y-n.length),n.length===Y)break}return n.trimEnd()}function te(e){let t=Object.keys(e).filter(e=>e.endsWith(`.md`));t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${e[r].trim()}\n`;if(n+=t.slice(0,Y-n.length),n.length===Y)break}return n.trimEnd()}function ne(e){let t=[`**Integration:** ${e.integration}`,`**Type:** ${e.type}`,`**Actor:** ${e.actor.login??e.actor.id}`];return e.repo&&t.push(`**Repo:** ${e.repo.owner}/${e.repo.name}`),e.chat&&t.push(`**Thread:** ${e.chat.thread.id}${e.chat.thread.isDM?` (direct message)`:``}`),[t.join(`
|
|
4
|
-
`),e.promptContext,e.text].filter(Boolean).join(`
|
|
5
|
-
|
|
6
|
-
`)}function Q(e){if(!e)return``;let t=[];return e.messages?.length&&t.push(`## Recent thread\n\n${e.messages.map(e=>`- ${e.user}: ${e.text}`).join(`
|
|
7
|
-
`)}`),e.note&&t.push(`## Note from earlier in this thread\n\n${e.note}`),e.instructions&&t.push(`## Repository instructions\n\n${e.instructions}`),e.user&&t.push(`## Who asked\n\n${e.user.name} (${e.user.email}), a member of this Coder server.`),t.join(`
|
|
8
|
-
|
|
9
|
-
`)}function re({event:e,prompt:t}){return t===void 0?e?ne(e):``:e?.repo?`**Repo:** ${e.repo.owner}/${e.repo.name}\n\n${t}`:t}function $(e,t){let n=Q(t.context),r=t.prompt===void 0&&t.event?b[t.event.integration]?.hint:void 0,i=re(t);return{system:[X(e),r?`## Platform\n\n${r}`:``].filter(Boolean).join(`
|
|
10
|
-
|
|
11
|
-
`),prompt:n?`${i}\n\n${n}`:i}}function ie(e,n){let i=o(e,n);if(!i)return()=>{};let a={agent:n.agentId,permissions:n.permissions??`auto`},u=P(e),m=new Map((n.mcp??[]).map(e=>[e.name,e])),g=n.connectionSource??(n.connections?`server`:void 0),_=e=>{if(!e.command)return e;let[t]=c([e],M.env,u);if(!t)throw Error(`MCP server "${e.name}" is not approved.`);return{...e,command:t.command,args:t.args}},v=e=>{try{return P(e)}catch{return null}},y=[e,...n.addDirs??[]].flatMap(e=>v(j.resolve(e))??[]),b=e=>y.some(t=>e===t||e.startsWith(t+j.sep)),x=new Map,C=new Set,D=()=>{let e=k(c(n.mcp),w);return e?{token:e}:{}};return h(i,{async dispatch(e){let t=e.name??`task`;if(e.mcp!==void 0&&(typeof e.mcp!=`string`||/^[\[{]/.test(e.mcp.trim())))throw new s(`invalid-option`,`Mailbox MCP selections must be server names.`);let r=(e.mcp??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e===`all`?void 0:m.get(e);if(!t)throw new s(`invalid-option`,`MCP server "${e}" is not authorized for agent "${a.agent}".`);return _(t)});for(let e of n.connections??[]){let t=[...m.values()].find(t=>t.connection===e||!t.connection&&t.name===e);t&&!r.some(e=>e.name===t.name)&&r.push(_(t))}let i=j.resolve(String(e.cwd??u));if(v(i)!==v(u)&&r.some(e=>e.command))throw new s(`invalid-option`,`Inherited stdio MCP servers do not allow a cwd override.`);let o=[i,...(e.addDirs??[]).map(e=>j.resolve(i,e))],c=o.find(e=>!v(e));if(c)throw new s(`invalid-option`,`task "${t}" asks for ${c}, which does not exist`);let[l,...d]=o.map(e=>v(e)),h=[l,...d].find(e=>!b(e));if(h)throw new s(`invalid-option`,`task "${t}" asks for ${h}, outside the workspace of agent "${a.agent}"`);let y=await p({prompt:String(e.prompt??``),outputSchema:e.outputSchema,cwd:l,engine:e.engine,model:e.model,effort:e.effort,mcp:r,connections:n.connections,connectionSource:g,permissions:f(t,e.permissions,a),name:e.name,system:e.system,addDirs:d,flowRunId:e.flowRunId,wait:!0},{fromMailbox:!0});return x.set(y.taskId,l),{taskId:y.taskId}},async steer(e){let i=x.get(e.taskId);if(!i)throw new s(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let o=t(i,e.taskId);if(!o)throw new s(`invalid-option`,`No task "${e.taskId}".`);return S(i,o,String(e.text??``),{...g===`server`?{resolveConnections:async e=>({...r(Object.fromEntries(c(n.mcp,M.env,u).flatMap(t=>{let n=t.connection??t.name;return e.includes(n)?[[n,_(t)]]:[]}))),warnings:[]})}:{},model:e.model,effort:e.effort,permissions:e.permissions?f(o.name,e.permissions,a):void 0})},async wait(e){let t=x.get(e.taskId);if(!t)throw new s(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let n=await d(t,e.taskId);return{status:n.status,result:n.result,model:n.task.model??null,next:l(t,n)??null}},review(t){if(t.op===`resolveTarget`){let{repo:r,...i}=t.input??{};if(!n.repo&&!/^\d+$/.test(String(i.pr)))throw new s(`invalid-option`,`review target must be a pull request number in this task's repository`);let a=E({...i,cwd:e,...n.repo?{repo:n.repo}:{},...n.author?{author:n.author}:{}},D());return a.pr&&C.add(`${a.pr.repo}#${a.pr.number}`),a}if(t.op!==`post`)throw new s(`invalid-option`,`unknown review action "${t.op}"`);if(!C.has(`${t.input?.repo}#${t.input?.pr}`))throw new s(`invalid-option`,`review post: pull request was not resolved by this task`);return T({...t.input,cwd:e},D())}})}export{z as a,L as i,J as n,B as o,U as r,R as t};
|
|
@@ -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-4Rr-2NUz.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-D5hyqGq0.js";const t=e(`flow`,{run:async()=>(await import(`./run-CvdayZfK.js`)).commandRun,list:async()=>(await import(`./list-P2Ztf1bQ.js`)).commandList,ls:async()=>(await import(`./list-P2Ztf1bQ.js`)).commandList,discover:async()=>(await import(`./discover-hpHsnxqU.js`)).commandDiscover,result:async()=>(await import(`./result-70jciKDJ.js`)).commandResult,watch:async()=>(await import(`./watch-Bl_pCGfq.js`)).commandWatch,stream:async()=>(await import(`./watch-Bl_pCGfq.js`)).commandWatch,stop:async()=>(await import(`./stop-DTzpTbg1.js`)).commandStop,resume:async()=>(await import(`./resume-xqhwHn3l.js`)).commandResume,archive:async()=>(await import(`./archive-BhfGdyuC.js`)).commandArchive,delete:async()=>(await import(`./delete-Dbo9goyQ.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-BYMXT_p6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t}from"./local-XNsjb-UM.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-kZdO2PF5.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-D5hyqGq0.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-C1HI4JlI.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-C1HI4JlI.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{s as e}from"./cli-D5hyqGq0.js";const t=e(`agent integrations`,{list:async()=>(await import(`./list-uS9iEE0F.js`)).commandIntegrationsList,ls:async()=>(await import(`./list-uS9iEE0F.js`)).commandIntegrationsList,show:async()=>(await import(`./show-D3OC0c35.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};
|
|
@@ -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};
|
package/dist/list-CLqNS8_q.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import"./config-D2FxHWwi.js";import{i as e,r as t}from"./cli-D5hyqGq0.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-DXL9N9Ip.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-CbN2giPy.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./cli-D5hyqGq0.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-ChFFjT_a.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-D5hyqGq0.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-C1HI4JlI.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-D0NK3Iqu.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t}from"./cli-D5hyqGq0.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-DcR15CL7.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/list-D3LCULQt.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-D5hyqGq0.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-Df1Ezy3y.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-wq0CJZKh.js`).then(e=>e.n);return n.list({...e,cwd:t})},print:l});export{u as commandConnectionList};
|
package/dist/list-P2Ztf1bQ.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{K as e}from"./config-D2FxHWwi.js";import{i as t}from"./cli-D5hyqGq0.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/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-XNsjb-UM.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-CB-j4EO8.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};
|