@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
package/dist/schema-BSlHRFSP.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";const t=Symbol.for(`drizzle:entityKind`),n=Symbol.for(`drizzle:hasOwnEntityKind`);function r(e,n){if(!e||typeof e!=`object`)return!1;if(e instanceof n)return!0;if(!Object.prototype.hasOwnProperty.call(n,t))throw Error(`Class "${n.name??`<unknown>`}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let r=Object.getPrototypeOf(e).constructor;if(r)for(;r;){if(t in r&&r[t]===n[t])return!0;r=Object.getPrototypeOf(r)}return!1}var i=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[t]=`Column`;name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!==`byDefault`}},a=class{static[t]=`ColumnBuilder`;config;constructor(e,t,n){this.config={name:e,keyAsName:e===``,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:n,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===``&&(this.config.name=e)}};const o=Symbol.for(`drizzle:Name`);var s=class{static[t]=`PgForeignKeyBuilder`;reference;_onUpdate=`no action`;_onDelete=`no action`;constructor(e,t){this.reference=()=>{let{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?`no action`:e,this}onDelete(e){return this._onDelete=e===void 0?`no action`:e,this}build(e){return new c(e,this)}},c=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[t]=`PgForeignKey`;reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),i=n.map(e=>e.name),a=[this.table[o],...r,n[0].table[o],...i];return e??`${a.join(`_`)}_fk`}};function l(e,...t){return e(...t)}function u(e){return new p(e)}function d(e,t){return`${e[o]}_${t.join(`_`)}_unique`}var f=class{constructor(e,t){this.name=t,this.columns=e}static[t]=`PgUniqueConstraintBuilder`;columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new m(e,this.columns,this.nullsNotDistinctConfig,this.name)}},p=class{static[t]=`PgUniqueOnConstraintBuilder`;name;constructor(e){this.name=e}on(...e){return new f(e,this.name)}},m=class{constructor(e,t,n,r){this.table=e,this.columns=t,this.name=r??d(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=n}static[t]=`PgUniqueConstraint`;columns;name;nullsNotDistinct=!1;getName(){return this.name}};function h(e,t,n){for(let r=t;r<e.length;r++){let i=e[r];if(i===`\\`){r++;continue}if(i===`"`)return[e.slice(t,r).replace(/\\/g,``),r+1];if(!n&&(i===`,`||i===`}`))return[e.slice(t,r).replace(/\\/g,``),r]}return[e.slice(t).replace(/\\/g,``),e.length]}function g(e,t=0){let n=[],r=t,i=!1;for(;r<e.length;){let a=e[r];if(a===`,`){(i||r===t)&&n.push(``),i=!0,r++;continue}if(i=!1,a===`\\`){r+=2;continue}if(a===`"`){let[t,i]=h(e,r+1,!0);n.push(t),r=i;continue}if(a===`}`)return[n,r+1];if(a===`{`){let[t,i]=g(e,r+1);n.push(t),r=i;continue}let[o,s]=h(e,r,!1);n.push(o),r=s}return[n,r]}function _(e){let[t]=g(e,1);return t}function ee(e){return`{${e.map(e=>Array.isArray(e)?ee(e):typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`:`${e}`).join(`,`)}}`}var v=class extends a{foreignKeyConfigs=[];static[t]=`PgColumnBuilder`;array(e){return new re(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:`always`,mode:`stored`},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>l((n,r)=>{let i=new s(()=>{let t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&i.onUpdate(r.onUpdate),r.onDelete&&i.onDelete(r.onDelete),i.build(t)},n,r))}buildExtraConfigColumn(e){return new te(e,this.config)}},y=class extends i{constructor(e,t){t.uniqueName||=d(e,[t.name]),super(e,t),this.table=e}static[t]=`PgColumn`},te=class extends y{static[t]=`ExtraConfigColumn`;getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??`asc`,nulls:this.config.nulls??`last`,opClass:this.config.opClass};defaultConfig={order:`asc`,nulls:`last`,opClass:void 0};asc(){return this.indexConfig.order=`asc`,this}desc(){return this.indexConfig.order=`desc`,this}nullsFirst(){return this.indexConfig.nulls=`first`,this}nullsLast(){return this.indexConfig.nulls=`last`,this}op(e){return this.indexConfig.opClass=e,this}},ne=class{static[t]=`IndexedColumn`;constructor(e,t,n,r){this.name=e,this.keyAsName=t,this.type=n,this.indexConfig=r}name;keyAsName;type;indexConfig},re=class extends v{static[t]=`PgArrayBuilder`;constructor(e,t,n){super(e,`array`,`PgArray`),this.config.baseBuilder=t,this.config.size=n}build(e){let t=this.config.baseBuilder.build(e);return new ie(e,this.config,t)}},ie=class e extends y{constructor(e,t,n,r){super(e,t),this.baseColumn=n,this.range=r,this.size=t.size}size;static[t]=`PgArray`;getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==`number`?this.size:``}]`}mapFromDriverValue(e){return typeof e==`string`&&(e=_(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(t,n=!1){let i=t.map(t=>t===null?null:r(this.baseColumn,e)?this.baseColumn.mapToDriverValue(t,!0):this.baseColumn.mapToDriverValue(t));return n?i:ee(i)}},ae=class extends v{static[t]=`PgEnumObjectColumnBuilder`;constructor(e,t){super(e,`string`,`PgEnumObjectColumn`),this.config.enum=t}build(e){return new oe(e,this.config)}},oe=class extends y{static[t]=`PgEnumObjectColumn`;enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};const se=Symbol.for(`drizzle:isPgEnum`);function ce(e){return!!e&&typeof e==`function`&&se in e&&e[se]===!0}var le=class extends v{static[t]=`PgEnumColumnBuilder`;constructor(e,t){super(e,`string`,`PgEnumColumn`),this.config.enum=t}build(e){return new ue(e,this.config)}},ue=class extends y{static[t]=`PgEnumColumn`;enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};function de(e,t,n){let r=Object.assign(e=>new le(e??``,r),{enumName:e,enumValues:t,schema:n,[se]:!0});return r}function fe(e,t,n){let r=Object.assign(e=>new ae(e??``,r),{enumName:e,enumValues:Object.values(t),schema:n,[se]:!0});return r}var b=class{static[t]=`Subquery`;constructor(e,t,n,r=!1,i=[]){this._={brand:`Subquery`,sql:e,selectedFields:t,alias:n,isWith:r,usedTables:i}}},pe=class extends b{static[t]=`WithSubquery`};const x={startActiveSpan(e,t){return t()}},S=Symbol.for(`drizzle:ViewBaseConfig`),C=Symbol.for(`drizzle:Schema`),me=Symbol.for(`drizzle:Columns`),he=Symbol.for(`drizzle:ExtraConfigColumns`),ge=Symbol.for(`drizzle:OriginalName`),_e=Symbol.for(`drizzle:BaseName`),ve=Symbol.for(`drizzle:IsAlias`),ye=Symbol.for(`drizzle:ExtraConfigBuilder`),be=Symbol.for(`drizzle:IsDrizzleTable`);var w=class{static[t]=`Table`;static Symbol={Name:o,Schema:C,OriginalName:ge,Columns:me,ExtraConfigColumns:he,BaseName:_e,IsAlias:ve,ExtraConfigBuilder:ye};[o];[ge];[C];[me];[he];[_e];[ve]=!1;[be]=!0;[ye]=void 0;constructor(e,t,n){this[o]=this[ge]=e,this[C]=t,this[_e]=n}};function xe(e){return typeof e==`object`&&!!e&&be in e}function T(e){return e[o]}function E(e){return`${e[C]??`public`}.${e[o]}`}var Se=class{static[t]=`FakePrimitiveParam`};function Ce(e){return e!=null&&typeof e.getSQL==`function`}function we(e){let t={sql:``,params:[]};for(let n of e)t.sql+=n.sql,t.params.push(...n.params),n.typings?.length&&(t.typings||=[],t.typings.push(...n.typings));return t}var D=class{static[t]=`StringChunk`;value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new O([this])}},O=class e{constructor(e){this.queryChunks=e;for(let t of e)if(r(t,w)){let e=t[w.Symbol.Schema];this.usedTables.push(e===void 0?t[w.Symbol.Name]:e+`.`+t[w.Symbol.Name])}}static[t]=`SQL`;decoder=Oe;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return x.startActiveSpan(`drizzle.buildSQL`,t=>{let n=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(t,n){let a=Object.assign({},n,{inlineParams:n.inlineParams||this.shouldInlineParams,paramStartIndex:n.paramStartIndex||{value:0}}),{casing:o,escapeName:s,escapeParam:c,prepareTyping:l,inlineParams:u,paramStartIndex:d}=a;return we(t.map(t=>{if(r(t,D))return{sql:t.value.join(``),params:[]};if(r(t,Te))return{sql:s(t.value),params:[]};if(t===void 0)return{sql:``,params:[]};if(Array.isArray(t)){let e=[new D(`(`)];for(let[n,r]of t.entries())e.push(r),n<t.length-1&&e.push(new D(`, `));return e.push(new D(`)`)),this.buildQueryFromSourceParams(e,a)}if(r(t,e))return this.buildQueryFromSourceParams(t.queryChunks,{...a,inlineParams:u||t.shouldInlineParams});if(r(t,w)){let e=t[w.Symbol.Schema],n=t[w.Symbol.Name];return{sql:e===void 0||t[ve]?s(n):s(e)+`.`+s(n),params:[]}}if(r(t,i)){let e=o.getColumnCasing(t);if(n.invokeSource===`indexes`)return{sql:s(e),params:[]};let r=t.table[w.Symbol.Schema];return{sql:t.table[ve]||r===void 0?s(t.table[w.Symbol.Name])+`.`+s(e):s(r)+`.`+s(t.table[w.Symbol.Name])+`.`+s(e),params:[]}}if(r(t,M)){let e=t[S].schema,n=t[S].name;return{sql:e===void 0||t[S].isAlias?s(n):s(e)+`.`+s(n),params:[]}}if(r(t,k)){if(r(t.value,j))return{sql:c(d.value++,t),params:[t],typings:[`none`]};let n=t.value===null?null:t.encoder.mapToDriverValue(t.value);if(r(n,e))return this.buildQueryFromSourceParams([n],a);if(u)return{sql:this.mapInlineParam(n,a),params:[]};let i=[`none`];return l&&(i=[l(t.encoder)]),{sql:c(d.value++,n),params:[n],typings:i}}return r(t,j)?{sql:c(d.value++,t),params:[t],typings:[`none`]}:r(t,e.Aliased)&&t.fieldAlias!==void 0?{sql:s(t.fieldAlias),params:[]}:r(t,b)?t._.isWith?{sql:s(t._.alias),params:[]}:this.buildQueryFromSourceParams([new D(`(`),t._.sql,new D(`) `),new Te(t._.alias)],a):ce(t)?t.schema?{sql:s(t.schema)+`.`+s(t.enumName),params:[]}:{sql:s(t.enumName),params:[]}:Ce(t)?t.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([t.getSQL()],a):this.buildQueryFromSourceParams([new D(`(`),t.getSQL(),new D(`)`)],a):u?{sql:this.mapInlineParam(t,a),params:[]}:{sql:c(d.value++,t),params:[t],typings:[`none`]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return`null`;if(typeof e==`number`||typeof e==`boolean`)return e.toString();if(typeof e==`string`)return t(e);if(typeof e==`object`){let n=e.toString();return t(n===`[object Object]`?JSON.stringify(e):n)}throw Error(`Unexpected param value: `+e)}getSQL(){return this}as(t){return t===void 0?this:new e.Aliased(this,t)}mapWith(e){return this.decoder=typeof e==`function`?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},Te=class{constructor(e){this.value=e}static[t]=`Name`;brand;getSQL(){return new O([this])}};function Ee(e){return new Te(e)}function De(e){return typeof e==`object`&&!!e&&`mapToDriverValue`in e&&typeof e.mapToDriverValue==`function`}const Oe={mapFromDriverValue:e=>e},ke={mapToDriverValue:e=>e},Ae={...Oe,...ke};var k=class{constructor(e,t=ke){this.value=e,this.encoder=t}static[t]=`Param`;brand;getSQL(){return new O([this])}};function je(e,t){return new k(e,t)}function A(e,...t){let n=[];(t.length>0||e.length>0&&e[0]!==``)&&n.push(new D(e[0]));for(let[r,i]of t.entries())n.push(i,new D(e[r+1]));return new O(n)}(e=>{function t(){return new O([])}e.empty=t;function n(e){return new O(e)}e.fromList=n;function r(e){return new O([new D(e)])}e.raw=r;function i(e,t){let n=[];for(let[r,i]of e.entries())r>0&&t!==void 0&&n.push(t),n.push(i);return new O(n)}e.join=i;function a(e){return new Te(e)}e.identifier=a;function o(e){return new j(e)}e.placeholder=o;function s(e,t){return new k(e,t)}e.param=s})(A||={}),(e=>{class n{constructor(e,t){this.sql=e,this.fieldAlias=t}static[t]=`SQL.Aliased`;isSelectionField=!1;getSQL(){return this.sql}clone(){return new n(this.sql,this.fieldAlias)}}e.Aliased=n})(O||={});var j=class{constructor(e){this.name=e}static[t]=`Placeholder`;getSQL(){return new O([this])}};function Me(e){return new j(e)}function Ne(e,t){return e.map(e=>{if(r(e,j)){if(!(e.name in t))throw Error(`No value for placeholder "${e.name}" was provided`);return t[e.name]}if(r(e,k)&&r(e.value,j)){if(!(e.value.name in t))throw Error(`No value for placeholder "${e.value.name}" was provided`);return e.encoder.mapToDriverValue(t[e.value.name])}return e})}const Pe=Symbol.for(`drizzle:IsDrizzleView`);var M=class{static[t]=`View`;[S];[Pe]=!0;constructor({name:e,schema:t,selectedFields:n,query:r}){this[S]={name:e,originalName:e,schema:t,selectedFields:n,query:r,isExisting:!r,isAlias:!1}}getSQL(){return new O([this])}};function Fe(e){return typeof e==`object`&&!!e&&Pe in e}function Ie(e){return e[S].name}i.prototype.getSQL=function(){return new O([this])},w.prototype.getSQL=function(){return new O([this])},b.prototype.getSQL=function(){return new O([this])};var Le=class{constructor(e){this.table=e}static[t]=`ColumnAliasProxyHandler`;get(e,t){return t===`table`?this.table:e[t]}},Re=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[t]=`TableAliasProxyHandler`;get(e,t){if(t===w.Symbol.IsAlias)return!0;if(t===w.Symbol.Name||this.replaceOriginalName&&t===w.Symbol.OriginalName)return this.alias;if(t===S)return{...e[S],name:this.alias,isAlias:!0};if(t===w.Symbol.Columns){let t=e[w.Symbol.Columns];if(!t)return t;let n={};return Object.keys(t).map(r=>{n[r]=new Proxy(t[r],new Le(new Proxy(e,this)))}),n}let n=e[t];return r(n,i)?new Proxy(n,new Le(new Proxy(e,this))):n}},ze=class{constructor(e){this.alias=e}static[t]=`RelationTableAliasProxyHandler`;get(e,t){return t===`sourceTable`?Be(e.sourceTable,this.alias):e[t]}};function Be(e,t){return new Proxy(e,new Re(t,!1))}function Ve(e,t){return new Proxy(e,new ze(t))}function N(e,t){return new Proxy(e,new Le(new Proxy(e.table,new Re(t,!1))))}function He(e,t){return new O.Aliased(Ue(e.sql,t),e.fieldAlias)}function Ue(e,t){return A.join(e.queryChunks.map(e=>r(e,i)?N(e,t):r(e,O)?Ue(e,t):r(e,O.Aliased)?He(e,t):e))}var We=class extends Error{static[t]=`DrizzleError`;constructor({message:e,cause:t}){super(e),this.name=`DrizzleError`,this.cause=t}},P=class e extends Error{constructor(t,n,r){super(`Failed query: ${t}
|
|
2
|
-
params: ${n}`),this.query=t,this.params=n,this.cause=r,Error.captureStackTrace(this,e),r&&(this.cause=r)}},Ge=class extends We{static[t]=`TransactionRollbackError`;constructor(){super({message:`Rollback`})}},Ke=class{static[t]=`ConsoleLogWriter`;write(e){console.log(e)}},qe=class{static[t]=`DefaultLogger`;writer;constructor(e){this.writer=e?.writer??new Ke}logQuery(e,t){let n=t.map(e=>{try{return JSON.stringify(e)}catch{return String(e)}}),r=n.length?` -- params: [${n.join(`, `)}]`:``;this.writer.write(`Query: ${e}${r}`)}},Je=class{static[t]=`NoopLogger`;logQuery(){}},F=class{static[t]=`QueryPromise`;[Symbol.toStringTag]=`QueryPromise`;catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};function Ye(e,t,n){let a={},o=e.reduce((e,{path:o,field:s},c)=>{let l;l=r(s,i)?s:r(s,O)?s.decoder:r(s,b)?s._.sql.decoder:s.sql.decoder;let u=e;for(let[e,d]of o.entries())if(e<o.length-1)d in u||(u[d]={}),u=u[d];else{let e=t[c],f=u[d]=e===null?null:l.mapFromDriverValue(e);if(n&&r(s,i)&&o.length===2){let e=o[0];e in a?typeof a[e]==`string`&&a[e]!==T(s.table)&&(a[e]=!1):a[e]=f===null&&T(s.table)}}return e},{});if(n&&Object.keys(a).length>0)for(let[e,t]of Object.entries(a))typeof t==`string`&&!n[t]&&(o[e]=null);return o}function I(e,t){return Object.entries(e).reduce((e,[n,a])=>{if(typeof n!=`string`)return e;let o=t?[...t,n]:[n];return r(a,i)||r(a,O)||r(a,O.Aliased)||r(a,b)?e.push({path:o,field:a}):r(a,w)?e.push(...I(a[w.Symbol.Columns],o)):e.push(...I(a,o)),e},[])}function Xe(e,t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let[e,t]of n.entries())if(t!==r[e])return!1;return!0}function Ze(e,t){let n=Object.entries(t).filter(([,e])=>e!==void 0).map(([t,n])=>r(n,O)||r(n,i)?[t,n]:[t,new k(n,e[w.Symbol.Columns][t])]);if(n.length===0)throw Error(`No values to set`);return Object.fromEntries(n)}function Qe(e,t){for(let n of t)for(let t of Object.getOwnPropertyNames(n.prototype))t!==`constructor`&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(n.prototype,t)||Object.create(null))}function $e(e){return e[w.Symbol.Columns]}function et(e){return e[S].selectedFields}function L(e){return r(e,b)?e._.alias:r(e,M)?e[S].name:r(e,O)?void 0:e[w.Symbol.IsAlias]?e[w.Symbol.Name]:e[w.Symbol.BaseName]}function R(e,t){return{name:typeof e==`string`&&e.length>0?e:``,config:typeof e==`object`?e:t}}function tt(e){if(typeof e!=`object`||!e||e.constructor.name!==`Object`)return!1;if(`logger`in e){let t=typeof e.logger;return t===`boolean`||t===`object`&&typeof e.logger.logQuery==`function`||t===`undefined`}if(`schema`in e){let t=typeof e.schema;return t===`object`||t===`undefined`}if(`casing`in e){let t=typeof e.casing;return t===`string`||t===`undefined`}if(`mode`in e)return e.mode==="default"&&e.mode===`planetscale`&&e.mode===void 0;if(`connection`in e){let t=typeof e.connection;return t===`string`||t===`object`||t===`undefined`}if(`client`in e){let t=typeof e.client;return t===`object`||t===`function`||t===`undefined`}return Object.keys(e).length===0}const nt=typeof TextDecoder>`u`?null:new TextDecoder;var rt=class extends v{static[t]=`PgIntColumnBaseBuilder`;generatedAlwaysAsIdentity(e){if(e){let{name:t,...n}=e;this.config.generatedIdentity={type:`always`,sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:`always`};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){let{name:t,...n}=e;this.config.generatedIdentity={type:`byDefault`,sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:`byDefault`};return this.config.hasDefault=!0,this.config.notNull=!0,this}},it=class extends rt{static[t]=`PgBigInt53Builder`;constructor(e){super(e,`number`,`PgBigInt53`)}build(e){return new at(e,this.config)}},at=class extends y{static[t]=`PgBigInt53`;getSQLType(){return`bigint`}mapFromDriverValue(e){return typeof e==`number`?e:Number(e)}},ot=class extends rt{static[t]=`PgBigInt64Builder`;constructor(e){super(e,`bigint`,`PgBigInt64`)}build(e){return new st(e,this.config)}},st=class extends y{static[t]=`PgBigInt64`;getSQLType(){return`bigint`}mapFromDriverValue(e){return BigInt(e)}};function z(e,t){let{name:n,config:r}=R(e,t);return r.mode===`number`?new it(n):new ot(n)}var ct=class extends v{static[t]=`PgBigSerial53Builder`;constructor(e){super(e,`number`,`PgBigSerial53`),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new lt(e,this.config)}},lt=class extends y{static[t]=`PgBigSerial53`;getSQLType(){return`bigserial`}mapFromDriverValue(e){return typeof e==`number`?e:Number(e)}},ut=class extends v{static[t]=`PgBigSerial64Builder`;constructor(e){super(e,`bigint`,`PgBigSerial64`),this.config.hasDefault=!0}build(e){return new dt(e,this.config)}},dt=class extends y{static[t]=`PgBigSerial64`;getSQLType(){return`bigserial`}mapFromDriverValue(e){return BigInt(e)}};function ft(e,t){let{name:n,config:r}=R(e,t);return r.mode===`number`?new ct(n):new ut(n)}var pt=class extends v{static[t]=`PgBooleanBuilder`;constructor(e){super(e,`boolean`,`PgBoolean`)}build(e){return new mt(e,this.config)}},mt=class extends y{static[t]=`PgBoolean`;getSQLType(){return`boolean`}};function ht(e){return new pt(e??``)}var gt=class extends v{static[t]=`PgCharBuilder`;constructor(e,t){super(e,`string`,`PgChar`),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new _t(e,this.config)}},_t=class extends y{static[t]=`PgChar`;length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?`char`:`char(${this.length})`}};function vt(e,t={}){let{name:n,config:r}=R(e,t);return new gt(n,r)}var yt=class extends v{static[t]=`PgCidrBuilder`;constructor(e){super(e,`string`,`PgCidr`)}build(e){return new bt(e,this.config)}},bt=class extends y{static[t]=`PgCidr`;getSQLType(){return`cidr`}};function xt(e){return new yt(e??``)}var St=class extends v{static[t]=`PgCustomColumnBuilder`;constructor(e,t,n){super(e,`custom`,`PgCustomColumn`),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Ct(e,this.config)}},Ct=class extends y{static[t]=`PgCustomColumn`;sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return typeof this.mapFrom==`function`?this.mapFrom(e):e}mapToDriverValue(e){return typeof this.mapTo==`function`?this.mapTo(e):e}};function wt(e){return(t,n)=>{let{name:r,config:i}=R(t,n);return new St(r,i,e)}}var Tt=class extends v{static[t]=`PgDateColumnBaseBuilder`;defaultNow(){return this.default(A`now()`)}},Et=class extends Tt{static[t]=`PgDateBuilder`;constructor(e){super(e,`date`,`PgDate`)}build(e){return new Dt(e,this.config)}},Dt=class extends y{static[t]=`PgDate`;getSQLType(){return`date`}mapFromDriverValue(e){return typeof e==`string`?new Date(e):e}mapToDriverValue(e){return e.toISOString()}},Ot=class extends Tt{static[t]=`PgDateStringBuilder`;constructor(e){super(e,`string`,`PgDateString`)}build(e){return new kt(e,this.config)}},kt=class extends y{static[t]=`PgDateString`;getSQLType(){return`date`}mapFromDriverValue(e){return typeof e==`string`?e:e.toISOString().slice(0,-14)}};function At(e,t){let{name:n,config:r}=R(e,t);return r?.mode===`date`?new Et(n):new Ot(n)}var jt=class extends v{static[t]=`PgDoublePrecisionBuilder`;constructor(e){super(e,`number`,`PgDoublePrecision`)}build(e){return new Mt(e,this.config)}},Mt=class extends y{static[t]=`PgDoublePrecision`;getSQLType(){return`double precision`}mapFromDriverValue(e){return typeof e==`string`?Number.parseFloat(e):e}};function Nt(e){return new jt(e??``)}var Pt=class extends v{static[t]=`PgInetBuilder`;constructor(e){super(e,`string`,`PgInet`)}build(e){return new Ft(e,this.config)}},Ft=class extends y{static[t]=`PgInet`;getSQLType(){return`inet`}};function It(e){return new Pt(e??``)}var Lt=class extends rt{static[t]=`PgIntegerBuilder`;constructor(e){super(e,`number`,`PgInteger`)}build(e){return new Rt(e,this.config)}},Rt=class extends y{static[t]=`PgInteger`;getSQLType(){return`integer`}mapFromDriverValue(e){return typeof e==`string`?Number.parseInt(e):e}};function B(e){return new Lt(e??``)}var zt=class extends v{static[t]=`PgIntervalBuilder`;constructor(e,t){super(e,`string`,`PgInterval`),this.config.intervalConfig=t}build(e){return new Bt(e,this.config)}},Bt=class extends y{static[t]=`PgInterval`;fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:``}${this.precision?`(${this.precision})`:``}`}};function Vt(e,t={}){let{name:n,config:r}=R(e,t);return new zt(n,r)}var Ht=class extends v{static[t]=`PgJsonBuilder`;constructor(e){super(e,`json`,`PgJson`)}build(e){return new Ut(e,this.config)}},Ut=class extends y{static[t]=`PgJson`;constructor(e,t){super(e,t)}getSQLType(){return`json`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}};function Wt(e){return new Ht(e??``)}var Gt=class extends v{static[t]=`PgJsonbBuilder`;constructor(e){super(e,`json`,`PgJsonb`)}build(e){return new Kt(e,this.config)}},Kt=class extends y{static[t]=`PgJsonb`;constructor(e,t){super(e,t)}getSQLType(){return`jsonb`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}};function V(e){return new Gt(e??``)}var qt=class extends v{static[t]=`PgLineBuilder`;constructor(e){super(e,`array`,`PgLine`)}build(e){return new Jt(e,this.config)}},Jt=class extends y{static[t]=`PgLine`;getSQLType(){return`line`}mapFromDriverValue(e){let[t,n,r]=e.slice(1,-1).split(`,`);return[Number.parseFloat(t),Number.parseFloat(n),Number.parseFloat(r)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}},Yt=class extends v{static[t]=`PgLineABCBuilder`;constructor(e){super(e,`json`,`PgLineABC`)}build(e){return new Xt(e,this.config)}},Xt=class extends y{static[t]=`PgLineABC`;getSQLType(){return`line`}mapFromDriverValue(e){let[t,n,r]=e.slice(1,-1).split(`,`);return{a:Number.parseFloat(t),b:Number.parseFloat(n),c:Number.parseFloat(r)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}};function Zt(e,t){let{name:n,config:r}=R(e,t);return!r?.mode||r.mode===`tuple`?new qt(n):new Yt(n)}var Qt=class extends v{static[t]=`PgMacaddrBuilder`;constructor(e){super(e,`string`,`PgMacaddr`)}build(e){return new $t(e,this.config)}},$t=class extends y{static[t]=`PgMacaddr`;getSQLType(){return`macaddr`}};function en(e){return new Qt(e??``)}var tn=class extends v{static[t]=`PgMacaddr8Builder`;constructor(e){super(e,`string`,`PgMacaddr8`)}build(e){return new nn(e,this.config)}},nn=class extends y{static[t]=`PgMacaddr8`;getSQLType(){return`macaddr8`}};function rn(e){return new tn(e??``)}var an=class extends v{static[t]=`PgNumericBuilder`;constructor(e,t,n){super(e,`string`,`PgNumeric`),this.config.precision=t,this.config.scale=n}build(e){return new on(e,this.config)}},on=class extends y{static[t]=`PgNumeric`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e==`string`?e:String(e)}getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}},sn=class extends v{static[t]=`PgNumericNumberBuilder`;constructor(e,t,n){super(e,`number`,`PgNumericNumber`),this.config.precision=t,this.config.scale=n}build(e){return new cn(e,this.config)}},cn=class extends y{static[t]=`PgNumericNumber`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e==`number`?e:Number(e)}mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}},ln=class extends v{static[t]=`PgNumericBigIntBuilder`;constructor(e,t,n){super(e,`bigint`,`PgNumericBigInt`),this.config.precision=t,this.config.scale=n}build(e){return new un(e,this.config)}},un=class extends y{static[t]=`PgNumericBigInt`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}};function dn(e,t){let{name:n,config:r}=R(e,t),i=r?.mode;return i===`number`?new sn(n,r?.precision,r?.scale):i===`bigint`?new ln(n,r?.precision,r?.scale):new an(n,r?.precision,r?.scale)}var fn=class extends v{static[t]=`PgPointTupleBuilder`;constructor(e){super(e,`array`,`PgPointTuple`)}build(e){return new pn(e,this.config)}},pn=class extends y{static[t]=`PgPointTuple`;getSQLType(){return`point`}mapFromDriverValue(e){if(typeof e==`string`){let[t,n]=e.slice(1,-1).split(`,`);return[Number.parseFloat(t),Number.parseFloat(n)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}},mn=class extends v{static[t]=`PgPointObjectBuilder`;constructor(e){super(e,`json`,`PgPointObject`)}build(e){return new hn(e,this.config)}},hn=class extends y{static[t]=`PgPointObject`;getSQLType(){return`point`}mapFromDriverValue(e){if(typeof e==`string`){let[t,n]=e.slice(1,-1).split(`,`);return{x:Number.parseFloat(t),y:Number.parseFloat(n)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}};function gn(e,t){let{name:n,config:r}=R(e,t);return!r?.mode||r.mode===`tuple`?new fn(n):new mn(n)}function _n(e){let t=[];for(let n=0;n<e.length;n+=2)t.push(Number.parseInt(e.slice(n,n+2),16));return new Uint8Array(t)}function vn(e,t){let n=new DataView(new ArrayBuffer(8));for(let r=0;r<8;r++)n.setUint8(r,e[t+r]);return n.getFloat64(0,!0)}function yn(e){let t=_n(e),n=0,r=t[n];n+=1;let i=new DataView(t.buffer),a=i.getUint32(n,r===1);if(n+=4,a&536870912&&(i.getUint32(n,r===1),n+=4),(a&65535)==1){let e=vn(t,n);n+=8;let r=vn(t,n);return n+=8,[e,r]}throw Error(`Unsupported geometry type`)}var bn=class extends v{static[t]=`PgGeometryBuilder`;constructor(e){super(e,`array`,`PgGeometry`)}build(e){return new xn(e,this.config)}},xn=class extends y{static[t]=`PgGeometry`;getSQLType(){return`geometry(point)`}mapFromDriverValue(e){return yn(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}},Sn=class extends v{static[t]=`PgGeometryObjectBuilder`;constructor(e){super(e,`json`,`PgGeometryObject`)}build(e){return new Cn(e,this.config)}},Cn=class extends y{static[t]=`PgGeometryObject`;getSQLType(){return`geometry(point)`}mapFromDriverValue(e){let t=yn(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}};function wn(e,t){let{name:n,config:r}=R(e,t);return!r?.mode||r.mode===`tuple`?new bn(n):new Sn(n)}var Tn=class extends v{static[t]=`PgRealBuilder`;constructor(e,t){super(e,`number`,`PgReal`),this.config.length=t}build(e){return new En(e,this.config)}},En=class extends y{static[t]=`PgReal`;constructor(e,t){super(e,t)}getSQLType(){return`real`}mapFromDriverValue=e=>typeof e==`string`?Number.parseFloat(e):e};function Dn(e){return new Tn(e??``)}var On=class extends v{static[t]=`PgSerialBuilder`;constructor(e){super(e,`number`,`PgSerial`),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new kn(e,this.config)}},kn=class extends y{static[t]=`PgSerial`;getSQLType(){return`serial`}};function An(e){return new On(e??``)}var jn=class extends rt{static[t]=`PgSmallIntBuilder`;constructor(e){super(e,`number`,`PgSmallInt`)}build(e){return new Mn(e,this.config)}},Mn=class extends y{static[t]=`PgSmallInt`;getSQLType(){return`smallint`}mapFromDriverValue=e=>typeof e==`string`?Number(e):e};function Nn(e){return new jn(e??``)}var Pn=class extends v{static[t]=`PgSmallSerialBuilder`;constructor(e){super(e,`number`,`PgSmallSerial`),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Fn(e,this.config)}},Fn=class extends y{static[t]=`PgSmallSerial`;getSQLType(){return`smallserial`}};function In(e){return new Pn(e??``)}var Ln=class extends v{static[t]=`PgTextBuilder`;constructor(e,t){super(e,`string`,`PgText`),this.config.enumValues=t.enum}build(e){return new Rn(e,this.config)}},Rn=class extends y{static[t]=`PgText`;enumValues=this.config.enumValues;getSQLType(){return`text`}};function H(e,t={}){let{name:n,config:r}=R(e,t);return new Ln(n,r)}var zn=class extends Tt{constructor(e,t,n){super(e,`string`,`PgTime`),this.withTimezone=t,this.precision=n,this.config.withTimezone=t,this.config.precision=n}static[t]=`PgTimeBuilder`;build(e){return new Bn(e,this.config)}},Bn=class extends y{static[t]=`PgTime`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${this.precision===void 0?``:`(${this.precision})`}${this.withTimezone?` with time zone`:``}`}};function Vn(e,t={}){let{name:n,config:r}=R(e,t);return new zn(n,r.withTimezone??!1,r.precision)}var Hn=class extends Tt{static[t]=`PgTimestampBuilder`;constructor(e,t,n){super(e,`date`,`PgTimestamp`),this.config.withTimezone=t,this.config.precision=n}build(e){return new Un(e,this.config)}},Un=class extends y{static[t]=`PgTimestamp`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?``:` (${this.precision})`}${this.withTimezone?` with time zone`:``}`}mapFromDriverValue(e){return typeof e==`string`?new Date(this.withTimezone?e:e+`+0000`):e}mapToDriverValue=e=>e.toISOString()},Wn=class extends Tt{static[t]=`PgTimestampStringBuilder`;constructor(e,t,n){super(e,`string`,`PgTimestampString`),this.config.withTimezone=t,this.config.precision=n}build(e){return new Gn(e,this.config)}},Gn=class extends y{static[t]=`PgTimestampString`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?``:`(${this.precision})`}${this.withTimezone?` with time zone`:``}`}mapFromDriverValue(e){if(typeof e==`string`)return e;let t=e.toISOString().slice(0,-1).replace(`T`,` `);if(this.withTimezone){let n=e.getTimezoneOffset();return`${t}${n<=0?`+`:`-`}${Math.floor(Math.abs(n)/60).toString().padStart(2,`0`)}`}return t}};function Kn(e,t={}){let{name:n,config:r}=R(e,t);return r?.mode===`string`?new Wn(n,r.withTimezone??!1,r.precision):new Hn(n,r?.withTimezone??!1,r?.precision)}var qn=class extends v{static[t]=`PgUUIDBuilder`;constructor(e){super(e,`string`,`PgUUID`)}defaultRandom(){return this.default(A`gen_random_uuid()`)}build(e){return new Jn(e,this.config)}},Jn=class extends y{static[t]=`PgUUID`;getSQLType(){return`uuid`}};function Yn(e){return new qn(e??``)}var Xn=class extends v{static[t]=`PgVarcharBuilder`;constructor(e,t){super(e,`string`,`PgVarchar`),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Zn(e,this.config)}},Zn=class extends y{static[t]=`PgVarchar`;length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?`varchar`:`varchar(${this.length})`}};function Qn(e,t={}){let{name:n,config:r}=R(e,t);return new Xn(n,r)}var $n=class extends v{static[t]=`PgBinaryVectorBuilder`;constructor(e,t){super(e,`string`,`PgBinaryVector`),this.config.dimensions=t.dimensions}build(e){return new er(e,this.config)}},er=class extends y{static[t]=`PgBinaryVector`;dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}};function tr(e,t){let{name:n,config:r}=R(e,t);return new $n(n,r)}var nr=class extends v{static[t]=`PgHalfVectorBuilder`;constructor(e,t){super(e,`array`,`PgHalfVector`),this.config.dimensions=t.dimensions}build(e){return new rr(e,this.config)}},rr=class extends y{static[t]=`PgHalfVector`;dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(`,`).map(e=>Number.parseFloat(e))}};function ir(e,t){let{name:n,config:r}=R(e,t);return new nr(n,r)}var ar=class extends v{static[t]=`PgSparseVectorBuilder`;constructor(e,t){super(e,`string`,`PgSparseVector`),this.config.dimensions=t.dimensions}build(e){return new or(e,this.config)}},or=class extends y{static[t]=`PgSparseVector`;dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}};function sr(e,t){let{name:n,config:r}=R(e,t);return new ar(n,r)}var cr=class extends v{static[t]=`PgVectorBuilder`;constructor(e,t){super(e,`array`,`PgVector`),this.config.dimensions=t.dimensions}build(e){return new lr(e,this.config)}},lr=class extends y{static[t]=`PgVector`;dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(`,`).map(e=>Number.parseFloat(e))}};function ur(e,t){let{name:n,config:r}=R(e,t);return new cr(n,r)}function dr(){return{bigint:z,bigserial:ft,boolean:ht,char:vt,cidr:xt,customType:wt,date:At,doublePrecision:Nt,inet:It,integer:B,interval:Vt,json:Wt,jsonb:V,line:Zt,macaddr:en,macaddr8:rn,numeric:dn,point:gn,geometry:wn,real:Dn,serial:An,smallint:Nn,smallserial:In,text:H,time:Vn,timestamp:Kn,uuid:Yn,varchar:Qn,bit:tr,halfvec:ir,sparsevec:sr,vector:ur}}const fr=Symbol.for(`drizzle:PgInlineForeignKeys`),pr=Symbol.for(`drizzle:EnableRLS`);var U=class extends w{static[t]=`PgTable`;static Symbol=Object.assign({},w.Symbol,{InlineForeignKeys:fr,EnableRLS:pr});[fr]=[];[pr]=!1;[w.Symbol.ExtraConfigBuilder]=void 0;[w.Symbol.ExtraConfigColumns]={}};function mr(e,t,n,r,i=e){let a=new U(e,r,i),o=typeof t==`function`?t(dr()):t,s=Object.fromEntries(Object.entries(o).map(([e,t])=>{let n=t;n.setName(e);let r=n.build(a);return a[fr].push(...n.buildForeignKeys(r,a)),[e,r]})),c=Object.fromEntries(Object.entries(o).map(([e,t])=>{let n=t;return n.setName(e),[e,n.buildExtraConfigColumn(a)]})),l=Object.assign(a,s);return l[w.Symbol.Columns]=s,l[w.Symbol.ExtraConfigColumns]=c,n&&(l[U.Symbol.ExtraConfigBuilder]=n),Object.assign(l,{enableRLS:()=>(l[U.Symbol.EnableRLS]=!0,l)})}const hr=(e,t,n)=>mr(e,t,n,void 0);var gr=class{static[t]=`PgPrimaryKeyBuilder`;columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new _r(e,this.columns,this.name)}},_r=class{constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[t]=`PgPrimaryKey`;columns;name;getName(){return this.name??`${this.table[U.Symbol.Name]}_${this.columns.map(e=>e.name).join(`_`)}_pk`}};function W(e,t){return De(t)&&!Ce(e)&&!r(e,k)&&!r(e,j)&&!r(e,i)&&!r(e,w)&&!r(e,M)?new k(e,t):e}const vr=(e,t)=>A`${e} = ${W(t,e)}`,yr=(e,t)=>A`${e} <> ${W(t,e)}`;function br(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new O(t):new O([new D(`(`),A.join(t,new D(` and `)),new D(`)`)])}function xr(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new O(t):new O([new D(`(`),A.join(t,new D(` or `)),new D(`)`)])}function Sr(e){return A`not ${e}`}const Cr=(e,t)=>A`${e} > ${W(t,e)}`,wr=(e,t)=>A`${e} >= ${W(t,e)}`,Tr=(e,t)=>A`${e} < ${W(t,e)}`,Er=(e,t)=>A`${e} <= ${W(t,e)}`;function Dr(e,t){return Array.isArray(t)?t.length===0?A`false`:A`${e} in ${t.map(t=>W(t,e))}`:A`${e} in ${W(t,e)}`}function Or(e,t){return Array.isArray(t)?t.length===0?A`true`:A`${e} not in ${t.map(t=>W(t,e))}`:A`${e} not in ${W(t,e)}`}function kr(e){return A`${e} is null`}function Ar(e){return A`${e} is not null`}function jr(e){return A`exists ${e}`}function Mr(e){return A`not exists ${e}`}function Nr(e,t,n){return A`${e} between ${W(t,e)} and ${W(n,e)}`}function Pr(e,t,n){return A`${e} not between ${W(t,e)} and ${W(n,e)}`}function Fr(e,t){return A`${e} like ${t}`}function Ir(e,t){return A`${e} not like ${t}`}function Lr(e,t){return A`${e} ilike ${t}`}function Rr(e,t){return A`${e} not ilike ${t}`}function zr(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContains requires at least one value`);let n=A`${W(t,e)}`;return A`${e} @> ${n}`}return A`${e} @> ${W(t,e)}`}function Br(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContained requires at least one value`);let n=A`${W(t,e)}`;return A`${e} <@ ${n}`}return A`${e} <@ ${W(t,e)}`}function Vr(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayOverlaps requires at least one value`);let n=A`${W(t,e)}`;return A`${e} && ${n}`}return A`${e} && ${W(t,e)}`}function Hr(e){return A`${e} asc`}function Ur(e){return A`${e} desc`}var Wr=class{constructor(e,t,n){this.sourceTable=e,this.referencedTable=t,this.relationName=n,this.referencedTableName=t[w.Symbol.Name]}static[t]=`Relation`;referencedTableName;fieldName},Gr=class{constructor(e,t){this.table=e,this.config=t}static[t]=`Relations`},Kr=class e extends Wr{constructor(e,t,n,r){super(e,t,n?.relationName),this.config=n,this.isNullable=r}static[t]=`One`;withFieldName(t){let n=new e(this.sourceTable,this.referencedTable,this.config,this.isNullable);return n.fieldName=t,n}},qr=class e extends Wr{constructor(e,t,n){super(e,t,n?.relationName),this.config=n}static[t]=`Many`;withFieldName(t){let n=new e(this.sourceTable,this.referencedTable,this.config);return n.fieldName=t,n}};function Jr(){return{and:br,between:Nr,eq:vr,exists:jr,gt:Cr,gte:wr,ilike:Lr,inArray:Dr,isNull:kr,isNotNull:Ar,like:Fr,lt:Tr,lte:Er,ne:yr,not:Sr,notBetween:Pr,notExists:Mr,notLike:Ir,notIlike:Rr,notInArray:Or,or:xr,sql:A}}function Yr(){return{sql:A,asc:Hr,desc:Ur}}function Xr(e,t){Object.keys(e).length===1&&`default`in e&&!r(e.default,w)&&(e=e.default);let n={},i={},a={};for(let[o,s]of Object.entries(e))if(r(s,w)){let e=E(s),t=i[e];n[e]=o,a[o]={tsName:o,dbName:s[w.Symbol.Name],schema:s[w.Symbol.Schema],columns:s[w.Symbol.Columns],relations:t?.relations??{},primaryKey:t?.primaryKey??[]};for(let e of Object.values(s[w.Symbol.Columns]))e.primary&&a[o].primaryKey.push(e);let c=s[w.Symbol.ExtraConfigBuilder]?.(s[w.Symbol.ExtraConfigColumns]);if(c)for(let e of Object.values(c))r(e,gr)&&a[o].primaryKey.push(...e.columns)}else if(r(s,Gr)){let e=E(s.table),r=n[e],o=s.config(t(s.table)),c;for(let[t,n]of Object.entries(o))if(r){let e=a[r];e.relations[t]=n}else e in i||(i[e]={relations:{},primaryKey:c}),i[e].relations[t]=n}return{tables:a,tableNamesMap:n}}function Zr(e,t){return new Gr(e,e=>Object.fromEntries(Object.entries(t(e)).map(([e,t])=>[e,t.withFieldName(e)])))}function Qr(e){return function(t,n){return new Kr(e,t,n,n?.fields.reduce((e,t)=>e&&t.notNull,!0)??!1)}}function $r(e){return function(t,n){return new qr(e,t,n)}}function ei(e,t,n){if(r(n,Kr)&&n.config)return{fields:n.config.fields,references:n.config.references};let i=t[E(n.referencedTable)];if(!i)throw Error(`Table "${n.referencedTable[w.Symbol.Name]}" not found in schema`);let a=e[i];if(!a)throw Error(`Table "${i}" not found in schema`);let o=n.sourceTable,s=t[E(o)];if(!s)throw Error(`Table "${o[w.Symbol.Name]}" not found in schema`);let c=[];for(let e of Object.values(a.relations))(n.relationName&&n!==e&&e.relationName===n.relationName||!n.relationName&&e.referencedTable===n.sourceTable)&&c.push(e);if(c.length>1)throw n.relationName?Error(`There are multiple relations with name "${n.relationName}" in table "${i}"`):Error(`There are multiple relations between "${i}" and "${n.sourceTable[w.Symbol.Name]}". Please specify relation name`);if(c[0]&&r(c[0],Kr)&&c[0].config)return{fields:c[0].config.references,references:c[0].config.fields};throw Error(`There is not enough information to infer relation "${s}.${n.fieldName}"`)}function ti(e){return{one:Qr(e),many:$r(e)}}function ni(e,t,n,a,o=e=>e){let s={};for(let[c,l]of a.entries())if(l.isJson){let i=t.relations[l.tsKey],a=n[c],u=typeof a==`string`?JSON.parse(a):a;s[l.tsKey]=r(i,Kr)?u&&ni(e,e[l.relationTableTsKey],u,l.selection,o):u.map(t=>ni(e,e[l.relationTableTsKey],t,l.selection,o))}else{let e=o(n[c]),t=l.field,a;a=r(t,i)?t:r(t,O)?t.decoder:t.sql.decoder,s[l.tsKey]=e===null?null:a.mapFromDriverValue(e)}return s}function ri(e){return A`count(${e||A.raw(`*`)})`.mapWith(Number)}function ii(e){return A`count(distinct ${e})`.mapWith(Number)}function ai(e){return A`avg(${e})`.mapWith(String)}function oi(e){return A`avg(distinct ${e})`.mapWith(String)}function si(e){return A`sum(${e})`.mapWith(String)}function ci(e){return A`sum(distinct ${e})`.mapWith(String)}function li(e){return A`max(${e})`.mapWith(r(e,i)?e:String)}function ui(e){return A`min(${e})`.mapWith(r(e,i)?e:String)}function di(e){return JSON.stringify(e)}function fi(e,t){return Array.isArray(t)?A`${e} <-> ${di(t)}`:A`${e} <-> ${t}`}function pi(e,t){return Array.isArray(t)?A`${e} <+> ${di(t)}`:A`${e} <+> ${t}`}function mi(e,t){return Array.isArray(t)?A`${e} <#> ${di(t)}`:A`${e} <#> ${t}`}function hi(e,t){return Array.isArray(t)?A`${e} <=> ${di(t)}`:A`${e} <=> ${t}`}function gi(e,t){return Array.isArray(t)?A`${e} <~> ${di(t)}`:A`${e} <~> ${t}`}function _i(e,t){return Array.isArray(t)?A`${e} <%> ${di(t)}`:A`${e} <%> ${t}`}var vi=e({BaseName:()=>_e,Column:()=>i,ColumnAliasProxyHandler:()=>Le,ColumnBuilder:()=>a,Columns:()=>me,ConsoleLogWriter:()=>Ke,DefaultLogger:()=>qe,DrizzleError:()=>We,DrizzleQueryError:()=>P,ExtraConfigBuilder:()=>ye,ExtraConfigColumns:()=>he,FakePrimitiveParam:()=>Se,IsAlias:()=>ve,Many:()=>qr,Name:()=>Te,NoopLogger:()=>Je,One:()=>Kr,OriginalName:()=>ge,Param:()=>k,Placeholder:()=>j,QueryPromise:()=>F,Relation:()=>Wr,RelationTableAliasProxyHandler:()=>ze,Relations:()=>Gr,SQL:()=>O,Schema:()=>C,StringChunk:()=>D,Subquery:()=>b,Table:()=>w,TableAliasProxyHandler:()=>Re,TransactionRollbackError:()=>Ge,View:()=>M,ViewBaseConfig:()=>S,WithSubquery:()=>pe,aliasedRelation:()=>Ve,aliasedTable:()=>Be,aliasedTableColumn:()=>N,and:()=>br,applyMixins:()=>Qe,arrayContained:()=>Br,arrayContains:()=>zr,arrayOverlaps:()=>Vr,asc:()=>Hr,avg:()=>ai,avgDistinct:()=>oi,between:()=>Nr,bindIfParam:()=>W,cosineDistance:()=>hi,count:()=>ri,countDistinct:()=>ii,createMany:()=>$r,createOne:()=>Qr,createTableRelationsHelpers:()=>ti,desc:()=>Ur,entityKind:()=>t,eq:()=>vr,exists:()=>jr,extractTablesRelationalConfig:()=>Xr,fillPlaceholders:()=>Ne,getColumnNameAndConfig:()=>R,getOperators:()=>Jr,getOrderByOperators:()=>Yr,getTableColumns:()=>$e,getTableLikeName:()=>L,getTableName:()=>T,getTableUniqueName:()=>E,getViewName:()=>Ie,getViewSelectedFields:()=>et,gt:()=>Cr,gte:()=>wr,hammingDistance:()=>gi,hasOwnEntityKind:()=>n,haveSameKeys:()=>Xe,ilike:()=>Lr,inArray:()=>Dr,innerProduct:()=>mi,is:()=>r,isConfig:()=>tt,isDriverValueEncoder:()=>De,isNotNull:()=>Ar,isNull:()=>kr,isSQLWrapper:()=>Ce,isTable:()=>xe,isView:()=>Fe,jaccardDistance:()=>_i,l1Distance:()=>pi,l2Distance:()=>fi,like:()=>Fr,lt:()=>Tr,lte:()=>Er,mapColumnsInAliasedSQLToAlias:()=>He,mapColumnsInSQLToAlias:()=>Ue,mapRelationalRow:()=>ni,mapResultRow:()=>Ye,mapUpdateSet:()=>Ze,max:()=>li,min:()=>ui,name:()=>Ee,ne:()=>yr,noopDecoder:()=>Oe,noopEncoder:()=>ke,noopMapper:()=>Ae,normalizeRelation:()=>ei,not:()=>Sr,notBetween:()=>Pr,notExists:()=>Mr,notIlike:()=>Rr,notInArray:()=>Or,notLike:()=>Ir,or:()=>xr,orderSelectedFields:()=>I,param:()=>je,placeholder:()=>Me,relations:()=>Zr,sql:()=>A,sum:()=>si,sumDistinct:()=>ci,textDecoder:()=>nt});function yi(e,t){return new Proxy(e,new Re(t,!1))}var G=class e{static[t]=`SelectionProxyHandler`;config;constructor(e){this.config={...e}}get(t,n){if(n===`_`)return{...t._,selectedFields:new Proxy(t._.selectedFields,this)};if(n===S)return{...t[S],selectedFields:new Proxy(t[S].selectedFields,this)};if(typeof n==`symbol`)return t[n];let a=(r(t,b)?t._.selectedFields:r(t,M)?t[S].selectedFields:t)[n];if(r(a,O.Aliased)){if(this.config.sqlAliasedBehavior===`sql`&&!a.isSelectionField)return a.sql;let e=a.clone();return e.isSelectionField=!0,e}if(r(a,O)){if(this.config.sqlBehavior===`sql`)return a;throw Error(`You tried to reference "${n}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return r(a,i)?this.config.alias?new Proxy(a,new Le(new Proxy(a.table,new Re(this.config.alias,this.config.replaceOriginalName??!1)))):a:typeof a!=`object`||!a?a:new Proxy(a,new e(this.config))}},bi=class{constructor(e,t){this.unique=e,this.name=t}static[t]=`PgIndexBuilderOn`;on(...e){return new xi(e.map(e=>{if(r(e,O))return e;e=e;let t=new ne(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!1,this.name)}onOnly(...e){return new xi(e.map(e=>{if(r(e,O))return e;e=e;let t=new ne(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,t}),this.unique,!0,this.name)}using(e,...t){return new xi(t.map(e=>{if(r(e,O))return e;e=e;let t=new ne(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!0,this.name,e)}},xi=class{static[t]=`PgIndexBuilder`;config;constructor(e,t,n,r,i=`btree`){this.config={name:r,columns:e,unique:t,only:n,method:i}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new Si(this.config,e)}},Si=class{static[t]=`PgIndex`;config;constructor(e,t){this.config={...e,table:t}}};function K(e){return new bi(!1,e)}function q(e){return new bi(!0,e)}const Ci=Symbol.for(`drizzle:PgViewConfig`);function wi(e){return(e.replace(/['\u2019]/g,``).match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join(`_`)}function Ti(e){return(e.replace(/['\u2019]/g,``).match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,t,n)=>e+(n===0?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`),``)}function Ei(e){return e}var Di=class{static[t]=`CasingCache`;cache={};cachedTables={};convert;constructor(e){this.convert=e===`snake_case`?wi:e===`camelCase`?Ti:Ei}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=`${e.table[w.Symbol.Schema]??`public`}.${e.table[w.Symbol.OriginalName]}.${e.name}`;return this.cache[t]||this.cacheTable(e.table),this.cache[t]}cacheTable(e){let t=`${e[w.Symbol.Schema]??`public`}.${e[w.Symbol.OriginalName]}`;if(!this.cachedTables[t]){for(let n of Object.values(e[w.Symbol.Columns])){let e=`${t}.${n.name}`;this.cache[e]=this.convert(n.name)}this.cachedTables[t]=!0}}clearCache(){this.cache={},this.cachedTables={}}},Oi=class extends M{static[t]=`PgViewBase`},ki=class{static[t]=`PgDialect`;casing;constructor(e){this.casing=new Di(e?.casing)}async migrate(e,t,n){let r=typeof n==`string`?`__drizzle_migrations`:n.migrationsTable??`__drizzle_migrations`,i=typeof n==`string`?`drizzle`:n.migrationsSchema??`drizzle`,a=A`
|
|
3
|
-
CREATE TABLE IF NOT EXISTS ${A.identifier(i)}.${A.identifier(r)} (
|
|
4
|
-
id SERIAL PRIMARY KEY,
|
|
5
|
-
hash text NOT NULL,
|
|
6
|
-
created_at bigint
|
|
7
|
-
)
|
|
8
|
-
`;await t.execute(A`CREATE SCHEMA IF NOT EXISTS ${A.identifier(i)}`),await t.execute(a);let o=(await t.all(A`select id, hash, created_at from ${A.identifier(i)}.${A.identifier(r)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(let n of e)if(!o||Number(o.created_at)<n.folderMillis){for(let e of n.sql)await t.execute(A.raw(e));await t.execute(A`insert into ${A.identifier(i)}.${A.identifier(r)} ("hash", "created_at") values(${n.hash}, ${n.folderMillis})`)}})}escapeName(e){return`"${e.replace(/"/g,`""`)}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,`''`)}'`}buildWithCTE(e){if(!e?.length)return;let t=[A`with `];for(let[n,r]of e.entries())t.push(A`${A.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(A`, `);return t.push(A` `),A.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r}){let i=this.buildWithCTE(r),a=n?A` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0,o=t?A` where ${t}`:void 0;return A`${i}delete from ${e}${o}${a}`}buildUpdateSet(e,t){let n=e[w.Symbol.Columns],i=Object.keys(n).filter(e=>t[e]!==void 0||n[e]?.onUpdateFn!==void 0),a=i.length;return A.join(i.flatMap((e,i)=>{let o=n[e],s=o.onUpdateFn?.(),c=t[e]??(r(s,O)?s:A.param(s,o)),l=A`${A.identifier(this.casing.getColumnCasing(o))} = ${c}`;return i<a-1?[l,A.raw(`, `)]:[l]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:i,from:a,joins:o}){let s=this.buildWithCTE(i),c=e[U.Symbol.Name],l=e[U.Symbol.Schema],u=e[U.Symbol.OriginalName],d=c===u?void 0:c,f=A`${l?A`${A.identifier(l)}.`:void 0}${A.identifier(u)}${d&&A` ${A.identifier(d)}`}`,p=this.buildUpdateSet(e,t),m=a&&A.join([A.raw(` from `),this.buildFromTable(a)]),h=this.buildJoins(o),g=r?A` returning ${this.buildSelection(r,{isSingleTable:!a})}`:void 0,_=n?A` where ${n}`:void 0;return A`${s}update ${f} set ${p}${m}${h}${_}${g}`}buildSelection(e,{isSingleTable:t=!1}={}){let n=e.length,a=e.flatMap(({field:e},a)=>{let o=[];if(r(e,O.Aliased)&&e.isSelectionField)o.push(A.identifier(e.fieldAlias));else if(r(e,O.Aliased)||r(e,O)){let n=r(e,O.Aliased)?e.sql:e;t?o.push(new O(n.queryChunks.map(e=>r(e,y)?A.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),r(e,O.Aliased)&&o.push(A` as ${A.identifier(e.fieldAlias)}`)}else if(r(e,i))t?o.push(A.identifier(this.casing.getColumnCasing(e))):o.push(e);else if(r(e,b)){let t=Object.entries(e._.selectedFields);if(t.length===1){let n=t[0][1],a=r(n,O)?n.decoder:r(n,i)?{mapFromDriverValue:e=>n.mapFromDriverValue(e)}:n.sql.decoder;a&&(e._.sql.decoder=a)}o.push(e)}return a<n-1&&o.push(A`, `),o});return A.join(a)}buildJoins(e){if(!e||e.length===0)return;let t=[];for(let[n,i]of e.entries()){n===0&&t.push(A` `);let a=i.table,o=i.lateral?A` lateral`:void 0,s=i.on?A` on ${i.on}`:void 0;if(r(a,U)){let e=a[U.Symbol.Name],n=a[U.Symbol.Schema],r=a[U.Symbol.OriginalName],c=e===r?void 0:i.alias;t.push(A`${A.raw(i.joinType)} join${o} ${n?A`${A.identifier(n)}.`:void 0}${A.identifier(r)}${c&&A` ${A.identifier(c)}`}${s}`)}else if(r(a,M)){let e=a[S].name,n=a[S].schema,r=a[S].originalName,c=e===r?void 0:i.alias;t.push(A`${A.raw(i.joinType)} join${o} ${n?A`${A.identifier(n)}.`:void 0}${A.identifier(r)}${c&&A` ${A.identifier(c)}`}${s}`)}else t.push(A`${A.raw(i.joinType)} join${o} ${a}${s}`);n<e.length-1&&t.push(A` `)}return A.join(t)}buildFromTable(e){if(r(e,w)&&e[w.Symbol.IsAlias]){let t=A`${A.identifier(e[w.Symbol.OriginalName])}`;return e[w.Symbol.Schema]&&(t=A`${A.identifier(e[w.Symbol.Schema])}.${t}`),A`${t} ${A.identifier(e[w.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:a,having:o,table:s,joins:c,orderBy:l,groupBy:u,limit:d,offset:f,lockingClause:p,distinct:m,setOperators:h}){let g=n??I(t);for(let e of g)if(r(e.field,i)&&T(e.field.table)!==(r(s,b)?s._.alias:r(s,Oi)?s[S].name:r(s,O)?void 0:T(s))&&!(e=>c?.some(({alias:t})=>t===(e[w.Symbol.IsAlias]?T(e):e[w.Symbol.BaseName])))(e.field.table)){let t=T(e.field.table);throw Error(`Your "${e.path.join(`->`)}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}let _=!c||c.length===0,ee=this.buildWithCTE(e),v;m&&(v=m===!0?A` distinct`:A` distinct on (${A.join(m.on,A`, `)})`);let y=this.buildSelection(g,{isSingleTable:_}),te=this.buildFromTable(s),ne=this.buildJoins(c),re=a?A` where ${a}`:void 0,ie=o?A` having ${o}`:void 0,ae;l&&l.length>0&&(ae=A` order by ${A.join(l,A`, `)}`);let oe;u&&u.length>0&&(oe=A` group by ${A.join(u,A`, `)}`);let se=typeof d==`object`||typeof d==`number`&&d>=0?A` limit ${d}`:void 0,ce=f?A` offset ${f}`:void 0,le=A.empty();if(p){let e=A` for ${A.raw(p.strength)}`;p.config.of&&e.append(A` of ${A.join(Array.isArray(p.config.of)?p.config.of:[p.config.of],A`, `)}`),p.config.noWait?e.append(A` nowait`):p.config.skipLocked&&e.append(A` skip locked`),le.append(e)}let ue=A`${ee}select${v} ${y} from ${te}${ne}${re}${oe}${ie}${ae}${se}${ce}${le}`;return h.length>0?this.buildSetOperations(ue,h):ue}buildSetOperations(e,t){let[n,...r]=t;if(!n)throw Error(`Cannot pass undefined values to any set operator`);return r.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:i,limit:a,orderBy:o,offset:s}}){let c=A`(${e.getSQL()}) `,l=A`(${i.getSQL()})`,u;if(o&&o.length>0){let e=[];for(let t of o)if(r(t,y))e.push(A.identifier(t.name));else if(r(t,O)){for(let e=0;e<t.queryChunks.length;e++){let n=t.queryChunks[e];r(n,y)&&(t.queryChunks[e]=A.identifier(n.name))}e.push(A`${t}`)}else e.push(A`${t}`);u=A` order by ${A.join(e,A`, `)} `}let d=typeof a==`object`||typeof a==`number`&&a>=0?A` limit ${a}`:void 0,f=A.raw(`${t} ${n?`all `:``}`),p=s?A` offset ${s}`:void 0;return A`${c}${f}${l}${u}${d}${p}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:i,withList:a,select:o,overridingSystemValue_:s}){let c=[],l=e[w.Symbol.Columns],u=Object.entries(l).filter(([e,t])=>!t.shouldDisableInsert()),d=u.map(([,e])=>A.identifier(this.casing.getColumnCasing(e)));if(o){let e=t;r(e,O)?c.push(e):c.push(e.getSQL())}else{let e=t;c.push(A.raw(`values `));for(let[t,n]of e.entries()){let i=[];for(let[e,t]of u){let a=n[e];if(a===void 0||r(a,k)&&a.value===void 0)if(t.defaultFn!==void 0){let e=t.defaultFn(),n=r(e,O)?e:A.param(e,t);i.push(n)}else if(!t.default&&t.onUpdateFn!==void 0){let e=t.onUpdateFn(),n=r(e,O)?e:A.param(e,t);i.push(n)}else i.push(A`default`);else i.push(a)}c.push(i),t<e.length-1&&c.push(A`, `)}}let f=this.buildWithCTE(a),p=A.join(c),m=i?A` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0,h=n?A` on conflict ${n}`:void 0,g=s===!0?A`overriding system value `:void 0;return A`${f}insert into ${e} ${d} ${g}${p}${h}${m}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:n}){let r=t?A` concurrently`:void 0,i=n?A` with no data`:void 0;return A`refresh materialized view${r} ${e}${i}`}prepareTyping(e){return r(e,Kt)||r(e,Ut)?`json`:r(e,on)?`decimal`:r(e,Bn)?`time`:r(e,Un)||r(e,Gn)?`timestamp`:r(e,Dt)||r(e,kt)?`date`:r(e,Jn)?`uuid`:`none`}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:n,table:a,tableConfig:o,queryConfig:s,tableAlias:c,nestedQueryRelation:l,joinOn:u}){let d=[],f,p,m=[],h,g=[];if(s===!0)d=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:N(t,c),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let a=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,N(t,c)]));if(s.where){let e=typeof s.where==`function`?s.where(a,Jr()):s.where;h=e&&Ue(e,c)}let l=[],u=[];if(s.columns){let e=!1;for(let[t,n]of Object.entries(s.columns))n!==void 0&&t in o.columns&&(!e&&n===!0&&(e=!0),u.push(t));u.length>0&&(u=e?u.filter(e=>s.columns?.[e]===!0):Object.keys(o.columns).filter(e=>!u.includes(e)))}else u=Object.keys(o.columns);for(let e of u){let t=o.columns[e];l.push({tsKey:e,value:t})}let _=[];s.with&&(_=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]})));let ee;if(s.extras){ee=typeof s.extras==`function`?s.extras(a,{sql:A}):s.extras;for(let[e,t]of Object.entries(ee))l.push({tsKey:e,value:He(t,c)})}for(let{tsKey:e,value:t}of l)d.push({dbKey:r(t,O.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:r(t,i)?N(t,c):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let v=typeof s.orderBy==`function`?s.orderBy(a,Yr()):s.orderBy??[];Array.isArray(v)||(v=[v]),m=v.map(e=>r(e,i)?N(e,c):Ue(e,c)),f=s.limit,p=s.offset;for(let{tsKey:i,queryConfig:a,relation:o}of _){let s=ei(t,n,o),l=n[E(o.referencedTable)],u=`${c}_${i}`,f=br(...s.fields.map((e,t)=>vr(N(s.references[t],u),N(e,c)))),p=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:r(o,Kr)?a===!0?{limit:1}:{...a,limit:1}:a,tableAlias:u,joinOn:f,nestedQueryRelation:o}),m=A`${A.identifier(u)}.${A.identifier(`data`)}`.as(i);g.push({on:A`true`,table:new b(p.sql,{},u),alias:u,joinType:`left`,lateral:!0}),d.push({dbKey:i,tsKey:i,field:m,relationTableTsKey:l,isJson:!0,selection:p.selection})}}if(d.length===0)throw new We({message:`No fields selected for table "${o.tsName}" ("${c}")`});let _;if(h=br(u,h),l){let e=A`json_build_array(${A.join(d.map(({field:e,tsKey:t,isJson:n})=>n?A`${A.identifier(`${c}_${t}`)}.${A.identifier(`data`)}`:r(e,O.Aliased)?e.sql:e),A`, `)})`;r(l,qr)&&(e=A`coalesce(json_agg(${e}${m.length>0?A` order by ${A.join(m,A`, `)}`:void 0}), '[]'::json)`);let t=[{dbKey:`data`,tsKey:`data`,field:e.as(`data`),isJson:!0,relationTableTsKey:o.tsName,selection:d}];f!==void 0||p!==void 0||m.length>0?(_=this.buildSelectQuery({table:Be(a,c),fields:{},fieldsFlat:[{path:[],field:A.raw(`*`)}],where:h,limit:f,offset:p,orderBy:m,setOperators:[]}),h=void 0,f=void 0,p=void 0,m=[]):_=Be(a,c),_=this.buildSelectQuery({table:r(_,U)?_:new b(_,{},c),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:r(e,i)?N(e,c):e})),joins:g,where:h,limit:f,offset:p,orderBy:m,setOperators:[]})}else _=this.buildSelectQuery({table:Be(a,c),fields:{},fieldsFlat:d.map(({field:e})=>({path:[],field:r(e,i)?N(e,c):e})),joins:g,where:h,limit:f,offset:p,orderBy:m,setOperators:[]});return{tableTsKey:o.tsName,sql:_,selection:d}}},Ai=class{static[t]=`TypedQueryBuilder`;getSelectedFields(){return this._.selectedFields}},J=class{static[t]=`PgSelectBuilder`;fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){let t=!!this.fields,n=e,i;return i=this.fields?this.fields:r(n,b)?Object.fromEntries(Object.keys(n._.selectedFields).map(e=>[e,n[e]])):r(n,Oi)?n[S].selectedFields:r(n,O)?{}:$e(n),new Mi({table:n,fields:i,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},ji=class extends Ai{static[t]=`PgSelectQueryBuilder`;_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:i,withList:a,distinct:o}){super(),this.config={withList:a,table:e,fields:{...t},distinct:o,setOperators:[]},this.isPartialSelect=n,this.session=r,this.dialect=i,this._={selectedFields:t,config:this.config},this.tableName=L(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{};for(let t of Y(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(n,i)=>{let a=this.tableName,o=L(n);for(let e of Y(n))this.usedTables.add(e);if(typeof o==`string`&&this.config.joins?.some(e=>e.alias===o))throw Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof a==`string`&&(this.config.fields={[a]:this.config.fields}),typeof o==`string`&&!r(n,O))){let e=r(n,b)?n._.selectedFields:r(n,M)?n[S].selectedFields:n[w.Symbol.Columns];this.config.fields[o]=e}if(typeof i==`function`&&(i=i(new Proxy(this.config.fields,new G({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:i,table:n,joinType:e,alias:o,lateral:t}),typeof o==`string`)switch(e){case`left`:this.joinsNotNullableMap[o]=!1;break;case`right`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case`cross`:case`inner`:this.joinsNotNullableMap[o]=!0;break;case`full`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin(`left`,!1);leftJoinLateral=this.createJoin(`left`,!0);rightJoin=this.createJoin(`right`,!1);innerJoin=this.createJoin(`inner`,!1);innerJoinLateral=this.createJoin(`inner`,!0);fullJoin=this.createJoin(`full`,!1);crossJoin=this.createJoin(`cross`,!1);crossJoinLateral=this.createJoin(`cross`,!0);createSetOperator(e,t){return n=>{let r=typeof n==`function`?n(Pi()):n;if(!Xe(this.getSelectedFields(),r.getSelectedFields()))throw Error(`Set operator error (union / intersect / except): selected fields are not the same or are in a different order`);return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator(`union`,!1);unionAll=this.createSetOperator(`union`,!0);intersect=this.createSetOperator(`intersect`,!1);intersectAll=this.createSetOperator(`intersect`,!0);except=this.createSetOperator(`except`,!1);exceptAll=this.createSetOperator(`except`,!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new G({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.where=e,this}having(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new G({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]==`function`){let t=e[0](new Proxy(this.config.fields,new G({sqlAliasedBehavior:`alias`,sqlBehavior:`sql`})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]==`function`){let t=e[0](new Proxy(this.config.fields,new G({sqlAliasedBehavior:`alias`,sqlBehavior:`sql`}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){let t=[];if(t.push(...Y(this.config.table)),this.config.joins)for(let e of this.config.joins)t.push(...Y(e.table));return new Proxy(new b(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new G({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}getSelectedFields(){return new Proxy(this.config.fields,new G({alias:this.tableName,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=e===void 0?{config:{},enable:!0,autoInvalidate:!0}:e===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}},Mi=class extends ji{static[t]=`PgSelect`;_prepare(e){let{session:t,config:n,dialect:r,joinsNotNullableMap:i,authToken:a,cacheConfig:o,usedTables:s}=this;if(!t)throw Error(`Cannot execute a query on a query builder. Please use a database instance instead.`);let{fields:c}=n;return x.startActiveSpan(`drizzle.prepareQuery`,()=>{let n=I(c),l=t.prepareQuery(r.sqlToQuery(this.getSQL()),n,e,!0,void 0,{type:`select`,tables:[...s]},o);return l.joinsNotNullableMap=i,l.setToken(a)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>x.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))};Qe(Mi,[F]);function Ni(e,t){return(n,r,...i)=>{let a=[r,...i].map(n=>({type:e,isAll:t,rightSelect:n}));for(let e of a)if(!Xe(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw Error(`Set operator error (union / intersect / except): selected fields are not the same or are in a different order`);return n.addSetOperators(a)}}const Pi=()=>({union:Fi,unionAll:Ii,intersect:Li,intersectAll:Ri,except:zi,exceptAll:Bi}),Fi=Ni(`union`,!1),Ii=Ni(`union`,!0),Li=Ni(`intersect`,!1),Ri=Ni(`intersect`,!0),zi=Ni(`except`,!1),Bi=Ni(`except`,!0);var Vi=class{static[t]=`PgQueryBuilder`;dialect;dialectConfig;constructor(e){this.dialect=r(e,ki)?e:void 0,this.dialectConfig=r(e,ki)?void 0:e}$with=(e,t)=>{let n=this;return{as:r=>(typeof r==`function`&&(r=r(n)),new Proxy(new pe(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new G({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})))}};with(...e){let t=this;function n(n){return new J({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function r(e){return new J({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function i(e,n){return new J({fields:n??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}return{select:n,selectDistinct:r,selectDistinctOn:i}}select(e){return new J({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new J({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new J({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||=new ki(this.dialectConfig),this.dialect}},Hi=class{constructor(e,t){this.name=e,this.schema=t}static[t]=`PgDefaultViewBuilderCore`;config={};with(e){return this.config.with=e,this}},Ui=class extends Hi{static[t]=`PgViewBuilder`;as(e){typeof e==`function`&&(e=e(new Vi));let t=new G({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new Ji({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},Wi=class extends Hi{static[t]=`PgManualViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=$e(hr(e,t))}existing(){return new Proxy(new Ji({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new G({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new Ji({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new G({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},Gi=class{constructor(e,t){this.name=e,this.schema=t}static[t]=`PgMaterializedViewBuilderCore`;config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}},Ki=class extends Gi{static[t]=`PgMaterializedViewBuilder`;as(e){typeof e==`function`&&(e=e(new Vi));let t=new G({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new Xi({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},qi=class extends Gi{static[t]=`PgManualMaterializedViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=$e(hr(e,t))}existing(){return new Proxy(new Xi({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new G({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new Xi({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new G({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},Ji=class extends Oi{static[t]=`PgView`;[Ci];constructor({pgConfig:e,config:t}){super(t),e&&(this[Ci]={with:e.with})}};const Yi=Symbol.for(`drizzle:PgMaterializedViewConfig`);var Xi=class extends Oi{static[t]=`PgMaterializedView`;[Yi];constructor({pgConfig:e,config:t}){super(t),this[Yi]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}};function Zi(e,t,n){return t?new Wi(e,t,n):new Ui(e,n)}function Qi(e,t,n){return t?new qi(e,t,n):new Ki(e,n)}function Y(e){return r(e,U)?[e[C]?`${e[C]}.${e[w.Symbol.BaseName]}`:e[w.Symbol.BaseName]]:r(e,b)?e._.usedTables??[]:r(e,O)?e.usedTables??[]:[]}var $i=class extends F{constructor(e,t,n,r){super(),this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[t]=`PgDelete`;config;cacheConfig;where(e){return this.config.where=e,this}returning(e=this.config.table[w.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=I(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return x.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`delete`,tables:Y(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>x.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new G({alias:T(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},ea=class{constructor(e,t,n,r,i){this.table=e,this.session=t,this.dialect=n,this.withList=r,this.overridingSystemValue_=i}static[t]=`PgInsertBuilder`;authToken;setToken(e){return this.authToken=e,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw Error(`values() must be called with at least one value`);let t=e.map(e=>{let t={},n=this.table[w.Symbol.Columns];for(let i of Object.keys(e)){let a=e[i];t[i]=r(a,O)?a:new k(a,n[i])}return t});return new ta(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){let t=typeof e==`function`?e(new Vi):e;if(!r(t,O)&&!Xe(this.table[me],t._.selectedFields))throw Error(`Insert select error: selected fields are not the same or are in a different order compared to the table definition`);return new ta(this.table,t,this.session,this.dialect,this.withList,!0)}},ta=class extends F{constructor(e,t,n,r,i,a,o){super(),this.session=n,this.dialect=r,this.config={table:e,values:t,withList:i,select:a,overridingSystemValue_:o}}static[t]=`PgInsert`;config;cacheConfig;returning(e=this.config.table[w.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=I(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=A`do nothing`;else{let t=``;t=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(`,`):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target));let n=e.where?A` where ${e.where}`:void 0;this.config.onConflict=A`(${A.raw(t)})${n} do nothing`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw Error(`You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.`);let t=e.where?A` where ${e.where}`:void 0,n=e.targetWhere?A` where ${e.targetWhere}`:void 0,r=e.setWhere?A` where ${e.setWhere}`:void 0,i=this.dialect.buildUpdateSet(this.config.table,Ze(this.config.table,e.set)),a=``;return a=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(`,`):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target)),this.config.onConflict=A`(${A.raw(a)})${n} do update set ${i}${t}${r}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return x.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`insert`,tables:Y(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>x.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new G({alias:T(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},na=class extends F{constructor(e,t,n){super(),this.session=t,this.dialect=n,this.config={view:e}}static[t]=`PgRefreshMaterializedView`;config;concurrently(){if(this.config.withNoData!==void 0)throw Error(`Cannot use concurrently and withNoData together`);return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw Error(`Cannot use concurrently and withNoData together`);return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return x.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>x.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))},ra=class{constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[t]=`PgUpdateBuilder`;authToken;setToken(e){return this.authToken=e,this}set(e){return new ia(this.table,Ze(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},ia=class extends F{constructor(e,t,n,r,i){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:i,joins:[]},this.tableName=L(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{}}static[t]=`PgUpdate`;config;tableName;joinsNotNullableMap;cacheConfig;from(e){let t=e,n=L(t);return typeof n==`string`&&(this.joinsNotNullableMap[n]=!0),this.config.from=t,this}getTableLikeFields(e){return r(e,U)?e[w.Symbol.Columns]:r(e,b)?e._.selectedFields:e[S].selectedFields}createJoin(e){return(t,n)=>{let i=L(t);if(typeof i==`string`&&this.config.joins.some(e=>e.alias===i))throw Error(`Alias "${i}" is already used in this query`);if(typeof n==`function`){let e=this.config.from&&!r(this.config.from,O)?this.getTableLikeFields(this.config.from):void 0;n=n(new Proxy(this.config.table[w.Symbol.Columns],new G({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})),e&&new Proxy(e,new G({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))}if(this.config.joins.push({on:n,table:t,joinType:e,alias:i}),typeof i==`string`)switch(e){case`left`:this.joinsNotNullableMap[i]=!1;break;case`right`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[i]=!0;break;case`inner`:this.joinsNotNullableMap[i]=!0;break;case`full`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[i]=!1}return this}}leftJoin=this.createJoin(`left`);rightJoin=this.createJoin(`right`);innerJoin=this.createJoin(`inner`);fullJoin=this.createJoin(`full`);where(e){return this.config.where=e,this}returning(e){if(!e&&(e=Object.assign({},this.config.table[w.Symbol.Columns]),this.config.from)){let t=L(this.config.from);if(typeof t==`string`&&this.config.from&&!r(this.config.from,O)){let n=this.getTableLikeFields(this.config.from);e[t]=n}for(let t of this.config.joins){let n=L(t.table);if(typeof n==`string`&&!r(t.table,O)){let r=this.getTableLikeFields(t.table);e[n]=r}}}return this.config.returningFields=e,this.config.returning=I(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){let t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`insert`,tables:Y(this.config.table)},this.cacheConfig);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>this._prepare().execute(e,this.authToken);getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new G({alias:T(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},aa=class e extends O{constructor(t){super(e.buildEmbeddedCount(t.source,t.filters).queryChunks),this.params=t,this.mapWith(Number),this.session=t.session,this.sql=e.buildCount(t.source,t.filters)}sql;token;static[t]=`PgCountBuilder`;[Symbol.toStringTag]=`PgCountBuilder`;session;static buildEmbeddedCount(e,t){return A`(select count(*) from ${e}${A.raw(` where `).if(t)}${t})`}static buildCount(e,t){return A`select count(*) as count from ${e}${A.raw(` where `).if(t)}${t};`}setToken(e){return this.token=e,this}then(e,t){return Promise.resolve(this.session.count(this.sql,this.token)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}},oa=class{constructor(e,t,n,r,i,a,o){this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=i,this.dialect=a,this.session=o}static[t]=`PgRelationalQueryBuilder`;findMany(e){return new sa(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},`many`)}findFirst(e){return new sa(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},`first`)}},sa=class extends F{constructor(e,t,n,r,i,a,o,s,c){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=i,this.dialect=a,this.session=o,this.config=s,this.mode=c}static[t]=`PgRelationalQuery`;_prepare(e){return x.startActiveSpan(`drizzle.prepareQuery`,()=>{let{query:t,builtQuery:n}=this._toSQL();return this.session.prepareQuery(n,void 0,e,!0,(e,n)=>{let r=e.map(e=>ni(this.schema,this.tableConfig,e,t.selection,n));return this.mode===`first`?r[0]:r})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let e=this._getQuery();return{query:e,builtQuery:this.dialect.sqlToQuery(e.sql)}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return x.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(void 0,this.authToken))}},ca=class extends F{constructor(e,t,n,r){super(),this.execute=e,this.sql=t,this.query=n,this.mapBatchResult=r}static[t]=`PgRaw`;getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}},la=class{constructor(e,t,n){if(this.dialect=e,this.session=t,this._=n?{schema:n.schema,fullSchema:n.fullSchema,tableNamesMap:n.tableNamesMap,session:t}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:t},this.query={},this._.schema)for(let[r,i]of Object.entries(this._.schema))this.query[r]=new oa(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],i,e,t);this.$cache={invalidate:async e=>{}}}static[t]=`PgDatabase`;query;$with=(e,t)=>{let n=this;return{as:r=>(typeof r==`function`&&(r=r(new Vi(n.dialect))),new Proxy(new pe(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new G({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})))}};$count(e,t){return new aa({source:e,filters:t,session:this.session})}$cache;with(...e){let t=this;function n(n){return new J({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function r(n){return new J({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function i(n,r){return new J({fields:r??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:n}})}function a(n){return new ra(n,t.session,t.dialect,e)}function o(n){return new ea(n,t.session,t.dialect,e)}function s(n){return new $i(n,t.session,t.dialect,e)}return{select:n,selectDistinct:r,selectDistinctOn:i,update:a,insert:o,delete:s}}select(e){return new J({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new J({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new J({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new ra(e,this.session,this.dialect)}insert(e){return new ea(e,this.session,this.dialect)}delete(e){return new $i(e,this.session,this.dialect)}refreshMaterializedView(e){return new na(e,this.session,this.dialect)}authToken;execute(e){let t=typeof e==`string`?A.raw(e):e.getSQL(),n=this.dialect.sqlToQuery(t),r=this.session.prepareQuery(n,void 0,void 0,!1);return new ca(()=>r.execute(void 0,this.authToken),t,n,e=>r.mapResult(e,!0))}transaction(e,t){return this.session.transaction(e,t)}},ua=class{constructor(e,t,n){this.seqName=e,this.seqOptions=t,this.schema=n}static[t]=`PgSequence`};function da(e,t,n){return new ua(e,t,n)}var fa=class{constructor(e){this.schemaName=e}static[t]=`PgSchema`;table=(e,t,n)=>mr(e,t,n,this.schemaName);view=(e,t)=>Zi(e,t,this.schemaName);materializedView=(e,t)=>Qi(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?de(e,[...t],this.schemaName):fe(e,t,this.schemaName)}sequence=(e,t)=>da(e,t,this.schemaName);getSQL(){return new O([A.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}};function pa(e){if(e===`public`)throw Error(`You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema`);return new fa(e)}var ma=class{static[t]=`Cache`},ha=class extends ma{strategy(){return`all`}static[t]=`NoopCache`;async get(e){}async put(e,t,n,r){}async onMutate(e){}};async function ga(e,t){let n=`${e}-${JSON.stringify(t)}`,r=new TextEncoder().encode(n),i=await crypto.subtle.digest(`SHA-256`,r);return[...new Uint8Array(i)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}var _a=class{constructor(e,t,n,r){this.query=e,this.cache=t,this.queryMetadata=n,this.cacheConfig=r,t&&t.strategy()===`all`&&r===void 0&&(this.cacheConfig={enable:!0,autoInvalidate:!0}),this.cacheConfig?.enable||(this.cacheConfig=void 0)}authToken;getQuery(){return this.query}mapResult(e,t){return e}setToken(e){return this.authToken=e,this}static[t]=`PgPreparedQuery`;joinsNotNullableMap;async queryWithCache(e,t,n){if(this.cache===void 0||r(this.cache,ha)||this.queryMetadata===void 0)try{return await n()}catch(n){throw new P(e,t,n)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await n()}catch(n){throw new P(e,t,n)}if((this.queryMetadata.type===`insert`||this.queryMetadata.type===`update`||this.queryMetadata.type===`delete`)&&this.queryMetadata.tables.length>0)try{let[e]=await Promise.all([n(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return e}catch(n){throw new P(e,t,n)}if(!this.cacheConfig)try{return await n()}catch(n){throw new P(e,t,n)}if(this.queryMetadata.type===`select`){let r=await this.cache.get(this.cacheConfig.tag??await ga(e,t),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(r===void 0){let r;try{r=await n()}catch(n){throw new P(e,t,n)}return await this.cache.put(this.cacheConfig.tag??await ga(e,t),r,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),r}return r}try{return await n()}catch(n){throw new P(e,t,n)}}},va=class{constructor(e){this.dialect=e}static[t]=`PgSession`;execute(e,t){return x.startActiveSpan(`drizzle.operation`,()=>x.startActiveSpan(`drizzle.prepareQuery`,()=>this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1)).setToken(t).execute(void 0,t))}all(e){return this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1).all()}async count(e,t){let n=await this.execute(e,t);return Number(n[0].count)}},ya=class extends la{constructor(e,t,n,r=0){super(e,t,n),this.schema=n,this.nestedIndex=r}static[t]=`PgTransaction`;rollback(){throw new Ge}getTransactionConfigSQL(e){let t=[];return e.isolationLevel&&t.push(`isolation level ${e.isolationLevel}`),e.accessMode&&t.push(e.accessMode),typeof e.deferrable==`boolean`&&t.push(e.deferrable?`deferrable`:`not deferrable`),A.raw(t.join(` `))}setTransaction(e){return this.session.execute(A`set transaction ${this.getTransactionConfigSQL(e)}`)}};const ba=pa(`coder`),X=ba.table,Z=()=>Kn({withTimezone:!0}),Q={createdAt:Z().notNull().defaultNow(),updatedAt:Z().notNull().defaultNow()},$={id:ft({mode:`number`}).primaryKey(),organizationId:H().notNull()},xa=X(`platform_link`,{id:ft({mode:`number`}).primaryKey(),platform:H().notNull(),platformUserId:H().notNull(),userId:H().notNull(),name:H().notNull(),email:H().notNull(),organizations:V().$type(),token:H(),createdAt:Z().notNull().defaultNow()},e=>[q(`platform_link_platform_platformUserId_unique`).on(e.platform,e.platformUserId),K().on(e.userId)]),Sa=X(`agent`,{...$,slug:H().notNull(),name:H().notNull(),description:H(),source:H().$type().notNull(),repo:H(),path:H(),currentVersion:B().notNull(),settings:V().$type(),...Q},e=>[q(`agent_organizationId_slug_unique`).on(e.organizationId,e.slug)]),Ca=X(`agent_version`,{id:ft({mode:`number`}).primaryKey(),agentId:z({mode:`number`}).notNull().references(()=>Sa.id),version:B().notNull(),definition:V().$type().notNull(),systemPrompt:H().notNull(),files:V().$type(),commit:H(),importedFrom:H().notNull(),createdAt:Z().notNull().defaultNow()},e=>[q(`agent_version_agentId_version_unique`).on(e.agentId,e.version)]),wa=X(`secret`,{...$,kind:H().$type().notNull(),iv:H().notNull(),tag:H().notNull(),ciphertext:H().notNull(),keyVersion:B().notNull(),...Q},e=>[K().on(e.organizationId,e.kind)]),Ta=X(`integration_app`,{...$,key:H().notNull(),integration:H().notNull(),platformAppId:H().notNull(),agent:H().notNull(),name:H().notNull(),agentsRepo:H(),branch:H(),credentialsSecretId:z({mode:`number`}).notNull().references(()=>wa.id),...Q},e=>[q(`integration_app_organizationId_key_unique`).on(e.organizationId,e.key),q(`integration_app_integration_platformAppId_unique`).on(e.integration,e.platformAppId)]),Ea=X(`integration_app_installation`,{...$,key:H().notNull(),appId:z({mode:`number`}).references(()=>Ta.id,{onDelete:`set null`}),platformInstallId:H().notNull(),account:V().$type().notNull(),tokenSecretId:z({mode:`number`}).references(()=>wa.id),installer:H(),self:H(),covers:V().$type(),repos:V().$type(),connections:V().$type(),settings:V().$type(),...Q,deletedAt:Z()},e=>[u().on(e.key),K().on(e.organizationId,e.appId)]),Da=X(`engine_credential`,{...$,secretId:z({mode:`number`}).notNull().references(()=>wa.id).unique(),owner:H(),engine:H().$type().notNull(),label:H().notNull(),isDefault:ht().notNull().default(!1),account:V().$type(),...Q},e=>[q(`engine_credential_workspace_label_unique`).on(e.organizationId,e.label).where(A`${e.owner} is null`),q(`engine_credential_owner_label_unique`).on(e.organizationId,e.owner,e.label).where(A`${e.owner} is not null`)]),Oa=X(`runner`,{...$,publicId:H().notNull(),owner:H(),name:H().notNull(),kind:H().$type().notNull(),scope:H().$type().notNull(),config:V().$type().notNull(),createdBy:H(),isDefault:ht().notNull().default(!1),lastSeen:Kn({withTimezone:!0}),secretId:z({mode:`number`}).notNull().references(()=>wa.id),...Q},e=>[q(`runner_organizationId_publicId_unique`).on(e.organizationId,e.publicId)]),ka=X(`task`,{...$,publicId:H().notNull(),source:H().$type().notNull(),status:H().$type().notNull(),agent:H().notNull(),flow:H().notNull(),runner:H().notNull(),permissions:H().$type(),appId:z({mode:`number`}).references(()=>Ta.id,{onDelete:`set null`}),installationId:z({mode:`number`}).references(()=>Ea.id),event:V().$type(),prompt:H(),args:V().$type(),mcp:V().$type(),author:H(),definition:V().$type().notNull(),credential:H(),requester:H(),runnerId:H(),usage:V().$type(),tools:V().$type().notNull(),toolScopes:V().$type(),context:V().$type(),files:V().$type(),result:V().$type(),error:H(),tokens:V(),handle:H(),tokenHash:H(),lastSeenAt:Z(),logCursor:B(),logSeq:B(),logBytes:B(),archivedAt:Z(),approval:V(),answer:V(),attempts:B().notNull().default(0),inboxSeq:B().notNull().default(A`'-1'`),inboxAck:B().notNull().default(A`'-1'`),generation:B().notNull().default(0),lockedAt:Z(),startedAt:Z(),finishedAt:Z(),cancelRequestedAt:Z(),...Q},e=>[q(`task_organizationId_publicId_unique`).on(e.organizationId,e.publicId),K().on(e.publicId),K().on(e.organizationId,e.createdAt.desc(),e.publicId.desc()),K().on(e.organizationId,e.updatedAt),K().on(e.organizationId).where(A`${e.status} = 'queued'`),K().on(e.status,e.createdAt)]),Aa=X(`task_inbox`,{...$,taskId:z({mode:`number`}).notNull().references(()=>ka.id,{onDelete:`cascade`}),seq:B().notNull(),generation:B().notNull().default(0),kind:H().$type().notNull(),value:V(),at:Z().notNull()},e=>[q(`task_inbox_taskId_seq_unique`).on(e.taskId,e.seq),K().on(e.taskId,e.generation,e.seq)]),ja=X(`task_log`,{...$,taskId:z({mode:`number`}).notNull().references(()=>ka.id,{onDelete:`cascade`}),seq:B().notNull(),at:Z().notNull(),level:H().$type().notNull(),line:H().notNull()},e=>[q(`task_log_taskId_seq_unique`).on(e.taskId,e.seq)]),Ma=X(`task_tombstone`,{organizationId:H().notNull(),publicId:H().notNull(),deletedAt:Z().notNull()},e=>[K().on(e.organizationId,e.deletedAt)]),Na=X(`usage`,{...$,taskId:z({mode:`number`}).notNull().references(()=>ka.id,{onDelete:`cascade`}).unique(),installationId:z({mode:`number`}).references(()=>Ea.id),agent:H().notNull(),target:H().notNull(),engine:H(),model:H(),credential:H().notNull(),runnerMs:B().notNull(),tokens:V(),at:Z().notNull(),...Q},e=>[K().on(e.organizationId,e.at)]),Pa=X(`chat_state`,{key:H().primaryKey(),value:V().notNull(),expiresAt:Z()},e=>[K().on(e.expiresAt).where(A`${e.expiresAt} is not null`),K(`chat_state_key_prefix_index`).on(e.key.op(`text_pattern_ops`))]),Fa=X(`chat_item`,{key:H().notNull(),seq:z({mode:`number`}).generatedAlwaysAsIdentity(),value:V().notNull(),expiresAt:Z()},e=>[q(`chat_item_key_seq_pk`).on(e.key,e.seq),K().on(e.expiresAt).where(A`${e.expiresAt} is not null`)]),Ia={platformLink:xa,agent:Sa,agentVersion:Ca,secret:wa,integrationApp:Ta,integrationAppInstallation:Ea,engineCredential:Da,runner:Oa,task:ka,taskInbox:Aa,taskLog:ja,taskTombstone:Ma,usage:Na,chatState:Pa,chatItem:Fa};export{Ur as A,Tr as B,ki as C,ti as D,vi as E,Lr as F,tt as G,yr as H,Dr as I,Je as J,Ye as K,Ar as L,vr as M,Cr as N,Xr as O,wr as P,t as Q,kr as R,la as S,yi as T,xr as U,Er as V,$e as W,A as X,Ne as Y,x as Z,Na as _,ba as a,ya as b,Ea as c,wa as d,Ia as f,Ma as g,ja as h,Pa as i,br as j,Hr as k,xa as l,Aa as m,Ca as n,Da as o,ka as p,qe as q,Fa as r,Ta as s,Sa as t,Oa as u,_a as v,Di as w,ha as x,va as y,Fr as z};
|
package/dist/serve-BQsv2KZs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{$ as t}from"./config-D2FxHWwi.js";import{H as n}from"./dispatch-D3Dqxijf.js";import{n as r,o as i}from"./remote-oQs6My_3.js";import{l as a}from"./slack-C_RlVDz7.js";import{t as o}from"./local-XNsjb-UM.js";import{s,t as c}from"./http-BYMXT_p6.js";import l from"node:path";import u from"node:fs";import{createHmac as d,randomBytes as f}from"node:crypto";import p from"node:os";import m from"node:http";var h=e({runnerController:()=>C,serveRunner:()=>b});const g=()=>t(`runners.json`);function _(){try{return JSON.parse(u.readFileSync(g(),`utf8`))}catch{return{}}}function v(e){u.mkdirSync(l.dirname(g()),{recursive:!0}),u.writeFileSync(g(),JSON.stringify(e,null,2),{mode:384})}const y=e=>[`cloudflared tunnel --url http://localhost:${e}`,`ngrok http ${e}`,`tailscale funnel ${e}`,`VS Code: forward port ${e} in the Ports view and set its visibility to Public`];async function b(e={}){let a=e.port??4100,l=e.token?e.runnerUrl??process.env.CODER_RUNNER_URL:e.url;if(!l)throw new n(`invalid-option`,e.token?`Expose this runner and set CODER_RUNNER_URL or --runner-url to its public HTTPS address.`:`Expose this runner with a tunnel, then pass its public URL with --url.`,{hint:y(a)});let u=e.token?i({...e,server:e.url??e.server,yes:!0}):i(e),d=_(),h=d[u]??{secret:f(32).toString(`base64url`)},g=new o(t(`runner`)),b=C({secret:h.secret,server:u,runner:g}),x=m.createServer(s(b,{limit:c}));await new Promise((e,t)=>{x.once(`error`,t),x.listen(a,`127.0.0.1`,e)});let S=()=>new Promise(e=>x.close(()=>e())),w=e.name??p.hostname(),T=async(e,t)=>{let r=await fetch(`${u}/runners/register`,{method:`POST`,redirect:`manual`,signal:AbortSignal.timeout(5e3),headers:{"content-type":`application/json`},body:JSON.stringify({...e?{token:e}:{id:h.id,organizationId:h.organizationId},name:w,url:l,secret:h.secret,...t?{offline:t}:{}})});if(!r.ok)throw new n(`server`,`Runner registration failed`,{status:r.status});return r.json()},E;try{if(e.token){let t=await T(e.token);E=t,h.organizationId=t.organizationId}else{let t=h.id&&h.organizationId?await T().catch(e=>{if(!(e instanceof n&&e.status===401))throw e}):void 0;if(t)E=t;else{let t=r(e),n=await t.me();E=await t.runners.add({kind:`http`,name:w,scope:e.workspace||!n.user?`workspace`:`personal`,config:{url:l,secret:h.secret}}),h.organizationId=n.organization?.id,h.id=E.id,E=await T()}}h.id=E.id,v({...d,[u]:h})}catch(e){throw await S(),e}let D=Promise.resolve(),O=setInterval(()=>{D=D.then(()=>T().then(()=>{})).catch(()=>{})},6e4);return{...E,port:a,server:u,close:async()=>{clearInterval(O),await D,await T(void 0,!0).catch(()=>{}),await S()}}}const x=3e5,S=(e,t=200)=>new Response(JSON.stringify(e),{status:t,headers:{"content-type":`application/json`}});function C(e){let t=e.now??Date.now,n=new Map,r=(r,i)=>{let o=r.headers.get(`x-coder-timestamp`)??``,s=r.headers.get(`x-coder-nonce`)??``,c=r.headers.get(`x-coder-signature`)??``,l=Number(o);if(!s||!Number.isFinite(l)||Math.abs(t()-l)>x)return!1;let u=d(`sha256`,e.secret).update(`${i}.${o}.${s}`).digest(`base64url`);if(!a(c,u))return!1;for(let[e,r]of n)r<t()&&n.delete(e);return!n.has(s)&&(n.set(s,l+x),!0)};return async t=>{let n=t.method===`GET`?``:await t.text();if(!r(t,n))return S({error:`Unauthorized`},401);let[,i,a]=new URL(t.url).pathname.split(`/`).map(decodeURIComponent);try{if(t.method===`POST`&&i===`start`&&!a){let t=JSON.parse(n);if(typeof t.task!=`string`||!t.env)return S({error:`Invalid start`},400);let r=t.env.CODER_TASK_TOKEN;if(typeof r!=`string`)return S({error:`Invalid start`},400);let i={CODER_SERVER:e.server,CODER_TASK_TOKEN:r,CODER_INBOX_MODE:e.runner.push?`push`:`poll`,...t.env.CODER_LOGIN===`claude`||t.env.CODER_LOGIN===`codex`?{CODER_LOGIN:t.env.CODER_LOGIN}:{}};return S({handle:await e.runner.start({id:t.task},i)})}if(t.method===`GET`&&i===`health`&&!a)return S({ok:!0});if(!a)return S({error:`Not found`},404);if(t.method===`POST`&&i===`messages`&&e.runner.push){let{entries:t}=JSON.parse(n);return!Array.isArray(t)||!t.length?S({error:`Invalid messages`},400):S(await e.runner.push(a,t))}return t.method===`GET`&&i===`status`?S(await e.runner.status(a)):t.method===`POST`&&i===`stop`?(await e.runner.stop(a),new Response(null,{status:204})):S({error:`Not found`},404)}catch(e){return S({error:e instanceof Error?e.message:String(e)},400)}}}export{h as n,b as t};
|
package/dist/serve-ByWMT5Gm.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Zt as e}from"./core-DwsAMCnL.js";import{Dn as t,Ln as n,Mn as r}from"./config-D2FxHWwi.js";import{i,t as a}from"./cli-D5hyqGq0.js";import{p as o,s}from"./output-BKeyLbvt.js";import{n as c,o as l,s as u,t as d}from"./args-CxsMr9Un.js";import f from"node:process";const p=i({name:`runner serve`,help:{usage:`coder runner serve --url <public url> [--token <token>] [--runner-url <url>] [--port <n>] [--name <name>] [--workspace] [--server [url]] [--json]`,summary:`Run tasks on this machine with its own claude and codex logins. Expose the port with any tunnel (cloudflared, ngrok, Tailscale Funnel or a public VS Code port) and pass the tunnel's URL; each start registers the current URL, so a changing tunnel URL is fine. Choose a default with coder runner default. Tasks use their named runner, the agent setting, your default, the workspace default, then the server default.`,flags:[[`--url <public url>`,`the HTTPS address the server reaches this runner at`],[`--token <token>`,`one-use pairing token, --url is the Coder server`],[`--runner-url <url>`,`public tunnel address when pairing, or CODER_RUNNER_URL`],[`--port <n>`,`local port the tunnel forwards to (default 4100)`],[`--name <name>`,`shown in the dashboard (default: this machine's hostname)`],[`--workspace`,`run every member's tasks, not only yours (owners and admins)`],a],examples:[[`cloudflared tunnel --url http://localhost:4100`,`expose the port in one terminal`],[`coder runner serve --url https://abc.trycloudflare.com`,`then serve through it`]]},options:{...d,port:n(t().check(r(),e())),url:u,name:u,token:u,"runner-url":u,workspace:c,server:l,yes:c},async run({options:e}){let{serveRunner:t}=await import(`./serve-BQsv2KZs.js`).then(e=>e.n),n=await t({...e,runnerUrl:e[`runner-url`]}),r=()=>void n.close().finally(()=>f.exit(0));return f.once(`SIGINT`,r),f.once(`SIGTERM`,r),n},json:({server:e,close:t,...n})=>({ok:!0,...n}),print:e=>f.stdout.write(`Runner ${o.bold(e.name)} serves ${e.server} at ${o.cyan(e.config.url??``)} (${e.scope}), listening on localhost:${e.port}.\n${s([`Tasks run here with this machine's own claude and codex logins`,`Stop with Ctrl-C; the server marks the runner offline`],o,o.cyan)}\n`)});export{p as commandRunnerServe};
|
package/dist/serve-HNXk3HMY.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{qi as e}from"./core-DwsAMCnL.js";import{$ as t,B as n,Cn as r,Ct as i,Q as a,R as o,S as s,_ as c,ct as l,g as u,j as d,n as f,o as p,s as m,t as h,v as g,w as _}from"./config-D2FxHWwi.js";import{H as v}from"./dispatch-D3Dqxijf.js";import{i as y,n as b,p as x,r as ee,s as S,t as C}from"./load-CRmQB1LD.js";import{s as w,u as T}from"./slack-C_RlVDz7.js";import{n as E}from"./integrations-D3OgJk6Y.js";import{i as D,t as te}from"./discover-CBP4Uw0N.js";import{c as ne}from"./models-CdvmuaLv.js";import{a as re}from"./local-XNsjb-UM.js";import{a as O,d as ie,f as ae,l as k,n as oe,o as se,p as ce,r as le,s as ue,t as de,u as fe}from"./http-BYMXT_p6.js";import{$ as pe,$n as A,$t as me,A as he,An as ge,Ar as _e,B as ve,Bn as ye,Bt as be,C as xe,D as Se,Dn as Ce,Dr as j,Dt as we,E as Te,En as Ee,Er as M,Et as De,F as Oe,Fn as ke,Ft as Ae,G as je,Gn as Me,Gt as Ne,H as Pe,Hn as Fe,Ht as Ie,I as Le,In as Re,It as N,J as ze,Jn as Be,Jt as Ve,K as He,Kn as Ue,Kt as We,L as Ge,Ln as Ke,Lt as qe,M as Je,Mn as Ye,Mt as Xe,N as Ze,Nn as Qe,Nt as $e,O as P,On as et,Or as F,Ot as I,P as tt,Pn as nt,Pt as rt,Q as it,Qn as L,Qt as at,R as ot,Rn as st,Rt as R,S as z,Sn as ct,Sr as lt,St as ut,T as dt,Tn as ft,Tr as pt,Tt as mt,U as ht,Un as gt,Ut as _t,V as vt,Vt as yt,W as bt,Wn as xt,Wt as St,X as Ct,Xn as wt,Xt as Tt,Y as Et,Yn as Dt,Yt as Ot,Z as kt,Zn as At,Zt as jt,_ as Mt,_r as Nt,_t as Pt,a as Ft,an as It,ar as Lt,at as Rt,b as zt,bn as Bt,br as Vt,bt as Ht,c as B,cn as Ut,cr as Wt,ct as Gt,d as Kt,dn as qt,dr as Jt,dt as V,en as Yt,er as Xt,et as Zt,f as Qt,fn as $t,fr as en,ft as tn,g as nn,gn as rn,gr as an,gt as on,h as H,hn as sn,hr as cn,i as ln,in as un,ir as dn,it as fn,j as U,jn as pn,jt as mn,k as hn,kn as gn,kr as _n,kt as W,l as vn,ln as yn,lr as bn,lt as xn,m as Sn,mn as Cn,mr as wn,mt as Tn,nn as En,nr as G,nt as Dn,o as On,on as kn,or as An,ot as jn,p as Mn,pn as Nn,pr as Pn,pt as Fn,q as In,qn as Ln,qt as Rn,r as zn,rn as Bn,rr as Vn,rt as Hn,s as Un,sn as Wn,sr as Gn,tn as Kn,tr as qn,tt as Jn,u as Yn,un as Xn,ur as Zn,ut as Qn,v as $n,vr as er,vt as tr,w as nr,wn as rr,wt as ir,x as ar,xr as or,xt as sr,y as cr,yn as lr,yr as ur,zn as dr,zt as fr}from"./apps-aj_JtpAm.js";import{n as pr,r as mr}from"./env-C_DoQYl5.js";import{S as hr,a as gr,b as K,h as _r,i as vr,n as yr,p as br,x as xr}from"./runners-UNKPlmYE.js";import{X as Sr}from"./schema-BSlHRFSP.js";import q from"node:path";import J from"node:process";import Cr from"node:fs";import{spawnSync as wr}from"node:child_process";import{createHash as Tr,randomBytes as Er,randomUUID as Dr}from"node:crypto";import Y from"node:fs/promises";import{isDeepStrictEqual as Or}from"node:util";import kr from"node:http";async function Ar(e){try{return await Y.readdir(e,{withFileTypes:!0})}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function X(e){try{return await Y.lstat(e),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async function jr(e,t){if(e===t||!await X(e))return 0;let n=await Ar(e),i=n.filter(e=>e.isDirectory()).length;if(!await X(t))return await r(e,t),i;for(let i of n)await r(q.join(e,i.name),q.join(t,i.name));return await Y.rmdir(e),i}async function Mr(e){let t=q.dirname(e),n=q.basename(e);for(let e of await Ar(t)){let r=e.name.startsWith(n)?e.name.slice(n.length):``;if(!e.isFile()||!(r===`.tmp`||/^\.\d+(?:\.[a-f0-9-]{36})?\.tmp$/.test(r)))continue;let i=Number(e.name.slice(n.length+1).split(`.`)[0]);if(Number.isInteger(i)&&i>0)try{process.kill(i,0);continue}catch(e){if(e.code!==`ESRCH`)continue}await Y.unlink(q.join(t,e.name)).catch(e=>{if(e.code!==`ENOENT`)throw e})}}async function Nr(e,t){if(await Mr(e),e===t||!await X(e))return 0;if(!await X(t))return await r(e,t),1;let n=JSON.parse(await Y.readFile(e,`utf8`)),i=JSON.parse(await Y.readFile(t,`utf8`)),a={...n,...i,...n.rows||i.rows?{rows:{...n.rows,...i.rows}}:{}},o=`${t}.${process.pid}.${Dr()}.tmp`;try{await Y.writeFile(o,`${JSON.stringify(a)}\n`,{mode:384,flag:`wx`}),await Y.rename(o,t),await Y.unlink(e)}finally{await Y.rm(o,{force:!0})}return 1}async function Pr(){let e=a(),n=t(`state`),r=a(`archive`),i=a(`flows-archived`),o=a(`usage.json`),s=a(`runner`,`usage.json`),c={from:t(`checkouts`),to:a(`checkouts`)},l={from:t(`update-check.json`),to:a(`update-check.json`)},u={cache:e,tasks:0,flows:0,files:0},d=(await Ar(n)).filter(e=>e.isDirectory()).map(e=>({archive:t(`state`,e.name,`archive`),flows:t(`state`,e.name,`flows-archived`),usage:t(`state`,e.name,`usage.json`),runnerUsage:t(`state`,e.name,`runner`,`usage.json`)}));await Mr(o),await Mr(s);for(let e of d)u.tasks+=await jr(e.archive,r),u.flows+=await jr(e.flows,i),u.files+=await Nr(e.usage,o),u.files+=await Nr(e.runnerUsage,s);return await jr(c.from,c.to),u.files+=await Nr(l.from,l.to),u}async function Fr(e){let t=(e.now??Date.now)(),n=await e.store.list(`runner`);return{online:1+n.filter(({value:e})=>e.lastSeen!==void 0&&t-e.lastSeen<3e5).length,total:1+n.length}}async function Ir(e){let t=(e.now??Date.now)(),n=e.healthyAt!==void 0&&t-e.healthyAt<5e3,r=n||await Lr(e);return e.healthyAt=r?n?e.healthyAt:t:void 0,O({ok:r},r?200:503,{"cache-control":`no-store`})}async function Lr(e){return e.config.store===`postgres`?e.databaseHealth?e.databaseHealth().then(()=>!0,()=>!1):!1:!0}async function Rr(e){let t=(e.now??Date.now)();if(e.queue.metrics&&!e.local)return{...await e.queue.metrics(e.organizationId,t-864e5),runnersOnline:(await Fr(e)).online,requests:e.limits?.requests??0,rateLimitRejections:e.limits?.rejections??0};let n=await e.queue.list(e.organizationId),r=e.local?[...W(e.local.cwd,!1),...W(e.local.cwd,!0)]:[],i=new Map([...r,...n.map(e=>e.status===`queued`?e:r.find(t=>t.task.id===e.task.id)??e)].map(e=>[e.task.id,e])),a={queued:0,running:0,waiting:0,completed:0,failed:0,cancelled:0},o=0;for(let e of i.values())e.createdAt>=t-864e5&&a[e.status]++,e.status===`queued`&&o++;return{tasks:a,queueDepth:o,runnersOnline:(await Fr(e)).online,requests:e.limits?.requests??0,rateLimitRejections:e.limits?.rejections??0}}async function zr(e,t,n,r){let i=t.session.user.id;n.id;let a=(await e.json().catch(()=>({}))).engine??``;if(!Wr.has(a)||!t.config.subscriptions?.[a])return O({error:`Sign in with ${a||`that engine`} is off on this server.`},403);let o=t.runners[t.config.runner];if(!o||o.kind===`github-actions`)return O({error:`Sign-in cannot run on the ${t.config.runner} runner.`},409);let s=(await t.store.list(`login`)).find(({value:e})=>e.owner===i&&e.engine===a&&e.state!==`done`&&e.state!==`failed`&&e.expiresAt>Z(t));if(s)return O(Kr(s.id,s.value));let c=`login-${Er(12).toString(`base64url`)}`,l=rn(c,t.organizationId,0),u={owner:i,engine:a,state:`starting`,tokenHash:l.hash,runner:o.kind,createdAt:Z(t),expiresAt:Z(t)+Ur};await Gr(t,c,u);let d;try{let e=await o.start({id:c},{CODER_SERVER:t.config.publicUrl??``,CODER_TASK_TOKEN:l.token,CODER_LOGIN:a},void 0,{timeoutMs:Ur,hosts:[br[a].api,...br[a].account]}),n=await t.store.patchLogin(c,{handle:e},{tokenHash:u.tokenHash});if(!n)return await o.stop(e).catch(()=>{}),O({error:`This sign-in is gone. Start again.`},409);d=n}catch(e){return await t.store.delete(`login`,c),O({error:e instanceof Error?e.message:String(e)},502)}return O(Kr(c,d),201)}async function Br(e,t,n,r){t.session.user.id;let i=n.id??``,a=i&&!i.includes(`/`)?await qr(t,i):void 0;return a?O(Kr(i,a)):O({error:`This sign-in is gone. Start again.`},404)}async function Vr(e,t,n,r){t.session.user.id;let i=n.id??``,a=i&&!i.includes(`/`)?await qr(t,i):void 0;if(!a)return O({error:`This sign-in is gone. Start again.`},404);let o=await e.json().catch(()=>({})),s=typeof o.code==`string`?o.code.trim():``;return a.engine!==`claude`||a.state!==`open`||!s||!await t.store.patchLogin(i,{state:`verifying`,input:hr(t.config,s)},{state:`open`,tokenHash:a.tokenHash})?O({error:`This sign-in is not waiting for a code.`},409):O({ok:!0})}async function Hr(e,t,n,r){t.session.user.id;let i=n.id??``,a=i&&!i.includes(`/`)?await qr(t,i):void 0;return a?(await t.store.delete(`login`,i),a.handle&&await t.runners[a.runner]?.stop(a.handle).catch(()=>{}),O({ok:!0})):O({error:`This sign-in is gone. Start again.`},404)}const Ur=6e5,Wr=new Set([`claude`,`codex`]),Z=e=>(e.now??Date.now)();function Gr(e,t,n){return e.store.put(`login`,t,n,{ttlMs:Math.max(1,n.expiresAt-Z(e))})}function Kr(e,t){return{id:e,engine:t.engine,state:t.state,expiresAt:t.expiresAt,...t.url?{url:t.url}:{},...t.code?{code:t.code}:{},...t.error?{error:t.error}:{},...t.label?{label:t.label}:{}}}async function qr(e,t){let n=await e.store.get(`login`,t);return n&&n.owner===e.session?.user.id?n:void 0}function Jr(e,t){let n=t.handle&&e.runners[t.runner]?.stop(t.handle);if(!n)return;let r=n.catch(e=>console.error(`coder server: could not stop the machine of a finished ${t.engine} sign-in`,e));e.waitUntil?.(r)}async function Yr(e,t,n,r){let i=n.id,a=t.callbackLogin,o=Date.now()+25e3;for(;!a.input&&Date.now()<o&&!e.signal.aborted;){await new Promise(e=>setTimeout(e,250));let e=await t.store.get(`login`,i);if(!e)return new Response(`Unauthorized`,{status:401});a=e}if(!a.input)return O({});let s=await t.store.patchLogin(i,{input:null},{input:a.input,tokenHash:a.tokenHash});return O(s?{code:K(t.config,a.input)}:{})}async function Xr(e,t,n,r){n.id;let i=t.callbackLogin;return O({engine:i.engine})}async function Zr(e,t,n,r){let i=n.id,a=t.callbackLogin,o=await e.json().catch(()=>({}));if(a.state===`done`||a.state===`failed`)return O({ok:!0});let s={state:[`starting`,`open`,`verifying`],tokenHash:a.tokenHash};if(typeof o.error==`string`)return await t.store.patchLogin(i,{state:`failed`,error:o.error.slice(0,500)},s)&&Jr(t,a),O({ok:!0});let c=o.result?.env;if(c){let e=a.engine===`claude`?`CLAUDE_CODE_OAUTH_TOKEN`:`CODEX_AUTH_JSON`;if(Object.keys(c).join()!==e||typeof c[e]!=`string`)return O({error:`Invalid sign-in result`},400);let n=`${a.engine}-subscription`,r=o.result?.account;return await t.store.completeLogin(i,a.tokenHash,n,{...xr(t.config,{env:c}),engine:a.engine,createdAt:(t.now??Date.now)(),...r?.email||r?.plan?{account:{...typeof r.email==`string`?{email:r.email}:{},...typeof r.plan==`string`?{plan:r.plan}:{}}}:{}})?(Jr(t,a),O({ok:!0})):O({error:`This sign-in changed. Try again.`},409)}let l={...typeof o.url==`string`&&/^https:\/\//.test(o.url)?{url:o.url}:{},...typeof o.code==`string`?{code:o.code.slice(0,64)}:{}};return(a.state===`starting`?await t.store.patchLogin(i,{...l,state:`open`},{state:`starting`,tokenHash:a.tokenHash})??await t.store.patchLogin(i,l,{...s,state:[`open`,`verifying`]}):await t.store.patchLogin(i,l,s))?O({ok:!0}):O({error:`This sign-in changed. Try again.`},409)}const Qr=e=>`audit:${String(9999999999999-e).padStart(13,`0`)}:${Er(4).toString(`hex`)}`,$r=e=>e.config.name??`Wular`,ei=e=>wn(e,e.serverOrganizationId??e.organizationId);async function ti(e,t,n){let r=(e.now??Date.now)(),i=e.session?.user,a={at:r,actor:i?{id:i.id,name:i.name,email:i.email}:{id:`admin-token`},action:t,target:n};await ei(e).store.put(`snapshot`,Qr(r),a)}async function ni(e,t){let n=await ei(t).store.list(`app`),r=Object.values(t.integrations).filter(e=>e.app.builtin===`shared`).map(e=>{let t=n.find(({value:t})=>t.builtin&&t.integration===e.id)?.value;return{integration:e.id,name:e.name,brand:e.brand,organizationApps:e.organizationApps===!0,...t?{app:{id:t.id,name:t.name,createdAt:t.createdAt}}:{}}}),i=t.config.publicUrl,a=!!i&&H.has(new URL(i).hostname);return O({name:$r(t),platforms:r,...a?{unreachable:!0}:{}})}async function ri(e,t,n){let r=t.integrations[n.integration];if(!r)return O({error:`Unknown integration "${n.integration}".`},404);if(r.app.builtin!==`shared`)return O({error:`Create ${r.name} apps in your workspace from the agent's Platforms tab.`},400);if(!t.config.publicUrl)return O({error:`Set PUBLIC_URL on this server first. Platforms call it.`},400);let i=await e.json().catch(()=>void 0),a=e=>typeof e==`string`&&e.trim()||void 0,o=a(i?.name)??$r(t),s=r.organizationApps?a(i?.owner):void 0,c=await zn(ei(t),r.id,{name:o,owner:s});return await ti(t,`Started setting up a shared app`,`${o} on ${r.name}`),O({url:c})}async function ii(e,t){let n=await ei(t).store.list(`snapshot`,{prefix:`audit:`,limit:100});return O(n.map(e=>e.value))}const ai=e=>`create-finished:${T(e)}`;async function oi(e,t){let n=await e.store.get(`delivery`,ai(t));return n&&`target`in n?n.target:void 0}async function si(e,t,n){let r=e.operatorApp??!1,i=r?`*`:e.session?.user.id??`anonymous`;if(!e.integrations[t])return{error:`Unknown integration "${t}"; run coder agent integrations list to see them`,status:404};if(!e.config.publicUrl)return{error:`PUBLIC_URL is not set on this server; set it to the address platforms should call and restart`,status:400};if(r&&e.integrations[t].app.builtin!==`shared`)return{error:`Create this app in your workspace from the agent's Platforms tab.`,status:400};let a=Yn(n);if(!a)return{error:`Setup link is missing or malformed; start again from the agent's Platforms tab`,status:400};if(!a.definition.integrations[t])return{error:`This agent declares no ${t} integration in its agent.json`,status:400};if(a.state.public&&!r&&!e.integrations[t].publicApps)return{error:`${e.integrations[t].name} apps cannot be public here. Create a private one.`,status:400};let o=On(t,a.state),s=a.state.tx?await _n(e,a.state.tx,`create`,i)===o?a.state.tx:void 0:await _e(e,`create`,i,o);return s?{state:{...a.state,tx:s},definition:a.definition}:{error:`This app creation link is invalid, expired, or already used`,status:403}}async function ci(e,t,n,r){if(!/^[a-z0-9_-]+$/.test(r.pathname.split(`/`)[2]))return;let i=r.searchParams.get(`tx`);if(t.operatorApp&&i&&(await _n(t,i,`create`,`*`)||await oi(t,i)===n.id))return await or(e,void 0,t.dashboardHosts)??new Response(`UI is not built`,{status:503});let a=new URLSearchParams(r.searchParams);return a.set(`create`,n.id),ce(`${Un(t)}${Qt(Sn(t),`/setup`)}?${a}`)}async function li(e,t,n){let r=await si(e,t,n);if(`error`in r)return O({error:r.error},r.status);let{app:i}=e.integrations[t],a=r.state.tx,o=i.createStep&&(e.operatorApp||r.state.public)?i.createStep(e.config.publicUrl,{name:r.definition.name,public:r.state.public}):void 0,s=e.config.publicUrl;if(i.createPost&&H.has(new URL(s).hostname))return O({error:`${e.integrations[t].name} cannot reach ${s}. Set a public address first.`},400);let c=e.operatorApp?void 0:vn(e,r.state.agent),l=i.createPost?.({publicUrl:s,...r,encodedState:re({tx:a,...c?{back:c}:{}})});return O({tx:a,...l?{post:l}:{},...o?{create:o}:{}})}async function ui(e,t,n,r){if(/^[a-z0-9_-]+$/.test(r.pathname.split(`/`)[2]))return li(t,n.id,r.searchParams)}async function di(e,t,n){let r=await e.json().catch(()=>void 0);return li(t,n.integration,new URLSearchParams(r&&typeof r==`object`?r:{}))}async function fi(e,t,n,r,i){let a=t.operatorApp??!1,o=a?`*`:t.session?.user.id??`anonymous`,s=t.integrations[n];if(!s)return B(t,`unknown-integration`,{platform:n},i);if(a&&s.app.builtin!==`shared`)return O({error:`Create this app in your workspace from the agent's Platforms tab.`},400);let c=t.config.publicUrl;if(!c)return B(t,`no-public-url`,{},i);let l=r?await Kt(t,r,n,o):void 0;if(!l)return B(t,`create-expired`,{platform:n},i);a&&await t.store.put(`delivery`,ai(r),{at:t.now?.()??Date.now(),target:n},{ttlMs:6e5});let u=a?`/create/${n}`:vn(t,l.state.agent),d=a?{tx:r}:{},f=a?void 0:(await ln(t)).find(e=>e.integration===n),p=await s.app.createCallback(e,{publicUrl:c,...l,fetch:t.fetch??fetch,...f?{shared:K(t.config,f.credentials)}:{}}).catch(r=>r instanceof w&&r.code===`invalid-field`&&e.headers.get(`accept`)===`application/json`?O({error:r.message},400):r instanceof w?B(t,r.code,{platform:n,error:r.error,...d},u):(console.error(`coder server: creating the ${n} app failed`,r),B(t,`failed`,{platform:n,...d},u)));if(p instanceof Response)return p;let m={id:`${n}:${p.platformAppId}`,integration:n,agent:l.state.agent,name:p.name,...l.state.repo?{agentsRepo:l.state.repo}:{},...l.state.repo?{branch:l.state.branch??`main`}:{},...a?{builtin:!0}:{},...`shared`in p?{shared:f.id,credentials:``}:{credentials:hr(t.config,p.credentials)},createdAt:t.now?.()??Date.now()};if(await t.store.put(`app`,m.id,m),s.app.values&&await t.store.put(`delivery`,Be(m.id),{version:0,manifest:s.app.values(m,{publicUrl:c,definition:l.definition}).lines,changed:!1}),a)return await ti(t,`Created the shared app`,`${p.name} on ${s.name}`),B(t,`created`,{platform:n,app:p.name,...d},u);let h=await _e(t,`install`,o,m.id);return ce(`${c}/install/${n}?app=${encodeURIComponent(m.id)}&state=${re({tx:h,back:u})}`)}async function pi(e,t,n,r){if(!/^[a-z0-9_-]+$/.test(r.pathname.split(`/`)[2]))return;let i=le(r.searchParams.get(`state`));return fi(e,t,n.id,i?.tx,Ft(i?.back))}async function mi(e,t,n,r){if(!/^[a-z0-9_-]+$/.test(r.pathname.split(`/`)[2]))return;let i=new URLSearchParams(await e.clone().text()).get(`tx`),a=await fi(e,t,n.id,i,void 0),o=a.headers.get(`location`);return o&&e.headers.get(`accept`)===`application/json`?O({url:o}):a}async function hi(e,t,n,r){if(t.source!==`repo`||!t.repo)return;let i=(await(r??e.store.list(`app`))).find(({value:e})=>e.agent===t.id&&e.agentsRepo===t.repo)?.value;return((i&&e.integrations[i.integration])??Object.values(e.integrations).find(e=>e.repos))?.repos?.url(t.repo,t.path,i?.branch??n?.commit)}async function gi(e,t,n){let r=await wt(e.store,t);return await qn(e.store,n,t,r)?wt(e.store,t):r}async function Q(e,t){let n=(e.now??Date.now)(),r=e.local?await Fe(e.store,e.local.cwd,e.integrations,t).catch(()=>void 0):void 0;return{now:n,local:r,loadCurrent:()=>r?Promise.resolve(r.find(({record:e})=>e.id===t)??{}):gi(e,t,n)}}async function _i(e,t,{after:n,q:r,source:i,platform:a,limit:o}){return!t&&e.store.listAgentSummaries?(await e.store.listAgentSummaries({after:n,q:r,source:i,platform:a,limit:o})).map(({record:e})=>e):(t??(a?await At(e.store):(await e.store.list(`agent`)).map(({value:e})=>({record:e,version:void 0})))).filter(({version:e})=>!a||!!e?.definition?.integrations?.[a]).map(({record:e})=>e).filter(e=>(!n||e.id>n)&&(!i||e.source===i)&&(!r||[e.id,e.name,e.description,e.repo].some(e=>e?.toLowerCase().includes(r)))).sort((e,t)=>e.id.localeCompare(t.id)).slice(0,o)}async function vi(e,t,n,r){let i=n.slug;if(n.version&&Number(n.version),n.version&&!/^\d+$/.test(r.pathname.split(`/`).at(-1)))return k();let a=r.searchParams.get(`fields`);if(a&&![`id`,`id,name`].includes(a))return O({error:`Invalid fields`},400);let{now:o,local:s,loadCurrent:c}=await Q(t,i);if(!s&&t.store.listAgentSummaries&&(await G(t.store,o),ae(r)&&!a))return O(await Ci(t,r));let l=ie(r,200);if(a){!s&&!t.store.listAgentSummaries&&await G(t.store,o);let e=await _i(t,s,{after:oe(r),q:r.searchParams.get(`q`)?.trim().toLowerCase(),source:Si[r.searchParams.get(`type`)??``],platform:r.searchParams.get(`platform`)??void 0,limit:l+ +!!ae(r)}),n=e=>a===`id`?{id:e.id}:{id:e.id,name:e.name},i=fe(e,l,e=>e.id);return O(ae(r)?{...i,items:i.items.map(n)}:e.map(n))}let u=s??(t.store.listAgentSummaries?await t.store.listAgentSummaries({limit:l}):await At(t.store));if(!s&&!t.store.listAgentSummaries&&await G(t.store,o,u)&&(u=await At(t.store)),ae(r))return O(await Ci(t,r,u));let d,f=y();return O(await Promise.all(u.slice(0,l).map(async({record:e,version:n})=>{e.source===`repo`&&e.repo&&(d??=t.store.list(`app`));let r=await hi(t,e,n,d);return{...e,...e.id===f?{default:!0}:{},definition:n?.definition,...r?{sourceUrl:r}:{}}})))}async function yi(e,t,n,r){let i=n.slug;if(n.version&&Number(n.version),n.version&&!/^\d+$/.test(r.pathname.split(`/`).at(-1)))return k();let{now:a,local:o,loadCurrent:s}=await Q(t,i),c=ie(r,10,50),l=oe(r),[u,d]=await Promise.all([o?s().then(e=>e.record):L(t.store,i),o?Promise.resolve(o.flatMap(({version:e})=>e?[{value:e}]:[])):t.store.listVersions?.(i,c+1,l)]);return u?O(await wi(t,u,c,l??u.currentVersion+1,d)):O({error:`No agent named "${i}"`},404)}async function bi(e,t,n,r){let i=n.slug,a=n.version?Number(n.version):void 0;if(n.version&&!/^\d+$/.test(r.pathname.split(`/`).at(-1)))return k();let{now:o,local:s,loadCurrent:c}=await Q(t,i),l=s?s.find(({version:e})=>e?.version===a)?.version:await A(t.store,i,a);return l?O(l):O({error:`No version ${a} for agent "${i}"`},404)}async function xi(e,t,r,i){let a=r.slug;if(r.version&&Number(r.version),r.version&&!/^\d+$/.test(i.pathname.split(`/`).at(-1)))return k();let{now:o,local:s,loadCurrent:c}=await Q(t,a),l=i.searchParams.get(`versions`)!==`0`,u=i.searchParams.get(`content`)!==`0`,d=i.searchParams.get(`handles`)===`1`,f=t.session?.user.id,[{record:p,version:m},h,g,_,v]=await Promise.all([!u&&!s&&t.store.listAgentSummaries&&!ee()[a]?t.store.listAgentSummaries({slug:a}).then(e=>e[0]??{}):c(),l?s?s.flatMap(({version:e})=>e?[{value:e}]:[]):t.store.listVersions?t.store.listVersions(a):t.store.list(`agentversion`,{prefix:`${a}:`}):[],d?pn(t,a):[],d?Cn(t.store,a):void 0,d?t.store.listCredentials?t.store.listCredentials({owner:f}):t.store.list(`credential`):void 0]);if(!p)return O({error:`No agent named "${a}"`},404);let y=p.settings?.engine??m?.definition.engine??n,b=v!==void 0&&!v.some(({value:e})=>e.engine===y&&(!e.owner||e.owner===f))&&!await mn(t,p.settings?.engine??m?.definition.engine),x=m?.definition.integrations??{},S=e=>{let t=x[e]?.events;return Array.isArray(t)?t.includes(`mention`):!!(t&&`mention`in t)},C=[],w=Object.keys(t.integrations),T=(e,t)=>w.indexOf(e.value.integration)-w.indexOf(t.value.integration);for(let{value:e}of[...g].sort(T))S(e.integration)&&!C.some(t=>t.integration===e.integration&&t.name.toLowerCase()===e.name.toLowerCase())&&C.push({name:e.name,integration:e.integration,platform:t.integrations[e.integration]?.name??e.integration});let E=h.map(({value:e})=>{let{systemPrompt:t,files:n,...r}=e;return r}),D=await hi(t,p,m);return O({...p,...m?{definition:m.definition,...u&&`systemPrompt`in m?{systemPrompt:m.systemPrompt,...m.files?{files:m.files}:{}}:{}}:{},...D?{sourceUrl:D}:{},...l?{versions:E}:{},...C.length?{handles:C}:{},..._?.failed?{deliveries:{failed:_.failed,recent:_.recent.map(e=>({at:e.at,platform:t.integrations[e.integration]?.name??e.integration,...e.type?{type:e.type}:{},error:e.error,...e.url?{url:e.url}:{}}))}}:{},...b?{needsModel:!0}:{}})}const Si={builtin:`builtin`,dashboard:`upload`,repository:`repo`};async function Ci(e,t,n){let r=ie(t,24,100),i=oe(t),a=t.searchParams.get(`q`)?.trim().toLowerCase(),o=Si[t.searchParams.get(`type`)??``],s=t.searchParams.get(`platform`),c=t.searchParams.get(`connect`)===`1`,l=e.serverOrganizationId,u=e.store.list(`app`),[d,f,p,m]=await Promise.all([u,e.store.list(`installation`),c&&l!==void 0&&l!==e.organizationId&&e.scope?e.scope(l).store.list(`app`):[],n?n.filter(({record:e})=>(!i||e.id>i)&&(!o||e.source===o)&&(!a||[e.id,e.name,e.description,e.repo].some(e=>e?.toLowerCase().includes(a)))):e.store.listAgentSummaries({after:i,source:o,q:a,platform:s??void 0,limit:r+1})]),h=new Set(f.filter(({value:e})=>!e.deletedAt).map(({value:e})=>e.app)),g=(e,t)=>{let n=d.filter(({value:n})=>n.agent===e&&n.integration===t);return n.length?n.some(({value:e})=>h.has(e.id))?`installed`:`created`:`none`},_=[];for(let{record:e,version:t}of m){let n=Object.keys(t?.definition?.integrations??{}).sort();if(!(s&&!n.includes(s))&&(_.push({record:e,version:t,ids:n}),_.length>r))break}let v=fe(_,r,e=>e.record.id),b=y();return{...v,...c?{connectable:[...d,...p].filter(({value:t})=>t.builtin&&e.integrations[t.integration]?.app.builtin===`shared`&&!h.has(t.id)).map(({value:e})=>({id:e.id,integration:e.integration,agent:e.agent}))}:{},items:await Promise.all(v.items.map(async({record:t,version:n,ids:r})=>{let i=await hi(e,t,n,u);return{...t,...t.id===b?{default:!0}:{},definition:n?.definition,...i?{sourceUrl:i}:{},platforms:r.map(e=>({id:e,state:g(t.id,e)}))}}))}}async function wi(e,t,n,r,i){let a=r-n-2,o=(i??await e.store.list(`agentversion`,{prefix:`${t.id}:`,...a>0?{after:Lt(t.id,a)}:{},limit:n+1})).map(({value:e})=>{let{systemPrompt:t,files:n,definition:r,...i}=e;return i}).filter(e=>e.version<r).reverse();return fe(o,n,e=>e.version)}var Ti=class{options;entries=new Map;pending=new Map;constructor(e={ttlMs:6e5,max:100}){this.options=e}get size(){return this.entries.size}get inFlight(){return this.pending.size}has(e){return this.entries.has(e)}keys(){return this.entries.keys()}async get(e,t){let n=this.options.now??Date.now,r=n(),i=this.entries.get(e);if(i&&r-i.at<this.options.ttlMs)return i.value;for(let[t,n]of this.entries)t!==e&&r-n.at>=this.options.ttlMs&&this.entries.delete(t);let a=this.pending.get(e);return a||(a=Promise.resolve().then(t).then(t=>{if(t===void 0)return i?.value;if(this.options.accept&&!this.options.accept(t))return i?.value??t;this.entries.set(e,{value:t,at:n()});let r=this.entries.keys().next().value;return this.entries.size>this.options.max&&r!==void 0&&this.entries.delete(r),t}).catch(()=>i?.value).finally(()=>this.pending.delete(e)),this.pending.set(e,a)),a}};const Ei=/^[a-z0-9][a-z0-9-]*$/,Di=new Set([`openrouter.ai`,`ai-gateway.vercel.sh`,`api.groq.com`,`api.together.xyz`]);function Oi(e){return{builtin:{codex:m,claude:f},models:e.models??{}}}async function ki(e,t){let{baseUrl:n,envKey:r,key:i}=await qe(e);if(!n||!/^https?:\/\//.test(n)||!URL.canParse(n))return O({error:`An http or https base URL is required`},400);let a=!i&&r&&await Ai(t,n,r)?await tr(t,r):void 0,o=i||a,s=t.settings??={},c=s.probes??=new Ti({ttlMs:6e5,max:100,now:t.now,accept:e=>e.reachable}),l=`${new URL(n).host}|${r??``}|${T(String(o??``))}`;return O(await c.get(l,()=>ne({baseUrl:n},{key:o,fetch:t.fetch})))}async function Ai(e,t,n){let r=new URL(t).host;if(Di.has(r))return!0;let i=(await _t(e)).models??{};return Object.values(i).some(e=>`baseUrl`in e&&e.envKey===n&&new URL(e.baseUrl).host===r)}async function ji(e,t,n,r){return O(Oi(await _t(t)))}async function Mi(e,t,n,r){let{name:i=``,...a}=await qe(e);return!Ei.test(i)||c(i)?O({error:`Invalid model name "${i}"`},400):R(t,e=>{if(e.models?.[i])throw new N(`"${i}" already exists`);e.models={...e.models,[i]:a}})}async function Ni(e,t,n,r){let i=n.name;return R(t,e=>{if(!e.models?.[i])throw new N(`No model "${i}"`);_(e,i)})}async function Pi(e,t,n,r){let i=n.name,{spec:a}=await qe(e);return R(t,e=>{if(!Ei.test(i))throw new N(`Invalid alias name "${i}"`);let t=e.models?.[i];if(t&&g(t))throw new N(`"${i}" is a custom model name`);let n=s(a,d(e));if(!n?.model||n.engine===`custom`)throw new N(`"${a}" does not name a codex or claude model`);let r=n.engine===`claude`?f:m,o=a.split(`:`).some(e=>p.has(e)||h.has(e));e.models={...e.models,[i]:{provider:n.engine,model:r[n.model]??n.model,...o&&n.effort?{effort:n.effort}:{}}}})}async function Fi(e,t,n,r){let i=n.name;return R(t,e=>{let t=e.models??={},n=t[i];n&&(g(n)||u(n))?n.disabled=!0:t[i]={disabled:!0}})}async function Ii(e,t,n,r){let i=n.name;return R(t,e=>{let t=e.models??={},n=t[i];n&&(g(n)||u(n))?delete n.disabled:delete t[i]})}async function Li(e,t){let{now:n,local:r}=await Q(t);r||await G(t.store,n);let[i,a,o]=await Promise.all([_i(t,r,{limit:200}),_t(t),t.store.list(`runner`)]),s=y(),c=i.filter(e=>!e.settings?.disabled).sort((e,t)=>Number(t.id===s)-Number(e.id===s)).map(({id:e,name:t})=>({id:e,name:t,...e===s?{default:!0}:{}})),l=fr(t,a),u=Object.values(t.integrations).find(e=>e.repos);return O({agents:c,...l.chain?.[0]?{engine:l.chain[0]}:{},engines:l.engines??{},models:Oi(a),runners:fn(t,o,n).map(({id:e,name:t,default:n})=>({id:e,name:t,default:n})),flows:D(te(),`builtin`).map(e=>e.name),...t.local?{folders:Wt(t.local.cwd)}:{},...u?{connectLabel:u.installLabel??`Connect ${u.id}`}:{}})}async function Ri(e,t){let n=(await e.store.list(`installation`)).filter(({value:t})=>!t.deletedAt&&e.integrations[t.integration]?.repos),r=new Map((await dr(e.store,n.map(({value:e})=>e.app))).map(({id:e,value:t})=>[e,t]));for(let{value:i}of n){let n=e.integrations[i.integration];if(i.deletedAt||!n?.repos)continue;let a=r.get(i.app);if(!(!a||a.integration!==n.id))try{let r=i.token?{...i,token:K(e.config,i.token)}:i,o=await n.auth.token(r,K(e.config,a.credentials));if((await n.repos.list(r,o)).includes(t))return{contents:n,token:o,app:a,installation:i}}catch{}}}async function zi(e,t,n){let r=await Ri(e,t);if(!r)return O({error:`No installed app can read ${t}`},400);let i=await r.contents.repos.listDir(t,xt,r.token,n).catch(()=>[]),a=await Promise.all(i.map(async i=>{let a=await r.contents.repos.readFile(t,`${xt}/${i}/agent.json`,r.token,n).catch(()=>void 0);if(a===void 0)return;let s={};try{let e=JSON.parse(a);e&&typeof e==`object`&&(s=e)}catch{}let c=Object.entries(s.mcp&&typeof s.mcp==`object`&&!Array.isArray(s.mcp)?s.mcp:{}).flatMap(([e,t])=>o(e,t)),l=await L(e.store,i),u=l?.source===`repo`&&l.repo===t,d=u?await A(e.store,i):void 0;return{id:i,name:typeof s.name==`string`?s.name:i,...c.length?{warnings:c}:{},...typeof s.description==`string`?{description:s.description}:{},...u?{version:l.currentVersion,...d?.source?{commit:d.source.commit}:{}}:{},...l&&!u?{taken:!0}:{}}}));return O({repo:t,agents:a.filter(Boolean)})}async function Bi(e,t,n,r){let i=r.searchParams.get(`repo`);return i?zi(t,i,r.searchParams.get(`ref`)||`HEAD`):O({error:`repo is required`},400)}async function Vi(e,t,n,r){let i=await e.json().catch(()=>void 0),a=i?.agents;if(typeof i?.repo!=`string`||i.ref!==void 0&&typeof i.ref!=`string`||a!==void 0&&!(Array.isArray(a)&&a.every(e=>typeof e==`string`)))return O({error:`repo is required, ref must be a string and agents a list of ids`},400);try{let e=await Ri(t,i.repo);if(!e)return O({error:`No installed app can read ${i.repo}`},400);let n=i.ref??`HEAD`,r=a??await e.contents.repos.listDir(i.repo,`.coder/agents`,e.token,n);for(let e of r){let n=await L(t.store,e);if(n&&(n.source!==`repo`||n.repo!==i.repo))return O({error:`Agent id "${e}" is already taken`},409)}let o=await Me(t.store,e.contents,i.repo,n,e.token,(t.now??Date.now)(),{slugs:r});return await Dt(t,o),O({imported:o.map(e=>e.agent)})}catch(e){return O({error:e instanceof Error?e.message:String(e)},400)}}function Hi(e){if(!e||Array.isArray(e)||typeof e!=`object`)return!1;let t=Object.entries(e);if(t.length>100)return!1;let n=0;for(let[e,r]of t){if(typeof r!=`string`||e.startsWith(`/`)||e.includes(`\\`)||e.includes(`\0`)||e.split(`/`).includes(`..`)||e===`agent.json`||e===`system.md`)return!1;n+=Buffer.byteLength(e)+Buffer.byteLength(r)}return n<=262144}async function Ui(e,t){return(await Ln(e,[t])).flatMap(({app:e,error:t,check:n})=>{let r={id:e.id,integration:e.integration,name:e.name};return t?[{...r,error:t}]:n?n.changed?[{...r,drift:!0}]:[]:[{...r,updated:!0}]})}async function Wi(e,t,n,r){let i=n.slug;if(n.version&&Number(n.version),n.version&&!/^\d+$/.test(r.pathname.split(`/`).at(-1)))return k();let{now:a,local:o,loadCurrent:s}=await Q(t,i),c=await e.json().catch(()=>void 0);try{let e=x({[i]:c})[i];if(!e||typeof e!=`object`)throw Error(`settings must be an object`);let{disabled:n,...r}=e,a=n?{...r,disabled:n}:r,{record:o,version:l}=await s();if(!o||!l)throw Error(`No agent named "${i}".`);if(dn({...o,settings:void 0},l,r,t.integrations),t.local){let e=S(t.local.cwd,i,!!n);return e?O({error:`Agent "${i}" is ${n?`enabled`:`disabled`} by agents.${i} in ${e}. Change it there.`},409):(await St(t,e=>{e.agents={...e.agents,[i]:a}}),await Fe(t.store,t.local.cwd,t.integrations),O(await L(t.store,i)))}return O(await Vn(t.store,i,a,(t.now??Date.now)()))}catch(e){return O({error:e instanceof Error?e.message:String(e)},400)}}async function Gi(e,t,n,r){let i=n.slug;if(n.version&&Number(n.version),n.version&&!/^\d+$/.test(r.pathname.split(`/`).at(-1)))return k();let{now:a,local:o,loadCurrent:s}=await Q(t,i),{record:c}=await s();if(!c)return O({error:`No agent named "${i}"`},404);if(c.source===`builtin`)return O({error:`Built-in agents cannot be deleted.`},400);if(t.local&&!await ye(t.local.cwd,t.integrations,i))return O({error:`Delete .coder/agents/${i} in the repo`},409);for(let{id:e}of await t.store.list(`agentversion`,{prefix:`${i}:`}))await t.store.delete(`agentversion`,e);return await t.store.delete(`agent`,i),O({ok:!0})}async function Ki(e,t,n,r){let i=n.slug;if(n.version&&Number(n.version),n.version&&!/^\d+$/.test(r.pathname.split(`/`).at(-1)))return k();let{now:a,local:o,loadCurrent:s}=await Q(t,i),c=await e.json().catch(()=>void 0);if(!c||typeof c.systemPrompt!=`string`||c.files!==void 0&&!Hi(c.files)||c.name!==void 0&&typeof c.name!=`string`||c.description!==void 0&&typeof c.description!=`string`)return O({error:`definition and systemPrompt are required; files must contain strings`},400);try{b([i]);let[e]=C({definitions:{[i]:{json:c.definition,builtin:!1}},usage:void 0},t.integrations);if(!e)throw Error(`No agent named "${i}".`);let n=t.local?await L(t.store,i):void 0,r=t.local&&n?await A(t.store,i):void 0,a=c.files;t.local&&(await gt(t.local.cwd,t.integrations,i,{definition:{...c.definition,...c.name===void 0?{}:{name:c.name},...c.description===void 0?{}:{description:c.description}},systemPrompt:c.systemPrompt,...a?{files:a}:{}}),await Fe(t.store,t.local.cwd,t.integrations));let o=t.local?void 0:await Xt(t.store,{id:i,name:c.name??e.name,description:c.description??e.definition.description,source:`upload`,definition:e.definition,systemPrompt:c.systemPrompt,files:a,importedFrom:`upload`},(t.now??Date.now)()),s=o?.version??await A(t.store,i),l=o?.unchanged??Or(r&&{...r,createdAt:0},{...s,createdAt:0}),u=await Ui(t,s),d=o?.record??await L(t.store,i);return O({...d,definition:s.definition,version:s.version,unchanged:l,apps:u})}catch(e){return O({error:e instanceof Error?e.message:String(e)},400)}}async function qi(e,t,n,r){let i=n.id,a=Number(r.searchParams.get(`after`)??-1),o=Number.isFinite(a)?a:-1;r.searchParams.has(`limit`)&&ie(r,500,2e3);let s=await t.store.get(`task`,i);if(!s||t.local&&s.handle?.startsWith(`cli:`)&&s.task.flow==="default"){let n=s?.task.cwd??t.local?.cwd;if(!n||!I(n,i,!1))return O({error:`No task "${i}"`},404);{let r=Number(e.headers.get(`last-event-id`)??o);return ta(e,t,`cli:${n}:${i}`,Number.isFinite(r)?r:o,async e=>{let t=I(n,i);if(t)return{status:t,lines:we(n,i,e,500),pendingResult:Ji(n,t,!t.result)}})}}let c=Number(e.headers.get(`last-event-id`)??o),l=t.statementTimeout??((e,t)=>t());return ta(e,t,i,Number.isFinite(c)?c:o,e=>l($i,async()=>{let n=await t.store.get(`task`,i);if(n)return{status:await rr(t,n),lines:await sn(t.store,i,e,500)}}))}function Ji(e,t,n=!1){if(!Ne.has(t.status)||t.error||t.status===`cancelled`)return!1;let r=l(e,t.task.id),a=Date.parse(r?.resumedAt??r?.createdAt??``)||0;return n||(Cr.statSync(q.join(i(e,t.task.id),`result.json`),{throwIfNoEntry:!1})?.mtimeMs??0)<a}const Yi=1e3,$=3e4;function Xi(e,t,n,r){let i=[...new Set((r.searchParams.get(`tasks`)??``).split(`,`).filter(Boolean))].slice(0,100),a=Date.now(),o=t.taskWatcher??new Qi,s=o.tag(t),[c,l]=(e.headers.get(`last-event-id`)??``).split(`-`),u=Number(c),d=u>0&&`-${l}`===s,f=d?Math.min(Math.max(u,a-29e4),a):a,p=u>0&&(!d||u<f)?`event: reset
|
|
2
|
-
data: {}
|
|
3
|
-
|
|
4
|
-
`:``,m=new TextEncoder,h=()=>{},g=new ReadableStream({start(n){n.enqueue(m.encode(`retry: ${Yi}\nid: ${f}${s}\n\n${p}`)),h=o.watch(t,i,f,e=>n.enqueue(m.encode(e)),()=>n.close(),d);let r=()=>{h();try{n.close()}catch{}};e.signal.aborted?r():e.signal.addEventListener(`abort`,r)},cancel(){h()}});return new Response(g,{headers:{"content-type":`text/event-stream; charset=utf-8`,"cache-control":`no-cache, no-transform`}})}function Zi(e,t){let{task:n,approval:r,archivedAt:i,createdAt:a,startedAt:o,finishedAt:s}=e;return{id:n.id,agent:n.agent,status:e.status,approval:r??null,archivedAt:e.autoArchived&&!t?void 0:i,createdAt:a,startedAt:o,finishedAt:s,...t?{result:e.result??null,error:e.error??null,answer:e.answer??null}:{}}}var Qi=class{options;watches=new Set;timer;counts=new Map;runners=new Map;reading=!1;closed=!1;last=Date.now();scans=new Map;left=new Map;archived=new Map;reads=0;generation=Dr().slice(0,8);constructor(e={}){this.options=e}watch(e,t,n,r,i,a=!1){if(this.closed)return queueMicrotask(i),()=>{};let o=Date.now();this.watches.size||(this.last=o);let s={ctx:e,ids:new Set(t),sent:new Map,gone:new Set,from:n,fresh:!0,...a?{runners:``}:{},tag:this.tag(e),beat:o,marked:o,until:o+(this.options.lifeMs??29e4),send:r,close:i};return this.watches.add(s),this.timer||(this.timer=setInterval(()=>this.tick(),this.options.pollMs??1e3),this.timer.unref?.()),this.tick(),()=>this.drop(s)}tag(e){return`-${Tr(`sha256`).update(e.organizationId).digest(`hex`).slice(0,8)}${e.queue instanceof jn?`.${this.generation}`:``}`}runnersChanged(e){this.runners.delete(e)}close(){this.closed=!0;for(let e of[...this.watches]){this.drop(e);try{e.close()}catch{}}}drop(e){this.watches.delete(e)&&([...this.watches].some(t=>t.ctx.organizationId===e.ctx.organizationId)||(this.counts.delete(e.ctx.organizationId),this.runners.delete(e.ctx.organizationId)),this.watches.size||(clearInterval(this.timer),this.timer=void 0,this.counts.clear(),this.runners.clear()))}tick(){let e=Date.now();for(let t of[...this.watches])if(e>=t.until){this.drop(t);try{t.close()}catch{}}else e-t.beat>=(this.options.heartbeatMs??2e4)&&(t.beat=e,this.send(t,`: ping
|
|
5
|
-
|
|
6
|
-
`));this.reading||!this.watches.size||(this.reading=!0,this.read(e).finally(()=>this.reading=!1))}send(e,t){try{e.send(t)}catch{this.drop(e)}}async read(e){let t=[...this.watches],n=new Map;for(let e of t){let t=n.get(e.ctx.organizationId)??{ctx:e.ctx,ids:new Set};for(let n of e.ids)t.ids.add(n);n.set(e.ctx.organizationId,t)}let r=Math.min(this.last,...t.flatMap(e=>e.fresh?[e.from]:[]));this.reads++;let i=await this.changes(n,r-$,e).catch(e=>{console.error(`coder server: task events failed`,e)});if(i){this.last=e;try{for(let[e,{ctx:t}]of n){let n=this.counts.get(e),r=JSON.stringify([[...i.rows.get(e)??[]].map(([e,t])=>[e,t.status,t.archivedAt]).sort(),[...i.deleted.get(e)?.keys()??[]].sort()]),a=n?.fingerprint!==r,o=t.local?[...i.rows.get(e)?.values()??[]].filter(e=>!e.archivedAt&&[`queued`,`running`,`waiting`].includes(e.status)).length:a?(await t.queue.counts(e,{archived:!1,statuses:[`queued`,`running`,`waiting`]})).active:n.active;[...this.watches].some(t=>t.ctx.organizationId===e)&&this.counts.set(e,{active:o,fingerprint:r})}}catch(e){console.error(`coder server: task counts failed`,e);return}await Promise.all([...n].filter(([t])=>e-(this.runners.get(t)?.at??-1/0)>=15e3).map(async([t,{ctx:n}])=>{try{this.runners.set(t,{at:e,records:await n.store.list(`runner`)})}catch(e){console.error(`coder server: runner events failed`,e)}}));for(let n of t){if(!this.watches.has(n))continue;let t=[];try{t=this.news(n,i,e);let r=this.counts.get(n.ctx.organizationId)?.active;r!==void 0&&r!==n.active&&(n.active=r,t.push(`id: ${e}${n.tag}\nevent: counts\ndata: ${JSON.stringify({active:r})}\n\n`)),t.push(...this.runnerNews(n,e))}catch{}!t.length&&e-n.marked>=(this.options.heartbeatMs??2e4)&&t.push(`id: ${e}${n.tag}\n\n`),t.length&&(n.marked=e,this.send(n,t.join(``)))}}}runnerNews(e,t){let n=this.runners.get(e.ctx.organizationId);if(!n)return[];let r=fn(e.ctx,n.records,t),i=JSON.stringify(r.map(({lastSeen:e,...t})=>t.online?t:{...t,lastSeen:e})),a=e.runners;return e.runners=i,a===void 0||a===i?[]:[`id: ${t}${e.tag}\nevent: runners\ndata: ${JSON.stringify({items:r})}\n\n`]}async changes(e,t,n){let r=await[...e.values()][0].ctx.queue.changes([...e].map(([e,t])=>({organizationId:e,ids:[...t.ids]})),t),i=new Map;for(let{organizationId:e,status:t}of r.rows){let n=i.get(e)??new Map;i.set(e,n.set(t.task.id,t))}let a=new Map;for(let{organizationId:e,id:t,at:n}of r.deleted){let r=a.get(e)??new Map;a.set(e,r.set(t,n))}for(let[t,{ctx:r}]of e){if(!r.local)continue;let e=[...i.get(t)?.values()??[]],a=this.scans.get(r.local.cwd);if(!a||n-a.at>=(this.options.localScanMs??4e3)||e.some(e=>e.updatedAt>a.at)){let e=!a||n-a.archivedAt>=(this.options.archiveScanMs??15e3);await rt(r,r.local.cwd);let t=e?W(r.local.cwd,!0):a.archived,i=W(r.local.cwd,!1),o=new Set(i.map(e=>e.task.id)),s=[...i,...t.filter(e=>!o.has(e.task.id))],c=new Set(s.map(e=>e.task.id)),u=this.left.get(r.local.cwd)??new Map;for(let e of a?.rows??[])c.has(e.task.id)||u.set(e.task.id,a.at);for(let[e,t]of u)(t<n-6e5||c.has(e))&&u.delete(e);let d=this.archived.get(r.local.cwd)??new Set;for(let e of d)c.has(e)?d.delete(e):l(r.local.cwd,e)||(u.set(e,a?.at??n),d.delete(e));this.left.set(r.local.cwd,u),this.scans.set(r.local.cwd,a={at:n,rows:s,archived:t,archivedAt:e?n:a.archivedAt})}i.set(t,new Map(at(r.local.cwd,a.rows,e).map(e=>[e.task.id,e])))}return{rows:i,deleted:a}}news(e,{rows:t,deleted:n},r){let{ctx:i}=e,a=t.get(i.organizationId)??new Map,o=[],s=(t,n)=>{let i=JSON.stringify(n);e.sent.get(t)!==i&&(e.sent.set(t,i),o.push(`id: ${r}${e.tag}\nevent: task\ndata: ${i}\n\n`))},c=e=>({id:e,deleted:!0}),l=t=>{let n=i.local&&I(i.local.cwd,t,e.ids.has(t));if(s(t,n?Zi(n,e.ids.has(t)):c(t)),e.gone.add(t),n&&i.local){let e=this.archived.get(i.local.cwd)??new Set;this.archived.set(i.local.cwd,e.add(t))}};for(let[t,n]of a){let a=e.ids.has(t);e.gone.delete(t);let o=Zi(a&&i.local&&n.local&&Ne.has(n.status)?I(i.local.cwd,t)??n:n,a);if(i.local&&n.local&&e.sent.get(t)!==JSON.stringify(o)&&r-(n.finishedAt??0)<$&&Ji(i.local.cwd,n)){e.sent.has(t)||e.sent.set(t,``);continue}a||i.local&&!e.fresh||n.updatedAt>e.from-$?s(t,o):e.fresh&&e.sent.set(t,JSON.stringify(o))}for(let t of e.ids)a.has(t)||l(t);for(let[t,r]of n.get(i.organizationId)??[])r>e.from-$&&s(t,c(t));if(i.local){for(let t of e.sent.keys())!a.has(t)&&!e.ids.has(t)&&!e.gone.has(t)&&l(t);for(let[t,n]of this.left.get(i.local.cwd)??[])n>e.from-$&&!a.has(t)&&e.sent.get(t)!==JSON.stringify(c(t))&&l(t)}return e.fresh=!1,e.from=r,o}};const $i=1e4;var ea=class{options;feeds=new Map;closed=!1;reads=0;constructor(e={}){this.options=e}watch(e,t,n,r,i){if(this.closed)return queueMicrotask(i),()=>{};let a=this.feeds.get(e),o=a?.reading!==void 0&&Date.now()-a.reading>=(this.options.stallMs??1e4);if(!a||o){let t={key:e,read:n,watches:new Set,head:1/0};if(a){clearTimeout(a.timer);for(let e of a.watches)t.watches.add(Object.assign(e,{feed:t}));a.watches.clear()}this.feeds.set(e,a=t)}let s={cursor:t,feed:a,timers:[],send:r,close:i};s.timers=[setTimeout(()=>this.end(s),this.options.lifeMs??5e4),setInterval(()=>this.send(s,`: ping
|
|
7
|
-
|
|
8
|
-
`),this.options.heartbeatMs??2e4)];for(let e of s.timers)e.unref?.();return a.watches.add(s),a.reading===void 0&&t<a.head&&(clearTimeout(a.timer),this.read(a)),()=>this.drop(s)}close(){this.closed=!0;for(let e of[...this.feeds.values()])for(let t of[...e.watches])this.end(t)}drop(e){let{feed:t}=e;for(let t of e.timers)clearTimeout(t);!t.watches.delete(e)||t.watches.size||(clearTimeout(t.timer),this.feeds.get(t.key)===t&&this.feeds.delete(t.key))}end(e,t=``){try{t&&e.send(t),e.close()}catch{}this.drop(e)}send(e,t){try{e.send(t)}catch{this.drop(e)}}async read(e){if(e.timer=void 0,this.feeds.get(e.key)!==e||!e.watches.size)return;let t=[...e.watches],n=Math.min(...t.map(e=>e.cursor));e.reading=Date.now(),this.reads++;let r=await e.read(n).catch(()=>null);if(e.reading=void 0,this.feeds.get(e.key)!==e)return;let i=t.filter(t=>e.watches.has(t)),a=i.length<e.watches.size?0:this.options.pollMs??1e3;if(r===void 0)for(let e of i)this.end(e);else if(r){let{status:t,lines:o,pendingLogs:s,pendingResult:c}=r,l=o.length===500,u=Ne.has(t.status)&&!l&&!s&&!c,d=o.map(e=>[e.seq,`id: ${e.seq}\nevent: log\ndata: ${JSON.stringify(e)}\n\n`]);e.head=Math.max(n,o.at(-1)?.seq??n),l&&(a=0);for(let e of i){let t=d.flatMap(([t,n])=>t>e.cursor?[n]:[]).join(``);e.cursor=Math.max(e.cursor,o.at(-1)?.seq??-1),u?this.end(e,`${t}event: end\ndata: {}\n\n`):t&&this.send(e,t)}}this.feeds.get(e.key)===e&&(e.timer=setTimeout(()=>void this.read(e),a),e.timer.unref?.())}};function ta(e,t,n,r,i){let a=t.logWatcher??new ea,o=new TextEncoder,s=()=>{},c=new ReadableStream({start(c){c.enqueue(o.encode(`retry: ${Yi}\n\n`)),s=a.watch(`${t.organizationId}:${n}`,r,i,e=>c.enqueue(o.encode(e)),()=>c.close());let l=()=>{s();try{c.close()}catch{}};e.signal.aborted?l():e.signal.addEventListener(`abort`,l)},cancel(){s()}});return new Response(c,{headers:{"content-type":`text/event-stream; charset=utf-8`,"cache-control":`no-cache, no-transform`}})}const na={npm:[`npx`,`-y`],pypi:[`uvx`],oci:[`docker`,`run`,`-i`,`--rm`]},ra=(e=[])=>e.map(({name:e,description:t,isRequired:n,isSecret:r,value:i,default:a})=>({name:e,...t?{description:t}:{},...i??a?{placeholder:i??a}:{},required:n===!0,secret:r===!0}));function ia(e=[],t,n){return e.flatMap((e,r)=>{let i=`${t}:${r}`,a=Object.entries(e.variables??{}),o=e.value??e.default,s=(e,t,r)=>{let[i]=ra([{...r,name:e}]);return n.push({...i,label:t}),`{${e}}`};if(a.length)for(let[e,t]of a)o=o?.replaceAll(`{${e}}`,s(`${i}:${e}`,e,t));else o===void 0&&(e.valueHint||e.isRequired)&&(o=s(i,e.valueHint??e.name??i,e));return[...e.type===`named`&&e.name?[e.name]:[],...o===void 0?[]:[o]]})}function aa(e){let t=e.remotes?.find(e=>e.type===`streamable-http`||e.type===`sse`);if(t)return{type:t.type===`sse`?`sse`:`http`,url:t.url,env:[],headers:ra(t.headers)};let n=e.packages?.find(e=>na[e.registryType]&&(e.transport?.type??`stdio`)===`stdio`);if(!n)return;let[r,...i]=na[n.registryType],a=[],o=ia(n.runtimeArguments,`runtime`,a),s=ia(n.packageArguments,`package`,a);return{type:`stdio`,command:n.runtimeHint??r,args:[...!n.runtimeHint||n.runtimeHint===r?i:[],...o,n.identifier,...s],...a.length?{argumentInputs:a}:{},env:ra(n.environmentVariables),headers:[]}}function oa(e,t){let[n=``,r]=e.replace(/^v/,``).split(`+`)[0].split(/-(.*)/),[i=``,a]=t.replace(/^v/,``).split(`+`)[0].split(/-(.*)/),o=n.localeCompare(i,`en`,{numeric:!0});if(o)return o;if(r===void 0||a===void 0)return Number(r===void 0)-Number(a===void 0);let s=r.split(`.`),c=a.split(`.`);for(let e=0;e<Math.max(s.length,c.length);e++){let t=s[e],n=c[e];if(t===void 0||n===void 0)return Number(t!==void 0)-Number(n!==void 0);let r=/^\d+$/.test(t),i=/^\d+$/.test(n),a=r===i?t.localeCompare(n,`en`,{numeric:r}):Number(i)-Number(r);if(a)return a}return 0}var sa=class{sources=[{url:`https://api.mcp.github.com/v0.1/servers`,curated:!0,rows:new Map,ready:!1,failed:!1},{url:`https://registry.modelcontextprotocol.io/v0.1/servers`,curated:!1,rows:new Map,ready:!1,failed:!1}];refreshAt=0;timer;controller;closed=!1;inFlight;response(e,t){if((e.now??Date.now)()>=this.refreshAt&&this.refresh(e),!this.inFlight&&this.sources.some(e=>e.failed)&&!this.sources.some(e=>[...e.rows.values()].some(e=>e.found)))return O({error:`The MCP registry did not answer. Try again.`},502);let n=t.trim().toLowerCase(),r=new Set,i=this.sources.flatMap(e=>[...e.rows].flatMap(([t,{found:i}],a)=>{if(r.has(t)||(r.add(t),!i))return[];let o=[i.name.split(`/`).pop(),i.title].map(e=>e.toLowerCase()),s=!n||o.includes(n)?0:o.some(e=>e.startsWith(n))?1:o.some(e=>e.includes(n))?2:i.description.toLowerCase().includes(n)?3:4;if(s===4)return[];let c=n&&i.verified&&s<3?0:1;return[{found:i,curated:e.curated,order:a,vendor:c,quality:s}]})),a=e=>Number(e===3);return i.sort((e,t)=>a(e.quality)-a(t.quality)||Number(t.curated)-Number(e.curated)||(e.curated?e.order-t.order:e.vendor-t.vendor||e.quality-t.quality||e.found.name.localeCompare(t.found.name))),O(i.slice(0,30).map(({found:e})=>e),200,this.sources.every(e=>e.ready)?{}:{partial:`true`})}refresh(e){if(this.inFlight||this.closed)return;this.timer&&clearTimeout(this.timer);let t=this.controller=new AbortController;this.inFlight=Promise.all(this.sources.map(n=>this.fill(e,n,t.signal))).then(()=>{}).finally(()=>{this.inFlight=void 0,this.refreshAt=(e.now??Date.now)()+36e5,this.closed||(this.timer=setTimeout(()=>this.refresh(e),36e5),this.timer.unref())}),e.waitUntil?.(this.inFlight)}async fill(e,t,n){let r=new Map,i=new Set,a;try{do{let o=new URLSearchParams({limit:`100`});a&&o.set(`cursor`,a);let s=await(e.fetch??fetch)(`${t.url}?${o}`,{headers:{accept:`application/json`},signal:AbortSignal.any([n,AbortSignal.timeout(2e4)])});if(!s.ok)throw Error(`Registry unavailable`);let{servers:c,metadata:l}=await s.json();for(let{server:e,_meta:n}of c){let i=n?.[`io.modelcontextprotocol.registry/official`]?.isLatest===!0,a=e.version??``,o=r.get(e.name);if(o&&(o.latest===i?oa(o.version,a)>=0:o.latest))continue;let s=aa(e),c=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+\//i.test(e.name)&&!/^io\.github(?:\.|\/)/i.test(e.name);r.set(e.name,{version:a,latest:i,found:s?{name:e.name,title:e._meta?.[`io.modelcontextprotocol.registry/publisher-provided`]?.github?.displayName??e.title??e.name.split(`/`).pop()??e.name,description:e.description??``,...c?{verified:!0}:{},...t.curated?{curated:!0}:{},...s}:void 0})}if(t.ready||(t.rows=new Map(r)),a=l?.nextCursor,a&&i.has(a))throw Error(`Registry cursor repeated`);a&&i.add(a)}while(a);t.rows=r,t.ready=!0,t.failed=!1}catch{t.failed=!0}}close(){this.closed=!0,this.timer&&clearTimeout(this.timer),this.controller?.abort()}};async function ca(e,t,n){let r=t.settings??={};return(r.registry??=new sa).response(t,n.searchParams.get(`q`)??``)}const la=`/api/auth/callback`,ua=`/.well-known/oauth-client.json`,da=`/.well-known/oauth-cli-client.json`,fa=`openid profile email offline_access organizations:read`;function pa(e,t){return{client_id:`${e}${ua}`,client_name:`Coder at ${new URL(e).host}`,redirect_uris:[`${e}${la}`],post_logout_redirect_uris:[`${e}/?signed_out=1`],grant_types:[`authorization_code`,`refresh_token`],response_types:[`code`],token_endpoint_auth_method:`private_key_jwt`,token_endpoint_auth_signing_alg:`ES256`,jwks:t,scope:fa}}function ma(e){return{client_id:`${e}${da}`,client_name:`Coder CLI for ${new URL(e).host}`,redirect_uris:[`http://127.0.0.1/callback`],grant_types:[`authorization_code`,`refresh_token`,`urn:ietf:params:oauth:grant-type:device_code`],response_types:[`code`],token_endpoint_auth_method:`none`,scope:fa}}function ha(e,t){return{resource:new URL(e).origin,authorization_servers:[t],bearer_methods_supported:[`header`],scopes_supported:fa.split(` `)}}function ga(e){let t=O(e);return t.headers.set(`cache-control`,`public, max-age=3600`),t}function _a(e,t,n,r){return t.config.publicUrl&&t.auth?ga(pa(t.config.publicUrl,t.auth.jwks)):void 0}function va(e,t,n,r){return t.config.publicUrl&&t.auth?ga(ma(t.config.publicUrl)):void 0}function ya(e,t,n,r){return t.config.publicUrl&&t.auth?ga(ha(t.config.publicUrl,t.auth.issuer)):void 0}const ba=[F(`GET`,Zn,en),F(`GET`,ua,_a,Ze),F(`GET`,da,va,Ze),F(`GET`,`/.well-known/oauth-protected-resource`,ya,Ze),F(`GET`,`/health`,(e,t)=>Ir(t)),F(`GET`,`/`,er,Ge),F(`GET`,`/login`,lt,vt),...j(`/login`,ur,vt).filter(e=>e.method!==`GET`),F(`POST`,`/dash/token`,Nt,dt),...j(`/dash/:org/operator`,an,Le),...j(`/dash`,an,nr)],xa=[F(`GET`,`/api/auth/capabilities`,(e,t)=>O({wular:t.auth?.issuer??null})),...j(`/api/auth`,(e,t)=>t.auth.handler(e),cr),F(`GET`,`/me`,Mn,nn)],Sa=[...M(`/tasks`,[F(`GET`,`/:id/messages`,ze,Se),F(`POST`,`/:id/ack`,je,Se),F(`POST`,`/:id/heartbeat`,He,Se),F(`POST`,`/:id/logs`,Ct,zt),F(`POST`,`/:id/result`,kt,zt),F(`POST`,`/:id/credential`,Et,zt),F(`GET`,`/:id`,In,ht)]),...M(`/logins`,[F(`GET`,`/:id/input`,Yr,Je),F(`GET`,`/:id`,Xr,Je),F(`POST`,`/:id`,Zr,Je)]),...M(`/runners`,[F(`POST`,`/register`,Hn)])],Ca=[...M(`/create`,[F(`GET`,`/:id`,ci,z),F(`POST`,`/:id`,ui,z),F(`GET`,`/:id/callback`,pi,z),F(`POST`,`/:id/callback`,mi,z)]),...M(`/install`,[F(`GET`,`/:id`,yn,P),F(`POST`,`/:id`,yn,P),F(`GET`,`/:id/callback`,Ut,P),F(`POST`,`/:id/callback`,Ut,P)])],wa=M(`/connect`,[F(`GET`,``,Nn,bt),F(`POST`,``,qt,bt),F(`GET`,`/:integration`,$t,tt),F(`GET`,`/:integration/callback`,Xn,tt)]),Ta=[...M(`/hooks`,[F(`POST`,`/*`,(e,t,n)=>Bn(e,t,n[`*`]),(e,t,n)=>t.integrations[n[`*`]]?t:k())]),...Ca,...wa],Ea=[F(`GET`,`/metrics`,async(e,t)=>O(await Rr(t),200,{"cache-control":`no-store`}),$n),F(`GET`,`/usage`,lr),F(`GET`,`/usage/totals`,Bt)],Da=M(``,[F(`GET`,`/folders`,(e,t)=>O(Wt(t.local.cwd))),F(`POST`,`/folders/check`,async(e,t)=>{let n=await e.json().catch(()=>void 0);return O(An(n?.path))}),F(`POST`,`/folders/clone`,async(e,t)=>{let n=await e.json().catch(()=>void 0);return O(await Gn(n?.url))}),F(`POST`,`/folders/pick`,async(e,t)=>O(await bn()))],he),Oa=M(``,[F(`GET`,`/engines/status`,async(e,t)=>O(await De())),F(`POST`,`/engines/:engine/login`,ir),F(`POST`,`/engines/:engine/logout`,mt)],Te),ka=[F(`POST`,`/apps/:id/install`,(e,t,n,r)=>gn(e,t,n.id,r.searchParams.get(`back`),r.searchParams.get(`link`))),F(`POST`,`/apps/create/:integration`,di),F(`GET`,`/apps`,Qe),F(`DELETE`,`/apps/:id`,Re),F(`GET`,`/apps/:id/drift`,ke),F(`POST`,`/apps/:id/update`,Ke),F(`GET`,`/installations`,nt),F(`GET`,`/connections`,Tn,V),F(`POST`,`/connections`,tn,V),F(`PATCH`,`/connections/:id`,on,V),F(`DELETE`,`/connections/:id`,Fn,V),F(`POST`,`/connections/:id/authorize`,Qn,V),F(`GET`,`/integrations`,(e,t,n,r)=>Ye(t,r)),F(`GET`,`/repositories`,(e,t)=>ge(t)),F(`POST`,`/repositories/refresh`,(e,t)=>ge(t,!0))],Aa=[F(`GET`,`/agents/import`,Bi),F(`POST`,`/agents/import`,Vi),F(`GET`,`/agents`,vi),F(`PATCH`,`/agents/:slug/settings`,Wi),F(`GET`,`/agents/:slug/versions`,yi),F(`GET`,`/agents/:slug/versions/:version`,bi),F(`GET`,`/agents/:slug`,xi),F(`DELETE`,`/agents/:slug`,Gi,(e,t)=>ot(t,`Only an owner or admin can delete an agent.`)),F(`PUT`,`/agents/:slug`,Ki)],ja=[F(`GET`,`/credentials`,ut),F(`POST`,`/credentials`,Pt,xe),F(`POST`,`/credentials/:label/default`,Ht),F(`DELETE`,`/credentials/:label`,sr),F(`POST`,`/logins`,zr,U),F(`GET`,`/logins/:id`,Br,U),F(`POST`,`/logins/:id`,Vr,U),F(`DELETE`,`/logins/:id`,Hr,U)],Ma=[F(`GET`,`/runners`,Jn),F(`POST`,`/runners`,pe),F(`POST`,`/runners/pair`,Dn),F(`POST`,`/runners/:id/test`,it),F(`PATCH`,`/runners/:id`,Rt),F(`DELETE`,`/runners/:id`,Zt)],Na=[F(`GET`,`/composer`,Li),F(`GET`,`/tasks`,jt),F(`POST`,`/tasks`,We),F(`GET`,`/tasks/:id`,me),F(`DELETE`,`/tasks/:id`,Yt),F(`GET`,`/tasks/:id/logs`,En),F(`GET`,`/tasks/:id/stream`,qi),F(`POST`,`/tasks/:id/steer`,Kn),F(`POST`,`/tasks/:id/ask`,Ot),F(`POST`,`/tasks/:id/approve`,Rn),F(`POST`,`/tasks/:id/cancel`,Tt),F(`POST`,`/tasks/:id/archive`,Ve),F(`GET`,`/events`,Xi)],Pa=[F(`GET`,`/config`,yt),F(`PATCH`,`/config`,be),F(`PUT`,`/config`,Ie)],Fa=[F(`POST`,`/models/probe`,(e,t)=>ki(e,t)),F(`GET`,`/models`,ji),F(`POST`,`/models`,Mi),F(`DELETE`,`/models/:name`,Ni),F(`POST`,`/models/:name/alias`,Pi),F(`POST`,`/models/:name/disable`,Fi),F(`POST`,`/models/:name/enable`,Ii)],Ia=[F(`GET`,`/mcp-registry`,(e,t,n,r)=>ca(e,t,r))],La=M(`/operator`,[F(`GET`,`/apps`,ni),F(`POST`,`/apps/:integration`,ri),F(`GET`,`/audit`,ii)],Oe),Ra=[F(`GET`,`/flows`,un),F(`GET`,`/pulls`,It),F(`POST`,`/flows/:name/run`,Wn),F(`POST`,`/review`,kn)],za=M(`/admin`,[...Ea,...Da,...Oa,...ka,...Aa,...ja,...Ma,...Na,...Pa,...Fa,...Ia,...Ra,...La]).map(e=>({...e,guard:Mt(e.guard)})),Ba=[F(`GET`,`/connections/oauth/callback`,(e,t,n,r)=>Jt(e,t,r),ar),...Sa,...za,...xa,...Ta,...ba];async function Va(e,t,n){if(!hn(e,t))return k();let r=new URL(e.url);return n.scope instanceof Response?n.scope:(t=n.scope??t,await pt(Ba,e,t,r)??Vt(e,t,r))}const Ha=`x-coder-request-scope`;function Ua(e,{sessions:t,operators:n,cookies:r}){let i=e.auth;return i?{...e,auth:{...i,session(e,n){let a=JSON.stringify([...[`cookie`,`authorization`].map(t=>e.get(t)),!!n]),o=t.get(a);if(!o){let s=new Headers(e);s.delete(`x-coder-organization`),o=i.session(s,n,r),t.set(a,o)}let s=e.get(`x-coder-organization`);return s?o.then(e=>e&&(e.stale?e:Pn(e,s))):o},setOrganization:(e,t)=>i.setOrganization(e,t,r),operator(e){let t=e.get(`cookie`)??``,a=n.get(t);return a||(a=i.operator(e,r),n.set(t,a)),a}}}:e}function Wa(e,t,n){let r=t.requestScopes??=new Map,i=e.headers.get(Ha),a=n&&i?r.get(i):void 0;if(a)return{req:e,ctx:Ua(t,a),end(){}};let o=new Headers(e.headers);if(o.delete(Ha),!t.auth)return{req:i?new Request(e,{headers:o}):e,ctx:t,end(){}};let s=Dr(),c={sessions:new Map,operators:new Map,cookies:[]};return r.set(s,c),o.set(Ha,s),{req:new Request(e,{headers:o}),ctx:Ua(t,c),cookies:c.cookies,end:()=>r.delete(s)}}async function Ga(e,t,n={}){t.limits??=new Ce((t.now??Date.now)()),t.limits.requests++,t.settings??={},t.taskWatcher??=new Qi,t.logWatcher??=new ea,t.dashboardHosts??=new cn;let r=()=>Ka(e,t,n);return t.dbProfile?t.dbProfile.request(n.inProcess===!0,r):r()}async function Ka(e,t,n){let r=await se(e,de(new URL(e.url).pathname));if(r instanceof Response)return r;let i=Wa(r,t,n.inProcess===!0),a=!1;try{let r=n.clientIp??`unknown`,o=await et(i.req,i.ctx,r),s=qa(o instanceof Response?o:await Va(i.req,i.ctx,o),i.cookies),c=new URL(e.url).pathname.split(`/`),l=c[1]===`tasks`,u=c[1]===`admin`&&c[2]===`tasks`;if(e.method!==`GET`&&s.ok&&![`hooks`,`tasks`,`logins`].includes(c[1])&&!(o instanceof Response)){let e=o.scope instanceof Response?void 0:o.scope??i.ctx;e&&xn(e,e.organizationId)}return e.method!==`GET`&&s.ok&&!(l&&c.length===4&&c[2]&&[`heartbeat`,`logs`].includes(c[3]))&&!(u&&c.length===5&&c[3]&&[`steer`,`ask`,`approve`,`archive`].includes(c[4]))&&(l||u||c[1]===`admin`&&c[2]===`review`||c[1]===`admin`&&c[2]===`flows`&&c.length===5&&c[3]&&c[4]===`run`)&&Ee(t,u&&c.length===3&&e.method===`POST`),a=!!s.body&&(s.headers.get(`content-type`)??``).includes(`text/html`),a?Ja(s,i.end):s}finally{a||i.end()}}function qa(e,t=[]){if(!t.length)return e;let n=new Headers(e.headers);for(let e of t)n.append(`set-cookie`,e);return new Response(e.body,{status:e.status,statusText:e.statusText,headers:n})}function Ja(e,t){let n=e.body.getReader(),r=new ReadableStream({async pull(e){try{let{done:r,value:i}=await n.read();r?(t(),e.close()):e.enqueue(i)}catch(n){t(),e.error(n)}},cancel(e){return t(),n.cancel(e)}});return new Response(r,e)}async function Ya(e={}){let t=e.env??J.env,n=pr(t,e.host??`node`),r=e.runner??n.runner;if((e.host===`vercel`||t.VERCEL)&&(r===`local`||r===`local-docker`))throw new v(`invalid-option`,`The ${r} runner cannot run on Vercel.`,{hint:`Leave RUNNER unset to use vercel-sandbox.`});if(n.store===`memory`&&r!==`local`&&r!==`local-docker`)throw new v(`invalid-option`,`The ${r} runner needs a database.`,{hint:`Set DATABASE_URL, or use RUNNER=local for a memory server.`});if(!n.publicUrl)throw new v(`invalid-option`,`PUBLIC_URL is required to start a Coder server.`,{hint:`Set PUBLIC_URL to the address platforms and browsers use.`});let i=[];if(n.store===`memory`&&!e.local&&i.push(`test server, not for production: everything is in memory, nothing survives a restart, no sign-in; set DATABASE_URL for a real deployment`),!t.SERVER_ENCRYPTION_KEY&&!e.local&&i.push(`secrets are stored unencrypted; set SERVER_ENCRYPTION_KEY (openssl rand -base64 32)`),n.store===`postgres`&&!n.encryptionKey)throw new v(`invalid-option`,`SERVER_ENCRYPTION_KEY is required for a Postgres server.`,{hint:`Set SERVER_ENCRYPTION_KEY (openssl rand -base64 32); sign-in keys derive from it.`});let a=E(n.integrations),o=n.store===`memory`&&!n.adminToken?Er(18).toString(`base64url`):void 0;n.store===`postgres`&&n.adminToken&&i.push(`ADMIN_TOKEN is ignored with Postgres; owners and admins sign in with coder auth login`);let s={...n,...n.store===`postgres`?{adminToken:void 0}:{},...o?{adminToken:o}:{},...e.runner?{runner:e.runner}:{}},c=await st(s,{local:!!e.local});try{s.store===`memory`&&await G(c.store(c.defaultOrganizationId),Date.now());let n=c.connection&&s.auth?await(await import(`./auth-B3RiDPMI.js`)).createAuth(c.connection.db,s):void 0,r=e.cwd??J.cwd(),l=c.store(c.defaultOrganizationId),u=vr({kind:s.runner,workDir:s.workDir,config:s.runnerConfig,local:!(e.host===`vercel`||t.VERCEL),sandbox:{region:_r(s.databaseUrl),snapshots:gr(l)}});if(!u[s.runner])throw await c.close(),new v(`invalid-option`,`Runner ${s.runner} is not configured.`,{hint:`Set RUNNER_CONFIG to JSON containing url and secret.`});let d=new cn,f=new Ce,p=new sa,m=new Map,h=new Map,g=new Qi,_=new ea,y=t=>{let i=m.get(t);if(i)return i;let o=c.store(t),l=new Map,v={limits:f,...c.connection?{databaseHealth:async()=>{await c.connection.db.execute(Sr`select 1`)},statementTimeout:c.connection.statementTimeout}:{},config:s,settings:{registry:p},organizationId:t,integrations:a,runners:u,store:o,queue:c.queue,requestScopes:h,taskWatcher:g,logWatcher:_,dashboardHosts:d,dbProfile:c.connection?.profile,chatState:c.chatState,fileReads:l,repositoryLists:new Map,loadAgent:Ue(a,{cwd:r,config:s,store:o,fileReads:l}),...n?{auth:n}:{},scope:y,webhookTarget:(e,t)=>c.webhookTarget(e,t),appRecord:e=>c.appRecord(e),apps:e=>c.apps(e),installationOrganization:e=>c.installationOrganization(e),installations:e=>c.installations(e),serverOrganizationId:c.defaultOrganizationId,taskOrganization:(e,t)=>c.taskOrganization(e,t),...e.local?{local:e.local}:{}};return m.set(t,v),v};globalThis.__coder={handle:e=>Ga(e,y(c.defaultOrganizationId),{inProcess:!0})};let b=y(c.defaultOrganizationId),x;return e.local&&(await Xe(b),x=setImmediate(()=>{Ae(b).catch(()=>void 0)})),{config:s,context:y,defaultContext:b,warnings:i,...o?{mintedToken:o}:{},sweep:c.sweep,close:async()=>{p.close(),g.close(),_.close(),x&&clearImmediate(x),await b.local?.usageSync?.catch(()=>void 0),await $e(b),await c.close()}}}catch(e){throw await c.close(),e}}var Xa=e({serve:()=>no,serverHandler:()=>Qa});function Za(e){try{let t=new URL(e);return H.has(t.hostname)?Number(t.port||(t.protocol===`https:`?443:80)):void 0}catch{return}}function Qa(e=J.env,t=e.VERCEL?`vercel`:`node`){mr();let n,r=()=>n??=Ya({env:e,host:t}).catch(e=>{throw n=void 0,e});return Object.assign(async(t,n)=>{let i=await r(),a=n?e=>n(e):e=>void e.catch(()=>{}),o=e=>({...i.context(e),waitUntil:a,scope:o});return Ga(t,o(i.defaultContext.organizationId),{clientIp:e.VERCEL?t.headers.get(`x-forwarded-for`)?.split(`,`,1)[0]?.trim():void 0})},{scheduled:async()=>{let e=await r();await Promise.all([e.sweep(),ft(e.defaultContext,!1,!0),Gt(e.defaultContext)])},close:async()=>{let e=n;n=void 0,await(await e)?.close()}})}function $a(e){let t=wr(`lsof`,[`-nP`,`-iTCP:${e}`,`-sTCP:LISTEN`,`-t`],{encoding:`utf8`}),n=Number(t.stdout?.split(`
|
|
9
|
-
`)[0]);if(n)return{pid:n,command:wr(`ps`,[`-o`,`command=`,`-p`,String(n)],{encoding:`utf8`}).stdout?.trim().slice(0,120)||`another process`}}function eo(e){let t=$a(e),n=t&&/\bcoder (dash|server serve)\b/.test(t.command);return new v(`server`,t?n?`Coder is already running on port ${e} (pid ${t.pid}): http://localhost:${e}`:`Port ${e} is in use by ${t.command} (pid ${t.pid}).`:`Port ${e} is in use.`,{hint:t?`Stop it with \`kill ${t.pid}\`, or use another port: --port ${e+1}`:`Use another port: --port ${e+1}`})}async function to(e={}){mr();let t=e.env??J.env;if(e.runner&&!yr.includes(e.runner))throw new v(`invalid-option`,`Invalid --runner value: use ${yr.join(`, `)}`);if(e.port!==void 0&&(!Number.isInteger(e.port)||e.port<1||e.port>65535))throw new v(`invalid-option`,`Invalid port: use 1 through 65535.`);let n=t.PORT&&/^\d+$/.test(t.PORT)?Number(t.PORT):void 0,r=Za(t.PUBLIC_URL),i=e.port??n??r??8787;if(!Number.isInteger(i)||i<1||i>65535)throw new v(`invalid-option`,`Invalid PORT: use 1 through 65535.`);let a=t.PUBLIC_URL?t:{...t,PUBLIC_URL:`http://localhost:${i}`},o=!!(t.DATABASE_URL||t.POSTGRES_URL);if(o&&e.memory)throw new v(`invalid-option`,`A memory server cannot use DATABASE_URL.`,{hint:`Unset DATABASE_URL, or drop --memory.`});let s=(e.host??t.HOST??(o?void 0:`127.0.0.1`))?.replace(/^\[(.*)\]$/,`$1`),c=!o&&!e.memory;if(c&&!H.has(s))throw new v(`invalid-option`,`A local server listens on loopback only.`,{hint:`Reach it through a tunnel or a proxy on this machine; set DATABASE_URL for a deployment, or use --memory for a test server.`});if(e.memory&&t.VERCEL)throw new v(`invalid-option`,`A memory server cannot run on Vercel.`,{hint:`Set DATABASE_URL for a real deployment.`});let l,u,d=c?new Promise((e,t)=>{u=t,l=()=>{Pr().then(e,t)}}):void 0,f=d?.then(()=>void 0).catch(()=>void 0),p=c?{cwd:e.cwd??J.cwd(),port:i,cacheMaintenance:f}:void 0,m=await Ya({cwd:e.cwd,env:a,runner:e.runner,...p?{local:p}:{}}),h=m.defaultContext,g=()=>{m.sweep().catch(()=>{})};g();let _=setInterval(g,36e5);_.unref();let y=setInterval(()=>{ft(h,!1,!0).catch(()=>{}),Gt(h).catch(()=>{})},6e4);y.unref();let b=kr.createServer(ue((e,t)=>Ga(e,h,{clientIp:t}),{limit:de,admit:e=>o||Pe(e.socket.remoteAddress,e.url??`/`)})),x=m.config.publicUrl;r!==void 0&&r!==i&&m.warnings.push(`PUBLIC_URL points at port ${r} but the server listens on ${i}`),await new Promise((e,t)=>{b.once(`error`,t),b.listen(i,s,e)}).catch(async e=>{throw u?.(e),clearInterval(y),clearInterval(_),await m.close(),e.code===`EADDRINUSE`?eo(i):e});let ee=l?setTimeout(l,0):void 0,S=!1,C=async()=>{S||(S=!0,clearInterval(y),clearInterval(_),h.taskWatcher?.close(),h.logWatcher?.close(),await new Promise((e,t)=>b.close(n=>n?t(n):e())),await f,ee&&clearTimeout(ee),await m.close())},w=h.auth?`Wular Auth (${h.auth.issuer})`:void 0,T=`http://localhost:${i}`,E=ve(h),D=E===`local`?T:x,te=m.config.store===`memory`?m.mintedToken??t.ADMIN_TOKEN:void 0;return{address:T,publicUrl:x,warnings:m.warnings,close:C,runner:m.config.runner,store:m.config.store,mode:E,...d?{cacheMigration:d}:{},maxTasks:m.config.maxTasks??m.config.limits?.concurrentTasks??10,...w?{signIn:w}:{},...m.mintedToken?{mintedToken:m.mintedToken}:{},...m.config.store===`postgres`&&t.DATABASE_URL?{database:ct(t.DATABASE_URL)}:{},...H.has(new URL(D).hostname)?{dashboard:`${D}/dash${te?`#token=${encodeURIComponent(te)}`:``}`}:{}}}async function no(e={}){try{return await to(e)}catch(e){if(e instanceof v)throw e;let t=e instanceof Error&&e.cause instanceof Error?`: ${e.cause.message}`:``;throw new v(`server`,`${e instanceof Error?e.message:String(e)}${t}`)}}export{fa as a,la as i,Xa as n,ua as o,Qa as r,no as t};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{T as e}from"./dispatch-D3Dqxijf.js";import{i as t}from"./cli-D5hyqGq0.js";import{f as n,p as r,t as i}from"./output-BKeyLbvt.js";import{n as a,t as o}from"./args-CxsMr9Un.js";import s from"node:process";const c=t({name:`setup-host`,help:{usage:`coder setup-host [claude] [codex] [agents] [--json]`,summary:`Set up coder in your host: check engines and auth, seed the config, and
|
|
2
|
-
install the host plugin/skill for the named host(s). Claude Code gets its
|
|
3
|
-
marketplace plugin; "agents" installs a skill into ~/.agents/skills for
|
|
4
|
-
every host that reads the Agent Skills standard dir (Codex, Pi, OpenCode,
|
|
5
|
-
...). "codex" is an alias for agents. With no host, checks and seeds.`,examples:[[`coder setup-host claude`,`install the Claude Code plugin`],[`coder setup-host agents`,`install the skill into ~/.agents/skills (Codex, Pi, OpenCode, ...)`]]},options:{...o,codex:a,claude:a,agents:a},args:1/0,run:({options:t,args:n,cwd:r})=>e(r,{...t,hosts:n},()=>t.json||l()),print:u});function l(){s.stdout.write(`${r.bold(`Coder host setup`)}\n\n`)}function u(e){let t=r.bold,a=r.dim,{codex:o,claude:c,codexUpdate:l,config:u,configFile:d,claudePlugin:f,agentsSkill:p,ready:m}=e,h=[],g=o.available?o.loggedIn?n(`codex ${a(`${o.detail}; ${o.auth}`)}`):i(`codex not logged in ${a(`(${o.auth})`)} - run: codex login`):i(`codex CLI not installed - run: npm install -g @openai/codex`),_=c.available?c.loggedIn?n(`claude ${a(`${c.detail}; ${c.auth}`)}`):i(`claude not logged in - run: claude auth login`):i(`claude CLI not installed - run: npm install -g @anthropic-ai/claude-code`);h.push(t(`Available Engines`),g,_,` ${a(`custom models (local/provider endpoints): coder model --help`)}`),l?.updated?h.push(n(`codex ${a(`updated ${l.from} -> ${o.detail} (GPT-6 support)`)}`)):l&&h.push(i(`codex ${l.note}`)),h.push(``);let v=e=>{let t=u.engines?.[e]??{};return[t.model,t.effort,t.permissions].filter(Boolean).join(`/`)};h.push(t(`Config`),` chain: ${(u.chain??[]).join(` -> `)} codex: ${v(`codex`)} claude: ${v(`claude`)}`,` ${a(d)} ${a(`(coder config set <key> <value> to change)`)}`,``);let y=[[`claude plugin`,f??null],[`agents skill `,p??null]];for(let[e,t]of y)t&&h.push(t.installed?n(`${e} ${a(t.note)}`):i(`${e} ${t.note}`),``);h.push(m?n(`ready - try: coder run --wait "explain this repo's layout"`):i(`not ready - install an engine CLI to run tasks: codex (npm install -g @openai/codex, then codex login) or claude (npm install -g @anthropic-ai/claude-code, then claude auth login)`)),s.stdout.write(`${h.join(`
|
|
6
|
-
`)}\n`)}export{c as commandSetupHost};
|
package/dist/show-BeacgzZ0.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./cli-D5hyqGq0.js";import{g as n,p as r}from"./output-BKeyLbvt.js";import{i,n as a,s as o,t as s}from"./args-CxsMr9Un.js";import{isLocal as c}from"./list-ChFFjT_a.js";import l from"node:path";import u from"node:process";const d={server:i,workspace:o,yes:a};function f(e,t){return c(e)?{id:e.id,name:e.name,source:e.builtin?`builtin`:`repo`,...e.dir&&!e.builtin?{dir:l.relative(t,e.dir)}:{},definition:e.definition,...e.usage?{usage:e.usage}:{}}:{id:e.id,name:e.name,source:e.source,definition:e.definition,...e.settings?{usage:e.settings}:{}}}function p(e){let t=r,{definition:i,usage:a}=e,o=`dir`in e?e.dir:void 0,s=[[`name`,e.name],[`source`,o?`${e.source} (${o})`:e.source],[`description`,i.description],[`permissions`,a?.permissions??i.permissions],[`engine`,a?.engine??i.engine],[`model`,a?.model??i.model],[`effort`,a?.effort??i.effort]],c=Math.max(...s.map(([e])=>e.length))+2;for(let[e,n]of s)n&&u.stdout.write(`${t.dim(e.padEnd(c))}${n}\n`);let l=Object.entries(i.integrations).map(([e,t])=>{let n=a?.integrations?.[e],r=Array.isArray(t.events)?t.events:Object.keys(t.events??{}),i=n?.allowedEvents?r.filter(e=>n.allowedEvents.includes(e)):r,o=n?.allowedTools??t.tools;return{id:e,events:i.join(`, `)||`-`,tools:Array.isArray(o)?o.join(`, `):o??`-`}});u.stdout.write(`\n${n([{header:`integration`,value:e=>e.id,paint:e=>t.cyan(e)},{header:`events`,value:e=>e.events},{header:`tools`,value:e=>e.tools}],l,{style:t,border:!0})}`)}const m=e({name:`agent show`,help:{usage:`coder agent show <id> [--server [url]] [--json] [--cwd <dir>]`,summary:`Describe one agent as it will run here, or its active version on a server: its settings and per-integration events and tools.`,flags:[t],examples:[[`coder agent show coder`,`what the built-in agent listens to and may do`]]},options:{...s,...d},args:1,run:async({options:e,args:[t],cwd:n})=>{let{agents:r}=await import(`./agent-C1HI4JlI.js`).then(e=>e.t);return r.show(t,{...e,cwd:n,organization:e.workspace})},json:(e,{cwd:t})=>f(e,t),print:(e,{cwd:t})=>p(f(e,t))});export{m as commandAgentShow};
|
package/dist/show-D3OC0c35.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./cli-D5hyqGq0.js";import{g as t,p as n}from"./output-BKeyLbvt.js";import{n as r}from"./args-CxsMr9Un.js";import i from"node:process";function a(e){let r=n,a=[...Object.entries(e.events).map(([e,t])=>({kind:`event`,name:e,does:t})),...Object.entries(e.tools).map(([e,t])=>({kind:`tools`,name:e,does:t.join(`, `)}))];i.stdout.write(t([{header:`kind`,value:e=>e.kind,paint:e=>r.light(e)},{header:`name`,value:e=>e.name},{header:`does`,value:e=>e.does}],a,r))}const o=e({name:`agent integrations show`,globalFlags:{cwd:!1},help:{usage:`coder agent integrations show <id> [--json]`,summary:`Describe one integration: each event with what triggers it, and the tools each preset (observe, comment, write) allows.`,examples:[[`coder agent integrations show github`,`the GitHub integration in full`]]},options:{json:r},args:1,run:async({args:[e]})=>{let{agents:t}=await import(`./agent-C1HI4JlI.js`).then(e=>e.t);return t.integrations.show(e)},print:a});export{o as commandIntegrationsShow};
|
package/dist/slack-C_RlVDz7.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{An as e,Hn as t,In as n,Ln as r,Nn as i,Pn as a,Wn as o,jn as s,kn as c}from"./config-D2FxHWwi.js";import{t as l}from"./types-B42Oh0zF.js";import{createHash as u,createHmac as d,timingSafeEqual as f}from"node:crypto";import{isIP as ee}from"node:net";function p(e,t){let n=typeof e==`string`?Buffer.from(e):e,r=typeof t==`string`?Buffer.from(t):t;return n.length===r.length&&f(n,r)}const te=e=>u(`sha256`).update(e).digest(`base64url`),m=`https://api.github.com`;function h(e,t=`application/vnd.github+json`){return{accept:t,...e?{authorization:`Bearer ${e}`}:{},"user-agent":`coder`,"x-github-api-version":`2022-11-28`}}function g(e,t){return e.hook.before(`request`,e=>{e.request={...e.request,fetch:t}}),e}async function _(e,t=fetch){let[{createGitHubAdapter:n},{ConsoleLogger:r}]=await Promise.all([import(`./dist-C3wD7GfG.js`),import(`./dist-BTornX7Y.js`).then(e=>e.a)]);return g(n({...typeof e==`string`?{installationToken:e}:e,apiUrl:m,webhookVerifier:()=>!1,logger:new r(`error`)}).octokit,t)}const v=e=>t=>{if(!e.includes(t.status??0))throw t},y=e=>{let[t=``,n=``]=e.split(`/`);return{owner:t,repo:n}};async function ne(e,t,n,r){let i=await(await _(n)).repos.getContent({...y(e),path:t,...r?{ref:r}:{},mediaType:{format:`raw`}}).catch(v([404]));return typeof i?.data==`string`?i.data:void 0}async function re(e,t,n,r){let i=new URL(`${m}/repos/${e}/contents/${t}`);r.ref&&i.searchParams.set(`ref`,r.ref);let a=await r.fetch(i,{headers:{...h(n),...r.etag?{"if-none-match":r.etag}:{}}});if(a.status===304)return`unchanged`;let o=a.headers.get(`etag`)??void 0;if(a.status===404)return o?{etag:o}:{};if(!a.ok)throw Error(`GitHub answered ${a.status} reading ${e}/${t}`);let s=await a.json(),c=s.type===`file`&&s.encoding===`base64`?Buffer.from(s.content??``,`base64`).toString():void 0;return{...c===void 0?{}:{text:c},...o?{etag:o}:{}}}async function ie(e,t,n){let r=await(await _(n)).repos.getCommit({...y(e),ref:t,mediaType:{format:`sha`}}).catch(v([404,422]));return r?String(r.data).trim():void 0}async function ae(e,t,n,r){let i=await(await _(n)).repos.getContent({...y(e),path:t,...r?{ref:r}:{}}).catch(v([404]));return Array.isArray(i?.data)?i.data.map(e=>e.name):[]}async function oe(e,t=fetch){let n=[];for(let r=1;;r++){let i=await t(`${m}/installation/repositories?per_page=100&page=${r}`,{headers:{...h(e),authorization:`token ${e}`},signal:AbortSignal.timeout(1e4)});if(!i.ok)throw Error(`GitHub repositories failed: ${i.status}`);let a=await i.json();if(n.push(...a.repositories.map(e=>e.full_name)),n.length>=a.total_count||a.repositories.length<100)break}return[...new Set(n)]}async function se(e,t){let{data:n}=await(await _(t)).pulls.list({...y(e),state:`open`,sort:`created`,direction:`desc`,per_page:50});return n.map(e=>({number:e.number,title:e.title,author:e.user?.login,createdAt:e.created_at}))}async function ce(e,t){let{data:n}=await(await _(t)).repos.get(y(e));return{owner:n.owner.login,name:n.name,cloneUrl:n.clone_url,ref:n.default_branch,defaultBranch:n.default_branch}}async function le(e,t,n,r){let i=await(await _(n,r)).repos.getCollaboratorPermissionLevel({...y(e),username:t}).catch(()=>void 0);return[`admin`,`maintain`,`write`].includes(i?.data.permission??``)}function ue(e,t,n){let r=`https://github.com/${e}`;return t?`${r}/tree/${n??`HEAD`}/${t}`:r}var b=class extends Error{code;error;constructor(e,t,n){super(n??(t?`${e} (${t})`:e)),this.code=e,this.error=t}};const x={observe:[`read`],comment:[`read`,`comment`],write:[`read`,`comment`,`write`]},de=[`repos`,`pull_requests`,`issues`],fe=[`repos`,`issues`];function pe(e){return e?.type===`pull_request`||/^github:[^:]+:\d+(:|$)/.test(e?.chat?.thread.id??``)?de:fe}function me(e,t,n){let r=!e.some(e=>e!==`read`);return{name:`github`,command:`github-mcp-server`,args:[`stdio`,`--toolsets=${pe(t).join(`,`)}`,...r?[`--read-only`]:[]],env:{GITHUB_PERSONAL_ACCESS_TOKEN:n}}}function he(e,{name:t,description:n,permissions:r,events:i,isPublic:a=!1}){let o=e.replace(/\/$/,``);return{name:t,...n?{description:n}:{},url:o,hook_attributes:{url:`${o}/hooks/github`,active:!0},redirect_url:`${o}/create/github/callback`,callback_urls:[`${o}/install/github/callback`,`${o}/connect/github/callback`],request_oauth_on_install:!0,public:a,default_permissions:r,default_events:[...new Set([...i,`repository`])]}}function ge(e,t){let n=e?`https://github.com/organizations/${encodeURIComponent(e)}/settings/apps/new`:`https://github.com/settings/apps/new`;return t?`${n}?state=${encodeURIComponent(t)}`:n}async function _e(e,t=fetch){let n=await t(`${m}/app-manifests/${encodeURIComponent(e)}/conversions`,{method:`POST`,headers:h()});if(!n.ok)throw Error(`GitHub App manifest conversion failed: ${n.status}`);let r=await n.json(),i=r.app_id??r.id;if(!i||!r.slug||!r.pem||!r.webhook_secret||!r.client_id||!r.client_secret)throw Error(`GitHub App manifest conversion response was incomplete`);return{appId:String(i),slug:r.slug,privateKey:r.pem,webhookSecret:r.webhook_secret,clientId:r.client_id,clientSecret:r.client_secret,...r.owner?.login?{owner:{login:r.owner.login,type:r.owner.type}}:{}}}const S=`https://github.com/login/oauth`,C=e=>`${e.replace(/\/$/,``)}/install/github/callback`;function w(e){let{clientId:t,clientSecret:n}=e;if(!t||!n)throw Error(`This GitHub App has no OAuth client; create it again from the dashboard`);return{clientId:t,clientSecret:n}}async function T(e,t,n,r){let{clientId:i,clientSecret:a}=w(e),o=await n(`${S}/access_token`,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({client_id:i,client_secret:a,...t})}),s=await o.json().catch(()=>({}));if(!o.ok||!s.access_token)throw new b(`platform-error`,s.error??String(o.status),`GitHub authorization failed: ${s.error??o.status}`);return{accessToken:s.access_token,...s.refresh_token?{refreshToken:s.refresh_token}:{},...s.expires_in?{expiresAt:r+s.expires_in*1e3}:{}}}async function ve(e,t){let n=await t(`${m}/user`,{headers:h(e)}),r=await n.json().catch(()=>({}));if(!n.ok||!r.id||!r.login)throw Error(`GitHub user lookup failed: ${n.status}`);return{id:r.id,login:r.login}}async function ye(e,t,n,r=fetch){for(let i=1;i<=10;i++){let a=await r(`${m}/user/installations?per_page=100&page=${i}`,{headers:h(e)});if(!a.ok)throw Error(`GitHub installation check failed: ${a.status}`);let o=(await a.json()).installations??[],s=o.find(e=>String(e.id)===n&&String(e.app_id)===t);if(s)return{login:s.account?.login??`unknown`,...s.account?.type?{type:s.account.type}:{}};if(o.length<100)return}}async function E(e){let{createAppAuth:t}=await import(`./dist-node-Bv1kCqyi.js`).then(e=>e.n),{token:n}=await t({appId:e.appId,privateKey:e.privateKey})({type:`app`});return n}async function be(e,t,n=fetch){let r=await E(e),i=await n(`${m}/app/installations/${encodeURIComponent(t)}`,{headers:h(r)});if(i.status===404)return!1;if(!i.ok)throw Error(`GitHub installation lookup failed: ${i.status}`);return!0}async function D(e,t,n,r){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw new b(`missing-code`);let a=await T(t,{code:i,...n?{redirect_uri:n}:{}},r,Date.now()),o=await ve(a.accessToken,r);return{id:String(o.id),login:o.login,token:JSON.stringify(a),accessToken:a.accessToken}}const xe={authorizeUrl(e,{publicUrl:t,state:n}){let r=new URLSearchParams({client_id:w(e).clientId,redirect_uri:`${t.replace(/\/$/,``)}/connect/github/callback`,state:n});return`${S}/authorize?${r}`},async exchange(e,t,{publicUrl:n,fetch:r}){let{accessToken:i,...a}=await D(e,t,`${n.replace(/\/$/,``)}/connect/github/callback`,r);return a},async access(e,t,{fetch:n,now:r}){let i=JSON.parse(e);if(!i.expiresAt||i.expiresAt-3e5>r||!i.refreshToken)return{accessToken:i.accessToken};let a=await T(t,{grant_type:`refresh_token`,refresh_token:i.refreshToken},n,r);return{accessToken:a.accessToken,refreshed:JSON.stringify(a)}}};function Se(e){return Array.isArray(e)?l.find(t=>e.every(e=>x[t].includes(e)))??`write`:e}const Ce={observe:{metadata:`read`,contents:`read`,pull_requests:`read`,issues:`read`},comment:{metadata:`read`,contents:`read`,pull_requests:`write`,issues:`write`},write:{metadata:`read`,contents:`write`,pull_requests:`write`,issues:`write`}};function O(e=`observe`){return{...Ce[Se(e)]}}const we={pull_request:`pull_request`,issue:`issues`,comment:`issue_comment`,mention:`issue_comment`};function Te(e){let t=e.map(e=>we[e]).filter(e=>!!e);return[...new Set([...t,`push`])]}function k(e,t,n,r){let i=t.integrations.github??{},a=Array.isArray(i.events)?i.events:Object.keys(i.events??{});return he(e,{name:t.name??n,description:t.description,permissions:O(i.tools),events:Te(a),isPublic:r})}const A=(e,t)=>t?.type===`Organization`?`https://github.com/organizations/${encodeURIComponent(t.login)}/settings/apps/${e}`:`https://github.com/settings/apps/${e}`,j={read:1,write:2,admin:3},Ee={read:`Read-only`,write:`Read and write`,admin:`Admin`},M=e=>e[0].toUpperCase()+e.slice(1).replaceAll(`_`,` `);async function De(e,t,{publicUrl:n,definition:r,fetch:i}){let a=await i(`${m}/app`,{headers:h(await E(t))});if(!a.ok)throw Error(`GitHub app lookup failed: ${a.status}`);let o=await a.json(),s=k(n,r,e.agent),c=new Set(o.events??[]),l=o.permissions??{},u=[];s.name!==o.name&&u.push({text:`Rename the app to **${s.name}**`,copy:s.name});let d=s.description??``;d!==(o.description??``)&&u.push(d?{text:`Set the **Description**`,copy:d}:{text:`Clear the **Description**`});for(let[e,t]of Object.entries(s.default_permissions))(j[l[e]??``]??0)<(j[t]??0)&&u.push({text:`Set **${M(e)}** to **${Ee[t]??t}**`});for(let e of s.default_events)c.has(e)||u.push({text:`Check the **${M(e)}** event`});for(let e of c)s.default_events.includes(e)||u.push({text:`Uncheck the **${M(e)}** event`});let f=o.owner?.login?{login:o.owner.login,type:o.owner.type}:t.owner;return{url:`${A(o.slug??t.slug,f)}/permissions`,label:`Open app settings`,lines:u}}const Oe={builtin:`shared`,postOrigins:[`https://github.com`],createPost({publicUrl:e,state:t,definition:n,encodedState:r}){let i=k(e,n,t.agent,t.public===!0);return{url:ge(t.owner,r),fields:{manifest:JSON.stringify(i)}}},async createCallback(e,{fetch:t}){let n=new URL(e.url).searchParams.get(`code`);if(!n)throw new b(`missing-code`);let r=await _e(n,t),i={appId:r.appId,slug:r.slug,privateKey:r.privateKey,webhookSecret:r.webhookSecret,clientId:r.clientId,clientSecret:r.clientSecret,...r.owner?{owner:r.owner}:{}};return{platformAppId:r.appId,name:r.slug,credentials:i}},accountUrl:({login:e})=>`https://github.com/${encodeURIComponent(e)}`,settingsUrl(e,t){let{slug:n,owner:r}=t;return r?A(n,r):void 0},drift:(e,t,n)=>De(e,t,n),installUrl(e,t,{publicUrl:n,state:r,installation:i}){let{slug:a}=t;if(!i)return`https://github.com/apps/${a}/installations/new?state=${encodeURIComponent(r)}`;let o=new URLSearchParams({client_id:w(t).clientId,redirect_uri:C(n),state:r});return`${S}/authorize?${o}`},async installedApp(e,{apps:t,fetch:n}){let r=new URL(e.url).searchParams.get(`installation_id`);if(!(!r||!/^\d+$/.test(r))){for(let{app:e,credentials:i}of t)if(await be(i,r,n).catch(t=>(console.error(`coder server: asking GitHub whether ${e.id} owns installation ${r} failed`,t),!1)))return{app:e,installation:r}}},async installCallback(e,{credentials:t,publicUrl:n,fetch:r,installation:i}){let a=i??new URL(e.url).searchParams.get(`installation_id`);if(!a)throw new b(`missing-code`);let{accessToken:o,...s}=await D(e,t,i?C(n):void 0,r),c=await ye(o,t.appId,a,r);if(!c)throw new b(`not-yours`);return{platformInstallId:a,account:c,installer:s.id,user:s}}};function N(e){return e&&typeof e==`object`?e:{}}function P(e){return e?.agent===!0||e?.type===`Bot`||e?.login?.endsWith(`[bot]`)===!0}function F(e,t){return[e,t].filter(e=>!!e).join(`
|
|
2
|
-
|
|
3
|
-
`)}const ke=[`OWNER`,`MEMBER`],Ae=[`issue_comment`,`pull_request_review_comment`,`ping`];function I(e){try{return JSON.parse(e)}catch{return}}function L(e,t,n){if(!n||!t?.startsWith(`sha256=`))return!1;let r=Buffer.from(d(`sha256`,n).update(e).digest(`hex`),`hex`);return p(Buffer.from(t.slice(7),`hex`),r)}function R(e,t,n,r,i){let a=n.installation?.id,o=z(n,i.headSha),s=i.user??n.sender;if(a===void 0||!o||!i.number)return;let c=s?.author_association;return{integration:`github`,type:r,appId:t.id,installationId:String(a),deliveryId:e.headers.get(`x-github-delivery`)??``,actor:{id:String(s?.id??s?.login??``),...s?.login?{login:s.login}:{},...c?{role:c}:{},...P(s)?{agent:!0}:{}},text:i.body??``,repo:o,chat:{thread:B(`${o.owner}/${o.name}`,i.number,i.kind===`pull`)}}}function z(e,t){let n=e.repository;return n?.owner?.login&&n.name&&n.clone_url&&n.default_branch?{owner:n.owner.login,name:n.name,cloneUrl:n.clone_url,ref:t??n.default_branch,defaultBranch:n.default_branch}:void 0}function B(e,t,n){return{_type:`chat:Thread`,adapterName:`github`,channelId:`github:${e}`,id:`github:${e}:${n?``:`issue:`}${t}`,isDM:!1}}function je(e,t,n,r){let i=N(t),a=e.headers.get(`x-github-event`);if(a===`pull_request`){let t=i.pull_request,a=i.action??``,o=i.requested_reviewer?.login?.toLowerCase();if(!t||![`opened`,`synchronize`,`reopened`,`ready_for_review`,`review_requested`].includes(a)||a===`review_requested`&&o!==`${r.slug}[bot]`.toLowerCase()||t.draft||a!==`review_requested`&&P(t.user)||!t.number||!t.head?.sha||!t.base?.sha)return[];let s=R(e,n,i,`pull_request`,{user:i.sender??t.user,body:F(t.title,t.body),number:t.number,kind:`pull`,headSha:t.head.sha});return s?[s]:[]}if(a===`issues`){let t=i.issue;if(!t||![`opened`,`edited`].includes(i.action??``)||P(i.sender??t.user)||!t.number)return[];let r=R(e,n,i,`issue`,{user:i.sender??t.user,body:F(t.title,t.body),number:t.number});return r?[r]:[]}return[]}async function Me(e,t,n={},r){let{token:i,expiresAt:a}=await(await _({appId:e.appId,privateKey:e.privateKey,installationId:Number(t)},r)).auth({type:`installation`,installationId:t,...n.repositories?{repositoryNames:n.repositories}:{},...n.permissions?{permissions:n.permissions}:{}});return{token:i,expiresAt:Date.parse(a)}}function Ne(e,t){let{appId:n,privateKey:r}=e,{repositories:i,permissions:a}=V(t);return u(`sha256`).update(JSON.stringify([n,r,i?[...i].sort():null,a?Object.entries(a).sort():null])).digest(`base64url`)}const Pe={installation:[`created`,`deleted`,`suspend`,`unsuspend`,`new_permissions_accepted`],installation_repositories:[`added`,`removed`],repository:[`created`,`deleted`,`renamed`]};function Fe(e,t,n){let r=N(t),i=r.installation?.id,a=r.action;if(i===void 0||!Pe[e??``]?.includes(a??``))return;let o=r.installation?.account,s=Date.now(),c=e===`installation`&&(a===`deleted`||a===`suspend`);return{op:c?`delete`:`upsert`,...e===`repository`&&r.repository?.full_name?{repos:{add:a===`created`||a===`renamed`?[r.repository.full_name]:[],remove:a===`deleted`?[r.repository.full_name]:a===`renamed`&&r.changes?.repository?.name?.from?[`${r.repository.full_name.split(`/`)[0]}/${r.changes.repository.name.from}`]:[]}}:{},...e===`installation_repositories`?{repos:{...r.repository_selection&&(a===`removed`?!r.repositories_removed?.length:!r.repositories_added?.length)?{refresh:!0}:{},add:(r.repositories_added??[]).flatMap(e=>e.full_name?[e.full_name]:[]),remove:(r.repositories_removed??[]).flatMap(e=>e.full_name?[e.full_name]:[])}}:{},installation:{integration:`github`,id:`${n.id}:${i}`,app:n.id,account:{login:o?.login??r.repository?.owner?.login??`unknown`,...o?.type?{type:o.type}:{}},createdAt:s,...r.repositories?{repos:r.repositories.flatMap(e=>e.full_name?[e.full_name]:[])}:{},...c?{deletedAt:s}:{}}}}function Ie(e,t){let n=N(e),r=n.repository?.full_name,i=t.branch??n.repository?.default_branch;if(!r||r!==t.agentsRepo||!i||n.ref!==`refs/heads/${i}`||!n.after||!n.commits)return;let a=[...new Set(n.commits.flatMap(e=>[...e.added??[],...e.modified??[],...e.removed??[]]))].filter(e=>e.startsWith(`.coder/agents/`));return a.length?{repo:r,ref:n.after,branch:i,paths:a}:void 0}function Le(e,t){let n=N(e),r=n.repository?.full_name,i=n.ref?.startsWith(`refs/heads/`)&&n.ref.slice(11),a=n.installation?.id;if(!r||!i||a===void 0)return;let o=n.commits??[],s=o.flatMap(e=>[...e.added??[],...e.modified??[],...e.removed??[]]);if(!(o.length&&o.length<2048&&!s.some(e=>e.startsWith(`.coder/`))))return{installation:`${t.id}:${a}`,repo:r,branch:i,...n.repository?.default_branch?{defaultBranch:n.repository.default_branch}:{}}}function V(e={}){return{...e.repo?{repositories:[e.repo.name]}:{},...e.tools?{permissions:O(e.tools)}:{}}}const Re={id:`github`,brand:{color:`#000000`,icon:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`,dark:`#fff`,svg:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 96" fill="none" style="color:light-dark(#000,#fff)"><g clip-path="url(#github-mark-4)"><path d="M 41.44 69.38 C 28.81 67.85 19.91 58.76 19.91 46.99 C 19.91 42.21 21.63 37.04 24.5 33.59 C 23.26 30.43 23.45 23.73 24.88 20.96 C 28.71 20.48 33.88 22.49 36.94 25.27 C 40.58 24.12 44.41 23.54 49.1 23.54 C 53.79 23.54 57.61 24.12 61.06 25.17 C 64.03 22.49 69.29 20.48 73.12 20.96 C 74.46 23.54 74.65 30.24 73.4 33.5 C 76.47 37.13 78.09 42.01 78.09 46.99 C 78.09 58.76 69.19 67.66 56.37 69.29 C 59.62 71.39 61.82 75.99 61.82 81.25 L 61.82 91.21 C 61.82 94.08 64.22 95.7 67.09 94.55 C 84.41 87.95 98 70.63 98 49.19 C 98 22.11 75.99 0 48.9 0 C 21.82 0 0 22.11 0 49.19 C 0 70.44 13.49 88.05 31.68 94.65 C 34.26 95.61 36.75 93.88 36.75 91.3 L 36.75 83.64 C 35.41 84.22 33.69 84.6 32.16 84.6 C 25.84 84.6 22.11 81.16 19.43 74.74 C 18.38 72.16 17.23 70.63 15.03 70.34 C 13.88 70.25 13.49 69.77 13.49 69.19 C 13.49 68.04 15.41 67.18 17.32 67.18 C 20.1 67.18 22.49 68.91 24.98 72.45 C 26.89 75.22 28.9 76.47 31.29 76.47 C 33.69 76.47 35.22 75.61 37.42 73.4 C 39.05 71.78 40.29 70.34 41.44 69.38 Z" fill="black" style="fill:currentColor"/></g><defs><clipPath id="github-mark-4"><rect width="98" height="96" fill="white"/></clipPath></defs></svg>`},name:`GitHub`,featured:!0,description:`Pull requests, issues, and comments on GitHub repositories`,installLabel:`Connect GitHub`,use:`Mention @{handle} in an issue or pull request.`,organizationApps:!0,publicApps:!0,hint:`Cite repository file paths when discussing code. After making changes, link the pull request.`,sample:`github:owner/repo:1`,author:e=>`${e}[bot]`,events:{mention:{description:`Comment from a repo owner or org member mentioning @<agent>; text has the mention stripped.`,on:`mention`,addressed:!0},pull_request:{description:`Opened, updated, or ready non-draft pull request.`},issue:{description:`Opened or edited issue.`},comment:{description:`New non-agent issue or pull-request comment.`,on:`message`,noisy:!0}},tools:{presets:x,server:me,install:`arch=$(uname -m); [ "$arch" = aarch64 ] && arch=arm64; curl -fsSL "https://github.com/github/github-mcp-server/releases/latest/download/github-mcp-server_Linux_$arch.tar.gz" | tar -xz -C /usr/local/bin github-mcp-server`,installHosts:[`github.com`,`release-assets.githubusercontent.com`]},hosts:[`github.com`,`api.github.com`,`codeload.github.com`],get app(){return Oe},auth:{token:async(e,t,n,{fetch:r,hold:i}={})=>{let a=()=>Me(t,e.id.split(`:`).pop(),V(n),r);return i?i(Ne(t,n),a):(await a()).token},get user(){return xe},canWrite:async(e,t,n)=>!!(e.repo&&e.actor.login)&&le(`${e.repo.owner}/${e.repo.name}`,e.actor.login,t,n)},repos:{cloneHosts:[`github.com`],credentialUsername:`x-access-token`,readFile:ne,revalidate:re,listDir:ae,commit:ie,list:(e,t,n)=>oe(t,n),get:ce,url:ue,pullRequests:se,pullRequest:e=>{let t=/^github:[^:]+:(\d+)(?::|$)/.exec(e.chat?.thread.id??``);return t?Number(t[1]):void 0},pullRequestThread:(e,t)=>B(e,t,!0)},target(e,t){let n=e.headers.get(`x-github-hook-installation-target-id`);if(!n)return;let r=N(I(t)),i=z(r);return{app:n,...r.installation?.id===void 0?{}:{installation:String(r.installation.id)},...i?{repo:i}:{}}},adapter:async e=>(await import(`./adapter-sKt1J1Cm.js`)).githubAdapter(e),link(e){let t=/^github:([^:]+):(issue:)?(\d+)(?::|$)/.exec(e.chat?.thread.id??``);return t?`https://github.com/${t[1]}/${t[2]?`issues`:`pull`}/${t[3]}`:void 0},ownEvents(e,t,n,r){let i=e.headers.get(`x-github-event`);if(!i||Ae.includes(i))return;let{webhookSecret:a,slug:o}=r;if(!L(t,e.headers.get(`x-hub-signature-256`),a))return{invalid:!0};let s=I(t),c=Fe(i,s,n);if(c)return{installation:c};let l=Ie(s,n),u=i===`push`?Le(s,n):void 0;return l?{changes:l,...u?{pushed:u}:{}}:u?{pushed:u}:{events:je(e,s,n,{slug:o})}},event(e,t,n){let r=n.raw.comment?.author_association;return{type:e===`mention`&&!ke.includes(r??``)?`comment`:e,actor:{id:n.author.userId,login:n.author.userName,...r?{role:r}:{}}}}};async function ze(e,t,n=fetch){let r=e.within??e.installationId;if(!r||!e.actor.id)throw Error(`Slack event has no workspace or actor`);let i=await n(`https://slack.com/api/users.info`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({user:e.actor.id,team_id:r}),redirect:`error`,signal:AbortSignal.timeout(5e3)}),a=await i.json(),o=a.user;if(!i.ok||a.ok!==!0||!o)throw Error(`Slack returned no valid workspace member`);return o.id===e.actor.id&&o.deleted===!1&&o.is_bot===!1&&o.is_restricted===!1&&o.is_ultra_restricted===!1&&(o.is_external===void 0||o.is_external===!1)&&(o.team_id===r||Array.isArray(o.enterprise_user?.teams)&&o.enterprise_user.teams.includes(r))}const H=[`channels:history`,`groups:history`,`im:history`,`mpim:history`],U=[`channels:read`,`groups:read`,`im:read`,`mpim:read`],W={"conversations.history":H,"conversations.replies":H,"conversations.info":U,"conversations.list":U,"users.info":[`users:read`],"users.list":[`users:read`],"reactions.get":[`reactions:read`]},G={"chat.postMessage":[`chat:write`],"reactions.add":[`reactions:write`]},K={"chat.postMessage":`thread_ts`,"reactions.add":`timestamp`},q={...W,...G};async function Be(e,t,n={}){let r=e.tools??[];if(!r.includes(t)||!q[t])throw Error(`Slack method ${t} is not allowed for this task; allowed: ${r.join(`, `)||`none`}`);if(t in G){let[,r,i]=(e.scope?.thread??``).split(`:`);if(!r||n.channel!==r)throw Error(`This task may only write to its connected channel.`);let a=Object.hasOwn(K,t)?K[t]:void 0;if(!i||!a||n[a]!==i||n.reply_broadcast)throw Error(`This task may only write to its triggering thread.`)}let i=e.scope?.within,{callSlackApi:a}=await import(`./api-qdpx8FD0.js`),o=await a(t,i?{...n,team_id:i}:n,{token:e.token,fetch:e.fetch,contentType:`json`});if(o.error===`missing_scope`)throw Error(`Slack method ${t} needs the ${q[t].join(` or `)} scope, which this app does not have`);if(!o.ok)throw Error(`Slack ${t} failed: ${o.error}`);return o}const Ve={slack_api:{description:`Call a Slack Web API method, such as conversations.replies or chat.postMessage, with its JSON arguments. Only the methods this task allows work; others fail with the allowed list.`,inputSchema:{type:`object`,properties:{method:{type:`string`},args:{type:`object`}},required:[`method`]},handler:(e,t)=>Be(t,String(e.method??``),e.args??{})}};function J(e){return e.replace(/\/$/,``)}function He(e,{name:t,description:n,scopes:r,events:i,extras:a}){let o=J(e),s=new URL(o).hostname;return{display_information:{name:t,...n?{description:n.slice(0,140)}:{}},features:{bot_user:{display_name:t,always_online:!0},app_home:{home_tab_enabled:!0,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},...s.includes(`.`)&&!ee(s)?{unfurl_domains:[s]}:{},...a},oauth_config:{redirect_urls:[`${o}/install/slack/callback`],scopes:{bot:r}},settings:{org_deploy_enabled:!0,event_subscriptions:{request_url:`${o}/hooks/slack`,bot_events:i},interactivity:{is_enabled:!0,request_url:`${o}/hooks/slack`}}}}async function Y(e,t,n,r){let{assertSlackOk:i,callSlackApi:a}=await import(`./api-qdpx8FD0.js`),o=await a(e,t,{token:n,fetch:r});return i(e,o),o}async function Ue(e,t,n=fetch){let r=await Y(`apps.manifest.create`,{manifest:JSON.stringify(t)},e,n);return{appId:r.app_id,clientId:r.credentials.client_id,clientSecret:r.credentials.client_secret,signingSecret:r.credentials.signing_secret}}const X=e=>Ye(e.integrations.slack?.tools);function Z(e,t,n){let r=n.integrations.slack??{},i=Array.isArray(r.events)?r.events:Object.keys(r.events??{});return He(e,{name:t,description:n.description,scopes:X(n),events:Ze(i),extras:Qe(e,n)})}async function Q(e,t=fetch){let n=await t(`https://slack.com/api/tooling.tokens.rotate`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({refresh_token:e})}),r=await n.json();if(!n.ok||!r.ok||!r.token||!r.refresh_token)throw new b(`platform-error`,r.error??String(n.status));return{configToken:r.token,configRefreshToken:r.refresh_token,configTokenExpires:(r.exp??0)*1e3}}function We(e,t,n,r=[]){let i=new URLSearchParams({client_id:e.clientId,state:n,redirect_uri:`${J(t)}/install/slack/callback`});return r.length&&i.set(`scope`,r.join(`,`)),`https://slack.com/oauth/v2/authorize?${i}`}async function Ge(e,t,n,r=fetch){let i=await r(`https://slack.com/api/oauth.v2.access`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({client_id:t.clientId,client_secret:t.clientSecret,code:e,redirect_uri:`${J(n)}/install/slack/callback`})}),a=await i.json(),o=a.is_enterprise_install===!0,s=o?a.enterprise:a.team;if(!i.ok||!a.ok||!a.access_token||!s?.id||!s.name)throw new b(`platform-error`,a.error??String(i.status));return{id:s.id,name:s.name,org:o,accessToken:a.access_token,...a.authed_user?.id?{installer:a.authed_user.id}:{}}}async function Ke(e,t){let n=[],r=``;do{let i=await Y(`auth.teams.list`,{limit:1e3,...r?{cursor:r}:{}},e,t);n.push(...i.teams.map(e=>e.id)),r=i.response_metadata?.next_cursor??``}while(r);return n}const qe={builtin:`own`,createStep:()=>({intro:`Coder creates the Slack app with a configuration token and installs its bot in the token's whole workspace.`,link:`https://api.slack.com/apps`,steps:[{text:`Under **Your App Configuration Tokens**, click **Generate Token** and pick the workspace the agent should join.`},{text:`Paste the refresh token below, then approve the install when Slack asks.`}],notes:[`A workspace that requires app approval sends the install to its admins first. In Enterprise Grid, only an org admin can install org-wide.`,`To install the app in other Slack workspaces, click **Activate Public Distribution** under the app's **Manage Distribution**.`],fields:[{name:`refreshToken`,label:`Refresh token`,hint:`Starts with xoxe-1-.`,placeholder:`xoxe-1-…`,required:!0}],submit:`Create Slack app`}),async createCallback(e,{publicUrl:t,state:n,definition:r,fetch:i}){let a=new URLSearchParams(await e.text()).get(`refreshToken`);if(!a)throw Error(`Missing refresh token`);if(a.startsWith(`xoxe.xoxp-`))throw new b(`invalid-field`,`access-token`,`That is the access token, xoxe.xoxp-…. Paste the refresh token next to it, which starts with xoxe-1-.`);if(!a.startsWith(`xoxe-1-`))throw new b(`invalid-field`,`refresh-token`,`That is not a refresh token; they start with xoxe-1-. Copy it from Your App Configuration Tokens.`);let o=await Q(a,i),s=r.name??n.agent,c=await Ue(o.configToken,Z(t,s,r),i);return{platformAppId:c.appId,name:s,credentials:{...c,...o,scopes:X(r)}}},manifest:(e,{publicUrl:t,definition:n})=>Z(t,e.name,n),async update(e,t,{publicUrl:n,definition:r,fetch:i,saveCredentials:a}){let o=t;if(!o.configRefreshToken)return;(!o.configToken||(o.configTokenExpires??0)<=Date.now()+6e4)&&(o={...o,...await Q(o.configRefreshToken,i)},await a(o)),await Y(`apps.manifest.update`,{app_id:o.appId,manifest:JSON.stringify(Z(n,e.name,r))},o.configToken,i);let s=X(r);s.join()!==o.scopes?.join()&&await a({...o,scopes:s})},settingsUrl:(e,t)=>`https://api.slack.com/apps/${encodeURIComponent(t.appId)}`,installUrl(e,t,{publicUrl:n,state:r}){let i=t;return We(i,n,r,i.scopes??Ye(`write`))},async installCallback(e,{app:t,credentials:n,publicUrl:r,fetch:i}){let a=new URL(e.url).searchParams.get(`code`);if(!a)throw new b(`missing-code`);let o=await Ge(a,n,r,i),s=await Y(`auth.test`,{},o.accessToken,i).then(e=>e.url?.replace(/\/$/,``)).catch(()=>void 0),c=o.org?await Ke(o.accessToken,i).catch(()=>null):void 0;return{platformInstallId:o.id,account:{login:o.name,...o.org?{type:`Organization`}:{},...s?{url:s}:{}},token:o.accessToken,...o.org?{covers:c}:{},installer:o.installer,...o.installer?{user:{id:o.installer}}:{}}}},Je=[`app_mentions:read`,`channels:history`,`groups:history`,`im:history`,`channels:read`,`users:read`,`reactions:read`,`commands`,`links:read`,`links:write`];function Ye(e=`observe`){let t=new Set(Object.keys(W));return(Array.isArray(e)?e.every(e=>t.has(e)):e===`observe`)?[...Je]:[...Je,`chat:write`,`reactions:write`,`im:write`,`assistant:write`]}const Xe={mention:[`app_mention`],message:[`message.channels`,`message.groups`,`message.im`],reaction:[`reaction_added`]};function Ze(e){return[...new Set(e.flatMap(e=>Xe[e]??[])),`team_access_granted`,`team_access_revoked`,`app_home_opened`,`link_shared`]}function Qe(e,t){return{slash_commands:[{command:`/setup`,url:`${e.replace(/\/$/,``)}/hooks/slack`,description:`Configure this agent`,usage_hint:`repo owner/name | model <name> | show`}],agent_view:{agent_description:t.description??`${t.name??`Coder`} in your workspace.`}}}const $e=n({type:r(t()),team_id:r(t()),enterprise_id:r(t()),is_enterprise_install:r(o([s(),t()])),api_app_id:r(t()),challenge:r(t()),authorizations:r(e(n({user_id:r(t()),team_id:r(a(t())),enterprise_id:r(a(t())),is_enterprise_install:r(s())})))}),et=n({enterprise_id:r(t()),authorizations:r(e(n({enterprise_id:r(t())}))),event:n({type:c([`team_access_granted`,`team_access_revoked`]),team_ids:e(t())})}),tt=n({type:i(`app_home_opened`),user:t(),tab:i(`home`)}),nt=n({type:i(`link_shared`),channel:t(),message_ts:t(),unfurl_id:r(t()),source:r(t()),links:e(n({url:t()}))}),rt=`link:`,it=n({type:i(`block_actions`),actions:e(n({action_id:t()}))});function $(e){try{return JSON.parse(e)}catch{let t=new URLSearchParams(e),n=t.get(`payload`);if(!n)return Object.fromEntries(t);try{return JSON.parse(n)}catch{return{}}}}function at(e,t){let n=tt.safeParse(e.event).data;if(n)return{work:async e=>(await import(`./views-BhsnL0nr.js`)).publishHome(e,n.user)};let r=nt.safeParse(e.event).data;if(r)return{work:async e=>(await import(`./views-BhsnL0nr.js`)).unfurl(e,r)};let i=it.safeParse(e).data?.actions;if(i?.length&&i.every(e=>e.action_id.startsWith(`link:`)))return{ack:!0};if(e.type&&e.type!==`event_callback`&&e.type!==`url_verification`)return{unhandled:`Slack interaction ${e.type}`};let a=et.safeParse(e).data,o=a?.enterprise_id??a?.authorizations?.[0]?.enterprise_id;if(!a||!o)return;let s=a.event.team_ids;return{covers:{installation:`${t}:${o}`,...a.event.type===`team_access_granted`?{add:s}:{remove:s}}}}function ot(e,t,n){let r=e.headers.get(`x-slack-request-timestamp`)??``;if(!n||!(Math.abs(Date.now()/1e3-Number(r))<=300))return!1;let i=`v0=${d(`sha256`,n).update(`v0:${r}:${t}`).digest(`hex`)}`;return p(e.headers.get(`x-slack-signature`)??``,i)}const st={id:`slack`,brand:{color:`#E3066A`,icon:`M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400"><g><path d="M 84.04 252.77 c 0 23.13 -18.89 42.02 -42.02 42.02 S 0 275.9 0 252.77 s 18.89 -42.02 42.02 -42.02 h 42.02 v 42.02 Z" fill="#e3066a"/><path d="M 105.21 252.77 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 v 105.21 c 0 23.13 -18.89 42.02 -42.02 42.02 s -42.02 -18.89 -42.02 -42.02 c 0 0 0 -105.21 0 -105.21 Z" fill="#e3066a"/></g><g><path d="M 147.23 84.04 c -23.13 0 -42.02 -18.89 -42.02 -42.02 S 124.1 0 147.23 0 s 42.02 18.89 42.02 42.02 v 42.02 h -42.02 Z" fill="#00b3ff"/><path d="M 147.23 105.21 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 H 42.02 c -23.13 0 -42.02 -18.89 -42.02 -42.02 s 18.89 -42.02 42.02 -42.02 c 0 0 105.21 0 105.21 0 Z" fill="#00b3ff"/></g><g><path d="M 315.96 147.23 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 -18.89 42.02 -42.02 42.02 h -42.02 v -42.02 Z" fill="#41b658"/><path d="M 294.79 147.23 c 0 23.13 -18.89 42.02 -42.02 42.02 s -42.02 -18.89 -42.02 -42.02 V 42.02 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 v 105.21 Z" fill="#41b658"/></g><g><path d="M 252.77 315.96 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 -42.02 -18.89 -42.02 -42.02 v -42.02 h 42.02 Z" fill="#fcc003"/><path d="M 252.77 294.79 c -23.13 0 -42.02 -18.89 -42.02 -42.02 s 18.89 -42.02 42.02 -42.02 h 105.21 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 h -105.21 Z" fill="#fcc003"/></g></svg>`},name:`Slack`,featured:!0,description:`Mentions, messages, and reactions in a Slack workspace`,installLabel:`Add to Slack`,use:`Message {handle} or mention it in a channel.`,covered:`Slack workspace`,sample:`slack:C0000000000:1700000000.000100`,hint:`Do not use Markdown headings. Use short paragraphs and code spans, and reply only in the thread where you were addressed.`,events:{mention:{description:`Slack app mention`,on:`mention`,addressed:!0},command:{description:`/setup and other slash commands`,on:`command`},reaction:{description:`Reaction added`,on:`reaction`},message:{description:`Channel, group, or direct message`,on:`message`,noisy:!0,addressed:!0}},tools:{presets:{observe:Object.keys(W),comment:[...Object.keys(W),...Object.keys(G)],write:[...Object.keys(W),...Object.keys(G)]},serve:Ve},hosts:[`slack.com`],get app(){return qe},target(e,t){let n=$(t),r=$e.safeParse(n).data;if(r?.type===`url_verification`&&r.challenge)return new Response(r.challenge);let i=r?.authorizations?.[0],a=i?.team_id??r?.team_id??n.team?.id,o=String(i?.is_enterprise_install??r?.is_enterprise_install)===`true`,s=o?i?.enterprise_id??r?.enterprise_id??n.enterprise?.id:a,c=i?.user_id;return r?.api_app_id?{app:r.api_app_id,...s?{installation:s}:{},...o&&a?{within:a}:{},...c?{self:c}:{}}:void 0},welcome:async(e,t,n)=>(await import(`./views-BhsnL0nr.js`)).welcome(e,t,n),link(e){let t=/^slack:([^:]+):(\d+)\.(\d+)$/.exec(e.chat?.thread.id??``);return t?`https://slack.com/archives/${t[1]}/p${t[2]}${t[3]}`:void 0},ownEvents(e,t,n,r){let i=at($(t),n.id);if(i)return ot(e,t,r?.signingSecret)?i:{invalid:!0}},adapter:async e=>(await import(`./adapter-YCvP9H2n.js`)).slackAdapter(e),reactionId:e=>e.raw.event_ts,auth:{canWrite:ze,async token(e){if(!e.token)throw Error(`Slack installation ${e.id} has no bot token`);return e.token}}};export{L as a,g as c,Re as i,p as l,st as n,x as o,Y as r,b as s,rt as t,te as u};
|
package/dist/steer-DwSC8AO4.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{H as e}from"./dispatch-D3Dqxijf.js";import{i as t,r as n}from"./cli-D5hyqGq0.js";import{p as r,r as i,s as a}from"./output-BKeyLbvt.js";import{i as o,n as s,s as c,t as l}from"./args-CxsMr9Un.js";import{i as u,r as d}from"./result-DXL9N9Ip.js";import f from"node:process";const p={server:o,workspace:c,yes:s};function m(t,n,r){let[i,...a]=t,o=a.join(` `).trim();if(!i||!o)throw new e(`invalid-option`,n,{hint:r});return{id:i,text:o}}function h(e,t=!1){let{taskId:n,steered:o}=e;if(o===`queued`){f.stdout.write(`${r.dim(`[coder]`)} follow-up queued for task ${r.cyan(n)}; it runs when the current turn finishes.\n`),t&&f.stdout.write(`\n${r.dim(`[coder] --wait is not available for a queued follow-up.`)}\n\n${a([`Wait in its own background shell, one per task: coder task result ${n} --wait`],r)}\n`);return}if(!t){f.stdout.write(o===`live`?`${r.dim(`[coder]`)} steered follow-up into running task ${r.cyan(n)}.\n`:`${r.dim(`[coder]`)} resumed task ${r.cyan(n)} with the follow-up (same thread, same id).\n`),f.stdout.write(`\n${a([`Wait in its own background shell, one per task: coder task result ${n} --wait`],r)}\n`);return}f.stdout.write(`\n${e.finalMessage||`(no final message)`}\n\n`),f.stderr.write(`${r.dim(`[coder] task=${n} status=${e.status??`unknown`}`)}\n\n${d(n,i)}\n`)}const g=t({name:`task steer`,help:{usage:`coder task steer <task-id> "<follow-up instructions>" [--wait] [--server [url]]`,summary:`Continue a task's thread with new instructions. They are injected into a live Codex or
|
|
2
|
-
Claude turn at its next tool boundary and queued across a startup or completion race.
|
|
3
|
-
A stopped, finished, or archived task resumes on the same task id. It reuses the
|
|
4
|
-
task's engine, model, and permissions unless overridden.`,flags:[[`--wait`,`run in the foreground and block until the answer is ready`],[`--model <alias|slug>`,`override the task's model for this follow-up`],[`--effort <low|medium|high>`,`override the task's reasoning effort`],[`--permissions <mode>`,`read-only · workspace-write · auto`],n],examples:[[`coder task steer task-abc "now add tests"`,`continue that task with a follow-up`]]},options:{...l,model:c,effort:c,permissions:c,wait:s,...p},args:1/0,async run({options:e,args:t}){let{tasks:n}=await import(`./task-IoBYe7ok.js`).then(e=>e.t),{id:r,text:i}=m(t,`Missing task id or follow-up text.`,[`Usage: coder task steer <task-id> "<follow-up>" [--wait]`,`Help: coder task steer --help`]);return n.steer(r,i,{...e,organization:e.workspace})},json(e,{options:t}){let n=e;return t.server!==void 0||!t.wait||n.steered===`queued`?e:{taskId:n.taskId,status:n.status??null,finalMessage:n.finalMessage??null}},print(e,{options:t,args:[n]}){if(t.server===void 0)return h(e,t.wait);if(t.wait)return u(e,r);f.stdout.write(`Steered server task ${r.cyan(n)}.\n`)},exit(e,{options:t}){let n=e;if(t.wait&&(t.server!==void 0||n.steered!==`queued`))return n.status===`completed`?0:1}});export{g as commandSteer,m as idAndText};
|
package/dist/stop-CEEiI1RA.js
DELETED
|
@@ -1 +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 s from"node:process";const c={server:r,workspace:a,yes:i},l=e({name:`task stop`,help:{usage:`coder task stop <task-id> [--server [url]]`,summary:`Interrupt a running task and mark it cancelled.`,flags:[t]},options:{...o,...c},args:1,run:async({options:e,args:[t]})=>{let{tasks:n}=await import(`./task-IoBYe7ok.js`).then(e=>e.t);return n.stop(t,{...e,organization:e.workspace})},print:(e,{options:t,args:[r]})=>s.stdout.write(t.server===void 0?`Stopped task ${n.cyan(e.taskId)} ${n.dim(`(${e.interrupt})`)}\n`:`Stopped server task ${n.cyan(r)}.\n`)});export{l as commandStop};
|
package/dist/task-4gw9OZun.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./cli-D5hyqGq0.js";const t=[[`--wait`,`run in the foreground and block until the answer is ready`],[`--engine <codex|claude|custom>`,`engine to use; custom runs your configured custom models (default: first in the chain)`],[`--model <alias|slug>`,`luna/sol/astra (codex) · sonnet/opus/fable (claude) · a custom model (coder model list)`],[`--effort <low|medium|high>`,`reasoning effort`],[`--permissions <mode>`,`read-only · workspace-write · auto (default: auto)`],[`--mcp <names|all|json>`,'attach MCP servers from `mcp` in .coder/config.json by name (or all), or an inline JSON array [{"name","command","args","env","tools"}]; none by default, all adds your engine\'s own MCP servers'],[`--connections <ids>`,`use only these connections (coder connection list), within the agent's`],[`--add-dir <dir>`,`give the task another directory beyond --cwd (repeatable); read-only can only read it, other modes can also write`]],n=e(`task`,{"archive-sweep":async()=>(await import(`./archive-sweep-CqTQUafj.js`)).commandArchiveSweep,worker:async()=>(await import(`./worker-BFGETvid.js`)).commandWorker,mcp:async()=>(await import(`./mcp-C13n4A3y.js`)).commandTaskMcp,run:async()=>(await import(`./run-CoTg7SkY.js`)).commandTask,list:async()=>(await import(`./list-CLqNS8_q.js`)).commandTasks,ls:async()=>(await import(`./list-CLqNS8_q.js`)).commandTasks,watch:async()=>(await import(`./watch-BMuVZorc.js`)).commandWatch,stream:async()=>(await import(`./watch-BMuVZorc.js`)).commandWatch,result:async()=>(await import(`./result-DXL9N9Ip.js`).then(e=>e.s)).commandResult,steer:async()=>(await import(`./steer-DwSC8AO4.js`)).commandSteer,ask:async()=>(await import(`./ask-B_si1yM4.js`)).commandAsk,stop:async()=>(await import(`./stop-CEEiI1RA.js`)).commandStop,archive:async()=>(await import(`./archive-DxWYJ7Zi.js`)).commandArchive,delete:async()=>(await import(`./delete-BDOtztW_.js`)).commandDelete,approvals:async()=>(await import(`./approvals-BziBKWgU.js`)).commandApprovals,approve:async()=>(await import(`./approve-DKrTnZfk.js`)).commandApprove},{menu:[{sub:`run`,usage:`run "<text>"`,blurb:`run a task (background; --wait blocks)`,alias:`run`},{sub:`list`,usage:`list`,blurb:`list recent tasks (by default running + just stopped)`,alias:`list`},{sub:`result`,usage:`result [task-id]`,blurb:`status + final answer (--wait blocks)`,alias:`result`},{sub:`watch`,usage:`watch [task-id]`,blurb:`stream a task's live transcript`},{sub:`steer`,usage:`steer <task-id> "<follow-up>"`,blurb:`continue a task's thread`},{sub:`ask`,usage:`ask <task-id> "<question>"`,blurb:`ask about a task without interrupting it`},{sub:`stop`,usage:`stop <task-id>`,blurb:`interrupt a running task`},{sub:`archive`,usage:`archive <task-id>`,blurb:`archive a session (or --all-stopped)`},{sub:`delete`,usage:`delete <task-id>`,blurb:`delete a session (or --all-archived)`},{sub:`approvals`,usage:`approvals [task-id]`,blurb:`pending approvals (all tasks, or one)`},{sub:`approve`,usage:`approve <id>`,blurb:`answer an escalated permission`}].map(e=>({usage:e.usage,blurb:e.blurb,...e.alias?{note:`(coder ${e.alias})`}:{}}))},{aliases:{stream:`watch`,ls:`list`},hint:`Run a task: coder run "<text>"`});export{t as TASK_FLAGS,n as commandTaskGroup};
|