@wular/coder 0.5.0 → 0.5.2
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-CkMAM1Km.js → actions-C35tq9KH.js} +2 -2
- package/dist/{agent-Bi5nbUhA.js → agent-BZR4Eqdc.js} +1 -1
- package/dist/{app-server-BTpa5GBV.js → app-server-dnlLhhZb.js} +1 -1
- package/dist/{approvals-CRwkc9vB.js → approvals-C8XV7CK2.js} +1 -1
- package/dist/apps-CCqOsEZH.js +18 -0
- package/dist/async-BP5q3Une.js +3 -0
- package/dist/{auth-oCvlHitk.js → auth-CJOm9_Vh.js} +1 -1
- package/dist/builtin/coder/system.md +6 -3
- package/dist/{chat-4AiZEqKh.js → chat-BD2Fu3jU.js} +1 -1
- package/dist/cli.js +3 -3
- package/dist/{cmd-Cu3OquA_.js → cmd-BH1bmZGs.js} +34 -34
- package/dist/{config-D_RuO6gX.js → config-_32PHl9g.js} +1 -1
- package/dist/{connection-BXjn7gCC.js → connection-DNzNYpha.js} +1 -1
- package/dist/{connections-Cswv7r8Z.js → connections-B90TemYf.js} +1 -1
- package/dist/{context-CFrDYenS.js → context-DVGPu7f_.js} +1 -1
- package/dist/dash/standalone/server/build-index.json +1 -1
- package/dist/dash/standalone/server/manifest.json +1406 -1406
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.54c45900f2153d34.js → index.a036e2c6ae93ec75.js} +3 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.252f972b42c690e2.js → load.3e1c235ecb89201a.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.11efd0e175db9053.js → page.ff03c26886d248d2.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.59ae138dc182d7c3.js → notify.5b9c5a4ab975b01e.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.e9386951cedea737.js → page.6e80433ca86c927d.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.713d3ec10951fde5.js → sign-out.e419e0eae59a1394.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.f989d6f2d9ece6e4.js → agents-grid.53dc6597be8d6049.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.0f88720e52db99a2.js → page.82a238c790c19a6c.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.8d2f0997462fc958.js → layout.4a5c6f90ebaccf6f.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.bc93891522c8120d.js → page.ed696703c6fb5796.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.cf5cf9afe38ab0e4.js → page.12dbb62edaa16b4f.js} +11 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.c44c7df7841719f2.js → platform-actions.1e7bb5f00112eeac.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-step.6e90cbfe308f28a0.js → platform-step.45adc3fb28e7d33b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.61de585104c2be10.js → agent-settings-form.1693e7dc34f5b94a.js} +16 -17
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.4d06f759984a63b3.js → page.fbbcdf8fde222f1e.js} +8 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.ea2925eab1d2e594.js → loading.099f0e549e964a5c.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.fb069bf82b727d27.js → page.577e64210260faf2.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.0a472a0e269b8c01.js → page.2d10853615403293.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.7ef7dfd5d8f5de43.js → versions-list.e6088baf4de7f41e.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.007326a04f05d46c.js → loading.f0dfaf4552b8cde1.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.a26aa7bc6ab655f0.js → page.9f09979ad3435fe3.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{app-cards.361918fe58349aa1.js → app-cards.adaebe98ec9d32e8.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{page.3f60cf67517d0d31.js → page.e2dc60bbcac65b1f.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.ffbf9a8b8b2fbde7.js → agent-toggle.d795b7112534872c.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.0ae015a4fbe6321e.js → hero.b74c6eb40c45b498.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.9abe365f0098d358.js → connect-repositories.e27bcba279f82d7b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.6548f8f757578f90.js → editor.288736c2a52c7df4.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.577b1d84c7ab84e1.js → import-picker.58bad50dd8e60d63.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.2b326d00ccef5544.js → page.83a490948f585e69.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.45a09107b19f0a7e.js → layout.61ad05aceb425910.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.f8d679f2d06b0ebc.js → operator-apps.6f71999915848a2c.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.5aa3ddc669366703.js → page.4758811b7fc86d84.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.5a5188f0fc75dcd2.js → page.7de674df6cd0e824.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{advanced-list.73cdadb2968a39d2.js → advanced-list.851275e04f8e7305.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connection-add.353ec01fbb814f78.js → connection-add.45a224c5e612b15f.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.cf4061ae909272c3.js → connections-list.6cacd41c18de261d.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.fc4cff0289267551.js → credentials-list.79a1355d894b8642.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.db01de2581ac65f3.js → credentials.30db114aef2c6ff6.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.e7d6a422f6a869ea.js → list.fa3b9eff6657bc57.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.acb92b39cab1d11c.js → models-list.2a8f6a5679fc5c4d.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.95fe939e36e5be55.js → page.7681780b48e2aa3e.js} +13 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.5764eac3307d67cc.js → runners-list.e9834546550a3c2c.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.d316bb157f747f6c.js → secrets-list.ff9f3b3d88f2b8df.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.4eb70f2de8674f93.js → layout.3f8a61434ceaa186.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-options.dc630cb6e2cbf83a.js → model-options.0d6077fe68db3af9.js} +2 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-pick.a143e77f5ed5f9d3.js → model-pick.695538b2edf9dd15.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.70cad0e981c33fa5.js → page.e439da4bae9d6d6c.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.18bd2b92cd23b73f.js → create-link.371225925a83e900.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-toast.95f7be49430248eb.js → outcome-toast.c7d02e38464dec0b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.e39ee9236664d043.js → page.885e5ae7913d8f5b.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.441e82ab00344fb2.js → activity.f8d48c80747830ee.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.24e121ea6eb578ba.js → page.70ce5ef3bcf56310.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.4a4052a38db4bad3.js → task-actions.783070d7dbd198e4.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.0cd3ec2655f44cc7.js → task-view.db256c7f111b8f23.js} +22 -57
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.73225456d60d63e3.js → composer-data.c16854be11a561e4.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.ee326fbf5e526fb1.js → composer.6a331de70f3baff4.js} +24 -82
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{pending-approvals.7607998094780fdd.js → pending-approvals.7ff2eadf13a3ee90.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.e486cbd16ea3e963.js → tasks-list.57c90c66384141a0.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.01510523d1556d59.js → tasks-section.22e4f86847e1a3e2.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.ede64f82388f9480.js → page.c6b9db3ca88aaa1f.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.0499098badd3f5f8.js → page.743fe359f09f5648.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.e3800e736f832124.js → stream.c7ffa724145ce870.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.3b7eeee29fc327de.js → task-toasts.b0ba5a1b4976ae27.js} +47 -20
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.f22057e7dfac40fe.js → action.44115286faf6c0f8.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.c8d7efefb6194d7d.js → client.b9225923da59febe.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{advanced-list-850a950afe4f6996.js → advanced-list-4a393f37c461986f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agent-pills-9f6fa120182db948.js → agent-pills-f07bea43753a9342.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-6c1b6776328cd046.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{agent-toggle-521136f20a71400d.js → agent-toggle-dabbca2fe4006852.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agents-grid-bcd13cd7a46224a6.js → agents-grid-a9440caa1768bfd8.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{back-2d67134b122334f4.js → back-8ca96656264a0d1c.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{chain-hint-53675e299a865420.js → chain-hint-c7994aad798ef430.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{combo-cb2c62fe580a8903.js → combo-7b125f3927083749.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/composer-3efd63e2e0192937.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-a6cf207b9c69b43f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{composer-data-890f71bade4f0616.js → composer-data-b05f3d93fdc472d7.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{confirm-d6b2c5b1deccd1e8.js → confirm-6e26ab941d655b9f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connect-repositories-226bf70aa81c29d8.js → connect-repositories-90f1aedea6de7a99.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connections-list-a33d6637e2d52fcf.js → connections-list-90935e956e8f4626.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{copy-294c6052b3b69424.js → copy-38fa78628f39ec10.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-a3c963721aa06a72.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{credentials-list-90fc1c6d202e1461.js → credentials-list-ae950b9891d30c29.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{custom-range-efa1b6a71ba84597.js → custom-range-e9185a23187b3fe6.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{editor-53a3e1a893644fff.js → editor-e0cc472111713852.js} +3 -3
- package/dist/dash/standalone/static/assets/chunks/{field-4d374d5ed3f43d7e.js → field-444bab2e16b91c26.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-7d9131eb37c4619e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{instructions-d3dc01b2f90820db.js → instructions-9f173d4229d9b77e.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{list-16247e39898cd20e.js → list-84356c9286747b10.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/model-options-5e07b3318d69d218.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{models-list-6d93523660503dfb.js → models-list-eca9705ab89a2ce5.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-3006ae63624b3940.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-755fc581cbc2836e.js → outcome-dialog-c4d61a288688f53a.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-toast-ba59a3c06c25f0fd.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-0c61a03082f9d169.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{platform-actions-08e9b3816dcd62b1.js → platform-actions-267a43c805e3c3a6.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{platform-step-5881a8be1e761e00.js → platform-step-adfc87c1fa86e7e1.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/platform-step-fd1616528b2f6f12.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{runners-list-dd759d408c643a29.js → runners-list-c858c5546c6fd513.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{runtime-9b28886f3cbe0ed3-1.js → runtime-3fcac605fffcc273-1.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{secrets-list-be1f634a1b077baa.js → secrets-list-06cd41b5a2627452.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{segmented-f646bfa8aa0aa449.js → segmented-15503e745dd97f56.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{shared-init-b42d2c06c25d1e2b.js → shared-init-02666a6f76606589.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-3fcac605fffcc273-2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-7a7f1e623f0f5861.js +9 -0
- package/dist/dash/standalone/static/assets/chunks/{shared-init-953965859f7bf6b9.js → shared-init-a69029db2d72fb52.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/side-toggle-800f7bacd6de5aa8.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{tail-d13c4cc0cf11ffd1.js → tail-3024b828bce41f94.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{task-423e6a3f2527f534.js → task-1e6f9ba22fb5e29f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{task-actions-5917357eac6504ca.js → task-actions-c8fe1201a56901d9.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/task-view-531e243f8222f802.js +3 -0
- package/dist/dash/standalone/static/assets/chunks/{tasks-list-2c5ce592e00fda45.js → tasks-list-5373f9a2772a386a.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{versions-list-177ae397ad64dcea.js → versions-list-6642a24e9cef352b.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{wular-pnext-9b28886f3cbe0ed3-0.js → wular-pnext-3fcac605fffcc273-0.js} +1 -1
- package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-00243b34eb094b95.css → dash-param-org-agents-param-slug-dd4ac319a0d62432.css} +1 -1
- package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-settings-9f8faa8f7d714699.css → dash-param-org-agents-param-slug-platforms-9d2e1439f3f7e81b.css} +1 -1
- package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-usage-0e037c66e3977f33.css → dash-param-org-agents-param-slug-settings-f21d4fcd3948139b.css} +1 -1
- package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-tasks-129adcdc293ceac8.css → dash-param-org-agents-param-slug-tasks-c8d6aa06f6e75f4c.css} +1 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-9cc128ba8af6ef62.css +1 -0
- package/dist/dash/standalone/static/assets/{dash-param-org-tasks-8a44e171984d32a1.css → dash-param-org-tasks-be3cb3d64573f3d9.css} +1 -1
- package/dist/dash/standalone/static/assets/{dash-param-org-tasks-param-id-b9d3a7a1bd1dd666.css → dash-param-org-tasks-param-id-c20a0537bc82620d.css} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-02b9bb5ae78a37d6.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-063d14b5b5c893a3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-1710a65c5b8280af.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2936b44e963219bc.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2f14cc4bf71bf456.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2f81535a69d0c8a3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-368d90341055d7ff.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-58e0efbceb6c595f.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-7ecbd7a0cbe4e231.js → pnext-client-5fc693a6184e48a4.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-6ee756a74310a9fe.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-713f7a6bc55d23fb.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-7c91f8543cd360fa.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-827b030f2c8e738e.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-8b165b7e5c14a1f3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-95a81597ac1bdea0.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-a4c2fb8a94ccce04.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-a7faaaf8c4cc8145.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-bab8ffb68e7dd229.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-d9fab2611c2e7246.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-f3804c9ffb299fe0.js +1 -0
- package/dist/{definition-4on4SG5J.js → definition-D0OpQfGX.js} +1 -1
- package/dist/{discover-DvzAbQvU.js → discover-BfYHHJN_.js} +1 -1
- package/dist/{dispatch-BaW2X6Sc.js → dispatch-BkoIU4GU.js} +2 -2
- package/dist/{docs-CbgaMPvq.js → docs-CxklYa3P.js} +1 -1
- package/dist/{drive-Tk6JvQK5.js → drive-MggMiKA0.js} +1 -1
- package/dist/env-BwFCHakK.js +1 -0
- package/dist/{exec-CAaYFJD1.js → exec-CNygM6yF.js} +2 -2
- package/dist/{executor-Chc0zawh.js → executor-Ds4wDCzV.js} +6 -6
- package/dist/flow/builtin/review/index.d.ts +2 -2
- package/dist/flow/builtin/review/index.js +10 -15
- package/dist/flow/index.d.ts +2 -2
- package/dist/flow/index.js +1 -1
- package/dist/{hook-COWDSO4a.js → hook-CVJU-ZD0.js} +1 -1
- package/dist/{index-ezhbF5wC.d.ts → index-CTAQrCRU.d.ts} +71 -66
- package/dist/integrations-DSZSa8Rc.js +9 -0
- package/dist/lib/broker.js +1 -1
- package/dist/{load-PqaDHiHX.js → load-BtIDghgd.js} +2 -2
- package/dist/{local-BzZuOwgI.js → local-CqOUpEtl.js} +1 -1
- package/dist/{local-BMGcCk8N.js → local-DFrTuJFN.js} +1 -1
- package/dist/{login-BDKTNynK.js → login-93jO9qjx.js} +1 -1
- package/dist/maintenance-BuDKnfc7.js +1 -0
- package/dist/{mcp-BNz_l5TV2.js → mcp-CTVOR7r6.js} +1 -1
- package/dist/{mcp-BGam3G_B.js → mcp-EwT2mCaa.js} +1 -1
- package/dist/{mcp-BGx48pyR.js → mcp-cEIva8Pd.js} +6 -4
- package/dist/{models-D1NXi6ni.js → models-mKyePWrV.js} +1 -1
- package/dist/{permission-BkYxjiFR.js → permission-F6F25GJU.js} +1 -1
- package/dist/post-DLenID75.js +11 -0
- package/dist/{refresh-yfEi5SQs.js → refresh-CWEpTAkD.js} +1 -1
- package/dist/{remote-rArUa01V.js → remote-BDMuKaON.js} +1 -1
- package/dist/remote-Cl-j8r3W.js +1 -0
- package/dist/{runner-DG9jrX5H.js → runner-DK0jnzPr.js} +1 -1
- package/dist/runner.json +1 -1
- package/dist/runner.tgz +0 -0
- package/dist/schema.js +1 -1
- package/dist/sdk.d.ts +49 -45
- package/dist/sdk.js +1 -1
- package/dist/serve-Cqlkgdfd.js +8 -0
- package/dist/{serve-B-5rDiZm.js → serve-DHe6dZM6.js} +1 -1
- package/dist/{session-Dtje9y-r.js → session-BMbMzzPu.js} +1 -1
- package/dist/{sessions-DIz9fyRN.js → sessions-BGUfSe8L.js} +1 -1
- package/dist/{shared--aE4olIO.js → shared-D-KqAi7b.js} +1 -1
- package/dist/{sign-in-wWkyaq5X.js → sign-in-Dv-rdYD4.js} +2 -2
- package/dist/{state-Br-Fuaxg.js → state-CxAUec80.js} +1 -1
- package/dist/store-BpDipcKB.js +349 -0
- package/dist/{task-CFt85vTy.js → task-BRHXn5y1.js} +1 -1
- package/dist/task-CzXNLREX.js +7 -0
- package/dist/{tool-search-BkdgVolu.js → tool-search-C9Ty3hhL.js} +1 -1
- package/dist/{tools-oQvFAnh5.js → tools-BCm26CeV.js} +1 -1
- package/dist/{tools-DNgEptor.js → tools-C69W1B6S.js} +1 -1
- package/dist/{tools-search-D1zArRyJ.js → tools-search-BDaeCoWe.js} +1 -1
- package/dist/{turn-Cc-v-eSy.js → turn-eI4iRPsq.js} +1 -1
- package/dist/{update-check-UyRob3yy.js → update-check-Bap3dwaj.js} +1 -1
- package/dist/{views-3TxH367C.js → views-Bxm_5J6T.js} +1 -1
- package/dist/worker-DGhRPDDt.js +7 -0
- package/dist/{worker-BMuKKiIa.js → worker-DHNBRRl-.js} +1 -1
- package/docs/agents/coder.md +1 -1
- package/docs/cli/index.md +5 -3
- package/docs/connections.md +1 -1
- package/docs/flows.md +1 -1
- package/docs/review.md +36 -8
- package/docs/self-host.md +2 -1
- package/package.json +1 -1
- package/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
- package/dist/apps-B6mUToTa.js +0 -18
- package/dist/async-CNhQ4wyZ.js +0 -3
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-a8ee12513a02b1c5.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-4a46a458495ce3ba.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-92553de43276510b.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-b2480a7601967e94.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-734d21dfb8f6393e.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/model-options-d29e934a3de20ab4.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-77e13c848000a3dc.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-toast-9d5e9713c23882f5.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-832904f5694ef902.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-step-29469fd4eaddc42a.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-926144b364908b3c.js +0 -9
- package/dist/dash/standalone/static/assets/chunks/shared-init-9b28886f3cbe0ed3-2.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/side-toggle-8c21d39a1e284887.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-view-c6ee43d2ddb6db90.js +0 -3
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-25ae07e0b3f5b252.css +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-095026242a079175.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-1dfeb8c3ef155f87.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-2358423351524403.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-28a6557216627768.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-31a4ee73945fee19.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-3dfdc76bb8712b82.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-4355ac87961d78c1.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-43c7a0046572e0c9.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-53dc7db68d67e0b1.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-5835cb35488bdf7f.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-638b390bc23ab1ae.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-67f832c6c51a66cd.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-6fc99f0abe77c2ea.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-7d99965f28ac7604.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-8250bd3b86d038a3.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-bfd06805a43c6dee.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-ce2943f17e9d9ac3.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-ed31510d4615a5a5.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-f0496bf51e161ddd.js +0 -1
- package/dist/env-_AxrvBXP.js +0 -1
- package/dist/integrations-BVmsk64f.js +0 -9
- package/dist/maintenance-d43Ml540.js +0 -1
- package/dist/remote-BbXx6S9P.js +0 -1
- package/dist/serve-CvnrGAj7.js +0 -12
- package/dist/store-CzQLgCzt.js +0 -352
- package/dist/task-N0qhnKpK.js +0 -7
- package/dist/worker-CIHY9L42.js +0 -7
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{types.5bf5a41cedb54154.js → types.9d22123d6296f5af.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.aae9fa481b9015d1.css.pnext-asset.js → task-view.440367ae07204ee7.css.pnext-asset.js} +0 -0
package/dist/schema.js
CHANGED
|
@@ -4,4 +4,4 @@ import{$ as e,A as t,At as n,B as r,Ct as i,D as a,Dt as o,E as s,Et as c,F as l
|
|
|
4
4
|
hash text NOT NULL,
|
|
5
5
|
created_at bigint
|
|
6
6
|
)
|
|
7
|
-
`;await t.execute(k`CREATE SCHEMA IF NOT EXISTS ${k.identifier(i)}`),await t.execute(a);let o=(await t.all(k`select id, hash, created_at from ${k.identifier(i)}.${k.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(k.raw(e));await t.execute(k`insert into ${k.identifier(i)}.${k.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=[k`with `];for(let[n,r]of e.entries())t.push(k`${k.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(k`, `);return t.push(k` `),k.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r}){let i=this.buildWithCTE(r),a=n?k` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0,o=t?k` where ${t}`:void 0;return k`${i}delete from ${e}${o}${a}`}buildUpdateSet(e,t){let n=e[P.Symbol.Columns],r=Object.keys(n).filter(e=>t[e]!==void 0||n[e]?.onUpdateFn!==void 0),i=r.length;return k.join(r.flatMap((e,r)=>{let a=n[e],o=a.onUpdateFn?.(),s=t[e]??(_(o,O)?o:k.param(o,a)),c=k`${k.identifier(this.casing.getColumnCasing(a))} = ${s}`;return r<i-1?[c,k.raw(`, `)]:[c]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:i,from:a,joins:o}){let c=this.buildWithCTE(i),l=e[s.Symbol.Name],u=e[s.Symbol.Schema],d=e[s.Symbol.OriginalName],f=l===d?void 0:l,p=k`${u?k`${k.identifier(u)}.`:void 0}${k.identifier(d)}${f&&k` ${k.identifier(f)}`}`,m=this.buildUpdateSet(e,t),h=a&&k.join([k.raw(` from `),this.buildFromTable(a)]),g=this.buildJoins(o),_=r?k` returning ${this.buildSelection(r,{isSingleTable:!a})}`:void 0,v=n?k` where ${n}`:void 0;return k`${c}update ${p} set ${m}${h}${g}${v}${_}`}buildSelection(e,{isSingleTable:t=!1}={}){let r=e.length,a=e.flatMap(({field:e},a)=>{let o=[];if(_(e,O.Aliased)&&e.isSelectionField)o.push(k.identifier(e.fieldAlias));else if(_(e,O.Aliased)||_(e,O)){let n=_(e,O.Aliased)?e.sql:e;t?o.push(new O(n.queryChunks.map(e=>_(e,b)?k.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),_(e,O.Aliased)&&o.push(k` as ${k.identifier(e.fieldAlias)}`)}else if(_(e,n))t?o.push(k.identifier(this.casing.getColumnCasing(e))):o.push(e);else if(_(e,i)){let t=Object.entries(e._.selectedFields);if(t.length===1){let r=t[0][1],i=_(r,O)?r.decoder:_(r,n)?{mapFromDriverValue:e=>r.mapFromDriverValue(e)}:r.sql.decoder;i&&(e._.sql.decoder=i)}o.push(e)}return a<r-1&&o.push(k`, `),o});return k.join(a)}buildJoins(e){if(!e||e.length===0)return;let t=[];for(let[n,r]of e.entries()){n===0&&t.push(k` `);let i=r.table,a=r.lateral?k` lateral`:void 0,o=r.on?k` on ${r.on}`:void 0;if(_(i,s)){let e=i[s.Symbol.Name],n=i[s.Symbol.Schema],c=i[s.Symbol.OriginalName],l=e===c?void 0:r.alias;t.push(k`${k.raw(r.joinType)} join${a} ${n?k`${k.identifier(n)}.`:void 0}${k.identifier(c)}${l&&k` ${k.identifier(l)}`}${o}`)}else if(_(i,j)){let e=i[F].name,n=i[F].schema,s=i[F].originalName,c=e===s?void 0:r.alias;t.push(k`${k.raw(r.joinType)} join${a} ${n?k`${k.identifier(n)}.`:void 0}${k.identifier(s)}${c&&k` ${k.identifier(c)}`}${o}`)}else t.push(k`${k.raw(r.joinType)} join${a} ${i}${o}`);n<e.length-1&&t.push(k` `)}return k.join(t)}buildFromTable(e){if(_(e,P)&&e[P.Symbol.IsAlias]){let t=k`${k.identifier(e[P.Symbol.OriginalName])}`;return e[P.Symbol.Schema]&&(t=k`${k.identifier(e[P.Symbol.Schema])}.${t}`),k`${t} ${k.identifier(e[P.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:r,where:a,having:o,table:s,joins:c,orderBy:l,groupBy:u,limit:d,offset:f,lockingClause:p,distinct:m,setOperators:h}){let g=r??S(t);for(let e of g)if(_(e.field,n)&&I(e.field.table)!==(_(s,i)?s._.alias:_(s,V)?s[F].name:_(s,O)?void 0:I(s))&&!(e=>c?.some(({alias:t})=>t===(e[P.Symbol.IsAlias]?I(e):e[P.Symbol.BaseName])))(e.field.table)){let t=I(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 v=!c||c.length===0,y=this.buildWithCTE(e),b;m&&(b=m===!0?k` distinct`:k` distinct on (${k.join(m.on,k`, `)})`);let x=this.buildSelection(g,{isSingleTable:v}),ee=this.buildFromTable(s),C=this.buildJoins(c),te=a?k` where ${a}`:void 0,ne=o?k` having ${o}`:void 0,w;l&&l.length>0&&(w=k` order by ${k.join(l,k`, `)}`);let re;u&&u.length>0&&(re=k` group by ${k.join(u,k`, `)}`);let T=typeof d==`object`||typeof d==`number`&&d>=0?k` limit ${d}`:void 0,ie=f?k` offset ${f}`:void 0,E=k.empty();if(p){let e=k` for ${k.raw(p.strength)}`;p.config.of&&e.append(k` of ${k.join(Array.isArray(p.config.of)?p.config.of:[p.config.of],k`, `)}`),p.config.noWait?e.append(k` nowait`):p.config.skipLocked&&e.append(k` skip locked`),E.append(e)}let ae=k`${y}select${b} ${x} from ${ee}${C}${te}${re}${ne}${w}${T}${ie}${E}`;return h.length>0?this.buildSetOperations(ae,h):ae}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:r,limit:i,orderBy:a,offset:o}}){let s=k`(${e.getSQL()}) `,c=k`(${r.getSQL()})`,l;if(a&&a.length>0){let e=[];for(let t of a)if(_(t,b))e.push(k.identifier(t.name));else if(_(t,O)){for(let e=0;e<t.queryChunks.length;e++){let n=t.queryChunks[e];_(n,b)&&(t.queryChunks[e]=k.identifier(n.name))}e.push(k`${t}`)}else e.push(k`${t}`);l=k` order by ${k.join(e,k`, `)} `}let u=typeof i==`object`||typeof i==`number`&&i>=0?k` limit ${i}`:void 0,d=k.raw(`${t} ${n?`all `:``}`),f=o?k` offset ${o}`:void 0;return k`${s}${d}${c}${l}${u}${f}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:i,select:a,overridingSystemValue_:o}){let s=[],c=e[P.Symbol.Columns],l=Object.entries(c).filter(([e,t])=>!t.shouldDisableInsert()),u=l.map(([,e])=>k.identifier(this.casing.getColumnCasing(e)));if(a){let e=t;_(e,O)?s.push(e):s.push(e.getSQL())}else{let e=t;s.push(k.raw(`values `));for(let[t,n]of e.entries()){let r=[];for(let[e,t]of l){let i=n[e];if(i===void 0||_(i,ce)&&i.value===void 0)if(t.defaultFn!==void 0){let e=t.defaultFn(),n=_(e,O)?e:k.param(e,t);r.push(n)}else if(!t.default&&t.onUpdateFn!==void 0){let e=t.onUpdateFn(),n=_(e,O)?e:k.param(e,t);r.push(n)}else r.push(k`default`);else r.push(i)}s.push(r),t<e.length-1&&s.push(k`, `)}}let d=this.buildWithCTE(i),f=k.join(s),p=r?k` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0,m=n?k` on conflict ${n}`:void 0,h=o===!0?k`overriding system value `:void 0;return k`${d}insert into ${e} ${u} ${h}${f}${m}${p}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:n}){let r=t?k` concurrently`:void 0,i=n?k` with no data`:void 0;return k`refresh materialized view${r} ${e}${i}`}prepareTyping(e){return _(e,f)||_(e,ee)?`json`:_(e,l)?`decimal`:_(e,v)?`time`:_(e,t)||_(e,fe)?`timestamp`:_(e,r)||_(e,re)?`date`:_(e,pe)?`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:r,table:a,tableConfig:o,queryConfig:c,tableAlias:l,nestedQueryRelation:u,joinOn:d}){let f=[],p,m,h=[],g,v=[];if(c===!0)f=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:D(t,l),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let a=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,D(t,l)]));if(c.where){let e=typeof c.where==`function`?c.where(a,ye()):c.where;g=e&&Te(e,l)}let s=[],u=[];if(c.columns){let e=!1;for(let[t,n]of Object.entries(c.columns))n!==void 0&&t in o.columns&&(!e&&n===!0&&(e=!0),u.push(t));u.length>0&&(u=e?u.filter(e=>c.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];s.push({tsKey:e,value:t})}let d=[];c.with&&(d=Object.entries(c.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]})));let y;if(c.extras){y=typeof c.extras==`function`?c.extras(a,{sql:k}):c.extras;for(let[e,t]of Object.entries(y))s.push({tsKey:e,value:ge(t,l)})}for(let{tsKey:e,value:t}of s)f.push({dbKey:_(t,O.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:_(t,n)?D(t,l):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let b=typeof c.orderBy==`function`?c.orderBy(a,Ce()):c.orderBy??[];Array.isArray(b)||(b=[b]),h=b.map(e=>_(e,n)?D(e,l):Te(e,l)),p=c.limit,m=c.offset;for(let{tsKey:n,queryConfig:a,relation:o}of d){let s=he(t,r,o),c=r[oe(o.referencedTable)],u=`${l}_${n}`,d=le(...s.fields.map((e,t)=>xe(D(s.references[t],u),D(e,l)))),p=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:r,table:e[c],tableConfig:t[c],queryConfig:_(o,Se)?a===!0?{limit:1}:{...a,limit:1}:a,tableAlias:u,joinOn:d,nestedQueryRelation:o}),m=k`${k.identifier(u)}.${k.identifier(`data`)}`.as(n);v.push({on:k`true`,table:new i(p.sql,{},u),alias:u,joinType:`left`,lateral:!0}),f.push({dbKey:n,tsKey:n,field:m,relationTableTsKey:c,isJson:!0,selection:p.selection})}}if(f.length===0)throw new ve({message:`No fields selected for table "${o.tsName}" ("${l}")`});let y;if(g=le(d,g),u){let e=k`json_build_array(${k.join(f.map(({field:e,tsKey:t,isJson:n})=>n?k`${k.identifier(`${l}_${t}`)}.${k.identifier(`data`)}`:_(e,O.Aliased)?e.sql:e),k`, `)})`;_(u,_e)&&(e=k`coalesce(json_agg(${e}${h.length>0?k` order by ${k.join(h,k`, `)}`:void 0}), '[]'::json)`);let t=[{dbKey:`data`,tsKey:`data`,field:e.as(`data`),isJson:!0,relationTableTsKey:o.tsName,selection:f}];p!==void 0||m!==void 0||h.length>0?(y=this.buildSelectQuery({table:we(a,l),fields:{},fieldsFlat:[{path:[],field:k.raw(`*`)}],where:g,limit:p,offset:m,orderBy:h,setOperators:[]}),g=void 0,p=void 0,m=void 0,h=[]):y=we(a,l),y=this.buildSelectQuery({table:_(y,s)?y:new i(y,{},l),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:_(e,n)?D(e,l):e})),joins:v,where:g,limit:p,offset:m,orderBy:h,setOperators:[]})}else y=this.buildSelectQuery({table:we(a,l),fields:{},fieldsFlat:f.map(({field:e})=>({path:[],field:_(e,n)?D(e,l):e})),joins:v,where:g,limit:p,offset:m,orderBy:h,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:f}}},Ie=class{static[A]=`TypedQueryBuilder`;getSelectedFields(){return this._.selectedFields}},U=class{static[A]=`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,r;return r=this.fields?this.fields:_(n,i)?Object.fromEntries(Object.keys(n._.selectedFields).map(e=>[e,n[e]])):_(n,V)?n[F].selectedFields:_(n,O)?{}:m(n),new Re({table:n,fields:r,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},Le=class extends Ie{static[A]=`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=M(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{};for(let t of K(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(n,r)=>{let a=this.tableName,o=M(n);for(let e of K(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`&&!_(n,O))){let e=_(n,i)?n._.selectedFields:_(n,j)?n[F].selectedFields:n[P.Symbol.Columns];this.config.fields[o]=e}if(typeof r==`function`&&(r=r(new Proxy(this.config.fields,new R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:r,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(ze()):n;if(!p(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 R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.where=e,this}having(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new R({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 R({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 R({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(...K(this.config.table)),this.config.joins)for(let e of this.config.joins)t.push(...K(e.table));return new Proxy(new i(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new R({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}getSelectedFields(){return new Proxy(this.config.fields,new R({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}},Re=class extends Le{static[A]=`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 C.startActiveSpan(`drizzle.prepareQuery`,()=>{let n=S(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=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))};u(Re,[e]);function W(e,t){return(n,r,...i)=>{let a=[r,...i].map(n=>({type:e,isAll:t,rightSelect:n}));for(let e of a)if(!p(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 ze=()=>({union:Be,unionAll:Ve,intersect:He,intersectAll:Ue,except:We,exceptAll:Ge}),Be=W(`union`,!1),Ve=W(`union`,!0),He=W(`intersect`,!1),Ue=W(`intersect`,!0),We=W(`except`,!1),Ge=W(`except`,!0);var G=class{static[A]=`PgQueryBuilder`;dialect;dialectConfig;constructor(e){this.dialect=_(e,H)?e:void 0,this.dialectConfig=_(e,H)?void 0:e}$with=(e,t)=>{let n=this;return{as:r=>(typeof r==`function`&&(r=r(n)),new Proxy(new Ee(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new R({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})))}};with(...e){let t=this;function n(n){return new U({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function r(e){return new U({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function i(e,n){return new U({fields:n??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}return{select:n,selectDistinct:r,selectDistinctOn:i}}select(e){return new U({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new U({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new U({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||=new H(this.dialectConfig),this.dialect}},Ke=class{constructor(e,t){this.name=e,this.schema=t}static[A]=`PgDefaultViewBuilderCore`;config={};with(e){return this.config.with=e,this}},qe=class extends Ke{static[A]=`PgViewBuilder`;as(e){typeof e==`function`&&(e=e(new G));let t=new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new Qe({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},Je=class extends Ke{static[A]=`PgManualViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=m(a(e,t))}existing(){return new Proxy(new Qe({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new Qe({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},Ye=class{constructor(e,t){this.name=e,this.schema=t}static[A]=`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}},Xe=class extends Ye{static[A]=`PgMaterializedViewBuilder`;as(e){typeof e==`function`&&(e=e(new G));let t=new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new et({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)}},Ze=class extends Ye{static[A]=`PgManualMaterializedViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=m(a(e,t))}existing(){return new Proxy(new et({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 R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new et({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 R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},Qe=class extends V{static[A]=`PgView`;[je];constructor({pgConfig:e,config:t}){super(t),e&&(this[je]={with:e.with})}};const $e=Symbol.for(`drizzle:PgMaterializedViewConfig`);var et=class extends V{static[A]=`PgMaterializedView`;[$e];constructor({pgConfig:e,config:t}){super(t),this[$e]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}};function tt(e,t,n){return t?new Je(e,t,n):new qe(e,n)}function nt(e,t,n){return t?new Ze(e,t,n):new Xe(e,n)}function K(e){return _(e,s)?[e[E]?`${e[E]}.${e[P.Symbol.BaseName]}`:e[P.Symbol.BaseName]]:_(e,i)?e._.usedTables??[]:_(e,O)?e.usedTables??[]:[]}var rt=class extends e{constructor(e,t,n,r){super(),this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[A]=`PgDelete`;config;cacheConfig;where(e){return this.config.where=e,this}returning(e=this.config.table[P.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=S(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return C.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`delete`,tables:K(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new R({alias:I(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},it=class{constructor(e,t,n,r,i){this.table=e,this.session=t,this.dialect=n,this.withList=r,this.overridingSystemValue_=i}static[A]=`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[P.Symbol.Columns];for(let r of Object.keys(e)){let i=e[r];t[r]=_(i,O)?i:new ce(i,n[r])}return t});return new at(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){let t=typeof e==`function`?e(new G):e;if(!_(t,O)&&!p(this.table[ue],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 at(this.table,t,this.session,this.dialect,this.withList,!0)}},at=class extends e{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[A]=`PgInsert`;config;cacheConfig;returning(e=this.config.table[P.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=S(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=k`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?k` where ${e.where}`:void 0;this.config.onConflict=k`(${k.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?k` where ${e.where}`:void 0,n=e.targetWhere?k` where ${e.targetWhere}`:void 0,r=e.setWhere?k` where ${e.setWhere}`:void 0,i=this.dialect.buildUpdateSet(this.config.table,ie(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=k`(${k.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 C.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`insert`,tables:K(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new R({alias:I(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},ot=class extends e{constructor(e,t,n){super(),this.session=t,this.dialect=n,this.config={view:e}}static[A]=`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 C.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=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))},st=class{constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[A]=`PgUpdateBuilder`;authToken;setToken(e){return this.authToken=e,this}set(e){return new ct(this.table,ie(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},ct=class extends e{constructor(e,t,n,r,i){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:i,joins:[]},this.tableName=M(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{}}static[A]=`PgUpdate`;config;tableName;joinsNotNullableMap;cacheConfig;from(e){let t=e,n=M(t);return typeof n==`string`&&(this.joinsNotNullableMap[n]=!0),this.config.from=t,this}getTableLikeFields(e){return _(e,s)?e[P.Symbol.Columns]:_(e,i)?e._.selectedFields:e[F].selectedFields}createJoin(e){return(t,n)=>{let r=M(t);if(typeof r==`string`&&this.config.joins.some(e=>e.alias===r))throw Error(`Alias "${r}" is already used in this query`);if(typeof n==`function`){let e=this.config.from&&!_(this.config.from,O)?this.getTableLikeFields(this.config.from):void 0;n=n(new Proxy(this.config.table[P.Symbol.Columns],new R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})),e&&new Proxy(e,new R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))}if(this.config.joins.push({on:n,table:t,joinType:e,alias:r}),typeof r==`string`)switch(e){case`left`:this.joinsNotNullableMap[r]=!1;break;case`right`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!0;break;case`inner`:this.joinsNotNullableMap[r]=!0;break;case`full`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!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[P.Symbol.Columns]),this.config.from)){let t=M(this.config.from);if(typeof t==`string`&&this.config.from&&!_(this.config.from,O)){let n=this.getTableLikeFields(this.config.from);e[t]=n}for(let t of this.config.joins){let n=M(t.table);if(typeof n==`string`&&!_(t.table,O)){let r=this.getTableLikeFields(t.table);e[n]=r}}}return this.config.returningFields=e,this.config.returning=S(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:K(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 R({alias:I(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},lt=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[A]=`PgCountBuilder`;[Symbol.toStringTag]=`PgCountBuilder`;session;static buildEmbeddedCount(e,t){return k`(select count(*) from ${e}${k.raw(` where `).if(t)}${t})`}static buildCount(e,t){return k`select count(*) as count from ${e}${k.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})}},ut=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[A]=`PgRelationalQueryBuilder`;findMany(e){return new dt(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},`many`)}findFirst(e){return new dt(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},`first`)}},dt=class extends e{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[A]=`PgRelationalQuery`;_prepare(e){return C.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=>se(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 C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(void 0,this.authToken))}},ft=class extends e{constructor(e,t,n,r){super(),this.execute=e,this.sql=t,this.query=n,this.mapBatchResult=r}static[A]=`PgRaw`;getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}},pt=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 ut(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],i,e,t);this.$cache={invalidate:async e=>{}}}static[A]=`PgDatabase`;query;$with=(e,t)=>{let n=this;return{as:r=>(typeof r==`function`&&(r=r(new G(n.dialect))),new Proxy(new Ee(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new R({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})))}};$count(e,t){return new lt({source:e,filters:t,session:this.session})}$cache;with(...e){let t=this;function n(n){return new U({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function r(n){return new U({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function i(n,r){return new U({fields:r??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:n}})}function a(n){return new st(n,t.session,t.dialect,e)}function o(n){return new it(n,t.session,t.dialect,e)}function s(n){return new rt(n,t.session,t.dialect,e)}return{select:n,selectDistinct:r,selectDistinctOn:i,update:a,insert:o,delete:s}}select(e){return new U({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new U({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new U({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new st(e,this.session,this.dialect)}insert(e){return new it(e,this.session,this.dialect)}delete(e){return new rt(e,this.session,this.dialect)}refreshMaterializedView(e){return new ot(e,this.session,this.dialect)}authToken;execute(e){let t=typeof e==`string`?k.raw(e):e.getSQL(),n=this.dialect.sqlToQuery(t),r=this.session.prepareQuery(n,void 0,void 0,!1);return new ft(()=>r.execute(void 0,this.authToken),t,n,e=>r.mapResult(e,!0))}transaction(e,t){return this.session.transaction(e,t)}},mt=class{constructor(e,t,n){this.seqName=e,this.seqOptions=t,this.schema=n}static[A]=`PgSequence`};function ht(e,t,n){return new mt(e,t,n)}var gt=class{constructor(e){this.schemaName=e}static[A]=`PgSchema`;table=(e,t,n)=>y(e,t,n,this.schemaName);view=(e,t)=>tt(e,t,this.schemaName);materializedView=(e,t)=>nt(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?c(e,[...t],this.schemaName):ne(e,t,this.schemaName)}sequence=(e,t)=>ht(e,t,this.schemaName);getSQL(){return new O([k.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}};function _t(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 gt(e)}var vt=class{static[A]=`Cache`},yt=class extends vt{strategy(){return`all`}static[A]=`NoopCache`;async get(e){}async put(e,t,n,r){}async onMutate(e){}};async function bt(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 xt=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[A]=`PgPreparedQuery`;joinsNotNullableMap;async queryWithCache(e,t,n){if(this.cache===void 0||_(this.cache,yt)||this.queryMetadata===void 0)try{return await n()}catch(n){throw new N(e,t,n)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await n()}catch(n){throw new N(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 N(e,t,n)}if(!this.cacheConfig)try{return await n()}catch(n){throw new N(e,t,n)}if(this.queryMetadata.type===`select`){let r=await this.cache.get(this.cacheConfig.tag??await bt(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 N(e,t,n)}return await this.cache.put(this.cacheConfig.tag??await bt(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 N(e,t,n)}}},St=class{constructor(e){this.dialect=e}static[A]=`PgSession`;execute(e,t){return C.startActiveSpan(`drizzle.operation`,()=>C.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)}},Ct=class extends pt{constructor(e,t,n,r=0){super(e,t,n),this.schema=n,this.nestedIndex=r}static[A]=`PgTransaction`;rollback(){throw new de}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`),k.raw(t.join(` `))}setTransaction(e){return this.session.execute(k`set transaction ${this.getTransactionConfigSQL(e)}`)}};const wt=_t(`coder`),q=wt.table,J=()=>g({withTimezone:!0}),Y={createdAt:J().notNull().defaultNow(),updatedAt:J().notNull().defaultNow()},X={id:w({mode:`number`}).primaryKey(),organizationId:x().notNull()},Tt=q(`secret`,{id:w({mode:`number`}).primaryKey(),value:x().notNull()}),Z=()=>T({mode:`number`}).references(()=>Tt.id),Et=q(`platform_link`,{id:w({mode:`number`}).primaryKey(),platform:x().notNull(),platformUserId:x().notNull(),login:x(),userId:x().notNull(),name:x().notNull(),email:x().notNull(),organizations:h().$type(),roles:h().$type(),organizationId:x(),tokenSecretId:Z(),refusedAt:J(),createdAt:J().notNull().defaultNow()},e=>[B(`platform_link_platform_platformUserId_unique`).on(e.platform,e.platformUserId),z().on(e.userId)]),Dt=q(`workspace`,{organizationId:x().primaryKey(),slug:x(),name:x(),config:h().$type()}),Ot=q(`agent`,{...X,slug:x().notNull(),name:x().notNull(),description:x(),problems:h().$type(),source:x().$type().notNull(),repo:x(),path:x(),currentVersion:L().notNull(),engineSettings:h().$type(),...Y},e=>[B(`agent_organizationId_slug_unique`).on(e.organizationId,e.slug)]),kt=q(`agent_version`,{id:w({mode:`number`}).primaryKey(),agentId:T({mode:`number`}).notNull().references(()=>Ot.id,{onDelete:`cascade`}),version:L().notNull(),definition:h().$type().notNull(),systemPrompt:x().notNull(),files:h().$type(),commit:x(),importedFrom:x().notNull(),createdAt:J().notNull().defaultNow()},e=>[B(`agent_version_agentId_version_unique`).on(e.agentId,e.version)]),Q=q(`integration_app`,{...X,key:x().notNull(),integration:x().notNull(),agent:x().notNull(),name:x().notNull(),agentsRepo:x(),branch:x(),credentialsSecretId:Z().notNull(),sharedAppId:T({mode:`number`}).references(()=>Q.id),...Y},e=>[B(`integration_app_organizationId_key_unique`).on(e.organizationId,e.key),B(`integration_app_key_unique`).on(e.key)]),At=q(`integration_app_installation`,{...X,key:x().notNull(),appId:T({mode:`number`}).references(()=>Q.id,{onDelete:`set null`}),platformInstallId:x().notNull(),account:h().$type().notNull(),tokenSecretId:Z(),installer:x(),self:x(),covers:h().$type(),repos:h().$type(),...Y,deletedAt:J(),uninstalled:d()},e=>[me().on(e.key),z().on(e.organizationId,e.appId)]),jt=q(`engine_credential`,{...X,owner:x(),label:x().notNull(),secretId:Z().notNull(),account:h().$type(),...Y},e=>[B(`engine_credential_workspace_label_unique`).on(e.organizationId,e.label).where(k`${e.owner} is null`),B(`engine_credential_owner_label_unique`).on(e.organizationId,e.owner,e.label).where(k`${e.owner} is not null`)]),Mt=q(`runner`,{...X,publicId:x().notNull(),owner:x(),name:x().notNull(),kind:x().$type().notNull(),config:h().$type().notNull(),secretId:Z().notNull(),createdBy:x(),isDefault:d().notNull().default(!1),lastSeen:g({withTimezone:!0}),...Y},e=>[B(`runner_organizationId_publicId_unique`).on(e.organizationId,e.publicId)]),Nt=q(`connection`,{...X,key:x().notNull(),owner:x(),record:h().$type().notNull(),secretId:Z()},e=>[B(`connection_organizationId_key_unique`).on(e.organizationId,e.key),z().on(e.organizationId,e.owner)]),$=q(`task`,{...X,publicId:x().notNull(),source:x().$type().notNull(),status:x().$type().notNull(),agent:x().notNull(),flow:x().notNull(),reviewKey:x(),runnerKind:x().notNull(),access:x().$type(),installationId:T({mode:`number`}).references(()=>At.id),event:h().$type(),audience:x(),space:x(),parent:x(),connections:h().$type(),models:h().$type(),name:x(),cwd:x(),prompt:x(),args:h().$type(),mcp:h().$type(),appendSystem:x(),addDirs:h().$type(),author:x(),definition:h().$type().notNull(),requestedBy:x(),runnerId:x(),engineSettings:h().$type(),tools:h().$type().notNull(),context:h().$type(),files:h().$type(),failureReply:x(),notice:x(),taskUrl:x(),settingsUrl:x(),result:h().$type(),error:x(),fallbacks:h().$type(),tokens:h(),engine:x(),model:x(),credential:x(),runnerMs:L(),tokenCount:T({mode:`number`}),usageTokens:h(),handle:x(),tokenHash:x(),lastSeenAt:J(),logCursor:L(),logSeq:L(),logBytes:L(),logsComplete:d(),typingEnded:d(),archivedAt:J(),approval:h().$type(),answer:h(),attempts:L().notNull().default(0),inboxSeq:L().notNull().default(k`'-1'`),inboxAck:L().notNull().default(k`'-1'`),generation:L().notNull().default(0),startedAt:J(),finishedAt:J(),cancelRequestedAt:J(),...Y},e=>[B(`task_organizationId_publicId_unique`).on(e.organizationId,e.publicId),z().on(e.publicId),z().on(e.organizationId,e.createdAt.desc(),e.publicId.desc()),z(`task_organizationId_unarchived_index`).on(e.organizationId,e.createdAt.desc(),e.publicId.desc()).where(k`${e.archivedAt} is null`),z().on(e.organizationId,e.updatedAt),z().on(e.organizationId,e.finishedAt),z().on(e.organizationId,e.audience),z().on(e.organizationId,e.requestedBy),z().on(e.organizationId,e.parent),z().on(e.organizationId).where(k`${e.status} = 'queued'`),z(`task_organizationId_active_index`).on(e.organizationId).where(k`${e.status} in ('queued', 'running', 'waiting')`),z().on(e.status,e.createdAt),z().on(e.organizationId,e.reviewKey).where(k`${e.status} in ('running', 'waiting')`)]),Pt=q(`task_inbox`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),seq:L().notNull(),generation:L().notNull().default(0),kind:x().$type().notNull(),value:h(),at:J().notNull()},e=>[B(`task_inbox_taskId_seq_unique`).on(e.taskId,e.seq),z().on(e.taskId,e.generation,e.seq)]),Ft=q(`task_log`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),seqFrom:L().notNull(),seqTo:L().notNull(),lines:h().$type().notNull()},e=>[B(`task_log_taskId_seqFrom_unique`).on(e.taskId,e.seqFrom)]),It=q(`task_history`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),engine:x().$type().notNull(),conversation:x().notNull(),data:x().notNull(),state:x(),savedAt:J().notNull()},e=>[B(`task_history_taskId_conversation_unique`).on(e.taskId,e.conversation)]),Lt=q(`task_secret`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),key:x().notNull(),secretId:Z().notNull(),expiresAt:J()},e=>[B(`task_secret_taskId_key_unique`).on(e.taskId,e.key),z().on(e.expiresAt).where(k`${e.expiresAt} is not null`)]),Rt=q(`task_tombstone`,{organizationId:x().notNull(),publicId:x().notNull(),audience:x(),requestedBy:x(),deletedAt:J().notNull()},e=>[te({name:`task_tombstone_pk`,columns:[e.organizationId,e.publicId]}),z().on(e.organizationId,e.deletedAt)]),zt=q(`approval_post`,{...X,key:x().notNull(),value:h().$type().notNull(),at:J().notNull(),shownAt:J(),retryAt:J(),expiresAt:J()},e=>[B(`approval_post_organizationId_key_unique`).on(e.organizationId,e.key),z().on(e.retryAt).where(k`${e.retryAt} is not null`),z(`approval_post_unshown_index`).on(e.at).where(k`${e.shownAt} is null`)]),Bt=q(`private_space`,{...X,integration:x().notNull(),app:x().notNull(),installation:x().notNull(),account:x().notNull(),kind:x().$type().notNull(),space:x().notNull(),syncedAt:J(),claimedAt:J()},e=>[B(`private_space_organizationId_integration_account_space_unique`).on(e.organizationId,e.integration,e.account,e.space)]),Vt=q(`space_member`,{spaceId:T({mode:`number`}).notNull().references(()=>Bt.id,{onDelete:`cascade`}),member:x().notNull()},e=>[B(`space_member_spaceId_member_unique`).on(e.spaceId,e.member)]),Ht=q(`chat_state`,{key:x().primaryKey(),value:h().notNull(),expiresAt:J()},e=>[z().on(e.expiresAt).where(k`${e.expiresAt} is not null`),z(`chat_state_key_prefix_index`).on(e.key.op(`text_pattern_ops`))]),Ut=q(`chat_item`,{key:x().notNull(),seq:T({mode:`number`}).generatedAlwaysAsIdentity(),value:h().notNull(),expiresAt:J()},e=>[te({name:`chat_item_key_seq_pk`,columns:[e.key,e.seq]}),z().on(e.expiresAt).where(k`${e.expiresAt} is not null`)]),Wt={secret:Tt,platformLink:Et,workspace:Dt,agent:Ot,agentVersion:kt,integrationApp:Q,integrationAppInstallation:At,engineCredential:jt,runner:Mt,connection:Nt,task:$,taskInbox:Pt,taskLog:Ft,taskHistory:It,taskSecret:Lt,taskTombstone:Rt,approvalPost:zt,privateSpace:Bt,spaceMember:Vt,chatState:Ht,chatItem:Ut};export{pt as a,Ot as agent,kt as agentVersion,zt as approvalPost,De as c,Ut as chatItem,Ht as chatState,wt as coder,Nt as connection,jt as engineCredential,yt as i,Q as integrationApp,At as integrationAppInstallation,St as n,H as o,Et as platformLink,Bt as privateSpace,Ct as r,Mt as runner,Fe as s,Tt as secret,Vt as spaceMember,xt as t,Wt as tables,$ as task,It as taskHistory,Pt as taskInbox,Ft as taskLog,Lt as taskSecret,Rt as taskTombstone,Dt as workspace};
|
|
7
|
+
`;await t.execute(k`CREATE SCHEMA IF NOT EXISTS ${k.identifier(i)}`),await t.execute(a);let o=(await t.all(k`select id, hash, created_at from ${k.identifier(i)}.${k.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(k.raw(e));await t.execute(k`insert into ${k.identifier(i)}.${k.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=[k`with `];for(let[n,r]of e.entries())t.push(k`${k.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(k`, `);return t.push(k` `),k.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r}){let i=this.buildWithCTE(r),a=n?k` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0,o=t?k` where ${t}`:void 0;return k`${i}delete from ${e}${o}${a}`}buildUpdateSet(e,t){let n=e[P.Symbol.Columns],r=Object.keys(n).filter(e=>t[e]!==void 0||n[e]?.onUpdateFn!==void 0),i=r.length;return k.join(r.flatMap((e,r)=>{let a=n[e],o=a.onUpdateFn?.(),s=t[e]??(_(o,O)?o:k.param(o,a)),c=k`${k.identifier(this.casing.getColumnCasing(a))} = ${s}`;return r<i-1?[c,k.raw(`, `)]:[c]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:i,from:a,joins:o}){let c=this.buildWithCTE(i),l=e[s.Symbol.Name],u=e[s.Symbol.Schema],d=e[s.Symbol.OriginalName],f=l===d?void 0:l,p=k`${u?k`${k.identifier(u)}.`:void 0}${k.identifier(d)}${f&&k` ${k.identifier(f)}`}`,m=this.buildUpdateSet(e,t),h=a&&k.join([k.raw(` from `),this.buildFromTable(a)]),g=this.buildJoins(o),_=r?k` returning ${this.buildSelection(r,{isSingleTable:!a})}`:void 0,v=n?k` where ${n}`:void 0;return k`${c}update ${p} set ${m}${h}${g}${v}${_}`}buildSelection(e,{isSingleTable:t=!1}={}){let r=e.length,a=e.flatMap(({field:e},a)=>{let o=[];if(_(e,O.Aliased)&&e.isSelectionField)o.push(k.identifier(e.fieldAlias));else if(_(e,O.Aliased)||_(e,O)){let n=_(e,O.Aliased)?e.sql:e;t?o.push(new O(n.queryChunks.map(e=>_(e,b)?k.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),_(e,O.Aliased)&&o.push(k` as ${k.identifier(e.fieldAlias)}`)}else if(_(e,n))t?o.push(k.identifier(this.casing.getColumnCasing(e))):o.push(e);else if(_(e,i)){let t=Object.entries(e._.selectedFields);if(t.length===1){let r=t[0][1],i=_(r,O)?r.decoder:_(r,n)?{mapFromDriverValue:e=>r.mapFromDriverValue(e)}:r.sql.decoder;i&&(e._.sql.decoder=i)}o.push(e)}return a<r-1&&o.push(k`, `),o});return k.join(a)}buildJoins(e){if(!e||e.length===0)return;let t=[];for(let[n,r]of e.entries()){n===0&&t.push(k` `);let i=r.table,a=r.lateral?k` lateral`:void 0,o=r.on?k` on ${r.on}`:void 0;if(_(i,s)){let e=i[s.Symbol.Name],n=i[s.Symbol.Schema],c=i[s.Symbol.OriginalName],l=e===c?void 0:r.alias;t.push(k`${k.raw(r.joinType)} join${a} ${n?k`${k.identifier(n)}.`:void 0}${k.identifier(c)}${l&&k` ${k.identifier(l)}`}${o}`)}else if(_(i,j)){let e=i[F].name,n=i[F].schema,s=i[F].originalName,c=e===s?void 0:r.alias;t.push(k`${k.raw(r.joinType)} join${a} ${n?k`${k.identifier(n)}.`:void 0}${k.identifier(s)}${c&&k` ${k.identifier(c)}`}${o}`)}else t.push(k`${k.raw(r.joinType)} join${a} ${i}${o}`);n<e.length-1&&t.push(k` `)}return k.join(t)}buildFromTable(e){if(_(e,P)&&e[P.Symbol.IsAlias]){let t=k`${k.identifier(e[P.Symbol.OriginalName])}`;return e[P.Symbol.Schema]&&(t=k`${k.identifier(e[P.Symbol.Schema])}.${t}`),k`${t} ${k.identifier(e[P.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:r,where:a,having:o,table:s,joins:c,orderBy:l,groupBy:u,limit:d,offset:f,lockingClause:p,distinct:m,setOperators:h}){let g=r??S(t);for(let e of g)if(_(e.field,n)&&I(e.field.table)!==(_(s,i)?s._.alias:_(s,V)?s[F].name:_(s,O)?void 0:I(s))&&!(e=>c?.some(({alias:t})=>t===(e[P.Symbol.IsAlias]?I(e):e[P.Symbol.BaseName])))(e.field.table)){let t=I(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 v=!c||c.length===0,y=this.buildWithCTE(e),b;m&&(b=m===!0?k` distinct`:k` distinct on (${k.join(m.on,k`, `)})`);let x=this.buildSelection(g,{isSingleTable:v}),ee=this.buildFromTable(s),C=this.buildJoins(c),te=a?k` where ${a}`:void 0,ne=o?k` having ${o}`:void 0,w;l&&l.length>0&&(w=k` order by ${k.join(l,k`, `)}`);let re;u&&u.length>0&&(re=k` group by ${k.join(u,k`, `)}`);let T=typeof d==`object`||typeof d==`number`&&d>=0?k` limit ${d}`:void 0,ie=f?k` offset ${f}`:void 0,E=k.empty();if(p){let e=k` for ${k.raw(p.strength)}`;p.config.of&&e.append(k` of ${k.join(Array.isArray(p.config.of)?p.config.of:[p.config.of],k`, `)}`),p.config.noWait?e.append(k` nowait`):p.config.skipLocked&&e.append(k` skip locked`),E.append(e)}let ae=k`${y}select${b} ${x} from ${ee}${C}${te}${re}${ne}${w}${T}${ie}${E}`;return h.length>0?this.buildSetOperations(ae,h):ae}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:r,limit:i,orderBy:a,offset:o}}){let s=k`(${e.getSQL()}) `,c=k`(${r.getSQL()})`,l;if(a&&a.length>0){let e=[];for(let t of a)if(_(t,b))e.push(k.identifier(t.name));else if(_(t,O)){for(let e=0;e<t.queryChunks.length;e++){let n=t.queryChunks[e];_(n,b)&&(t.queryChunks[e]=k.identifier(n.name))}e.push(k`${t}`)}else e.push(k`${t}`);l=k` order by ${k.join(e,k`, `)} `}let u=typeof i==`object`||typeof i==`number`&&i>=0?k` limit ${i}`:void 0,d=k.raw(`${t} ${n?`all `:``}`),f=o?k` offset ${o}`:void 0;return k`${s}${d}${c}${l}${u}${f}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:i,select:a,overridingSystemValue_:o}){let s=[],c=e[P.Symbol.Columns],l=Object.entries(c).filter(([e,t])=>!t.shouldDisableInsert()),u=l.map(([,e])=>k.identifier(this.casing.getColumnCasing(e)));if(a){let e=t;_(e,O)?s.push(e):s.push(e.getSQL())}else{let e=t;s.push(k.raw(`values `));for(let[t,n]of e.entries()){let r=[];for(let[e,t]of l){let i=n[e];if(i===void 0||_(i,ce)&&i.value===void 0)if(t.defaultFn!==void 0){let e=t.defaultFn(),n=_(e,O)?e:k.param(e,t);r.push(n)}else if(!t.default&&t.onUpdateFn!==void 0){let e=t.onUpdateFn(),n=_(e,O)?e:k.param(e,t);r.push(n)}else r.push(k`default`);else r.push(i)}s.push(r),t<e.length-1&&s.push(k`, `)}}let d=this.buildWithCTE(i),f=k.join(s),p=r?k` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0,m=n?k` on conflict ${n}`:void 0,h=o===!0?k`overriding system value `:void 0;return k`${d}insert into ${e} ${u} ${h}${f}${m}${p}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:n}){let r=t?k` concurrently`:void 0,i=n?k` with no data`:void 0;return k`refresh materialized view${r} ${e}${i}`}prepareTyping(e){return _(e,f)||_(e,ee)?`json`:_(e,l)?`decimal`:_(e,v)?`time`:_(e,t)||_(e,fe)?`timestamp`:_(e,r)||_(e,re)?`date`:_(e,pe)?`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:r,table:a,tableConfig:o,queryConfig:c,tableAlias:l,nestedQueryRelation:u,joinOn:d}){let f=[],p,m,h=[],g,v=[];if(c===!0)f=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:D(t,l),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let a=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,D(t,l)]));if(c.where){let e=typeof c.where==`function`?c.where(a,ye()):c.where;g=e&&Te(e,l)}let s=[],u=[];if(c.columns){let e=!1;for(let[t,n]of Object.entries(c.columns))n!==void 0&&t in o.columns&&(!e&&n===!0&&(e=!0),u.push(t));u.length>0&&(u=e?u.filter(e=>c.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];s.push({tsKey:e,value:t})}let d=[];c.with&&(d=Object.entries(c.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]})));let y;if(c.extras){y=typeof c.extras==`function`?c.extras(a,{sql:k}):c.extras;for(let[e,t]of Object.entries(y))s.push({tsKey:e,value:ge(t,l)})}for(let{tsKey:e,value:t}of s)f.push({dbKey:_(t,O.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:_(t,n)?D(t,l):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let b=typeof c.orderBy==`function`?c.orderBy(a,Ce()):c.orderBy??[];Array.isArray(b)||(b=[b]),h=b.map(e=>_(e,n)?D(e,l):Te(e,l)),p=c.limit,m=c.offset;for(let{tsKey:n,queryConfig:a,relation:o}of d){let s=he(t,r,o),c=r[oe(o.referencedTable)],u=`${l}_${n}`,d=le(...s.fields.map((e,t)=>xe(D(s.references[t],u),D(e,l)))),p=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:r,table:e[c],tableConfig:t[c],queryConfig:_(o,Se)?a===!0?{limit:1}:{...a,limit:1}:a,tableAlias:u,joinOn:d,nestedQueryRelation:o}),m=k`${k.identifier(u)}.${k.identifier(`data`)}`.as(n);v.push({on:k`true`,table:new i(p.sql,{},u),alias:u,joinType:`left`,lateral:!0}),f.push({dbKey:n,tsKey:n,field:m,relationTableTsKey:c,isJson:!0,selection:p.selection})}}if(f.length===0)throw new ve({message:`No fields selected for table "${o.tsName}" ("${l}")`});let y;if(g=le(d,g),u){let e=k`json_build_array(${k.join(f.map(({field:e,tsKey:t,isJson:n})=>n?k`${k.identifier(`${l}_${t}`)}.${k.identifier(`data`)}`:_(e,O.Aliased)?e.sql:e),k`, `)})`;_(u,_e)&&(e=k`coalesce(json_agg(${e}${h.length>0?k` order by ${k.join(h,k`, `)}`:void 0}), '[]'::json)`);let t=[{dbKey:`data`,tsKey:`data`,field:e.as(`data`),isJson:!0,relationTableTsKey:o.tsName,selection:f}];p!==void 0||m!==void 0||h.length>0?(y=this.buildSelectQuery({table:we(a,l),fields:{},fieldsFlat:[{path:[],field:k.raw(`*`)}],where:g,limit:p,offset:m,orderBy:h,setOperators:[]}),g=void 0,p=void 0,m=void 0,h=[]):y=we(a,l),y=this.buildSelectQuery({table:_(y,s)?y:new i(y,{},l),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:_(e,n)?D(e,l):e})),joins:v,where:g,limit:p,offset:m,orderBy:h,setOperators:[]})}else y=this.buildSelectQuery({table:we(a,l),fields:{},fieldsFlat:f.map(({field:e})=>({path:[],field:_(e,n)?D(e,l):e})),joins:v,where:g,limit:p,offset:m,orderBy:h,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:f}}},Ie=class{static[A]=`TypedQueryBuilder`;getSelectedFields(){return this._.selectedFields}},U=class{static[A]=`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,r;return r=this.fields?this.fields:_(n,i)?Object.fromEntries(Object.keys(n._.selectedFields).map(e=>[e,n[e]])):_(n,V)?n[F].selectedFields:_(n,O)?{}:m(n),new Re({table:n,fields:r,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},Le=class extends Ie{static[A]=`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=M(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{};for(let t of K(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(n,r)=>{let a=this.tableName,o=M(n);for(let e of K(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`&&!_(n,O))){let e=_(n,i)?n._.selectedFields:_(n,j)?n[F].selectedFields:n[P.Symbol.Columns];this.config.fields[o]=e}if(typeof r==`function`&&(r=r(new Proxy(this.config.fields,new R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:r,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(ze()):n;if(!p(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 R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.where=e,this}having(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new R({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 R({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 R({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(...K(this.config.table)),this.config.joins)for(let e of this.config.joins)t.push(...K(e.table));return new Proxy(new i(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new R({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}getSelectedFields(){return new Proxy(this.config.fields,new R({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}},Re=class extends Le{static[A]=`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 C.startActiveSpan(`drizzle.prepareQuery`,()=>{let n=S(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=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))};u(Re,[e]);function W(e,t){return(n,r,...i)=>{let a=[r,...i].map(n=>({type:e,isAll:t,rightSelect:n}));for(let e of a)if(!p(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 ze=()=>({union:Be,unionAll:Ve,intersect:He,intersectAll:Ue,except:We,exceptAll:Ge}),Be=W(`union`,!1),Ve=W(`union`,!0),He=W(`intersect`,!1),Ue=W(`intersect`,!0),We=W(`except`,!1),Ge=W(`except`,!0);var G=class{static[A]=`PgQueryBuilder`;dialect;dialectConfig;constructor(e){this.dialect=_(e,H)?e:void 0,this.dialectConfig=_(e,H)?void 0:e}$with=(e,t)=>{let n=this;return{as:r=>(typeof r==`function`&&(r=r(n)),new Proxy(new Ee(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new R({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})))}};with(...e){let t=this;function n(n){return new U({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function r(e){return new U({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function i(e,n){return new U({fields:n??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}return{select:n,selectDistinct:r,selectDistinctOn:i}}select(e){return new U({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new U({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new U({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||=new H(this.dialectConfig),this.dialect}},Ke=class{constructor(e,t){this.name=e,this.schema=t}static[A]=`PgDefaultViewBuilderCore`;config={};with(e){return this.config.with=e,this}},qe=class extends Ke{static[A]=`PgViewBuilder`;as(e){typeof e==`function`&&(e=e(new G));let t=new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new Qe({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},Je=class extends Ke{static[A]=`PgManualViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=m(a(e,t))}existing(){return new Proxy(new Qe({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new Qe({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},Ye=class{constructor(e,t){this.name=e,this.schema=t}static[A]=`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}},Xe=class extends Ye{static[A]=`PgMaterializedViewBuilder`;as(e){typeof e==`function`&&(e=e(new G));let t=new R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new et({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)}},Ze=class extends Ye{static[A]=`PgManualMaterializedViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=m(a(e,t))}existing(){return new Proxy(new et({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 R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new et({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 R({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},Qe=class extends V{static[A]=`PgView`;[je];constructor({pgConfig:e,config:t}){super(t),e&&(this[je]={with:e.with})}};const $e=Symbol.for(`drizzle:PgMaterializedViewConfig`);var et=class extends V{static[A]=`PgMaterializedView`;[$e];constructor({pgConfig:e,config:t}){super(t),this[$e]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}};function tt(e,t,n){return t?new Je(e,t,n):new qe(e,n)}function nt(e,t,n){return t?new Ze(e,t,n):new Xe(e,n)}function K(e){return _(e,s)?[e[E]?`${e[E]}.${e[P.Symbol.BaseName]}`:e[P.Symbol.BaseName]]:_(e,i)?e._.usedTables??[]:_(e,O)?e.usedTables??[]:[]}var rt=class extends e{constructor(e,t,n,r){super(),this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[A]=`PgDelete`;config;cacheConfig;where(e){return this.config.where=e,this}returning(e=this.config.table[P.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=S(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return C.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`delete`,tables:K(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new R({alias:I(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},it=class{constructor(e,t,n,r,i){this.table=e,this.session=t,this.dialect=n,this.withList=r,this.overridingSystemValue_=i}static[A]=`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[P.Symbol.Columns];for(let r of Object.keys(e)){let i=e[r];t[r]=_(i,O)?i:new ce(i,n[r])}return t});return new at(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){let t=typeof e==`function`?e(new G):e;if(!_(t,O)&&!p(this.table[ue],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 at(this.table,t,this.session,this.dialect,this.withList,!0)}},at=class extends e{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[A]=`PgInsert`;config;cacheConfig;returning(e=this.config.table[P.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=S(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=k`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?k` where ${e.where}`:void 0;this.config.onConflict=k`(${k.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?k` where ${e.where}`:void 0,n=e.targetWhere?k` where ${e.targetWhere}`:void 0,r=e.setWhere?k` where ${e.setWhere}`:void 0,i=this.dialect.buildUpdateSet(this.config.table,ie(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=k`(${k.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 C.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`insert`,tables:K(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new R({alias:I(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},ot=class extends e{constructor(e,t,n){super(),this.session=t,this.dialect=n,this.config={view:e}}static[A]=`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 C.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=>C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))},st=class{constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[A]=`PgUpdateBuilder`;authToken;setToken(e){return this.authToken=e,this}set(e){return new ct(this.table,ie(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},ct=class extends e{constructor(e,t,n,r,i){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:i,joins:[]},this.tableName=M(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{}}static[A]=`PgUpdate`;config;tableName;joinsNotNullableMap;cacheConfig;from(e){let t=e,n=M(t);return typeof n==`string`&&(this.joinsNotNullableMap[n]=!0),this.config.from=t,this}getTableLikeFields(e){return _(e,s)?e[P.Symbol.Columns]:_(e,i)?e._.selectedFields:e[F].selectedFields}createJoin(e){return(t,n)=>{let r=M(t);if(typeof r==`string`&&this.config.joins.some(e=>e.alias===r))throw Error(`Alias "${r}" is already used in this query`);if(typeof n==`function`){let e=this.config.from&&!_(this.config.from,O)?this.getTableLikeFields(this.config.from):void 0;n=n(new Proxy(this.config.table[P.Symbol.Columns],new R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})),e&&new Proxy(e,new R({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))}if(this.config.joins.push({on:n,table:t,joinType:e,alias:r}),typeof r==`string`)switch(e){case`left`:this.joinsNotNullableMap[r]=!1;break;case`right`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!0;break;case`inner`:this.joinsNotNullableMap[r]=!0;break;case`full`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!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[P.Symbol.Columns]),this.config.from)){let t=M(this.config.from);if(typeof t==`string`&&this.config.from&&!_(this.config.from,O)){let n=this.getTableLikeFields(this.config.from);e[t]=n}for(let t of this.config.joins){let n=M(t.table);if(typeof n==`string`&&!_(t.table,O)){let r=this.getTableLikeFields(t.table);e[n]=r}}}return this.config.returningFields=e,this.config.returning=S(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:K(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 R({alias:I(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},lt=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[A]=`PgCountBuilder`;[Symbol.toStringTag]=`PgCountBuilder`;session;static buildEmbeddedCount(e,t){return k`(select count(*) from ${e}${k.raw(` where `).if(t)}${t})`}static buildCount(e,t){return k`select count(*) as count from ${e}${k.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})}},ut=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[A]=`PgRelationalQueryBuilder`;findMany(e){return new dt(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},`many`)}findFirst(e){return new dt(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},`first`)}},dt=class extends e{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[A]=`PgRelationalQuery`;_prepare(e){return C.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=>se(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 C.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(void 0,this.authToken))}},ft=class extends e{constructor(e,t,n,r){super(),this.execute=e,this.sql=t,this.query=n,this.mapBatchResult=r}static[A]=`PgRaw`;getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}},pt=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 ut(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],i,e,t);this.$cache={invalidate:async e=>{}}}static[A]=`PgDatabase`;query;$with=(e,t)=>{let n=this;return{as:r=>(typeof r==`function`&&(r=r(new G(n.dialect))),new Proxy(new Ee(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new R({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})))}};$count(e,t){return new lt({source:e,filters:t,session:this.session})}$cache;with(...e){let t=this;function n(n){return new U({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function r(n){return new U({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function i(n,r){return new U({fields:r??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:n}})}function a(n){return new st(n,t.session,t.dialect,e)}function o(n){return new it(n,t.session,t.dialect,e)}function s(n){return new rt(n,t.session,t.dialect,e)}return{select:n,selectDistinct:r,selectDistinctOn:i,update:a,insert:o,delete:s}}select(e){return new U({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new U({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new U({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new st(e,this.session,this.dialect)}insert(e){return new it(e,this.session,this.dialect)}delete(e){return new rt(e,this.session,this.dialect)}refreshMaterializedView(e){return new ot(e,this.session,this.dialect)}authToken;execute(e){let t=typeof e==`string`?k.raw(e):e.getSQL(),n=this.dialect.sqlToQuery(t),r=this.session.prepareQuery(n,void 0,void 0,!1);return new ft(()=>r.execute(void 0,this.authToken),t,n,e=>r.mapResult(e,!0))}transaction(e,t){return this.session.transaction(e,t)}},mt=class{constructor(e,t,n){this.seqName=e,this.seqOptions=t,this.schema=n}static[A]=`PgSequence`};function ht(e,t,n){return new mt(e,t,n)}var gt=class{constructor(e){this.schemaName=e}static[A]=`PgSchema`;table=(e,t,n)=>y(e,t,n,this.schemaName);view=(e,t)=>tt(e,t,this.schemaName);materializedView=(e,t)=>nt(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?c(e,[...t],this.schemaName):ne(e,t,this.schemaName)}sequence=(e,t)=>ht(e,t,this.schemaName);getSQL(){return new O([k.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}};function _t(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 gt(e)}var vt=class{static[A]=`Cache`},yt=class extends vt{strategy(){return`all`}static[A]=`NoopCache`;async get(e){}async put(e,t,n,r){}async onMutate(e){}};async function bt(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 xt=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[A]=`PgPreparedQuery`;joinsNotNullableMap;async queryWithCache(e,t,n){if(this.cache===void 0||_(this.cache,yt)||this.queryMetadata===void 0)try{return await n()}catch(n){throw new N(e,t,n)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await n()}catch(n){throw new N(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 N(e,t,n)}if(!this.cacheConfig)try{return await n()}catch(n){throw new N(e,t,n)}if(this.queryMetadata.type===`select`){let r=await this.cache.get(this.cacheConfig.tag??await bt(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 N(e,t,n)}return await this.cache.put(this.cacheConfig.tag??await bt(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 N(e,t,n)}}},St=class{constructor(e){this.dialect=e}static[A]=`PgSession`;execute(e,t){return C.startActiveSpan(`drizzle.operation`,()=>C.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)}},Ct=class extends pt{constructor(e,t,n,r=0){super(e,t,n),this.schema=n,this.nestedIndex=r}static[A]=`PgTransaction`;rollback(){throw new de}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`),k.raw(t.join(` `))}setTransaction(e){return this.session.execute(k`set transaction ${this.getTransactionConfigSQL(e)}`)}};const wt=_t(`coder`),q=wt.table,J=()=>g({withTimezone:!0}),Y={createdAt:J().notNull().defaultNow(),updatedAt:J().notNull().defaultNow()},X={id:w({mode:`number`}).primaryKey(),organizationId:x().notNull()},Tt=q(`secret`,{id:w({mode:`number`}).primaryKey(),value:x().notNull()}),Z=()=>T({mode:`number`}).references(()=>Tt.id),Et=q(`platform_link`,{id:w({mode:`number`}).primaryKey(),platform:x().notNull(),platformUserId:x().notNull(),login:x(),userId:x().notNull(),name:x().notNull(),email:x().notNull(),organizations:h().$type(),roles:h().$type(),organizationId:x(),tokenSecretId:Z(),refusedAt:J(),createdAt:J().notNull().defaultNow()},e=>[B(`platform_link_platform_platformUserId_unique`).on(e.platform,e.platformUserId),z().on(e.userId)]),Dt=q(`workspace`,{organizationId:x().primaryKey(),slug:x(),name:x(),config:h().$type()}),Ot=q(`agent`,{...X,slug:x().notNull(),name:x().notNull(),description:x(),problems:h().$type(),source:x().$type().notNull(),repo:x(),path:x(),currentVersion:L().notNull(),engineSettings:h().$type(),...Y},e=>[B(`agent_organizationId_slug_unique`).on(e.organizationId,e.slug)]),kt=q(`agent_version`,{id:w({mode:`number`}).primaryKey(),agentId:T({mode:`number`}).notNull().references(()=>Ot.id,{onDelete:`cascade`}),version:L().notNull(),definition:h().$type().notNull(),systemPrompt:x().notNull(),files:h().$type(),commit:x(),importedFrom:x().notNull(),createdAt:J().notNull().defaultNow()},e=>[B(`agent_version_agentId_version_unique`).on(e.agentId,e.version)]),Q=q(`integration_app`,{...X,key:x().notNull(),integration:x().notNull(),agent:x().notNull(),name:x().notNull(),agentsRepo:x(),branch:x(),credentialsSecretId:Z().notNull(),sharedAppId:T({mode:`number`}).references(()=>Q.id),...Y},e=>[B(`integration_app_organizationId_key_unique`).on(e.organizationId,e.key),B(`integration_app_key_unique`).on(e.key)]),At=q(`integration_app_installation`,{...X,key:x().notNull(),appId:T({mode:`number`}).references(()=>Q.id,{onDelete:`set null`}),platformInstallId:x().notNull(),account:h().$type().notNull(),tokenSecretId:Z(),installer:x(),self:x(),covers:h().$type(),repos:h().$type(),...Y,deletedAt:J(),uninstalled:d()},e=>[me().on(e.key),z().on(e.organizationId,e.appId)]),jt=q(`engine_credential`,{...X,owner:x(),label:x().notNull(),secretId:Z().notNull(),account:h().$type(),...Y},e=>[B(`engine_credential_workspace_label_unique`).on(e.organizationId,e.label).where(k`${e.owner} is null`),B(`engine_credential_owner_label_unique`).on(e.organizationId,e.owner,e.label).where(k`${e.owner} is not null`)]),Mt=q(`runner`,{...X,publicId:x().notNull(),owner:x(),name:x().notNull(),kind:x().$type().notNull(),config:h().$type().notNull(),secretId:Z().notNull(),createdBy:x(),isDefault:d().notNull().default(!1),lastSeen:g({withTimezone:!0}),...Y},e=>[B(`runner_organizationId_publicId_unique`).on(e.organizationId,e.publicId)]),Nt=q(`connection`,{...X,key:x().notNull(),owner:x(),record:h().$type().notNull(),secretId:Z()},e=>[B(`connection_organizationId_key_unique`).on(e.organizationId,e.key),z().on(e.organizationId,e.owner)]),$=q(`task`,{...X,publicId:x().notNull(),source:x().$type().notNull(),status:x().$type().notNull(),agent:x().notNull(),flow:x().notNull(),runnerKind:x().notNull(),access:x().$type(),installationId:T({mode:`number`}).references(()=>At.id),event:h().$type(),audience:x(),space:x(),parent:x(),connections:h().$type(),models:h().$type(),name:x(),cwd:x(),prompt:x(),args:h().$type(),mcp:h().$type(),appendSystem:x(),addDirs:h().$type(),author:x(),definition:h().$type().notNull(),requestedBy:x(),runnerId:x(),engineSettings:h().$type(),tools:h().$type().notNull(),context:h().$type(),files:h().$type(),failureReply:x(),notice:x(),taskUrl:x(),settingsUrl:x(),result:h().$type(),error:x(),fallbacks:h().$type(),tokens:h(),engine:x(),model:x(),credential:x(),runnerMs:L(),tokenCount:T({mode:`number`}),usageTokens:h(),handle:x(),tokenHash:x(),lastSeenAt:J(),logCursor:L(),logSeq:L(),logBytes:L(),logsComplete:d(),typingEnded:d(),archivedAt:J(),approval:h().$type(),answer:h(),attempts:L().notNull().default(0),inboxSeq:L().notNull().default(k`'-1'`),inboxAck:L().notNull().default(k`'-1'`),generation:L().notNull().default(0),startedAt:J(),finishedAt:J(),cancelRequestedAt:J(),...Y},e=>[B(`task_organizationId_publicId_unique`).on(e.organizationId,e.publicId),z().on(e.publicId),z().on(e.organizationId,e.createdAt.desc(),e.publicId.desc()),z(`task_organizationId_unarchived_index`).on(e.organizationId,e.createdAt.desc(),e.publicId.desc()).where(k`${e.archivedAt} is null`),z().on(e.organizationId,e.updatedAt),z().on(e.organizationId,e.finishedAt),z().on(e.organizationId,e.audience),z().on(e.organizationId,e.requestedBy),z().on(e.organizationId,e.parent),z().on(e.organizationId).where(k`${e.status} = 'queued'`),z(`task_organizationId_active_index`).on(e.organizationId).where(k`${e.status} in ('queued', 'running', 'waiting')`),z().on(e.status,e.createdAt)]),Pt=q(`task_inbox`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),seq:L().notNull(),generation:L().notNull().default(0),kind:x().$type().notNull(),value:h(),at:J().notNull()},e=>[B(`task_inbox_taskId_seq_unique`).on(e.taskId,e.seq),z().on(e.taskId,e.generation,e.seq)]),Ft=q(`task_log`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),seqFrom:L().notNull(),seqTo:L().notNull(),lines:h().$type().notNull()},e=>[B(`task_log_taskId_seqFrom_unique`).on(e.taskId,e.seqFrom)]),It=q(`task_history`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),engine:x().$type().notNull(),conversation:x().notNull(),data:x().notNull(),state:x(),savedAt:J().notNull()},e=>[B(`task_history_taskId_conversation_unique`).on(e.taskId,e.conversation)]),Lt=q(`task_secret`,{id:w({mode:`number`}).primaryKey(),taskId:T({mode:`number`}).notNull().references(()=>$.id,{onDelete:`cascade`}),key:x().notNull(),secretId:Z().notNull(),expiresAt:J()},e=>[B(`task_secret_taskId_key_unique`).on(e.taskId,e.key),z().on(e.expiresAt).where(k`${e.expiresAt} is not null`)]),Rt=q(`task_tombstone`,{organizationId:x().notNull(),publicId:x().notNull(),audience:x(),requestedBy:x(),parent:x(),deletedAt:J().notNull()},e=>[te({name:`task_tombstone_pk`,columns:[e.organizationId,e.publicId]}),z().on(e.organizationId,e.deletedAt)]),zt=q(`approval_post`,{...X,key:x().notNull(),value:h().$type().notNull(),at:J().notNull(),shownAt:J(),retryAt:J(),expiresAt:J()},e=>[B(`approval_post_organizationId_key_unique`).on(e.organizationId,e.key),z().on(e.retryAt).where(k`${e.retryAt} is not null`),z(`approval_post_unshown_index`).on(e.at).where(k`${e.shownAt} is null`)]),Bt=q(`private_space`,{...X,integration:x().notNull(),app:x().notNull(),installation:x().notNull(),account:x().notNull(),kind:x().$type().notNull(),space:x().notNull(),syncedAt:J(),claimedAt:J()},e=>[B(`private_space_organizationId_integration_account_space_unique`).on(e.organizationId,e.integration,e.account,e.space)]),Vt=q(`space_member`,{spaceId:T({mode:`number`}).notNull().references(()=>Bt.id,{onDelete:`cascade`}),member:x().notNull()},e=>[B(`space_member_spaceId_member_unique`).on(e.spaceId,e.member)]),Ht=q(`chat_state`,{key:x().primaryKey(),value:h().notNull(),expiresAt:J()},e=>[z().on(e.expiresAt).where(k`${e.expiresAt} is not null`),z(`chat_state_key_prefix_index`).on(e.key.op(`text_pattern_ops`))]),Ut=q(`chat_item`,{key:x().notNull(),seq:T({mode:`number`}).generatedAlwaysAsIdentity(),value:h().notNull(),expiresAt:J()},e=>[te({name:`chat_item_key_seq_pk`,columns:[e.key,e.seq]}),z().on(e.expiresAt).where(k`${e.expiresAt} is not null`)]),Wt={secret:Tt,platformLink:Et,workspace:Dt,agent:Ot,agentVersion:kt,integrationApp:Q,integrationAppInstallation:At,engineCredential:jt,runner:Mt,connection:Nt,task:$,taskInbox:Pt,taskLog:Ft,taskHistory:It,taskSecret:Lt,taskTombstone:Rt,approvalPost:zt,privateSpace:Bt,spaceMember:Vt,chatState:Ht,chatItem:Ut};export{pt as a,Ot as agent,kt as agentVersion,zt as approvalPost,De as c,Ut as chatItem,Ht as chatState,wt as coder,Nt as connection,jt as engineCredential,yt as i,Q as integrationApp,At as integrationAppInstallation,St as n,H as o,Et as platformLink,Bt as privateSpace,Ct as r,Mt as runner,Fe as s,Tt as secret,Vt as spaceMember,xt as t,Wt as tables,$ as task,It as taskHistory,Pt as taskInbox,Ft as taskLog,Lt as taskSecret,Rt as taskTombstone,Dt as workspace};
|
package/dist/sdk.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $ as TurnResult, A as RunSummary, C as TaskResult, Ct as Access, D as archiveRuns, E as RunResult$1, H as DiscoveredFlow, K as FlowStep, M as review, N as CacheMigration, O as deleteRuns, P as readTurnResults, Q as Task, S as flowSdk, St as config$1, T as CoderError, Tt as SinceMessage, U as FlowEvent, W as FlowRecord, X as Approval, Z as Availability, _t as TaskTurn, a as ReviewResult, at as ConnectionRow, bt as Effort, ct as ModelsShape, dt as RunnerKind, et as TaskLogEntry, ft as RunnerPairing, gt as RunnerUpdate, ht as RunnerTest, it as Config, j as StopSummary, k as RunOptions, lt as ProbeResult, mt as RunnerSpec, nt as AgentRow, ot as LocalFolder, pt as RunnerRow, r as ReviewArgs, rt as AppSync, st as LocalFolders, tt as TokenUsage, ut as RunnerInput, vt as CoderConfig, w as readTask, wt as PlatformEvent, xt as McpConfigEntry, yt as CustomModelConfig } from "./index-CTAQrCRU.js";
|
|
2
2
|
import "zod/mini";
|
|
3
3
|
//#region src/core/engines/codex/index.d.ts
|
|
4
4
|
declare function getCodexAvailability(cwd: string): Availability;
|
|
@@ -6873,23 +6873,6 @@ declare const task$1: PgTableWithColumns<{
|
|
|
6873
6873
|
identity: undefined;
|
|
6874
6874
|
generated: undefined;
|
|
6875
6875
|
}, {}, {}>;
|
|
6876
|
-
reviewKey: PgColumn<{
|
|
6877
|
-
name: "reviewKey";
|
|
6878
|
-
tableName: "task";
|
|
6879
|
-
dataType: "string";
|
|
6880
|
-
columnType: "PgText";
|
|
6881
|
-
data: string;
|
|
6882
|
-
driverParam: string;
|
|
6883
|
-
notNull: false;
|
|
6884
|
-
hasDefault: false;
|
|
6885
|
-
isPrimaryKey: false;
|
|
6886
|
-
isAutoincrement: false;
|
|
6887
|
-
hasRuntimeDefault: false;
|
|
6888
|
-
enumValues: [string, ...string[]];
|
|
6889
|
-
baseColumn: never;
|
|
6890
|
-
identity: undefined;
|
|
6891
|
-
generated: undefined;
|
|
6892
|
-
}, {}, {}>;
|
|
6893
6876
|
runnerKind: PgColumn<{
|
|
6894
6877
|
name: "runnerKind";
|
|
6895
6878
|
tableName: "task";
|
|
@@ -7995,7 +7978,7 @@ declare const taskInbox: PgTableWithColumns<{
|
|
|
7995
7978
|
tableName: "task_inbox";
|
|
7996
7979
|
dataType: "string";
|
|
7997
7980
|
columnType: "PgText";
|
|
7998
|
-
data: "
|
|
7981
|
+
data: "ask" | "steer" | "approve" | "cancel";
|
|
7999
7982
|
driverParam: string;
|
|
8000
7983
|
notNull: true;
|
|
8001
7984
|
hasDefault: false;
|
|
@@ -8007,7 +7990,7 @@ declare const taskInbox: PgTableWithColumns<{
|
|
|
8007
7990
|
identity: undefined;
|
|
8008
7991
|
generated: undefined;
|
|
8009
7992
|
}, {}, {
|
|
8010
|
-
$type: "
|
|
7993
|
+
$type: "ask" | "steer" | "approve" | "cancel";
|
|
8011
7994
|
}>;
|
|
8012
7995
|
value: PgColumn<{
|
|
8013
7996
|
name: "value";
|
|
@@ -8185,7 +8168,7 @@ declare const taskHistory: PgTableWithColumns<{
|
|
|
8185
8168
|
tableName: "task_history";
|
|
8186
8169
|
dataType: "string";
|
|
8187
8170
|
columnType: "PgText";
|
|
8188
|
-
data: "
|
|
8171
|
+
data: "codex" | "claude";
|
|
8189
8172
|
driverParam: string;
|
|
8190
8173
|
notNull: true;
|
|
8191
8174
|
hasDefault: false;
|
|
@@ -8197,7 +8180,7 @@ declare const taskHistory: PgTableWithColumns<{
|
|
|
8197
8180
|
identity: undefined;
|
|
8198
8181
|
generated: undefined;
|
|
8199
8182
|
}, {}, {
|
|
8200
|
-
$type: "
|
|
8183
|
+
$type: "codex" | "claude";
|
|
8201
8184
|
}>;
|
|
8202
8185
|
conversation: PgColumn<{
|
|
8203
8186
|
name: "conversation";
|
|
@@ -8436,6 +8419,23 @@ declare const taskTombstone: PgTableWithColumns<{
|
|
|
8436
8419
|
identity: undefined;
|
|
8437
8420
|
generated: undefined;
|
|
8438
8421
|
}, {}, {}>;
|
|
8422
|
+
parent: PgColumn<{
|
|
8423
|
+
name: "parent";
|
|
8424
|
+
tableName: "task_tombstone";
|
|
8425
|
+
dataType: "string";
|
|
8426
|
+
columnType: "PgText";
|
|
8427
|
+
data: string;
|
|
8428
|
+
driverParam: string;
|
|
8429
|
+
notNull: false;
|
|
8430
|
+
hasDefault: false;
|
|
8431
|
+
isPrimaryKey: false;
|
|
8432
|
+
isAutoincrement: false;
|
|
8433
|
+
hasRuntimeDefault: false;
|
|
8434
|
+
enumValues: [string, ...string[]];
|
|
8435
|
+
baseColumn: never;
|
|
8436
|
+
identity: undefined;
|
|
8437
|
+
generated: undefined;
|
|
8438
|
+
}, {}, {}>;
|
|
8439
8439
|
deletedAt: PgColumn<{
|
|
8440
8440
|
name: "deletedAt";
|
|
8441
8441
|
tableName: "task_tombstone";
|
|
@@ -10893,23 +10893,6 @@ declare const tables: {
|
|
|
10893
10893
|
identity: undefined;
|
|
10894
10894
|
generated: undefined;
|
|
10895
10895
|
}, {}, {}>;
|
|
10896
|
-
reviewKey: PgColumn<{
|
|
10897
|
-
name: "reviewKey";
|
|
10898
|
-
tableName: "task";
|
|
10899
|
-
dataType: "string";
|
|
10900
|
-
columnType: "PgText";
|
|
10901
|
-
data: string;
|
|
10902
|
-
driverParam: string;
|
|
10903
|
-
notNull: false;
|
|
10904
|
-
hasDefault: false;
|
|
10905
|
-
isPrimaryKey: false;
|
|
10906
|
-
isAutoincrement: false;
|
|
10907
|
-
hasRuntimeDefault: false;
|
|
10908
|
-
enumValues: [string, ...string[]];
|
|
10909
|
-
baseColumn: never;
|
|
10910
|
-
identity: undefined;
|
|
10911
|
-
generated: undefined;
|
|
10912
|
-
}, {}, {}>;
|
|
10913
10896
|
runnerKind: PgColumn<{
|
|
10914
10897
|
name: "runnerKind";
|
|
10915
10898
|
tableName: "task";
|
|
@@ -12014,7 +11997,7 @@ declare const tables: {
|
|
|
12014
11997
|
tableName: "task_inbox";
|
|
12015
11998
|
dataType: "string";
|
|
12016
11999
|
columnType: "PgText";
|
|
12017
|
-
data: "
|
|
12000
|
+
data: "ask" | "steer" | "approve" | "cancel";
|
|
12018
12001
|
driverParam: string;
|
|
12019
12002
|
notNull: true;
|
|
12020
12003
|
hasDefault: false;
|
|
@@ -12026,7 +12009,7 @@ declare const tables: {
|
|
|
12026
12009
|
identity: undefined;
|
|
12027
12010
|
generated: undefined;
|
|
12028
12011
|
}, {}, {
|
|
12029
|
-
$type: "
|
|
12012
|
+
$type: "ask" | "steer" | "approve" | "cancel";
|
|
12030
12013
|
}>;
|
|
12031
12014
|
value: PgColumn<{
|
|
12032
12015
|
name: "value";
|
|
@@ -12202,7 +12185,7 @@ declare const tables: {
|
|
|
12202
12185
|
tableName: "task_history";
|
|
12203
12186
|
dataType: "string";
|
|
12204
12187
|
columnType: "PgText";
|
|
12205
|
-
data: "
|
|
12188
|
+
data: "codex" | "claude";
|
|
12206
12189
|
driverParam: string;
|
|
12207
12190
|
notNull: true;
|
|
12208
12191
|
hasDefault: false;
|
|
@@ -12214,7 +12197,7 @@ declare const tables: {
|
|
|
12214
12197
|
identity: undefined;
|
|
12215
12198
|
generated: undefined;
|
|
12216
12199
|
}, {}, {
|
|
12217
|
-
$type: "
|
|
12200
|
+
$type: "codex" | "claude";
|
|
12218
12201
|
}>;
|
|
12219
12202
|
conversation: PgColumn<{
|
|
12220
12203
|
name: "conversation";
|
|
@@ -12451,6 +12434,23 @@ declare const tables: {
|
|
|
12451
12434
|
identity: undefined;
|
|
12452
12435
|
generated: undefined;
|
|
12453
12436
|
}, {}, {}>;
|
|
12437
|
+
parent: PgColumn<{
|
|
12438
|
+
name: "parent";
|
|
12439
|
+
tableName: "task_tombstone";
|
|
12440
|
+
dataType: "string";
|
|
12441
|
+
columnType: "PgText";
|
|
12442
|
+
data: string;
|
|
12443
|
+
driverParam: string;
|
|
12444
|
+
notNull: false;
|
|
12445
|
+
hasDefault: false;
|
|
12446
|
+
isPrimaryKey: false;
|
|
12447
|
+
isAutoincrement: false;
|
|
12448
|
+
hasRuntimeDefault: false;
|
|
12449
|
+
enumValues: [string, ...string[]];
|
|
12450
|
+
baseColumn: never;
|
|
12451
|
+
identity: undefined;
|
|
12452
|
+
generated: undefined;
|
|
12453
|
+
}, {}, {}>;
|
|
12454
12454
|
deletedAt: PgColumn<{
|
|
12455
12455
|
name: "deletedAt";
|
|
12456
12456
|
tableName: "task_tombstone";
|
|
@@ -13823,7 +13823,9 @@ declare const agent: {
|
|
|
13823
13823
|
events?: Record<string, string[]>;
|
|
13824
13824
|
instructions?: string;
|
|
13825
13825
|
matches?: Record<string, string>;
|
|
13826
|
-
}): Promise<
|
|
13826
|
+
}): Promise<AgentDetail | (AgentRecord & {
|
|
13827
|
+
warning?: string;
|
|
13828
|
+
})>;
|
|
13827
13829
|
init: typeof init;
|
|
13828
13830
|
push: (id?: string, opts?: {
|
|
13829
13831
|
cwd?: string;
|
|
@@ -14120,7 +14122,9 @@ declare const _default: {
|
|
|
14120
14122
|
events?: Record<string, string[]>;
|
|
14121
14123
|
instructions?: string;
|
|
14122
14124
|
matches?: Record<string, string>;
|
|
14123
|
-
}): Promise<
|
|
14125
|
+
}): Promise<AgentDetail | (AgentRecord & {
|
|
14126
|
+
warning?: string;
|
|
14127
|
+
})>;
|
|
14124
14128
|
init: typeof init;
|
|
14125
14129
|
push: (id?: string, opts?: {
|
|
14126
14130
|
cwd?: string;
|
package/dist/sdk.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./errors-DK_trCff.js";import{g as t}from"./config-
|
|
1
|
+
import{t as e}from"./errors-DK_trCff.js";import{g as t}from"./config-_32PHl9g.js";import{n,r}from"./remote-Cl-j8r3W.js";import{A as i,j as a}from"./dispatch-BkoIU4GU.js";import{a as o}from"./executor-Ds4wDCzV.js";import{n as s}from"./agent-BZR4Eqdc.js";import{t as c}from"./sign-in-Dv-rdYD4.js";import{t as l}from"./connection-DNzNYpha.js";import{n as u}from"./docs-CxklYa3P.js";import{n as d}from"./models-mKyePWrV.js";import{n as f}from"./task-BRHXn5y1.js";import p from"./flow/index.js";import{n as m}from"./runner-DK0jnzPr.js";import{r as h}from"./env-BwFCHakK.js";import{n as g}from"./github-actions-2RjyRseX.js";const _=f,v=l,y=a,b=u,x=c;function S(...e){h();let t=import(`./serve-Cqlkgdfd.js`).then(({serverHandler:t})=>t(...e));return Object.assign(async(e,n)=>(await t)(e,n),{scheduled:async()=>(await t).scheduled(),close:async()=>(await t).close()})}const C={serve:async(...e)=>(await import(`./serve-Cqlkgdfd.js`)).serve(...e),rotateKey:async(...e)=>(await import(`./maintenance-BuDKnfc7.js`)).rotateKey(...e),workflow:g,app:{create:async(...e)=>(await import(`./apps-CCqOsEZH.js`).then(e=>e.t)).serverAppLink(...e)},handler:S},w={list:(e={})=>n(e).folders.list(),check:(e,t={})=>n(t).folders.check(e)},T=s;var E={task:_,flow:p,model:d,config:t,connection:v,setupHost:i,upgrade:y,docs:b,review:o,auth:x,agent:T,credentials:r,folders:w,runner:m,server:C};export{e as CoderError,T as agent,x as auth,t as config,v as connection,r as credentials,E as default,b as docs,p as flow,w as folders,d as model,o as review,m as runner,C as server,i as setupHost,_ as task,y as upgrade};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{t as e}from"./errors-DK_trCff.js";import{E as t,T as n,V as r}from"./state-CxAUec80.js";import{n as i}from"./types-DHBqXFE2.js";import{Z as a,s as o}from"./config-_32PHl9g.js";import{n as s}from"./integrations-DSZSa8Rc.js";import{i as c,n as l}from"./crypto-Ittsv-m4.js";import"./dispatch-BkoIU4GU.js";import{_ as u,a as d,g as f,l as p,o as m,p as h,r as g,s as _,t as v}from"./http-DRk8cDjf.js";import{n as y,r as b}from"./env-BwFCHakK.js";import{l as x}from"./github-actions-2RjyRseX.js";import{$ as S,$n as C,$r as w,$t as ee,A as te,An as T,Ar as E,At as D,B as O,Bn as k,Br as ne,Bt as re,C as ie,Cn as ae,Cr as oe,Ct as se,D as ce,Dn as le,Dr as ue,Dt as de,E as fe,En as pe,Er as me,Et as he,F as A,Fn as ge,Fr as _e,G as ve,Gn as ye,Gr as j,Gt as be,H as xe,Hn as Se,I as Ce,In as we,Ir as Te,It as Ee,Jn as De,Jr as Oe,Jt as ke,K as Ae,Kn as je,Kr as Me,L as Ne,Ln as Pe,Lr as Fe,Lt as Ie,M as Le,Mn as Re,Mr as ze,N as Be,Nn as Ve,Nr as He,Nt as Ue,O as We,On as Ge,Or as Ke,P as M,Pn as qe,Pr as Je,Pt as Ye,Q as Xe,Qr as Ze,Qt as Qe,R as N,Rn as $e,Rr as et,Rt as P,S as tt,Sn as nt,Sr as rt,St as it,T as at,Tn as ot,Tr as st,Tt as ct,U as lt,Un as ut,Ut as dt,V as F,Vn as ft,Vr as pt,Vt as mt,W as ht,Wn as gt,Wr as _t,X as vt,Xn as yt,Xr as bt,Y as I,Yn as xt,Yr as St,Yt as Ct,Z as wt,Zn as Tt,Zr as Et,_ as Dt,_n as Ot,_r as kt,a as At,an as jt,ar as L,at as Mt,b as Nt,bn as Pt,br as Ft,bt as It,c as R,ci as Lt,cn as Rt,ct as zt,d as Bt,dn as Vt,dr as Ht,dt as Ut,ei as z,en as Wt,er as Gt,et as Kt,f as qt,fn as Jt,fr as Yt,g as Xt,gn as Zt,gr as Qt,gt as $t,h as en,hn as tn,hr as nn,ht as rn,i as an,ii as on,it as sn,j as cn,jn as ln,jr as un,k as B,kn as dn,kr as fn,l as pn,ln as mn,lr as hn,lt as gn,m as _n,mn as vn,mr as yn,n as bn,ni as xn,nn as V,nr as Sn,nt as Cn,o as wn,on as Tn,or as En,ot as Dn,p as On,pn as kn,pr as An,q as jn,qn as Mn,qr as Nn,r as H,ri as Pn,rn as U,rr as Fn,rt as In,s as Ln,si as Rn,sn as zn,st as Bn,ti as W,tn as Vn,tr as Hn,tt as G,u as Un,un as Wn,ur as K,ut as Gn,v as Kn,vn as qn,vr as Jn,w as Yn,wn as Xn,wr as Zn,wt as Qn,x as q,xn as $n,xr as er,xt as tr,y as nr,yn as rr,yr as ir,z as J,zn as ar,zr as or,zt as sr}from"./apps-CCqOsEZH.js";import{m as cr,p as lr,v as ur}from"./local-CqOUpEtl.js";import{a as dr,c as fr,n as pr,o as mr,r as hr,s as gr}from"./metadata-D_bBfr3H.js";import _r from"node:path";import Y from"node:process";import vr from"node:fs";import{spawnSync as yr}from"node:child_process";import{createHash as br,randomBytes as xr,randomUUID as Sr}from"node:crypto";import Cr from"node:http";async function wr(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 Tr(e){let t=(e.now??Date.now)(),n=e.healthyAt!==void 0&&t-e.healthyAt<5e3,r=n||await Er(e);return e.healthyAt=r?n?e.healthyAt:t:void 0,d({ok:r},r?200:503,{"cache-control":`no-store`})}async function Er(e){return e.config.store===`postgres`?e.databaseHealth?e.databaseHealth().then(()=>!0,()=>!1):!1:!0}async function Dr(e){let t=(e.now??Date.now)();if(!e.local)return{...await e.queue.metrics(e.organizationId,t-864e5),runnersOnline:(await wr(e)).online,requests:e.limits?.requests??0,rateLimitRejections:e.limits?.rejections??0};let n=await e.queue.list(e.organizationId),r=e.local?[...U(e.local.cwd,!1),...U(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 wr(e)).online,requests:e.limits?.requests??0,rateLimitRejections:e.limits?.rejections??0}}async function Or(e,t,n,r){let i=t.session.user.id,a=(await e.json().catch(()=>({}))).engine??``;if(!Nr.has(a)||!t.config.subscriptions?.[a])return d({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 d({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>X(t));if(s)return d(Z(s.id,s.value));let c=`login-${xr(12).toString(`base64url`)}`,l=En(c,t.organizationId,0),u={owner:i,engine:a,state:`starting`,tokenHash:l.hash,runner:o.kind,createdAt:X(t),expiresAt:X(t)+Mr};await Pr(t,c,u);let f;try{let e=await o.start({id:c},{CODER_SERVER:t.config.publicUrl??``,CODER_TASK_TOKEN:l.token,CODER_LOGIN:a},void 0,{timeoutMs:Mr,hosts:[or[a].api,...or[a].account]}),n=await t.store.patchLogin(c,{handle:e},{tokenHash:u.tokenHash});if(!n)return await o.stop(e).catch(()=>{}),d({error:`This sign-in is gone. Start again.`},409);f=n}catch(e){return await t.store.delete(`login`,c),d({error:e instanceof Error?e.message:String(e)},502)}return d(Z(c,f),201)}async function kr(e,t,n,r){let i=n.id??``;if(!r.searchParams.has(`state`)){let e=i&&!i.includes(`/`)?await Q(t,i):void 0;return e?d(Z(i,e)):d({error:`This sign-in is gone. Start again.`},404)}let a=await t.store.watch(`login`,i);try{let n=i&&!i.includes(`/`)?await Q(t,i):void 0;if(!n)return d({error:`This sign-in is gone. Start again.`},404);let o=r.searchParams.get(`state`),s=Date.now()+25e3;for(;o&&n.state===o&&Date.now()<s&&!e.signal.aborted;)if(await a.wait(Math.min(1e4,s-Date.now()),e.signal),n=await Q(t,i),!n)return d({error:`This sign-in is gone. Start again.`},404);return d(Z(i,n))}finally{a.close()}}async function Ar(e,t,n,r){let i=n.id??``,a=i&&!i.includes(`/`)?await Q(t,i):void 0;if(!a)return d({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:on(t.config,s)},{state:`open`,tokenHash:a.tokenHash})?d({error:`This sign-in is not waiting for a code.`},409):d({ok:!0})}async function jr(e,t,n,r){let i=n.id??``,a=i&&!i.includes(`/`)?await Q(t,i):void 0;return a?(await t.store.delete(`login`,i),a.handle&&await t.runners[a.runner]?.stop(a.handle).catch(()=>{}),d({ok:!0})):d({error:`This sign-in is gone. Start again.`},404)}const Mr=6e5,Nr=new Set([`claude`,`codex`]),X=e=>(e.now??Date.now)();function Pr(e,t,n){return e.store.put(`login`,t,n,{ttlMs:Math.max(1,n.expiresAt-X(e))})}function Z(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}:{}}}async function Q(e,t){let n=await e.store.get(`login`,t);return n&&n.owner===e.session?.user.id?n:void 0}function Fr(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 Ir(e,t,n,r){let i=n.id,a=await t.store.watch(`login`,i),o=Date.now()+25e3;try{for(;;){if(e.signal.aborted)return d({});let n=await t.store.get(`login`,i);if(!n||n.tokenHash!==t.callbackLogin.tokenHash)return new Response(`Unauthorized`,{status:401});if(n.input){let e=await t.store.patchLogin(i,{input:null},{input:n.input,tokenHash:n.tokenHash});return d(e?{code:xn(t.config,n.input)}:{})}if(n.state===`verifying`||n.state===`done`||n.state===`failed`||Date.now()>=o)return d({});await a.wait(Math.min(1e4,o-Date.now()),e.signal)}}finally{a.close()}}async function Lr(e,t,n,r){return d({engine:t.callbackLogin.engine})}async function Rr(e,t,n,r){let i=n.id,a=t.callbackLogin,o=await e.json().catch(()=>({}));if(a.state===`done`||a.state===`failed`)return d({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)&&Fr(t,a),d({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 d({error:`Invalid sign-in result`},400);let n=o.result?.account;return await t.store.completeLogin(i,a.tokenHash,{...Pn(t.config,{env:c}),createdAt:(t.now??Date.now)(),...n?.email||n?.plan?{account:{...typeof n.email==`string`?{email:n.email}:{},...typeof n.plan==`string`?{plan:n.plan}:{}}}:{}})?(Fr(t,a),d({ok:!0})):d({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 await t.store.patchLogin(i,l.url?{...l,state:`open`}:l,s)?d({ok:!0}):d({error:`This sign-in changed. Try again.`},409)}const zr=e=>`create-finished:${c(e)}`;async function Br(e,t){let n=await e.store.get(`delivery`,zr(t));return n&&`target`in n?n.target:void 0}async function Vr(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.shareable)return{error:`Create this app in your workspace from the agent's Platforms tab.`,status:400};let a=Un(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=wn(t,a.state),s=a.state.tx?await Rn(e,a.state.tx,`create`,i)===o?a.state.tx:void 0:await Lt(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 Hr(e,t,n,r){let i=r.searchParams.get(`tx`);if(t.operatorApp&&i&&(await Rn(t,i,`create`,`*`)||await Br(t,i)===n.id))return await bt(e,t.dashboardHosts)??St();let a=new URLSearchParams(r.searchParams);return a.set(`create`,n.id),h(`${Ln(t)}${_n(Xt(t),`/setup`)}?${a}`)}async function Ur(e,t,n){let r=await Vr(e,t,n);if(`error`in r)return d({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,{saved:await Bt(e,t),name:r.definition.name,public:r.state.public}):void 0,s=e.config.publicUrl;if(i.createPost&&q.has(new URL(s).hostname))return d({error:`${e.integrations[t].name} cannot reach ${s}. Set a public address first.`},400);let c=e.operatorApp?void 0:pn(e,r.state.agent),u=i.createPost?.({publicUrl:s,spec:H(r.definition,r.state.agent,t),state:l({tx:a,...c?{back:c}:{}}),...r.state.owner?{owner:r.state.owner}:{},...r.state.public?{public:!0}:{}});return d({tx:a,...u?{post:u}:{},...o?{create:o}:{}})}async function Wr(e,t,n,r){return Ur(t,n.id,r.searchParams)}async function Gr(e,t,n){let r=await e.json().catch(()=>void 0);return Ur(t,n.integration,new URLSearchParams(r&&typeof r==`object`?r:{}))}async function Kr(e,t,n,r,a){let o=t.operatorApp??!1,s=o?`*`:t.session?.user.id??`anonymous`,c=t.integrations[n];if(!c)return R(t,`unknown-integration`,{platform:n},a);if(o&&!c.app.shareable)return d({error:`Create this app in your workspace from the agent's Platforms tab.`},400);let u=t.config.publicUrl;if(!u)return R(t,`no-public-url`,{},a);let f=r?await qt(t,r,n,s):void 0;if(!f)return R(t,`create-expired`,{platform:n},a);o&&await t.store.put(`delivery`,zr(r),{at:t.now?.()??Date.now(),target:n},{ttlMs:6e5});let p=o?`/create/${n}`:pn(t,f.state.agent),m=o?{tx:r}:{},g=o?void 0:(await bn(t)).find(e=>e.integration===n),_=await c.app.createCallback(e,{publicUrl:u,spec:H(f.definition,f.state.agent,n),fetch:t.fetch??fetch,tokens:an(t,n),...g?{shared:xn(t.config,g.credentials)}:{}}).catch(r=>r instanceof i&&r.code===`invalid-field`&&e.headers.get(`accept`)===`application/json`?d({error:r.message},400):r instanceof i?R(t,r.code,{platform:n,error:r.error,...m},p):(console.error(`coder server: creating the ${n} app failed`,r),R(t,`failed`,{platform:n,...m},p)));if(_ instanceof Response)return _;let v={id:`${n}:${_.platformAppId}`,integration:n,agent:f.state.agent,name:_.name,...f.state.repo?{agentsRepo:f.state.repo}:{},...f.state.repo?{branch:f.state.branch??`main`}:{},...o?{builtin:!0}:{},...`shared`in _?{shared:g.id,credentials:``}:{credentials:on(t.config,_.credentials)},createdAt:t.now?.()??Date.now()};if(await t.store.put(`app`,v.id,v),c.app.values&&await t.store.put(`delivery`,un(v.id),{version:0,manifest:c.app.values(v,{publicUrl:u,spec:H(f.definition,v.agent,n)}).lines,changed:!1}),o)return await Ft(t,`Created the shared app`,`${_.name} on ${c.name}`),R(t,`created`,{platform:n,app:_.name,...m},p);let y=await Lt(t,`install`,s,v.id);return h(`${u}/install/${n}?app=${encodeURIComponent(v.id)}&state=${l({tx:y,back:p})}`)}async function qr(e,t,n,r){let i=g(r.searchParams.get(`state`));return Kr(e,t,n.id,i?.tx,At(i?.back))}async function Jr(e,t,n,r){let i=new URLSearchParams(await e.clone().text()).get(`tx`),a=await Kr(e,t,n.id,i,void 0),o=a.headers.get(`location`);return o&&e.headers.get(`accept`)===`application/json`?d({url:o}):a}async function Yr(e,t){let n=(await e.store.list(`installation`)).filter(({value:t})=>!t.deletedAt&&e.integrations[t.integration]?.repos),r=new Map((await ue(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=await mn(e,n,i,xn(e.config,a.credentials));if(i.repos?.includes(t)||(await n.repos.list(Wn(e,i),r)).includes(t))return{contents:n,token:r,app:a,installation:i}}catch(e){console.error(`coder server: repository access for ${i.id} failed`,e)}}}async function Xr(e,t,n){let r=await Yr(e,t);if(!r)return d({error:`No installed app can read ${t}`},400);let i=await r.contents.repos.listDir(t,Ke,r.token,n).catch(()=>[]),o=await Promise.all(i.map(async i=>{let o=await r.contents.repos.readFile(t,`${Ke}/${i}/agent.json`,r.token,n).catch(()=>void 0);if(o===void 0)return;let s={};try{let e=JSON.parse(o);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])=>a(e,t)),l=await lr(e.store,i),u=l?.source===`repo`&&l.repo===t,d=u?await cr(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 d({repo:t,agents:o.filter(Boolean)})}async function Zr(e,t,n,r){let i=r.searchParams.get(`repo`);return i?Xr(t,i,r.searchParams.get(`ref`)||`HEAD`):d({error:`repo is required`},400)}async function Qr(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 d({error:`repo is required, ref must be a string and agents a list of ids`},400);try{let e=await Yr(t,i.repo);if(!e)return d({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 lr(t.store,e);if(n&&(n.source!==`repo`||n.repo!==i.repo))return d({error:`Agent id "${e}" is already taken`},409)}let o=await fn(t.store,e.contents,i.repo,n,e.token,(t.now??Date.now)(),{slugs:r});return await ze(t,o),d({imported:o.map(e=>e.agent)})}catch(e){return d({error:e instanceof Error?e.message:String(e)},400)}}async function $r(e,t,n,r){let i=n.id,a=Number(r.searchParams.get(`after`)??-1),o=Number.isFinite(a)?a:-1,s=t.routeTask??await t.store.get(`task`,i);if(!s&&t.taskPrincipal)return d({error:`No task "${i}"`},404);if(!s||t.local&&s.handle?.startsWith(`cli:`)&&s.task.flow==="default"){let n=s?.task.cwd??t.local?.cwd;if(!n||!V(n,i,!1))return d({error:`No task "${i}"`},404);{let r=Number(e.headers.get(`last-event-id`)??o);return ui(e,t,`cli:${n}:${i}`,Number.isFinite(r)?r:o,async e=>{let t=V(n,i);if(t)return{status:t,lines:Vn(n,i,e,ri),pendingResult:ni(n,t,!t.result)}})}}let c=Number(e.headers.get(`last-event-id`)??o);return ui(e,t,i,Number.isFinite(c)?c:o,{ctx:t,id:i},ti(t))}const ei=3e4;function ti(e){let t=e.now??Date.now,n={at:t(),seen:!0};return async r=>{let{task:i}=r,a=await K(e);return L(a&&{...a,spaces:[]},i)?!0:i.audience?.startsWith(`space:`)?((n.audience!==i.audience||t()-n.at>=ei)&&(n={at:t(),audience:i.audience,seen:L(await K(e,[i.audience]),i)}),n.seen):!1}}function ni(e,t,i=!1){if(!vn.has(t.status)||t.error||t.status===`cancelled`)return!1;let a=n(e,t.task.id),o=Date.parse(a?.resumedAt??a?.createdAt??``)||0;return i||(vr.statSync(_r.join(r(e,t.task.id),`result.json`),{throwIfNoEntry:!1})?.mtimeMs??0)<o}const ri=500,$=3e4;function ii(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 si,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(`id: ${f}${s}\n\n${p}`)),h=o.watch(t,i,f,e=>n.enqueue(m.encode(e)),()=>n.close());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 ai(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,approvals:e.approvals??n.context?.approvals??null,archivedAt:e.autoArchived&&!t?void 0:i,createdAt:a,startedAt:o,finishedAt:s,...Ee(e),...t?{result:e.result??null,error:e.error??null,answer:e.answer??null}:{}}}const oi=(e,t)=>`${e}:${t??``}`;var si=class{options;watches=new Set;counts=new Map;views=new Map;runners=new Map;reading=!1;closed=!1;scans=new Map;left=new Map;archived=new Map;reads=0;generation=Sr().slice(0,8);constructor(e={}){this.options=e}watch(e,t,n,r,i){if(this.closed)return queueMicrotask(i),()=>{};let a={ctx:e,ids:new Set(t),from:n,tag:this.tag(e),send:r,close:i};return this.watches.add(a),this.poll(),()=>this.watches.delete(a)}tag(e){return`-${br(`sha256`).update(e.organizationId).digest(`hex`).slice(0,8)}${e.queue instanceof D?`.${this.generation}`:``}`}runnersChanged(e){this.runners.delete(e)}close(){this.closed=!0;for(let e of[...this.watches])this.end(e)}end(e){this.watches.delete(e);try{e.close()}catch{}}poll(){if(this.reading||!this.watches.size)return;this.reading=!0;let e=[...this.watches];this.read(e,Date.now()).catch(e=>console.error(`coder server: task events failed`,e)).finally(()=>{for(let t of e)this.end(t);this.reading=!1,this.poll()})}async read(e,t){for(let[e,{at:n}]of this.counts)t-n>=$&&this.counts.delete(e);for(let[e,{at:n}]of this.views)t-n>=ei&&this.views.delete(e);for(let[e,{at:n}]of this.runners)t-n>=15e3&&this.runners.delete(e);let n=new Map;for(let t of e){let e=n.get(t.ctx.organizationId)??{ctx:t.ctx,ids:new Set};for(let n of t.ids)e.ids.add(n);n.set(t.ctx.organizationId,e)}this.reads++;let r=await this.changes(n,Math.min(...e.map(e=>e.from))-$,t).catch(e=>{console.error(`coder server: task events failed`,e)});if(!r)return;let i=new Map;try{for(let[a,{ctx:o}]of n){let n=JSON.stringify([[...r.rows.get(a)??[]].map(([e,t])=>[e,t.status,t.archivedAt]).sort(),[...r.deleted.get(a)?.keys()??[]].sort()]),s=e.filter(e=>e.ctx.organizationId===a);for(let e of new Set(s.map(e=>e.ctx.taskPrincipal?.task))){let s=oi(a,e),c=this.counts.get(s),l=c?.fingerprint!==n,u=o.local?[...r.rows.get(a)?.values()??[]].filter(t=>!t.archivedAt&&[`queued`,`running`,`waiting`].includes(t.status)&&(!e||t.task.parent===e)).map(e=>({...hn(e.task),requestedBy:e.task.requestedBy,active:1})):l?e?[{audience:``,active:(await o.queue.counts(a,{archived:!1,statuses:[`queued`,`running`,`waiting`],parent:e})).active}]:await o.queue.activeCounts(a):c.groups;i.set(s,u),this.counts.set(s,{groups:u,fingerprint:n,at:l?t:c.at})}}}catch(e){console.error(`coder server: task counts failed`,e);return}let a=new Map(await Promise.all(e.map(async e=>{let{organizationId:n,session:a,taskPrincipal:o}=e.ctx,s=`${n}:${a?.user.id??``}:${o?.task??``}`,c=[...r.rows.get(n)?.values()??[]],l=new Set([...c.map(e=>e.task.audience),...[...r.deleted.get(n)?.values()??[]].map(e=>e.audience),...(i.get(oi(n,o?.task))??[]).map(e=>e.audience)].filter(e=>!!e?.startsWith(`space:`))),u=this.views.get(s);if(!u||[...l].some(e=>!u.audiences.has(e))||c.some(e=>e.updatedAt>u.at&&l.has(e.task.audience))){let n=K(e.ctx,[...l]),r={at:t,audiences:l,view:n};this.views.set(s,r),n.catch(()=>this.views.get(s)===r&&this.views.delete(s))}return[e,await this.views.get(s).view]})));await Promise.all([...n].filter(([e])=>!this.runners.has(e)).map(async([e,{ctx:n}])=>{this.runners.set(e,{at:t,records:[]});let r=this.runners.get(e);try{let t=await n.store.list(`runner`);this.runners.get(e)===r&&(r.records=t)}catch(t){this.runners.get(e)===r&&this.runners.delete(e),console.error(`coder server: runner events failed`,t)}}));for(let n of e){if(!this.watches.has(n))continue;let e=[];try{let o=a.get(n);e=this.news(n,r,t,o);let s=i.get(oi(n.ctx.organizationId,n.ctx.taskPrincipal?.task))?.filter(e=>L(o,e)).reduce((e,t)=>e+t.active,0);s!==void 0&&e.push(`id: ${t}${n.tag}\nevent: counts\ndata: ${JSON.stringify({active:s})}\n\n`);let c=this.runners.get(n.ctx.organizationId);c&&e.push(`id: ${t}${n.tag}\nevent: runners\ndata: ${JSON.stringify({items:he(n.ctx,c.records,t)})}\n\n`)}catch{}e.length||e.push(`id: ${t}${n.tag}\n\n`);try{n.send(e.join(``))}catch{}}}async changes(e,t,r){let i=await[...e.values()][0].ctx.queue.changes([...e].map(([e,t])=>({organizationId:e,ids:[...t.ids],fresh:[...t.ids]})),t),a=new Map;for(let{organizationId:e,status:t}of i.rows){let n=a.get(e)??new Map;a.set(e,n.set(t.task.id,t))}let o=new Map;for(let{organizationId:e,id:t,...n}of i.deleted){let r=o.get(e)??new Map;o.set(e,r.set(t,n))}for(let[t,{ctx:i}]of e){if(!i.local)continue;let e=[...a.get(t)?.values()??[]],o=this.scans.get(i.local.cwd);if(!o||r-o.at>=(this.options.localScanMs??4e3)||e.some(e=>e.updatedAt>o.at)){let e=!o||r-o.archivedAt>=(this.options.archiveScanMs??15e3);await zn(i,i.local.cwd);let t=e?U(i.local.cwd,!0):o.archived,a=U(i.local.cwd,!1),s=new Set(a.map(e=>e.task.id)),c=[...a,...t.filter(e=>!s.has(e.task.id))],l=new Set(c.map(e=>e.task.id)),u=this.left.get(i.local.cwd)??new Map;for(let e of o?.rows??[])l.has(e.task.id)||u.set(e.task.id,o.at);for(let[e,t]of u)(t<r-6e5||l.has(e))&&u.delete(e);let d=this.archived.get(i.local.cwd)??new Set;for(let e of d)l.has(e)?d.delete(e):n(i.local.cwd,e)||(u.set(e,o?.at??r),d.delete(e));this.left.set(i.local.cwd,u),this.scans.set(i.local.cwd,o={at:r,rows:c,archived:t,archivedAt:e?r:o.archivedAt})}a.set(t,new Map(nt(i.local.cwd,o.rows,e).map(e=>[e.task.id,e])))}return{rows:a,deleted:o}}news(e,{rows:t,deleted:n},r,i){let{ctx:a}=e,o=a.taskPrincipal?.task,s=t.get(a.organizationId)??new Map;if(o)for(let t of e.ids)s.get(t)?.task.parent!==o&&e.ids.delete(t);let c=[],l=new Map,u=(t,n)=>{let i=JSON.stringify(n);l.get(t)!==i&&(l.set(t,i),c.push(`id: ${r}${e.tag}\nevent: task\ndata: ${i}\n\n`))},d=e=>({id:e,deleted:!0}),f=t=>{let n=a.local&&!o&&V(a.local.cwd,t,e.ids.has(t));if(u(t,n?ai(n,e.ids.has(t)):d(t)),n&&a.local){let e=this.archived.get(a.local.cwd)??new Set;this.archived.set(a.local.cwd,e.add(t))}};for(let[t,n]of s){if(o&&n.task.parent!==o||!L(i,n.task))continue;let s=e.ids.has(t),c=ai(s&&a.local&&n.local&&vn.has(n.status)?V(a.local.cwd,t)??n:n,s);if(a.local&&n.local&&r-(n.finishedAt??0)<$&&ni(a.local.cwd,n)){l.set(t,``);continue}(s||n.updatedAt>e.from-$)&&u(t,c)}for(let t of e.ids)s.has(t)||f(t);for(let[t,{at:r,...s}]of n.get(a.organizationId)??[])r>e.from-$&&L(i,s)&&(!o||s.parent===o)&&u(t,d(t));if(a.local)for(let[t,n]of this.left.get(a.local.cwd)??[])n>e.from-$&&!s.has(t)&&l.get(t)!==JSON.stringify(d(t))&&f(t);return c}};const ci=1e4;var li=class{options;feeds=new Map;closed=!1;reads=0;constructor(e={}){this.options=e}watch(e,t,n,r,i,a){if(this.closed)return queueMicrotask(i),()=>{};let o=this.feeds.get(e),s=o?.reading!==void 0&&Date.now()-o.reading>=(this.options.stallMs??ci);if(!o||s){let t={key:e,source:n,watches:new Set};if(o){for(let e of o.watches)t.watches.add(Object.assign(e,{feed:t}));o.watches.clear()}this.feeds.set(e,o=t)}let c={cursor:t,feed:o,send:r,close:i,sees:a};return o.watches.add(c),o.reading===void 0&&this.read(o),()=>this.drop(c)}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;!t.watches.delete(e)||t.watches.size||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){let t=[...e.watches],n=Math.min(...t.map(e=>e.cursor));e.reading=Date.now(),this.reads++;let r=e=>(console.error(`coder server: task log read failed`,e),null),{source:i}=e,a;if(typeof i==`function`)a=await i(n).catch(r);else{let{ctx:e,id:t}=i,o=()=>e.queue.logTails([{organizationId:e.organizationId,id:t,after:n}],500);a=await(e.statementTimeout?e.statementTimeout(ci,o):o()).then(([e])=>e).catch(r)}await this.settle(e,t,a)}async settle(e,t,n){let r=n?await Promise.all(t.map(async e=>await e.sees?.(n.status).catch(()=>!1)===!1)):[];if(e.reading=void 0,this.feeds.get(e.key)!==e)return;t.forEach((e,t)=>r[t]&&this.end(e));let i=t.filter(t=>e.watches.has(t)),a=i.length<e.watches.size;if(n){let{status:e,lines:t,pendingLogs:r,pendingResult:o}=n,s=t.length===500,c=vn.has(e.status)&&!s&&!r&&!o,l=t.map(e=>[e.seq,`id: ${e.seq}\nevent: log\ndata: ${JSON.stringify(e)}\n\n`]);s&&(a=!0);let u=e.status===`waiting`?e.approval:void 0;for(let e of i){let n=l.flatMap(([t,n])=>t>e.cursor?[n]:[]).join(``);!s&&!c&&(n+=`event: caught-up
|
|
5
|
+
data: {}
|
|
6
|
+
|
|
7
|
+
`),!s&&u?.id&&(n+=`event: approval\ndata: ${JSON.stringify(u)}\n\n`),e.cursor=Math.max(e.cursor,t.at(-1)?.seq??-1),c?this.end(e,`${n}event: end\ndata: {}\n\n`):s?this.send(e,n):this.end(e,n)}}else for(let e of i)this.end(e);a&&this.feeds.get(e.key)===e&&this.read(e)}};function ui(e,t,n,r,i,a){let o=t.logWatcher??new li,s=new TextEncoder,c=()=>{},l=new ReadableStream({start(l){c=o.watch(`${t.organizationId}:${n}`,r,i,e=>l.enqueue(s.encode(e)),()=>l.close(),a);let u=()=>{c();try{l.close()}catch{}};e.signal.aborted?u():e.signal.addEventListener(`abort`,u)},cancel(){c()}});return new Response(l,{headers:{"content-type":`text/event-stream; charset=utf-8`,"cache-control":`no-cache, no-transform`}})}const di={npm:[`npx`,`-y`],pypi:[`uvx`],oci:[`docker`,`run`,`-i`,`--rm`]},fi=(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 pi(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]=fi([{...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 mi(e){let t=e.remotes?.find(e=>e.type===`streamable-http`);if(t)return{type:`http`,url:t.url,env:[],headers:fi(t.headers)};let n=e.packages?.find(e=>di[e.registryType]&&(e.transport?.type??`stdio`)===`stdio`);if(!n)return;let[r,...i]=di[n.registryType],a=[],o=pi(n.runtimeArguments,`runtime`,a),s=pi(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:fi(n.environmentVariables),headers:[]}}function hi(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}function gi(e,t,n){for(let{server:r,_meta:i}of n){let n=i?.[`io.modelcontextprotocol.registry/official`]?.isLatest===!0,a=r.version??``,o=t.get(r.name);if(o&&(o.latest===n?hi(o.version,a)>=0:o.latest))continue;let s=mi(r),c=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+\//i.test(r.name)&&!/^io\.github(?:\.|\/)/i.test(r.name),l=r.name.split(`/`).pop()??r.name,u=c&&/^(mcp|mcp-server|server)$/i.test(l)?r.name.split(`/`)[0].split(`.`).pop():l;t.set(r.name,{version:a,latest:n,found:s?{name:r.name,title:r._meta?.[`io.modelcontextprotocol.registry/publisher-provided`]?.github?.displayName??r.title??u,description:r.description??``,...c?{verified:!0}:{},...e.curated?{curated:!0}:{},...s}:void 0})}}var _i=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;async response(e,t){(e.now??Date.now)()>=this.refreshAt&&this.refresh(e);let n=t.trim().toLowerCase(),r=n?await Promise.all(this.sources.map(async t=>{let r=new Map;if(!t.ready)try{let i=new URLSearchParams({search:n,limit:`100`}),a=await(e.fetch??fetch)(`${t.url}?${i}`,{headers:{accept:`application/json`},signal:AbortSignal.any([this.controller.signal,AbortSignal.timeout(2e4)])});if(!a.ok)throw Error(`Registry unavailable`);let{servers:o}=await a.json();gi(t,r,o)}catch{}return r})):[],i=this.sources.map((e,t)=>{let n=r[t];if(!n?.size)return e.rows;let i=new Map(e.rows);for(let[e,t]of n)i.has(e)||i.set(e,t);return i});if(!this.inFlight&&this.sources.some(e=>e.failed)&&!i.some(e=>[...e.values()].some(e=>e.found)))return d({error:`The MCP registry did not answer. Try again.`},502);let a=new Set,o=this.sources.flatMap((e,t)=>[...i[t]].flatMap(([t,{found:r}],i)=>{if(a.has(t)||(a.add(t),!r))return[];let o=r.verified?r.name.split(`/`)[0].split(`.`).pop().toLowerCase():void 0,s=[r.name.split(`/`).pop(),r.title,...o?[o]:[]].map(e=>e.toLowerCase()),c=!n||s.includes(n)?0:s.some(e=>e.startsWith(n))?1:s.some(e=>e.includes(n))?2:r.description.toLowerCase().includes(n)?3:4;if(c===4)return[];let l=!n||c===3?2:o===n?0:r.verified?1:2;return[{found:r,curated:e.curated,order:i,vendor:l,quality:c}]})),s=e=>Number(e===3);return o.sort((e,t)=>s(e.quality)-s(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))),d(o.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();if(gi(t,r,c),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 vi(e,t,n){let r=t.settings??={};return await(r.registry??=new _i).response(t,n.searchParams.get(`q`)??``)}const yi=[W(`GET`,`/runner/:file`,x),W(`GET`,Kn,Nt),W(`GET`,dr,fr,{guard:F}),W(`GET`,pr,mr,{guard:F}),W(`GET`,hr,gr,{guard:F}),W(`GET`,`/health`,(e,t)=>Tr(t)),W(`GET`,new URL(o).pathname,Vt),W(`GET`,`/`,Nn,{guard:ve}),W(`GET`,`/login`,Et,{guard:wt}),...z(`/login`,Oe,wt).filter(e=>e.method!==`GET`),W(`POST`,`/dash/token`,Me,{guard:Le}),...z(`/dash/:org/operator`,j,ht),...z(`/dash`,j,cn)],bi=[W(`GET`,`/api/auth/capabilities`,(e,t)=>d({wular:t.auth?.issuer??null})),...z(`/api/auth`,(e,t)=>t.auth.handler(e),fe),W(`GET`,`/me`,en,{guard:tt})],xi=[...w(`/tasks`,[W(`GET`,`/:id/messages`,Mt,{guard:M}),W(`POST`,`/:id/ack`,Cn,{guard:M}),W(`POST`,`/:id/heartbeat`,In,{guard:M}),W(`POST`,`/:id/logs`,Bn,{guard:O}),W(`POST`,`/:id/result`,zt,{guard:I}),W(`POST`,`/:id/credential`,Dn,{guard:I}),W(`POST`,`/:id/connection`,Ut,{guard:G}),W(`POST`,`/:id/reply`,Gn,{guard:G}),W(`POST`,`/:id/react`,gn,{guard:G}),W(`GET`,`/:id/history`,Hn,{guard:G}),W(`GET`,`/:id/history/:conversation`,Sn,{guard:G}),W(`POST`,`/:id/history`,Fn,{guard:I}),W(`GET`,`/:id`,sn,{guard:We})]),...w(`/logins`,[W(`GET`,`/:id/input`,Ir,{guard:J}),W(`GET`,`/:id`,Lr,{guard:J}),W(`POST`,`/:id`,Rr,{guard:J})]),...w(`/runners`,[W(`POST`,`/register`,ct)])],Si=[...w(`/create`,[W(`GET`,`/:id`,Hr,{guard:B}),W(`POST`,`/:id`,Wr,{guard:B}),W(`GET`,`/:id/callback`,qr,{guard:B}),W(`POST`,`/:id/callback`,Jr,{guard:B})]),...w(`/install`,[W(`GET`,`/:id`,Re,{guard:A}),W(`POST`,`/:id`,Re,{guard:A}),W(`GET`,`/:id/callback`,ln,{guard:A}),W(`POST`,`/:id/callback`,ln,{guard:A})])],Ci=w(`/connect`,[W(`GET`,`/:integration`,Dt,{guard:xe}),W(`GET`,`/:integration/callback`,On,{guard:xe})]),wi=[...w(`/hooks`,[W(`POST`,`/*`,(e,t,n)=>le(e,t,n[`*`]),{guard:(e,t,n)=>t.integrations[n[`*`]]?t:p()})]),...Si,...Ci],Ti=[W(`GET`,`/metrics`,async(e,t)=>d(await Dr(t),200,{"cache-control":`no-store`}),{guard:Yn}),W(`GET`,`/usage`,rn,{approvalPolicy:`allow`}),W(`GET`,`/usage/totals`,$t,{approvalPolicy:`allow`})],Ei=w(``,[W(`GET`,`/folders`,(e,t)=>d(_e(t.local.cwd))),W(`POST`,`/folders/check`,async(e,t)=>{let n=await e.json().catch(()=>void 0);return d(He(n?.path))}),W(`POST`,`/folders/clone`,async(e,t)=>{let n=await e.json().catch(()=>void 0);return d(await Je(n?.url))}),W(`POST`,`/folders/pick`,async(e,t)=>d(await Te()))],Ne),Di=w(``,[W(`GET`,`/engines/status`,async(e,t)=>d(await Wt(t))),W(`POST`,`/engines/:engine/login`,Qe),W(`POST`,`/engines/:engine/logout`,ee)],Be),Oi=[W(`POST`,`/apps/:id/install`,(e,t,n,r)=>Ht(e,t,n.id,r.searchParams.get(`back`))),W(`POST`,`/apps/create/:integration`,Gr),W(`GET`,`/apps`,yn),W(`DELETE`,`/apps/:id`,kt),W(`GET`,`/apps/:id/drift`,Qt),W(`POST`,`/apps/:id/update`,ir),W(`GET`,`/installations`,nn),W(`DELETE`,`/installations/:id`,Jn,{guard:(e,t)=>jn(t,`Only an owner or admin can uninstall an app.`)}),W(`GET`,`/connections`,mt,{guard:P,approvalPolicy:`allow`}),W(`POST`,`/connections`,sr,{guard:P}),W(`PATCH`,`/connections/:id`,dt,{guard:P}),W(`DELETE`,`/connections/:id`,re,{guard:P}),W(`POST`,`/connections/:id/authorize`,Ie,{guard:P}),W(`GET`,`/integrations`,(e,t,n,r)=>An(t,r)),W(`GET`,`/repositories`,(e,t)=>Yt(t)),W(`POST`,`/repositories/refresh`,(e,t)=>Yt(t,!0))],ki=[W(`GET`,`/agents/import`,Zr),W(`POST`,`/agents/import`,Qr),W(`GET`,`/agents`,je,{approvalPolicy:`allow`}),W(`PATCH`,`/agents/:slug/settings`,ye,{guard:at,approvalPolicy:`ask`,change:`agent-settings`}),W(`GET`,`/agents/:slug/versions`,Mn),W(`GET`,`/agents/:slug/versions/:version`,xt,{approvalPolicy:`allow`}),W(`GET`,`/agents/:slug`,De,{approvalPolicy:`allow`}),W(`DELETE`,`/agents/:slug`,ut,{guard:(e,t)=>jn(t,`Only an owner or admin can delete an agent.`)}),W(`PUT`,`/agents/:slug`,gt,{approvalPolicy:`ask`,change:`agent-version`})],Ai=[W(`GET`,`/credentials`,Ct,{approvalPolicy:`allow`}),W(`POST`,`/credentials`,be,{guard:te}),W(`DELETE`,`/credentials/:name`,ke),W(`POST`,`/logins`,Or,{guard:N}),W(`GET`,`/logins/:id`,kr,{guard:N}),W(`POST`,`/logins/:id`,Ar,{guard:N}),W(`DELETE`,`/logins/:id`,jr,{guard:N})],ji=[W(`GET`,`/runners`,se,{approvalPolicy:`allow`}),W(`POST`,`/runners`,tr),W(`POST`,`/runners/pair`,Qn),W(`POST`,`/runners/:id/test`,It),W(`PATCH`,`/runners/:id`,de,{approvalPolicy:`ask`,change:`runner-default`}),W(`DELETE`,`/runners/:id`,it)],Mi=[W(`GET`,`/composer`,Pt),W(`GET`,`/tasks`,$n,{approvalPolicy:`allow`}),W(`POST`,`/tasks`,tn,{guard:Kt,approvalPolicy:`allow`}),W(`GET`,`/tasks/:id`,ae,{guard:S(),approvalPolicy:`allow`}),W(`DELETE`,`/tasks/:id`,Xn,{guard:S()}),W(`GET`,`/tasks/:id/logs`,pe,{guard:S(),approvalPolicy:`allow`}),W(`GET`,`/tasks/:id/stream`,$r,{guard:S(),approvalPolicy:`allow`}),W(`POST`,`/tasks/:id/steer`,ot,{guard:S(!0),approvalPolicy:`allow`}),W(`POST`,`/tasks/:id/ask`,qn,{guard:S(!0),approvalPolicy:`allow`}),W(`POST`,`/tasks/:id/approve`,Zt,{guard:S(!0),approvalPolicy:`allow`}),W(`POST`,`/tasks/:id/requests/:approval`,Ve,{guard:S()}),W(`GET`,`/approvals/pending`,(e,t)=>qe(t),{guard:Yn}),W(`POST`,`/tasks/:id/cancel`,rr,{guard:S(),approvalPolicy:`allow`}),W(`POST`,`/tasks/:id/archive`,Ot,{guard:S(),approvalPolicy:`allow`}),W(`GET`,`/events`,ii,{approvalPolicy:`allow`})],Ni=[W(`GET`,`/config`,kn),W(`PATCH`,`/config`,Jt)],Pi=[W(`POST`,`/models/probe`,(e,t)=>ft(e,t)),W(`GET`,`/models`,k,{approvalPolicy:`allow`}),W(`POST`,`/models`,we),W(`DELETE`,`/models/:name`,Pe),W(`PATCH`,`/models/:name`,Se,{approvalPolicy:`ask`,change:`model-update`}),W(`POST`,`/models/:name/alias`,ge,{approvalPolicy:`ask`,change:`model-alias`}),W(`POST`,`/models/:name/disable`,$e,{approvalPolicy:`ask`,change:`model-disable`}),W(`POST`,`/models/:name/enable`,ar,{approvalPolicy:`ask`,change:`model-enable`})],Fi=[W(`GET`,`/mcp-registry`,(e,t,n,r)=>vi(e,t,r))],Ii=w(`/operator`,[W(`GET`,`/apps`,rt),W(`POST`,`/apps/:integration`,oe),W(`GET`,`/apps/:integration/drift`,Zn),W(`POST`,`/apps/:integration/update`,st),W(`GET`,`/audit`,er)],lt),Li=[W(`GET`,`/flows`,Ge),W(`GET`,`/pulls`,dn),W(`POST`,`/flows/:name/run`,T)],Ri=w(`/admin`,[...Ti,...Ei,...Di,...Oi,...ki,...Ai,...ji,...Mi,...Ni,...Pi,...Fi,...Li,...Ii]).map(e=>({...e,guard:ie(e.guard,e)})),zi=[W(`GET`,`/connections/oauth/callback`,(e,t,n,r)=>nr(e,t,r),{guard:ce}),...xi,...Ri,...bi,...wi,...yi];async function Bi(e,t,n){if(!Ce(e,t))return p();let r=new URL(e.url);return n.scope instanceof Response?n.scope:(t=n.scope??t,await Ze(zi,e,t,r)??j(e,t))}async function Vi(e,t,n={}){t.limits??=new C((t.now??Date.now)()),t.limits.requests++,t.settings??={},t.taskWatcher??=new si,t.logWatcher??=new li,t.dashboardHosts??=new _t;let r=()=>Hi(e,t,n);return t.dbProfile?t.dbProfile.request(n.inProcess===!0,r):r()}async function Hi(e,t,n){let r=await m(e,v(new URL(e.url).pathname));if(r instanceof Response)return r;let i=Ae(r,t,n.inProcess===!0),a=!1;try{let r=n.clientIp??`unknown`,o=await Gt(i.req,i.ctx,r),s=u(o instanceof Response?o:await Bi(i.req,i.ctx,o),i.cookies),c=new URL(e.url).pathname.split(`/`),l=c[1]===`tasks`,d=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&&Ye(e,e.organizationId)}return e.method!==`GET`&&s.ok&&!(l&&c.length===4&&c[2]&&[`heartbeat`,`logs`].includes(c[3]))&&!(d&&c.length===5&&c[3]&&[`steer`,`ask`,`approve`,`archive`].includes(c[4]))&&(l||d||c[1]===`admin`&&c[2]===`flows`&&c.length===5&&c[3]&&c[4]===`run`)&&Tt(t,d&&c.length===3&&e.method===`POST`),a=!!s.body&&(s.headers.get(`content-type`)??``).includes(`text/html`),a?f(s,i.end):s}finally{a||i.end()}}async function Ui(t={}){let n=t.env??Y.env,r=y(n,t.host??`node`),i=t.runner??r.runner;if((t.host===`vercel`||n.VERCEL)&&(i===`local`||i===`local-docker`))throw new e(`invalid-option`,`The ${i} runner cannot run on Vercel.`,{hint:`Leave RUNNER unset to use vercel-sandbox.`});if(r.store===`memory`&&i!==`local`&&i!==`local-docker`)throw new e(`invalid-option`,`The ${i} runner needs a database.`,{hint:`Set DATABASE_URL, or use RUNNER=local for a memory server.`});if(!r.publicUrl)throw new e(`invalid-option`,`PUBLIC_URL is required to start a Coder server.`,{hint:`Set PUBLIC_URL to the address platforms and browsers use.`});let a=[];if(r.store===`memory`&&!t.local&&a.push(`test server, not for production: everything is in memory, nothing survives a restart, no sign-in; set DATABASE_URL for a real deployment`),!n.SERVER_ENCRYPTION_KEY&&!t.local&&a.push(`secrets are stored unencrypted; set SERVER_ENCRYPTION_KEY (openssl rand -base64 32)`),r.store===`postgres`&&!r.encryptionKey)throw new e(`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 o=s(r.integrations),c=r.store===`memory`&&!r.adminToken?xr(18).toString(`base64url`):void 0;r.store===`postgres`&&r.adminToken&&a.push(`ADMIN_TOKEN is ignored with Postgres; owners and admins sign in with coder auth login`);let l={...r,...r.store===`postgres`?{adminToken:void 0}:{},...c?{adminToken:c}:{},...t.runner?{runner:t.runner}:{}},u=await me(l,{local:!!t.local});try{l.store===`memory`&&await ur(u.store(u.defaultOrganizationId),Date.now());let r=u.connection&&l.auth?await(await import(`./auth-CJOm9_Vh.js`)).createAuth(u.connection.db,l):void 0,i=t.cwd??Y.cwd(),s=u.store(u.defaultOrganizationId),d=et({kind:l.runner,workDir:l.workDir,config:l.runnerConfig,local:!(t.host===`vercel`||n.VERCEL),sandbox:{region:ne(l.databaseUrl),snapshots:pt(s)}});if(!d[l.runner])throw await u.close(),new e(`invalid-option`,`Runner ${l.runner} is not configured.`,{hint:`Set RUNNER_CONFIG to JSON containing url and secret.`});let f=new _t,p=new C,m=new _i,h=new Map,g=new Map,_=new si,v=new li,y=e=>{let n=h.get(e);if(n)return n;let a=u.store(e),s=new Map,c={registry:m},b={limits:p,...u.connection?{databaseHealth:async()=>{let{sql:e}=await import(`./drizzle-orm-CYU7WOQS.js`).then(e=>e.t);await u.connection.db.execute(e`select 1`)},statementTimeout:u.connection.statementTimeout}:{},config:l,settings:c,organizationId:e,integrations:o,runners:d,store:a,queue:u.queue,requestScopes:g,taskWatcher:_,logWatcher:v,dashboardHosts:f,dbProfile:u.connection?.profile,chatState:u.chatState,fileReads:s,repositoryLists:new Map,loadAgent:E(o,{...t.local?{cwd:i}:{},config:l,store:a,fileReads:s,settings:c}),...r?{auth:r}:{},scope:y,webhookTarget:(e,t)=>u.webhookTarget(e,t),appRecord:e=>u.appRecord(e),apps:e=>u.apps(e),installationOrganization:e=>u.installationOrganization(e),installations:e=>u.installations(e),serverOrganizationId:u.defaultOrganizationId,taskOrganization:(e,t)=>u.taskOrganization(e,t),...t.local?{local:t.local}:{}};return h.set(e,b),b};globalThis.__coder={handle:e=>Vi(e,y(u.defaultOrganizationId),{inProcess:!0})};let b=y(u.defaultOrganizationId);b.local&&Wt(b).catch(()=>{});let x;return t.local&&(await jt(b),x=setImmediate(()=>{Rt(b).catch(()=>void 0)})),{config:l,context:y,defaultContext:b,warnings:a,...c?{mintedToken:c}:{},sweep:u.sweep,close:async()=>{m.close(),_.close(),v.close(),x&&clearImmediate(x),await b.local?.usageSync?.catch(()=>void 0),await Tn(b),await u.close()}}}catch(e){throw await u.close(),e}}const Wi=36e5;function Gi(e){try{let t=new URL(e);return q.has(t.hostname)?Number(t.port||(t.protocol===`https:`?443:80)):void 0}catch{return}}function Ki(e=Y.env,t=e.VERCEL?`vercel`:`node`){b();let n,r,i=()=>n??=Ui({env:e,host:t}).catch(e=>{throw n=void 0,e}),a=e=>Promise.all([e.sweep(),yt(e.defaultContext,!1,!0),Ue(e.defaultContext)]).then(()=>void 0);return Object.assign(async(t,n)=>{let o=await i(),s=n?e=>n(e):e=>void e.catch(()=>{}),c=Date.now();(r===void 0||c-r>=Wi)&&(r=c,s(o.defaultContext.store.create(`delivery`,`maintenance:${o.config.publicUrl}`,{at:c},{ttlMs:Wi}).then(e=>e?a(o):void 0).catch(e=>console.error(`coder server: maintenance failed`,e))));let l=e=>({...o.context(e),waitUntil:s,scope:l});return Vi(t,l(o.defaultContext.organizationId),{clientIp:e.VERCEL?t.headers.get(`x-forwarded-for`)?.split(`,`,1)[0]?.trim():void 0})},{scheduled:async()=>{let e=await i();await a(e)},close:async()=>{let e=n;n=void 0,r=void 0,await(await e)?.close()}})}function qi(e){let t=yr(`lsof`,[`-nP`,`-iTCP:${e}`,`-sTCP:LISTEN`,`-t`],{encoding:`utf8`}),n=Number(t.stdout?.split(`
|
|
8
|
+
`)[0]);if(n)return{pid:n,command:yr(`ps`,[`-o`,`command=`,`-p`,String(n)],{encoding:`utf8`}).stdout?.trim().slice(0,120)||`another process`}}function Ji(t){let n=qi(t),r=n&&/\bcoder (dash|server serve)\b/.test(n.command);return new e(`server`,n?r?`Coder is already running on port ${t} (pid ${n.pid}): http://localhost:${t}`:`Port ${t} is in use by ${n.command} (pid ${n.pid}).`:`Port ${t} is in use.`,{hint:n?`Stop it with \`kill ${n.pid}\`, or use another port: --port ${t+1}`:`Use another port: --port ${t+1}`})}async function Yi(n={}){b();let r=n.env??Y.env;if(n.runner&&!Fe.includes(n.runner))throw new e(`invalid-option`,`Invalid --runner value: use ${Fe.join(`, `)}`);if(n.port!==void 0&&(!Number.isInteger(n.port)||n.port<1||n.port>65535))throw new e(`invalid-option`,`Invalid port: use 1 through 65535.`);let i=r.PORT&&/^\d+$/.test(r.PORT)?Number(r.PORT):void 0,a=Gi(r.PUBLIC_URL),o=n.port??i??a??8787;if(!Number.isInteger(o)||o<1||o>65535)throw new e(`invalid-option`,`Invalid PORT: use 1 through 65535.`);let s=r.PUBLIC_URL?r:{...r,PUBLIC_URL:`http://localhost:${o}`},c=!!(r.DATABASE_URL||r.POSTGRES_URL);if(c&&n.memory)throw new e(`invalid-option`,`A memory server cannot use DATABASE_URL.`,{hint:`Unset DATABASE_URL, or drop --memory.`});let l=(n.host??r.HOST??(c?void 0:`127.0.0.1`))?.replace(/^\[(.*)\]$/,`$1`),u=!c&&!n.memory;if(u&&!q.has(l))throw new e(`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(n.memory&&r.VERCEL)throw new e(`invalid-option`,`A memory server cannot run on Vercel.`,{hint:`Set DATABASE_URL for a real deployment.`});let d,f,p=u?new Promise((e,n)=>{f=n,d=()=>{t().then(e,n)}}):void 0,m=p?.then(()=>void 0).catch(()=>void 0),h=u?{cwd:n.cwd??Y.cwd(),port:o,cacheMaintenance:m}:void 0,g=await Ui({cwd:n.cwd,env:s,runner:n.runner,...h?{local:h}:{}}),v=g.defaultContext,y=()=>{g.sweep().catch(e=>console.error(`coder server: sweep failed`,e))};y();let x=setInterval(y,Wi);x.unref();let S=setInterval(()=>{yt(v,!1,!0).catch(e=>console.error(`coder server: scheduled kick failed`,e)),Ue(v).catch(e=>console.error(`coder server: inbox flush failed`,e))},6e4);S.unref();let C=Cr.createServer(_((e,t)=>Vi(e,v,{clientIp:t}),{admit:e=>c||Xe(e.socket.remoteAddress,e.url??`/`)})),w=g.config.publicUrl;a!==void 0&&a!==o&&g.warnings.push(`PUBLIC_URL points at port ${a} but the server listens on ${o}`),await new Promise((e,t)=>{C.once(`error`,t),C.listen(o,l,e)}).catch(async e=>{throw f?.(e),clearInterval(S),clearInterval(x),await g.close(),e.code===`EADDRINUSE`?Ji(o):e}),d?.();let ee=!1,te=async()=>{ee||(ee=!0,clearInterval(S),clearInterval(x),v.taskWatcher?.close(),v.logWatcher?.close(),await new Promise((e,t)=>C.close(n=>n?t(n):e())),await m,await g.close())},T=v.auth?`Wular Auth (${v.auth.issuer})`:void 0,E=`http://localhost:${o}`,D=vt(v),O=D===`local`?E:w,k=g.config.store===`memory`?g.mintedToken??r.ADMIN_TOKEN:void 0;return{address:E,publicUrl:w,warnings:g.warnings,close:te,runner:g.config.runner,store:g.config.store,mode:D,...p?{cacheMigration:p}:{},maxTasks:g.config.maxTasks??g.config.limits?.concurrentTasks??10,...T?{signIn:T}:{},...g.mintedToken?{mintedToken:g.mintedToken}:{},...g.config.store===`postgres`&&r.DATABASE_URL?{database:(await import(`./client-nBo9Mhsr.js`).then(e=>e.n)).describeDatabase(r.DATABASE_URL)}:{},...q.has(new URL(O).hostname)?{dashboard:`${O}/dash${k?`#token=${encodeURIComponent(k)}`:``}`}:{}}}async function Xi(t={}){try{return await Yi(t)}catch(t){if(t instanceof e)throw t;let n=t instanceof Error&&t.cause instanceof Error?`: ${t.cause.message}`:``;throw new e(`server`,`${t instanceof Error?t.message:String(t)}${n}`)}}export{Xi as serve,Ki as serverHandler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ea as e}from"./args-CJsHYWbt.js";import{t}from"./errors-DK_trCff.js";import{K as n,p as r}from"./state-
|
|
1
|
+
import{Ea as e}from"./args-CJsHYWbt.js";import{t}from"./errors-DK_trCff.js";import{K as n,p as r}from"./state-CxAUec80.js";import{r as i}from"./crypto-Ittsv-m4.js";import{n as a,o}from"./remote-Cl-j8r3W.js";import"./dispatch-BkoIU4GU.js";import{o as s,s as c,t as l}from"./http-DRk8cDjf.js";import{t as u}from"./local-DFrTuJFN.js";import d from"node:path";import f from"node:fs";import p from"node:os";import{createHmac as m,randomBytes as h}from"node:crypto";import g from"node:http";var _=e({runnerController:()=>T,serveRunner:()=>S});const v=()=>r(`runners.json`);function y(){try{return JSON.parse(f.readFileSync(v(),`utf8`))}catch{return{}}}function b(e){f.mkdirSync(d.dirname(v()),{recursive:!0}),f.writeFileSync(v(),JSON.stringify(e,null,2),{mode:384})}const x=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 S(e={}){let r=e.port??4100,i=e.token?e.runnerUrl??process.env.CODER_RUNNER_URL:e.url;if(!i)throw new t(`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:x(r)});let d=e.token?o({...e,server:e.url??e.server,yes:!0}):o(e),f=y(),m=f[d]??{secret:h(32).toString(`base64url`)},_=new u(n()),v=T({secret:m.secret,server:d,runner:_}),S=g.createServer(c(async e=>{let t=await s(e,l(new URL(e.url).pathname));return t instanceof Response?t:v(t)}));await new Promise((e,t)=>{S.once(`error`,t),S.listen(r,`127.0.0.1`,e)});let C=()=>new Promise(e=>S.close(()=>e())),w=e.name??p.hostname(),E=[],D=async(e,n)=>{let r=E,a=await fetch(`${d}/runners/register`,{method:`POST`,redirect:`manual`,signal:AbortSignal.timeout(5e3),headers:{"content-type":`application/json`},body:JSON.stringify({...e?{token:e}:{id:m.id,organizationId:m.organizationId},name:w,url:i,secret:m.secret,...n?{offline:n}:{},...r.length?{removed:r}:{}})});if(!a.ok)throw new t(`server`,`Runner registration failed`,{status:a.status});let{deleted:o=[],...s}=await a.json();E=E.filter(e=>!r.includes(e));for(let e of o)await _.remove(e).then(()=>E.push(e),t=>console.error(`coder runner: folder of deleted task ${e} not removed`,t));return s},O;try{if(e.token){let t=await D(e.token);O=t,m.organizationId=t.organizationId}else{let n=m.id&&m.organizationId?await D().catch(e=>{if(!(e instanceof t&&e.status===401))throw e}):void 0;if(n)O=n;else{let t=a(e),n=await t.me();O=await t.runners.add({kind:`http`,name:w,scope:e.workspace||!n.user?`workspace`:`personal`,config:{url:i,secret:m.secret}}),m.organizationId=n.organization?.id,m.id=O.id,O=await D()}}m.id=O.id,b({...f,[d]:m})}catch(e){throw await C(),e}let k=Promise.resolve(),A=setInterval(()=>{k=k.then(()=>D().then(()=>{})).catch(()=>{})},6e4);return{...O,port:r,server:d,close:async()=>{clearInterval(A),await k,await D(void 0,!0).catch(()=>{}),await C()}}}const C=3e5,w=(e,t=200)=>new Response(JSON.stringify(e),{status:t,headers:{"content-type":`application/json`}});function T(e){let t=e.now??Date.now,n=new Map,r=(r,a)=>{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)>C)return!1;let u=m(`sha256`,e.secret).update(`${a}.${o}.${s}`).digest(`base64url`);if(!i(c,u))return!1;for(let[e,r]of n)r<t()&&n.delete(e);return!n.has(s)&&(n.set(s,l+C),!0)};return async t=>{let n=t.method===`GET`?``:await t.text();if(!r(t,n))return w({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 w({error:`Invalid start`},400);let r=t.env.CODER_TASK_TOKEN;if(typeof r!=`string`)return w({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 w({handle:await e.runner.start({id:t.task},i)})}if(t.method===`GET`&&i===`health`&&!a)return w({ok:!0});if(!a)return w({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?w({error:`Invalid messages`},400):w(await e.runner.push(a,t))}return t.method===`GET`&&i===`status`?w(await e.runner.status(a)):t.method===`POST`&&i===`stop`?(await e.runner.stop(a),new Response(null,{status:204})):w({error:`Not found`},404)}catch(e){return w({error:e instanceof Error?e.message:String(e)},400)}}}export{_ as n,S as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ea as e}from"./args-CJsHYWbt.js";import{t}from"./errors-DK_trCff.js";import{p as n,yt as r}from"./state-
|
|
1
|
+
import{Ea as e}from"./args-CJsHYWbt.js";import{t}from"./errors-DK_trCff.js";import{p as n,yt as r}from"./state-CxAUec80.js";import{a as i,o as a}from"./http-615JJgHo.js";import o from"node:path";import s from"node:fs";import{createHash as c}from"node:crypto";var l=e({DEFAULT_SERVER:()=>m,isKnownServer:()=>_,rememberServer:()=>v,renewal:()=>S,resolveServer:()=>h,savedSession:()=>y,savedSessions:()=>d,sessionFile:()=>u,validateServer:()=>g,writeSessions:()=>b});function u(){return n(`session.json`)}function d(){try{let e=JSON.parse(s.readFileSync(u(),`utf8`));return Object.fromEntries(Object.entries(e).filter(e=>!!(e[1].token&&e[1].refreshToken&&e[1].user)))}catch{return{}}}function f(){try{return JSON.parse(s.readFileSync(u(),`utf8`))}catch{return{}}}const p=e=>e.replace(/\/+$/,``),m=`https://coder.wular.ai`,h=e=>p((e===!0?void 0:e)??process.env.CODER_SERVER??`https://coder.wular.ai`);function g(e){let t=h(e);return i()&&t===process.env.CODER_SERVER?t:a(t)}function _(e){let t=p(e),n=process.env.CODER_MCP_MODE===`cloud`&&process.env.CODER_SERVER;return t===`https://coder.wular.ai`||n&&t===p(n)||!!f()[t]}function v(e){let t=f(),n=p(e),r=t[n]??{};x({...t,[n]:{...r,confirmedAt:Date.now()}})}function y(e){return d()[p(e)]}function b(e){let t=f(),n=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,{confirmedAt:t.confirmedAt??Date.now()}]));x(Object.fromEntries(Object.entries({...n,...e}).map(([e,n])=>[e,{...n,...t[e]?{confirmedAt:t[e].confirmedAt??Date.now()}:{}}])))}function x(e){let t=u();s.mkdirSync(o.dirname(t),{recursive:!0}),s.writeFileSync(t,`${JSON.stringify(e,null,2)}\n`,{mode:384}),s.chmodSync(t,384)}function S(e,t){let n=t,i;return{expiresAt:()=>n.expiresAt,async renew(){return i||=r(`${u()}.${c(`sha256`).update(e).digest(`hex`)}.lock`,()=>C(e,n)).finally(()=>{i=void 0}),n=await i,n.token}}}async function C(e,n){let r=e=>e&&e.refreshToken!==n.refreshToken?e:void 0,i=r(d()[e]);if(i&&i.expiresAt>n.expiresAt)return i;let{refreshSignIn:a}=await import(`./sign-in-Dv-rdYD4.js`).then(e=>e.n),o=await a(e,n),s=d();if(o){let t={...n,...o};return b({...s,[e]:t}),t}let c=r(s[e]);if(c)return c;throw delete s[e],b(s),new t(`login-failed`,`Signed out of ${e}.`,{hint:`Sign in again: coder auth login`})}export{y as a,g as c,S as i,b as l,_ as n,d as o,v as r,l as s,m as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ea as e}from"./args-CJsHYWbt.js";import{g as t}from"./connections-
|
|
1
|
+
import{Ea as e}from"./args-CJsHYWbt.js";import{g as t}from"./connections-B90TemYf.js";import{a as n,x as r}from"./app-server-dnlLhhZb.js";import i from"node:path";import a from"node:fs";import{spawn as o,spawnSync as s}from"node:child_process";import c from"node:os";var l=e({archiveCodexSession:()=>p,codexHome:()=>u,deleteCodexSession:()=>g,isCodexSessionArchived:()=>m,unarchiveCodexSession:()=>h});function u(){return process.env.CODEX_HOME||i.join(c.homedir(),`.codex`)}async function d(e,i,a){for(let o of r(e)){let r=null;try{return r=await n.connect(e,{env:t(),brokerEndpoint:o.endpoint,networkAccess:o.networkAccess??!1,reuseExistingBroker:!0}),await r.request(i,{threadId:a}),!0}catch{}finally{await r?.close().catch(()=>{})}}return!1}function f(e){try{let n=o(`codex`,e,{detached:!0,stdio:`ignore`,env:t()});n.on(`error`,()=>{}),n.unref()}catch{}}async function p(e,t){await d(e,`thread/archive`,t)||f([`archive`,t])}function m(e){let t=i.join(u(),`archived_sessions`);try{return a.readdirSync(t).some(t=>t.endsWith(`-${e}.jsonl`))}catch{return!1}}function h(e){return new Promise(n=>{try{let r=o(`codex`,[`unarchive`,e],{stdio:`ignore`,env:t()});r.on(`error`,()=>n(!1)),r.on(`close`,e=>n(e===0))}catch{n(!1)}})}async function g(e,n){return await d(e,`thread/delete`,n)?!0:s(`codex`,[`delete`,`--force`,n],{encoding:`utf8`,env:t()}).status===0}export{h as a,l as i,g as n,m as r,u as t};
|