@wular/coder 0.4.5 → 0.4.7

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.
Files changed (368) hide show
  1. package/dist/{add-Bz8uaOcu.js → add-8Z5bNm74.js} +1 -1
  2. package/dist/{add-DTwoL7vJ.js → add-B3zygDO5.js} +1 -1
  3. package/dist/{add-Bffwutko.js → add-DiwLZmjp.js} +1 -1
  4. package/dist/{add-cdKdz3K0.js → add-DpsjB8Mp.js} +1 -1
  5. package/dist/{add-json-BIcbE3Nf.js → add-json-wOUPHwUD.js} +1 -1
  6. package/dist/{agent-DQK_S1PE.js → agent-B69nSuTY.js} +1 -1
  7. package/dist/{agent-BcXXkOmD.js → agent-D0pQ_ewc.js} +1 -1
  8. package/dist/{alias-KQ85bphl.js → alias-CZjD1F0F.js} +1 -1
  9. package/dist/{app-DaccLHrx.js → app-CE5j7IDN.js} +1 -1
  10. package/dist/{approvals-CZt_aPCy.js → approvals-Gv7x14u3.js} +1 -1
  11. package/dist/{approve-DxjyXd66.js → approve-D5Dkw1Lo.js} +1 -1
  12. package/dist/{apps-eueTmHR5.js → apps-CaHoLNE7.js} +1 -1
  13. package/dist/{archive-C9yrU4Wg.js → archive-Br2eM_A2.js} +1 -1
  14. package/dist/{archive-C3JazQuo.js → archive-RBPoB4cr.js} +1 -1
  15. package/dist/{archive-sweep-CHbOP-p6.js → archive-sweep-jE6TPk2F.js} +1 -1
  16. package/dist/{ask-DdYrvsTk.js → ask-zjX8kQz0.js} +1 -1
  17. package/dist/{auth-q8CROpG-.js → auth-DSE3SIuI.js} +1 -1
  18. package/dist/auth-DsxfkPsx.js +1 -0
  19. package/dist/{cli-msOzZFXW.js → cli-DtTdpTy3.js} +1 -1
  20. package/dist/cli.js +1 -1
  21. package/dist/{config-BllYHi8S.js → config-BAkyRxp-.js} +1 -1
  22. package/dist/{create-BYki3g42.js → create-BF6VHUst.js} +1 -1
  23. package/dist/credentials-6PHXj8k7.js +1 -0
  24. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{boot-bhemypxz.js → boot-8aj7efqk.js} +8 -8
  25. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{build-tier-0a96kmx3.js → build-tier-qrkpfsk1.js} +17 -17
  26. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{config-0tvz03a6.js → config-7h84p6q8.js} +3 -3
  27. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{generate-myw9hef7.js → generate-d8vb1d21.js} +3 -3
  28. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-kdhxpwyq.js → index-0qt2vapb.js} +3 -3
  29. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-b7j671dj.js → index-0wm2p3ks.js} +1 -1
  30. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-n629dy38.js → index-1y0cesgn.js} +4 -4
  31. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-gkndxkxf.js → index-26gwrm07.js} +2 -2
  32. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-jn9rbhrx.js → index-3r6qpe8a.js} +4 -4
  33. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-yrjkqtfj.js → index-42fef2rv.js} +2 -2
  34. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-11xpbfej.js → index-47gx7trn.js} +1 -1
  35. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-4da76t62.js → index-4qsce64w.js} +1 -1
  36. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-9hz3s0m8.js → index-6tb725m8.js} +1 -1
  37. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-0yjv5v47.js → index-912z4mfx.js} +3 -3
  38. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-8ct7rqy3.js → index-aarf1brn.js} +1 -1
  39. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-nf3df4jy.js → index-cqcwwxfp.js} +3 -3
  40. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-he6n2bvp.js → index-e176wk6x.js} +1 -1
  41. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-hdbwtdv2.js → index-fpghsgb4.js} +1 -1
  42. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-rgj5mx84.js → index-jexsy9a8.js} +1 -1
  43. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-29pq0kax.js → index-jjppzw0s.js} +2 -2
  44. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-dgr390q7.js → index-kpdph69z.js} +23 -23
  45. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-gcmj16xy.js → index-md5jchzy.js} +1 -1
  46. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-3e075kny.js → index-n814hcky.js} +1 -1
  47. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-j681c48a.js → index-qjrh7w2g.js} +1 -1
  48. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-qcrvt6er.js → index-s61bx2aj.js} +2 -2
  49. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-cn86z041.js → index-veycp46e.js} +1 -1
  50. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-3ycf5ckv.js → index-vqs3rebe.js} +3 -3
  51. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-d158y67j.js → index-xrsg0041.js} +3 -3
  52. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-xh1nbk46.js → index-xs3411qh.js} +7 -7
  53. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-cvr4z22m.js → index-y9bygr95.js} +1 -1
  54. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-x2m17v9c.js → index-yghskk8w.js} +9 -9
  55. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-tq3b39a5.js → index-yzcpr3yw.js} +4 -4
  56. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{index-71885zaq.js → index-zedjt25v.js} +4 -4
  57. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{pipeline-4t9q43ht.js → pipeline-yjdnwbhm.js} +11 -11
  58. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{proxy-config-60gprphe.js → proxy-config-9r9e0jvn.js} +5 -5
  59. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{proxy-gfhmktbk.js → proxy-pnevsbfd.js} +7 -7
  60. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{router-xnrva921.js → router-rzge0vz8.js} +4 -4
  61. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{routes-ht868pdc.js → routes-0x8wjvcj.js} +7 -7
  62. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/{tsconfig-defaults-bcn34eqb.js → tsconfig-defaults-qe9wd6ne.js} +3 -3
  63. package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/cli/start.js +5 -5
  64. package/dist/dash/standalone/node_modules/@wular/pnext/package.json +1 -1
  65. package/dist/dash/standalone/server/build-index.json +1 -1
  66. package/dist/dash/standalone/server/manifest.json +755 -755
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.2feb1c162fab6033.js → index.b7c6e5f49704993d.js} +1 -1
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.bdbf17006af803d1.js → load.35be1b07171553e7.js} +2 -2
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.0a054a6c9dda53b3.js → page.72b248cd95237fb6.js} +4 -4
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/{loading.02d57ab48022f8d8.js → loading.fce966caba9308e4.js} +2 -2
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/{notify.b7451fdf9c3bb62a.js → notify.fc4ba1b51ee26296.js} +1 -1
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/{page.f9ab6ed02876880e.js → page.6c8e958aeab2678e.js} +10 -10
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/{sign-out.3368aed882d8f1ac.js → sign-out.5d3bca9efecd6f70.js} +3 -3
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/{agent-menu.e4b6d486442476b5.js → agent-menu.6d3339a02f02460d.js} +2 -2
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/{agents-grid.0dbc57156286a18e.js → agents-grid.0813591f217e9dbb.js} +9 -9
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/{connect-apps.3a5673bcd9aa57d9.js → connect-apps.8d218b96f9939819.js} +5 -5
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/{loading.8df9f4459410cfaa.js → loading.02dd47fe59680cc8.js} +5 -5
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/{page.8f85fbaff456c5fe.js → page.e0ad2df8b7c9a0af.js} +11 -11
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/{layout.d3aec63db0f5230d.js → layout.f2464375e393c96e.js} +13 -13
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/{loading.d53d174ffe56aab3.js → loading.b27b95d8ccf0581e.js} +1 -1
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/{page.7fd1bfcf08e25919.js → page.1ba2497fa9116713.js} +13 -13
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/{loading.849dc6e6050a7e21.js → loading.572d3404b984b163.js} +1 -1
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/{page.31687af871d75d39.js → page.9b30598fa84dd0df.js} +15 -15
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/{platform-actions.754eff65aec1ab59.js → platform-actions.bc640252ecf046c6.js} +6 -6
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/{agent-settings-form.861ed9832cbe89c1.js → agent-settings-form.d3e6dc6bcfcfc928.js} +8 -8
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/{loading.2ec7a3b893925df0.js → loading.a55efbdbdd995213.js} +1 -1
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/{page.1ed5379637860fab.js → page.44eabcf6cf9fbfbd.js} +7 -7
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/{loading.20a52282c5806719.js → loading.f5c0c1c727da9f57.js} +1 -1
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/{page.4fd369ba79ed9943.js → page.9324e2d909d55c6f.js} +1 -1
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/{loading.43b58c5eef3d4253.js → loading.5e1f922969ab7016.js} +6 -6
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/{page.78bf188a8077c64e.js → page.30a31e2464417a08.js} +12 -12
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/{versions-list.0c6811b66b2fcc49.js → versions-list.e2427d618decaf7a.js} +6 -6
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/edit/{loading.a18042397ffeaf55.js → loading.21eb60e655c125c7.js} +5 -5
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/edit/{page.1798dbd9cd334e8f.js → page.057807354396ea77.js} +10 -10
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/{agent-pills.c5710a4f634f9d6a.js → agent-pills.6a0eea1ec99dffd7.js} +4 -4
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/{hero.e5c5af2f9fab6a63.js → hero.9af8c50df6487ca5.js} +5 -5
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/{instructions.403838f7cb218391.js → instructions.2f4229d42e7c99ef.js} +2 -2
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/{connect-repositories.6c7088fd2fcd54f4.js → connect-repositories.329ac182c8242a67.js} +1 -1
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/{editor.4b164e6eb19daa2f.js → editor.d28d4afe11d7ff71.js} +19 -19
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/{import-picker.4bff9b5642aeab17.js → import-picker.5e76549e7934b718.js} +10 -10
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/new/{loading.72e1b274c475e39a.js → loading.02e30b3a7f1ab9f1.js} +3 -3
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/new/{page.44f60b1a32344f70.js → page.c3396459a9ba5c13.js} +8 -8
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{layout.96376d18592adfa9.js → layout.53a8a3b0e4a7917f.js} +14 -14
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{page.669f5926ae12d101.js → page.a4be8e0779589f4e.js} +2 -2
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{credentials-list.3fbc413d972a0447.js → credentials-list.c25242f7f4ef6399.js} +13 -13
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{credentials.6423846391b20446.js → credentials.a62d1642ca580836.js} +7 -7
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{engines-list.5bad79f0d4e12e07.js → engines-list.6c02a7e6d3c965cc.js} +6 -6
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{list.2cafbe93b7b2dc0f.js → list.db2e212e3c8b5d32.js} +9 -9
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{loading.1a810cc50ea61706.js → loading.f4024074bf71b11b.js} +1 -1
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{mcp-list.1fc0f6165dd85b8c.js → mcp-list.0ce34ed7d7e756a7.js} +9 -9
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{models-list.520cb30b291794c3.js → models-list.052f3ccc66833937.js} +10 -10
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{page.04b07f9c365be073.js → page.3458e42728e30f54.js} +20 -20
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{runners-list.67786d7d51692d19.js → runners-list.b5296983ba8007aa.js} +12 -12
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/{layout.a619ac4fe999d1b5.js → layout.85946d20d7e48767.js} +4 -4
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/{settings-head.d726e31e4dd04d60.js → settings-head.d0f5ac9cbf170a77.js} +1 -1
  116. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/{tunnel-guide.22448081e9e042d6.js → tunnel-guide.f6685b045ccccdcd.js} +1 -1
  117. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/{activity.b23683e6be363068.js → activity.4aeb0734da711e10.js} +3 -3
  118. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/{loading.a8f2aa099bd76606.js → loading.d88d1139ea3ff52a.js} +4 -4
  119. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/{page.d1ded90712ca586f.js → page.e5b562dd47e19043.js} +7 -7
  120. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/{task-actions.f2be118dd5a02896.js → task-actions.ee523c68a38a7975.js} +9 -9
  121. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/{task-view.97433b52e6f7175c.js → task-view.1c54f267d127f4e3.js} +21 -21
  122. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/{composer-data.e2d442d6ecbaa6d3.js → composer-data.5f12d8ef1db38026.js} +2 -2
  123. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/{composer.78b7d3000d615c7c.js → composer.f232cc1bf2d7b08a.js} +15 -15
  124. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/{status.d78e769ff1411932.js → status.b90b76ffa62e957a.js} +1 -1
  125. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/{task.674ebeabafa0a7e1.js → task.465c2af602cce783.js} +1 -1
  126. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/{tasks-list.9698bdff71c3b3c7.js → tasks-list.2a0e1eb5c396be42.js} +26 -26
  127. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/{tasks-section.c77194f05c3f58fb.js → tasks-section.2cbc1550d723661d.js} +9 -9
  128. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/{page.157ac3a0938206b0.js → page.107706655a927e59.js} +5 -5
  129. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{custom-range.9343f6115e244cb4.js → custom-range.d85de32fb6ec4fe6.js} +3 -3
  130. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{day-chart.c7f6c8981a7acb15.js → day-chart.5e716070459d785c.js} +3 -3
  131. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/loading.8aabf89dabaf1c3f.js +15 -0
  132. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{metric.5481ab0e025e218e.js → metric.ca0466e33225f184.js} +1 -1
  133. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{page.4159d729e8aa0439.js → page.c2b88b495780b12a.js} +15 -15
  134. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{range-bar.8c9b18116c8eb5f0.js → range-bar.76e3de97583e6eab.js} +8 -8
  135. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{stats.7b8db8c56920b311.js → stats.4793e81a32ea5e8f.js} +1 -1
  136. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{top-agents.8af5d53eb64bae9c.js → top-agents.b228062d012dc17b.js} +6 -6
  137. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.77960a272f19bf24.js → layout.c762b39aafb84a1f.js} +3 -3
  138. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.33464bce52044759.js → page.3ddaa1a675a04c5a.js} +5 -5
  139. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{auth-panel.3e020d19aa5ab464.js → auth-panel.5712a8d190b003b4.js} +2 -2
  140. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.cf0eb4936a2c7222.js → drawer.b337ce209ff621e9.js} +3 -3
  141. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.9648c7782502babc.js → loading-card.bf58af8330a78704.js} +4 -4
  142. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.857951b5dc1ad827.js → page-head.a2336c95004aed4b.js} +5 -5
  143. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.4c04416dab6ffc52.js → stream.77a2ec038d97b2b8.js} +3 -3
  144. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.b14bb1f66ed75e75.js → task-toasts.10b46a8b8db1791f.js} +4 -4
  145. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.60d3a5adbd49989f.js → theme-choices.ea23f57dd753683f.js} +2 -2
  146. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{current-link.87758179b507850c.js → current-link.844899810531977f.js} +1 -1
  147. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.581456c353d76d67.js → side-toggle.55d3e6c43ca5e1f9.js} +2 -2
  148. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.e52db98d78836f9a.js → badge.5abdef72e9189fdc.js} +1 -1
  149. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.e6876039e375b849.js → card.b0873d38765c9d20.js} +1 -1
  150. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.730d674a8f7eeeae.js → collapse.dab7f208cbbe6a33.js} +1 -1
  151. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.d478120a76502dd1.js → combo.ca0efacf2ce15578.js} +2 -2
  152. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.cd23ea20bdf120d2.js → confirm.1328a7ede6c27bb9.js} +1 -1
  153. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{field.37f93068217e1470.js → field.7b2a2075ee8c6e29.js} +1 -1
  154. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.3e8df59ca8abf397.js → filter.f19b6d5ebd6a3c2b.js} +5 -5
  155. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icon.93605083edf7efe3.js → icon.0874ca2f58f7db14.js} +1 -1
  156. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.3b3026ecd4dc31f0.js → menu.a4dd9fb9f566689a.js} +3 -3
  157. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.620f07f6b949d7f1.js → segmented.5ac52bb38fb64ae5.js} +1 -1
  158. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.14e820c8a26ab8b5.js → select.f036fdc3fce02b92.js} +3 -3
  159. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.50afec82b0fd53a1.js → sentinel.d3d29747fe976f88.js} +1 -1
  160. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.051c87be5bbb7f2b.js → tabs.d00fc01ad9c1b91e.js} +2 -2
  161. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.2d57d68076cef3e1.js → tail.9377d261fe9e91df.js} +2 -2
  162. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.32503820243ede06.js → toolbar.b2c59c5fc015d08d.js} +5 -5
  163. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.f37a313f4811ddb8.js → client.a8205c524e63d4a9.js} +1 -1
  164. package/dist/dash/standalone/static/assets/chunks/{agent-pills-0163fdf910179991.js → agent-pills-c5d56f60f9e17aea.js} +1 -1
  165. package/dist/dash/standalone/static/assets/chunks/{agent-settings-form-b1fcd9a5236b1fc7.js → agent-settings-form-738f9ac4b9fb67ef.js} +1 -1
  166. package/dist/dash/standalone/static/assets/chunks/{agents-grid-1d8f0ec6cf8c797e.js → agents-grid-37e2e7f7a37b7a35.js} +1 -1
  167. package/dist/dash/standalone/static/assets/chunks/{combo-0d55fb62af761ac5.js → combo-8aa7545cfda42090.js} +1 -1
  168. package/dist/dash/standalone/static/assets/chunks/{composer-8abfcac26339cc99.js → composer-a969037cf22215c7.js} +1 -1
  169. package/dist/dash/standalone/static/assets/chunks/{composer-44516934e5619d32.js → composer-f433a2e64648633a.js} +1 -1
  170. package/dist/dash/standalone/static/assets/chunks/{connect-apps-3e8b55a43315f58a.js → connect-apps-97c10fa6e35ccae6.js} +1 -1
  171. package/dist/dash/standalone/static/assets/chunks/{credentials-list-518af85578eacf6d.js → credentials-list-08cd5dfe29f42bf2.js} +2 -2
  172. package/dist/dash/standalone/static/assets/chunks/{custom-range-e8977f0d9699c1e6.js → custom-range-63f577240e5d5d85.js} +1 -1
  173. package/dist/dash/standalone/static/assets/chunks/{editor-75d6d2d01f4fc35a.js → editor-9752c8ab26ebd328.js} +2 -2
  174. package/dist/dash/standalone/static/assets/chunks/{engines-list-2f6b8b3f2e873e4d.js → engines-list-dab79c4e3e22eefe.js} +1 -1
  175. package/dist/dash/standalone/static/assets/chunks/{filter-55618648fc10c377.js → filter-02bba5796258deb0.js} +1 -1
  176. package/dist/dash/standalone/static/assets/chunks/{heads-1326669bdce3da2f.js → heads-8f40675f508ebe33.js} +1 -1
  177. package/dist/dash/standalone/static/assets/chunks/{list-90a47c07c4dd932e.js → list-591905f0aaa57629.js} +1 -1
  178. package/dist/dash/standalone/static/assets/chunks/{mcp-list-735e401c60ab51a3.js → mcp-list-bae4d2186f67849e.js} +1 -1
  179. package/dist/dash/standalone/static/assets/chunks/{models-list-999f54c76ca31379.js → models-list-c758db0c40f5173f.js} +1 -1
  180. package/dist/dash/standalone/static/assets/chunks/{platform-actions-4592c82f72b21b1a.js → platform-actions-4454493d02a1c172.js} +1 -1
  181. package/dist/dash/standalone/static/assets/chunks/{runners-list-ab64a5fb01d5eef8.js → runners-list-9d27c76eed33cb05.js} +1 -1
  182. package/dist/dash/standalone/static/assets/chunks/{select-591ca78b6ae29bd8.js → select-adccc9ac86ac833f.js} +1 -1
  183. package/dist/dash/standalone/static/assets/chunks/{shared-init-8a34c730aabe942d.js → shared-init-3a95c0e0cc27e0cb.js} +2 -2
  184. package/dist/dash/standalone/static/assets/chunks/{task-actions-26ad7f7c937f2589.js → task-actions-189775b88ef7ada4.js} +1 -1
  185. package/dist/dash/standalone/static/assets/chunks/{task-view-0d085ce407e8511e.js → task-view-0b3d7ea9cc41888b.js} +4 -4
  186. package/dist/dash/standalone/static/assets/chunks/{tasks-list-e9e914cf5dd959e9.js → tasks-list-1b0195e3fd68714f.js} +1 -1
  187. package/dist/dash/standalone/static/assets/chunks/{toolbar-a99d36b4b6f05bb1.js → toolbar-035d33d1e7ad11bf.js} +1 -1
  188. package/dist/dash/standalone/static/assets/pnext-client-105d2264e4064f32.js +1 -0
  189. package/dist/dash/standalone/static/assets/pnext-client-140064bc22718639.js +1 -0
  190. package/dist/dash/standalone/static/assets/pnext-client-2825c0ea7bfa1240.js +1 -0
  191. package/dist/dash/standalone/static/assets/pnext-client-39ac7ac446e20cfb.js +1 -0
  192. package/dist/dash/standalone/static/assets/pnext-client-43cbb846cb4c167f.js +1 -0
  193. package/dist/dash/standalone/static/assets/pnext-client-7d88eb36e6e3c301.js +1 -0
  194. package/dist/dash/standalone/static/assets/pnext-client-9172198a969bd1e1.js +1 -0
  195. package/dist/dash/standalone/static/assets/pnext-client-9c9c88e5c2fe31bc.js +1 -0
  196. package/dist/dash/standalone/static/assets/pnext-client-a629391487c4b8e3.js +1 -0
  197. package/dist/dash/standalone/static/assets/pnext-client-aace561f07b06542.js +1 -0
  198. package/dist/dash/standalone/static/assets/pnext-client-b7d6355b1323fff1.js +1 -0
  199. package/dist/dash/standalone/static/assets/pnext-client-c4be2f807668e35c.js +1 -0
  200. package/dist/dash/standalone/static/assets/{pnext-client-899f9625435988dd.js → pnext-client-ce83b85e9562a049.js} +1 -1
  201. package/dist/dash/standalone/static/assets/pnext-client-dd2046446844a78b.js +1 -0
  202. package/dist/dash/standalone/static/assets/pnext-client-e62f31aae8ce2c3b.js +1 -0
  203. package/dist/dash/standalone/static/assets/{pnext-client-4ed05f9a51f559a3.js → pnext-client-ffab25199333314f.js} +1 -1
  204. package/dist/{default-fMaQH1wm.js → default-B3ValFJp.js} +1 -1
  205. package/dist/{default-aLeIO8IR.js → default-DgP-hBmn.js} +1 -1
  206. package/dist/{delete-Cj16PYaw.js → delete-6T7ujDtY.js} +1 -1
  207. package/dist/{delete-DNj3leWA.js → delete-k7pxp5B6.js} +1 -1
  208. package/dist/{disable-CQg5Vybq.js → disable-BJXxuJ9s.js} +1 -1
  209. package/dist/{discover-bVM8EJEz.js → discover-CRUU1hdS.js} +1 -1
  210. package/dist/{docs-CqeYenUp.js → docs-PmFB2aMA.js} +1 -1
  211. package/dist/{enable-8m3z7i3i.js → enable-DZ7rw7iL.js} +1 -1
  212. package/dist/{flow-DeCL3x2p.js → flow-D8T71fyu.js} +1 -1
  213. package/dist/{init-BujliQ7q.js → init-BfXdsU46.js} +1 -1
  214. package/dist/integrations-DNz6PHFV.js +1 -0
  215. package/dist/{list-DbY1jyj3.js → list-CJhHYVb2.js} +2 -2
  216. package/dist/{list-QLTjk5SN.js → list-CO8x2rgz.js} +1 -1
  217. package/dist/{list-DyqtSWvn.js → list-Cr4c8mT6.js} +1 -1
  218. package/dist/{list-CXu4cr8D.js → list-DedQA2pn.js} +1 -1
  219. package/dist/{list-DGoVY-ao.js → list-F-PN6ieH.js} +1 -1
  220. package/dist/{list-DhVfqr0A.js → list-NtMN55g0.js} +1 -1
  221. package/dist/{list-vKOTwd4G.js → list-erdHI-w9.js} +1 -1
  222. package/dist/{list-BdiYneg5.js → list-yoGxyIlx.js} +1 -1
  223. package/dist/{login-otJB9SYu.js → login-CJjcqCg4.js} +1 -1
  224. package/dist/{login-BzdlmD_o.js → login-p2VknR9f.js} +1 -1
  225. package/dist/{logout-DOrRoxDV.js → logout-B7mHWeWr.js} +1 -1
  226. package/dist/{maintenance-Bg_FzXSq.js → maintenance-C02_cNLp.js} +1 -1
  227. package/dist/{mcp-xSvAWiXX.js → mcp--MIvjMWZ.js} +1 -1
  228. package/dist/{migrate-CN-fdMV9.js → migrate-CSwkAInI.js} +1 -1
  229. package/dist/migrate-rwTojdkz.js +1 -0
  230. package/dist/{model-BJ-Sokha.js → model-Cti-OOdV.js} +1 -1
  231. package/dist/{push-Cg7-XT5h.js → push-D3vxfhc_.js} +1 -1
  232. package/dist/{queue-yo-Z8TaE.js → queue-EvplGOuk.js} +2 -2
  233. package/dist/refresh-BFuahSFK.js +1 -0
  234. package/dist/{remove-BuaShRZ3.js → remove-7y1b_gHT.js} +1 -1
  235. package/dist/{remove-DgMg_OOu.js → remove-BRj1kPYm.js} +1 -1
  236. package/dist/{remove-C8Rm8KP-.js → remove-C57QDigT.js} +1 -1
  237. package/dist/{remove-CcMma1x3.js → remove-UVD3W2OE.js} +1 -1
  238. package/dist/{rename-C0vNcl8e.js → rename-CCv5pca3.js} +1 -1
  239. package/dist/{result-C6ovl_Dn.js → result-BWrYnt0u.js} +1 -1
  240. package/dist/{result-oQey_hdw.js → result-DtVw6XYk.js} +1 -1
  241. package/dist/{resume-T_TXWfqE.js → resume-D7XcEIbu.js} +1 -1
  242. package/dist/{review-CCs6XUSO.js → review-DZGyNO5h.js} +1 -1
  243. package/dist/{rotate-key-CYimsQR5.js → rotate-key-pIfcaeCd.js} +1 -1
  244. package/dist/{run-BFYg-zZt.js → run-B-2NnW4r.js} +1 -1
  245. package/dist/{run-hiPyO7js.js → run-BlXCPJzq.js} +1 -1
  246. package/dist/{run-D7F7JPV6.js → run-Co36tfya.js} +1 -1
  247. package/dist/runner-DRgQvMiZ.js +1 -0
  248. package/dist/sdk.js +1 -1
  249. package/dist/serve-CcqX_2qk.js +8 -0
  250. package/dist/{serve-K3BVTcDI.js → serve-Ci0AFWtY.js} +2 -2
  251. package/dist/{serve-C-AD60Wa.js → serve-DeX0lpXj.js} +1 -1
  252. package/dist/{serve-BgGXjT_O.js → serve-SWjydoBC.js} +1 -1
  253. package/dist/{server-DQTGc55C.js → server-CWbtW4W_.js} +1 -1
  254. package/dist/{setup-host-By8-gv_v.js → setup-host-ON6zJGqS.js} +1 -1
  255. package/dist/{shared-TznJgMFW.js → shared-D64pQ0XU.js} +1 -1
  256. package/dist/{show-o4yXzSWZ.js → show-U0XPh927.js} +1 -1
  257. package/dist/{show-C9ojrH5W.js → show-jdaVKG0f.js} +1 -1
  258. package/dist/{status-BBW7Qyde.js → status-BO1jm6NW.js} +1 -1
  259. package/dist/{steer-D47cuggj.js → steer-DwSAYYqb.js} +1 -1
  260. package/dist/{stop-CD2JW6dI.js → stop-B-dQ2-Gm.js} +1 -1
  261. package/dist/{stop-7brPdki9.js → stop-BS2MB4CQ.js} +1 -1
  262. package/dist/{store-BCBTo0rl.js → store-B0RLMUR9.js} +1 -1
  263. package/dist/{store-qp7UE2ES.js → store-Cxc2GYyj.js} +2 -2
  264. package/dist/{task-CyrDqqf8.js → task-gKnlLOGe.js} +1 -1
  265. package/dist/{test-BcFQUHRo.js → test-TvJAUf4S.js} +1 -1
  266. package/dist/{tools-D20XYPnO.js → tools-BQQfMQB9.js} +1 -1
  267. package/dist/{unalias-G3sM8fVw.js → unalias-DpkgCs_c.js} +1 -1
  268. package/dist/{update-JvgB6Xws.js → update-ChIiUO1Z.js} +1 -1
  269. package/dist/{upgrade-DN3hXDdo.js → upgrade-Cq24oWFZ.js} +2 -2
  270. package/dist/{usage-DR3wWtYD.js → usage-Bw7fQeFC.js} +1 -1
  271. package/dist/{usage-C1oN2W9c.js → usage-CazoINYM.js} +1 -1
  272. package/dist/{watch-DDmHonTf.js → watch-B3gAEK1N.js} +1 -1
  273. package/dist/{watch-DYkC6Q2q.js → watch-DJATTJw_.js} +1 -1
  274. package/dist/{worker-CaNTsqcD.js → worker-C3dzIzd3.js} +1 -1
  275. package/dist/{workflow-7rqzHHWZ.js → workflow-BOPHazbM.js} +1 -1
  276. package/docs/self-host.md +1 -1
  277. package/package.json +2 -2
  278. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  279. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  280. package/dist/auth-FTKev9__.js +0 -1
  281. package/dist/credentials-DLMuf9OT.js +0 -1
  282. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/loading.1716941ff725f152.js +0 -15
  283. package/dist/dash/standalone/static/assets/pnext-client-1473d0349f242421.js +0 -1
  284. package/dist/dash/standalone/static/assets/pnext-client-195f74ae46e817da.js +0 -1
  285. package/dist/dash/standalone/static/assets/pnext-client-2b5532ce488c9391.js +0 -1
  286. package/dist/dash/standalone/static/assets/pnext-client-2d3ea662f22db27f.js +0 -1
  287. package/dist/dash/standalone/static/assets/pnext-client-43c0166e51dce87f.js +0 -1
  288. package/dist/dash/standalone/static/assets/pnext-client-652affde71fecdf7.js +0 -1
  289. package/dist/dash/standalone/static/assets/pnext-client-82beeebf704714a6.js +0 -1
  290. package/dist/dash/standalone/static/assets/pnext-client-ad1fab64ee1a5b30.js +0 -1
  291. package/dist/dash/standalone/static/assets/pnext-client-b2dccebfff1465f5.js +0 -1
  292. package/dist/dash/standalone/static/assets/pnext-client-c8a42c9bfeded4e4.js +0 -1
  293. package/dist/dash/standalone/static/assets/pnext-client-d04d2ffbb491564c.js +0 -1
  294. package/dist/dash/standalone/static/assets/pnext-client-d060565c4d80b60e.js +0 -1
  295. package/dist/dash/standalone/static/assets/pnext-client-dce6e1b84ee02f09.js +0 -1
  296. package/dist/dash/standalone/static/assets/pnext-client-e753846e298d2403.js +0 -1
  297. package/dist/integrations-6kXL9hRo.js +0 -1
  298. package/dist/migrate-DAC6sFgg.js +0 -1
  299. package/dist/refresh-CmBQALAW.js +0 -1
  300. package/dist/runner-D5jaEfhG.js +0 -1
  301. package/dist/serve-GIK3fqKA.js +0 -8
  302. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{defaults.f8b4eee28e030eda.js → defaults.36612942475445c3.js} +0 -0
  303. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.5e991e43e42bd943.js → errors.e10960fe4c66b9d8.js} +0 -0
  304. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.d6aae19495a81adb.js → log-view.58ba9a3d545808d7.js} +0 -0
  305. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/auth/{sign-in.7ee1680af722840f.js → sign-in.661b3a4139af5bd7.js} +0 -0
  306. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{types.0cf02e7714d7c1a2.js → types.9f59e6c761d6aac4.js} +0 -0
  307. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/{page.1df2bb5150dd9575.css.pnext-asset.js → page.78ecdcf250ebe4bd.css.pnext-asset.js} +0 -0
  308. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/{page.9ea9df9d5f80f310.css.pnext-asset.js → page.c2085e3ab40a8b66.css.pnext-asset.js} +0 -0
  309. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/{page.3120ea9ec90cb9cc.css.pnext-asset.js → page.31a5f9731d946f4f.css.pnext-asset.js} +0 -0
  310. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/{page.143668a9c21806d6.css.pnext-asset.js → page.b036494aace45edf.css.pnext-asset.js} +0 -0
  311. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/{agent-settings-form.d6de90cb40c3bd46.css.pnext-asset.js → agent-settings-form.204e3ec0b23d58c7.css.pnext-asset.js} +0 -0
  312. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/@/app/dash/usage/{range-bar.4408a4e0ee81b7b6.css.pnext-asset.js → range-bar.034280ed1ab2616b.css.pnext-asset.js} +0 -0
  313. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/@/comps/ui/{segmented.ded4aa5c0cd2c608.css.pnext-asset.js → segmented.4db9cac358865634.css.pnext-asset.js} +0 -0
  314. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/{page.ae5cbdfc43af6658.css.pnext-asset.js → page.6bf93d41ec4a1fab.css.pnext-asset.js} +0 -0
  315. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/{agent-pills.dcf7e785044cc900.css.pnext-asset.js → agent-pills.1708253f0232e88e.css.pnext-asset.js} +0 -0
  316. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/{hero.a794a01218c5c9ce.css.pnext-asset.js → hero.8dd7556828e78b07.css.pnext-asset.js} +0 -0
  317. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/{instructions.2176859ec1028fc0.css.pnext-asset.js → instructions.532dc545ddb11e88.css.pnext-asset.js} +0 -0
  318. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/@/app/dash/agents/(list)/{page.f2e88eb443d45a74.css.pnext-asset.js → page.1e19c72828fbd611.css.pnext-asset.js} +0 -0
  319. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/{editor.6b13621790a6d5d6.css.pnext-asset.js → editor.52403b9719fb5157.css.pnext-asset.js} +0 -0
  320. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/{names.cf9e376a918a5341.js → names.afb112f2a5a6f0f5.js} +0 -0
  321. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{layout.946ec7c4ebb1d7c6.css.pnext-asset.js → layout.4b31e7e60256f6d1.css.pnext-asset.js} +0 -0
  322. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{credentials-list.3bd27b14c0d60e48.css.pnext-asset.js → credentials-list.0953506d95c86a2f.css.pnext-asset.js} +0 -0
  323. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{engines-list.39cd71b7dc568516.css.pnext-asset.js → engines-list.c04c712adfc0ca48.css.pnext-asset.js} +0 -0
  324. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{list.2a204889b73638d9.css.pnext-asset.js → list.4835150fd34d0c4f.css.pnext-asset.js} +0 -0
  325. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{mcp-list.d743e37cd6dc85d8.css.pnext-asset.js → mcp-list.a2b3bf3c7c5fa42e.css.pnext-asset.js} +0 -0
  326. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/{runners-list.3dac92fb9f64e2be.css.pnext-asset.js → runners-list.0e2d8a76197cde60.css.pnext-asset.js} +0 -0
  327. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/{model-options.2ca6c87aedf3588c.js → model-options.bccfaced52fc0c00.js} +0 -0
  328. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/{page.5edeae58f2154a50.js → page.9d2087e0e33d57f8.js} +0 -0
  329. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/{task-view.c2288044c9032a89.css.pnext-asset.js → task-view.2110bc4a16798cde.css.pnext-asset.js} +0 -0
  330. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/{composer.41721fb98004e79e.css.pnext-asset.js → composer.80a979f079b29681.css.pnext-asset.js} +0 -0
  331. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/{status.9516cc22cbd5d84b.css.pnext-asset.js → status.d71a946ed749ca30.css.pnext-asset.js} +0 -0
  332. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/{tasks-list.55fa11c945f9c6db.css.pnext-asset.js → tasks-list.291e81e56d54513c.css.pnext-asset.js} +0 -0
  333. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/@/app/dash/usage/{range-bar.72f0c7c440fb34af.css.pnext-asset.js → range-bar.53967f3261c8387e.css.pnext-asset.js} +0 -0
  334. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/@/comps/ui/{segmented.81631cafb8e3b260.css.pnext-asset.js → segmented.2ca6fee7dd2830ad.css.pnext-asset.js} +0 -0
  335. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{day-chart.c7b7d04403f0fc79.css.pnext-asset.js → day-chart.c566c1a55d15bf58.css.pnext-asset.js} +0 -0
  336. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{range-bar.671afdd0798f4de9.css.pnext-asset.js → range-bar.5504dd2c591a3056.css.pnext-asset.js} +0 -0
  337. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{stats.3b02ee8317b9c4e3.css.pnext-asset.js → stats.cd1d20f46f1347bf.css.pnext-asset.js} +0 -0
  338. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{top-agents.441006da5b4eae17.css.pnext-asset.js → top-agents.47aecd65c0c8fa2e.css.pnext-asset.js} +0 -0
  339. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/{usage.d6df7cb6980171ce.css.pnext-asset.js → usage.0f646568d57d13e8.css.pnext-asset.js} +0 -0
  340. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.89a59affc5df947b.css.pnext-asset.js → globals.e9ce0eb6697f992d.css.pnext-asset.js} +0 -0
  341. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.f852a09edc8b6b44.css.pnext-asset.js → page.57e5198339e9ca28.css.pnext-asset.js} +0 -0
  342. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{page.7e7f8611a9bb7b22.js → page.2c6a0a292ea8ab67.js} +0 -0
  343. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{responsive.1fd73ea94977bfc0.css.pnext-asset.js → responsive.82549d958fae8f00.css.pnext-asset.js} +0 -0
  344. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{zone.66f36b17e74cf5f8.js → zone.dbc84f981415d8f7.js} +0 -0
  345. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/@/comps/ui/{toast.8d599c6821860a1c.css.pnext-asset.js → toast.a4c3e977997216cf.css.pnext-asset.js} +0 -0
  346. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{auth-panel.e5af611567239b13.css.pnext-asset.js → auth-panel.c6e05b4540b3d555.css.pnext-asset.js} +0 -0
  347. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.9090aa789dffa730.css.pnext-asset.js → drawer.e8201d78154045bc.css.pnext-asset.js} +0 -0
  348. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{heads.5407f7793f985b16.js → heads.fa2157b3b36647f3.js} +0 -0
  349. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.53db3a3d313c0473.css.pnext-asset.js → page-head.a6e3c4204ca45e94.css.pnext-asset.js} +0 -0
  350. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{to.248665fde7daaf07.js → to.0116bedfbe5f1133.js} +0 -0
  351. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.d21391f2f8573db8.css.pnext-asset.js → badge.0cb1513f8b077560.css.pnext-asset.js} +0 -0
  352. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.4f9265213510ffd3.css.pnext-asset.js → card.146f70c7049b5b31.css.pnext-asset.js} +0 -0
  353. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.60c9038c70fb9c46.css.pnext-asset.js → collapse.fb687b120ea60247.css.pnext-asset.js} +0 -0
  354. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.fc6d4da835b75a30.css.pnext-asset.js → confirm.fb57a29a70e9df56.css.pnext-asset.js} +0 -0
  355. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{field.8db4420dfb447e42.css.pnext-asset.js → field.7e73edc204cd38df.css.pnext-asset.js} +0 -0
  356. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.9311d535531caaf3.css.pnext-asset.js → filter.e20fbd035f24ed01.css.pnext-asset.js} +0 -0
  357. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icon.476b846e39908951.css.pnext-asset.js → icon.424a21694f121010.css.pnext-asset.js} +0 -0
  358. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.e17bdd0b5504787f.js → icons.1777c0350d5d215e.js} +0 -0
  359. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.d412af459c187b41.css.pnext-asset.js → menu.6341c87b5bec4256.css.pnext-asset.js} +0 -0
  360. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.171b067d7cb36977.css.pnext-asset.js → segmented.0bd8652fdbc05eb0.css.pnext-asset.js} +0 -0
  361. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.5dbceaae2ba7ace4.css.pnext-asset.js → select.03a695573b914d6f.css.pnext-asset.js} +0 -0
  362. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.332fb99b3a214f0e.css.pnext-asset.js → sentinel.bcff411a9f2355ec.css.pnext-asset.js} +0 -0
  363. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.87bc5cdfc4d1b85e.css.pnext-asset.js → tabs.ca13e40ff54128d0.css.pnext-asset.js} +0 -0
  364. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.25fd24d6cd0564b7.css.pnext-asset.js → tail.0a5f3c0595e68610.css.pnext-asset.js} +0 -0
  365. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.5e35e79f4d575452.css.pnext-asset.js → toolbar.40284b41c03c5dcb.css.pnext-asset.js} +0 -0
  366. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{format.ba382c381ea40e77.js → format.6a7d1beaf4d09d9c.js} +0 -0
  367. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{paged.64ead375df845ff2.js → paged.7e5713a82abf0211.js} +0 -0
  368. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{range.f0a5ef1763ff3cb9.js → range.f73ba9cac0a60af1.js} +0 -0
@@ -5,7 +5,7 @@ import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{An as t,Bt as n,Dt as
5
5
  `);function Uo(e){return e.type===`command`}function Wo(e){let t=Object.entries(e??{}).filter(([,e])=>e);return t.length?`Current settings:\n${t.map(([e,t])=>`• ${e}: \`${t}\``).join(`
6
6
  `)}`:`No settings yet. A workspace admin can configure this agent in the dashboard.`}function Go(e){let[t=``,...n]=e.text.trim().split(/\s+/);return Vo.includes(t)&&n.join(` `).trim()!==``}async function Ko(e,t,n){let[r=``,...i]=e.text.trim().split(/\s+/),a=i.join(` `).trim(),o={...t.settings},s;return r?r===`show`?s=Wo(t.settings):Vo.includes(r)?a?(o[r]=a,s=`${r} set to \`${a}\`.`):s=`Give a value: \`/setup ${r} <name>\`.`:s=`Unknown setting \`${r}\`.\n${Ho}`:s=Ho,JSON.stringify(o)!==JSON.stringify(t.settings??{})&&await Tl(n,`installation`,t.id,{settings:o}),s}async function qo(e,t,n){let r=`${t.id}:${n.installationId}`,i=e.boundInstallation?.installation.id===r?e.boundInstallation.installation:await e.store.get(`installation`,r);return i&&!i.deletedAt?i:void 0}async function Jo(e,t,n){let r=await e.auth.linkedUser(t.id,n.actor.id).catch(()=>void 0);return r?.organizations?.includes(e.organizationId)?r:void 0}async function Yo(e,t,n,r,i,a,o=!1){let s=e.config.publicUrl?.replace(/\/$/,``),c=kt(),l=o||await e.store.create(`delivery`,`link:${t.id}:${r.actor.id}`,{at:a,owner:c},{ttlMs:864e5});if(!s||!l)return;let u=e=>`Link your Coder account so I can work for you here: ${e}`;try{if(t.auth.user){await i.post(u(`${s}/connect/${t.id}?installation=${encodeURIComponent(n.id)}`));return}let a=await Lo(e,{platform:t.id,platformUserId:r.actor.id});await i.whisper(u(`${s}/connect?token=${encodeURIComponent(a)}`))}catch(n){throw o||await e.store.updateDelivery(`link:${t.id}:${r.actor.id}`,c,void 0).catch(()=>{}),n}}function Xo(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>e in t.definition.integrations))}async function Zo(e,t,n){let r={};n.repo?r[n.integration]={repo:{owner:n.repo.owner,name:n.repo.name}}:n.chat&&(r[n.integration]={thread:n.chat.thread.id});for(let[n,i]of Object.entries(t.connections??{})){if(i.kind!==`installation`)continue;let t=(await e.store.get(`installation`,i.id))?.settings?.configRepo,a=t&&/^([^/]+)\/([^/]+)$/.exec(t);a&&(r[n]={repo:{owner:a[1],name:a[2]}})}return r}function Qo(e,t){return`<!-- coder:setup -->\nCoder is installed, but no engine is connected. [Connect ${t}](${Wa(e,t)}).`}async function $o(e,t,n,r){let i=Q({agent:n,requester:r,event:t}),a=await ts(e,i)??await e.store.get(`snapshot`,`session:${i}`);if(!a||a.requester!==r||!t.actor.id||a.actor!==t.actor.id)return;let s=await e.store.get(`task`,a.id);if(s&&[`queued`,`running`,`waiting`].includes(s.status)&&Q(s.task)===i)return s.task.id;let c=f(e.local.cwd,a.id);if(!c){let t=(await e.store.list(`delivery`,{prefix:`delivery:`})).find(e=>e.value.session?.key===i&&e.value.session.id===a.id)?.value.pending;if(!t?.task||t.taskId!==a.id||Q(t.task)!==i)return;await Kc(e,t.task,t.taskId),c=f(e.local.cwd,a.id)}if(!c||c.agentId!==n)return;let l=o(e.local.cwd,c);return l.status===`running`||l.status===`queued`?l.id:void 0}async function es(e,t,n,r,i,a,o){let s=`delivery:${t.id}:${n.id}:${i.installationId}:${i.chat?.thread.id??``}:${i.deliveryId}`,c=await qo(e,n,i);if(!c||e.local&&await e.store.get(`delivery`,s).then(e=>e&&!e.pending))return{};if(!e.local)return rs(e,t,n,r,i,c,a,o,s);let l=JSON.stringify([i.appId,i.installationId,i.chat?.thread.id]),u=e.store.handoffs??=new Map,d=(u.get(l)??Promise.resolve()).catch(()=>{}).then(async()=>{let l=await rs(e,t,n,r,i,c,a,o,s);return await l.work,l});u.set(l,d);try{return await d}finally{u.get(l)===d&&u.delete(l)}}async function ts(e,t){let n=await e.store.list(`delivery`,{prefix:`delivery:`}),r=await e.store.get(`snapshot`,`session:${t}`);return[...n.map(e=>e.value.session),r&&{...r,key:t}].filter(e=>e?.key===t).sort((e,t)=>(t.version??0)-(e.version??0))[0]}async function ns(e,t,n,r,i,o,s=!1){let c=kt(),l={event:n,...o?{task:o,taskId:o.flow==="default"?a():He()}:{}},u;if(e.local&&!n.repo){let n=await e.store.get(`delivery`,t);if(n&&!n.pending)return{};if(l=n?.pending??l,l.task&&!l.taskId)throw Error(`Local delivery has no task binding`);if(u=n?.session,!u&&s&&l.task){let t=Q(l.task);u={key:t,id:l.taskId,version:((await ts(e,t))?.version??0)+1,requester:l.task.requester,actor:l.task.event.actor.id}}await e.store.put(`delivery`,t,{at:r(),owner:c,pending:l,...u?{session:u}:{}})}else if(!await e.store.create(`delivery`,t,{at:r(),owner:c,pending:l},{ttlMs:Ro}))return{};return{work:(async()=>{let n=Promise.resolve(),a=e.local?void 0:setInterval(()=>{n=n.then(async()=>{await e.store.updateDelivery(t,c,{at:r(),owner:c,pending:l},{ttlMs:Ro})}).catch(()=>{})},Ro/3);try{await i(l),a&&clearInterval(a),await n,await e.store.updateDelivery(t,c,{at:r(),...u?{session:u}:{}},{ttlMs:zo})}catch(r){throw a&&clearInterval(a),await n,(!e.local||!l.task)&&await e.store.updateDelivery(t,c,void 0).catch(()=>{}),r}})()}}async function rs(e,t,n,r,i,a,o,s,c){let u=t=>ns(e,c,i,o,t);if(Uo(i))return e.auth&&Go(i)&&!await Jo(e,t,i)?u(()=>Yo(e,t,a,i,s,o(),!0)):u(()=>Ko(i,a,e.store).then(e=>s.whisper(e)).then(()=>{}));let d=await Tc(e,t,a,r,Dc(i.repo,t.tools.presets.observe)),p=await jc(e,a,i,d),[m,h]=await Promise.all([e.loadAgent(n,a,i,p),e.auth&&i.actor.id?Jo(e,t,i):void 0]);if(!h&&e.auth&&i.actor.id&&t.events[i.type]?.addressed)return u(()=>Yo(e,t,a,i,s,o()));let g=h?.id,_=Qe(i,m);if(!_)return{};let v=i.chat&&_.flow==="default"&&t.events[i.type]?.steers,ee=t=>ns(e,c,i,o,async t=>{let n=t.task,r=await Kc(e,n,t.taskId);if(v){let i=await ts(e,Q(n));i&&i.id===t.taskId&&await e.store.put(`snapshot`,`session:${i.key}`,{...i,id:r.task.id})}},t,!!v);if(e.local&&!i.repo){let t=await e.store.get(`delivery`,c);if(t?.pending?.task){let e=t.pending.task;return Q(e)!==Q({agent:m.id,requester:g,event:i})||e.flow!==_.flow?{}:ee(e)}}let y=e.local&&!i.repo&&v?await $o(e,i,m.id,g):void 0;if(y){let t=await e.store.get(`task`,y),n=f(e.local.cwd,y);return!n||t?.status===`queued`?u(async()=>{t&&await gl(e,y,`steer`,{text:i.text},t.generation??0)}):n.threadId?u(()=>Le(e.local.cwd,n,i.text).then(()=>{})):u(async()=>{l(e.local.cwd,y,i.text)})}let te=we(m),ne=Xo(p,m),[re,ie,ae,b]=await Promise.all([Yn(e,{requester:g,agent:m.definition.runner}),Ta(e.store,te.engine,g),Zo(e,a,i),fn(e,t,a,i,ne,m,t.events[i.type]?.addressed&&t.history!==!1?s.recent:void 0,h??null)]);if(!ie&&re.runner!==`http`&&!await cl(e,te.engine??`claude`))return(!e.local||i.repo)&&v&&(await e.queue.deliver(e.organizationId,{id:`${i.deliveryId}-${m.id}`,source:i.integration,agent:m.id,flow:_.flow,...re,event:i,requester:g,definition:m.definition,tools:{}},o(),{key:c,ttlMs:864e5},!0,void 0,!1)).steered?{}:u(()=>s.post(Qo(e,te.engine??`claude`)).then(()=>{}));let oe=new Set(t.tools.presets.observe),se=_.tools[i.integration]??[];h&&t.auth.canWrite&&se.some(e=>!oe.has(e))&&!await t.auth.canWrite(i,d)&&(_.tools[i.integration]=se.filter(e=>oe.has(e)));let ce=Object.fromEntries(Object.entries(_.tools).filter(([e])=>e in ne).map(([t,n])=>{if(ae[t])return[t,n];if(t!==i.integration)return[t,[]];let r=new Set(e.integrations[t]?.tools.presets.observe??[]);return[t,n.filter(e=>r.has(e))]}).filter(([,e])=>e.length));if(Buffer.byteLength(JSON.stringify(i))>Bo)throw Error(`Event exceeds 256 KB`);if(Buffer.byteLength(JSON.stringify(b))>Bo)throw Error(`Task context exceeds 256 KB`);let le={id:`${i.deliveryId}-${m.id}`,source:i.integration,agent:m.id,flow:_.flow,...re,permissions:_.permissions??te.permissions,event:i,author:t.author?.(n.name)??n.name,definition:m.definition,...ie?{credential:ie.id}:{},...g?{requester:g}:{},...m.files?{files:m.files}:{},...m.usage?{usage:m.usage}:{},tools:ce,...Object.keys(ae).length?{toolScopes:ae}:{},...Object.keys(b).length?{context:b}:{}};return e.local&&!i.repo&&re.runner===`local`&&!re.runnerId?ee(le):e.queue.deliver(e.organizationId,le,o(),{key:c,ttlMs:zo},!!v,e.config.maxQueued??1e3)}var is=e({addressedTo:()=>fs,chatFor:()=>vs,deliver:()=>ms,eventReplies:()=>gs,later:()=>ps,renewInstallation:()=>ys,renewInstallations:()=>bs,threadReplies:()=>hs});async function as(e,t,n,r,i){let a=`${t.id}:${r}`,o=await gn(e,a),s=o?.boundInstallation?.installation.id===a?o.boundInstallation.installation:await o?.store.get(`installation`,a);if(!o||!s||s.deletedAt)throw Error(`${t.integration} installation ${r} is not bound to this server`);return Tc(o,e.integrations[t.integration],s,n,i)}function os(e){if(e._type===`chat:Thread`)return{...e,currentMessage:void 0};let{raw:t,replyTo:n,...r}=e;return{...r,raw:null,id:r.id.startsWith(`ephemeral:`)?``:r.id}}const ss=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),cs=(e,t)=>Object.keys(e.events).find(n=>e.events[n].on===t),ls=`(?![\\w-]|\\.\\w)`,us=e=>e.replace(/[ \t]{2,}/g,` `).trim();function ds(e,t){let n=t.reduce((e,t)=>e.replace(RegExp(`(^|[^\\w-])@${ss(t)}${ls}`,`gi`),`$1`),e);return n===e?void 0:us(n)}function fs(e,t){let n=ds(e,[t]);if(n!==void 0)return n;let r=RegExp(`^\\s*${ss(t)}${ls}[\\s,:;!.?-]*`,`i`);return r.test(e)?us(e.replace(r,``)):void 0}function ps(e,t,n,r){let i=r.catch(e=>console.error(`coder server: dispatch failed for ${t.id} event ${n.deliveryId}`,e));e.waitUntil&&e.waitUntil(i)}async function ms(e,t,n,r,i,a){let o=await gn(e,`${n.id}:${i.installationId}`);if(!o||!n.builtin&&o.organizationId!==e.organizationId)return;let s=await es(o,t,n,r,i,e.now??Date.now,a);return await s.work,s.taskId&&await Fo(o,!0,!1,!0),s.taskId}function hs(e,t,n){return{post:t=>n&&e.adapter.reply?e.reply(n,t):e.post(t),whisper:n=>t?e.postEphemeral(t,n,{fallbackToDM:!1}):Promise.resolve(null),async recent(){let t=[],n=0;for await(let r of e.allMessages)if(t.push({user:r.author.userName||r.author.userId,text:r.text,ts:r.metadata.dateSent.toISOString()}),t.length>10&&t.shift(),++n===1e3)break;return t}}}async function gs(e,t,n){if(!n.chat)return{post:async()=>{},whisper:async()=>{}};let r=await vs(e,t,{id:n.installationId,...n.repo?{repo:n.repo}:{}});return await r.initialize(),hs(r.thread(n.chat.thread.id),n.actor.id||void 0,n.chat.message?.id||void 0)}function _s(e,t,n,r,i,a,o=a.id){let s=r===`message`&&t.agent===`coder`?fs(a.text,De):void 0;if(r===`message`&&t.agent===`coder`&&s===void 0)return;let c=cs(e,s===void 0?r:`mention`);if(!c||a.author.isBot===!0)return;let l=e.event?e.event(c,i,a,t):{};if(!l)return;let u=(l.type??c)===cs(e,`mention`)?s??ds(a.text,[t.name,...n.self?[n.self]:[]])??a.text:a.text;return{integration:e.id,type:c,appId:t.id,installationId:n.id,deliveryId:Dt(`sha256`).update(`${t.id}\n${n.id}\n${i.id}\n${o}`).digest(`base64url`).slice(0,22),actor:{id:a.author.userId,...a.author.userName?{login:a.author.userName}:{}},text:u,chat:{thread:os(i.toJSON()),message:os(a.toJSON())},...n.repo?{repo:n.repo}:{},...l}}async function vs(e,t,n){let r=e.integrations[t.integration];if(!r)throw Error(`Unknown integration "${t.integration}"`);let i=N(e.config,t.credentials),a=await r.adapter({fetch:e.fetch??fetch,appId:t.id.slice(r.id.length+1),name:t.name,credentials:i,...n?{installationId:n.id,...n.self?{self:n.self}:{}}:{},token:(r,a)=>as(e,t,i,r,{...n?.repo?{repo:{owner:n.repo.owner,name:n.repo.name}}:{},...a}),isBound:async n=>{let r=`${t.id}:${n}`,i=await gn(e,r),a=i?.boundInstallation?.installation.id===r?i.boundInstallation.installation:await i?.store.get(`installation`,r);return!!(a&&!a.deletedAt&&(t.builtin||i?.organizationId===e.organizationId))}}),o=mt(e.chatState??new ht,t.id),s=new Ht({userName:t.name,adapters:{[r.id]:a},state:{...o,isSubscribed:async()=>!1},concurrency:`concurrent`,dedupeTtlMs:zo,logger:`error`});if(!n)return s;let c=async(a,o,s,c)=>{let l=_s(r,t,n,a,o,s,c);l&&ps(e,t,l,ms(e,r,t,i,l,hs(o,s.author,s)))};return s.onNewMention((e,t)=>c(`mention`,e,t)),s.onNewMessage(/[\s\S]*/,(e,t)=>c(`message`,e,t)),s.onReaction(async e=>{if(!e.added)return;let t=r.reactionId?.(e);if(!t)return;let n=new Ut({id:e.messageId,threadId:e.threadId,text:e.message?.text??``,formatted:e.message?.formatted??{type:`root`,children:[]},raw:e.raw,author:e.user,metadata:e.message?.metadata??{dateSent:new Date,edited:!1},attachments:[]});await c(`reaction`,e.thread,n,`reaction\n${t}\n${e.user.userId}\n${e.rawEmoji}`)}),s.onSlashCommand(`/setup`,async a=>{let o=cs(r,`command`);if(!o)return;let s=e=>a.channel.postEphemeral(a.user,e,{fallbackToDM:!1}),c={integration:r.id,type:o,appId:t.id,installationId:n.id,deliveryId:Dt(`sha256`).update(`${t.id}\n${n.id}\n${a.channel.id}\n${a.triggerId??a.text}`).digest(`base64url`).slice(0,22),actor:{id:a.user.userId,...a.user.userName?{login:a.user.userName}:{}},text:a.text.trim()};ps(e,t,c,ms(e,r,t,i,c,{post:s,whisper:s}))}),s}async function ys(e,t,n,r=`renew`){let i=e.integrations[t.integration];if(!i?.[r])return;let a=[],o=await vs({...e,waitUntil:t=>{a.push(t),e.waitUntil?.(t)}},t,{id:n});for(await o.initialize(),await i[r](o.getAdapter(i.id));a.length;)await Promise.all(a.splice(0))}async function bs(e,t=`renew`){for(let n of Object.values(e.integrations))if(n[t])for(let{key:r,organizationId:i}of await e.installations?.(n.id)??[]){let n=await j(e,i).store.get(`installation`,r),a=n&&await hn(e,n.app);a&&await ys(a.ctx,a.app,r.slice(a.app.id.length+1),t).catch(()=>{})}}const xs=`.coder/agents`;function Ss(e){return e.repo?`${e.repo.owner}/${e.repo.name}`:void 0}async function Cs(e,t,n,r){let i=await e.repos.readFile(t,`.coder/config.json`,n,r);return i===void 0?void 0:JSON.parse(i).agents}async function ws(e,t,n,r,i={}){for(let t of Object.values(e))if(!(!r.repo&&t.id===r.integration||!t.repos||!i[t.id]))return{contents:t,token:i[t.id]};let[a,o]=n.split(`/`);for(let{value:r}of await t.store.list(`app`)){if(r.agentsRepo!==n)continue;let i=e[r.integration];if(!i?.repos)continue;let s=(await t.store.list(`installation`,{prefix:`${r.id}:`})).find(e=>!e.value.deletedAt)?.value;if(s)try{let e=s.token?{...s,token:N(t.config,s.token)}:s;return{contents:i,token:await i.auth.token(e,N(t.config,r.credentials),{...a&&o?{repo:{owner:a,name:o}}:{},tools:i.tools.presets.observe}),app:r,installation:s}}catch{continue}}}function Ts(e,t){let n=t.cwd??E.cwd(),r=t.now??Date.now,i=new Map;async function a(t,n,r){let i=Ae(e),a=i&&r[i.id];if(!i?.repos||!a)return;let o=Ss(n);if(n.integration===i.id&&o)return Cs(i,o,a,n.repo?.ref);let s=t.settings?.configRepo;if(s)return Cs(i,s,a)}function o(e,t,n,o){let s=`${e.id}@${Ss(n)??t.settings?.configRepo??``}@${n.repo?.ref??``}`,c=r();for(let[e,t]of i)c-t.at>=6e4&&i.delete(e);let l=i.get(s);return l||(l={at:c,usage:a(t,n,o)},i.set(s,l)),l.usage}async function s(n,i,a,s){let c=await R(t.store,n.agent);c.record&&await vr(t.store,r(),n.agent,c)&&(c=await R(t.store,n.agent));let{record:l,version:u}=c;if(!l)return;if(!u)throw Error(`No version ${l.currentVersion} for agent "${l.id}".`);let d=await o(n,i,a,s),f=d&&typeof d==`object`?d[n.agent]:void 0;if(f===!1)throw Error(`Agent "${n.agent}" is disabled in ${Ss(a)??i.settings?.configRepo??n.agentsRepo}.`);return gr(l,u,f&&typeof f==`object`?f:void 0,e)}return async(i,a,o,c)=>{let l=(await be(n,e)).find(e=>e.id===i.agent&&!e.builtin);if(l)return l;let u=await s(i,a,o,c);if(u)return u;if(i.agentsRepo){let n=await ws(e,t,i.agentsRepo,o,c);if(n){await Ds(t.store,n.contents,i.agentsRepo,Ss(o)===i.agentsRepo?o.repo?.ref??`HEAD`:`HEAD`,n.token,r());let e=await s(i,a,o,c);if(e)return e;throw Error(`No agent "${i.agent}" in ${i.agentsRepo}.`)}}if(await vr(t.store,r(),i.agent,{})){let e=await s(i,a,o,c);if(e)return e}throw Error(i.agentsRepo?`No agent named "${i.agent}".`:`No built-in agent "${i.agent}".`)}}async function Es(e,t,n,r,i,a=``,o,s=0){let c={},l=o??await e.repos.listDir(t,a?`${n}/${a}`:n,r,i);for(let o of l){let u=a?`${a}/${o}`:o;if(u===`agent.json`||u===`system.md`)continue;let d=await e.repos.readFile(t,`${n}/${u}`,r,i);if(d!==void 0)c[u]=d;else if(s<20){let a=await e.repos.listDir(t,`${n}/${u}`,r,i);a.length&&!Mt(a,l)&&Object.assign(c,await Es(e,t,n,r,i,u,a,s+1))}}return c}async function Ds(e,t,n,r,i,a,o={}){let s=o.path??`.coder/agents`,c=/^[0-9a-f]{40}$/i.test(r)?r:await t.repos.commit(n,r,i)??r,l={repo:n,ref:o.branch??r,commit:c};r=c;let u=o.slugs??await t.repos.listDir(n,s,i,r);Te(u);let d=[];for(let o of u){let u=`${s}/${o}`,f=await t.repos.readFile(n,`${u}/agent.json`,i,r);if(f===void 0)continue;let p=JSON.parse(f),[m]=Ce({definitions:{[o]:{json:p,builtin:!1}},usage:void 0},{...Me,[t.id]:t});m&&d.push(await dr(e,{id:o,name:m.name,description:m.definition.description,source:`repo`,repo:n,path:u,definition:m.definition,systemPrompt:await t.repos.readFile(n,`${u}/system.md`,i,r)??``,files:await Es(t,n,u,i,r),commit:c,origin:l,importedFrom:`repo:${n}@${l.ref}`},a))}return d}async function Os(e,t){let n=e.config.publicUrl;if(!n||!t.length)return;let r=new Map(t.map(e=>[e.agent,e])),i=await e.store.list(`app`),a=(await Promise.all(i.filter(({value:e})=>r.has(e.agent)).map(async({id:t})=>e.store.withAppLock(t,async i=>{let a=await i.get(`app`,t);if(!a||!r.has(a.agent))return;let o=await cr(i,a.agent)??r.get(a.agent),s=e.integrations[a.integration]?.app.update;if(!s||!o.definition.integrations[a.integration])return;let c=`app-sync:${t}`,l=await i.get(`delivery`,c);if(l&&!l.pending&&l.version>=o.version&&Mt(l.definition,o.definition)||l&&l.version>o.version)return;let u={version:o.version,definition:o.definition,pending:!0};await i.put(`delivery`,c,u);try{let t=await s(a,N(e.config,a.credentials),{publicUrl:n,definition:o.definition,fetch:e.fetch??fetch,saveCredentials:async t=>{await i.put(`app`,a.id,{...a,credentials:M(e.config,t)})}});t&&await i.put(`app`,a.id,{...a,credentials:M(e.config,t)}),await i.put(`delivery`,c,{...u,pending:!1})}catch(e){let t=`Could not sync ${a.integration} app ${a.id}. ${e instanceof Error?e.message:String(e)}`;return await i.put(`delivery`,c,{...u,error:t}),t}})))).filter(Boolean);if(a.length)throw Error(a.join(`
7
7
  `))}function ks(){return{integration:`source`,type:`import`,appId:``,installationId:``,deliveryId:``,actor:{id:`admin`},text:``}}async function As(e,t,n,r=ks(),i){let a=await ws(e.integrations,{config:e.config,store:e.store},t,r);if(!a)return;let o=await Ds(e.store,a.contents,t,n,a.token,(e.now??Date.now)(),i?{branch:i}:{});return await Os(e,o),o}const js=/^[a-z0-9][a-z0-9_-]*$/i;async function Ms(e,t){let n=Pe(Fe(),`builtin`).map(({name:e})=>({name:e,scope:`builtin`}));if(!t)return S(n);try{let{integration:r,token:i}=await bo(e,t),a=(r.repos?await r.repos.listDir(t,`.coder/flows`,i):[]).map(e=>e.replace(/\.(ts|mjs|js)$/,``)).filter(e=>js.test(e));return S([...a.map(e=>({name:e,scope:`workspace`})),...n.filter(e=>!a.includes(e.name))])}catch(e){return W(e)}}async function Ns(e,t){if(!t)throw new U(`repo is required`);let{integration:n,token:r}=await bo(e,t);return S(await n.repos?.pullRequests(t,r)??[])}async function Ps(e,t){try{return S(Ws(await So(e,`dashboard`,t)),201)}catch(e){return W(e)}}async function Fs(e,t,n,r){try{return Ms(t,r.searchParams.get(`repo`))}catch(e){return e instanceof G?S({error:e.message},400):W(e)}}async function Is(e,t,n,r){try{return await Ns(t,r.searchParams.get(`repo`))}catch(e){return e instanceof G?S({error:e.message},400):W(e)}}async function Ls(e,t,n,r){let i=n.name;try{return Ps(t,{...await yc(e),flow:i})}catch(e){return e instanceof G?S({error:e.message},400):W(e)}}async function Rs(e,t,n,r){try{{let{post:n,...r}=await yc(e);if(!r.repo||!r.pr)throw new U(`repo and pr are required`);return Ps(t,{...r,flow:`review`,args:{post:n===!0}})}}catch(e){return e instanceof G?S({error:e.message},400):W(e)}}function zs(e,t,n){return(e.waitUntil??(e=>void e.catch(()=>{})))(t),Promise.resolve(S({tasks:n},202))}async function Bs(e,t,n,r,i,a){if(`installation`in i){let t=await gn(e,i.installation.installation.id),n=await t?.store.get(`installation`,i.installation.installation.id);return!t||!n||await Tl(t.store,`installation`,n.id,{account:i.installation.installation.account,deletedAt:i.installation.op===`delete`?a:void 0}),S({ok:!0})}if(`changes`in i){let r=i.changes;try{n.branch||await Tl(e.store,`app`,n.id,{branch:r.branch});let i=await As(e,r.repo,r.ref,{...ks(),integration:t.id,appId:n.id},r.branch);return i?S({imported:i.map(e=>e.agent)}):S({error:`No installed app can read ${r.repo}`},400)}catch(e){return S({error:e instanceof Error?e.message:String(e)},400)}}for(let a of i.events)ps(e,n,a,gs(e,n,a).then(i=>ms(e,t,n,r,a,i)));return S({accepted:i.events.length},202)}async function Vs(e,t,n){let r=t.integrations[n],i=await e.text(),a=r.target(e,i);if(a instanceof Response)return a;if(!a)return new Response(`Not addressed to an app`,{status:400});let o=`${r.id}:${a.app}`,s=t.webhookTarget?await t.webhookTarget(o,a.installation?`${o}:${a.installation}`:void 0):void 0,c=t.webhookTarget?s&&{ctx:{...j(t,s.organizationId),...s.bound?{boundInstallation:s.bound}:{}},app:s.app}:await hn(t,o);if(!c)return new Response(`Unknown app`,{status:404});let{ctx:l,app:u}=c,d=N(l.config,u.credentials),f=r.ownEvents?.(e,i,u,d);if(f&&`invalid`in f)return new Response(`Invalid signature`,{status:401});if(f)return Bs(l,r,u,d,f,(l.now??Date.now)());let p=(await vs(l,u,a.installation?{...a,id:a.installation}:void 0)).webhooks[r.id];return p(new Request(e.url,{method:`POST`,headers:e.headers,body:i}),{deduplicate:!1,waitUntil:e=>{let t=e.catch(e=>console.error(`coder server: webhook work failed for ${u.id}`,e));l.waitUntil&&l.waitUntil(t)}})}const Hs=new Set([`completed`,`failed`,`cancelled`]);function W(e){if(e instanceof U)return S({error:e.message,...e.fix?{fix:e.fix}:{}},e.status);throw e}function Us(e){let{id:t,name:n,source:r,agent:i,flow:a,event:o,prompt:s,cwd:c}=e.task;return{task:{id:t,...n?{name:n}:{},source:r,agent:i,flow:a,...c?{cwd:c}:{},...s?{prompt:s}:{},...o?{event:{integration:o.integration,type:o.type,text:o.text}}:{}},status:e.status,...e.status===`queued`?{statusReason:`Waiting for a task slot`}:{},attempts:e.attempts,createdAt:e.createdAt,startedAt:e.startedAt,finishedAt:e.finishedAt}}function Ws(e){let{tokenHash:t,handle:n,...r}=e;return{...r,...e.status===`queued`?{statusReason:`Waiting for a task slot`}:{},turns:Co(e),...e.task.credential?{credential:H(e.task.credential).label}:{}}}async function Gs(e,t,n,r){let i=n.id,a=Number(r.searchParams.get(`after`)??-1),o=Number.isFinite(a)?a:-1,s=r.searchParams.has(`limit`)?C(r,500,2e3):void 0,c=z(t.store,i,o,s??500);c?.catch(()=>{});let l=await t.store.get(`task`,i);if(!l||t.local&&l.handle?.startsWith(`cli:`)&&l.task.flow==="default"){let e=l?.task.cwd??t.local?.cwd;if(!e)return S({error:`No task "${i}"`},404);let n=J(e,i,!0);return n?S({...n,...l?.answer?{answer:l.answer}:{},logs:Jc(e,i,-1,s??500)}):S({error:`No task "${i}"`},404)}let u=l.task.runner===`github-actions`&&l.handle?await Ei(t,l,o,s??500).catch(()=>c):await c;return S({...Ws(l),logs:u})}async function Ks(e,t,n,r){let i=n.id;Number(r.searchParams.get(`after`)??-1),r.searchParams.has(`limit`)&&C(r,500,2e3);let a=await t.store.get(`task`,i);if(!a||t.local&&a.handle?.startsWith(`cli:`)&&a.task.flow==="default"){let n=a?.task.cwd??t.local?.cwd;if(!n)return S({error:`No task "${i}"`},404);let r=await Y(e,n,i,void 0,t);return r.ok&&t.queue instanceof vl&&t.queue.tombstone(i),r}if(t.local&&a.handle?.startsWith(`cli:`)){let e=(t.now??Date.now)();await t.queue.cancel(t.organizationId,i,e,{attempts:a.attempts,tokenHash:a.tokenHash,generation:a.generation??0});let n=await t.store.get(`task`,i);if(n&&Z.includes(n.status)){await Hc(t,n,e);let r=await t.store.get(`task`,i);if(r&&Z.includes(r.status))return S({error:`Task is still stopping. Try again.`},409)}}else if([`running`,`waiting`].includes(a.status)&&a.handle)try{let e=await F(t,a.task);if(!e)return S({error:`Task runner is unavailable. Try again.`},409);await e.stop(a.handle)}catch{return S({error:`Task is still stopping. Try again.`},409)}return await hl(t,a)?(t.local&&(await t.store.delete(`snapshot`,`local-start:${i}`),await t.store.delete(`snapshot`,`completion:${i}`)),Io(t,!0),S({ok:!0})):S({error:`Task changed while deleting. Try again.`},409)}async function qs(e,t,n,r){let i=n.id,a=Number(r.searchParams.get(`after`)??-1),o=Number.isFinite(a)?a:-1,s=r.searchParams.has(`limit`)?C(r,500,2e3):void 0,c=z(t.store,i,o,s??void 0);c?.catch(()=>{});let l=await t.store.get(`task`,i);if(!l||t.local&&l.handle?.startsWith(`cli:`)&&l.task.flow==="default"){let e=l?.task.cwd??t.local?.cwd;return!e||!J(e,i,!1)?S({error:`No task "${i}"`},404):S(Jc(e,i,o,s))}return S(([`running`,`waiting`].includes(l.status)||l.task.runner===`github-actions`)&&l.handle?await Ei(t,l,o,s).catch(()=>z(t.store,i,o,s)):await c)}async function Js(e,t,n,r){let i=n.id;Number(r.searchParams.get(`after`)??-1),r.searchParams.has(`limit`)&&C(r,500,2e3);let a=await t.store.get(`task`,i);if(!a||t.local&&a.handle?.startsWith(`cli:`)&&a.task.flow==="default"){let n=a?.task.cwd??t.local?.cwd;return n?Y(e,n,i,`steer`,t):S({error:`No task "${i}"`},404)}if(a.task.flow!=="default")return S({error:`steer is available only for default-flow tasks`},409);let o=await e.json().catch(()=>void 0);if(Hs.has(a.status)){let{text:e,outputSchema:n,model:r,effort:i,permissions:s}=o??{};try{let o=await wo(t,a,String(e??``),n,{model:r,effort:i,permissions:s});return Io(t,!0),S(Ws(o))}catch(e){return W(e)}}let s=await gl(t,i,`steer`,o,a.generation??0);return s?S(s):S({error:`Task "${i}" is no longer active`},409)}async function Ys(e,t,n,r){let i=n.id;Number(r.searchParams.get(`after`)??-1),r.searchParams.has(`limit`)&&C(r,500,2e3);let a=await t.store.get(`task`,i);if(!a||t.local&&a.handle?.startsWith(`cli:`)&&a.task.flow==="default"){let n=a?.task.cwd??t.local?.cwd;return n?Y(e,n,i,`ask`,t):S({error:`No task "${i}"`},404)}if(a.task.flow!=="default")return S({error:`ask is available only for default-flow tasks`},409);if(![`queued`,`running`,`waiting`].includes(a.status))return S({error:`Task "${i}" is not active`},409);let o=await gl(t,i,`ask`,await e.json().catch(()=>void 0),a.generation??0);return o?S(o):S({error:`Task "${i}" is no longer active`},409)}async function Xs(e,t,n,r){let i=n.id;Number(r.searchParams.get(`after`)??-1),r.searchParams.has(`limit`)&&C(r,500,2e3);let a=await t.store.get(`task`,i);if(!a||t.local&&a.handle?.startsWith(`cli:`)&&a.task.flow==="default"){let n=a?.task.cwd??t.local?.cwd;return n?Y(e,n,i,`approve`,t):S({error:`No task "${i}"`},404)}if(a.task.flow!=="default")return S({error:`approve is available only for default-flow tasks`},409);if(![`queued`,`running`,`waiting`].includes(a.status))return S({error:`Task "${i}" is not active`},409);if(!a.approval)return S({error:`Task "${i}" has no pending approval`},409);let o=await gl(t,i,`approve`,await e.json().catch(()=>void 0),a.generation??0);return o?S(o):S({error:`Task "${i}" is no longer active`},409)}async function Zs(e,t,n,r){let i=n.id;Number(r.searchParams.get(`after`)??-1),r.searchParams.has(`limit`)&&C(r,500,2e3);let a=await t.store.get(`task`,i);if(!a||t.local&&a.handle?.startsWith(`cli:`)&&a.task.flow==="default"){let n=a?.task.cwd??t.local?.cwd;return n?Y(e,n,i,`cancel`,t):S({error:`No task "${i}"`},404)}let o=await t.queue.cancel(t.organizationId,i,(t.now??Date.now)(),{attempts:a.attempts,tokenHash:a.tokenHash??null,generation:a.generation??0});return o&&a.status!==`queued`&&await bl(t,i),o?S({ok:!0}):S({error:`No running or queued task "${i}"`},404)}async function Qs(e,t,n,r){let i=n.id;Number(r.searchParams.get(`after`)??-1),r.searchParams.has(`limit`)&&C(r,500,2e3);let a=await t.store.get(`task`,i);if(!a||t.local&&a.handle?.startsWith(`cli:`)&&a.task.flow==="default"){let n=a?.task.cwd??t.local?.cwd;return n?Y(e,n,i,`archive`,t):S({error:`No task "${i}"`},404)}let o=(t.now??Date.now)();return await t.queue.patchTask(t.organizationId,i,{archivedAt:o,autoArchived:void 0},o),S({ok:!0})}async function $s(e,t){if(!e.agent||!e.event?.integration)return S({error:`agent and event are required`},400);let n=t.integrations[e.event.integration];if(!n)return S({error:`Unknown integration "${e.event.integration}"`},400);let r=e.event.actor?.id;if(t.auth&&r){let e=await t.auth.linkedUser(n.id,r);if(e&&e.id!==t.session?.user.id)return S({error:`The event's actor is linked to another member`},403)}let i=(await t.store.list(`app`)).map(e=>e.value).find(t=>t.agent===e.agent&&t.integration===n.id);if(!i)return S({error:`No ${n.id} app for agent "${e.agent}" on this server.`},404);let a=(await t.store.list(`installation`)).map(e=>e.value).filter(e=>e.app===i.id&&!e.deletedAt),o=a.find(t=>t.id===`${i.id}:${e.event.installationId}`)??a[0];if(!o)return S({error:`The ${n.id} app for "${e.agent}" is not installed anywhere yet`},404);let s=t.now??Date.now,c={...e.event,appId:i.id,installationId:o.id.slice(i.id.length+1),deliveryId:`admin-${s()}-${kt()}`},l=await es(t,n,i,N(t.config,i.credentials),c,s,await gs(t,i,c));return zs(t,l.work??Promise.resolve(),l.taskId?[l.taskId]:[])}const ec=new Set([`queued`,`running`,`waiting`,`completed`,`failed`,`cancelled`]);async function tc(e,t,n,r){let i=await e.json().catch(()=>void 0);if(!i||typeof i!=`object`)return S({error:`A JSON body is required`},400);try{if(mo(t,i),i.event)return $s(i,t);let e=(i.source===`cli`?void 0:await zc(t,i))??await So(t,i.source===`cli`?`cli`:`dashboard`,i);return S(Ws(e),201)}catch(e){return W(e)}}function nc(e,t,n){let r=new Map(t.map(e=>[e.task.id,e]));for(let t of n)i(e,t,r.has(t.task.id))&&r.set(t.task.id,t);return[...r.values()]}async function rc(e,t,n,r){n.id;let i=r.searchParams.get(`status`);if(i&&i!==`active`&&!ec.has(i))return S({error:`Unknown status "${i}"`},400);let a=r.searchParams.get(`source`);if(a&&![`dashboard`,`cli`,`schedule`,...Object.keys(t.integrations)].includes(a))return S({error:`Unknown source "${a}"`},400);let o=r.searchParams.get(`agent`),s=r.searchParams.get(`q`)?.trim(),c={...o?{agent:o}:{},...a?{source:a}:{},...s?{q:s}:{},archived:r.searchParams.get(`archived`)===`1`},l=i===`active`?{statuses:Z}:i?{status:i}:{},u=e=>r.searchParams.get(`summary`)===`1`?e.map(Us):e.map(Ws);if(t.local){await Rc(t,t.local.cwd);let e=nc(t.local.cwd,Lc(t.local.cwd,c.archived),await t.queue.list(t.organizationId)).filter(e=>ll(e,{...c,...l})).sort(dl),n=C(r,at(r)?void 0:20);if(!at(r))return S(u(e.slice(0,n)));let i=ct(r),a=e.filter(e=>fl(e,i)),o=dt(a.slice(0,n+1),n,ul);return S({...o,items:u(o.items),...r.searchParams.get(`counts`)===`1`?{counts:{all:e.length,active:e.filter(e=>Z.includes(e.status)).length,waiting:e.filter(e=>e.status===`waiting`).length}}:{}})}if(await t.queue.archiveStopped(t.organizationId,(t.now??Date.now)()),!at(r)){let e=C(r,20),n=await t.queue.list(t.organizationId,{...c,...l,limit:e,summary:r.searchParams.get(`summary`)===`1`});return S(u(n))}let d=C(r),f=ct(r),p=r.searchParams.get(`counts`)===`1`&&!i&&!f&&t.queue.listWithCounts?await t.queue.listWithCounts(t.organizationId,{...c,limit:d+1,summary:r.searchParams.get(`summary`)===`1`}):void 0,[m,h]=await Promise.all([p?p.items:t.queue.list(t.organizationId,{...c,...l,summary:r.searchParams.get(`summary`)===`1`,...f?{before:f}:{},limit:d+1}),p?p.counts:r.searchParams.get(`counts`)===`1`?t.queue.counts(t.organizationId,{...c,...l}):void 0]),g=dt(m,d,ul);return S({...g,items:u(g.items),...h?{counts:h}:{}})}var G=class extends Error{};const ic=async e=>await e.get(`config`,`workspace`)??{};async function ac(e,t){let{sealed:n,...r}=await ic(e);if(!n)return r;let i=N(t,n);return{...r,mcp:Object.fromEntries(Object.entries(r.mcp??{}).map(([e,t])=>[e,{...t,...i[e]}]))}}function oc(){let e=ae();if(!O.existsSync(e))return{};try{return JSON.parse(O.readFileSync(e,`utf8`))}catch(t){throw new G(`Invalid JSON in ${e}: ${t.message}`)}}function sc(e){return e.mcp?{...e,mcp:Object.fromEntries(Object.entries(e.mcp).map(([e,t])=>[e,_c(t)]))}:e}async function cc(e){if(e.local)return sc(oc());let{sealed:t,...n}=await ic(e.store);return n}async function lc(e,t){return uc(e,e=>fc(e,t))}async function uc(e,t){let n=e.settings??={},r=(n.configUpdate??Promise.resolve()).catch(()=>{}).then(()=>e.local?t(e):e.store.withConfigLock(n=>t({...e,store:n})));n.configUpdate=r;try{return await r}finally{n.configUpdate===r&&delete n.configUpdate}}function dc(e){let t=te(e);if(t.length)throw new G(t.join(`; `))}async function fc(e,t){dc(t);let n=e.local?oc():await ac(e.store,e.config),r={},i={},a=Object.fromEntries(Object.entries(t.mcp??{}).map(([e,t])=>{let a=r=>t[r]&&Object.fromEntries(Object.entries(t[r]).map(([t,i])=>[t,i===gc?n.mcp?.[e]?.[r]?.[t]??``:i])),o=a(`env`),s=a(`headers`);return(o||s)&&(i[e]={...o?{env:o}:{},...s?{headers:s}:{}}),r[e]={...t,...i[e]},[e,_c(t)]}));if(e.local)return _e({...t,...t.mcp?{mcp:r}:{}}),cc(e);let o={...t,...t.mcp?{mcp:a}:{},...Object.keys(i).length?{sealed:M(e.config,i)}:{}};return await e.store.put(`config`,`workspace`,o),cc(e)}async function pc(e,t){return uc(e,async e=>{let n=structuredClone(e.local?oc():await ac(e.store,e.config));return t(n),fc(e,n)})}function mc(e,t){return uc(e,async e=>fc(e,hc(e.local?oc():await ac(e.store,e.config),t)))}function hc(e,t){if(!t||typeof t!=`object`||Array.isArray(t))return t;let n=e&&typeof e==`object`&&!Array.isArray(e)?Object.fromEntries(Object.entries(e)):{};for(let[e,r]of Object.entries(t))r===null?delete n[e]:Object.defineProperty(n,e,{value:hc(Object.hasOwn(n,e)?n[e]:void 0,r),writable:!0,enumerable:!0,configurable:!0});return n}const gc=`********`;function _c(e){let t=e=>e&&Object.fromEntries(Object.keys(e).map(e=>[e,gc]));return{...e,...e.env?{env:t(e.env)}:{},...e.headers?{headers:t(e.headers)}:{}}}async function vc(e,t){return e.withConfigLock(async e=>{let n=await ic(e);return!n.sealed||En(t,n.sealed)===xn(t.encryptionKey)?0:(await e.put(`config`,`workspace`,{...n,sealed:M(t,N(t,n.sealed))}),1)})}async function yc(e){let t=await e.json().catch(()=>void 0);if(!t||typeof t!=`object`)throw new G(`A JSON body is required`);return t}async function bc(e,t){try{return S(await pc(e,t))}catch(e){if(e instanceof G)return S({error:e.message},400);throw e}}async function xc(e,t,n,r){try{{let e=await cc(t);return S({config:e,effective:t.local?sc(me(t.local.cwd)):m(e)})}}catch(e){return e instanceof G?S({error:e.message},400):W(e)}}async function Sc(e,t,n,r){try{{let n=await e.json().catch(()=>{throw new G(`A JSON body is required`)});return S(await mc(t,n))}}catch(e){return e instanceof G?S({error:e.message},400):W(e)}}async function Cc(e,t,n,r){try{return S(await lc(t,await yc(e)))}catch(e){return e instanceof G?S({error:e.message},400):W(e)}}function wc(e,t){return t.token?{...t,token:N(e.config,t.token)}:t}function Tc(e,t,n,r,i){return t.auth.token(wc(e,n),r,i,async t=>{let r=await e.store.get(`installation`,n.id);if(r){let i=M(e.config,t);await e.store.put(`installation`,n.id,{...r,token:i}),n.token=i}})}async function Ec(e,t,n,r){if(!t.auth.user||!e.auth)return;let i=await e.auth.linkedUser(t.id,n.actor.id);if(!i?.token||!i.organizations?.includes(e.organizationId))return;let a=await t.auth.user.access(N(e.config,i.token),r,{fetch:e.fetch??fetch,now:(e.now??Date.now)()});return a.refreshed&&await e.auth.link(i,t.id,n.actor.id,{token:M(e.config,a.refreshed)}),a.accessToken}function Dc(e,t){return{...e?{repo:{owner:e.owner,name:e.name}}:{},tools:t}}async function Oc(e,t,n,r,i,a,o){return(o===`requester`?await Ec(e,t,r,i).catch(()=>void 0):void 0)??Tc(e,t,n,i,a)}const kc=e=>{let t=e&&/^([^/]+)\/([^/]+)$/.exec(e);return t?{owner:t[1],name:t[2]}:void 0};async function Ac(e,t,n,r){if(n.kind===`oauth`)return N(e.config,n.token);let i=await e.store.get(`installation`,n.id);if(!i||i.deletedAt)return;let a=await e.store.get(`app`,i.app),o=e.integrations[t];if(!a||!o)return;let s=r?r.toolScopes?.[t]?.repo:kc(i.settings?.configRepo);if(s)return o.auth.token(wc(e,i),N(e.config,a.credentials),Dc(s,r?r.tools[t]??[]:o.tools.presets.observe))}async function jc(e,t,n,r,i){let a={[n.integration]:r};return await Promise.all(Object.entries(t.connections??{}).map(async([t,r])=>{if(t!==n.integration)try{let n=await Ac(e,t,r,i);n&&(a[t]=n)}catch{}})),a}async function Mc(e,t){let n=t.event,r=e.integrations[n.integration];if(!r)throw Error(`Unknown integration "${n.integration}"`);let[i,a]=await Promise.all([e.store.get(`app`,n.appId),e.store.get(`installation`,`${n.appId}:${n.installationId}`)]);if(!i)throw Error(`Unknown app "${n.appId}"`);if(!a||a.deletedAt)throw Error(`Installation is gone`);let o=t.flow===`review`&&t.args?.post===!0,s=await Oc(e,r,a,n,N(e.config,i.credentials),Dc(t.toolScopes?.[n.integration]?.repo??n.repo,t.tools[n.integration]??(o?r.tools.presets.comment:[])),Ee(t.definition.integrations[n.integration],n.type)?.actAs),c=await jc(e,a,n,s,t),l=Object.fromEntries(Object.entries(c).filter(([e])=>e in t.tools));return l[n.integration]=s,l}async function Nc(e,t){let n=t.task,[r,i,a]=await Promise.all([n.event?Mc(e,t.task):{},e.local?{}:ac(e.store,e.config),Pc(e,n)]);if(n.runner!==`vercel-sandbox`)return{task:n,tokens:r,credential:a,config:i};let o=Object.fromEntries(Object.entries(a.env).map(([e,t])=>[e,e in Rn?`brokered`:t]));return{task:n,tokens:r,credential:{...a,env:o},config:i}}async function Pc(e,t){let n=t.credential?await e.store.get(`credential`,t.credential):(await Ta(e.store,t.usage?.engine??t.definition.engine,t.requester))?.value;if(n)return La(e.config,n);if(!t.runnerId&&!e.local)throw Error(`no-credential`);return{engine:t.usage?.engine??t.definition.engine??`claude`,env:{}}}var Fc=e({LOCAL_LOGINS:()=>nl,engineSignIn:()=>il,engineSignOut:()=>al,engineStatus:()=>sl,inspectLocalTask:()=>Hc,isLoginEngine:()=>rl,localLog:()=>Jc,localTask:()=>J,localTaskAction:()=>Y,localTasks:()=>Lc,localUsage:()=>Yc,machineSignedIn:()=>cl,pushLocalInbox:()=>qc,recoverLocalTasks:()=>Wc,runLocalTask:()=>Kc,startLocalTask:()=>zc,startQueuedLocalTask:()=>Vc,stopLocalTasks:()=>Gc,sweepLocalQueue:()=>Rc,syncLocalUsage:()=>Qc});const Ic=e=>!e.name?.startsWith(qe),K=e=>e?Date.parse(e):void 0;function q(e,n,r=!1){let i=K(n.createdAt)??0,a=t(T.join(b(e,n.id),`answers.json`)),o=n.status===`running`?h(b(e,n.id)).find(e=>!e.response):void 0,s=r&&!y.includes(n.status)?oe(e,n.id):null,c=r?le(e,n.id).filter(e=>!y.includes(n.status)||(K(e.at)??0)<(K(n.resumedAt)??i)).map(e=>{let t=e.error&&typeof e.error==`object`?e.error.message:void 0;return{prompt:e.prompt??n.prompt??``,result:{ok:e.status===0,output:e.finalMessage??t??``},...t?{error:t}:{},finishedAt:K(e.at)}}):[];r&&(y.includes(n.status)||!c.length||(c.at(-1)?.finishedAt??0)<(K(n.resumedAt)??i))&&c.push({prompt:n.currentPrompt??n.prompt??``,...s?{result:{ok:s.status===0,output:s.finalMessage??s.error?.message??``}}:{},...n.error?{error:n.error}:{},...y.includes(n.status)?{}:{finishedAt:K(n.completedAt)}});let l=n.flowRunId?Ve(n.flowRunId)?.name:void 0;return{task:{id:n.id,source:n.source??`cli`,agent:n.agentId??`coder`,flow:l??`default`,...n.name?{name:n.name}:l?{name:l===`review`?`Review`:l}:{},runner:`local`,...n.cwd?{cwd:n.cwd}:{},...n.permissions?{permissions:n.permissions}:{},...n.prompt?{prompt:n.currentPrompt??n.prompt}:{},definition:{integrations:{}},...n.engine?{usage:{engine:n.engine,...n.model?{model:n.model}:{},...n.effort?{effort:n.effort}:{}}}:{},tools:{}},status:o?`waiting`:n.status,attempts:1,...o?{approval:o}:{},...a?{answer:a}:{},...s?{result:{ok:s.status===0,exitCode:null,output:s.finalMessage??s.error?.message??``},...s.tokens?{tokens:s.tokens}:{}}:{},...n.error?{error:n.error}:{},...n.fallbacks?.length?{fallbacks:n.fallbacks}:{},...n.archivedAt?{archivedAt:K(n.archivedAt)}:{},...n.autoArchived?{autoArchived:!0}:{},createdAt:i,startedAt:K(n.resumedAt)??i,...n.completedAt&&!y.includes(n.status)?{finishedAt:K(n.completedAt)}:{},updatedAt:K(n.updatedAt)??i,local:!0,...r?{turns:c}:{}}}function Lc(e,t){let n=Be(e);return(t?ve(e,{migrate:!1}):n).filter(Ic).map(n=>{let r=q(e,n);return t?{...r,archivedAt:r.archivedAt??r.updatedAt}:r})}async function Rc(e,t){let n=(e.now??Date.now)(),a=(await e.queue.list(e.organizationId,{archived:!1,statuses:[...se]})).filter(e=>r(e.finishedAt??e.updatedAt,n)&&i(t,e)).map(e=>e.task.id);a.length&&await e.queue.archiveStopped(e.organizationId,n,a)}async function zc(e,t,n){if(!e.local||t.repo||(t.flow??`default`)!=="default"||t.runner&&t.runner!==`local`)return;let r=mo(e,t)??e.local.cwd;await uo(e.store,r,e.integrations);let{version:i}=await R(e.store,t.agent??`coder`),o=await Yn(e,{requester:e.session?.user.id,runner:t.runner,agent:i?.definition.runner}).catch(e=>{throw new U(e.message)});if(!(o.runner!==`local`||o.runnerId)){if(yo(t),!n)return Bc(e,{id:a(),source:`dashboard`,agent:t.agent??`coder`,flow:`default`,runner:`local`,cwd:r,prompt:t.prompt,definition:{integrations:{}},tools:{}},{input:t,cwd:r});try{let e=t.agent&&t.agent!==`coder`?await Ge(r,t.agent,t.mcp?.join(`,`)):void 0,i=[],a=await ue({taskId:n,prompt:t.prompt??``,outputSchema:t.outputSchema,cwd:r,engine:t.engine??e?.engine,model:t.model??(t.engine?void 0:e?.model),effort:t.effort??(t.engine?void 0:e?.effort),permissions:t.permissions??e?.permissions,system:e?.system,mcp:e?e.mcp:t.mcp?.join(`,`),nativeMcp:e?.nativeMcp,...e?{agentId:t.agent}:{},source:`dashboard`,onFallback:e=>i.push(e)},{waitForStartup:!1});return q(r,i.length?v(r,a.taskId,{fallbacks:i}):a.task)}catch(e){throw e instanceof d?new U(e.message,409):e}}}async function Bc(e,t,n){let r=(e.now??Date.now)();await e.store.put(`snapshot`,`local-start:${t.id}`,n),await e.queue.enqueue(e.organizationId,t,r,void 0,e.config.maxQueued??1e3),await Fo(e,!1,!0,!0);let i=await e.store.get(`task`,t.id);return i?.status===`queued`?i:J(n.cwd,t.id)??i}async function Vc(e,t){if(!e.local||t.task.runner!==`local`||t.task.runnerId||t.task.event?.repo)return!1;let n=await e.store.get(`snapshot`,`local-start:${t.task.id}`);if(!n)return!1;try{let r=t.task.id,i=t.task.flow==="default"?f(n.cwd,t.task.id):void 0;if(i&&!n.resume)r=i.id;else if(n.resume){let e=f(n.cwd,t.task.id);if(!e)throw Error(`Local task is missing`);await Le(n.cwd,e,t.task.prompt??``,{outputSchema:t.task.context?.outputSchema,...n.overrides})}else n.input?await zc(e,{...n.input,prompt:t.task.prompt,outputSchema:t.task.context?.outputSchema??n.input.outputSchema},t.task.id):r=(await Kc(e,t.task,t.task.id,!0)).task.id;await e.store.put(`snapshot`,`local-start:${t.task.id}`,{...n,startedId:r});let a={attempts:t.attempts,tokenHash:t.tokenHash,generation:t.generation??0,statuses:[`running`,`waiting`]};if(!await e.queue.patchTask(e.organizationId,t.task.id,{handle:`cli:${r}`},(e.now??Date.now)(),a)){let e=f(n.cwd,r);return e&&await Re(n.cwd,e),!0}if(t.task.flow==="default"){let i={task:t.task,cwd:n.cwd,fence:a};await e.store.put(`snapshot`,`completion:${r}`,i),Uc(e,r,i);let o=bl(e,t.task.id);e.waitUntil&&e.waitUntil(o)}}catch(n){await e.queue.finish(e.organizationId,t.task.id,{status:`failed`,error:n instanceof Error?n.message:String(n)},(e.now??Date.now)(),{attempts:t.attempts,tokenHash:t.tokenHash})}return!0}async function Hc(e,t,n){if(t.status!==`running`&&t.status!==`waiting`)return!1;let r=await e.store.get(`snapshot`,`local-start:${t.task.id}`);if(!r)return!1;let i={attempts:t.attempts,tokenHash:t.tokenHash,generation:t.generation??0,statuses:[`running`,`waiting`]};if(t.task.flow!=="default"){let r=Ve(t.task.id);if(r?.status===`running`&&(t.cancelRequestedAt!==void 0||t.startedAt!==void 0&&n-t.startedAt>=e.config.taskTimeoutMs)){let n=e.store.localFlows?.get(t.task.id);n?(await n.stop(),await n.work.catch(()=>{})):r.pid!==process.pid&&await Ue(t.task.id),r=Ve(t.task.id)}return!r||r.status===`running`?!1:e.queue.finish(e.organizationId,t.task.id,{status:t.cancelRequestedAt===void 0?r.status===`completed`?`completed`:`failed`:`cancelled`,error:r.error},n,i)}let a=J(r.cwd,r.startedId??t.task.id);if(!a)return!1;if([`queued`,`running`,`waiting`].includes(a.status))if(t.cancelRequestedAt!==void 0||t.startedAt!==void 0&&n-t.startedAt>=e.config.taskTimeoutMs){let e=f(r.cwd,r.startedId??t.task.id);e&&await Re(r.cwd,e),a=J(r.cwd,t.task.id)}else return!1;let o=a.status;return o!==`completed`&&o!==`failed`&&o!==`cancelled`?!1:e.queue.finish(e.organizationId,t.task.id,{status:o,result:a.result,error:a.error},n,i)}function Uc(e,t,n){let r=e.store.completionWatches??=new Map;if(r.has(t))return;let i={stopped:!1,work:Promise.resolve()};r.set(t,i),i.work=(async()=>{let r=`completion:${t}:${n.fence?.generation??0}`,a=await e.store.get(`delivery`,r);if(a&&!a.owner)return;if(a?.pid)try{process.kill(a.pid,0);return}catch(e){if(e.code!==`ESRCH`)return}let s=kt(),c={owner:s,pid:process.pid,pending:!0,posted:a?.posted??!1};if(a?.owner){if(!await e.store.updateDelivery(r,a.owner,c))return}else if(!await e.store.create(`delivery`,r,c))return;try{for(let a=0;a<5;a++)try{let a=null;for(;;){if(i.stopped)return;if(n.fence){let t=await e.store.get(`task`,n.task.id);if(!t||(t.generation??0)!==n.fence.generation||t.attempts!==n.fence.attempts||t.tokenHash!==n.fence.tokenHash||t.status===`queued`)return}let r=f(n.cwd,t);if(!r)return;let s=o(n.cwd,r);if(!y.includes(s.status)){let e=T.join(b(n.cwd,t),`result.json`),r=Math.max(K(s.completedAt)??0,K(s.resumedAt)??K(s.createdAt)??0);if(O.existsSync(e)&&O.statSync(e).mtimeMs>=r&&(a=oe(n.cwd,t)),a)break;if(s.error||s.status===`cancelled`){a={status:1,threadId:s.threadId??null,error:{message:s.error??`Task cancelled`}};break}}await new Promise(e=>setTimeout(e,100))}let l=await e.store.get(`task`,n.task.id);if(n.fence&&l&&(l.generation??0)===n.fence.generation&&l.attempts===n.fence.attempts&&l.tokenHash===n.fence.tokenHash&&await Hc(e,l,(e.now??Date.now)())&&Io(e,!0),!await e.store.updateDelivery(r,s,c))return;if(!c.posted&&n.task.source===n.task.event?.integration){let t=await e.store.get(`app`,n.task.event.appId);if(!t)throw Error(`Local completion has no app`);let{eventReplies:i}=await Promise.resolve().then(()=>is),o=await i(e,t,n.task.event);if(!await e.store.updateDelivery(r,s,c)||(await o.post((a.finalMessage??a.error?.message??``).trim()),c={...c,posted:!0},!await e.store.updateDelivery(r,s,c)))return}let u=T.join(b(n.cwd,t),`agent-note`),d=O.existsSync(u)?O.readFileSync(u,`utf8`).trim():(n.task.context?.note??``).trim();if(!await e.store.updateDelivery(r,s,c))return;d!==(n.task.context?.note??``).trim()&&(d?await e.store.put(`note`,dn(n.task),d):await e.store.delete(`note`,dn(n.task))),await e.store.updateDelivery(r,s,{posted:c.posted,at:Date.now()})&&(await e.store.get(`snapshot`,`completion:${t}`))?.fence?.generation===n.fence?.generation&&await e.store.delete(`snapshot`,`completion:${t}`);return}catch(e){if(a===4)throw e;console.error(`coder server: local completion ${t} attempt ${a+1} failed, retrying`,e);let n=Date.now()+5e3*2**a;for(;!i.stopped&&Date.now()<n;)await new Promise(e=>setTimeout(e,Math.min(100,n-Date.now())))}}finally{await e.store.updateDelivery(r,s,{...c,pid:void 0})}})().catch(e=>{console.error(`coder server: local completion ${t} failed`,e)}).finally(()=>{r.delete(t)})}async function Wc(e){if(e.local)for(let{id:t,value:n}of await e.store.list(`snapshot`,{prefix:`completion:`}))f(n.cwd,t.slice(11))&&Uc(e,t.slice(11),n)}async function Gc(e){await Promise.all([...e.store.localFlows?.values()??[]].map(async e=>{await e.stop(),await e.work.catch(()=>{})}));let t=e.store.completionWatches;if(t){for(let e of t.values())e.stopped=!0;await Promise.all([...t.values()].map(e=>e.work))}}async function Kc(e,t,r,i=!1){if(t.event?.repo){let n=(e.now??Date.now)(),i=r??t.id;return await e.store.get(`task`,i)||await e.queue.enqueue(e.organizationId,{...t,id:i},n,void 0,e.config.maxQueued??1e3),await Fo(e,!1,!1,!0),await e.store.get(`task`,i)}if(!i){let n=mo(e,t)??e.local.cwd;return Bc(e,{...t,id:r??a(),cwd:n},{cwd:n})}let o=t.event?await Mc(e,t):{},s=t.event&&o[t.event.integration],c=mo(e,t)??e.local.cwd,l=await e.store.get(`task`,r??t.id),u={task:t,cwd:c,...l?{fence:{generation:l.generation??0,attempts:l.attempts,tokenHash:l.tokenHash,statuses:[`running`,`waiting`]}}:{}},d=t.flow!=="default"&&r?Ve(r):void 0;if(d){let i=n(c).find(e=>e.flowRunId===r),a=(e.now??Date.now)();return i?q(c,i):{task:t,status:d.status===`running`?`running`:d.status===`completed`?`completed`:`failed`,attempts:1,createdAt:a,updatedAt:a,local:!0}}if(t.flow==="default"){r??=a();let n=`completion:${r}`,i=await e.store.get(`snapshot`,n);if(i&&Q(i.task)!==Q(t))throw Error(`Local completion belongs to another session`);i||await e.store.create(`snapshot`,n,u);let o=T.join(b(c,r),`agent-note`);O.existsSync(o)||(O.mkdirSync(T.dirname(o),{recursive:!0}),O.writeFileSync(o,t.context?.note??``,{mode:384}))}let p=t.flow==="default"&&r?f(c,r):void 0;if(p)return p.status===`queued`&&!p.pid&&_(c,p.id),Uc(e,p.id,u),q(c,p);let m,h=new Promise(e=>m=e),g;g=Ke({cwd:c,agent:t.agent,flow:t.flow,task:t,taskId:r,toolEnvironment:{tokens:o},post:t.flow!=="default"&&t.source===t.event?.integration,...t.flow==="default"?{noteFile:T.join(b(c,r),`agent-note`)}:{},...s?{postToken:s}:{},source:t.source,onStart:n=>{(e.store.localFlows??=new Map).set(t.id,{stop:async()=>{n.requestStop(),await We(n.runId,n.runningIds())},work:g}),m(t.id)},onTask:n=>{t.flow==="default"&&Uc(e,n,u),m(n)}}).then(async n=>{t.flow!=="default"&&n.note!==void 0&&(n.note?await e.store.put(`note`,dn(t),n.note):await e.store.delete(`note`,dn(t)))}).finally(async()=>{if(e.store.localFlows?.delete(t.id),t.flow!=="default"){let n=await e.store.get(`task`,t.id);n&&n.attempts===u.fence?.attempts&&n.tokenHash===u.fence?.tokenHash&&(n.generation??0)===u.fence?.generation&&await Hc(e,n,(e.now??Date.now)()),Io(e,!0)}}),g.catch(()=>{});let v=await Promise.race([h,g.then(()=>void 0)]),ee=v?f(c,v):void 0,y=(e.now??Date.now)();return ee&&q(c,ee)||{task:t,status:t.flow!=="default"&&Ve(t.id)?.status===`running`?`running`:`completed`,attempts:1,createdAt:y,updatedAt:y,local:!0}}async function qc(e,t,n){let r=t.handle.slice(4),i=await e.store.get(`snapshot`,`local-start:${t.task.id}`);if(!i)throw Error(`Local task launch is missing`);let a={generation:t.generation??0,seq:-1,answers:[]};for(let o of n){let n=await e.store.get(`task`,t.task.id);if(!n||n.attempts!==t.attempts||n.tokenHash!==t.tokenHash||(n.generation??0)!==o.generation||![`running`,`waiting`].includes(n.status))break;let s=f(i.cwd,r);if(!s)throw Error(`Local task is missing`);let c=o.kind===`cancel`?await Re(i.cwd,s):await Xe(i.cwd,{...s,name:void 0},o);o.kind===`ask`&&a.answers.push({seq:o.seq,value:c}),a.seq=o.seq}return a}function Jc(e,t,n=-1,r){let i=``;try{i=O.readFileSync(T.join(b(e,t),`log.jsonl`),`utf8`)}catch{}let a=i.split(`
8
- `).flatMap((e,t)=>{if(!e||t<=n)return[];let r=pt(e);if(!r)return[{seq:t,at:0,level:`out`,line:e}];let i=r.kind===`error`?`err`:[`status`,`info`,`steer`].includes(r.kind??``)?`sys`:`out`;return[{seq:t,at:K(r.at)??0,level:i,line:r.message??``,entry:r}]});return r===void 0?a:a.slice(0,r)}function J(e,t,n=!0){let r=f(e,t);return r&&Ic(r)?q(e,o(e,r),n):void 0}async function Y(e,n,r,i,a){let c=f(n,r);if(!c||!Ic(c))return Response.json({error:`No task "${r}"`},{status:404});let l=o(n,c),d=y.includes(l.status),p=e.method===`POST`?await e.json().catch(()=>({})):{},m=(e,t=409)=>Response.json({error:e},{status:t});if(e.method===`DELETE`&&!i){if(d&&await Re(n,l),Ie(n,l),a){let e=a.store.completionWatches?.get(r);e&&(e.stopped=!0,await e.work),await a.store.delete(`task`,r),await a.store.delete(`snapshot`,`local-start:${r}`),await a.store.delete(`snapshot`,`completion:${r}`),Io(a,!0)}return Response.json({ok:!0})}if(e.method!==`POST`)return new Response(`Method not allowed`,{status:405});if(i===`cancel`)return d?(await Re(n,l),Response.json({ok:!0})):m(`No running or queued task "${r}"`,404);if(i===`archive`)return u(n,l),a&&await a.queue.patchTask(a.organizationId,r,{archivedAt:(a.now??Date.now)(),autoArchived:void 0},(a.now??Date.now)()),Response.json({ok:!0});if(i===`steer`){let e=String(p.text??``);if(!e.trim())return m(`text is required`,400);let t=d?void 0:p.outputSchema,i=Object.fromEntries([`model`,`effort`,`permissions`].flatMap(e=>typeof p[e]==`string`&&p[e]?[[e,p[e]]]:[]));if(t!==void 0&&(!t||typeof t!=`object`||Array.isArray(t)))return m(`outputSchema must be an object`,400);try{if(!d&&a){let o=a.store.completionWatches?.get(r);o&&await o.work;let s=(a.now??Date.now)(),c=await a.store.get(`task`,r);c&&[`running`,`waiting`].includes(c.status)&&(await Hc(a,c,s),c=await a.store.get(`task`,r));let u={prompt:e,context:{...c?.task.context,...t?{outputSchema:t}:{}}};if(await a.store.put(`snapshot`,`local-start:${r}`,{cwd:n,resume:!0,...Object.keys(i).length?{overrides:i}:{}}),c){if(!await a.queue.continueTask(a.organizationId,r,u,s,{attempts:c.attempts,generation:c.generation??0}))return m(`Task is already active`)}else await a.queue.enqueue(a.organizationId,{...q(n,l).task,...u},s,void 0,a.config.maxQueued??1e3);await Fo(a,!1,!0,!0);let d=await a.store.get(`task`,r);return Response.json(d?.status===`queued`?{...d,statusReason:`Waiting for a task slot`}:J(n,r))}let o=await Le(n,l,e,{...typeof t==`object`&&t?{outputSchema:t}:{},...i});return Response.json(d?o:J(n,r))}catch(e){return m(e.message)}}if(i===`ask`){let e=String(p.question??p.text??``);if(!e.trim())return m(`question is required`,400);let i=await ze(n,l,e),a=i.finalMessage??i.error?.message??``,o=T.join(b(n,r),`answers.json`);return s(o,[...t(o)??[],a]),Response.json({ok:!0,answer:a})}if(i===`approve`){let e=h(b(n,r)).filter(e=>!e.response),t=String(p.approvalId??p.id??e[0]?.id??``);return e.some(e=>e.id===t)?(ne(b(n,r),t,p.decision===`deny`||p.decision===`decline`?`decline`:`accept`),Response.json({ok:!0})):m(`Task "${r}" has no pending approval`)}return new Response(`Not found`,{status:404})}function Yc(e,t=new Set,r=!0){let i=Xc(t);return[...n(e),...r?ve(e,{migrate:!1}):[]].filter(Ic).flatMap(t=>{let n=le(e,t.id);return Zc(t,n,!n.length&&!y.includes(t.status)?oe(e,t.id):null,i)})}function Xc(e){let t=new Map;for(let n of e){let e=n.lastIndexOf(`:`),r=n.slice(4,e),i=t.get(r)??[];i.push(Number(n.slice(e+1))),t.set(r,i)}return t}function Zc(e,t,n,r){let i=t.length?t:n?[{...n,at:e.completedAt??e.updatedAt??e.createdAt}]:[],a=r.get(e.id)??[];r.set(e.id,a);let o=K(e.createdAt)??0;return i.flatMap(t=>{let n=K(t.at);if(n===void 0||!Number.isFinite(n))return[];let r=K(e.resumedAt),i=r!==void 0&&r>=o&&r<=n?r:o,s=a.some(e=>e===n||e>o&&e<=n);return o=n,s?[]:(a.push(n),[[`cli:${e.id}:${n}`,{taskId:e.id,agent:e.agentId??`coder`,target:e.source??`cli`,...e.engine?{engine:e.engine}:{},...t.model??e.model?{model:t.model??e.model}:{},credential:`local`,runnerElapsedMs:Math.max(0,n-i),...t.tokens?{tokens:t.tokens}:{},at:n}]])})}function Qc(e){let t=e.local;return t.usageSync??=tl(e).finally(()=>t.usageSync=void 0)}async function $c(e){try{return JSON.parse(await O.promises.readFile(e,`utf8`))}catch{return null}}async function el(e){return(await Promise.all([`job.json`,`results.jsonl`,`result.json`].map(async t=>{let n=await O.promises.stat(T.join(e,t)).catch(()=>void 0);return n?`${n.mtimeMs}:${n.ctimeMs}:${n.size}`:``}))).join(`|`)}async function tl(e){let t=e.local;await t.cacheMaintenance;let n=de(),r=await $c(n),i=await e.store.list(`usage`,{prefix:`cli:`}),a=new Set(i.map(e=>e.id)),o=0,s=async()=>{++o%4==0&&await new Promise(e=>setImmediate(e))};if(t.archiveScan===void 0)for(let[t,n]of Object.entries(r?.rows??{}))a.has(t)||(await e.store.put(`usage`,t,n),a.add(t)),await s();let c=Xc(a),l=(await O.promises.stat(p(t.cwd)).catch(()=>void 0))?.mtimeMs??0,u={},d=new Set,f=!1;for await(let{id:n,dir:i,archived:a}of fe(t.cwd)){if(await s(),d.has(n))continue;let t=a?await el(i):void 0;if(a&&r?.counted?.[n]===t){u[n]=t,d.add(n);continue}let o=await $c(T.join(i,`job.json`));if(o){if(o.agent&&(o.engine=o.agent),d.add(n),Ic(o)){let t=(await O.promises.readFile(T.join(i,`results.jsonl`),`utf8`).catch(()=>``)).split(/\r?\n/).flatMap(e=>{try{return e?[JSON.parse(e)]:[]}catch{return[]}}),n=!t.length&&!y.includes(o.status)?await $c(T.join(i,`result.json`)):null;for(let[r,i]of Zc(o,t,n,c))await e.store.put(`usage`,r,i),f=!0,await s()}a&&(u[n]=t)}}if(f||r?.archive!==l||JSON.stringify(r?.counted)!==JSON.stringify(u)){let t=await e.store.list(`usage`,{prefix:`cli:`});await O.promises.mkdir(T.dirname(n),{recursive:!0});let r=re(n);try{await O.promises.writeFile(r,`${JSON.stringify({archive:l,counted:u,rows:Object.fromEntries(t.map(e=>[e.id,e.value]))})}\n`),await O.promises.rename(r,n)}finally{await O.promises.rm(r,{force:!0})}}t.archiveScan=l}const nl=`A local server stores no credentials. Tasks use this machine's own claude and codex sign-in.`,X={claude:{file:`claude`,args:[`auth`,`status`,`--json`],command:`claude auth login`,login:[`auth`,`login`],logout:[`auth`,`logout`],ok:e=>JSON.parse(e).loggedIn===!0},codex:{file:`codex`,args:[`login`,`status`],command:`codex login`,login:[`login`],logout:[`logout`],ok:()=>!0}},rl=e=>e in X;function il(e){let t=X[e];wt(t.file,t.login,{detached:!0,stdio:`ignore`}).on(`error`,()=>{}).unref()}function al(e){let t=X[e];return new Promise(e=>Ct(t.file,t.logout,{timeout:15e3},()=>e()))}function ol(e){return new Promise(t=>Ct(e.file,e.args,{timeout:15e3},(n,r)=>{try{t(!n&&e.ok(r))}catch{t(!1)}}))}async function sl(){let[e,t]=await Promise.all([ol(X.claude),ol(X.codex)]);return{claude:{signedIn:e,command:X.claude.command},codex:{signedIn:t,command:X.codex.command}}}async function cl(e,t){return!!e.local&&(t===`custom`||(await sl())[t]?.signedIn===!0)}const Z=[`queued`,`running`,`waiting`];function ll(e,t){let n=t.status?[t.status]:t.statuses;if(n&&!n.includes(e.status)||t.agent&&e.task.agent!==t.agent||t.source&&e.task.source!==t.source||t.archived!==void 0&&t.archived!==(e.archivedAt!==void 0))return!1;let r=t.q?.trim().toLowerCase();return!r||[e.task.prompt??e.task.event?.text,e.task.agent,e.task.id].some(e=>e?.toLowerCase().includes(r))}const ul=e=>({rank:ge(e.status),createdAt:e.createdAt,id:e.task.id}),dl=(e,t)=>g(ul(e),ul(t)),fl=(e,t)=>!t||g(ul(e),t)>0;function Q(e){let t=e.event;return JSON.stringify([t?.appId,t?.installationId,t?.chat?.thread.id,e.agent,e.requester,t?.actor.id])}function pl(e,t){return e.flow==="default"&&!!e.event?.actor.id&&Q(e)===Q(t)}const ml=6e5;async function hl(e,t){let n=t.task.id,r=t.generation??0,i={generation:r,attempts:t.attempts,tokenHash:t.tokenHash??null,handle:t.handle??null};if(e.queue instanceof vl)return e.queue.deleteTask(e.organizationId,n,i);let[{DrizzleStore:a},{task:o,taskTombstone:s},{and:c,eq:l,isNull:u,sql:d},{rows:f}]=await Promise.all([import(`./store-BCBTo0rl.js`),import(`./schema-DoNO0dPh.js`).then(e=>e.u),import(`drizzle-orm`),import(`./shared-TznJgMFW.js`).then(e=>e.g)]);if(!(e.store instanceof a))throw Error(`Task store does not support fenced deletion`);let p=(e.now??Date.now)(),[m]=await f(e.store.db,d`with gone as (
8
+ `).flatMap((e,t)=>{if(!e||t<=n)return[];let r=pt(e);if(!r)return[{seq:t,at:0,level:`out`,line:e}];let i=r.kind===`error`?`err`:[`status`,`info`,`steer`].includes(r.kind??``)?`sys`:`out`;return[{seq:t,at:K(r.at)??0,level:i,line:r.message??``,entry:r}]});return r===void 0?a:a.slice(0,r)}function J(e,t,n=!0){let r=f(e,t);return r&&Ic(r)?q(e,o(e,r),n):void 0}async function Y(e,n,r,i,a){let c=f(n,r);if(!c||!Ic(c))return Response.json({error:`No task "${r}"`},{status:404});let l=o(n,c),d=y.includes(l.status),p=e.method===`POST`?await e.json().catch(()=>({})):{},m=(e,t=409)=>Response.json({error:e},{status:t});if(e.method===`DELETE`&&!i){if(d&&await Re(n,l),Ie(n,l),a){let e=a.store.completionWatches?.get(r);e&&(e.stopped=!0,await e.work),await a.store.delete(`task`,r),await a.store.delete(`snapshot`,`local-start:${r}`),await a.store.delete(`snapshot`,`completion:${r}`),Io(a,!0)}return Response.json({ok:!0})}if(e.method!==`POST`)return new Response(`Method not allowed`,{status:405});if(i===`cancel`)return d?(await Re(n,l),Response.json({ok:!0})):m(`No running or queued task "${r}"`,404);if(i===`archive`)return u(n,l),a&&await a.queue.patchTask(a.organizationId,r,{archivedAt:(a.now??Date.now)(),autoArchived:void 0},(a.now??Date.now)()),Response.json({ok:!0});if(i===`steer`){let e=String(p.text??``);if(!e.trim())return m(`text is required`,400);let t=d?void 0:p.outputSchema,i=Object.fromEntries([`model`,`effort`,`permissions`].flatMap(e=>typeof p[e]==`string`&&p[e]?[[e,p[e]]]:[]));if(t!==void 0&&(!t||typeof t!=`object`||Array.isArray(t)))return m(`outputSchema must be an object`,400);try{if(!d&&a){let o=a.store.completionWatches?.get(r);o&&await o.work;let s=(a.now??Date.now)(),c=await a.store.get(`task`,r);c&&[`running`,`waiting`].includes(c.status)&&(await Hc(a,c,s),c=await a.store.get(`task`,r));let u={prompt:e,context:{...c?.task.context,...t?{outputSchema:t}:{}}};if(await a.store.put(`snapshot`,`local-start:${r}`,{cwd:n,resume:!0,...Object.keys(i).length?{overrides:i}:{}}),c){if(!await a.queue.continueTask(a.organizationId,r,u,s,{attempts:c.attempts,generation:c.generation??0}))return m(`Task is already active`)}else await a.queue.enqueue(a.organizationId,{...q(n,l).task,...u},s,void 0,a.config.maxQueued??1e3);await Fo(a,!1,!0,!0);let d=await a.store.get(`task`,r);return Response.json(d?.status===`queued`?{...d,statusReason:`Waiting for a task slot`}:J(n,r))}let o=await Le(n,l,e,{...typeof t==`object`&&t?{outputSchema:t}:{},...i});return Response.json(d?o:J(n,r))}catch(e){return m(e.message)}}if(i===`ask`){let e=String(p.question??p.text??``);if(!e.trim())return m(`question is required`,400);let i=await ze(n,l,e),a=i.finalMessage??i.error?.message??``,o=T.join(b(n,r),`answers.json`);return s(o,[...t(o)??[],a]),Response.json({ok:!0,answer:a})}if(i===`approve`){let e=h(b(n,r)).filter(e=>!e.response),t=String(p.approvalId??p.id??e[0]?.id??``);return e.some(e=>e.id===t)?(ne(b(n,r),t,p.decision===`deny`||p.decision===`decline`?`decline`:`accept`),Response.json({ok:!0})):m(`Task "${r}" has no pending approval`)}return new Response(`Not found`,{status:404})}function Yc(e,t=new Set,r=!0){let i=Xc(t);return[...n(e),...r?ve(e,{migrate:!1}):[]].filter(Ic).flatMap(t=>{let n=le(e,t.id);return Zc(t,n,!n.length&&!y.includes(t.status)?oe(e,t.id):null,i)})}function Xc(e){let t=new Map;for(let n of e){let e=n.lastIndexOf(`:`),r=n.slice(4,e),i=t.get(r)??[];i.push(Number(n.slice(e+1))),t.set(r,i)}return t}function Zc(e,t,n,r){let i=t.length?t:n?[{...n,at:e.completedAt??e.updatedAt??e.createdAt}]:[],a=r.get(e.id)??[];r.set(e.id,a);let o=K(e.createdAt)??0;return i.flatMap(t=>{let n=K(t.at);if(n===void 0||!Number.isFinite(n))return[];let r=K(e.resumedAt),i=r!==void 0&&r>=o&&r<=n?r:o,s=a.some(e=>e===n||e>o&&e<=n);return o=n,s?[]:(a.push(n),[[`cli:${e.id}:${n}`,{taskId:e.id,agent:e.agentId??`coder`,target:e.source??`cli`,...e.engine?{engine:e.engine}:{},...t.model??e.model?{model:t.model??e.model}:{},credential:`local`,runnerElapsedMs:Math.max(0,n-i),...t.tokens?{tokens:t.tokens}:{},at:n}]])})}function Qc(e){let t=e.local;return t.usageSync??=tl(e).finally(()=>t.usageSync=void 0)}async function $c(e){try{return JSON.parse(await O.promises.readFile(e,`utf8`))}catch{return null}}async function el(e){return(await Promise.all([`job.json`,`results.jsonl`,`result.json`].map(async t=>{let n=await O.promises.stat(T.join(e,t)).catch(()=>void 0);return n?`${n.mtimeMs}:${n.ctimeMs}:${n.size}`:``}))).join(`|`)}async function tl(e){let t=e.local;await t.cacheMaintenance;let n=de(),r=await $c(n),i=await e.store.list(`usage`,{prefix:`cli:`}),a=new Set(i.map(e=>e.id)),o=0,s=async()=>{++o%4==0&&await new Promise(e=>setImmediate(e))};if(t.archiveScan===void 0)for(let[t,n]of Object.entries(r?.rows??{}))a.has(t)||(await e.store.put(`usage`,t,n),a.add(t)),await s();let c=Xc(a),l=(await O.promises.stat(p(t.cwd)).catch(()=>void 0))?.mtimeMs??0,u={},d=new Set,f=!1;for await(let{id:n,dir:i,archived:a}of fe(t.cwd)){if(await s(),d.has(n))continue;let t=a?await el(i):void 0;if(a&&r?.counted?.[n]===t){u[n]=t,d.add(n);continue}let o=await $c(T.join(i,`job.json`));if(o){if(o.agent&&(o.engine=o.agent),d.add(n),Ic(o)){let t=(await O.promises.readFile(T.join(i,`results.jsonl`),`utf8`).catch(()=>``)).split(/\r?\n/).flatMap(e=>{try{return e?[JSON.parse(e)]:[]}catch{return[]}}),n=!t.length&&!y.includes(o.status)?await $c(T.join(i,`result.json`)):null;for(let[r,i]of Zc(o,t,n,c))await e.store.put(`usage`,r,i),f=!0,await s()}a&&(u[n]=t)}}if(f||r?.archive!==l||JSON.stringify(r?.counted)!==JSON.stringify(u)){let t=await e.store.list(`usage`,{prefix:`cli:`});await O.promises.mkdir(T.dirname(n),{recursive:!0});let r=re(n);try{await O.promises.writeFile(r,`${JSON.stringify({archive:l,counted:u,rows:Object.fromEntries(t.map(e=>[e.id,e.value]))})}\n`),await O.promises.rename(r,n)}finally{await O.promises.rm(r,{force:!0})}}t.archiveScan=l}const nl=`A local server stores no credentials. Tasks use this machine's own claude and codex sign-in.`,X={claude:{file:`claude`,args:[`auth`,`status`,`--json`],command:`claude auth login`,login:[`auth`,`login`],logout:[`auth`,`logout`],ok:e=>JSON.parse(e).loggedIn===!0},codex:{file:`codex`,args:[`login`,`status`],command:`codex login`,login:[`login`],logout:[`logout`],ok:()=>!0}},rl=e=>e in X;function il(e){let t=X[e];wt(t.file,t.login,{detached:!0,stdio:`ignore`}).on(`error`,()=>{}).unref()}function al(e){let t=X[e];return new Promise(e=>Ct(t.file,t.logout,{timeout:15e3},()=>e()))}function ol(e){return new Promise(t=>Ct(e.file,e.args,{timeout:15e3},(n,r)=>{try{t(!n&&e.ok(r))}catch{t(!1)}}))}async function sl(){let[e,t]=await Promise.all([ol(X.claude),ol(X.codex)]);return{claude:{signedIn:e,command:X.claude.command},codex:{signedIn:t,command:X.codex.command}}}async function cl(e,t){return!!e.local&&(t===`custom`||(await sl())[t]?.signedIn===!0)}const Z=[`queued`,`running`,`waiting`];function ll(e,t){let n=t.status?[t.status]:t.statuses;if(n&&!n.includes(e.status)||t.agent&&e.task.agent!==t.agent||t.source&&e.task.source!==t.source||t.archived!==void 0&&t.archived!==(e.archivedAt!==void 0))return!1;let r=t.q?.trim().toLowerCase();return!r||[e.task.prompt??e.task.event?.text,e.task.agent,e.task.id].some(e=>e?.toLowerCase().includes(r))}const ul=e=>({rank:ge(e.status),createdAt:e.createdAt,id:e.task.id}),dl=(e,t)=>g(ul(e),ul(t)),fl=(e,t)=>!t||g(ul(e),t)>0;function Q(e){let t=e.event;return JSON.stringify([t?.appId,t?.installationId,t?.chat?.thread.id,e.agent,e.requester,t?.actor.id])}function pl(e,t){return e.flow==="default"&&!!e.event?.actor.id&&Q(e)===Q(t)}const ml=6e5;async function hl(e,t){let n=t.task.id,r=t.generation??0,i={generation:r,attempts:t.attempts,tokenHash:t.tokenHash??null,handle:t.handle??null};if(e.queue instanceof vl)return e.queue.deleteTask(e.organizationId,n,i);let[{DrizzleStore:a},{task:o,taskTombstone:s},{and:c,eq:l,isNull:u,sql:d},{rows:f}]=await Promise.all([import(`./store-B0RLMUR9.js`),import(`./schema-DoNO0dPh.js`).then(e=>e.u),import(`drizzle-orm`),import(`./shared-D64pQ0XU.js`).then(e=>e.g)]);if(!(e.store instanceof a))throw Error(`Task store does not support fenced deletion`);let p=(e.now??Date.now)(),[m]=await f(e.store.db,d`with gone as (
9
9
  delete from ${o}
10
10
  where ${c(l(o.organizationId,e.organizationId),l(o.publicId,n),l(o.generation,r),l(o.attempts,i.attempts),i.tokenHash===null?u(o.tokenHash):l(o.tokenHash,i.tokenHash),i.handle===null?u(o.handle):l(o.handle,i.handle))}
11
11
  returning organization_id, public_id
@@ -16,4 +16,4 @@ import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{An as t,Bt as n,Dt as
16
16
  delete from ${s}
17
17
  where deleted_at < ${new Date(p-ml).toISOString()}::timestamptz
18
18
  )
19
- select count(*)::int as deleted from gone`);return!!m?.deleted}async function gl(e,t,n,r,i){let a=await e.queue.appendInbox(e.organizationId,t,n,r,(e.now??Date.now)(),i);return a&&await bl(e,t),a}const _l=new Set([`completed`,`failed`,`cancelled`]);var vl=class{store;lock=Promise.resolve();tombstones=new Map;constructor(e){this.store=e}serial(e){let t=this.lock.then(e,e);return this.lock=t.catch(()=>{}),t}async read(e){return this.store.get(`task`,e)}async enqueue(e,t,n,r,i){return this.serial(()=>this.insert(t,n,r,i))}async insert(e,t,n,r){let i=n&&await this.store.get(`delivery`,n.key);if(i&&!i.pending)return!1;e=i?.pending?.task??e;let a=await this.read(e.id);if(!a&&r!==void 0&&(await this.store.list(`task`)).filter(e=>e.value.status===`queued`).length>=r)throw Error(`Organization task queue is full`);return n&&!i&&await this.store.put(`delivery`,n.key,{at:t,pending:{task:e}}),a||await this.store.put(`task`,e.id,{task:e,status:`queued`,attempts:0,createdAt:t,updatedAt:t}),n&&await this.store.put(`delivery`,n.key,{at:t},{ttlMs:n.ttlMs}),!0}async nextSeq(e){let t=await this.store.list(`inbox`,{prefix:`${e}:`}),n=(await this.store.list(`delivery`)).flatMap(t=>t.value.pending?.inbox?.id.startsWith(`${e}:`)?[t.value.pending.inbox.entry.seq]:[]);return Math.max((await this.read(e))?.inboxSeq??-1,...t.map(e=>e.value.seq),...n)+1}deliver(e,t,n,r,i,a,o=!0){return this.serial(async()=>{let s=await this.store.get(`delivery`,r.key);if(s&&!s.pending)return{};if(s?.pending?.inbox){let{taskId:e,id:i,entry:a}=s.pending.inbox,o=await this.read(e);if(o&&Z.includes(o.status)&&(o.generation??0)===a.generation&&pl(o.task,t))return await this.store.put(`task`,e,{...o,inboxSeq:Math.max(o.inboxSeq??-1,a.seq),updatedAt:n}),await this.store.put(`inbox`,i,a),await this.store.put(`delivery`,r.key,{at:n},{ttlMs:r.ttlMs}),{steered:!0};await this.store.delete(`delivery`,r.key),s=void 0}let c=i&&!s?.pending?.task?(await this.list(e,{statuses:Z,agent:t.agent,source:t.source})).find(e=>pl(e.task,t)):void 0;if(!c)return o&&await this.insert(t,n,r,a)?{taskId:t.id}:{};let l=await this.nextSeq(c.task.id),u={seq:l,generation:c.generation??0,at:n,kind:`steer`,value:{text:t.event.text}},d=`${c.task.id}:${String(l).padStart(8,`0`)}`;return await this.store.put(`delivery`,r.key,{at:n,pending:{inbox:{taskId:c.task.id,id:d,entry:u}}}),await this.store.put(`task`,c.task.id,{...c,inboxSeq:l,updatedAt:n}),await this.store.put(`inbox`,d,u),await this.store.put(`delivery`,r.key,{at:n},{ttlMs:r.ttlMs}),{steered:!0}})}claim(e,t){return this.serial(async()=>{let n=(await this.store.list(`task`)).map(e=>e.value);if(t!==void 0&&n.filter(e=>[`running`,`waiting`].includes(e.status)).length>=t)return;let r=n.filter(e=>e.status===`queued`).sort((e,t)=>e.createdAt-t.createdAt),i=r[0];if(!i)return;let a=pn(i.task.id,`default`,i.attempts+1),o={...i,tokenHash:a.hash,lastSeenAt:e,status:`running`,attempts:i.attempts+1,startedAt:e,updatedAt:e};return await this.store.put(`task`,o.task.id,o),{organizationId:`default`,status:o,token:a.token,more:r.length>1&&(t===void 0||n.filter(e=>[`running`,`waiting`].includes(e.status)).length+1<t)}})}allowed(e,t){return(t.generation===void 0||(e.generation??0)===t.generation)&&(t.attempts===void 0||e.attempts===t.attempts)&&(t.tokenHash===void 0||(e.tokenHash??null)===t.tokenHash)&&(t.handle===void 0||(e.handle??null)===t.handle)&&(t.lastSeenAt===void 0||(e.lastSeenAt??null)===t.lastSeenAt)&&(t.updatedAt===void 0||e.updatedAt===t.updatedAt)&&(!t.statuses||t.statuses.includes(e.status))}touch(e,t,n,r,i,a=!1){return this.serial(async()=>{let e=await this.read(t);if(!e||!this.allowed(e,{tokenHash:n,attempts:r})||!a&&_l.has(e.status)||e.status===`queued`)return;if(_l.has(e.status))return e;let o={...e,lastSeenAt:i,updatedAt:i};return await this.store.put(`task`,t,o),o})}async archiveStopped(e,t,n){let i=e=>e!==void 0&&_l.has(e.status)&&e.archivedAt===void 0&&(!n||n.includes(e.task.id))&&r(e.finishedAt??e.updatedAt,t);for(let{value:e}of await this.store.list(`task`))i(e)&&await this.serial(async()=>{let n=await this.read(e.task.id);i(n)&&await this.store.put(`task`,n.task.id,{...n,archivedAt:t,autoArchived:!0})})}patchTask(e,t,n,r,i={}){return this.serial(async()=>{let e=await this.read(t);if(!e||!this.allowed(e,i))return!1;let{answer:a,...o}=n;return await this.store.put(`task`,t,{...e,...o,...a===void 0?{}:{answer:[...e.answer??[],a]},updatedAt:r}),!0})}deleteTask(e,t,n){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,n)?!1:(await this.store.delete(`task`,t),this.tombstone(t),!0)})}continueTask(e,t,n,r,i){return this.serial(async()=>{let e=await this.read(t);if(!e||!_l.has(e.status)||!this.allowed(e,i))return!1;let{note:a,...o}=n.context??{},s=await this.store.get(`note`,dn(e.task));return n.context={...o,...s?{note:s}:{}},await this.store.put(`task`,t,{task:{...e.task,...n},status:`queued`,attempts:0,logSeq:e.logSeq,logBytes:e.logBytes,generation:(e.generation??0)+1,inboxSeq:e.inboxSeq,createdAt:e.createdAt,updatedAt:r},{unarchive:!0}),!0})}completeTask(e,t,n,r){return this.serial(async()=>{let e=await this.read(t);if(!e||!this.allowed(e,{attempts:n.attempts,tokenHash:n.tokenHash,statuses:[`running`,`waiting`]}))return!1;if(await this.store.put(`usage`,`${t}:${e.generation??0}`,n.usage),n.note){let{key:e,value:t,ttlMs:r}=n.note;t?await this.store.put(`note`,e,t,{ttlMs:r}):await this.store.delete(`note`,e)}for(let n of await this.store.list(`inbox`,{prefix:`${t}:`}))n.value.generation===(e.generation??0)&&await this.store.delete(`inbox`,n.id);return await this.store.put(`task`,t,{...e,...n.outcome,lastSeenAt:r,finishedAt:r,updatedAt:r}),!0})}requeue(e,t,n,r={}){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,{...r,statuses:[`running`,`waiting`]})?!1:(await this.store.put(`task`,t,{...e,status:`queued`,handle:void 0,tokenHash:void 0,lastSeenAt:void 0,updatedAt:n}),!0)})}finish(e,t,n,r,i={}){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,{...i,statuses:[`queued`,`running`,`waiting`]})?!1:(await this.store.put(`task`,t,{...e,...n,lastSeenAt:r,finishedAt:r,updatedAt:r}),!0)})}cancel(e,t,n,r={}){return this.serial(async()=>{let e=await this.read(t);if(!e||_l.has(e.status)||!this.allowed(e,r))return!1;let i=e.status===`queued`?void 0:{seq:await this.nextSeq(t),generation:e.generation??0,kind:`cancel`,value:null,at:n};return i&&await this.store.put(`inbox`,`${t}:${String(i.seq).padStart(8,`0`)}`,i),await this.store.put(`task`,t,{...e,...e.status===`queued`?{status:`cancelled`,finishedAt:n}:{},cancelRequestedAt:n,...i?{inboxSeq:i.seq}:{},updatedAt:n}),!0})}async cancelRequested(e,t){return(await this.read(t))?.cancelRequestedAt!==void 0}async list(e,t={}){let{before:n}=t;return(await this.store.list(`task`)).map(e=>e.value).filter(e=>ll(e,t)).filter(e=>fl(e,n)).sort(dl).slice(0,t.limit)}tombstone(e){this.tombstones.set(e,Date.now())}async changes(e,t){let n=e[0]?.organizationId;if(!n)return{rows:[],deleted:[]};for(let[e,t]of this.tombstones)t<Date.now()-6e5&&this.tombstones.delete(e);return{rows:(await this.store.list(`task`)).map(e=>({organizationId:n,status:e.value})),deleted:[...this.tombstones].filter(([,e])=>e>t).map(([e,t])=>({organizationId:n,id:e,at:t}))}}async counts(e,t={}){let n=(await this.store.list(`task`)).map(e=>e.value).filter(e=>ll(e,t));return{all:n.length,active:n.filter(e=>Z.includes(e.status)).length,waiting:n.filter(e=>e.status===`waiting`).length}}async runningCount(){return(await this.store.list(`task`)).filter(e=>[`running`,`waiting`].includes(e.value.status)).length}async running(){return(await this.store.list(`task`)).map(e=>e.value).filter(e=>[`running`,`waiting`].includes(e.status)).map(e=>({organizationId:`default`,status:e}))}appendLogs(e,t,n,r,i,a,o){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,o)||(e.logSeq??0)!==r.seq||(e.logCursor??-1)!==r.cursor?!1:(await this.store.putMany(`tasklog`,n.map(({seq:e,...n})=>({id:`${t}:${String(e).padStart(6,`0`)}`,value:n}))),await this.store.put(`task`,t,{...e,logCursor:i.cursor,logSeq:i.seq,logBytes:i.bytes,updatedAt:a}),!0)})}readInbox(e,t,n,r){return this.serial(async()=>{let e=await this.read(t);return!e||!Z.includes(e.status)||(e.generation??0)!==n?[]:(await this.store.list(`inbox`,{prefix:`${t}:`})).map(e=>e.value).filter(e=>e.generation===n&&e.seq>r).slice(0,100)})}fetchInbox(e,t,n,r,i){return this.serial(async()=>{let e=await this.read(t);if(!(!e||!this.allowed(e,{tokenHash:n,attempts:r,statuses:[`running`,`waiting`]})))return(await this.store.list(`inbox`,{prefix:`${t}:`})).map(e=>e.value).filter(t=>t.generation===(e.generation??0)&&t.seq>i).sort((e,t)=>e.seq-t.seq)})}ackInbox(e,t,n,r){return this.serial(async()=>{if(r.generation!==void 0&&r.generation!==n.generation)return!1;let e=await this.read(t);if(!e||!this.allowed(e,{...r,generation:n.generation,statuses:void 0})||n.seq>(e.inboxSeq??-1))return!1;let i=e.inboxAck?.generation===n.generation?e.inboxAck.seq:-1;if(_l.has(e.status))return n.seq<=i;if(![`running`,`waiting`].includes(e.status))return!1;let a=(await this.store.list(`inbox`,{prefix:`${t}:`})).filter(e=>e.value.generation===n.generation&&e.value.seq<=n.seq),o=(n.answers??[]).filter(e=>e.seq>i&&a.some(t=>t.value.kind===`ask`&&t.value.seq===e.seq)).map(e=>e.value),s=a.some(e=>e.value.kind===`cancel`),c=e.approval?.id,l=c&&a.some(e=>e.value.kind===`approve`&&e.value.value?.approvalId===c);await this.store.put(`task`,t,{...e,inboxAck:{generation:n.generation,seq:Math.max(i,n.seq)},...o.length?{answer:[...e.answer??[],...o]}:{},...l?{status:`running`,approval:void 0}:{},...s?{status:`cancelled`,finishedAt:Date.now()}:{},updatedAt:Date.now()});for(let e of a)await this.store.delete(`inbox`,e.id);return!0})}async pendingInbox(){let e=await this.store.list(`inbox`);return(await this.running()).filter(({status:t})=>e.some(e=>e.id.startsWith(`${t.task.id}:`)&&e.value.generation===(t.generation??0)))}appendInbox(e,t,n,r,i,a){return this.serial(async()=>{let e=await this.read(t);if(!e||!Z.includes(e.status)||(e.generation??0)!==a)return;let o=await this.nextSeq(t),s={seq:o,generation:a,at:i,kind:n,value:r};return await this.store.put(`inbox`,`${t}:${String(o).padStart(8,`0`)}`,s),await this.store.put(`task`,t,{...e,inboxSeq:o,updatedAt:i}),s})}};const yl=3e4;function bl(e,t){let n=e.queue.inboxDelivery??=new Map,r=JSON.stringify([e.organizationId,t]),i=n.get(r);if(i||n.set(r,i={}),i.work)return i.again=!0,i.work;let a=i,o=async()=>{let n,r=kt(),i=0,o=0,s,c=async()=>{for(;;){a.again=!1;let s=await e.store.get(`task`,t);if(!s?.handle||![`running`,`waiting`].includes(s.status))return;let c=await F(e,s.task),l=!!(e.local&&s.handle.startsWith(`cli:`));if(!l&&!c?.push)return;o=s.generation??0;let u={generation:o,attempts:s.attempts,tokenHash:s.tokenHash??null,handle:s.handle},d=`inbox:${JSON.stringify([t,u])}`;if(n!==d){n&&await e.store.updateDeliveryLease(n,r),n=void 0;let t=await e.store.claimDeliveryLease(d,r,yl);if(t===void 0)return;n=d,i=t}else if(!await e.store.updateDeliveryLease(n,r,{owner:r,failures:i},{ttlMs:yl}))return;let f=(await e.queue.readInbox(e.organizationId,t,s.generation??0,-1)).slice(0,100);if(!f.length){if(a.again)continue;return}let p=l?await qc(e,s,f):await c.push(s.handle,f);if(p.generation!==(s.generation??0)||!f.some(e=>e.seq===p.seq))throw Error(`Invalid inbox acknowledgement`);if(!await e.queue.ackInbox(e.organizationId,t,p,u)||(i=0,f.length<100&&!a.again))return}};try{await c()}catch{if(n){let t=Math.min(3e4,1e3*2**Math.min(i,5)),a={owner:r,failures:i+1,next:(e.now??Date.now)()+t};await e.store.updateDeliveryLease(n,r,a,{ttlMs:t}),n=void 0}}finally{n&&(await e.store.updateDeliveryLease(n,r),s=o)}return s};return a.work=(async()=>{for(;;){let n=await o();if(n===void 0||!(await e.queue.readInbox(e.organizationId,t,n,-1)).length&&!a.again)break}n.delete(r)})().finally(()=>{n.get(r)===a&&n.delete(r)}),a.work}async function xl(e){let t=await e.queue.pendingInbox();await Promise.allSettled(t.map(({organizationId:t,status:n})=>bl(j(e,t),n.task.id)))}function Sl(e){let t=xl(e).catch(()=>{});e.waitUntil&&e.waitUntil(t)}const $=`default`;async function Cl(e){if(!e.databaseUrl)throw Error(`DATABASE_URL is required for the Postgres store`);let{connect:t}=await import(`./client-31YzOj-i.js`).then(e=>e.n);return t(e.databaseUrl,e.databasePool)}async function wl(e,t={}){if(e.store!==`postgres`){let e=t.local?new co:new no;return{store:()=>e,queue:new vl(e),chatState:new ht(t.local?T.join(pe(``),`chat.json`):void 0),defaultOrganizationId:$,webhookTarget:async(t,n)=>{let r=await e.get(`app`,t),i=n?await e.get(`installation`,n):void 0;return r&&{organizationId:$,app:r,...i&&i.app===t&&!i.deletedAt?{bound:{organizationId:$,installation:i}}:{}}},appRecord:async t=>{let n=await e.get(`app`,t);return n&&{organizationId:$,app:n}},installationOrganization:async t=>await e.get(`installation`,t)?$:void 0,installations:async t=>(await e.list(`installation`,{prefix:`${t}:`})).filter(e=>!e.value.deletedAt).map(e=>({key:e.id,organizationId:$})),taskOrganization:async(t,n)=>(await e.get(`task`,t))?.tokenHash===n?$:void 0,sweep:async()=>{},close:async()=>{}}}let n=await Cl(e),[{DrizzleStore:r},{DrizzleQueue:i},{UNSCOPED_ORGANIZATION:a},{PgChatState:o}]=await Promise.all([import(`./store-BCBTo0rl.js`),import(`./queue-yo-Z8TaE.js`),import(`./shared-TznJgMFW.js`).then(e=>e.g),import(`./chat-cknlIhVh.js`)]);return{store:t=>new r(n.db,t,Date.now,e),queue:new i(n.db),chatState:new o(n.db),defaultOrganizationId:a,webhookTarget:(e,t)=>r.webhookTarget(n.db,e,t),appRecord:e=>r.appRecord(n.db,e),installationOrganization:e=>r.installationOrganization(n.db,e),installations:e=>r.installations(n.db,e),taskOrganization:(e,t)=>r.taskOrganization(n.db,e,t),connection:n,sweep:e=>new r(n.db,a).sweep(e),close:()=>n.close()}}async function Tl(e,t,n,r){if(e.updateMetadata)return e.updateMetadata(t,n,r);let i=await e.get(t,n);return i?(await e.put(t,n,{...i,...r}),!0):!1}async function El(e,t){let n=[...new Set(t)];return e.getApps?e.getApps(n):(await Promise.all(n.map(async t=>({id:t,value:await e.get(`app`,t)})))).filter(e=>!!e.value)}export{Oo as $,qt as $n,vi as $t,Xs as A,er as An,ca as At,Vs as B,En as Bn,Wi as Bt,Sc as C,vr as Cn,_a as Ct,pc as D,or as Dn,ia as Dt,cc as E,gr as En,Zi as Et,nc as F,Ln as Fn,ha as Ft,xs as G,rn as Gn,Pi as Gt,Is as H,pn as Hn,ya as Ht,Gs as I,N as In,Li as It,Os as J,en as Jn,Mi as Jt,Ds as K,on as Kn,ki as Kt,Ks as L,wn as Ln,Ki as Lt,Ys as M,Wn as Mn,da as Mt,Zs as N,Gn as Nn,aa as Nt,Hs as O,$n as On,Gi as Ot,rc as P,F as Pn,pa as Pt,Eo as Q,$t as Qn,hi as Qt,Js as R,M as Rn,Vi as Rt,bc as S,ur as Sn,va as St,Cc as T,fr as Tn,ua as Tt,Rs as U,nn as Un,Ai as Ut,Fs as V,j as Vn,Qi as Vt,Ls as W,sn as Wn,ji as Wt,Fo as X,Qt as Xn,z as Xt,is as Y,tn as Yn,Ei as Yt,Io as Z,Zt as Zn,gi as Zt,Gc as _,xr as _n,la as _t,Z as a,ni as an,Ya as at,G as b,L as bn,$i as bt,xl as c,ti as cn,Za as ct,sl as d,ei as dn,H as dt,mi as en,Yt as er,po as et,Jc as f,Er as fn,Ua as ft,Wc as g,Cr as gn,fa as gt,Fc as h,Sr as hn,zi as ht,Tl as i,Fr as in,Ia as it,Qs as j,rr as jn,ta as jt,tc as k,ar as kn,sa as kt,Sl as l,ii as ln,Xa as lt,Lc as m,Tr as mn,$a as mt,Cl as n,Ci as nn,fo as nt,vl as o,Zr as on,Da as ot,J as p,Dr as pn,Qa as pt,Ts as q,cn as qn,Ni as qt,El as r,_i as rn,to as rt,ml as s,Qr as sn,xa as st,wl as t,xi as tn,uo as tt,Q as u,Jr as un,Ja as ut,Rc as v,R as vn,oa as vt,xc as w,yr as wn,ma as wt,yc as x,cr as xn,ra as xt,Qc as y,lr as yn,ba as yt,qs as z,xn as zn,ga as zt};
19
+ select count(*)::int as deleted from gone`);return!!m?.deleted}async function gl(e,t,n,r,i){let a=await e.queue.appendInbox(e.organizationId,t,n,r,(e.now??Date.now)(),i);return a&&await bl(e,t),a}const _l=new Set([`completed`,`failed`,`cancelled`]);var vl=class{store;lock=Promise.resolve();tombstones=new Map;constructor(e){this.store=e}serial(e){let t=this.lock.then(e,e);return this.lock=t.catch(()=>{}),t}async read(e){return this.store.get(`task`,e)}async enqueue(e,t,n,r,i){return this.serial(()=>this.insert(t,n,r,i))}async insert(e,t,n,r){let i=n&&await this.store.get(`delivery`,n.key);if(i&&!i.pending)return!1;e=i?.pending?.task??e;let a=await this.read(e.id);if(!a&&r!==void 0&&(await this.store.list(`task`)).filter(e=>e.value.status===`queued`).length>=r)throw Error(`Organization task queue is full`);return n&&!i&&await this.store.put(`delivery`,n.key,{at:t,pending:{task:e}}),a||await this.store.put(`task`,e.id,{task:e,status:`queued`,attempts:0,createdAt:t,updatedAt:t}),n&&await this.store.put(`delivery`,n.key,{at:t},{ttlMs:n.ttlMs}),!0}async nextSeq(e){let t=await this.store.list(`inbox`,{prefix:`${e}:`}),n=(await this.store.list(`delivery`)).flatMap(t=>t.value.pending?.inbox?.id.startsWith(`${e}:`)?[t.value.pending.inbox.entry.seq]:[]);return Math.max((await this.read(e))?.inboxSeq??-1,...t.map(e=>e.value.seq),...n)+1}deliver(e,t,n,r,i,a,o=!0){return this.serial(async()=>{let s=await this.store.get(`delivery`,r.key);if(s&&!s.pending)return{};if(s?.pending?.inbox){let{taskId:e,id:i,entry:a}=s.pending.inbox,o=await this.read(e);if(o&&Z.includes(o.status)&&(o.generation??0)===a.generation&&pl(o.task,t))return await this.store.put(`task`,e,{...o,inboxSeq:Math.max(o.inboxSeq??-1,a.seq),updatedAt:n}),await this.store.put(`inbox`,i,a),await this.store.put(`delivery`,r.key,{at:n},{ttlMs:r.ttlMs}),{steered:!0};await this.store.delete(`delivery`,r.key),s=void 0}let c=i&&!s?.pending?.task?(await this.list(e,{statuses:Z,agent:t.agent,source:t.source})).find(e=>pl(e.task,t)):void 0;if(!c)return o&&await this.insert(t,n,r,a)?{taskId:t.id}:{};let l=await this.nextSeq(c.task.id),u={seq:l,generation:c.generation??0,at:n,kind:`steer`,value:{text:t.event.text}},d=`${c.task.id}:${String(l).padStart(8,`0`)}`;return await this.store.put(`delivery`,r.key,{at:n,pending:{inbox:{taskId:c.task.id,id:d,entry:u}}}),await this.store.put(`task`,c.task.id,{...c,inboxSeq:l,updatedAt:n}),await this.store.put(`inbox`,d,u),await this.store.put(`delivery`,r.key,{at:n},{ttlMs:r.ttlMs}),{steered:!0}})}claim(e,t){return this.serial(async()=>{let n=(await this.store.list(`task`)).map(e=>e.value);if(t!==void 0&&n.filter(e=>[`running`,`waiting`].includes(e.status)).length>=t)return;let r=n.filter(e=>e.status===`queued`).sort((e,t)=>e.createdAt-t.createdAt),i=r[0];if(!i)return;let a=pn(i.task.id,`default`,i.attempts+1),o={...i,tokenHash:a.hash,lastSeenAt:e,status:`running`,attempts:i.attempts+1,startedAt:e,updatedAt:e};return await this.store.put(`task`,o.task.id,o),{organizationId:`default`,status:o,token:a.token,more:r.length>1&&(t===void 0||n.filter(e=>[`running`,`waiting`].includes(e.status)).length+1<t)}})}allowed(e,t){return(t.generation===void 0||(e.generation??0)===t.generation)&&(t.attempts===void 0||e.attempts===t.attempts)&&(t.tokenHash===void 0||(e.tokenHash??null)===t.tokenHash)&&(t.handle===void 0||(e.handle??null)===t.handle)&&(t.lastSeenAt===void 0||(e.lastSeenAt??null)===t.lastSeenAt)&&(t.updatedAt===void 0||e.updatedAt===t.updatedAt)&&(!t.statuses||t.statuses.includes(e.status))}touch(e,t,n,r,i,a=!1){return this.serial(async()=>{let e=await this.read(t);if(!e||!this.allowed(e,{tokenHash:n,attempts:r})||!a&&_l.has(e.status)||e.status===`queued`)return;if(_l.has(e.status))return e;let o={...e,lastSeenAt:i,updatedAt:i};return await this.store.put(`task`,t,o),o})}async archiveStopped(e,t,n){let i=e=>e!==void 0&&_l.has(e.status)&&e.archivedAt===void 0&&(!n||n.includes(e.task.id))&&r(e.finishedAt??e.updatedAt,t);for(let{value:e}of await this.store.list(`task`))i(e)&&await this.serial(async()=>{let n=await this.read(e.task.id);i(n)&&await this.store.put(`task`,n.task.id,{...n,archivedAt:t,autoArchived:!0})})}patchTask(e,t,n,r,i={}){return this.serial(async()=>{let e=await this.read(t);if(!e||!this.allowed(e,i))return!1;let{answer:a,...o}=n;return await this.store.put(`task`,t,{...e,...o,...a===void 0?{}:{answer:[...e.answer??[],a]},updatedAt:r}),!0})}deleteTask(e,t,n){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,n)?!1:(await this.store.delete(`task`,t),this.tombstone(t),!0)})}continueTask(e,t,n,r,i){return this.serial(async()=>{let e=await this.read(t);if(!e||!_l.has(e.status)||!this.allowed(e,i))return!1;let{note:a,...o}=n.context??{},s=await this.store.get(`note`,dn(e.task));return n.context={...o,...s?{note:s}:{}},await this.store.put(`task`,t,{task:{...e.task,...n},status:`queued`,attempts:0,logSeq:e.logSeq,logBytes:e.logBytes,generation:(e.generation??0)+1,inboxSeq:e.inboxSeq,createdAt:e.createdAt,updatedAt:r},{unarchive:!0}),!0})}completeTask(e,t,n,r){return this.serial(async()=>{let e=await this.read(t);if(!e||!this.allowed(e,{attempts:n.attempts,tokenHash:n.tokenHash,statuses:[`running`,`waiting`]}))return!1;if(await this.store.put(`usage`,`${t}:${e.generation??0}`,n.usage),n.note){let{key:e,value:t,ttlMs:r}=n.note;t?await this.store.put(`note`,e,t,{ttlMs:r}):await this.store.delete(`note`,e)}for(let n of await this.store.list(`inbox`,{prefix:`${t}:`}))n.value.generation===(e.generation??0)&&await this.store.delete(`inbox`,n.id);return await this.store.put(`task`,t,{...e,...n.outcome,lastSeenAt:r,finishedAt:r,updatedAt:r}),!0})}requeue(e,t,n,r={}){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,{...r,statuses:[`running`,`waiting`]})?!1:(await this.store.put(`task`,t,{...e,status:`queued`,handle:void 0,tokenHash:void 0,lastSeenAt:void 0,updatedAt:n}),!0)})}finish(e,t,n,r,i={}){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,{...i,statuses:[`queued`,`running`,`waiting`]})?!1:(await this.store.put(`task`,t,{...e,...n,lastSeenAt:r,finishedAt:r,updatedAt:r}),!0)})}cancel(e,t,n,r={}){return this.serial(async()=>{let e=await this.read(t);if(!e||_l.has(e.status)||!this.allowed(e,r))return!1;let i=e.status===`queued`?void 0:{seq:await this.nextSeq(t),generation:e.generation??0,kind:`cancel`,value:null,at:n};return i&&await this.store.put(`inbox`,`${t}:${String(i.seq).padStart(8,`0`)}`,i),await this.store.put(`task`,t,{...e,...e.status===`queued`?{status:`cancelled`,finishedAt:n}:{},cancelRequestedAt:n,...i?{inboxSeq:i.seq}:{},updatedAt:n}),!0})}async cancelRequested(e,t){return(await this.read(t))?.cancelRequestedAt!==void 0}async list(e,t={}){let{before:n}=t;return(await this.store.list(`task`)).map(e=>e.value).filter(e=>ll(e,t)).filter(e=>fl(e,n)).sort(dl).slice(0,t.limit)}tombstone(e){this.tombstones.set(e,Date.now())}async changes(e,t){let n=e[0]?.organizationId;if(!n)return{rows:[],deleted:[]};for(let[e,t]of this.tombstones)t<Date.now()-6e5&&this.tombstones.delete(e);return{rows:(await this.store.list(`task`)).map(e=>({organizationId:n,status:e.value})),deleted:[...this.tombstones].filter(([,e])=>e>t).map(([e,t])=>({organizationId:n,id:e,at:t}))}}async counts(e,t={}){let n=(await this.store.list(`task`)).map(e=>e.value).filter(e=>ll(e,t));return{all:n.length,active:n.filter(e=>Z.includes(e.status)).length,waiting:n.filter(e=>e.status===`waiting`).length}}async runningCount(){return(await this.store.list(`task`)).filter(e=>[`running`,`waiting`].includes(e.value.status)).length}async running(){return(await this.store.list(`task`)).map(e=>e.value).filter(e=>[`running`,`waiting`].includes(e.status)).map(e=>({organizationId:`default`,status:e}))}appendLogs(e,t,n,r,i,a,o){return this.serial(async()=>{let e=await this.read(t);return!e||!this.allowed(e,o)||(e.logSeq??0)!==r.seq||(e.logCursor??-1)!==r.cursor?!1:(await this.store.putMany(`tasklog`,n.map(({seq:e,...n})=>({id:`${t}:${String(e).padStart(6,`0`)}`,value:n}))),await this.store.put(`task`,t,{...e,logCursor:i.cursor,logSeq:i.seq,logBytes:i.bytes,updatedAt:a}),!0)})}readInbox(e,t,n,r){return this.serial(async()=>{let e=await this.read(t);return!e||!Z.includes(e.status)||(e.generation??0)!==n?[]:(await this.store.list(`inbox`,{prefix:`${t}:`})).map(e=>e.value).filter(e=>e.generation===n&&e.seq>r).slice(0,100)})}fetchInbox(e,t,n,r,i){return this.serial(async()=>{let e=await this.read(t);if(!(!e||!this.allowed(e,{tokenHash:n,attempts:r,statuses:[`running`,`waiting`]})))return(await this.store.list(`inbox`,{prefix:`${t}:`})).map(e=>e.value).filter(t=>t.generation===(e.generation??0)&&t.seq>i).sort((e,t)=>e.seq-t.seq)})}ackInbox(e,t,n,r){return this.serial(async()=>{if(r.generation!==void 0&&r.generation!==n.generation)return!1;let e=await this.read(t);if(!e||!this.allowed(e,{...r,generation:n.generation,statuses:void 0})||n.seq>(e.inboxSeq??-1))return!1;let i=e.inboxAck?.generation===n.generation?e.inboxAck.seq:-1;if(_l.has(e.status))return n.seq<=i;if(![`running`,`waiting`].includes(e.status))return!1;let a=(await this.store.list(`inbox`,{prefix:`${t}:`})).filter(e=>e.value.generation===n.generation&&e.value.seq<=n.seq),o=(n.answers??[]).filter(e=>e.seq>i&&a.some(t=>t.value.kind===`ask`&&t.value.seq===e.seq)).map(e=>e.value),s=a.some(e=>e.value.kind===`cancel`),c=e.approval?.id,l=c&&a.some(e=>e.value.kind===`approve`&&e.value.value?.approvalId===c);await this.store.put(`task`,t,{...e,inboxAck:{generation:n.generation,seq:Math.max(i,n.seq)},...o.length?{answer:[...e.answer??[],...o]}:{},...l?{status:`running`,approval:void 0}:{},...s?{status:`cancelled`,finishedAt:Date.now()}:{},updatedAt:Date.now()});for(let e of a)await this.store.delete(`inbox`,e.id);return!0})}async pendingInbox(){let e=await this.store.list(`inbox`);return(await this.running()).filter(({status:t})=>e.some(e=>e.id.startsWith(`${t.task.id}:`)&&e.value.generation===(t.generation??0)))}appendInbox(e,t,n,r,i,a){return this.serial(async()=>{let e=await this.read(t);if(!e||!Z.includes(e.status)||(e.generation??0)!==a)return;let o=await this.nextSeq(t),s={seq:o,generation:a,at:i,kind:n,value:r};return await this.store.put(`inbox`,`${t}:${String(o).padStart(8,`0`)}`,s),await this.store.put(`task`,t,{...e,inboxSeq:o,updatedAt:i}),s})}};const yl=3e4;function bl(e,t){let n=e.queue.inboxDelivery??=new Map,r=JSON.stringify([e.organizationId,t]),i=n.get(r);if(i||n.set(r,i={}),i.work)return i.again=!0,i.work;let a=i,o=async()=>{let n,r=kt(),i=0,o=0,s,c=async()=>{for(;;){a.again=!1;let s=await e.store.get(`task`,t);if(!s?.handle||![`running`,`waiting`].includes(s.status))return;let c=await F(e,s.task),l=!!(e.local&&s.handle.startsWith(`cli:`));if(!l&&!c?.push)return;o=s.generation??0;let u={generation:o,attempts:s.attempts,tokenHash:s.tokenHash??null,handle:s.handle},d=`inbox:${JSON.stringify([t,u])}`;if(n!==d){n&&await e.store.updateDeliveryLease(n,r),n=void 0;let t=await e.store.claimDeliveryLease(d,r,yl);if(t===void 0)return;n=d,i=t}else if(!await e.store.updateDeliveryLease(n,r,{owner:r,failures:i},{ttlMs:yl}))return;let f=(await e.queue.readInbox(e.organizationId,t,s.generation??0,-1)).slice(0,100);if(!f.length){if(a.again)continue;return}let p=l?await qc(e,s,f):await c.push(s.handle,f);if(p.generation!==(s.generation??0)||!f.some(e=>e.seq===p.seq))throw Error(`Invalid inbox acknowledgement`);if(!await e.queue.ackInbox(e.organizationId,t,p,u)||(i=0,f.length<100&&!a.again))return}};try{await c()}catch{if(n){let t=Math.min(3e4,1e3*2**Math.min(i,5)),a={owner:r,failures:i+1,next:(e.now??Date.now)()+t};await e.store.updateDeliveryLease(n,r,a,{ttlMs:t}),n=void 0}}finally{n&&(await e.store.updateDeliveryLease(n,r),s=o)}return s};return a.work=(async()=>{for(;;){let n=await o();if(n===void 0||!(await e.queue.readInbox(e.organizationId,t,n,-1)).length&&!a.again)break}n.delete(r)})().finally(()=>{n.get(r)===a&&n.delete(r)}),a.work}async function xl(e){let t=await e.queue.pendingInbox();await Promise.allSettled(t.map(({organizationId:t,status:n})=>bl(j(e,t),n.task.id)))}function Sl(e){let t=xl(e).catch(()=>{});e.waitUntil&&e.waitUntil(t)}const $=`default`;async function Cl(e){if(!e.databaseUrl)throw Error(`DATABASE_URL is required for the Postgres store`);let{connect:t}=await import(`./client-31YzOj-i.js`).then(e=>e.n);return t(e.databaseUrl,e.databasePool)}async function wl(e,t={}){if(e.store!==`postgres`){let e=t.local?new co:new no;return{store:()=>e,queue:new vl(e),chatState:new ht(t.local?T.join(pe(``),`chat.json`):void 0),defaultOrganizationId:$,webhookTarget:async(t,n)=>{let r=await e.get(`app`,t),i=n?await e.get(`installation`,n):void 0;return r&&{organizationId:$,app:r,...i&&i.app===t&&!i.deletedAt?{bound:{organizationId:$,installation:i}}:{}}},appRecord:async t=>{let n=await e.get(`app`,t);return n&&{organizationId:$,app:n}},installationOrganization:async t=>await e.get(`installation`,t)?$:void 0,installations:async t=>(await e.list(`installation`,{prefix:`${t}:`})).filter(e=>!e.value.deletedAt).map(e=>({key:e.id,organizationId:$})),taskOrganization:async(t,n)=>(await e.get(`task`,t))?.tokenHash===n?$:void 0,sweep:async()=>{},close:async()=>{}}}let n=await Cl(e),[{DrizzleStore:r},{DrizzleQueue:i},{UNSCOPED_ORGANIZATION:a},{PgChatState:o}]=await Promise.all([import(`./store-B0RLMUR9.js`),import(`./queue-EvplGOuk.js`),import(`./shared-D64pQ0XU.js`).then(e=>e.g),import(`./chat-cknlIhVh.js`)]);return{store:t=>new r(n.db,t,Date.now,e),queue:new i(n.db),chatState:new o(n.db),defaultOrganizationId:a,webhookTarget:(e,t)=>r.webhookTarget(n.db,e,t),appRecord:e=>r.appRecord(n.db,e),installationOrganization:e=>r.installationOrganization(n.db,e),installations:e=>r.installations(n.db,e),taskOrganization:(e,t)=>r.taskOrganization(n.db,e,t),connection:n,sweep:e=>new r(n.db,a).sweep(e),close:()=>n.close()}}async function Tl(e,t,n,r){if(e.updateMetadata)return e.updateMetadata(t,n,r);let i=await e.get(t,n);return i?(await e.put(t,n,{...i,...r}),!0):!1}async function El(e,t){let n=[...new Set(t)];return e.getApps?e.getApps(n):(await Promise.all(n.map(async t=>({id:t,value:await e.get(`app`,t)})))).filter(e=>!!e.value)}export{Oo as $,qt as $n,vi as $t,Xs as A,er as An,ca as At,Vs as B,En as Bn,Wi as Bt,Sc as C,vr as Cn,_a as Ct,pc as D,or as Dn,ia as Dt,cc as E,gr as En,Zi as Et,nc as F,Ln as Fn,ha as Ft,xs as G,rn as Gn,Pi as Gt,Is as H,pn as Hn,ya as Ht,Gs as I,N as In,Li as It,Os as J,en as Jn,Mi as Jt,Ds as K,on as Kn,ki as Kt,Ks as L,wn as Ln,Ki as Lt,Ys as M,Wn as Mn,da as Mt,Zs as N,Gn as Nn,aa as Nt,Hs as O,$n as On,Gi as Ot,rc as P,F as Pn,pa as Pt,Eo as Q,$t as Qn,hi as Qt,Js as R,M as Rn,Vi as Rt,bc as S,ur as Sn,va as St,Cc as T,fr as Tn,ua as Tt,Rs as U,nn as Un,Ai as Ut,Fs as V,j as Vn,Qi as Vt,Ls as W,sn as Wn,ji as Wt,Fo as X,Qt as Xn,z as Xt,is as Y,tn as Yn,Ei as Yt,Io as Z,Zt as Zn,gi as Zt,Gc as _,xr as _n,la as _t,Z as a,ni as an,Ya as at,G as b,L as bn,$i as bt,xl as c,ti as cn,Za as ct,sl as d,ei as dn,H as dt,mi as en,Yt as er,po as et,Jc as f,Er as fn,Ua as ft,Wc as g,Cr as gn,fa as gt,Fc as h,Sr as hn,zi as ht,Tl as i,Fr as in,Ia as it,Qs as j,rr as jn,ta as jt,tc as k,ar as kn,sa as kt,Sl as l,ii as ln,Xa as lt,Lc as m,Tr as mn,$a as mt,Cl as n,Ci as nn,fo as nt,vl as o,Zr as on,Da as ot,J as p,Dr as pn,Qa as pt,Ts as q,cn as qn,Ni as qt,El as r,_i as rn,to as rt,ml as s,Qr as sn,xa as st,wl as t,xi as tn,uo as tt,Q as u,Jr as un,Ja as ut,Rc as v,R as vn,oa as vt,xc as w,yr as wn,ma as wt,yc as x,cr as xn,ra as xt,Qc as y,lr as yn,ba as yt,qs as z,xn as zn,ga as zt};
@@ -1 +1 @@
1
- import{s as e}from"./cli-msOzZFXW.js";const t=[[`--wait`,`run in the foreground and block until the answer is ready`],[`--engine <codex|claude|custom>`,`engine to use; custom runs your configured custom models (default: first in the chain)`],[`--model <alias|slug>`,`luna/sol/astra (codex) · sonnet/opus/fable (claude) · a custom model (coder model list)`],[`--effort <low|medium|high>`,`reasoning effort`],[`--permissions <mode>`,`read-only · workspace-write · auto (default: auto)`],[`--mcp <names|all|json>`,'attach MCP servers from `mcp` in .coder/config.json by name (or all), or an inline JSON array [{"name","command","args","env","tools"}]; none by default, all adds your engine\'s own MCP servers'],[`--add-dir <dir>`,`give the task another directory beyond --cwd (repeatable); read-only can only read it, other modes can also write`]],n=e(`task`,{"archive-sweep":async()=>(await import(`./archive-sweep-CHbOP-p6.js`)).commandArchiveSweep,worker:async()=>(await import(`./worker-CaNTsqcD.js`)).commandWorker,run:async()=>(await import(`./run-hiPyO7js.js`)).commandTask,list:async()=>(await import(`./list-CXu4cr8D.js`)).commandTasks,ls:async()=>(await import(`./list-CXu4cr8D.js`)).commandTasks,watch:async()=>(await import(`./watch-DYkC6Q2q.js`)).commandWatch,stream:async()=>(await import(`./watch-DYkC6Q2q.js`)).commandWatch,result:async()=>(await import(`./result-oQey_hdw.js`).then(e=>e.s)).commandResult,steer:async()=>(await import(`./steer-D47cuggj.js`)).commandSteer,ask:async()=>(await import(`./ask-DdYrvsTk.js`)).commandAsk,stop:async()=>(await import(`./stop-7brPdki9.js`)).commandStop,archive:async()=>(await import(`./archive-C9yrU4Wg.js`)).commandArchive,delete:async()=>(await import(`./delete-Cj16PYaw.js`)).commandDelete,approvals:async()=>(await import(`./approvals-CZt_aPCy.js`)).commandApprovals,approve:async()=>(await import(`./approve-DxjyXd66.js`)).commandApprove},{menu:[{sub:`run`,usage:`run "<text>"`,blurb:`run a task (background; --wait blocks)`,alias:`run`},{sub:`list`,usage:`list`,blurb:`list recent tasks (by default running + just stopped)`,alias:`list`},{sub:`result`,usage:`result [task-id]`,blurb:`status + final answer (--wait blocks)`,alias:`result`},{sub:`watch`,usage:`watch [task-id]`,blurb:`stream a task's live transcript`},{sub:`steer`,usage:`steer <task-id> "<follow-up>"`,blurb:`continue a task's thread`},{sub:`ask`,usage:`ask <task-id> "<question>"`,blurb:`ask about a task without interrupting it`},{sub:`stop`,usage:`stop <task-id>`,blurb:`interrupt a running task`},{sub:`archive`,usage:`archive <task-id>`,blurb:`archive a session (or --all-stopped)`},{sub:`delete`,usage:`delete <task-id>`,blurb:`delete a session (or --all-archived)`},{sub:`approvals`,usage:`approvals [task-id]`,blurb:`pending approvals (all tasks, or one)`},{sub:`approve`,usage:`approve <id>`,blurb:`answer an escalated permission`}].map(e=>({usage:e.usage,blurb:e.blurb,...e.alias?{note:`(coder ${e.alias})`}:{}}))},{aliases:{stream:`watch`,ls:`list`},hint:`Run a task: coder run "<text>"`});export{t as TASK_FLAGS,n as commandTaskGroup};
1
+ import{s as e}from"./cli-DtTdpTy3.js";const t=[[`--wait`,`run in the foreground and block until the answer is ready`],[`--engine <codex|claude|custom>`,`engine to use; custom runs your configured custom models (default: first in the chain)`],[`--model <alias|slug>`,`luna/sol/astra (codex) · sonnet/opus/fable (claude) · a custom model (coder model list)`],[`--effort <low|medium|high>`,`reasoning effort`],[`--permissions <mode>`,`read-only · workspace-write · auto (default: auto)`],[`--mcp <names|all|json>`,'attach MCP servers from `mcp` in .coder/config.json by name (or all), or an inline JSON array [{"name","command","args","env","tools"}]; none by default, all adds your engine\'s own MCP servers'],[`--add-dir <dir>`,`give the task another directory beyond --cwd (repeatable); read-only can only read it, other modes can also write`]],n=e(`task`,{"archive-sweep":async()=>(await import(`./archive-sweep-jE6TPk2F.js`)).commandArchiveSweep,worker:async()=>(await import(`./worker-C3dzIzd3.js`)).commandWorker,run:async()=>(await import(`./run-BlXCPJzq.js`)).commandTask,list:async()=>(await import(`./list-DedQA2pn.js`)).commandTasks,ls:async()=>(await import(`./list-DedQA2pn.js`)).commandTasks,watch:async()=>(await import(`./watch-DJATTJw_.js`)).commandWatch,stream:async()=>(await import(`./watch-DJATTJw_.js`)).commandWatch,result:async()=>(await import(`./result-DtVw6XYk.js`).then(e=>e.s)).commandResult,steer:async()=>(await import(`./steer-DwSAYYqb.js`)).commandSteer,ask:async()=>(await import(`./ask-zjX8kQz0.js`)).commandAsk,stop:async()=>(await import(`./stop-BS2MB4CQ.js`)).commandStop,archive:async()=>(await import(`./archive-Br2eM_A2.js`)).commandArchive,delete:async()=>(await import(`./delete-6T7ujDtY.js`)).commandDelete,approvals:async()=>(await import(`./approvals-Gv7x14u3.js`)).commandApprovals,approve:async()=>(await import(`./approve-D5Dkw1Lo.js`)).commandApprove},{menu:[{sub:`run`,usage:`run "<text>"`,blurb:`run a task (background; --wait blocks)`,alias:`run`},{sub:`list`,usage:`list`,blurb:`list recent tasks (by default running + just stopped)`,alias:`list`},{sub:`result`,usage:`result [task-id]`,blurb:`status + final answer (--wait blocks)`,alias:`result`},{sub:`watch`,usage:`watch [task-id]`,blurb:`stream a task's live transcript`},{sub:`steer`,usage:`steer <task-id> "<follow-up>"`,blurb:`continue a task's thread`},{sub:`ask`,usage:`ask <task-id> "<question>"`,blurb:`ask about a task without interrupting it`},{sub:`stop`,usage:`stop <task-id>`,blurb:`interrupt a running task`},{sub:`archive`,usage:`archive <task-id>`,blurb:`archive a session (or --all-stopped)`},{sub:`delete`,usage:`delete <task-id>`,blurb:`delete a session (or --all-archived)`},{sub:`approvals`,usage:`approvals [task-id]`,blurb:`pending approvals (all tasks, or one)`},{sub:`approve`,usage:`approve <id>`,blurb:`answer an escalated permission`}].map(e=>({usage:e.usage,blurb:e.blurb,...e.alias?{note:`(coder ${e.alias})`}:{}}))},{aliases:{stream:`watch`,ls:`list`},hint:`Run a task: coder run "<text>"`});export{t as TASK_FLAGS,n as commandTaskGroup};
@@ -1 +1 @@
1
- import{St as e}from"./dispatch-YW1aqjEg.js";import{i as t,t as n}from"./cli-msOzZFXW.js";import{runnerOptions as r}from"./remove-CcMma1x3.js";import i from"node:process";const a=t({name:`runner test`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner test <id> [--server [url]] [--json]`,summary:`Check the runner connection.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{testRunner:r}=await import(`./runner-c-2w6Eoj.js`).then(e=>e.a);return r(n,t)},print:e=>i.stdout.write(`${e.ok?`OK`:`Failed`} ${e.detail} (${e.ms} ms).\n`)});export{a as commandRunnerTest};
1
+ import{St as e}from"./dispatch-YW1aqjEg.js";import{i as t,t as n}from"./cli-DtTdpTy3.js";import{runnerOptions as r}from"./remove-UVD3W2OE.js";import i from"node:process";const a=t({name:`runner test`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner test <id> [--server [url]] [--json]`,summary:`Check the runner connection.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{testRunner:r}=await import(`./runner-c-2w6Eoj.js`).then(e=>e.a);return r(n,t)},print:e=>i.stdout.write(`${e.ok?`OK`:`Failed`} ${e.detail} (${e.ms} ms).\n`)});export{a as commandRunnerTest};
@@ -1 +1 @@
1
- import{i as e}from"./cli-msOzZFXW.js";import{n as t}from"./mcp-server-DGzme0YX.js";import n from"node:process";const r=e({name:`agent tools`,options:{},args:1,async run({args:e}){let{INTEGRATIONS:r}=await import(`./integrations-B2CavXR1.js`).then(e=>e.r),{agentTools:i}=await import(`./mcp-DgMoPoUo.js`).then(e=>e.t),a=e[0]??``,o=i(a);if(!o)throw Error(`Unknown tool set "${a}"; known: ${[...Object.keys(r).filter(e=>r[e].tools.serve),`note`].join(`, `)}`);let s=n.env.APP_TOKEN??``;if(!s&&a!==`note`)throw Error(`APP_TOKEN is not set`);let c=n.env.CODER_AGENT_SCOPE?JSON.parse(n.env.CODER_AGENT_SCOPE):void 0;await t(`coder-${a}`,o,{token:s,fetch,tools:(n.env.CODER_AGENT_TOOLS??``).split(`,`).filter(Boolean),...c?{scope:c}:{}})}});export{r as commandTools};
1
+ import{i as e}from"./cli-DtTdpTy3.js";import{n as t}from"./mcp-server-DGzme0YX.js";import n from"node:process";const r=e({name:`agent tools`,options:{},args:1,async run({args:e}){let{INTEGRATIONS:r}=await import(`./integrations-B2CavXR1.js`).then(e=>e.r),{agentTools:i}=await import(`./mcp-DgMoPoUo.js`).then(e=>e.t),a=e[0]??``,o=i(a);if(!o)throw Error(`Unknown tool set "${a}"; known: ${[...Object.keys(r).filter(e=>r[e].tools.serve),`note`].join(`, `)}`);let s=n.env.APP_TOKEN??``;if(!s&&a!==`note`)throw Error(`APP_TOKEN is not set`);let c=n.env.CODER_AGENT_SCOPE?JSON.parse(n.env.CODER_AGENT_SCOPE):void 0;await t(`coder-${a}`,o,{token:s,fetch,tools:(n.env.CODER_AGENT_TOOLS??``).split(`,`).filter(Boolean),...c?{scope:c}:{}})}});export{r as commandTools};
@@ -1 +1 @@
1
- import{i as e}from"./cli-msOzZFXW.js";import{o as t}from"./models-DGPrMV51.js";import{n}from"./add-cdKdz3K0.js";import{t as r}from"./remove-C8Rm8KP-.js";const i=e({name:`model unalias`,help:{usage:`coder model unalias <name> [--workspace]`,summary:`Remove a user-defined alias.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]},options:n,args:1,run:({options:e,args:[n],cwd:r})=>t(r,n,e),print:e=>r(`unaliased`,e.unaliased,e.file)});export{i as commandModelUnalias};
1
+ import{i as e}from"./cli-DtTdpTy3.js";import{o as t}from"./models-DGPrMV51.js";import{n}from"./add-DpsjB8Mp.js";import{t as r}from"./remove-C57QDigT.js";const i=e({name:`model unalias`,help:{usage:`coder model unalias <name> [--workspace]`,summary:`Remove a user-defined alias.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]},options:n,args:1,run:({options:e,args:[n],cwd:r})=>t(r,n,e),print:e=>r(`unaliased`,e.unaliased,e.file)});export{i as commandModelUnalias};
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cli-msOzZFXW.js";import{s as t}from"./models-DGPrMV51.js";import{a as n,i as r,n as i,r as a}from"./add-cdKdz3K0.js";const o=e({name:`model update`,help:{usage:`coder model update <name> [--base-url <url>] [--model <id>] [--env-key VAR]`,summary:`Update a configured custom model. Only the flags you pass change; the endpoint
1
+ import{i as e}from"./cli-DtTdpTy3.js";import{s as t}from"./models-DGPrMV51.js";import{a as n,i as r,n as i,r as a}from"./add-DpsjB8Mp.js";const o=e({name:`model update`,help:{usage:`coder model update <name> [--base-url <url>] [--model <id>] [--env-key VAR]`,summary:`Update a configured custom model. Only the flags you pass change; the endpoint
2
2
  is re-probed and the wire protocol re-detected.`,flags:[[`--base-url <url>`,`new API base`],[`--model <id>`,`new provider model id`],[`--env-key <VAR>`,`new API-key env var`],[`--workspace`,`write to <repo>/.coder/config.json instead of the user file`]]},options:i,args:1,run:({options:e,args:[r],cwd:i})=>t(i,r,n(e)),json:a,print:e=>r(e,`updated`)});export{o as commandModelUpdate};
@@ -1,2 +1,2 @@
1
- import{w as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-msOzZFXW.js";import{f as n,p as r,t as i}from"./output-BKeyLbvt.js";import{n as a,s as o}from"./args-DEMOfLz2.js";import s from"node:process";const c=t({name:`upgrade`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder upgrade [--cli-only] [--plugins-only] [--codex] [--claude] [--pm <mgr>]`,summary:`Update the coder CLI through whichever package manager installed it, then refresh
2
- the host plugins to match. Alias: update.`,flags:[[`--cli-only`,`update just the CLI`],[`--plugins-only`,`refresh just the host plugins`],[`--codex`,`limit the refresh to the Agent Skills copy (Codex, Pi, ...)`],[`--claude`,`limit the refresh to the Claude Code plugin`],[`--pm <npm|pnpm|yarn|bun>`,`force a package manager instead of auto-detecting`]]},options:{pm:o,"cli-only":a,"plugins-only":a,codex:a,claude:a},run:({options:t})=>e({...t,cliOnly:t[`cli-only`],pluginsOnly:t[`plugins-only`]},l),print:u});function l(e){s.stdout.write(`${r.bold(`Updating coder CLI`)} ${r.dim(`${e}...`)}\n`)}function u(e){let t=r.bold,a=r.dim,o=(e,n)=>n&&e&&n!==e?`${e} ${a(`->`)} ${t(n)}`:`${n??e??`?`} ${a(`(unchanged)`)}`,c=(e,t)=>`${t.installed?n(`${e} ${o(t.from,t.to)} ${a(`- ${t.note}`)}`):i(`${e} ${t.note}`)}\n`;e.cli&&s.stdout.write(e.cli.changed?`${n(`coder CLI ${o(e.cli.from,e.cli.to)}`)}\n`:`${n(`coder CLI ${e.cli.from} ${a(`(already latest)`)}`)}\n`),e.claudePlugin&&s.stdout.write(c(`claude plugin`,e.claudePlugin)),e.agentsSkill&&s.stdout.write(c(`agents skill `,e.agentsSkill))}const d=async()=>(await import(`./refresh-CmBQALAW.js`)).commandRefreshUpdate,f=Object.assign(async e=>e[0]===`refresh`?(await d())(e.slice(1)):c(e),c,{subcommands:{refresh:d}});export{f as commandUpgrade};
1
+ import{w as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-DtTdpTy3.js";import{f as n,p as r,t as i}from"./output-BKeyLbvt.js";import{n as a,s as o}from"./args-DEMOfLz2.js";import s from"node:process";const c=t({name:`upgrade`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder upgrade [--cli-only] [--plugins-only] [--codex] [--claude] [--pm <mgr>]`,summary:`Update the coder CLI through whichever package manager installed it, then refresh
2
+ the host plugins to match. Alias: update.`,flags:[[`--cli-only`,`update just the CLI`],[`--plugins-only`,`refresh just the host plugins`],[`--codex`,`limit the refresh to the Agent Skills copy (Codex, Pi, ...)`],[`--claude`,`limit the refresh to the Claude Code plugin`],[`--pm <npm|pnpm|yarn|bun>`,`force a package manager instead of auto-detecting`]]},options:{pm:o,"cli-only":a,"plugins-only":a,codex:a,claude:a},run:({options:t})=>e({...t,cliOnly:t[`cli-only`],pluginsOnly:t[`plugins-only`]},l),print:u});function l(e){s.stdout.write(`${r.bold(`Updating coder CLI`)} ${r.dim(`${e}...`)}\n`)}function u(e){let t=r.bold,a=r.dim,o=(e,n)=>n&&e&&n!==e?`${e} ${a(`->`)} ${t(n)}`:`${n??e??`?`} ${a(`(unchanged)`)}`,c=(e,t)=>`${t.installed?n(`${e} ${o(t.from,t.to)} ${a(`- ${t.note}`)}`):i(`${e} ${t.note}`)}\n`;e.cli&&s.stdout.write(e.cli.changed?`${n(`coder CLI ${o(e.cli.from,e.cli.to)}`)}\n`:`${n(`coder CLI ${e.cli.from} ${a(`(already latest)`)}`)}\n`),e.claudePlugin&&s.stdout.write(c(`claude plugin`,e.claudePlugin)),e.agentsSkill&&s.stdout.write(c(`agents skill `,e.agentsSkill))}const d=async()=>(await import(`./refresh-BFuahSFK.js`)).commandRefreshUpdate,f=Object.assign(async e=>e[0]===`refresh`?(await d())(e.slice(1)):c(e),c,{subcommands:{refresh:d}});export{f as commandUpgrade};
@@ -1 +1 @@
1
- import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{a as t,i as n}from"./load-DDZfByUe.js";import{a as r,d as i,f as a,n as o,u as s}from"./http-DG54kyx4.js";import{y as c}from"./store-qp7UE2ES.js";var l=e({addUsage:()=>f,leaders:()=>m,readUsage:()=>x,readUsageTotals:()=>S,timeZone:()=>d,usageReport:()=>b,usageSummary:()=>_,usageTotals:()=>p});function u(e){return typeof e==`number`?e:!e||typeof e!=`object`||Array.isArray(e)?0:`total`in e&&typeof e.total==`number`?e.total:Object.values(e).reduce((e,t)=>e+u(t),0)}function d(e){if(!e)return`UTC`;try{return new Intl.DateTimeFormat(`en`,{timeZone:e}),e}catch{return`UTC`}}const f=(e,t)=>{e.tasks+=t.tasks,e.runnerMs+=t.runnerMs,e.tokenCount+=t.tokenCount};async function p(e,t){if(e.usageTotals)return e.usageTotals(t);if(t.top){let{top:n,...r}=t,i=(await p(e,{...r,by:`agent`,parts:void 0})).sort((e,t)=>t[n.by]-e[n.by]||e.key.localeCompare(t.key)).slice(0,n.count).map(e=>e.key);return p(e,{...r,parts:i})}let n=d(t.tz),r=new Intl.DateTimeFormat(`en-CA`,{timeZone:n,year:`numeric`,month:`2-digit`,day:`2-digit`}),i=new Set(t.parts),a=new Map;for(let{value:n}of await e.list(`usage`)){if(n.at<t.since||t.until!==void 0&&n.at>=t.until||t.agent&&n.agent!==t.agent)continue;let e=t.by===`agent`?n.agent:t.by===`installation`?n.installationId??`none`:t.by===`engine`?n.engine??`unknown`:r.format(n.at),o={tasks:1,runnerMs:n.runnerElapsedMs,tokenCount:u(n.tokens)},s=a.get(e)??{key:e,tasks:0,runnerMs:0,tokenCount:0};f(s,o),i.has(n.agent)&&(s.parts??={},f(s.parts[n.agent]??={tasks:0,runnerMs:0,tokenCount:0},o)),a.set(e,s)}return[...a.values()].sort((e,t)=>e.key.localeCompare(t.key))}function m(e,t){let n=new Map;for(let r of e)for(let[e,i]of Object.entries(r.parts??{}))n.set(e,(n.get(e)??0)+i[t]);return[...n].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e])=>e)}function h(e,t){if(typeof t==`number`)return(typeof e==`number`?e:0)+t;if(!t||typeof t!=`object`||Array.isArray(t))return e;let n=e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{};for(let[e,r]of Object.entries(t))n[e]=h(n[e],r);return n}function g(e,t){let n=new Map;for(let r of e){let e=t===`agent`?r.agent:t===`installation`?r.installationId??`none`:r.engine??`unknown`,i=n.get(e)??{key:e,tasks:0,runnerMs:0};i.tasks++,i.runnerMs+=r.runnerElapsedMs,r.tokens!==void 0&&(i.tokens=h(i.tokens,r.tokens)),n.set(e,i)}return[...n.values()].sort((e,t)=>e.key.localeCompare(t.key))}function _(e,t,n){let r=e.filter(e=>e.at>=t);return{since:t,totals:n?g(r,n):{agent:g(r,`agent`),installation:g(r,`installation`),engine:g(r,`engine`)}}}const v={tasks:`tasks`,runner:`runnerMs`,tokens:`tokenCount`},y={tokens:e=>e.tokenCount,tasks:e=>e.tasks,runner:e=>e.runnerMs,name:e=>e.key};async function b(e,c){let l=e=>c.searchParams.get(e),u=Number(l(`since`)??0),f=l(`until`)===null?void 0:Number(l(`until`)),h=l(`by`)??`agent`;if(!Number.isFinite(u)||f!==void 0&&!Number.isFinite(f)||![`agent`,`installation`,`engine`,`day`].includes(h))return r({error:`Invalid usage query`},400);let g=l(`parts`)?.split(`,`).filter(Boolean),_=Math.min(Number(l(`top`)??0),8),b=v[l(`sort`)??`tokens`]??`tokenCount`,x=await p(e.store,{by:h,since:u,...f===void 0?{}:{until:f},...l(`agent`)?{agent:l(`agent`)}:{},...h===`day`?{tz:d(l(`tz`))}:{},...g?.length?{parts:g.slice(0,20)}:{},..._>0?{top:{count:_,by:b}}:{}}),S={since:u,...f===void 0?{}:{until:f}};if(h===`agent`){let r=new Set(e.local?(await t(e.local.cwd,e.integrations)).map(e=>e.id):(await e.store.list(`agent`)).map(e=>e.id));for(let e of Object.keys(n()))r.add(e);for(let e of x)r.has(e.key)||(e.deleted=!0)}if(_>0)return r({...S,totals:x,top:m(x,b)});if(!a(c)||h!==`agent`)return r({...S,totals:x});let C=y[l(`sort`)??`tokens`]??y.tokens,w=l(`sort`)===`name`,T=l(`q`)?.trim().toLowerCase(),E=([e,t],[n,r])=>(e<n?-1:+(e>n))*(w?1:-1)||t.localeCompare(r),D=e=>[C(e),e.key],O=o(c),k=x.filter(e=>!T||e.key.toLowerCase().includes(T)).filter(e=>!O||E(D(e),O)>0).sort((e,t)=>E(D(e),D(t))),A=i(c),j=e=>x.reduce((t,n)=>t+e(n),0);return r({...S,...s(k.slice(0,A+1),A,D),summary:{agents:x.length,tasks:j(e=>e.tasks),runnerMs:j(e=>e.runnerMs),tokenCount:j(e=>e.tokenCount)}})}async function x(e,t,n,i){t.local&&await c(t);let a=i.searchParams.get(`installation`),o=await t.store.list(`usage`);return r(a?o.filter(e=>e.value.installationId===a):o)}async function S(e,t,n,i){t.local&&await c(t);let a=Number(i.searchParams.get(`since`)??0),o=i.searchParams.get(`by`);if([`until`,`agent`,`tz`,`parts`,`top`,`cursor`].some(e=>i.searchParams.has(e))||o===`day`)return b(t,i);if(!Number.isFinite(a)||o&&![`agent`,`installation`,`engine`].includes(o))return r({error:`Invalid usage query`},400);let s=(await t.store.list(`usage`)).map(e=>e.value);return r(_(s,a,o))}export{l as a,d as i,x as n,S as r,f as t};
1
+ import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{a as t,i as n}from"./load-DDZfByUe.js";import{a as r,d as i,f as a,n as o,u as s}from"./http-DG54kyx4.js";import{y as c}from"./store-Cxc2GYyj.js";var l=e({addUsage:()=>f,leaders:()=>m,readUsage:()=>x,readUsageTotals:()=>S,timeZone:()=>d,usageReport:()=>b,usageSummary:()=>_,usageTotals:()=>p});function u(e){return typeof e==`number`?e:!e||typeof e!=`object`||Array.isArray(e)?0:`total`in e&&typeof e.total==`number`?e.total:Object.values(e).reduce((e,t)=>e+u(t),0)}function d(e){if(!e)return`UTC`;try{return new Intl.DateTimeFormat(`en`,{timeZone:e}),e}catch{return`UTC`}}const f=(e,t)=>{e.tasks+=t.tasks,e.runnerMs+=t.runnerMs,e.tokenCount+=t.tokenCount};async function p(e,t){if(e.usageTotals)return e.usageTotals(t);if(t.top){let{top:n,...r}=t,i=(await p(e,{...r,by:`agent`,parts:void 0})).sort((e,t)=>t[n.by]-e[n.by]||e.key.localeCompare(t.key)).slice(0,n.count).map(e=>e.key);return p(e,{...r,parts:i})}let n=d(t.tz),r=new Intl.DateTimeFormat(`en-CA`,{timeZone:n,year:`numeric`,month:`2-digit`,day:`2-digit`}),i=new Set(t.parts),a=new Map;for(let{value:n}of await e.list(`usage`)){if(n.at<t.since||t.until!==void 0&&n.at>=t.until||t.agent&&n.agent!==t.agent)continue;let e=t.by===`agent`?n.agent:t.by===`installation`?n.installationId??`none`:t.by===`engine`?n.engine??`unknown`:r.format(n.at),o={tasks:1,runnerMs:n.runnerElapsedMs,tokenCount:u(n.tokens)},s=a.get(e)??{key:e,tasks:0,runnerMs:0,tokenCount:0};f(s,o),i.has(n.agent)&&(s.parts??={},f(s.parts[n.agent]??={tasks:0,runnerMs:0,tokenCount:0},o)),a.set(e,s)}return[...a.values()].sort((e,t)=>e.key.localeCompare(t.key))}function m(e,t){let n=new Map;for(let r of e)for(let[e,i]of Object.entries(r.parts??{}))n.set(e,(n.get(e)??0)+i[t]);return[...n].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e])=>e)}function h(e,t){if(typeof t==`number`)return(typeof e==`number`?e:0)+t;if(!t||typeof t!=`object`||Array.isArray(t))return e;let n=e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{};for(let[e,r]of Object.entries(t))n[e]=h(n[e],r);return n}function g(e,t){let n=new Map;for(let r of e){let e=t===`agent`?r.agent:t===`installation`?r.installationId??`none`:r.engine??`unknown`,i=n.get(e)??{key:e,tasks:0,runnerMs:0};i.tasks++,i.runnerMs+=r.runnerElapsedMs,r.tokens!==void 0&&(i.tokens=h(i.tokens,r.tokens)),n.set(e,i)}return[...n.values()].sort((e,t)=>e.key.localeCompare(t.key))}function _(e,t,n){let r=e.filter(e=>e.at>=t);return{since:t,totals:n?g(r,n):{agent:g(r,`agent`),installation:g(r,`installation`),engine:g(r,`engine`)}}}const v={tasks:`tasks`,runner:`runnerMs`,tokens:`tokenCount`},y={tokens:e=>e.tokenCount,tasks:e=>e.tasks,runner:e=>e.runnerMs,name:e=>e.key};async function b(e,c){let l=e=>c.searchParams.get(e),u=Number(l(`since`)??0),f=l(`until`)===null?void 0:Number(l(`until`)),h=l(`by`)??`agent`;if(!Number.isFinite(u)||f!==void 0&&!Number.isFinite(f)||![`agent`,`installation`,`engine`,`day`].includes(h))return r({error:`Invalid usage query`},400);let g=l(`parts`)?.split(`,`).filter(Boolean),_=Math.min(Number(l(`top`)??0),8),b=v[l(`sort`)??`tokens`]??`tokenCount`,x=await p(e.store,{by:h,since:u,...f===void 0?{}:{until:f},...l(`agent`)?{agent:l(`agent`)}:{},...h===`day`?{tz:d(l(`tz`))}:{},...g?.length?{parts:g.slice(0,20)}:{},..._>0?{top:{count:_,by:b}}:{}}),S={since:u,...f===void 0?{}:{until:f}};if(h===`agent`){let r=new Set(e.local?(await t(e.local.cwd,e.integrations)).map(e=>e.id):(await e.store.list(`agent`)).map(e=>e.id));for(let e of Object.keys(n()))r.add(e);for(let e of x)r.has(e.key)||(e.deleted=!0)}if(_>0)return r({...S,totals:x,top:m(x,b)});if(!a(c)||h!==`agent`)return r({...S,totals:x});let C=y[l(`sort`)??`tokens`]??y.tokens,w=l(`sort`)===`name`,T=l(`q`)?.trim().toLowerCase(),E=([e,t],[n,r])=>(e<n?-1:+(e>n))*(w?1:-1)||t.localeCompare(r),D=e=>[C(e),e.key],O=o(c),k=x.filter(e=>!T||e.key.toLowerCase().includes(T)).filter(e=>!O||E(D(e),O)>0).sort((e,t)=>E(D(e),D(t))),A=i(c),j=e=>x.reduce((t,n)=>t+e(n),0);return r({...S,...s(k.slice(0,A+1),A,D),summary:{agents:x.length,tasks:j(e=>e.tasks),runnerMs:j(e=>e.runnerMs),tokenCount:j(e=>e.tokenCount)}})}async function x(e,t,n,i){t.local&&await c(t);let a=i.searchParams.get(`installation`),o=await t.store.list(`usage`);return r(a?o.filter(e=>e.value.installationId===a):o)}async function S(e,t,n,i){t.local&&await c(t);let a=Number(i.searchParams.get(`since`)??0),o=i.searchParams.get(`by`);if([`until`,`agent`,`tz`,`parts`,`top`,`cursor`].some(e=>i.searchParams.has(e))||o===`day`)return b(t,i);if(!Number.isFinite(a)||o&&![`agent`,`installation`,`engine`].includes(o))return r({error:`Invalid usage query`},400);let s=(await t.store.list(`usage`)).map(e=>e.value);return r(_(s,a,o))}export{l as a,d as i,x as n,S as r,f as t};
@@ -1 +1 @@
1
- import{i as e,r as t}from"./cli-msOzZFXW.js";import{g as n,p as r}from"./output-BKeyLbvt.js";import{i,n as a,s as o,t as s}from"./args-DEMOfLz2.js";import c from"node:process";const l={server:i,workspace:o,yes:a};function u(e,t){let i=Array.isArray(e.totals)?e.totals.map(e=>({group:t??``,...e})):Object.entries(e.totals).flatMap(([e,t])=>t.map(t=>({group:e,...t})));if(!i.length)return void c.stdout.write(`${r.dim(`No usage in this period.`)}\n`);c.stdout.write(`${n([{header:`by`,value:e=>e.group},{header:`key`,value:e=>e.key,paint:e=>r.cyan(e)},{header:`tasks`,value:e=>String(e.tasks)},{header:`runner ms`,value:e=>String(e.runnerMs)},{header:`tokens`,value:e=>e.tokens===void 0?``:JSON.stringify(e.tokens)}],i,r)}\n`)}const d=e({name:`agent usage`,help:{usage:`coder agent usage [--since 7d|24h|<ms>] [--by agent|installation|engine] [--server [url]] [--json] [--cwd <dir>]`,flags:[[`--since <period|ms>`,`period such as 7d or 24h, or milliseconds since epoch`],[`--by <group>`,`agent, installation, or engine`],t]},options:{...s,...l,since:o,by:o},run:async({options:e,cwd:t})=>{let{agents:n}=await import(`./agent-BcXXkOmD.js`).then(e=>e.t);return n.usage({...e,cwd:t,organization:e.workspace,since:e.since??`7d`})},print:(e,{options:t})=>u(e,t.by)});export{d as commandAgentUsage};
1
+ import{i as e,r as t}from"./cli-DtTdpTy3.js";import{g as n,p as r}from"./output-BKeyLbvt.js";import{i,n as a,s as o,t as s}from"./args-DEMOfLz2.js";import c from"node:process";const l={server:i,workspace:o,yes:a};function u(e,t){let i=Array.isArray(e.totals)?e.totals.map(e=>({group:t??``,...e})):Object.entries(e.totals).flatMap(([e,t])=>t.map(t=>({group:e,...t})));if(!i.length)return void c.stdout.write(`${r.dim(`No usage in this period.`)}\n`);c.stdout.write(`${n([{header:`by`,value:e=>e.group},{header:`key`,value:e=>e.key,paint:e=>r.cyan(e)},{header:`tasks`,value:e=>String(e.tasks)},{header:`runner ms`,value:e=>String(e.runnerMs)},{header:`tokens`,value:e=>e.tokens===void 0?``:JSON.stringify(e.tokens)}],i,r)}\n`)}const d=e({name:`agent usage`,help:{usage:`coder agent usage [--since 7d|24h|<ms>] [--by agent|installation|engine] [--server [url]] [--json] [--cwd <dir>]`,flags:[[`--since <period|ms>`,`period such as 7d or 24h, or milliseconds since epoch`],[`--by <group>`,`agent, installation, or engine`],t]},options:{...s,...l,since:o,by:o},run:async({options:e,cwd:t})=>{let{agents:n}=await import(`./agent-D0pQ_ewc.js`).then(e=>e.t);return n.usage({...e,cwd:t,organization:e.workspace,since:e.since??`7d`})},print:(e,{options:t})=>u(e,t.by)});export{d as commandAgentUsage};
@@ -1,4 +1,4 @@
1
- import{Kt as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-msOzZFXW.js";import{_ as n,a as r,b as i,c as a,h as o,l as s,n as c,p as l,s as u,u as d,v as f,y as p}from"./output-BKeyLbvt.js";import{l as m,t as h}from"./args-DEMOfLz2.js";import g from"node:process";const _=t({name:`flow watch`,help:{usage:`coder flow watch [run-id] [--tail <n|all>] [--json]`,summary:`Watch a flow run live: replay its progress lines from the start, then keep
1
+ import{Kt as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-DtTdpTy3.js";import{_ as n,a as r,b as i,c as a,h as o,l as s,n as c,p as l,s as u,u as d,v as f,y as p}from"./output-BKeyLbvt.js";import{l as m,t as h}from"./args-DEMOfLz2.js";import g from"node:process";const _=t({name:`flow watch`,help:{usage:`coder flow watch [run-id] [--tail <n|all>] [--json]`,summary:`Watch a flow run live: replay its progress lines from the start, then keep
2
2
  following while it runs (Ctrl-C detaches; it keeps running). Blocks until it
3
3
  finishes; exits 0 on success, 1 otherwise. Defaults to the most recent run.
4
4
  For the result alone, prefer \`coder flow result\`. Alias: stream.`,flags:[[`--tail <n|all>`,`replay only the last n events first (default: all)`]],examples:[[`coder flow watch`,`follow the most recent run to completion`]]},options:{...h,tail:m},args:1,run:async({options:e,args:[t]})=>{let{watchRun:n}=await import(`./executor-HWnIIYUL.js`).then(e=>e.b);return N(n(t,{tail:e.tail}),{json:e.json,stream:!0})}}),v=[`⣾`,`⣽`,`⣻`,`⢿`,`⡿`,`⣟`,`⣯`,`⣷`];function y(e,t=!1){let n=l;return t?c(`[${x(e)}]`,10):e===`completed`?n.bold(n.green(`✔`)):e===`failed`||e===`cancelled`||e===`stopped`?n.bold(n.red(`✘`)):e===`running`?n.bold(n.cyan(`●`)):n.dim(`○`)}function b(){return c(`[start]`,10)}function x(e){return e===`completed`?`done`:e===`cancelled`?`failed`:e}function S(e,t){return e??t.replace(/\s+/g,` `).trim().slice(0,60)}function C(e,t,n,r,i,a){let o=l,u=c(t??n,32);return[`${e} ${a?o.bold(u):u}`,o.dim(c(n,24)),o.light(c(i??``,20)),r?o.light(`${s(r.total)} tok`):``].join(` `).trimEnd()}function w(e,t=!1){let n=l;return`${y(e.ok?`completed`:`failed`,t)} ${n.dim(`gate`)} ${n.light(e.cmd)}${e.ok?``:n.dim(` · exit ${e.code}`)}`}function T(e,t,n){let i=l,a=n!==void 0&&n>=1e3?i.dim(` · ${r(n)}`):``;return`${t} ${i.dim(`gate`)} ${i.light(e)}${a}`}function E(e,t=!1){return l.dim(`${`│ `.repeat(e)}${t?`└─`:`├─`}`)}function D(e){return l.dim(`${`│ `.repeat(e)}│ `)}function O(e){return`${` `.repeat(e.depth)}${e.log?`${c(`[log]`,10)} `:``}${e.body}`}function k(e,t,n=!1){return n?O(e):`${e.log?D(e.depth):E(e.depth,t)} ${e.body}`}function A(e){return l.dim(`${`│ `.repeat(Math.max(0,e))}│`)}var j=class{stream;names=new Map;active=new Map;activeGates=new Map;pending;previews=new Map;frame=0;hasCommitted=!1;timer;tty;region;constructor(e=g.stdout){this.stream=e,this.tty=!!e.isTTY,this.region=new n(e)}emit(e){let t=l;switch(e.kind){case`task-start`:{let t={name:S(e.name,e.prompt),engine:e.engine,depth:e.depth??0};if(this.names.set(e.taskId,t),!this.tty){this.final(t.depth,C(b(),t.name,e.taskId,null,t.engine));return}this.active.set(e.taskId,t),this.spin(!0),this.repaint();return}case`task-end`:{this.active.delete(e.taskId),this.previews.delete(e.taskId),this.idle();let t=this.names.get(e.taskId);this.final(t?.depth??0,C(y(e.status,!this.tty),t?.name??null,e.taskId,e.tokens,t?.engine));return}case`gate-start`:{let t={cmd:e.cmd,depth:e.depth??0,startedAt:Date.now()};if(!this.tty){this.final(t.depth,T(t.cmd,b()));return}this.activeGates.set(e.gateId,t),this.spin(!0),this.repaint();return}case`gate`:e.gateId&&this.activeGates.delete(e.gateId),this.idle(),this.final(e.depth??0,w(e,!this.tty));return;case`log`:for(let n of e.message.split(`
@@ -1,4 +1,4 @@
1
- import{fn as e,jn as t}from"./dispatch-YW1aqjEg.js";import{i as n,r}from"./cli-msOzZFXW.js";import{p as i,y as a}from"./output-BKeyLbvt.js";import{i as o,l as s,n as c,s as l,t as u}from"./args-DEMOfLz2.js";import{a as d,d as f,i as p,l as m,n as h,t as g,u as _}from"./result-oQey_hdw.js";import v from"node:process";import*as y from"zod/mini";const b={server:o,workspace:l,yes:c};function x(e,t){let n=e.level===`sys`?t.dim(`· ${e.line}`):e.level===`err`?t.light(e.line):e.line;v.stdout.write(`${n}\n`)}async function S(n,r,o){if(`attempts`in n.task){for await(let e of n.events)o.json?v.stdout.write(`${JSON.stringify(e,null,2)}\n`):x(e,i);let e=await n.final();o.json||p(e,i),v.exit(0)}let s=n.task,c=o.trim===void 0?500:o.trim===`none`?1/0:o.trim,l=await g.create({cwd:s.cwd??r,startedAt:Date.parse(s.createdAt??``)||void 0,trim:c,explicitTrim:o.trim!==void 0,width:a()});if(!o.json){let t=[...m(s,{status:s.status}),...e.includes(s.status)?[i.dim(`Watching. Press Ctrl-C to stop.`)]:[],...s.prompt?d(s.prompt,i,{truncate:!1}):[],``];v.stdout.write(`${t.join(`
1
+ import{fn as e,jn as t}from"./dispatch-YW1aqjEg.js";import{i as n,r}from"./cli-DtTdpTy3.js";import{p as i,y as a}from"./output-BKeyLbvt.js";import{i as o,l as s,n as c,s as l,t as u}from"./args-DEMOfLz2.js";import{a as d,d as f,i as p,l as m,n as h,t as g,u as _}from"./result-DtVw6XYk.js";import v from"node:process";import*as y from"zod/mini";const b={server:o,workspace:l,yes:c};function x(e,t){let n=e.level===`sys`?t.dim(`· ${e.line}`):e.level===`err`?t.light(e.line):e.line;v.stdout.write(`${n}\n`)}async function S(n,r,o){if(`attempts`in n.task){for await(let e of n.events)o.json?v.stdout.write(`${JSON.stringify(e,null,2)}\n`):x(e,i);let e=await n.final();o.json||p(e,i),v.exit(0)}let s=n.task,c=o.trim===void 0?500:o.trim===`none`?1/0:o.trim,l=await g.create({cwd:s.cwd??r,startedAt:Date.parse(s.createdAt??``)||void 0,trim:c,explicitTrim:o.trim!==void 0,width:a()});if(!o.json){let t=[...m(s,{status:s.status}),...e.includes(s.status)?[i.dim(`Watching. Press Ctrl-C to stop.`)]:[],...s.prompt?d(s.prompt,i,{truncate:!1}):[],``];v.stdout.write(`${t.join(`
2
2
  `)}\n`)}let u=null,y=null,b=e=>{let t=l.render(e);t.length&&v.stdout.write(`${t.join(`
3
3
  `)}\n`)};for await(let e of n.events){let t=e;if(t.kind===`usage`&&t.tokens&&(u=t.tokens),o.json){let e=t.kind===`steer`?1/0:c,n=t.message?{...t,message:f(t.message,e,{plain:!0})}:t;v.stdout.write(`${JSON.stringify(n)}\n`);continue}t.kind!==`usage`&&(y&&=(b(y),null),t.kind===`assistant`?y=t:b(t))}let{status:S,result:C,task:w}=await n.final();if(o.json)v.stdout.write(`${JSON.stringify({taskId:s.id,status:S,result:C},null,2)}\n`);else{let e=S===`completed`?`(no final message)`:`(task ${S})`,n=_(w,{tokens:C?.tokens??u,tokenModel:C?.model,files:C?.touchedFiles?.map(e=>t(s.cwd??r,e)),statusChanged:S!==s.status});n.length&&v.stderr.write(`\n${n.join(`
4
4
  `)}\n`);let i=h(C,w.error,e),a=y?String(y.message??``):``;v.stdout.write(`\n${i.trim()?i:a}\n`)}v.exit(S===`completed`?0:1)}const C=n({name:`task watch`,help:{usage:`coder task watch [task-id] [--server [url]]`,summary:`Stream a running task's transcript live (for you/debugging), then print its
@@ -1 +1 @@
1
- import{Vt as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-msOzZFXW.js";import{i as n}from"./output-BKeyLbvt.js";import{s as r}from"./args-DEMOfLz2.js";import i from"node:process";const a=t({name:`task worker`,options:{cwd:r},args:1,async run({args:[t],cwd:r}){let{startAgentMailbox:a}=await import(`./exec-DgI3boHa.js`).then(e=>e.i),{runWorker:o}=await import(`./worker-C4Lo6rLS.js`),s=e(r,t);s||n(`Worker: task ${t} not found.`),await o(r,s,a).catch(()=>i.exit(1))}});export{a as commandWorker};
1
+ import{Vt as e}from"./dispatch-YW1aqjEg.js";import{i as t}from"./cli-DtTdpTy3.js";import{i as n}from"./output-BKeyLbvt.js";import{s as r}from"./args-DEMOfLz2.js";import i from"node:process";const a=t({name:`task worker`,options:{cwd:r},args:1,async run({args:[t],cwd:r}){let{startAgentMailbox:a}=await import(`./exec-DgI3boHa.js`).then(e=>e.i),{runWorker:o}=await import(`./worker-C4Lo6rLS.js`),s=e(r,t);s||n(`Worker: task ${t} not found.`),await o(r,s,a).catch(()=>i.exit(1))}});export{a as commandWorker};
@@ -1 +1 @@
1
- import{i as e}from"./cli-msOzZFXW.js";import t from"node:process";const n=e({name:`server workflow`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder server workflow`,summary:`Print the workflow the github-actions runner dispatches. Save it as .github/workflows/coder-agent.yml in every repo the agent runs on, and set RUNNER=github-actions on the server.`,examples:[[`coder server workflow > .github/workflows/coder-agent.yml`,`add it to a repo`]]},options:{},run:async()=>{let{ACTIONS_WORKFLOW_YAML:e}=await import(`./github-actions-CvLya8ve.js`).then(e=>e.r);return e},print:e=>t.stdout.write(e)});export{n as commandServerWorkflow};
1
+ import{i as e}from"./cli-DtTdpTy3.js";import t from"node:process";const n=e({name:`server workflow`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder server workflow`,summary:`Print the workflow the github-actions runner dispatches. Save it as .github/workflows/coder-agent.yml in every repo the agent runs on, and set RUNNER=github-actions on the server.`,examples:[[`coder server workflow > .github/workflows/coder-agent.yml`,`add it to a repo`]]},options:{},run:async()=>{let{ACTIONS_WORKFLOW_YAML:e}=await import(`./github-actions-CvLya8ve.js`).then(e=>e.r);return e},print:e=>t.stdout.write(e)});export{n as commandServerWorkflow};
package/docs/self-host.md CHANGED
@@ -183,6 +183,6 @@ Local hosts use the connection's peer IP. Vercel uses the IP supplied by its pro
183
183
 
184
184
  Running tasks and tasks waiting for approval hold slots. Further tasks remain queued, with “Waiting for a task slot” in their status, until a slot opens. `MAX_TASKS`, when set, also bounds runner slots across the deployment. The concurrent cap applies to tasks admitted by the server; standalone CLI tasks do not pass through the server, but active CLI tasks on a local server's machine are counted before it starts another task.
185
185
 
186
- `GET /health` needs no sign-in and returns `{ ok, version, uptime, db, runners: { online, total } }`. `uptime` is seconds since this server process started. `db` is `ok` after a live database query, `down` when it fails, or `none` in local and memory modes. Registered runners are online when their last heartbeat is less than five minutes old. Health counts runners across all workspaces and returns `200` when healthy or `503` when the database or runner records cannot be read. Local mode keeps its usual loopback access restriction.
186
+ `GET /health` needs no sign-in and returns `{ ok }`: `200` when the server and its database answer, `503` when they do not. Local mode keeps its usual loopback access restriction.
187
187
 
188
188
  `GET /admin/metrics` requires an owner or admin of the selected workspace, or the memory server's admin token. It returns `tasks` with counts for every status among tasks created in the last 24 hours, `queueDepth` for all queued tasks, `runnersOnline`, `requests`, and `rateLimitRejections`. Task and runner counts belong to the selected workspace; request and rejection counters cover this server process since startup.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wular/coder",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "description": "Delegating coding-agent runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",
@@ -53,7 +53,7 @@
53
53
  "@chat-adapter/teams": "4.41.1",
54
54
  "@octokit/auth-app": "8.3.1",
55
55
  "@tanstack/virtual-core": "3.17.1",
56
- "@wular/pnext": "0.1.8",
56
+ "@wular/pnext": "0.1.9",
57
57
  "chat": "4.41.1",
58
58
  "drizzle-orm": "0.45.2",
59
59
  "jose": "6.2.12",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coder",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "description": "Delegate coding tasks to supervised Coder subagents running on Codex, Claude, or any OpenAI-compatible model. Your main context stays clean.",
5
5
  "author": {
6
6
  "name": "muzam1l"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "coder",
3
3
  "displayName": "Coder",
4
- "version": "0.4.5",
4
+ "version": "0.4.7",
5
5
  "description": "Delegate coding tasks to supervised Coder subagents running on Codex, Claude, or any OpenAI-compatible model. Your main context stays clean.",
6
6
  "author": {
7
7
  "name": "muzam1l"
@@ -1 +0,0 @@
1
- import{s as e}from"./cli-msOzZFXW.js";const t=e(`auth`,{login:async()=>(await import(`./login-BzdlmD_o.js`)).commandLogin,logout:async()=>(await import(`./logout-DOrRoxDV.js`)).commandLogout,status:async()=>(await import(`./status-BBW7Qyde.js`)).commandStatus},{menu:[{usage:`login`,blurb:`sign in through the browser`},{usage:`logout`,blurb:`sign out and forget the saved session`},{usage:`status`,blurb:`show where you are signed in`}],description:[`Sign in to Coder and manage saved server sessions.`],exampleCommand:`auth login`});export{t as commandAuth};
@@ -1 +0,0 @@
1
- import{s as e}from"./cli-msOzZFXW.js";const t=e(`credentials`,{list:async()=>(await import(`./list-DGoVY-ao.js`)).commandCredentialsList,add:async()=>(await import(`./add-DTwoL7vJ.js`)).commandCredentialsAdd,login:async()=>(await import(`./login-otJB9SYu.js`)).commandCredentialsLogin,remove:async()=>(await import(`./remove-DgMg_OOu.js`)).commandCredentialsRemove,default:async()=>(await import(`./default-fMaQH1wm.js`)).commandCredentialsDefault},void 0,{help:{usage:`coder credentials [list|add|login|remove|default] ...`,summary:`Manage engine credentials. Your personal ones are yours alone; workspace ones serve every member, and only owners and admins change them. A task runs on its requester's default for the engine, else the workspace's.`}});export{t as commandCredentials};
@@ -1,15 +0,0 @@
1
- import "./@/comps/ui/segmented.81631cafb8e3b260.css.pnext-asset.js";
2
- import "./@/app/dash/usage/range-bar.72f0c7c440fb34af.css.pnext-asset.js";
3
- import "./usage.d6df7cb6980171ce.css.pnext-asset.js";
4
- import { HEADS } from "../../../comps/frame/heads.5407f7793f985b16.js";
5
- import { LoadingRange } from "./range-bar.8c9b18116c8eb5f0.js";
6
- import { Loading } from "../../../comps/ui/card.e6876039e375b849.js";
7
- import { Page, PageHead } from "../../../comps/frame/page-head.857951b5dc1ad827.js";
8
- import { jsx as _jsx, jsxs as _jsxs } from "../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
9
- export default function UsageLoading() {
10
- return /* @__PURE__ */ _jsxs(Page, { children: [
11
- /* @__PURE__ */ _jsx(PageHead, { ...HEADS.usage }),
12
- /* @__PURE__ */ _jsx(LoadingRange, {}),
13
- /* @__PURE__ */ _jsx(Loading, { label: "Loading usage" })
14
- ] });
15
- }
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as a,$0c as d,$0d as p,$0e as c,$0f as f}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as s}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as e,$6c as r}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:L,unmountRoute:I}=t({islands:[{id:"c-30b20a1d70",Component:e},{id:"c-406d056fac",Component:a},{id:"c-5427c4fb35",Component:d},{id:"c-5bc004d6fd",Component:l},{id:"c-6340275418",Component:n},{id:"c-a658f1dd22",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-e9e914cf5dd959e9.js").then(o=>o.TasksList)},{id:"c-b3518e3c2f",options:{},load:()=>import("./chunks/composer-44516934e5619d32.js").then(o=>o.NewTaskButton)},{id:"c-b8a7a49ce0",options:{},load:()=>import("./chunks/platform-actions-4592c82f72b21b1a.js").then(o=>o.PlatformActions)},{id:"c-bd44f2aae0",Component:s},{id:"c-cffc8b5322",Component:p},{id:"c-d3b8e82f67",Component:c},{id:"c-e51aae6dfc",Component:r},{id:"c-f997c77c27",Component:f}]});m();i()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:I});export{u as mountRoute,L as remountRoute,I as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as e,$0c as d,$0d as a,$0e as p,$0f as f}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as s}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as r}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:g,unmountRoute:u}=t({islands:[{id:"c-30b20a1d70",Component:r},{id:"c-406d056fac",Component:e},{id:"c-5427c4fb35",Component:d},{id:"c-5bc004d6fd",Component:c},{id:"c-6340275418",Component:n},{id:"c-a658f1dd22",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-e9e914cf5dd959e9.js").then(o=>o.TasksList)},{id:"c-b3518e3c2f",options:{},load:()=>import("./chunks/composer-44516934e5619d32.js").then(o=>o.NewTaskButton)},{id:"c-bd44f2aae0",Component:s},{id:"c-cffc8b5322",Component:a},{id:"c-d3b8e82f67",Component:p},{id:"c-f997c77c27",Component:f}]});m();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,g as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as r,$0c as e,$0d as s,$0e as a,$0f as p}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as d}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as m}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:c,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-30b20a1d70",Component:m},{id:"c-406d056fac",Component:r},{id:"c-5427c4fb35",Component:e},{id:"c-5bc004d6fd",Component:f},{id:"c-6340275418",Component:t},{id:"c-a658f1dd22",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-e9e914cf5dd959e9.js").then(l=>l.TasksList)},{id:"c-bd44f2aae0",Component:d},{id:"c-cffc8b5322",Component:s},{id:"c-d3b8e82f67",Component:a},{id:"c-f997c77c27",Component:p}]});i();n()||c();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:c,unmountRoute:u});export{c as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as i,$0c as e,$0d as d,$0e as s,$0f as p}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as a}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as r}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:c,remountRoute:h,unmountRoute:l}=o({islands:[{id:"c-30b20a1d70",Component:r},{id:"c-406d056fac",Component:i},{id:"c-5427c4fb35",Component:e},{id:"c-5bc004d6fd",Component:f},{id:"c-6340275418",Component:n},{id:"c-bd44f2aae0",Component:a},{id:"c-cffc8b5322",Component:d},{id:"c-d3b8e82f67",Component:s},{id:"c-f997c77c27",Component:p}]});m();t()||c();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:c,unmountRoute:l});export{c as mountRoute,h as remountRoute,l as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as e,$0c as r,$0d as d,$0e as s,$0f as p}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as a}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as i}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-30b20a1d70",Component:i},{id:"c-406d056fac",Component:e},{id:"c-5427c4fb35",Component:r},{id:"c-5bc004d6fd",Component:c},{id:"c-6340275418",Component:n},{id:"c-bd44f2aae0",Component:a},{id:"c-cffc8b5322",Component:d},{id:"c-d3b8e82f67",Component:s},{id:"c-ee465865c0",options:{},load:()=>import("./chunks/task-view-0d085ce407e8511e.js").then(l=>l.TaskView)},{id:"c-f997c77c27",Component:p}]});m();t()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as r,$0c as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as d}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as i}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:c,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-11ff156ada",options:{},load:()=>import("./chunks/editor-75d6d2d01f4fc35a.js").then(l=>l.AgentEditor)},{id:"c-30b20a1d70",Component:i},{id:"c-406d056fac",Component:r},{id:"c-5427c4fb35",Component:e},{id:"c-5bc004d6fd",Component:f},{id:"c-6340275418",Component:t},{id:"c-bd44f2aae0",Component:d},{id:"c-cffc8b5322",Component:a},{id:"c-d3b8e82f67",Component:s},{id:"c-f997c77c27",Component:p}]});m();n()||c();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:c,unmountRoute:u});export{c as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as C}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as u,$0c as I,$0d as b,$0e as h,$0f as g}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4b as t,$4g as N}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as p}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$2a as e}from"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as l}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as f}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as c,$0b as d}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import{$1g as s,$1i as m}from"./chunks/shared-init-8f2ac936c95a7f7b.js";function T(){let[_,r]=s(!1),[a,i]=s(!1);m(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),r(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let k=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(t,"1"):localStorage.removeItem(t),o.checked=n,r(n),i(Notification.permission==="denied")};return e("label",{class:"notify",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:_,disabled:a,onChange:o=>void k(o.currentTarget)}),a?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:w,remountRoute:Z,unmountRoute:S}=c({islands:[{id:"c-280e7a69b1",Component:T},{id:"c-30b20a1d70",Component:p},{id:"c-406d056fac",Component:u},{id:"c-5427c4fb35",Component:I},{id:"c-5bc004d6fd",Component:C},{id:"c-6340275418",Component:d},{id:"c-bd44f2aae0",Component:N},{id:"c-cffc8b5322",Component:b},{id:"c-d3b8e82f67",Component:h},{id:"c-f997c77c27",Component:g}]});l();f()||w();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:w,unmountRoute:S});export{w as mountRoute,Z as remountRoute,S as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/composer-8abfcac26339cc99.js";import"./chunks/connect-repositories-8864a63f83ffd411.js";import"./chunks/composer-data-6f7608fed13f3dd7.js";import"./chunks/model-options-15c53331a2f28a4f.js";import"./chunks/select-591ca78b6ae29bd8.js";import"./chunks/task-ddfddeaf07fb684c.js";import"./chunks/card-818c7a0d580e2e0d.js";import"./chunks/field-43fea54c1c287e30.js";import"./chunks/format-b19b8eec331414f4.js";import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as r,$0c as d,$0d as s,$0e as p,$0f as f}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as a}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as m}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as n,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:G,unmountRoute:C}=n({islands:[{id:"c-14da27a2fa",options:{},load:()=>import("./chunks/connect-apps-3e8b55a43315f58a.js").then(o=>o.ConnectApps)},{id:"c-1bf1ad925d",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-1d8f0ec6cf8c797e.js").then(o=>o.AgentsGrid)},{id:"c-30b20a1d70",Component:m},{id:"c-406d056fac",Component:r},{id:"c-5427c4fb35",Component:d},{id:"c-5bc004d6fd",Component:c},{id:"c-6340275418",Component:t},{id:"c-bd44f2aae0",Component:a},{id:"c-cffc8b5322",Component:s},{id:"c-d3b8e82f67",Component:p},{id:"c-f124a71efc",Component:l},{id:"c-f997c77c27",Component:f}]});e();i()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:C});export{u as mountRoute,G as remountRoute,C as unmountRoute};
@@ -1 +0,0 @@
1
- import{$0b as i,$0c as e,$0d as d,$0e as s,$0f as p}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as a}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as r}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:S,unmountRoute:c}=o({islands:[{id:"c-30b20a1d70",Component:r},{id:"c-406d056fac",Component:i},{id:"c-5427c4fb35",Component:e},{id:"c-6340275418",Component:t},{id:"c-bd44f2aae0",Component:a},{id:"c-cffc8b5322",Component:d},{id:"c-d3b8e82f67",Component:s},{id:"c-f997c77c27",Component:p}]});m();n()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:c});export{f as mountRoute,S as remountRoute,c as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as r,$0c as d,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as s}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as m}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:k,unmountRoute:u}=t({islands:[{id:"c-30b20a1d70",Component:m},{id:"c-406d056fac",Component:r},{id:"c-5427c4fb35",Component:d},{id:"c-5bc004d6fd",Component:f},{id:"c-6340275418",Component:n},{id:"c-a658f1dd22",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-e9e914cf5dd959e9.js").then(o=>o.TasksList)},{id:"c-b3518e3c2f",options:{},load:()=>import("./chunks/composer-44516934e5619d32.js").then(o=>o.NewTaskButton)},{id:"c-bd44f2aae0",Component:s},{id:"c-cab44e4628",options:{},load:()=>import("./chunks/agent-settings-form-b1fcd9a5236b1fc7.js").then(o=>o.AgentSettingsForm)},{id:"c-cffc8b5322",Component:a},{id:"c-d3b8e82f67",Component:p},{id:"c-f997c77c27",Component:c}]});e();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/custom-range-e8977f0d9699c1e6.js";import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as d,$0c as e,$0d as a,$0e as p,$0f as f}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as s}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as r}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:G,unmountRoute:C}=t({islands:[{id:"c-05fdd31558",Component:l},{id:"c-30b20a1d70",Component:r},{id:"c-406d056fac",Component:d},{id:"c-5427c4fb35",Component:e},{id:"c-5bc004d6fd",Component:c},{id:"c-6340275418",Component:n},{id:"c-a658f1dd22",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-e9e914cf5dd959e9.js").then(o=>o.TasksList)},{id:"c-b3518e3c2f",options:{},load:()=>import("./chunks/composer-44516934e5619d32.js").then(o=>o.NewTaskButton)},{id:"c-bd44f2aae0",Component:s},{id:"c-cffc8b5322",Component:a},{id:"c-d3b8e82f67",Component:p},{id:"c-f997c77c27",Component:f}]});m();i()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:C});export{u as mountRoute,G as remountRoute,C as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as c}from"./chunks/custom-range-e8977f0d9699c1e6.js";import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as i,$0c as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as d}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as r}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:v,unmountRoute:u}=o({islands:[{id:"c-05fdd31558",Component:c},{id:"c-30b20a1d70",Component:r},{id:"c-406d056fac",Component:i},{id:"c-5427c4fb35",Component:e},{id:"c-5bc004d6fd",Component:f},{id:"c-6340275418",Component:n},{id:"c-bd44f2aae0",Component:d},{id:"c-cffc8b5322",Component:a},{id:"c-d3b8e82f67",Component:s},{id:"c-f997c77c27",Component:p}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,v as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as m,$0c as r,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as s}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as d}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:N,unmountRoute:u}=t({islands:[{id:"c-30b20a1d70",Component:d},{id:"c-406d056fac",Component:m},{id:"c-44573b8cf6",options:{},load:()=>import("./chunks/runners-list-ab64a5fb01d5eef8.js").then(o=>o.RunnersList)},{id:"c-4a6d3e90e8",options:{},load:()=>import("./chunks/mcp-list-735e401c60ab51a3.js").then(o=>o.McpList)},{id:"c-5427c4fb35",Component:r},{id:"c-5bc004d6fd",Component:f},{id:"c-61cb5117cb",options:{},load:()=>import("./chunks/engines-list-2f6b8b3f2e873e4d.js").then(o=>o.EnginesList)},{id:"c-6340275418",Component:n},{id:"c-bd44f2aae0",Component:s},{id:"c-c6fa5eeeda",options:{},load:()=>import("./chunks/credentials-list-518af85578eacf6d.js").then(o=>o.EngineLogins)},{id:"c-cffc8b5322",Component:a},{id:"c-d3b8e82f67",Component:p},{id:"c-dfd140c9ad",options:{},load:()=>import("./chunks/models-list-999f54c76ca31379.js").then(o=>o.ModelsList)},{id:"c-e027c11a27",options:{},load:()=>import("./chunks/credentials-list-518af85578eacf6d.js").then(o=>o.CredentialsList)},{id:"c-f997c77c27",Component:c}]});e();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,N as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0b as e,$0c as m,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-8a34c730aabe942d.js";import{$4g as d}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import{$6a as r}from"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-8a34c730aabe942d.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as s}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:v,unmountRoute:u}=t({islands:[{id:"c-30b20a1d70",Component:r},{id:"c-406d056fac",Component:e},{id:"c-5427c4fb35",Component:m},{id:"c-5bc004d6fd",Component:f},{id:"c-6340275418",Component:n},{id:"c-688c42774c",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-875a9a0ebb3f7d08.js").then(o=>o.VersionsList)},{id:"c-a658f1dd22",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-e9e914cf5dd959e9.js").then(o=>o.TasksList)},{id:"c-b3518e3c2f",options:{},load:()=>import("./chunks/composer-44516934e5619d32.js").then(o=>o.NewTaskButton)},{id:"c-bd44f2aae0",Component:d},{id:"c-cb3ba23104",options:{},load:()=>import("./chunks/instructions-f3ecfb5c50f270c2.js").then(o=>o.Instructions)},{id:"c-cffc8b5322",Component:a},{id:"c-d3b8e82f67",Component:p},{id:"c-f997c77c27",Component:c}]});s();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,v as remountRoute,u as unmountRoute};