@wular/coder 0.5.0 → 0.5.1

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 (266) hide show
  1. package/dist/{actions-CkMAM1Km.js → actions-DO8MvHwc.js} +2 -2
  2. package/dist/{agent-Bi5nbUhA.js → agent-Cgala63h.js} +1 -1
  3. package/dist/{app-server-BTpa5GBV.js → app-server-dnlLhhZb.js} +1 -1
  4. package/dist/{approvals-CRwkc9vB.js → approvals-C8XV7CK2.js} +1 -1
  5. package/dist/apps-BORri-28.js +18 -0
  6. package/dist/async-BS9tyhva.js +3 -0
  7. package/dist/{auth-oCvlHitk.js → auth-C16ylySv.js} +1 -1
  8. package/dist/builtin/coder/system.md +6 -3
  9. package/dist/{chat-4AiZEqKh.js → chat-czruXAt3.js} +1 -1
  10. package/dist/cli.js +3 -3
  11. package/dist/{cmd-Cu3OquA_.js → cmd-C1gHyVG7.js} +34 -34
  12. package/dist/{config-D_RuO6gX.js → config-_32PHl9g.js} +1 -1
  13. package/dist/{connection-BXjn7gCC.js → connection-CgA5_NJ7.js} +1 -1
  14. package/dist/{connections-Cswv7r8Z.js → connections-B90TemYf.js} +1 -1
  15. package/dist/{context-CFrDYenS.js → context-C1XBbfEL.js} +1 -1
  16. package/dist/dash/standalone/server/build-index.json +1 -1
  17. package/dist/dash/standalone/server/manifest.json +1391 -1391
  18. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.54c45900f2153d34.js → index.91e126d7a389d4bd.js} +0 -3
  19. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.252f972b42c690e2.js → load.858c062c7891a2c1.js} +2 -2
  20. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.11efd0e175db9053.js → page.9375ab741dc9791e.js} +3 -3
  21. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.59ae138dc182d7c3.js → notify.c36570a56d279ce2.js} +1 -1
  22. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.e9386951cedea737.js → page.13fdd9cc55ad3a52.js} +3 -3
  23. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.713d3ec10951fde5.js → sign-out.38a7f39cddc670f7.js} +1 -1
  24. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.f989d6f2d9ece6e4.js → agents-grid.2385ffa8fdad08d6.js} +1 -1
  25. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.0f88720e52db99a2.js → page.5ca6921e50484f8c.js} +6 -6
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.8d2f0997462fc958.js → layout.afc4a8a5a8360975.js} +7 -7
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.bc93891522c8120d.js → page.ba65063a1aa99a62.js} +7 -7
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.cf5cf9afe38ab0e4.js → page.03c5e72b0fe50ba9.js} +11 -11
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.c44c7df7841719f2.js → platform-actions.7c8c75bd0c05df4a.js} +3 -3
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-step.6e90cbfe308f28a0.js → platform-step.d6a980d1181dc940.js} +1 -1
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.61de585104c2be10.js → agent-settings-form.b5299f5130a4e8af.js} +16 -17
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.4d06f759984a63b3.js → page.fad77cea17947d47.js} +8 -9
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.ea2925eab1d2e594.js → loading.4120e6979eaed441.js} +1 -1
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.fb069bf82b727d27.js → page.474b3524d5ea53b7.js} +1 -1
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.0a472a0e269b8c01.js → page.7868a07efcaa26f4.js} +3 -3
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.7ef7dfd5d8f5de43.js → versions-list.ba93a53773cab8a8.js} +1 -1
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.007326a04f05d46c.js → loading.6e53829bd1f3021d.js} +1 -1
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.a26aa7bc6ab655f0.js → page.5798ede8ba8ace97.js} +6 -6
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{app-cards.361918fe58349aa1.js → app-cards.55778a4b3177846d.js} +2 -2
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{page.3f60cf67517d0d31.js → page.ce391cad0d78795f.js} +3 -3
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.ffbf9a8b8b2fbde7.js → agent-toggle.0cec822c6099f058.js} +2 -2
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.0ae015a4fbe6321e.js → hero.7151c467e7ecf6a5.js} +1 -1
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.9abe365f0098d358.js → connect-repositories.4e121d31ed0cfe02.js} +1 -1
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.6548f8f757578f90.js → editor.f314d92af0bb33b0.js} +8 -8
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.577b1d84c7ab84e1.js → import-picker.11028d5329ad537b.js} +3 -3
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.2b326d00ccef5544.js → page.1476d31e4554e88b.js} +4 -4
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.45a09107b19f0a7e.js → layout.150d950d191db477.js} +3 -3
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.f8d679f2d06b0ebc.js → operator-apps.3e72de86b86a7338.js} +6 -6
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.5aa3ddc669366703.js → page.6a4be3b1a473ff8c.js} +5 -5
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.5a5188f0fc75dcd2.js → page.262ed73437c17872.js} +1 -1
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{advanced-list.73cdadb2968a39d2.js → advanced-list.7180570379e2625c.js} +1 -1
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connection-add.353ec01fbb814f78.js → connection-add.632b1847c16ecd42.js} +4 -4
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.cf4061ae909272c3.js → connections-list.4378ae707b2092ed.js} +5 -5
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.fc4cff0289267551.js → credentials-list.e47897acb6867df8.js} +4 -4
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.db01de2581ac65f3.js → credentials.6bd06f96afbe7329.js} +8 -8
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.e7d6a422f6a869ea.js → list.38e70272eeb98cd0.js} +3 -3
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.acb92b39cab1d11c.js → models-list.a08cd37d0f7ff86c.js} +6 -6
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.95fe939e36e5be55.js → page.f096b5a9ac419326.js} +13 -13
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.5764eac3307d67cc.js → runners-list.0df1f9329df1b67d.js} +6 -6
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.d316bb157f747f6c.js → secrets-list.6d2f56fa7d6fcab0.js} +4 -4
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.4eb70f2de8674f93.js → layout.0fd865c865e5bab4.js} +1 -1
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-options.dc630cb6e2cbf83a.js → model-options.0d6077fe68db3af9.js} +2 -5
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-pick.a143e77f5ed5f9d3.js → model-pick.695538b2edf9dd15.js} +1 -1
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.70cad0e981c33fa5.js → page.c57b81c2197cce0f.js} +1 -1
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.18bd2b92cd23b73f.js → create-link.60aadbe43ea1e39c.js} +3 -3
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-toast.95f7be49430248eb.js → outcome-toast.e2b9ef0344b1a1a2.js} +1 -1
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.e39ee9236664d043.js → page.c456ad99c8a9f875.js} +4 -4
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.441e82ab00344fb2.js → activity.2ec05d78d609b7b2.js} +1 -1
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.24e121ea6eb578ba.js → page.578be2f6c89fcba0.js} +6 -6
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.4a4052a38db4bad3.js → task-actions.d131453dd2a423c3.js} +4 -4
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.0cd3ec2655f44cc7.js → task-view.3d72a4ecd2b3826e.js} +7 -53
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.73225456d60d63e3.js → composer-data.c16854be11a561e4.js} +1 -1
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.ee326fbf5e526fb1.js → composer.97be3e67214889c1.js} +24 -82
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{pending-approvals.7607998094780fdd.js → pending-approvals.9175908da02960e1.js} +1 -1
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.e486cbd16ea3e963.js → tasks-list.028798c79227a366.js} +8 -8
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.01510523d1556d59.js → tasks-section.9a9d13057b326f25.js} +4 -4
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.ede64f82388f9480.js → page.045c6db0c56975b2.js} +3 -3
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.0499098badd3f5f8.js → page.938d29ff7edb678d.js} +2 -2
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.e3800e736f832124.js → stream.2cdb8eabd8f6df70.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.3b7eeee29fc327de.js → task-toasts.8733901ca0e4c246.js} +1 -1
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.f22057e7dfac40fe.js → action.56cea462eb725c39.js} +1 -1
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.c8d7efefb6194d7d.js → client.685154f230716834.js} +1 -1
  83. package/dist/dash/standalone/static/assets/chunks/{advanced-list-850a950afe4f6996.js → advanced-list-b75a9c2bd11026de.js} +1 -1
  84. package/dist/dash/standalone/static/assets/chunks/{agent-pills-9f6fa120182db948.js → agent-pills-54564413a57d7fa7.js} +1 -1
  85. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-55d294dad2ce5a0d.js +1 -0
  86. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-521136f20a71400d.js → agent-toggle-b5dcc4ea6292fb3d.js} +1 -1
  87. package/dist/dash/standalone/static/assets/chunks/{agents-grid-bcd13cd7a46224a6.js → agents-grid-69461c53abbba433.js} +1 -1
  88. package/dist/dash/standalone/static/assets/chunks/{back-2d67134b122334f4.js → back-ba5e4340a9f8bbd2.js} +1 -1
  89. package/dist/dash/standalone/static/assets/chunks/{chain-hint-53675e299a865420.js → chain-hint-491eb09a20a15702.js} +1 -1
  90. package/dist/dash/standalone/static/assets/chunks/{combo-cb2c62fe580a8903.js → combo-6df61e8a1cc31037.js} +1 -1
  91. package/dist/dash/standalone/static/assets/chunks/composer-198b844da57b82a3.js +1 -0
  92. package/dist/dash/standalone/static/assets/chunks/composer-b26a3332a1243461.js +1 -0
  93. package/dist/dash/standalone/static/assets/chunks/{composer-data-890f71bade4f0616.js → composer-data-b05f3d93fdc472d7.js} +1 -1
  94. package/dist/dash/standalone/static/assets/chunks/{confirm-d6b2c5b1deccd1e8.js → confirm-14d018653fbe50fc.js} +1 -1
  95. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-226bf70aa81c29d8.js → connect-repositories-5118edc019fc7890.js} +1 -1
  96. package/dist/dash/standalone/static/assets/chunks/{connections-list-a33d6637e2d52fcf.js → connections-list-5412dad7e0def52f.js} +1 -1
  97. package/dist/dash/standalone/static/assets/chunks/{copy-294c6052b3b69424.js → copy-04781f9af4e10f06.js} +1 -1
  98. package/dist/dash/standalone/static/assets/chunks/create-link-0651addf1461f901.js +1 -0
  99. package/dist/dash/standalone/static/assets/chunks/{credentials-list-90fc1c6d202e1461.js → credentials-list-e64c973aee5602d3.js} +1 -1
  100. package/dist/dash/standalone/static/assets/chunks/{custom-range-efa1b6a71ba84597.js → custom-range-b6919bab9846ebf7.js} +1 -1
  101. package/dist/dash/standalone/static/assets/chunks/{editor-53a3e1a893644fff.js → editor-68e9ccd1764fc512.js} +3 -3
  102. package/dist/dash/standalone/static/assets/chunks/{field-4d374d5ed3f43d7e.js → field-adcb6e6a5f9b7131.js} +1 -1
  103. package/dist/dash/standalone/static/assets/chunks/instructions-0022dd3bdd57c13f.js +1 -0
  104. package/dist/dash/standalone/static/assets/chunks/{instructions-d3dc01b2f90820db.js → instructions-7b274685ceb26457.js} +1 -1
  105. package/dist/dash/standalone/static/assets/chunks/{list-16247e39898cd20e.js → list-662f042656857c82.js} +1 -1
  106. package/dist/dash/standalone/static/assets/chunks/model-options-5e07b3318d69d218.js +1 -0
  107. package/dist/dash/standalone/static/assets/chunks/{models-list-6d93523660503dfb.js → models-list-ae1e2eff30d21824.js} +1 -1
  108. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-546fe090efc129c2.js +1 -0
  109. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-755fc581cbc2836e.js → outcome-dialog-fd86ded4c44c2de7.js} +1 -1
  110. package/dist/dash/standalone/static/assets/chunks/outcome-toast-c00becdb638cd9a8.js +1 -0
  111. package/dist/dash/standalone/static/assets/chunks/platform-actions-2be223e68e648134.js +1 -0
  112. package/dist/dash/standalone/static/assets/chunks/{platform-actions-08e9b3816dcd62b1.js → platform-actions-f3979ab69a6ceb53.js} +1 -1
  113. package/dist/dash/standalone/static/assets/chunks/{platform-step-5881a8be1e761e00.js → platform-step-5454b6c0a19caefd.js} +1 -1
  114. package/dist/dash/standalone/static/assets/chunks/platform-step-9a52703f4c4f6a31.js +1 -0
  115. package/dist/dash/standalone/static/assets/chunks/{runners-list-dd759d408c643a29.js → runners-list-20d42f19fb4bec8a.js} +1 -1
  116. package/dist/dash/standalone/static/assets/chunks/{runtime-9b28886f3cbe0ed3-1.js → runtime-3fcac605fffcc273-1.js} +1 -1
  117. package/dist/dash/standalone/static/assets/chunks/{secrets-list-be1f634a1b077baa.js → secrets-list-89f89ee70edb3856.js} +1 -1
  118. package/dist/dash/standalone/static/assets/chunks/{segmented-f646bfa8aa0aa449.js → segmented-66a8c77c6294fec3.js} +1 -1
  119. package/dist/dash/standalone/static/assets/chunks/shared-init-3fcac605fffcc273-2.js +1 -0
  120. package/dist/dash/standalone/static/assets/chunks/{shared-init-953965859f7bf6b9.js → shared-init-96225b8c7758de9d.js} +1 -1
  121. package/dist/dash/standalone/static/assets/chunks/shared-init-96cde32cd50254c0.js +1 -0
  122. package/dist/dash/standalone/static/assets/chunks/shared-init-abd7653140f37a0c.js +9 -0
  123. package/dist/dash/standalone/static/assets/chunks/side-toggle-8a410cc6d6bd9b1d.js +1 -0
  124. package/dist/dash/standalone/static/assets/chunks/{tail-d13c4cc0cf11ffd1.js → tail-40f16e09eade7eee.js} +1 -1
  125. package/dist/dash/standalone/static/assets/chunks/{task-423e6a3f2527f534.js → task-396d849e58e50d59.js} +1 -1
  126. package/dist/dash/standalone/static/assets/chunks/{task-actions-5917357eac6504ca.js → task-actions-0b3054dc0f8d17c0.js} +1 -1
  127. package/dist/dash/standalone/static/assets/chunks/task-view-9e026dc5da58af5b.js +3 -0
  128. package/dist/dash/standalone/static/assets/chunks/{tasks-list-2c5ce592e00fda45.js → tasks-list-04c6568d7f7237b7.js} +1 -1
  129. package/dist/dash/standalone/static/assets/chunks/{versions-list-177ae397ad64dcea.js → versions-list-ceb756236e69b761.js} +1 -1
  130. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-9b28886f3cbe0ed3-0.js → wular-pnext-3fcac605fffcc273-0.js} +1 -1
  131. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-00243b34eb094b95.css → dash-param-org-agents-param-slug-dd4ac319a0d62432.css} +1 -1
  132. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-settings-9f8faa8f7d714699.css → dash-param-org-agents-param-slug-platforms-9d2e1439f3f7e81b.css} +1 -1
  133. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-usage-0e037c66e3977f33.css → dash-param-org-agents-param-slug-settings-f21d4fcd3948139b.css} +1 -1
  134. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-tasks-129adcdc293ceac8.css → dash-param-org-agents-param-slug-tasks-c8d6aa06f6e75f4c.css} +1 -1
  135. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-9cc128ba8af6ef62.css +1 -0
  136. package/dist/dash/standalone/static/assets/{dash-param-org-tasks-8a44e171984d32a1.css → dash-param-org-tasks-be3cb3d64573f3d9.css} +1 -1
  137. package/dist/dash/standalone/static/assets/{dash-param-org-tasks-param-id-b9d3a7a1bd1dd666.css → dash-param-org-tasks-param-id-c20a0537bc82620d.css} +1 -1
  138. package/dist/dash/standalone/static/assets/pnext-client-07b41bfab64b61c0.js +1 -0
  139. package/dist/dash/standalone/static/assets/pnext-client-0d388d56250f9f46.js +1 -0
  140. package/dist/dash/standalone/static/assets/pnext-client-1443e45181b60bb0.js +1 -0
  141. package/dist/dash/standalone/static/assets/pnext-client-27207e4f43f9a21b.js +1 -0
  142. package/dist/dash/standalone/static/assets/{pnext-client-7ecbd7a0cbe4e231.js → pnext-client-435db60553fa3a67.js} +1 -1
  143. package/dist/dash/standalone/static/assets/pnext-client-523dd4071aa294ba.js +1 -0
  144. package/dist/dash/standalone/static/assets/pnext-client-5f6bda3919f68382.js +1 -0
  145. package/dist/dash/standalone/static/assets/pnext-client-684fd8ad16563ed3.js +1 -0
  146. package/dist/dash/standalone/static/assets/pnext-client-6b952cdda9a1eb2b.js +1 -0
  147. package/dist/dash/standalone/static/assets/pnext-client-6fe9e98f7dd8dcbf.js +1 -0
  148. package/dist/dash/standalone/static/assets/pnext-client-730c2c507a159f9e.js +1 -0
  149. package/dist/dash/standalone/static/assets/pnext-client-7c46573e45b67166.js +1 -0
  150. package/dist/dash/standalone/static/assets/pnext-client-83a865c3d75705bd.js +1 -0
  151. package/dist/dash/standalone/static/assets/pnext-client-907d1db4fb398a1d.js +1 -0
  152. package/dist/dash/standalone/static/assets/pnext-client-9baf701f3e641d09.js +1 -0
  153. package/dist/dash/standalone/static/assets/pnext-client-a57705e4e1047a9e.js +1 -0
  154. package/dist/dash/standalone/static/assets/{pnext-client-ed31510d4615a5a5.js → pnext-client-b1af82c6f0db0033.js} +1 -1
  155. package/dist/dash/standalone/static/assets/pnext-client-cede3bd7b2735942.js +1 -0
  156. package/dist/dash/standalone/static/assets/pnext-client-d9a3996f22b6816b.js +1 -0
  157. package/dist/dash/standalone/static/assets/pnext-client-f95364a0073ca4ce.js +1 -0
  158. package/dist/{definition-4on4SG5J.js → definition-D0OpQfGX.js} +1 -1
  159. package/dist/{discover-DvzAbQvU.js → discover-BfYHHJN_.js} +1 -1
  160. package/dist/{dispatch-BaW2X6Sc.js → dispatch-BkoIU4GU.js} +2 -2
  161. package/dist/{docs-CbgaMPvq.js → docs-CxklYa3P.js} +1 -1
  162. package/dist/{drive-Tk6JvQK5.js → drive-B7SBFfcb.js} +1 -1
  163. package/dist/env-BwFCHakK.js +1 -0
  164. package/dist/{exec-CAaYFJD1.js → exec-D9jF2F-H.js} +2 -2
  165. package/dist/{executor-Chc0zawh.js → executor-DBW7R7Tf.js} +6 -6
  166. package/dist/flow/builtin/review/index.d.ts +2 -2
  167. package/dist/flow/builtin/review/index.js +10 -15
  168. package/dist/flow/index.d.ts +2 -2
  169. package/dist/flow/index.js +1 -1
  170. package/dist/{hook-COWDSO4a.js → hook-DN__zYOG.js} +1 -1
  171. package/dist/{index-ezhbF5wC.d.ts → index-CTAQrCRU.d.ts} +71 -66
  172. package/dist/integrations-DSZSa8Rc.js +9 -0
  173. package/dist/lib/broker.js +1 -1
  174. package/dist/{load-PqaDHiHX.js → load-BtIDghgd.js} +2 -2
  175. package/dist/{local-BzZuOwgI.js → local-BzMvgiwL.js} +1 -1
  176. package/dist/{local-BMGcCk8N.js → local-GIxwz_Or.js} +1 -1
  177. package/dist/{login-BDKTNynK.js → login-LlZrIlxb.js} +1 -1
  178. package/dist/maintenance-DyiyHI8S.js +1 -0
  179. package/dist/{mcp-BGam3G_B.js → mcp-Caq72REF.js} +1 -1
  180. package/dist/{mcp-BNz_l5TV2.js → mcp-CrtKQoVi.js} +1 -1
  181. package/dist/{mcp-BGx48pyR.js → mcp-cEIva8Pd.js} +6 -4
  182. package/dist/{models-D1NXi6ni.js → models-BVxs3I8o.js} +1 -1
  183. package/dist/{permission-BkYxjiFR.js → permission-RSZM3DUk.js} +1 -1
  184. package/dist/post-DLenID75.js +11 -0
  185. package/dist/{refresh-yfEi5SQs.js → refresh-CWEpTAkD.js} +1 -1
  186. package/dist/{remote-rArUa01V.js → remote-BDMuKaON.js} +1 -1
  187. package/dist/{remote-BbXx6S9P.js → remote-CY-qYX2C.js} +1 -1
  188. package/dist/{runner-DG9jrX5H.js → runner-CKMOh5Q3.js} +1 -1
  189. package/dist/runner.json +1 -1
  190. package/dist/runner.tgz +0 -0
  191. package/dist/schema.js +1 -1
  192. package/dist/sdk.d.ts +15 -45
  193. package/dist/sdk.js +1 -1
  194. package/dist/serve-D23JqDip.js +12 -0
  195. package/dist/{serve-B-5rDiZm.js → serve-YlU04KO7.js} +1 -1
  196. package/dist/{session-Dtje9y-r.js → session-D7eeJIaH.js} +1 -1
  197. package/dist/{sessions-DIz9fyRN.js → sessions-BGUfSe8L.js} +1 -1
  198. package/dist/{shared--aE4olIO.js → shared-BzNReirj.js} +1 -1
  199. package/dist/{sign-in-wWkyaq5X.js → sign-in-Dr6sU7vz.js} +2 -2
  200. package/dist/{state-Br-Fuaxg.js → state-CxAUec80.js} +1 -1
  201. package/dist/store-BrnWdtRw.js +349 -0
  202. package/dist/{task-CFt85vTy.js → task-CyqtCXo3.js} +1 -1
  203. package/dist/task-DN4assR8.js +7 -0
  204. package/dist/{tool-search-BkdgVolu.js → tool-search-C9Ty3hhL.js} +1 -1
  205. package/dist/{tools-DNgEptor.js → tools-Ck-ZWtmB.js} +1 -1
  206. package/dist/{tools-oQvFAnh5.js → tools-DVtBtED6.js} +1 -1
  207. package/dist/{tools-search-D1zArRyJ.js → tools-search-BNDea9vZ.js} +1 -1
  208. package/dist/{turn-Cc-v-eSy.js → turn-eI4iRPsq.js} +1 -1
  209. package/dist/{update-check-UyRob3yy.js → update-check-Bap3dwaj.js} +1 -1
  210. package/dist/{views-3TxH367C.js → views-Bxm_5J6T.js} +1 -1
  211. package/dist/{worker-BMuKKiIa.js → worker-DJANNSCT.js} +1 -1
  212. package/dist/worker-DeuC38Vp.js +7 -0
  213. package/docs/agents/coder.md +1 -1
  214. package/docs/cli/index.md +5 -3
  215. package/docs/connections.md +1 -1
  216. package/docs/flows.md +1 -1
  217. package/docs/review.md +36 -8
  218. package/docs/self-host.md +2 -1
  219. package/package.json +1 -1
  220. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  221. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  222. package/dist/apps-B6mUToTa.js +0 -18
  223. package/dist/async-CNhQ4wyZ.js +0 -3
  224. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-a8ee12513a02b1c5.js +0 -1
  225. package/dist/dash/standalone/static/assets/chunks/composer-4a46a458495ce3ba.js +0 -1
  226. package/dist/dash/standalone/static/assets/chunks/composer-92553de43276510b.js +0 -1
  227. package/dist/dash/standalone/static/assets/chunks/create-link-b2480a7601967e94.js +0 -1
  228. package/dist/dash/standalone/static/assets/chunks/instructions-734d21dfb8f6393e.js +0 -1
  229. package/dist/dash/standalone/static/assets/chunks/model-options-d29e934a3de20ab4.js +0 -1
  230. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-77e13c848000a3dc.js +0 -1
  231. package/dist/dash/standalone/static/assets/chunks/outcome-toast-9d5e9713c23882f5.js +0 -1
  232. package/dist/dash/standalone/static/assets/chunks/platform-actions-832904f5694ef902.js +0 -1
  233. package/dist/dash/standalone/static/assets/chunks/platform-step-29469fd4eaddc42a.js +0 -1
  234. package/dist/dash/standalone/static/assets/chunks/shared-init-926144b364908b3c.js +0 -9
  235. package/dist/dash/standalone/static/assets/chunks/shared-init-9b28886f3cbe0ed3-2.js +0 -1
  236. package/dist/dash/standalone/static/assets/chunks/shared-init-b42d2c06c25d1e2b.js +0 -1
  237. package/dist/dash/standalone/static/assets/chunks/side-toggle-8c21d39a1e284887.js +0 -1
  238. package/dist/dash/standalone/static/assets/chunks/task-view-c6ee43d2ddb6db90.js +0 -3
  239. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-25ae07e0b3f5b252.css +0 -1
  240. package/dist/dash/standalone/static/assets/pnext-client-095026242a079175.js +0 -1
  241. package/dist/dash/standalone/static/assets/pnext-client-1dfeb8c3ef155f87.js +0 -1
  242. package/dist/dash/standalone/static/assets/pnext-client-2358423351524403.js +0 -1
  243. package/dist/dash/standalone/static/assets/pnext-client-28a6557216627768.js +0 -1
  244. package/dist/dash/standalone/static/assets/pnext-client-31a4ee73945fee19.js +0 -1
  245. package/dist/dash/standalone/static/assets/pnext-client-3dfdc76bb8712b82.js +0 -1
  246. package/dist/dash/standalone/static/assets/pnext-client-4355ac87961d78c1.js +0 -1
  247. package/dist/dash/standalone/static/assets/pnext-client-43c7a0046572e0c9.js +0 -1
  248. package/dist/dash/standalone/static/assets/pnext-client-53dc7db68d67e0b1.js +0 -1
  249. package/dist/dash/standalone/static/assets/pnext-client-5835cb35488bdf7f.js +0 -1
  250. package/dist/dash/standalone/static/assets/pnext-client-638b390bc23ab1ae.js +0 -1
  251. package/dist/dash/standalone/static/assets/pnext-client-67f832c6c51a66cd.js +0 -1
  252. package/dist/dash/standalone/static/assets/pnext-client-6fc99f0abe77c2ea.js +0 -1
  253. package/dist/dash/standalone/static/assets/pnext-client-7d99965f28ac7604.js +0 -1
  254. package/dist/dash/standalone/static/assets/pnext-client-8250bd3b86d038a3.js +0 -1
  255. package/dist/dash/standalone/static/assets/pnext-client-bfd06805a43c6dee.js +0 -1
  256. package/dist/dash/standalone/static/assets/pnext-client-ce2943f17e9d9ac3.js +0 -1
  257. package/dist/dash/standalone/static/assets/pnext-client-f0496bf51e161ddd.js +0 -1
  258. package/dist/env-_AxrvBXP.js +0 -1
  259. package/dist/integrations-BVmsk64f.js +0 -9
  260. package/dist/maintenance-d43Ml540.js +0 -1
  261. package/dist/serve-CvnrGAj7.js +0 -12
  262. package/dist/store-CzQLgCzt.js +0 -352
  263. package/dist/task-N0qhnKpK.js +0 -7
  264. package/dist/worker-CIHY9L42.js +0 -7
  265. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{types.5bf5a41cedb54154.js → types.9d22123d6296f5af.js} +0 -0
  266. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.aae9fa481b9015d1.css.pnext-asset.js → task-view.440367ae07204ee7.css.pnext-asset.js} +0 -0
@@ -1 +0,0 @@
1
- .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:12;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side-main{display:grid;gap:16px}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n,.side nav .dot{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}button.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .create .btn{gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .side nav .dot{position:absolute;top:8px;right:8px}.side-min .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){button.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.menu>.pop{min-width:max(260px,anchor-size(width));position-try-fallbacks:flip-inline}.more>.more-list{position-try-fallbacks:flip-block}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}.menu>.pop.flip{inset:auto auto anchor(top) anchor(left);margin:0 0 8px}.menu.right>.pop.flip{inset:auto anchor(right) anchor(top) auto}.menu.up>.pop.flip{inset:anchor(bottom) anchor(right) auto anchor(left);margin:8px 0 0}}.pop{z-index:40;min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled,.pop-item[aria-disabled=true]{cursor:default}.pop-item:disabled:hover,.pop-item[aria-disabled=true]:hover{background:none}.pop-item small{display:block;color:var(--muted);font-size:11.5px}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small{color:var(--muted);font-size:11.5px}.pop-row{display:flex;align-items:center}.pop-row>.pop-item{flex:1 1 auto}.pop-row>.pop-item small{margin-right:6px;color:var(--muted);font-size:11px}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more.info>button{display:inline-flex;padding:0;border:0;color:var(--muted);vertical-align:middle}.more.info .ic{width:14px;height:14px}.more.info>.more-list{max-width:280px;padding:10px 12px;gap:6px;color:var(--fg);font-size:13px;letter-spacing:normal;text-align:left}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}.more-list>:not(.pf-row,p){padding:4px 6px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){button.only-m{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 14px;border:1px solid var(--deep);background:var(--deep);color:#fff;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;white-space:nowrap;cursor:pointer}.btn:hover{filter:brightness(1.12)}.btn.outline{background:transparent;color:var(--fg);border-color:var(--line2)}.btn.outline:hover,.btn.ghost:hover{background:var(--wash);filter:none}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg)}.btn.secondary{background:var(--wash2);border-color:transparent;color:var(--fg)}.btn.secondary:hover{background:var(--line2);filter:none}.btn.danger{background:light-dark(#c92a2a,#d42f2f);border-color:light-dark(#c92a2a,#d42f2f);color:#fff}.btn.secondary.danger{background:var(--badbg);border-color:transparent;color:var(--bad)}.btn.secondary.danger:is(:hover,:focus-visible){background:light-dark(rgba(224,49,49,.18),rgba(224,49,49,.3))}.btn.outline.danger{background:transparent;border-color:var(--line2);color:var(--bad)}.btn.ghost.danger{background:transparent;border-color:transparent;color:var(--fg)}.btn:is(.outline,.ghost).danger:is(:hover,:focus-visible){background:var(--badbg);color:var(--bad)}.btn.sm{height:28px;padding:0 10px;font-size:10px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn:disabled:not(.outline,.ghost,.secondary,.danger){background:light-dark(var(--deep),var(--line2));border-color:light-dark(var(--deep),transparent)}.btn-spin{flex:none;width:12px;height:12px;margin:2px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.btn[aria-busy=true]:not(:has(>.btn-spin)){position:relative;-webkit-text-fill-color:transparent}.btn[aria-busy=true]:not(:has(>.btn-spin)):after{content:"";position:absolute;inset:0;width:12px;height:12px;margin:auto;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:0;background:none;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--fg);background:var(--wash)}td .btn,td .icon-btn{height:28px;margin-block:-3px -5px;vertical-align:top}td .icon-btn{width:28px}.bar-r .icon-btn{width:28px;height:28px}.toasts{position:fixed;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(420px,calc(100vw - 32px));height:auto;inset:16px 16px 16px auto;margin:0;padding:0;border:0;background:none;color:inherit;overflow:visible;pointer-events:none}.toast{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;animation:toast-in .15s ease-out}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none}a.toast-title:hover{text-decoration:underline}.toast-head .icon-btn{width:24px;height:24px;margin:-4px -8px -4px 0}.toast-head .icon-btn:hover{background:var(--wash2)}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast:is(.success,.warning,.error){border-top:3px solid var(--tone)}.toast.success{--tone: var(--ok)}.toast.warning{--tone: var(--warn)}.toast.error{--tone: var(--bad)}.toast.error .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.bad{border-color:transparent;background:var(--badbg);color:var(--bad)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin:-10px -40px 0;padding:10px 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck>div:first-child:has(>.back,>*>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{align-items:center;gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn);background:linear-gradient(var(--warnbg),var(--warnbg)),var(--panel)}.card.danger{border-color:var(--bad)}.fold>summary{list-style:none;cursor:pointer}.fold>summary::-webkit-details-marker{display:none}.fold:not([open])>summary{border-bottom:0}.fold>summary h2{flex:0 0 auto}.fold-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.fold>summary:hover{background:var(--wash)}.fold>summary:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}.fold>summary .btn{pointer-events:none}.fold[open]>summary .fold-open,.fold:not([open])>summary .fold-close{display:none}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.empty .actions{justify-content:center;margin-top:10px}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading.late>span{animation-delay:.3s}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}.card.frame.filled{border-color:transparent;background:var(--surface)}.filter-chips{display:flex;flex:1 1 0;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.filters:has(>.filter-chips)>.search{flex-grow:1000}.head.tools .filter-chips{order:-1}.head.tools .filter-chips>:first-child{margin-left:auto}.filter-chips .chip{display:inline-flex;flex:none;align-items:center;gap:4px;max-width:200px}.filter-chips .chip .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chips .chip .ic{width:12px;height:12px}.filter-more>.pop:popover-open{display:block;width:min(260px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:auto;padding:6px}.filter-more .pop-label:not(:first-child){margin-top:10px}.filter-more .pop-item{width:100%;min-height:30px;font-size:12px}.field-btn{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 12px;border:1px solid var(--line2);background:var(--field);white-space:nowrap;cursor:pointer}.field-btn:focus-visible,.field-btn:has(+.pop:popover-open){outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.field-btn:disabled{color:var(--muted);cursor:default}.filter-more>.field-btn.on{color:var(--acc)}.filter-panel .pop-item>.brand-icon{width:16px;height:16px}.filter-panel [data-facet]{color:var(--muted)}.filter-panel .search{margin:4px 0 6px}.filter-panel .search input{width:100%}@media(max-width:760px){.head.tools .filter-chips{order:0}.head.tools .filter-chips>:first-child{margin-left:0}}.head.tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-height:36px}.head.tools>div:first-child{display:contents}.head.tools .lead{grid-row:2;grid-column:1 / -1}.head.tools>.filters{grid-row:1;grid-column:2;justify-content:flex-end}.head.tools>.filters:last-child{grid-column:2 / -1}.head.tools>.actions{grid-row:1;grid-column:3}.page{container-type:inline-size}@container (max-width: 720px){.head.tools:has(>.actions)>.filters{grid-row:auto;grid-column:1 / -1;justify-content:flex-start}.head.tools:has(>.actions) .search{max-width:none}}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;display:block}.tab-body .filters{position:sticky;top:calc(56px + var(--head, 0px) + var(--tabs, 0px));z-index:8;margin-block:-8px;padding-block:8px;background:var(--bg)}.filters .search{flex:1 1 240px;max-width:360px}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}label.search input[type=search]{padding-left:32px}.filters .select{flex:none}.filters .end{margin-left:auto}.vsearch .search{width:min(280px,100%)}@media(max-width:760px){.head.tools{grid-template-columns:minmax(0,1fr) auto;row-gap:12px}.head.tools>.filters{grid-row:3;grid-column:1 / -1}.head.tools>.actions{grid-column:2;width:auto}.filters .search{max-width:none}.filters:has(>.filter-chips:not(:empty)) .search{flex-basis:100%}.filters .filter-more{margin-left:auto}.filters .select{flex:1 1 0}.filters .select>button{gap:4px;padding-inline:8px}.head.tools.stuck>.filters>.select{display:none}}.select{position:relative;display:inline-flex;min-width:0}.field .select{display:flex}.select>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}.select>button .grow{overflow:hidden;text-overflow:ellipsis}.select>button .ic{color:var(--dim);transition:transform .15s}.select>button[aria-expanded=true] .ic{transform:rotate(180deg)}.select>button:focus-visible,.select>button[aria-expanded=true]{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.select>button:disabled{color:var(--muted);cursor:default}.select-pop{min-width:0;max-width:min(440px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.select-pop .pop-item{white-space:nowrap}.select-pop .pop-item:hover{background:none}.select-pop .pop-item.on{background:var(--wash2)}.select-pop .pop-item>.ic{visibility:hidden}.select-pop .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.select>button:disabled{opacity:.65;cursor:default}.select-pop .pop-item small{display:block;overflow:hidden;direction:rtl;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--muted)}.select-pop .pop-item .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}.select-pop .pop-item.action{margin-top:4px;color:var(--muted)}.select-pop .pop-item.action>.ic{visibility:visible;width:14px;height:14px}.select-pop .pop-item.action.on{color:var(--fg)}.select .brand-icon,.select-pop .brand-icon{flex:none;width:14px;height:14px}dialog.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;border:3px solid light-dark(rgba(11,12,16,.3),rgba(255,255,255,.15));background:var(--tile);color:inherit;text-align:left;white-space:normal}dialog.modal:focus-visible{outline:none}dialog.modal::backdrop{background:light-dark(rgba(0,0,0,.1),rgba(0,0,0,.45))}.modal form{display:grid;gap:16px;padding:20px 24px 24px}.modal header{display:flex;align-items:center;gap:10px}.modal header:has(.icon-btn){margin-right:-10px}.modal h2{flex:1;font-size:15px;font-weight:700;overflow-wrap:anywhere}.modal .actions{justify-content:flex-end;margin-top:4px}@media(min-width:561px){.modal .actions>:first-child:not(:only-child){margin-right:auto}}dialog.confirm,dialog.outcome-dialog{width:min(500px,calc(100vw - 32px))}.confirm p,.outcome-dialog p{color:var(--muted);line-height:1.6}.confirm form{gap:8px}.confirm .actions{margin-top:12px}.outcome-dialog form{gap:10px;padding:24px 24px 20px}dialog.modal.tone{border-top:3px solid var(--tone)}dialog.modal.neutral{--tone: var(--muted)}dialog.modal.success{--tone: var(--ok)}dialog.modal.warning{--tone: var(--warn)}dialog.modal.error{--tone: var(--bad)}.modal.tone header{color:var(--tone)}.modal.tone h2{color:var(--fg)}.outcome-dialog .actions{margin-top:14px}@media(max-width:560px){.modal .actions{flex-direction:column-reverse;align-items:stretch}.modal .actions>*{margin-right:0}}.tabs{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none;box-shadow:inset 0 -1px var(--line2)}.page .tabs:not(.vertical){height:40px;margin-top:-8px;position:sticky;top:calc(56px + var(--head, 0px));z-index:9;background:var(--bg)}.tabs a,.tabs>button{display:flex;flex:none;align-items:center;gap:8px;padding:10px 12px;border:0;border-bottom:2px solid transparent;background:none;font-size:10.5px;color:var(--muted);white-space:nowrap;cursor:pointer}.tabs a:hover,.tabs>button:hover{color:var(--fg)}.tabs:focus{outline:none}.tabs a:focus-visible,.tabs>button:focus-visible{outline-offset:-2px}.tabs a[aria-current],.tabs a[data-pending],.tabs>button[aria-current]{color:var(--fg);border-bottom-color:var(--fg)}.tabs:has(a[data-pending]) a[aria-current]:not([data-pending]){color:var(--muted);border-bottom-color:transparent}.tabs .count{color:var(--dim)}@property --tabs-fade{syntax: "<length>"; inherits: false; initial-value: 0px;}@keyframes tabs-fade{0%{--tabs-fade: 40px}to{--tabs-fade: 0px}}.tabs{mask-image:linear-gradient(to left,transparent,#000 var(--tabs-fade));animation:tabs-fade linear both;animation-timeline:scroll(self inline)}.tabs[aria-hidden]>*{visibility:hidden}@media(max-width:760px){.page .tabs:not(.vertical){gap:0}.page .tabs:not(.vertical) a,.page .tabs:not(.vertical)>button{gap:4px;padding-inline:6px;letter-spacing:.04em}}.hero{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap}.hero>.grow{flex:1 1 280px}.hero-side{display:grid;gap:14px;justify-items:end}.hero .handles{display:grid;gap:4px;flex:none;font-size:12px;color:var(--muted);text-align:right}.hero .handles b{color:var(--fg)}.hero .handles .more-list .handles{text-align:left}.hero.stuck .handles,.hero.stuck .lead{display:none}.hero.stuck>.grow{display:contents}.hero.stuck .back{order:-1}.hero.stuck .title-row{flex:1 1 auto;min-width:0}.hero .title-row button.link{padding:0;border-width:0 0 1px;background:none;font-size:12px;line-height:1;cursor:pointer}.hero .lead{display:-webkit-box;min-height:2lh;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.hero-mark{display:grid;place-items:center;flex:none;width:64px;height:64px;background:var(--blue);color:#fff;font-size:26px;font-weight:700}@media(max-width:760px){.hero{gap:14px}.hero-mark{width:48px;height:48px;font-size:20px}.hero-side{justify-items:start}.hero .handles{text-align:left}@supports (anchor-scope: --menu){.hero .more>.more-list{inset:anchor(bottom) auto auto anchor(left)}}}.link-pill{color:var(--acc);text-transform:none;letter-spacing:.02em}.link-pill .ic{width:12px;height:12px}.pf{display:inline-flex;flex:none;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.brand-icon{width:12px;height:12px;flex:none}.brand-icon>svg{display:block;width:100%;height:100%}.more-list:has(.pf-row){min-width:180px;gap:0}.pf-row{display:flex;align-items:center;padding:8px 10px}:is(.pfs>a,a.pf-row):hover{background:var(--wash)}.pfs>a{position:relative;z-index:1;margin:-3px -6px;padding:3px 6px}.pf-row .pf{gap:12px;color:var(--fg)}.tasks{table-layout:fixed;min-width:944px}.tasks th:nth-child(2){width:160px}.tasks .model{width:160px}.tasks th:nth-child(4){width:120px}.tasks th.num{width:136px}.tasks th:nth-child(6){width:128px}td.model{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.tasks td{padding-block:9px;vertical-align:middle}.tasks .cover{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.tasks td:first-child .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks td:first-child .sub{margin-top:1px}.tasks .sub .ic{width:12px;height:12px;margin-right:5px;color:var(--dim);vertical-align:-2px}@media(min-width:761px){.tasks th:last-child,.tasks td:last-child{position:sticky;right:0;z-index:1;background:var(--panel)}.tasks tbody tr:hover td:last-child{background:linear-gradient(var(--wash),var(--wash)),var(--panel)}.table-scroll:has(>.tasks){container-type:scroll-state}@container scroll-state(scrollable: inline-end){.tasks th:last-child,.tasks td:last-child{box-shadow:-8px 0 8px -8px light-dark(rgba(11,12,16,.25),rgba(0,0,0,.7))}}}@media(max-width:760px){.tasks{min-width:0}.tasks td{padding-block:0}.tasks td:is(.when,.num){order:1}.tasks.stacked tr{grid-template-columns:auto minmax(0,1fr) auto}.tasks.stacked td:last-child{position:relative;display:flex;align-items:center;justify-self:end;padding-right:0}.tasks td.num{grid-column:3}.tasks td.model{align-self:center}.tasks td:is(.when,.num,.model){font-size:11.5px}.tasks td.num{justify-self:end;color:var(--muted)}}.source{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.source .ic{color:var(--dim)}.tasks th:last-child,.tasks td:last-child{padding-right:28px}.row-acts{position:absolute;top:50%;right:8px;z-index:1;translate:0 -50%;opacity:0;transition:opacity .12s}.tasks tr:is(:hover,:focus-within) .row-acts,.row-acts:has(.pop:popover-open){opacity:1}.approval-queue{--max: 420px;display:grid;margin:0;padding:0;list-style:none}.queue-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line)}.queue-row:first-child{border-top:0}.queue-row>details{flex:1;min-width:0}.queue-row summary{display:grid;gap:2px;cursor:pointer;list-style:none}.queue-row summary::-webkit-details-marker{display:none}.queue-ask{display:flex;align-items:baseline;gap:8px;min-width:0}.queue-reason{overflow:hidden;font-size:13px;color:var(--fg);text-overflow:ellipsis;white-space:nowrap}.queue-task{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0;font-size:12px}.queue-task>a{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.queue-task>a:hover{color:var(--fg)}.queue-task>a{max-width:100%}.queue-row details[open] .queue-reason{white-space:normal}.queue-row .body{display:grid;gap:10px;padding:10px 0 0}.queue-acts{display:flex;flex:none;gap:6px}@media(max-width:760px){.queue-row{flex-wrap:wrap}.queue-acts{margin-left:auto}.queue-ask{flex-wrap:wrap}}.card.accent:has(>.approval-queue){background:var(--panel)}@media(min-width:761px){.queue-task>.admin-ask:before{content:"\b7";margin-right:10px}}.head .lead:has(.fact){display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:12px}.fact{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.fact .ic{width:12px;height:12px;color:var(--dim)}.fact-dim{color:var(--dim)}.head.stuck .lead:has(.fact){display:none}@media(max-width:760px){.head:has(.fact) .back{height:34px}.head:has(.fact) .title-row>h1{flex-basis:100%}.head:has(.fact)>.actions{position:absolute;top:10px;right:16px;width:auto;flex-wrap:nowrap}.head.stuck:has(.fact)>.actions{position:static}.head.stuck:has(.fact)>.actions>.menu{display:inline}.head.stuck:has(.fact) .title-row>h1{flex-basis:auto}.head.stuck:has(.fact) .meta{display:none}.reply-box,.reply-box textarea{min-width:0}}.agent-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);text-decoration:underline dotted;text-underline-offset:3px}.agent-link .ic{width:12px;height:12px}.turn.answer,.turn.reply{border-left-color:var(--line2)}.agent-link:hover{color:var(--fg)}.logs{margin:0;padding:16px;max-height:420px;overflow:auto;font:12.5px/1.8 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--tile)}pre.json{margin:0;overflow-x:auto}.convo{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.turn{min-width:0;padding:12px 16px;border-left:2px solid var(--acc);background:var(--tile)}.turn .who{margin-bottom:4px;font-size:11px;color:var(--dim)}.turn .collapse.open>.btn.more-toggle{margin:8px auto 0}.act-list{position:relative}.act-slot{position:absolute;top:0;left:0;width:100%}.act{display:grid;grid-template-columns:76px 16px minmax(0,1fr);align-items:baseline;gap:10px;width:100%;padding:3px 8px;border:0;border-left:2px solid transparent;background:none;font:12.5px/1.7 var(--mono);text-align:left}:is(.act.fold,button.act){grid-template-columns:76px 16px minmax(0,1fr) 14px;cursor:pointer}.act .act-chev{visibility:hidden}:is(.act.fold,button.act):hover .act-chev,.act.open .act-chev{visibility:visible}.act.open .act-chev{rotate:180deg}:is(.act.fold,button.act):hover{background:var(--wash)}.act time{color:var(--dim);font-size:11px}.act .ic{width:13px;height:13px;align-self:start;margin-top:4px;color:var(--dim)}.act-text{display:flex;gap:12px;min-width:0}.act-title,.act-detail{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.act-title{flex:0 1 auto}.act-detail{flex:1 1 0;color:var(--dim)}.act.open .act-text{display:grid;gap:2px}.act.open :is(.act-title,.act-detail){white-space:pre-wrap;overflow-wrap:anywhere}.act.muted .act-title,.act.usage .act-title{color:var(--muted)}.act.assistant .act-title{color:var(--fg);font-size:13px;line-height:21.25px}.act.assistant .ic{color:var(--acc)}.act.approval{border-left-color:var(--acc);background:var(--accbg)}.act.approval .ic{color:var(--acc)}.act.warning :is(.act-title,.ic){color:var(--warn)}.act.error :is(.act-title,.ic){color:var(--bad)}.act.steer :is(.act-title,.ic){color:var(--acc)}.act.timed{grid-template-columns:76px 16px minmax(0,1fr) auto 14px}.act-state{color:var(--dim);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.act-state.bad,.act-state.bad .ic{color:var(--bad)}.act-state :is(.ic,.spin){display:inline-block;width:11px;height:11px;margin:0 6px 0 0;vertical-align:-1px}.act-state .spin,.act.step>.spin{border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@media(max-width:760px){.act.approval.timed{grid-template-columns:76px 16px minmax(0,1fr) 14px}.act.approval .act-state{grid-column:3;grid-row:2;white-space:normal;overflow-wrap:anywhere}.act.approval .act-chev{grid-column:4;grid-row:1}}.run-sum,.run-foot{color:var(--muted);font-size:12px}.run>.run-steps{display:grid;grid-template-rows:repeat(2,28px);margin:8px -8px 0}.run-steps.earlier{mask-image:linear-gradient(to bottom,#00000040,#000 28px)}.run>.loading.inline{display:flex;margin-top:12px}.act.step{grid-template-columns:16px minmax(0,1fr) auto 14px}.act.run-sum{grid-template-columns:minmax(0,1fr) 14px;width:calc(100% + 16px);margin-inline:-8px}.act.step.approval{border-left-color:transparent}.act.step.approval:not(:hover){background:none}.act.step>.spin{width:11px;height:11px;margin-inline:1px;align-self:center}.run-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px 16px;border-top:1px solid var(--line)}.act-slot.at>.act{background:var(--wash)}.act-empty{padding:24px 0;text-align:center}.jump{position:sticky;bottom:calc(var(--reply, 72px) + 8px);z-index:11;display:block;width:max-content;margin:0 auto;padding:6px 14px;border:1px solid var(--line2);border-radius:999px;background:var(--tile);color:var(--fg);font-size:12px;box-shadow:0 6px 18px #0000002e;cursor:pointer}.no-reply{margin-top:16px;font-size:12px}.approval-actions>summary{display:flex;align-items:baseline;gap:9px;width:fit-content;font-size:12px;color:var(--muted);cursor:pointer;list-style:none}.approval-actions>summary::-webkit-details-marker{display:none}.approval-actions>summary:before{content:"";width:5px;height:5px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(-45deg);transition:transform .15s}.approval-actions[open]>summary:before{transform:rotate(45deg)}.approval-actions>summary:hover{color:var(--fg)}.approval-actions ol{display:grid;gap:4px;margin:8px 0 0;padding-left:20px}.approval-actions code{font-size:12px;white-space:pre-wrap;word-break:break-word}.bar-r .decided{font-size:12px}@media(min-width:761px){.tabs+.card.accent{position:sticky;top:var(--stuck);z-index:8}}@media(max-width:760px){.tabs+.card.accent>.bar{position:sticky;top:var(--stuck);z-index:8;background:inherit}}.turn.decision.decline{border-left-color:var(--bad)}.turn.decision .prose{margin-bottom:6px}.card .decision{font-size:13px}main:has(form.reply){padding-bottom:0}form.reply{position:sticky;bottom:0;z-index:10;display:grid;gap:6px;margin-top:auto;padding:12px 0 16px;background:var(--bg)}.reply-box{display:flex;align-items:flex-end;gap:6px;padding:4px;border:1px solid var(--line2);background:var(--field)}.reply-box:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.reply-box textarea{flex:1;field-sizing:content;min-height:28px;max-height:6lh;padding:2px 6px;border:0;background:none;resize:none;box-shadow:none}.reply-box textarea:focus{box-shadow:none}.reply-box textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-box .mode{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;background:var(--wash2);font-size:11px;text-transform:uppercase;letter-spacing:.2em}.reply-box .mode .ic{width:12px;height:12px}.act:is(.tool,.tool-result,.status,.line,.reasoning,.usage) .act-title{color:var(--muted)}.act.open:not(.warning,.error) .act-title{color:var(--fg)}.findings{display:grid;gap:24px;margin:0;padding:12px 16px;list-style:none}.finding{min-width:0;padding-left:12px;border-left:2px solid var(--dim);--sev: var(--dim)}.finding.critical{--sev: var(--bad)}.finding.major{--sev: var(--warn)}.finding.minor{--sev: var(--acc)}.finding{border-left-color:var(--sev)}.finding p{white-space:normal;overflow-wrap:anywhere}.finding-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;font-size:12px}.finding-head .sev{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sev)}.finding-head .loc{color:var(--muted)}.finding-head .cat{margin-left:auto;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.finding-sum{margin-top:4px;font-weight:500}.finding-why{margin-top:2px;font-size:12.5px}.turn.qa>.answer{margin-top:10px;padding-top:10px;border-top:1px solid var(--line2)}.turn.prompt .prose{font-size:13.5px}.turn .collapse:not(.open){margin-bottom:-12px}.change-diff{margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--wash);font:12px/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}.approval-actions>.change-diff{margin-top:8px}.change-diff>span{display:block}.asker{display:inline-flex;flex:none;border:1px solid var(--line2);font:11px/1.6 var(--mono);color:var(--muted);white-space:nowrap;vertical-align:1px}.asker>span{display:inline-flex;align-items:center;gap:4px;padding:0 6px}.asker>span+span{border-left:1px solid var(--line2)}.asker .ic{width:11px;height:11px}p.approval{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.approve-off{display:inline-flex}.admin-ask{font-size:12px;color:var(--muted)}.admin-ask>.link{padding:0;background:none;font:inherit;cursor:pointer}.change-diff>.add{color:var(--ok)}.change-diff>.del{color:var(--bad)}.request .seg-btns{align-self:flex-start}.task-missing{display:grid;align-content:center;min-height:calc(100dvh - 160px)}.field{display:grid;gap:6px}.field>span:first-child,.field>label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-weight:500}.field small{font-weight:400;color:var(--muted);font-size:11.5px}.field .seg-btns{width:max-content;max-width:100%}.field .seg-btns>button{height:36px}.seg-btns{display:flex;border:1px solid var(--line2)}.seg-btns>a,.seg-btns>button,.seg-btns .menu>button{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-left:1px solid var(--line2);background:var(--panel);font-size:10.5px;letter-spacing:.14em;color:var(--muted);cursor:pointer}.seg-btns>button{border-top:0;border-right:0;border-bottom:0;text-transform:uppercase}.seg-btns>:first-child{border-left:0}.seg-btns>a:hover,.seg-btns>button:hover,.seg-btns .menu>button:hover{color:var(--fg)}.seg-btns [aria-current],.seg-btns [aria-checked=true],.seg-btns .on>button{background:var(--accbg);color:var(--acc)}.seg-btns>button:disabled{opacity:.45;color:var(--muted);cursor:not-allowed}.seg-btns>button:has(.badge){position:relative}.seg-btns>button .badge{position:absolute;top:-8px;left:calc(100% - 14px);z-index:1;border-color:transparent;background:var(--acc);color:var(--panel);padding:0 4px;font-size:8.5px;line-height:14px;letter-spacing:.06em;text-transform:none}.tail{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 14px;color:var(--dim);font-size:11.5px}.tail.err{color:var(--bad)}.composer{display:flex;flex-wrap:wrap;padding:5px 5px 5px 8px;border:1px solid var(--line2);background:var(--field)}.composer:has(textarea:focus){border-color:var(--acc)}.composer textarea{flex:1 1 100%;width:auto;field-sizing:content;min-height:22px;max-height:8lh;margin:6px 0;padding:0 4px;border:0;background:none;box-shadow:none;resize:none}.composer textarea:focus{box-shadow:none}.composer-line{display:flex;align-items:center;gap:2px;width:100%;height:30px;min-width:0}.composer-line .select{flex:0 1 auto;max-width:220px}.composer-line .select>button,.composer-line .quiet{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 8px;border:1px solid transparent;background:none;font-size:11.5px;color:var(--muted);white-space:nowrap;cursor:pointer}.composer-line .select>button:hover,.composer-line .quiet:hover{background:var(--wash)}.run-picks .dim{color:var(--dim)}@media(max-width:760px){.run-picks>:not(:first-child){display:none}}.composer-line .send{flex:none;margin-left:4px}.composer>.flash{flex-basis:100%;margin:0 4px 2px}.composer-settings:popover-open{display:block;width:min(320px,calc(100vw - 32px));overflow-y:auto;padding:6px}.composer-settings>.pop-label:not(:first-child){margin-top:10px}.composer-settings .pop-item{width:100%;min-height:30px;font-size:12px}.composer-settings .add-models{margin-top:4px;color:var(--muted)}.composer-settings .add-models .ic{width:14px;height:14px}.composer-settings .pop-group{margin:6px 10px 2px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.composer-settings .select{margin:2px 6px 4px}.composer-settings .select>button{min-height:30px;padding:4px 8px 4px 10px;font-size:12px}.composer-slash .pop-item{gap:10px;padding:6px 10px}.composer-slash .pop-item:hover{background:none}.composer-slash .pop-item.on{background:var(--wash2)}.composer-slash small{font-size:11px;color:var(--dim);white-space:nowrap}.composer-slash{max-height:min(360px,50vh);overflow-y:auto}.composer-slash .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-slash>.loading{padding:6px 10px}dialog.compose-dialog{width:min(760px,calc(100vw - 32px));margin:14vh auto auto;padding:0;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}dialog.compose-dialog::backdrop{background:light-dark(rgba(0,0,0,.45),rgba(0,0,0,.72))}.compose-dialog>header{display:flex;align-items:baseline;gap:10px;padding:10px 6px 0 16px}.compose-dialog h2{font-size:15px;font-weight:700}.compose-dialog>header .icon-btn{align-self:center;width:30px;height:30px;margin-left:auto}.compose-dialog .composer textarea{max-height:min(20lh,max(4lh,calc(86dvh - 180px)))}.compose-dialog .composer,.compose-dialog>.loading,.compose-dialog>.flash,.compose-dialog>.notice{margin:10px 16px 16px}@media(max-width:760px){.composer-settings:popover-open{right:16px!important;grid-template-columns:minmax(0,1fr);gap:4px}.notice.slim .grow{white-space:normal}}.composer-line .folder{display:contents}.composer-line input.folder-path{flex:0 1 260px;min-width:0;min-height:0;height:28px;padding:3px 8px;border:1px solid transparent;background:none;font-size:11.5px}.composer-line input.folder-path:focus{border-color:var(--line2);box-shadow:none}.composer-line .folder-busy{flex:none;font-size:11.5px;color:var(--muted)}.composer>.folder-hint{flex:1 1 100%;padding:0 8px 4px;font-size:11px;color:var(--muted)}.composer>.flash{flex:1 1 100%;padding:2px 8px 4px}.model-pick{display:inline-flex;min-width:0}.field .model-pick{display:flex;max-width:420px}.model-pick-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer}.model-pick-btn small{font-size:10px}.model-pick-btn .grow{overflow:hidden;text-overflow:ellipsis}.model-pick-btn .ic{color:var(--dim)}.model-pick-btn:focus-visible{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.model-pick.compact .model-pick-btn{min-height:32px;padding:5px 10px 5px 12px;border-color:transparent;background:var(--wash2)}.model-pick.compact .model-pick-btn:hover{background:var(--line2)}.model-pop{position:fixed;inset:auto;width:300px;overflow-y:auto}.model-choices .pop-item{width:100%;min-height:30px;font-size:12px}.model-choices .add-models{margin-top:4px;color:var(--muted)}.model-choices .add-models .ic{width:14px;height:14px}.model-choices .pop-group{margin:6px 10px 2px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.pop-chev{display:inline-flex;align-items:center;gap:4px;flex:none;align-self:stretch;padding:0 8px 0 10px;width:auto;border:0;background:none;color:var(--dim);cursor:pointer}.pop-chev:focus-visible{outline-offset:-2px}.pop-chev:hover,.pop-chev[aria-expanded=true]{color:var(--fg);background:var(--wash)}.pop-chev small{font-size:10px}.pop-chev .ic{width:14px;height:14px;transition:rotate .15s}.pop-chev[aria-expanded=true] .ic{rotate:90deg}.pop-flyout{position:fixed;inset:auto;margin:0;min-width:170px}.pop-chev:has(+.pop-flyout:popover-open){color:var(--fg);background:var(--wash)}.pop-chev:has(+.pop-flyout:popover-open) .ic{rotate:0deg}.model-choices .pop-row .pop-chev small{visibility:hidden}.model-choices .pop-row:is(:hover,:focus-within,:has([aria-checked=true]),:has(.pop-flyout:popover-open)) .pop-chev small{visibility:visible}.tab-lead{color:var(--muted);max-width:115ch}.tab-lead b{color:var(--fg)}.plat td:first-child b{margin-right:8px}.plat tbody tr{position:relative}.plat tbody tr:has(.cover):hover{background:var(--wash)}.plat :is(td.acts,td a:not(.cover),td .more){position:relative;z-index:1}.plat .where{min-width:150px}.inst{display:block}.inst a{color:inherit}.inst a:hover{border-bottom:1px solid currentColor}.inst+.inst{margin-top:8px}.where .more{display:inline-block;margin-top:8px}@supports (anchor-scope: --menu){.where .more>.more-list{inset:anchor(bottom) auto auto anchor(left)}}.plat .acts{width:1%;white-space:nowrap;vertical-align:top}.plat .acts .btn{min-width:92px;justify-content:center}.plat .acts .menu{display:inline-block;margin-left:4px}.plat .acts .pop{text-align:left;white-space:normal}.plat .acts .info .more-list p{margin:0}.where-note{line-height:1.5}.create-link{display:flex;align-items:center;gap:6px}.create-steps{display:grid;gap:10px;padding-left:22px;list-style:decimal;color:var(--muted)}.create-steps li>*+*{margin-top:6px}.update-values{padding-left:0;list-style:none}.create-more>summary{width:max-content;color:var(--muted);font-size:12.5px;cursor:pointer}.create-more ul{display:grid;gap:8px;margin-top:10px;padding-left:22px;list-style:disc;color:var(--muted)}.create-more .ui-name,.create-steps .ui-name{padding:0 4px;color:var(--fg);background:var(--wash)}.split{display:inline-flex;vertical-align:top}.split>.menu{display:flex;margin-left:0}.split-more{min-width:0;padding:0 7px}.split>.btn+.menu .split-more{border-left-color:#ffffff4d}.split>.btn.outline+.menu .split-more{margin-left:-1px}@media(max-width:1180px){.stacked.early thead{display:none}.stacked.early tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 16px;border-bottom:1px solid var(--line)}.stacked.early td{padding:0;border:0;min-width:0}.stacked.early td:first-child{grid-column:1 / -1}.plat.early td:first-child{grid-row:1;grid-column:1}.plat.early td:first-child .pf{white-space:normal}.plat.early .acts{grid-row:1;grid-column:2;width:auto}.plat.early td:nth-child(2){grid-column:1}.plat.early td:nth-child(3){grid-column:2;justify-self:end}.plat.early td:nth-child(4),.plat.early .where{grid-column:1 / -1}}@media(max-width:760px){.plat.early td:nth-child(3){grid-column:1 / -1;justify-self:start}}.create-steps a{color:var(--acc);overflow-wrap:anywhere}.outcome{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:16px}.outcome>.flash{flex-basis:100%;font-size:13px}.plat-step{display:inline-flex;align-items:center;gap:10px}.copy-line{display:flex;align-items:center;gap:8px}.copy-line>code,.copy-line>a{flex:1;min-width:0}.copy-line code{display:block;padding:8px 10px;background:var(--wash2);font:12px/1.5 var(--mono);overflow-wrap:anywhere}.copy-line>a code{color:var(--acc)}.copy-line>a:hover code{background:var(--accbg)}.icon-btn.copied,.icon-btn.copied:hover{color:var(--ok)}
@@ -1 +0,0 @@
1
- import{b}from"./chunks/composer-92553de43276510b.js";import"./chunks/composer-data-890f71bade4f0616.js";import"./chunks/task-423e6a3f2527f534.js";import"./chunks/connect-repositories-226bf70aa81c29d8.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/model-options-d29e934a3de20ab4.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/back-2d67134b122334f4.js";import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as a,$4s as d}from"./chunks/shared-init-926144b364908b3c.js";import{$0j as r}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as i,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:u,remountRoute:Y,unmountRoute:_}=o({islands:[{id:"c-1ac54bc7be",Component:s},{id:"c-1fb6e021bd",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-bcd13cd7a46224a6.js").then(I=>I.AgentsGrid)},{id:"c-26ecfcf06f",Component:n},{id:"c-6683d9d5f4",Component:r},{id:"c-69512aae30",Component:p},{id:"c-6af75eae29",Component:i},{id:"c-79bec0da54",Component:a},{id:"c-a5a5b38779",Component:f},{id:"c-b48662fbe2",Component:c},{id:"c-baf60b14a0",Component:b},{id:"c-d672a5cd5c",Component:l},{id:"c-eb4bbaad76",Component:d},{id:"c-f48487f00e",Component:C},{id:"c-fec5d825bc",Component:m}]});e();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:_});export{u as mountRoute,Y as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/agent-toggle-521136f20a71400d.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/shared-init-953965859f7bf6b9.js";import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as d,$4s as s}from"./chunks/shared-init-926144b364908b3c.js";import{$0E as r,$0j as a}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as e,$3g as i}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as m}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:b,remountRoute:x,unmountRoute:R}=o({islands:[{id:"c-1ac54bc7be",Component:p},{id:"c-26ecfcf06f",Component:n},{id:"c-2cbc9ad83f",Component:u},{id:"c-6683d9d5f4",Component:a},{id:"c-69512aae30",Component:c},{id:"c-6af75eae29",Component:e},{id:"c-79bec0da54",Component:d},{id:"c-a1967c140b",options:{},load:()=>import("./chunks/editor-53a3e1a893644fff.js").then(_=>_.AgentEditor)},{id:"c-a34266e3b9",Component:r},{id:"c-a5a5b38779",Component:f},{id:"c-b48662fbe2",Component:l},{id:"c-d672a5cd5c",Component:C},{id:"c-eb4bbaad76",Component:s},{id:"c-f48487f00e",Component:I},{id:"c-fec5d825bc",Component:i}]});m();t()||b();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:b,unmountRoute:R});export{b as mountRoute,x as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-521136f20a71400d.js";import{b as I}from"./chunks/composer-92553de43276510b.js";import"./chunks/composer-data-890f71bade4f0616.js";import"./chunks/task-423e6a3f2527f534.js";import"./chunks/connect-repositories-226bf70aa81c29d8.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/model-options-d29e934a3de20ab4.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/back-2d67134b122334f4.js";import{a as c,b as f,c as l,d as b,e as u,f as C}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as d,$4s as p}from"./chunks/shared-init-926144b364908b3c.js";import{$0E as s,$0j as m}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as a,$3g as r}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:_,remountRoute:D,unmountRoute:R}=n({islands:[{id:"c-0eb34a284b",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-177ae397ad64dcea.js").then(o=>o.VersionsList)},{id:"c-1542a66a87",options:{},load:()=>import("./chunks/instructions-734d21dfb8f6393e.js").then(o=>o.Instructions)},{id:"c-1ac54bc7be",Component:c},{id:"c-26ecfcf06f",Component:t},{id:"c-2a236216a0",options:{},load:()=>import("./chunks/composer-4a46a458495ce3ba.js").then(o=>o.NewTaskButton)},{id:"c-2cbc9ad83f",Component:T},{id:"c-35847fbe08",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-2c5ce592e00fda45.js").then(o=>o.TasksList)},{id:"c-6683d9d5f4",Component:m},{id:"c-69512aae30",Component:f},{id:"c-6af75eae29",Component:a},{id:"c-79bec0da54",Component:d},{id:"c-a34266e3b9",Component:s},{id:"c-a5a5b38779",Component:l},{id:"c-b48662fbe2",Component:b},{id:"c-baf60b14a0",Component:I},{id:"c-d672a5cd5c",Component:u},{id:"c-eb4bbaad76",Component:p},{id:"c-f48487f00e",Component:C},{id:"c-fec5d825bc",Component:r}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,D as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as r}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:i,remountRoute:f,unmountRoute:m}=o({islands:[{id:"c-26ecfcf06f",Component:t}]});e();r()||i();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:i,unmountRoute:m});export{i as mountRoute,f as remountRoute,m as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as r,b as d,c as s,d as p,e as c,f}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as a,$4s as i}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$3f as e}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as m}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:l,remountRoute:h,unmountRoute:u}=o({islands:[{id:"c-1ac54bc7be",Component:r},{id:"c-26ecfcf06f",Component:n},{id:"c-69512aae30",Component:d},{id:"c-6af75eae29",Component:e},{id:"c-79bec0da54",Component:a},{id:"c-a5a5b38779",Component:s},{id:"c-b48662fbe2",Component:p},{id:"c-d672a5cd5c",Component:c},{id:"c-eb4bbaad76",Component:i},{id:"c-f48487f00e",Component:f}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,h as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:r,remountRoute:a,unmountRoute:m}=o({islands:[{id:"c-26ecfcf06f",Component:t},{id:"c-da3eb23c73",options:{},load:()=>import("./chunks/create-link-b2480a7601967e94.js").then(n=>n.CreateLink)}]});i();e()||r();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:r,unmountRoute:m});export{r as mountRoute,a as remountRoute,m as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/custom-range-efa1b6a71ba84597.js";import"./chunks/field-4d374d5ed3f43d7e.js";import{a as s,b as p,c,d as f,e as l,f as C}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as r,$4s as d}from"./chunks/shared-init-926144b364908b3c.js";import{$0j as i}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as e,$3g as a}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as m}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:I,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-1ac54bc7be",Component:s},{id:"c-26ecfcf06f",Component:n},{id:"c-5a1c3c5fec",Component:u},{id:"c-6683d9d5f4",Component:i},{id:"c-69512aae30",Component:p},{id:"c-6af75eae29",Component:e},{id:"c-79bec0da54",Component:r},{id:"c-a5a5b38779",Component:c},{id:"c-b48662fbe2",Component:f},{id:"c-d672a5cd5c",Component:l},{id:"c-eb4bbaad76",Component:d},{id:"c-f48487f00e",Component:C},{id:"c-fec5d825bc",Component:a}]});m();t()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:R});export{I as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-521136f20a71400d.js";import{b as u}from"./chunks/composer-92553de43276510b.js";import"./chunks/composer-data-890f71bade4f0616.js";import"./chunks/task-423e6a3f2527f534.js";import"./chunks/connect-repositories-226bf70aa81c29d8.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/model-options-d29e934a3de20ab4.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/back-2d67134b122334f4.js";import{a as c,b as f,c as l,d as C,e as I,f as b}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as s,$4s as p}from"./chunks/shared-init-926144b364908b3c.js";import{$0E as d,$0j as r}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as a,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:_,remountRoute:B,unmountRoute:R}=n({islands:[{id:"c-1ac54bc7be",Component:c},{id:"c-26ecfcf06f",Component:t},{id:"c-2a236216a0",options:{},load:()=>import("./chunks/composer-4a46a458495ce3ba.js").then(o=>o.NewTaskButton)},{id:"c-2cbc9ad83f",Component:T},{id:"c-35847fbe08",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-2c5ce592e00fda45.js").then(o=>o.TasksList)},{id:"c-36c3d510e6",options:{},load:()=>import("./chunks/agent-settings-form-a8ee12513a02b1c5.js").then(o=>o.AgentSettingsForm)},{id:"c-6683d9d5f4",Component:r},{id:"c-69512aae30",Component:f},{id:"c-6af75eae29",Component:a},{id:"c-79bec0da54",Component:s},{id:"c-a34266e3b9",Component:d},{id:"c-a5a5b38779",Component:l},{id:"c-b48662fbe2",Component:C},{id:"c-baf60b14a0",Component:u},{id:"c-d672a5cd5c",Component:I},{id:"c-eb4bbaad76",Component:p},{id:"c-f48487f00e",Component:b},{id:"c-fec5d825bc",Component:m}]});i();e()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,B as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T,b as R,c as b,d as _,e as g,f as E}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as I,$4s as k}from"./chunks/shared-init-926144b364908b3c.js";import{$0D as u,$0F as C,$0a as s,$0j as c}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as p,$3g as f,$3q as l}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import{$2Q as o,$2S as a,$2T as d}from"./chunks/shared-init-926144b364908b3c.js";import{$4a as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as m}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as r}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$3c as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";function h(){let t=s(),w=u();return o("div",{class:"task-missing",children:o(l,{title:"Task not found",actions:o(n,{children:[o(a,{variant:"outline",onClick:()=>t.refresh(),children:"Refresh"}),o(d,{href:"/dash/[org]/tasks",params:{org:w},children:"Go to tasks"})]}),children:"It may have been deleted, or it ran somewhere you can't see."})})}var{mountRoute:v,remountRoute:$,unmountRoute:L}=e({islands:[{id:"c-1ac54bc7be",Component:T},{id:"c-26ecfcf06f",Component:i},{id:"c-4f731406e2",Component:h},{id:"c-6683d9d5f4",Component:c},{id:"c-69512aae30",Component:R},{id:"c-6af75eae29",Component:p},{id:"c-79bec0da54",Component:I},{id:"c-8d9096190f",options:{},load:()=>import("./chunks/task-view-c6ee43d2ddb6db90.js").then(t=>t.TaskView)},{id:"c-a5a5b38779",Component:b},{id:"c-b48662fbe2",Component:_},{id:"c-d2e4125871",Component:C},{id:"c-d672a5cd5c",Component:g},{id:"c-eb4bbaad76",Component:k},{id:"c-f48487f00e",Component:E},{id:"c-fec5d825bc",Component:f}]});m();r()||v();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:v,unmountRoute:L});export{v as mountRoute,$ as remountRoute,L as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as b}from"./chunks/custom-range-efa1b6a71ba84597.js";import{a as T}from"./chunks/agent-toggle-521136f20a71400d.js";import"./chunks/field-4d374d5ed3f43d7e.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/shared-init-953965859f7bf6b9.js";import{a as c,b as f,c as l,d as C,e as u,f as I}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as d,$4s as p}from"./chunks/shared-init-926144b364908b3c.js";import{$0E as s,$0j as r}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as a,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:R,remountRoute:D,unmountRoute:_}=n({islands:[{id:"c-1ac54bc7be",Component:c},{id:"c-26ecfcf06f",Component:t},{id:"c-2a236216a0",options:{},load:()=>import("./chunks/composer-4a46a458495ce3ba.js").then(o=>o.NewTaskButton)},{id:"c-2cbc9ad83f",Component:T},{id:"c-35847fbe08",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-2c5ce592e00fda45.js").then(o=>o.TasksList)},{id:"c-5a1c3c5fec",Component:b},{id:"c-6683d9d5f4",Component:r},{id:"c-69512aae30",Component:f},{id:"c-6af75eae29",Component:a},{id:"c-79bec0da54",Component:d},{id:"c-a34266e3b9",Component:s},{id:"c-a5a5b38779",Component:l},{id:"c-b48662fbe2",Component:C},{id:"c-d672a5cd5c",Component:u},{id:"c-eb4bbaad76",Component:p},{id:"c-f48487f00e",Component:I},{id:"c-fec5d825bc",Component:m}]});i();e()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:_});export{R as mountRoute,D as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as d,b as p,c,d as f,e as l,f as u}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as a,$4s as s}from"./chunks/shared-init-926144b364908b3c.js";import{$0j as r}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as i,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:C,remountRoute:P,unmountRoute:b}=o({islands:[{id:"c-1ac54bc7be",Component:d},{id:"c-26ecfcf06f",Component:n},{id:"c-35847fbe08",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-2c5ce592e00fda45.js").then(I=>I.TasksList)},{id:"c-6683d9d5f4",Component:r},{id:"c-69512aae30",Component:p},{id:"c-6af75eae29",Component:i},{id:"c-79bec0da54",Component:a},{id:"c-a5a5b38779",Component:c},{id:"c-b48662fbe2",Component:f},{id:"c-d672a5cd5c",Component:l},{id:"c-eb4bbaad76",Component:s},{id:"c-f48487f00e",Component:u},{id:"c-fec5d825bc",Component:m}]});e();t()||C();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:C,unmountRoute:b});export{C as mountRoute,P as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as u}from"./chunks/back-2d67134b122334f4.js";import{a as c,b as p,c as f,d as l,e as b,f as C}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as r,$4s as s}from"./chunks/shared-init-926144b364908b3c.js";import{$0j as a}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as d,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:I,remountRoute:X,unmountRoute:R}=t({islands:[{id:"c-13f8b321d8",options:{},load:()=>import("./chunks/credentials-list-90fc1c6d202e1461.js").then(o=>o.CredentialsList)},{id:"c-1ac54bc7be",Component:c},{id:"c-1f2c1b85bf",options:{},load:()=>import("./chunks/credentials-list-90fc1c6d202e1461.js").then(o=>o.EngineLogins)},{id:"c-2247c23eb7",options:{},load:()=>import("./chunks/runners-list-dd759d408c643a29.js").then(o=>o.RunnersList)},{id:"c-245bef108b",options:{},load:()=>import("./chunks/advanced-list-850a950afe4f6996.js").then(o=>o.AdvancedList)},{id:"c-26ecfcf06f",Component:n},{id:"c-2a7c29f6fe",options:{},load:()=>import("./chunks/connections-list-a33d6637e2d52fcf.js").then(o=>o.ConnectionsList)},{id:"c-532afcef8e",options:{},load:()=>import("./chunks/models-list-6d93523660503dfb.js").then(o=>o.ModelsList)},{id:"c-6683d9d5f4",Component:a},{id:"c-69512aae30",Component:p},{id:"c-6af75eae29",Component:d},{id:"c-79bec0da54",Component:r},{id:"c-841c772c93",options:{},load:()=>import("./chunks/secrets-list-be1f634a1b077baa.js").then(o=>o.TaskSecrets)},{id:"c-a5a5b38779",Component:f},{id:"c-b10dea3c1d",Component:u},{id:"c-b48662fbe2",Component:l},{id:"c-d672a5cd5c",Component:b},{id:"c-eb4bbaad76",Component:s},{id:"c-ec33626dc3",options:{},load:()=>import("./chunks/outcome-toast-9d5e9713c23882f5.js").then(o=>o.OutcomeToast)},{id:"c-f48487f00e",Component:C},{id:"c-fec5d825bc",Component:m}]});e();i()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:R});export{I as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as d,$4s as s}from"./chunks/shared-init-926144b364908b3c.js";import{$0F as a,$0j as r}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as e,$3g as i}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as m}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:_}=o({islands:[{id:"c-1ac54bc7be",Component:p},{id:"c-26ecfcf06f",Component:n},{id:"c-6683d9d5f4",Component:r},{id:"c-69512aae30",Component:c},{id:"c-6af75eae29",Component:e},{id:"c-79bec0da54",Component:d},{id:"c-a1967c140b",options:{},load:()=>import("./chunks/editor-53a3e1a893644fff.js").then(b=>b.AgentEditor)},{id:"c-a5a5b38779",Component:f},{id:"c-b48662fbe2",Component:l},{id:"c-d2e4125871",Component:a},{id:"c-d672a5cd5c",Component:C},{id:"c-eb4bbaad76",Component:s},{id:"c-f48487f00e",Component:I},{id:"c-fec5d825bc",Component:i}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:_});export{u as mountRoute,X as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as N,b as h,c as g,d as T,e as k,f as w}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4l as t,$4r as I,$4s as C}from"./chunks/shared-init-926144b364908b3c.js";import{$0j as b}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as p,$3g as u}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import{$2Q as e}from"./chunks/shared-init-926144b364908b3c.js";import{$4a as m}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as d}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as l}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as f}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$3h as a,$3j as c}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";function _(){let[S,s]=a(!1),[r,i]=a(!1);c(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),s(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let E=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(t,"1"):localStorage.removeItem(t),o.checked=n,s(n),i(Notification.permission==="denied")};return e("label",{class:"notify",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:S,disabled:r,onChange:o=>void E(o.currentTarget)}),r?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:R,remountRoute:V,unmountRoute:v}=m({islands:[{id:"c-1ac54bc7be",Component:N},{id:"c-26ecfcf06f",Component:d},{id:"c-6683d9d5f4",Component:b},{id:"c-69512aae30",Component:h},{id:"c-6af75eae29",Component:p},{id:"c-79bec0da54",Component:I},{id:"c-a5a5b38779",Component:g},{id:"c-b48662fbe2",Component:T},{id:"c-b6fb29b5f5",Component:_},{id:"c-d672a5cd5c",Component:k},{id:"c-eb4bbaad76",Component:C},{id:"c-f48487f00e",Component:w},{id:"c-fec5d825bc",Component:u}]});l();f()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:v});export{R as mountRoute,V as remountRoute,v as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as _}from"./chunks/agent-toggle-521136f20a71400d.js";import{b as T}from"./chunks/composer-92553de43276510b.js";import"./chunks/composer-data-890f71bade4f0616.js";import"./chunks/task-423e6a3f2527f534.js";import"./chunks/connect-repositories-226bf70aa81c29d8.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/shared-init-b42d2c06c25d1e2b.js";import"./chunks/model-options-d29e934a3de20ab4.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/shared-init-953965859f7bf6b9.js";import{a as I}from"./chunks/back-2d67134b122334f4.js";import{a as c,b as f,c as l,d as b,e as u,f as C}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as s,$4s as p}from"./chunks/shared-init-926144b364908b3c.js";import{$0E as r,$0j as d}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as a,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:R,remountRoute:Q,unmountRoute:g}=t({islands:[{id:"c-1ac54bc7be",Component:c},{id:"c-26ecfcf06f",Component:n},{id:"c-2a236216a0",options:{},load:()=>import("./chunks/composer-4a46a458495ce3ba.js").then(o=>o.NewTaskButton)},{id:"c-2cbc9ad83f",Component:_},{id:"c-35847fbe08",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-2c5ce592e00fda45.js").then(o=>o.TasksList)},{id:"c-3955966bd2",Component:I},{id:"c-44ad363d8a",options:{},load:()=>import("./chunks/platform-actions-832904f5694ef902.js").then(o=>o.InstallButton)},{id:"c-6683d9d5f4",Component:d},{id:"c-69512aae30",Component:f},{id:"c-6af75eae29",Component:a},{id:"c-79bec0da54",Component:s},{id:"c-916a2c99d7",options:{},load:()=>import("./chunks/platform-step-29469fd4eaddc42a.js").then(o=>o.PlatformStep)},{id:"c-a34266e3b9",Component:r},{id:"c-a5a5b38779",Component:l},{id:"c-b191395787",options:{},load:()=>import("./chunks/outcome-dialog-77e13c848000a3dc.js").then(o=>o.OutcomeDialog)},{id:"c-b48662fbe2",Component:b},{id:"c-baf60b14a0",Component:T},{id:"c-d672a5cd5c",Component:u},{id:"c-eb4bbaad76",Component:p},{id:"c-f3ef54b0bf",options:{},load:()=>import("./chunks/platform-actions-832904f5694ef902.js").then(o=>o.DriftQueue)},{id:"c-f48487f00e",Component:C},{id:"c-fec5d825bc",Component:m}]});e();i()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:g});export{R as mountRoute,Q as remountRoute,g as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as b}from"./chunks/agent-toggle-521136f20a71400d.js";import"./chunks/shared-init-953965859f7bf6b9.js";import"./chunks/shared-init-953965859f7bf6b9.js";import{a as c,b as f,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as d,$4s as p}from"./chunks/shared-init-926144b364908b3c.js";import{$0E as s,$0j as r}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as a,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as i}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:T,remountRoute:x,unmountRoute:_}=n({islands:[{id:"c-1ac54bc7be",Component:c},{id:"c-26ecfcf06f",Component:t},{id:"c-2a236216a0",options:{},load:()=>import("./chunks/composer-4a46a458495ce3ba.js").then(o=>o.NewTaskButton)},{id:"c-2cbc9ad83f",Component:b},{id:"c-35847fbe08",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-2c5ce592e00fda45.js").then(o=>o.TasksList)},{id:"c-6683d9d5f4",Component:r},{id:"c-69512aae30",Component:f},{id:"c-6af75eae29",Component:a},{id:"c-79bec0da54",Component:d},{id:"c-a34266e3b9",Component:s},{id:"c-a5a5b38779",Component:l},{id:"c-b48662fbe2",Component:u},{id:"c-d672a5cd5c",Component:C},{id:"c-eb4bbaad76",Component:p},{id:"c-f48487f00e",Component:I},{id:"c-fec5d825bc",Component:m}]});e();i()||T();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:T,unmountRoute:_});export{T as mountRoute,x as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as I}from"./chunks/back-2d67134b122334f4.js";import{a as s,b as p,c,d as f,e as l,f as C}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as r,$4s as d}from"./chunks/shared-init-926144b364908b3c.js";import{$0j as i}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as m,$3g as a}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:b}=o({islands:[{id:"c-1ac54bc7be",Component:s},{id:"c-26ecfcf06f",Component:n},{id:"c-6683d9d5f4",Component:i},{id:"c-69512aae30",Component:p},{id:"c-6af75eae29",Component:m},{id:"c-79bec0da54",Component:r},{id:"c-a5a5b38779",Component:c},{id:"c-b10dea3c1d",Component:I},{id:"c-b48662fbe2",Component:f},{id:"c-d672a5cd5c",Component:l},{id:"c-eb4bbaad76",Component:d},{id:"c-f48487f00e",Component:C},{id:"c-fec5d825bc",Component:a}]});e();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:b});export{u as mountRoute,X as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as s,b as p,c,d as f,e as l,f as C}from"./chunks/side-toggle-8c21d39a1e284887.js";import{$4r as r,$4s as d}from"./chunks/shared-init-926144b364908b3c.js";import{$0j as a}from"./chunks/shared-init-926144b364908b3c.js";import{$3f as i,$3g as m}from"./chunks/shared-init-926144b364908b3c.js";import"./chunks/wular-pnext-9b28886f3cbe0ed3-0.js";import"./chunks/shared-init-926144b364908b3c.js";import"./chunks/shared-init-926144b364908b3c.js";import{$4a as o}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$1a as n}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$2c as e}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import{$0i as t}from"./chunks/shared-init-9b28886f3cbe0ed3-2.js";import"./chunks/shared-init-9b28886f3cbe0ed3-2.js";var{mountRoute:u,remountRoute:P,unmountRoute:b}=o({islands:[{id:"c-1ac54bc7be",Component:s},{id:"c-26ecfcf06f",Component:n},{id:"c-6683d9d5f4",Component:a},{id:"c-69512aae30",Component:p},{id:"c-6af75eae29",Component:i},{id:"c-79bec0da54",Component:r},{id:"c-a5a5b38779",Component:c},{id:"c-b48662fbe2",Component:f},{id:"c-d672a5cd5c",Component:l},{id:"c-da3eb23c73",options:{},load:()=>import("./chunks/create-link-b2480a7601967e94.js").then(I=>I.CreateLink)},{id:"c-eb4bbaad76",Component:d},{id:"c-f48487f00e",Component:C},{id:"c-fec5d825bc",Component:m}]});e();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:b});export{u as mountRoute,P as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{A as e,Bn as t,C as n,D as r,Ea as i,En as a,M as o,T as s,Tn as c,b as l,h as u,j as d,k as f,m as p,p as m,sa as h,w as g}from"./args-CJsHYWbt.js";import{t as _}from"./errors-DK_trCff.js";import{K as v}from"./state-Br-Fuaxg.js";import{y}from"./app-server-BTpa5GBV.js";import"./dispatch-BaW2X6Sc.js";import b from"node:process";import x from"node:os";var S=i({loadServerConfig:()=>j,requireBunServer:()=>N,rerunUnderBun:()=>P});const C=e=>p(m().check(l(),a()),e),w=r(s(d()),o(e=>e===`1`)),T=(e,t)=>d().check(c(e=>e.replace(/\/$/,``)),f(e=>URL.canParse(e),{error:`must be a URL`,abort:!0}),f(t=>e(new URL(t)),t)),E=e=>r(o(e=>e||void 0),e),D=r(d(),o((e,t)=>{try{let t=JSON.parse(e);if(t&&!Array.isArray(t)&&typeof t==`object`)return t}catch{}return t.issues.push({code:`custom`,message:`must be a JSON object`,input:e}),h})),O=g({AUTH_WULAR_URL:p(T(e=>e.protocol===`https:`||e.hostname===`localhost`,`must use HTTPS unless it is localhost`),`https://auth.wular.ai`)}),k=g({SERVER_LIMITS:E(s(r(D,e({principalPerMinute:s(n().check(l(),a())),authPerMinute:s(n().check(l(),a())),registerPerMinute:s(n().check(l(),a())),ipPerMinute:s(n().check(l(),a())),pairingPerMinute:s(n().check(l(),a())),concurrentTasks:s(n().check(l(),a()))})))),RUNNER:s(u([`local`,`local-docker`,`vercel-sandbox`,`github-actions`,`http`])),RUNNER_CONFIG:E(p(D,{})),WORK_DIR:s(d()),SERVER_ENCRYPTION_KEY:s(d()),SERVER_ENCRYPTION_KEY_PREVIOUS:s(d()),ADMIN_TOKEN:s(d()),PUBLIC_URL:E(s(T(e=>e.pathname===`/`&&!e.search&&!e.hash,`must be an origin, with no path, query or fragment`))),SERVER_NAME:s(d().check(t())),ISSUES_URL:E(s(T(()=>!0,`must be a URL`))),VERCEL_PROJECT_PRODUCTION_URL:s(d()),VERCEL_URL:s(d()),VERCEL:s(d()),DATABASE_URL:s(d()),POSTGRES_URL:s(d()),DATABASE_POOL_MAX:s(m().check(l(),a())),DATABASE_IDLE_TIMEOUT:s(m().check(l(),a())),MAX_TASKS:s(m().check(l(),a())),MAX_QUEUED:C(1e3),TASK_STALL:C(3e5),TASK_ATTEMPTS:C(2),TASK_TIMEOUT:C(18e5),CLAUDE_SUBSCRIPTIONS:w,CODEX_SUBSCRIPTIONS:w,SERVER_INTEGRATIONS:E(s(d())),SERVER_OPERATORS:E(s(d()))});function A(e,t){let n=e.safeParse(t);if(n.success)return n.data;let r=n.error.issues[0];throw new _(`invalid-option`,`Invalid server configuration:${String(r.path[0])} ${r.message}`)}function j(e=b.env,t=`node`){let n=A(k,e),r=n.DATABASE_URL??n.POSTGRES_URL,i=r?`postgres`:`memory`;if(i===`postgres`&&!n.SERVER_ENCRYPTION_KEY)throw new _(`invalid-option`,`SERVER_ENCRYPTION_KEY is required with DATABASE_URL`);let a=t===`vercel`?n.VERCEL_PROJECT_PRODUCTION_URL??n.VERCEL_URL:void 0,o=n.PUBLIC_URL??(a?`https://${a}`:void 0),s=i===`postgres`?A(O,e).AUTH_WULAR_URL:void 0;return{runner:n.RUNNER??(t===`vercel`||n.VERCEL?`vercel-sandbox`:`local`),store:i,workDir:n.WORK_DIR??v(),...n.SERVER_ENCRYPTION_KEY?{encryptionKey:n.SERVER_ENCRYPTION_KEY}:{},...n.SERVER_ENCRYPTION_KEY_PREVIOUS?{previousEncryptionKey:n.SERVER_ENCRYPTION_KEY_PREVIOUS}:{},...n.ADMIN_TOKEN?{adminToken:n.ADMIN_TOKEN}:{},...o?{publicUrl:o}:{},...n.SERVER_NAME?{name:n.SERVER_NAME}:{},issuesUrl:n.ISSUES_URL??`https://github.com/muzam1l/coder/issues/new`,...r?{databaseUrl:r,databasePool:{max:n.DATABASE_POOL_MAX??(t===`vercel`||n.VERCEL?2:10),idleTimeout:n.DATABASE_IDLE_TIMEOUT??(t===`vercel`||n.VERCEL?30:240)}}:{},runnerConfig:n.RUNNER_CONFIG,maxTasks:n.MAX_TASKS,limits:n.SERVER_LIMITS,maxQueued:n.MAX_QUEUED,taskTimeoutMs:n.TASK_TIMEOUT,taskStallMs:n.TASK_STALL,taskAttempts:n.TASK_ATTEMPTS,...n.CLAUDE_SUBSCRIPTIONS||n.CODEX_SUBSCRIPTIONS?{subscriptions:{claude:n.CLAUDE_SUBSCRIPTIONS,codex:n.CODEX_SUBSCRIPTIONS}}:{},...s?{auth:{wular:{url:s}}}:{},...n.SERVER_INTEGRATIONS?{integrations:n.SERVER_INTEGRATIONS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{},...n.SERVER_OPERATORS?{operators:n.SERVER_OPERATORS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{}}}function M(){return new _(`invalid-option`,`The Coder server needs Bun; the CLI itself runs on Node.`,{hint:[b.platform===`win32`?`Install Bun: powershell -c "irm bun.sh/install.ps1 | iex"`:`Install Bun: curl -fsSL https://bun.sh/install | bash`,`Or with npm: npm install -g bun`,`Then run the command again. More: https://bun.sh/docs/installation`]})}function N(){if(typeof Bun>`u`)throw M()}async function P(){if(typeof Bun<`u`)return;let e=b.platform===`win32`?[`bun.exe`,`bun.cmd`,`bun`]:[`bun`];for(let t of e){let e=await y(t);if(e.error?.code!==`ENOENT`&&e.error?.code!==`EINVAL`){if(e.error)throw e.error;if(e.signal){let t=x.constants.signals[e.signal];b.exit(typeof t==`number`?128+t:1)}b.exit(e.status??1)}}throw M()}export{j as n,N as r,S as t};
@@ -1,9 +0,0 @@
1
- import{Ea as e,N as t,P as n,S as r,T as i,_ as a,g as o,h as s,j as c,w as l,x as u}from"./args-CJsHYWbt.js";import{n as d}from"./types-DHBqXFE2.js";import{r as f}from"./crypto-Ittsv-m4.js";import{createHash as ee,createHmac as p,randomUUID as te}from"node:crypto";const m=`https://api.github.com`;function h(e,t=`application/vnd.github+json`){return{accept:t,...e?{authorization:`Bearer ${e}`}:{},"user-agent":`coder`,"x-github-api-version":`2022-11-28`}}function ne(e,t){return e.hook.before(`request`,e=>{e.request={...e.request,fetch:t}}),e}async function g(e,t=fetch){let[{createGitHubAdapter:n},{ConsoleLogger:r}]=await Promise.all([import(`./dist-Clxdruuu.js`),import(`./dist-B5qUdWUG.js`)]);return ne(n({...typeof e==`string`?{installationToken:e}:e,apiUrl:m,webhookVerifier:()=>!1,logger:new r(`error`)}).octokit,t)}const _=e=>t=>{if(!e.includes(t.status??0))throw t},v=e=>{let[t=``,n=``]=e.split(`/`);return{owner:t,repo:n}};async function re(e,t,n,r){let i=await(await g(n)).repos.getContent({...v(e),path:t,...r?{ref:r}:{},mediaType:{format:`raw`}}).catch(_([404]));return typeof i?.data==`string`?i.data:void 0}async function ie(e,t,n,r){let i=new URL(`${m}/repos/${e}/contents/${t}`);r.ref&&i.searchParams.set(`ref`,r.ref);let a=await r.fetch(i,{headers:{...h(n),...r.etag?{"if-none-match":r.etag}:{}}});if(a.status===304)return`unchanged`;let o=a.headers.get(`etag`)??void 0;if(a.status===404)return o?{etag:o}:{};if(!a.ok)throw Error(`GitHub answered ${a.status} reading ${e}/${t}`);let s=await a.json(),c=s.type===`file`&&s.encoding===`base64`?Buffer.from(s.content??``,`base64`).toString():void 0;return{...c===void 0?{}:{text:c},...o?{etag:o}:{}}}async function ae(e,t,n){let r=await(await g(n)).repos.getCommit({...v(e),ref:t,mediaType:{format:`sha`}}).catch(_([404,422]));return r?String(r.data).trim():void 0}async function oe(e,t,n,r=`HEAD`){let i=await g(n),a=v(e),o=`${t}/`,s=await i.git.getTree({...a,tree_sha:r,recursive:`1`}).catch(_([404]));if(!s)return[];let c=[],l=e=>e.startsWith(o)&&e.slice(o.length).split(`/`).length<=22;if(!s.data.truncated)return s.data.tree.flatMap(e=>e.type===`blob`&&e.path&&l(e.path)?[e.path.slice(o.length)]:[]);let u=async(e,t=``)=>{let{data:n}=await i.git.getTree({...a,tree_sha:e});await Promise.all(n.tree.map(async e=>{let n=t?`${t}/${e.path}`:e.path;n&&(e.type===`blob`&&l(n)?c.push(n.slice(o.length)):e.type===`tree`&&e.sha&&(o.startsWith(`${n}/`)||n.startsWith(o)&&l(n))&&await u(e.sha,n))}))};return await u(r),c.sort()}async function se(e,t,n,r){let i=await(await g(n)).repos.getContent({...v(e),path:t,...r?{ref:r}:{}}).catch(_([404]));return Array.isArray(i?.data)?i.data.map(e=>e.name):[]}async function ce(e,t=fetch){let n=[];for(let r=1;;r++){let i=await t(`${m}/installation/repositories?per_page=100&page=${r}`,{headers:{...h(e),authorization:`token ${e}`},signal:AbortSignal.timeout(1e4)});if(!i.ok)throw Error(`GitHub repositories failed: ${i.status}`);let a=await i.json();if(n.push(...a.repositories.map(e=>e.full_name)),n.length>=a.total_count||a.repositories.length<100)break}return[...new Set(n)]}async function le(e,t){let{data:n}=await(await g(t)).pulls.list({...v(e),state:`open`,sort:`created`,direction:`desc`,per_page:50});return n.map(e=>({number:e.number,title:e.title,author:e.user?.login,createdAt:e.created_at}))}async function ue(e,t){let{data:n}=await(await g(t)).repos.get(v(e));return{owner:n.owner.login,name:n.name,cloneUrl:n.clone_url,defaultBranch:n.default_branch}}async function de(e,t,n,r){let i=await(await g(n,r)).repos.getCollaboratorPermissionLevel({...v(e),username:t}).catch(()=>void 0);return[`admin`,`maintain`,`write`].includes(i?.data.permission??``)}async function fe(e,t,n,r){let i=await g(t,n),a=await i.paginate(i.repos.listCollaborators,{...v(e),affiliation:`all`,per_page:100}).catch(e=>{if(e.status!==403||!r)throw e});if(a)return a.map(e=>String(e.id));let o=[];for(let{id:t,login:n}of await r()){let r=n??(await i.request(`GET /user/{account_id}`,{account_id:Number(t)}).catch(_([404])))?.data.login,a=r&&await i.repos.getCollaboratorPermissionLevel({...v(e),username:r}).catch(_([404]));a&&a.data.permission!==`none`&&String(a.data.user?.id)===t&&o.push(t)}return o}async function pe(e,t,n){let r=await g(t,n),[i=``,a=``]=e.split(`/`);return(await r.paginate(r.teams.listReposInOrg,{org:i,team_slug:a,per_page:100})).map(e=>e.full_name)}function me(e,t,n){let r=`https://github.com/${e}`;return t?`${r}/tree/${n??`HEAD`}/${t}`:r}const y={"read-only":[`read`],auto:[`read`,`write`]};function he(e,t,n,r){return{name:`github`,command:`github-mcp-server`,args:[`stdio`,`--toolsets=all`,...e.includes(`write`)?[]:[`--read-only`]],env:{GITHUB_PERSONAL_ACCESS_TOKEN:n},description:r?`On the user's token; acts as the user, in repositories both the user and this agent's GitHub App can access.`:`On the installation token; the repositories the app is installed on.`,instructions:[`issue_read reads an issue with its comments.`,`pull_request_read reads a pull request: get, get_diff, get_files, get_comments, get_reviews, get_review_comments.`].join(` `)}}function ge(e,{name:t,description:n,permissions:r,events:i,isPublic:a=!1}){let o=e.replace(/\/$/,``);return{name:t,...n?{description:n}:{},url:o,hook_attributes:{url:`${o}/hooks/github`,active:!0},redirect_url:`${o}/create/github/callback`,callback_urls:[`${o}/install/github/callback`,`${o}/connect/github/callback`],request_oauth_on_install:!0,public:a,default_permissions:r,default_events:[...new Set([...i,`repository`])]}}function _e(e,t){let n=e?`https://github.com/organizations/${encodeURIComponent(e)}/settings/apps/new`:`https://github.com/settings/apps/new`;return t?`${n}?state=${encodeURIComponent(t)}`:n}async function ve(e,t=fetch){let n=await t(`${m}/app-manifests/${encodeURIComponent(e)}/conversions`,{method:`POST`,headers:h()});if(!n.ok)throw Error(`GitHub App manifest conversion failed: ${n.status}`);let r=await n.json(),i=r.app_id??r.id;if(!i||!r.slug||!r.pem||!r.webhook_secret||!r.client_id||!r.client_secret)throw Error(`GitHub App manifest conversion response was incomplete`);return{appId:String(i),slug:r.slug,privateKey:r.pem,webhookSecret:r.webhook_secret,clientId:r.client_id,clientSecret:r.client_secret,...r.owner?.login?{owner:{login:r.owner.login,type:r.owner.type}}:{}}}const b=`https://github.com/login/oauth`,ye=e=>`${e.replace(/\/$/,``)}/install/github/callback`;function x(e){let{clientId:t,clientSecret:n}=e;if(!t||!n)throw Error(`This GitHub App has no OAuth client; create it again`);return{clientId:t,clientSecret:n}}async function be(e,t,n,r){let{clientId:i,clientSecret:a}=x(e),o=await n(`${b}/access_token`,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({client_id:i,client_secret:a,...t})}),s=await o.json().catch(()=>({}));if(!o.ok||!s.access_token)throw new d(`platform-error`,s.error??String(o.status),`GitHub authorization failed: ${s.error_description??s.error??o.status}`);return{accessToken:s.access_token,...s.refresh_token?{refreshToken:s.refresh_token}:{},...s.expires_in?{expiresAt:r+s.expires_in*1e3}:{}}}async function xe(e,t){let n=await t(`${m}/user`,{headers:h(e)}),r=await n.json().catch(()=>({}));if(!n.ok||!r.id||!r.login)throw Error(`GitHub user lookup failed: ${n.status}`);return{id:r.id,login:r.login}}async function Se(e,t,n,r=fetch){for(let i=1;i<=10;i++){let a=await r(`${m}/user/installations?per_page=100&page=${i}`,{headers:h(e)});if(!a.ok)throw Error(`GitHub installation check failed: ${a.status}`);let o=(await a.json()).installations??[],s=o.find(e=>String(e.id)===n&&String(e.app_id)===t);if(s)return{login:s.account?.login??`unknown`,...s.account?.type?{type:s.account.type}:{}};if(o.length<100)return}}async function S(e){let{createAppAuth:t}=await import(`./dist-node-B8VIVzUc.js`),{token:n}=await t({appId:e.appId,privateKey:e.privateKey})({type:`app`});return n}async function Ce(e,t,n=fetch){let r=await S(e),i=await n(`${m}/app/installations/${encodeURIComponent(t)}`,{headers:h(r)});if(i.status===404)return!1;if(!i.ok)throw Error(`GitHub installation lookup failed: ${i.status}`);return!0}async function we(e,t,n,r){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw new d(`missing-code`);let a=await be(t,{code:i,...n?{redirect_uri:n}:{}},r,Date.now()),o=await xe(a.accessToken,r);return{id:String(o.id),login:o.login,token:JSON.stringify(a),accessToken:a.accessToken}}const Te={authorizeUrl(e,{publicUrl:t,state:n}){let r=new URLSearchParams({client_id:x(e).clientId,redirect_uri:`${t.replace(/\/$/,``)}/connect/github/callback`,state:n});return`${b}/authorize?${r}`},async exchange(e,t,{publicUrl:n,fetch:r}){let{accessToken:i,...a}=await we(e,t,`${n.replace(/\/$/,``)}/connect/github/callback`,r);return a},async access(e,t,{fetch:n,now:r,force:i}){let a=JSON.parse(e);if(!a.refreshToken){if(i)throw new d(`platform-error`,`invalid_token`,`The refused token has no refresh token`);return{accessToken:a.accessToken}}if(!i&&(!a.expiresAt||a.expiresAt-3e5>r))return{accessToken:a.accessToken};let o=await be(t,{grant_type:`refresh_token`,refresh_token:a.refreshToken},n,r);return{accessToken:o.accessToken,refreshed:JSON.stringify(o)}}};function Ee(e){return Array.isArray(e)?e.every(e=>y[`read-only`].includes(e))?`read-only`:`auto`:e}const De={"read-only":{metadata:`read`,contents:`read`,pull_requests:`write`,issues:`write`},auto:{metadata:`read`,contents:`write`,pull_requests:`write`,issues:`write`}};function C(e=`auto`){return{...De[Ee(e)]}}const w={pull_request:[`pull_request`],issue:[`issues`],comment:[`issue_comment`,`pull_request_review_comment`],mention:[`issue_comment`,`pull_request_review_comment`]},Oe=[`member`,`membership`,`organization`,`team`];function ke(e){return[...new Set([...e.flatMap(e=>w[e]??[]),`push`,`repository`,...Oe])]}function T(e,t,n){let{events:r}=t;return ge(e,{name:t.name,description:t.description,permissions:{...C(t.access),...r.some(e=>Object.hasOwn(w,e))?{issues:`write`,pull_requests:`write`}:{},members:`read`},events:ke(r),isPublic:n})}const E=(e,t)=>t?.type===`Organization`?`https://github.com/organizations/${encodeURIComponent(t.login)}/settings/apps/${e}`:`https://github.com/settings/apps/${e}`,Ae={read:1,write:2,admin:3},je={read:`Read-only`,write:`Read and write`,admin:`Admin`},D=e=>e[0].toUpperCase()+e.slice(1).replaceAll(`_`,` `);async function Me(e,t,{publicUrl:n,spec:r,fetch:i}){let a=await i(`${m}/app`,{headers:h(await S(t))});if(!a.ok)throw Error(`GitHub app lookup failed: ${a.status}`);let o=await a.json(),s=T(n,r),c=new Set(o.events??[]),l=o.permissions??{},u=[],d=s.description??``;d!==(o.description??``)&&u.push(d?{text:`Set the **Description**`,copy:d}:{text:`Clear the **Description**`});for(let[e,t]of Object.entries(s.default_permissions))(Ae[l[e]??``]??0)<(Ae[t]??0)&&u.push({text:`Set **${D(e)}** to **${je[t]??t}**`});for(let e of s.default_events)c.has(e)||u.push({text:`Check the **${D(e)}** event`});for(let e of c)s.default_events.includes(e)||u.push({text:`Uncheck the **${D(e)}** event`});let f=o.owner?.login?{login:o.owner.login,type:o.owner.type}:t.owner;return{url:`${E(o.slug??t.slug,f)}/permissions`,label:`Open app settings`,lines:u}}const Ne={shareable:!0,postOrigins:[`https://github.com`],createPost({publicUrl:e,spec:t,state:n,owner:r,public:i}){let a=T(e,t,i===!0);return{url:_e(r,n),fields:{manifest:JSON.stringify(a)}}},async createCallback(e,{fetch:t}){let n=new URL(e.url).searchParams.get(`code`);if(!n)throw new d(`missing-code`);let r=await ve(n,t),i={appId:r.appId,slug:r.slug,privateKey:r.privateKey,webhookSecret:r.webhookSecret,clientId:r.clientId,clientSecret:r.clientSecret,...r.owner?{owner:r.owner}:{}};return{platformAppId:r.appId,name:r.slug,credentials:i}},accountUrl:({login:e})=>`https://github.com/${encodeURIComponent(e)}`,async uninstall(e,t,{fetch:n}){let r=e.id.split(`:`).pop(),i=await n(`${m}/app/installations/${encodeURIComponent(r)}`,{method:`DELETE`,headers:h(await S(t))});if(!i.ok)throw Error(`GitHub answered ${i.status} to the uninstall`)},installationUrl:({id:e,account:t})=>t.type===`Organization`?`https://github.com/organizations/${encodeURIComponent(t.login)}/settings/installations/${e.split(`:`).pop()}`:`https://github.com/settings/installations/${e.split(`:`).pop()}`,settingsUrl(e,t){let{slug:n,owner:r}=t;return r?E(n,r):void 0},drift:(e,t,n)=>Me(e,t,n),installUrl(e,t,{publicUrl:n,state:r,installation:i}){let{slug:a}=t;if(!i)return`https://github.com/apps/${a}/installations/new?state=${encodeURIComponent(r)}`;let o=new URLSearchParams({client_id:x(t).clientId,redirect_uri:ye(n),state:r});return`${b}/authorize?${o}`},async installedApp(e,{apps:t,fetch:n}){let r=new URL(e.url).searchParams.get(`installation_id`);if(!(!r||!/^\d+$/.test(r))){for(let{app:e,credentials:i}of t)if(await Ce(i,r,n).catch(t=>(console.error(`asking GitHub whether ${e.id} owns installation ${r} failed`,t),!1)))return{app:e,installation:r}}},async installCallback(e,{credentials:t,publicUrl:n,fetch:r,installation:i}){let a=i??new URL(e.url).searchParams.get(`installation_id`);if(!a)throw new d(`missing-code`);let{accessToken:o,...s}=await we(e,t,i?ye(n):void 0,r),c=await Se(o,t.appId,a,r);if(!c)throw new d(`not-yours`);return{platformInstallId:a,account:c,installer:s.id,user:s}}};async function Pe(e,t,n={},r){let{token:i,expiresAt:a}=await(await g({appId:e.appId,privateKey:e.privateKey,installationId:Number(t)},r)).auth({type:`installation`,installationId:t,...n.permissions?{permissions:n.permissions}:{}});return{token:i,expiresAt:Date.parse(a)}}function Fe(e,t){let{appId:n,privateKey:r}=e,{permissions:i}=Ie(t);return ee(`sha256`).update(JSON.stringify([n,r,i?Object.entries(i).sort():null])).digest(`base64url`)}function Ie(e={}){return e.tools?{permissions:C(e.tools)}:{}}const Le=async(e,t,n,{fetch:r,hold:i}={})=>{let a=()=>Pe(t,e.id.split(`:`).pop(),Ie(n),r);return i?i(Fe(t,n),a):(await a()).token};function O(e){return e&&typeof e==`object`?e:{}}function k(e){return e?.agent===!0||e?.type===`Bot`||e?.login?.endsWith(`[bot]`)===!0}function Re(e,t){return[e,t].filter(e=>!!e).join(`
2
-
3
- `)}const ze=(e,t)=>RegExp(`(^|[^\\w-])@${t}(?![\\w-])`,`i`).test(e),Be=[`OWNER`,`MEMBER`],Ve=[`issue_comment`,`pull_request_review_comment`],He=[...Ve,`ping`];function A(e){try{return JSON.parse(e)}catch{return}}function Ue(e,t,n){if(!n||!t?.startsWith(`sha256=`))return!1;let r=Buffer.from(p(`sha256`,n).update(e).digest(`hex`),`hex`);return f(Buffer.from(t.slice(7),`hex`),r)}function We(e,t,n,r,i){let a=n.installation?.id,o=M(n),s=i.user??n.sender;if(a===void 0||!o||!i.number)return;let c=s?.author_association;return{integration:`github`,type:r,appId:t.id,installationId:String(a),deliveryId:e.headers.get(`x-github-delivery`)??``,actor:{id:String(s?.id??s?.login??``),...s?.login?{login:s.login}:{},...c?{role:c}:{},...k(s)?{agent:!0}:{}},text:i.body??``,...ze(i.body??``,i.slug)?{mentioned:!0}:{},repo:o,space:j(n),chat:{thread:N(`${o.owner}/${o.name}`,i.number,i.kind===`pull`)}}}function j(e){let t=e.repository;if(!(!t?.owner?.login||!t.name))return{kind:`repository`,id:`${t.owner.login}/${t.name}`,...typeof t.private==`boolean`?{private:t.private}:{}}}function Ge(e){let t=e,n=j(t),r=t.installation?.id;if(!(!n||r===void 0)&&(t.action===`privatized`||t.action===`publicized`))return{installation:String(r),space:{...n,private:t.action===`privatized`}}}function Ke(e){let t=O(e),n=j(t),r=t.installation?.id,i=t.member?.id;if(!(!n||r===void 0||i===void 0)&&[`added`,`edited`,`removed`].includes(t.action??``))return{installation:String(r),space:{kind:n.kind,id:n.id},...t.action===`removed`?{left:String(i)}:{joined:String(i)}}}function qe(e,t){let n=O(t),r=n.installation?.id,i=n.organization?.login;if(r===void 0||!i)return;let a=String(r),o=n.team?.slug?`${i}/${n.team.slug}`:void 0,s=n.repository?.full_name,c=n.action??``;if(e===`membership`&&n.scope===`team`&&o)return{installation:a,team:o};if(e===`team`&&[`added_to_repository`,`removed_from_repository`].includes(c))return s?{installation:a,spaces:[s]}:o?{installation:a,team:o}:void 0;if(e===`team`&&c===`deleted`||e===`organization`&&[`member_added`,`member_removed`].includes(c))return{installation:a}}function M(e){let t=e.repository;return t?.owner?.login&&t.name&&t.clone_url&&t.default_branch?{owner:t.owner.login,name:t.name,cloneUrl:t.clone_url,defaultBranch:t.default_branch}:void 0}function N(e,t,n){return{_type:`chat:Thread`,adapterName:`github`,channelId:`github:${e}`,id:`github:${e}:${n?``:`issue:`}${t}`,isDM:!1}}function Je(e,t,n,r){let i=O(t),a=e.headers.get(`x-github-event`);if(a===`pull_request`){let t=i.pull_request,a=i.action??``,o=i.requested_reviewer?.login?.toLowerCase();if(!t||![`opened`,`synchronize`,`reopened`,`ready_for_review`,`review_requested`].includes(a)||a===`review_requested`&&o!==`${r.slug}[bot]`.toLowerCase()||t.draft||a!==`review_requested`&&k(t.user)||!t.number||t.head?.repo?.full_name!==i.repository?.full_name)return[];let s=We(e,n,i,`pull_request`,{user:i.sender??t.user,body:Re(t.title,t.body),number:t.number,kind:`pull`,slug:r.slug});return s?[s]:[]}if(a===`issues`){let t=i.issue;if(!t||![`opened`,`edited`].includes(i.action??``)||k(i.sender??t.user)||!t.number)return[];let a=We(e,n,i,`issue`,{user:i.sender??t.user,body:Re(t.title,t.body),number:t.number,slug:r.slug});return a?[a]:[]}return[]}const Ye={installation:[`created`,`deleted`,`suspend`,`unsuspend`,`new_permissions_accepted`],installation_repositories:[`added`,`removed`],repository:[`created`,`deleted`,`renamed`]};function Xe(e,t,n){let r=O(t),i=r.installation?.id,a=r.action;if(i===void 0||!Ye[e??``]?.includes(a??``))return;let o=r.installation?.account,s=Date.now(),c=e===`installation`&&(a===`deleted`||a===`suspend`);return{op:c?`delete`:`upsert`,...e===`repository`&&r.repository?.full_name?{repos:{add:a===`created`||a===`renamed`?[r.repository.full_name]:[],remove:a===`deleted`?[r.repository.full_name]:a===`renamed`&&r.changes?.repository?.name?.from?[`${r.repository.full_name.split(`/`)[0]}/${r.changes.repository.name.from}`]:[]}}:{},...e===`installation_repositories`?{repos:{...r.repository_selection&&(a===`removed`?!r.repositories_removed?.length:!r.repositories_added?.length)?{refresh:!0}:{},add:(r.repositories_added??[]).flatMap(e=>e.full_name?[e.full_name]:[]),remove:(r.repositories_removed??[]).flatMap(e=>e.full_name?[e.full_name]:[])}}:{},installation:{integration:`github`,...e===`installation`&&a===`deleted`?{uninstalled:!0}:{},id:`${n.id}:${i}`,app:n.id,account:{login:o?.login??r.repository?.owner?.login??`unknown`,...o?.type?{type:o.type}:{}},createdAt:s,...r.repositories?{repos:r.repositories.flatMap(e=>e.full_name?[e.full_name]:[])}:{},...c?{deletedAt:s}:{}}}}function Ze(e,t){let n=O(e),r=n.repository?.full_name,i=n.ref?.startsWith(`refs/heads/`)&&n.ref.slice(11);if(!r||!i)return;let a=n.installation?.id,o=n.commits??[],s=o.flatMap(e=>[...e.added??[],...e.modified??[],...e.removed??[]]);return{...a===void 0?{}:{installation:`${t.id}:${a}`},repo:r,branch:i,...n.after?{commit:n.after}:{},...n.repository?.default_branch?{defaultBranch:n.repository.default_branch}:{},paths:[...new Set(s)],...!o.length||o.length>=2048?{partial:!0}:{}}}function Qe(e,t){let n=e.headers.get(`x-github-hook-installation-target-id`);if(!n)return;let r=O(A(t)),i=M(r),a=j(r),o=r.issue?r.issue.comments:r.comment&&r.comment.in_reply_to_id===void 0?0:void 0;return{app:n,...r.installation?.id===void 0?{}:{installation:String(r.installation.id)},...i?{repo:i}:{},...a?{space:a}:{},...o===void 0?{}:{index:o}}}function $e(e,t,n,r){let i=e.headers.get(`x-github-event`);if(!i||He.includes(i))return;let{webhookSecret:a,slug:o}=r;if(!Ue(t,e.headers.get(`x-hub-signature-256`),a))return{invalid:!0};let s=A(t),c=i===`repository`?Ge(s):i===`member`?Ke(s):void 0;if(c)return{space:c};let l=qe(i,s);if(l)return{members:l};let u=Xe(i,s,n);if(u)return{installation:u};let d=i===`push`?Ze(s,n):void 0;return d?{push:d}:{events:Je(e,s,n,{slug:o})}}function et(e,t,n){let r=n.raw.comment?.author_association;return{type:e===`mention`&&!Be.includes(r??``)?`comment`:e,actor:{id:n.author.userId,login:n.author.userName,...r?{role:r}:{}}}}function tt(e){let t=/^github:([^:]+):(issue:)?(\d+)(?::rc:(\d+))?(?::|$)/.exec(e.chat?.thread.id??``);return t?`https://github.com/${t[1]}/${t[2]?`issues`:`pull`}/${t[3]}${t[4]?`#discussion_r${t[4]}`:``}`:void 0}const P=864e5,F=e=>`github:typing:${e}`;function nt(e){let t=/^github:[^:]+:(\d+)(?::|$)/.exec(e.chat?.thread.id??``);return t?Number(t[1]):void 0}async function rt(e){let[{GitHubAdapter:t},{ConsoleLogger:n}]=await Promise.all([import(`./dist-Clxdruuu.js`),import(`./dist-B5qUdWUG.js`)]);class r extends t{async handleWebhook(e,t){let n=e.headers.get(`x-github-event`)??``,r=await e.clone().text(),i=A(r);if(!Ve.includes(n)||i?.action!==`edited`||!this.chat)return super.handleWebhook(e,t);if(!await this.webhookVerifier?.(e,r))return new Response(`Invalid signature`,{status:401});let{comment:a,repository:o}=i,s={owner:o.owner.login,repo:o.name},c;if(n===`issue_comment`){let{number:e,pull_request:t}=i.issue,n=t?`pr`:`issue`,r=this.encodeThreadId({...s,prNumber:e,type:n});c=this.parseIssueComment(a,o,e,r,n)}else{let{number:e}=i.pull_request,t=a.in_reply_to_id??a.id,n=this.encodeThreadId({...s,prNumber:e,reviewCommentId:t});c=this.parseReviewComment(a,o,e,n)}return this.chat.processMessageUpdated({adapter:this,threadId:c.threadId,message:c},t),new Response(`ok`,{status:200})}reactions(e,t){let{owner:n,repo:r,prNumber:i,reviewCommentId:a}=this.decodeThreadId(e),o=`/repos/${n}/${r}`;return{owner:n,repo:r,path:t?`${o}/${a?`pulls`:`issues`}/comments/${t}/reactions`:`${o}/issues/${i}/reactions`}}async startTyping(e,t,n){let{owner:r,repo:i,path:a}=this.reactions(e,n?.messageId),{status:o,data:s}=await(await this.getOctokitForThread(r,i)).request(`POST ${a}`,{content:`eyes`});o===201&&await this.chat?.getState().appendToList(F(e),{path:a,id:s.id},{ttlMs:P})}async endTyping(e){let t=this.chat?.getState(),n=await t?.getList(F(e))??[];if(!n.length)return;await t.delete(F(e));let{owner:r,repo:i}=this.reactions(e),a=await this.getOctokitForThread(r,i);await Promise.all(n.map(({path:e,id:t})=>a.request(`DELETE ${e}/${t}`)))}async addReaction(e,t,n){await super.addReaction(e,t,n);let r=this.chat?.getState();if(this.emojiToGitHubReaction(n)!==`eyes`||!r)return;let{path:i}=this.reactions(e,t),a=await r.getList(F(e));if(a.some(e=>e.path===i)){await r.delete(F(e));for(let t of a.filter(e=>e.path!==i))await r.appendToList(F(e),t,{ttlMs:P})}}}let i=e.credentials?.webhookSecret,a=e.installationId,o,s=new r({userName:e.name,apiUrl:`https://api.github.com`,botUserId:0,installationToken:()=>a?o??=e.token(a,{tools:y[`read-only`]}):Promise.reject(Error(`The webhook names no GitHub installation`)),webhookVerifier:(e,t)=>Ue(t,e.headers.get(`x-hub-signature-256`),i),logger:new n(`error`)});return ne(s.octokit,e.fetch),s}const it={id:`github`,brand:{color:`#000000`,icon:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`,dark:`#fff`,svg:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 96" fill="none" style="color:light-dark(#000,#fff)"><g clip-path="url(#github-mark-4)"><path d="M 41.44 69.38 C 28.81 67.85 19.91 58.76 19.91 46.99 C 19.91 42.21 21.63 37.04 24.5 33.59 C 23.26 30.43 23.45 23.73 24.88 20.96 C 28.71 20.48 33.88 22.49 36.94 25.27 C 40.58 24.12 44.41 23.54 49.1 23.54 C 53.79 23.54 57.61 24.12 61.06 25.17 C 64.03 22.49 69.29 20.48 73.12 20.96 C 74.46 23.54 74.65 30.24 73.4 33.5 C 76.47 37.13 78.09 42.01 78.09 46.99 C 78.09 58.76 69.19 67.66 56.37 69.29 C 59.62 71.39 61.82 75.99 61.82 81.25 L 61.82 91.21 C 61.82 94.08 64.22 95.7 67.09 94.55 C 84.41 87.95 98 70.63 98 49.19 C 98 22.11 75.99 0 48.9 0 C 21.82 0 0 22.11 0 49.19 C 0 70.44 13.49 88.05 31.68 94.65 C 34.26 95.61 36.75 93.88 36.75 91.3 L 36.75 83.64 C 35.41 84.22 33.69 84.6 32.16 84.6 C 25.84 84.6 22.11 81.16 19.43 74.74 C 18.38 72.16 17.23 70.63 15.03 70.34 C 13.88 70.25 13.49 69.77 13.49 69.19 C 13.49 68.04 15.41 67.18 17.32 67.18 C 20.1 67.18 22.49 68.91 24.98 72.45 C 26.89 75.22 28.9 76.47 31.29 76.47 C 33.69 76.47 35.22 75.61 37.42 73.4 C 39.05 71.78 40.29 70.34 41.44 69.38 Z" fill="black" style="fill:currentColor"/></g><defs><clipPath id="github-mark-4"><rect width="98" height="96" fill="white"/></clipPath></defs></svg>`},name:`GitHub`,featured:!0,description:`Pull requests, issues, and comments on GitHub repositories`,installLabel:`Connect GitHub`,use:`Mention @{handle} in an issue or pull request.`,organizationApps:!0,publicApps:!0,prompt:[`A conversation is an issue or pull request with its comments and inline review threads; a reply goes to the thread that asked.`,"The repository is checked out on its default branch, without submodules; `git submodule update --init <path>` fetches one the work needs. Push to a pull request's branch only when it lives in this repository and changes were asked for; fork pull requests get reads and comments only.",`Replies are GitHub Markdown; cite file paths; link a pull request after changing it.`,`The review tool posts findings as inline review comments marked coder-review:fp.`].join(`
4
- `),sample:`github:owner/repo:1`,item:e=>e.replace(/:rc:\d+$/,``),author:e=>`${e}[bot]`,events:{mention:{description:`Comment from a repo owner or org member mentioning @<agent>; text has the mention stripped.`,on:`mention`,addressed:!0},pull_request:{description:`Opened, updated, or ready non-draft pull request.`},issue:{description:`Opened or edited issue.`},comment:{description:`New non-agent issue, pull request, or inline review comment.`,on:`message`,noisy:!0}},tools:{presets:y,server:he,install:`arch=$(uname -m); [ "$arch" = aarch64 ] && arch=arm64; curl -fsSL "https://github.com/github/github-mcp-server/releases/latest/download/github-mcp-server_Linux_$arch.tar.gz" | tar -xz -C /usr/local/bin github-mcp-server`,installHosts:[`github.com`,`release-assets.githubusercontent.com`]},hosts:[`github.com`,`api.github.com`,`codeload.github.com`],collapsed:(e,t)=>`<details><summary>${e}</summary>\n\n${t}\n\n</details>`,get app(){return Ne},auth:{token:Le,get user(){return Te},canWrite:async(e,t,n)=>!!(e.repo&&e.actor.login)&&de(`${e.repo.owner}/${e.repo.name}`,e.actor.login,t,n),members:(e,t,n,r)=>fe(e.id,t,n,r),teamSpaces:pe},repos:{cloneHosts:[`github.com`],credentialUsername:`x-access-token`,readFile:re,revalidate:ie,listDir:se,tree:oe,commit:ae,list:(e,t,n)=>ce(t,n),get:ue,url:me,pullRequests:le,pullRequest:nt,pullRequestThread:(e,t)=>N(e,t,!0)},target:Qe,adapter:rt,link:tt,ownEvents:$e,event:et};async function at(e,t,n=fetch){if(!e.actor.id||!e.installationId)throw Error(`Linear event has no actor or workspace`);let r=await n(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"content-type":`application/json`},body:JSON.stringify({query:`query WorkspaceMember($id: String!) { user(id: $id) { id active guest app organization { id } } }`,variables:{id:e.actor.id}}),redirect:`error`,signal:AbortSignal.timeout(5e3)}),i=await r.json(),a=i.data?.user;if(!r.ok||i.errors!==void 0&&(!Array.isArray(i.errors)||i.errors.length>0)||!a)throw Error(`Linear returned no valid workspace member`);return a.id===e.actor.id&&a.active===!0&&a.guest===!1&&a.app===!1&&a.organization?.id===e.installationId}async function ot(e,t,n=fetch){let r=/^linear:([^:]+)/.exec(e.chat?.thread.id??``)?.[1];if(!r)return;let i=await n(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"content-type":`application/json`},body:JSON.stringify({query:`query IssueTeam($issue: String!) { issue(id: $issue) { team { id private visibility } } }`,variables:{issue:r}}),redirect:`error`,signal:AbortSignal.timeout(5e3)}),a=await i.json(),o=a.data?.issue?.team;if(!i.ok||Array.isArray(a.errors)&&a.errors.length||typeof o?.id!=`string`)throw Error(`Linear returned no issue team`);return{kind:`team`,id:o.id,private:o.private!==!1||o.visibility!==`public`}}async function st(e,t,n=fetch){let r=[],i;do{let a=await n(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"content-type":`application/json`},body:JSON.stringify({query:`query TeamMembers($team: String!, $after: String) { team(id: $team) { members(first: 100, after: $after) { nodes { id } pageInfo { hasNextPage endCursor } } } }`,variables:{team:e.id,after:i}}),redirect:`error`,signal:AbortSignal.timeout(5e3)}),o=await a.json(),s=o.data?.team?.members;if(!a.ok||Array.isArray(o.errors)&&o.errors.length||!s?.nodes)throw Error(`Linear returned no team members`);r.push(...s.nodes.flatMap(e=>typeof e.id==`string`?[e.id]:[])),i=s.pageInfo?.hasNextPage?s.pageInfo.endCursor:void 0}while(i);return r}const ct={"read-only":[`read`],auto:[`read`,`write`]};function lt(e,t,n,r){return{name:`linear`,url:`https://mcp.linear.app/mcp${e.includes(`write`)?``:`/readonly`}`,headers:{Authorization:`Bearer ${n}`},credentialFields:{header:`Authorization`},description:r?`On the user's token; what the user can see.`:`On the app's token; the workspace the app is installed in.`,instructions:`get_issue reads an issue by id or identifier such as ENG-123.`}}async function ut(e,t){let n=new URLSearchParams(await e.text()),r=Object.fromEntries(t.map(e=>[e,n.get(e)?.trim()??``])),i=t.filter(e=>!r[e]);if(i.length)throw new d(`invalid-field`,i[0],`Missing ${i.join(`, `)}`);return r}async function I(e,t,n=fetch,r=Date.now()){let i=await n(e,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t)}),a=await i.json().catch(()=>({}));if(!i.ok||!a.access_token)throw new d(`platform-error`,a.error??String(i.status),`${new URL(e).host} refused the token request: ${a.error_description??a.error??i.status}`);return{accessToken:a.access_token,...a.refresh_token?{refreshToken:a.refresh_token}:{},...a.expires_in?{expiresAt:r+a.expires_in*1e3}:{},...a.id_token?{idToken:a.id_token}:{}}}async function L(e,t,n,r=Date.now(),i=!1){if(!e)throw Error(`The installation has no token; connect it again`);let a=JSON.parse(e);if(!a.refreshToken){if(i)throw new d(`platform-error`,`invalid_token`,`The refused token has no refresh token`);return a.accessToken}if(!i&&(a.expiresAt??1/0)-3e5>r)return a.accessToken;let{idToken:o,...s}=await t(a.refreshToken),c={...s,refreshToken:s.refreshToken??a.refreshToken},l=await n?.(JSON.stringify(c));return l?JSON.parse(l).accessToken:c.accessToken}const R=`https://api.linear.app/oauth/token`,dt=[`clientId`,`clientSecret`,`webhookSecret`],z={Issue:`Issues`,Comment:`Comments`},B=e=>e.replace(/\/$/,``);async function V(e,t,n){let r=await n(`https://api.linear.app/graphql`,{method:`POST`,headers:{authorization:`Bearer ${e}`,"content-type":`application/json`},body:JSON.stringify({query:t})}),i=await r.json().catch(()=>({}));if(!r.ok||!i.data)throw Error(`Linear refused the query: ${r.status}`);return i.data}function H(e,t,n,r,i=!1){return`https://linear.app/oauth/authorize?${new URLSearchParams({client_id:e.clientId,redirect_uri:t,response_type:`code`,scope:r?`read,write,app:mentionable`:i?`read,write`:`read`,state:n,...r?{actor:`app`}:{}})}`}function U(e,t,n,r){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw new d(`missing-code`);let{clientId:a,clientSecret:o}=t;return I(R,{grant_type:`authorization_code`,code:i,redirect_uri:n,client_id:a,client_secret:o},r)}function ft(e,t,n,r){let i=new URLSearchParams(n?{"oauth.client_name":n}:{});r&&i.set(`distribution`,`public`),i.set(`developer.name`,B(e).replace(/^https?:\/\//,``)),i.set(`oauth.client_uri`,B(e)),i.append(`oauth.redirect_uris`,`${B(e)}/install/linear/callback`),i.append(`oauth.redirect_uris`,`${B(e)}/connect/linear/callback`),i.set(`webhook.enabled`,`true`),i.set(`webhook.url`,`${B(e)}/hooks/linear?app=${t}`);for(let e of Object.keys(z))i.append(`webhook.resourceTypes`,e);return`https://linear.app/settings/api/applications/new?${i}`}const pt={shareable:!0,createStep:(e,{name:t,public:n}={},r=te())=>({intro:`Linear runs the agent as an app of your own OAuth application.`,link:ft(e,r,t,n),steps:[{text:`Open the link signed in to Linear, check the form and click **Create**.`},{text:`Copy the client ID, the client secret and the webhook signing secret into the fields below.`}],notes:[`The link fills in the name, the callback URLs and the webhook${n?`, and makes the app public so other Linear workspaces can install it`:``}.`,...n?[]:[`To install the app in other Linear workspaces, make it public in its Linear settings.`]],hidden:{key:r},fields:[{name:`clientId`,label:`Client ID`,placeholder:`9f3c2a7d1e8b4c6a0d5e7f1a2b3c4d5e`,required:!0},{name:`clientSecret`,label:`Client secret`,placeholder:`4b1e9c7a2d0f8e3c5a6b9d1f0e2c4a7b`,required:!0},{name:`webhookSecret`,label:`Webhook signing secret`,hint:`shown with the webhook settings`,placeholder:`lin_wh_…`,required:!0}],submit:`Create Linear app`}),settingsUrl:()=>`https://linear.app/settings/api`,values:(e,{publicUrl:t,spec:n})=>({url:`https://linear.app/settings/api`,label:`Open application`,lines:[{text:`Application name`,copy:n.name},{text:`Callback URL`,copy:`${B(t)}/install/linear/callback`},{text:`Callback URL`,copy:`${B(t)}/connect/linear/callback`},{text:`Webhook URL`,copy:`${B(t)}/hooks/linear?app=${e.id.slice(e.id.indexOf(`:`)+1)}`},{text:`Webhook events`,copy:Object.values(z).join(`, `)},{text:`Reinstall the app in each workspace after saving, so people can pick it in @ mentions`}]}),async createCallback(e,{spec:t}){let{key:n,...r}=await ut(e,[...dt,`key`]);if(!/^[0-9a-f-]{36}$/.test(n))throw new d(`invalid-field`,`key`);return{platformAppId:n,name:t.name,credentials:r}},accountUrl:({login:e})=>`https://linear.app/${encodeURIComponent(e)}`,async uninstall(e,t,{fetch:n}){if(!e.token)throw Error(`The installation has no token`);let{accessToken:r,refreshToken:i}=JSON.parse(e.token),a=await n(`https://api.linear.app/oauth/revoke`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(i?{token:i,token_type_hint:`refresh_token`}:{token:r,token_type_hint:`access_token`})});if(!a.ok)throw Error(`Linear answered ${a.status} to the revoke`)},installationUrl:()=>`https://linear.app/settings/applications`,installUrl(e,t,{publicUrl:n,state:r}){return H(t,`${B(n)}/install/linear/callback`,r,!0)},async installCallback(e,{credentials:t,publicUrl:n,fetch:r}){let{idToken:i,...a}=await U(e,t,`${B(n)}/install/linear/callback`,r),{organization:o,viewer:s}=await V(a.accessToken,`query { organization { id name urlKey } viewer { id } }`,r);return{platformInstallId:o.id,account:{login:o.urlKey},token:JSON.stringify(a),self:s.id}}},mt={authorizeUrl:(e,{publicUrl:t,state:n,access:r})=>H(e,`${B(t)}/connect/linear/callback`,n,!1,!!r),async exchange(e,t,{publicUrl:n,fetch:r,access:i}){let{idToken:a,...o}=await U(e,t,`${B(n)}/connect/linear/callback`,r),{viewer:s}=await V(o.accessToken,`query { viewer { id displayName } }`,r);return{id:s.id,login:s.displayName,...i?{token:JSON.stringify(o)}:{}}},async access(e,t,{fetch:n,now:r,force:i}){let{clientId:a,clientSecret:o}=t,s;return{accessToken:await L(e,e=>I(R,{grant_type:`refresh_token`,refresh_token:e,client_id:a,client_secret:o},n,r),async e=>{s=e},r,i),...s?{refreshed:s}:{}}}};function ht(e,t,n,r){let{clientId:i,clientSecret:a}=t;return L(e.token,e=>I(R,{grant_type:`refresh_token`,refresh_token:e,client_id:i,client_secret:a},r),n)}const W=864e5,G=e=>`linear:typing:${e}`;function gt(e,t,n,r=Date.now()){if(!n||!t)return!1;let i=p(`sha256`,n).update(e).digest();if(!f(Buffer.from(t,`hex`),i))return!1;let a=JSON.parse(e).webhookTimestamp;return typeof a==`number`&&Math.abs(r-a)<=6e4}function _t(e,t){let n=new URL(e.url).searchParams.get(`app`),r;try{r=JSON.parse(t)}catch{return}let i=r.organizationId,a=r.data?.issue,o=a?.teamId??a?.team?.id;return n&&typeof i==`string`?{app:n,installation:i,...r.type===`Comment`?{space:{kind:`team`,id:typeof o==`string`?o:``}}:{}}:void 0}const vt=(e,t)=>RegExp(`(^|[^\\w-])@${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(?![\\w-])`,`i`).test(e);function yt(e,t){let n=(e.labels??[]).filter(e=>t.labelIds&&e.id&&!t.labelIds.includes(e.id));return[`stateId`in t&&e.state?.name&&`Moved to ${e.state.name}`,n.length>0&&`Labeled ${n.map(e=>e.name).join(`, `)}`,`priority`in t&&e.priorityLabel&&`Priority ${e.priorityLabel}`,`assigneeId`in t&&(e.assignee?.name?`Assigned to ${e.assignee.name}`:`Unassigned`),(`title`in t||`description`in t)&&`Edited`].filter(e=>!!e)}function bt(e,t,n){let r=t.data;if(t.type!==`Issue`||t.actor?.type!==`user`||!t.actor.id||!r?.id||r.botActor||!t.organizationId)return;let i=[r.title,r.description].filter(Boolean).join(`
5
-
6
- `),a=t.action===`update`&&t.updatedFrom?yt(r,t.updatedFrom):[],o=t.action===`create`?i:a.length?`${a.join(`
7
- `)}\n\n${i}`:``;if(!o)return;let s={_type:`chat:Thread`,adapterName:`linear`,channelId:`linear:${r.id}`,id:`linear:${r.id}`,isDM:!1};return{integration:`linear`,type:`issue`,appId:n.id,installationId:t.organizationId,deliveryId:e.headers.get(`linear-delivery`)??``,actor:{id:t.actor.id,...t.actor.name?{login:t.actor.name}:{}},text:o,...t.action===`create`&&vt(i,n.name)?{mentioned:!0}:{},...r.teamId?{space:{kind:`team`,id:r.teamId}}:{},chat:{thread:s}}}function xt(e,t,n,r){let i=JSON.parse(t);if(i.type===`Comment`)return;let a=r.webhookSecret;if(!gt(t,e.headers.get(`linear-signature`),a))return{invalid:!0};if(i.type===`OAuthApp`)return i.action===`revoked`&&i.organizationId&&i.oauthClientId===n.id.slice(7)?{uninstalled:`${n.id}:${i.organizationId}`}:{invalid:!0};let o=bt(e,i,n);return o?{events:[o]}:{ack:!0}}async function St(e){let[{LinearAdapter:t},{ConsoleLogger:n,defaultEmojiResolver:r}]=await Promise.all([import(`./dist-DX0JzVC6.js`),import(`./dist-B5qUdWUG.js`)]);class i extends t{organization;installedSelf;saveSelf;constructor(e,t,n,r){super(e),this.organization=t,this.installedSelf=n,this.saveSelf=r}async initialize(e){this.chat=e}async resolveConnectIdentity(){let e=this.organization&&await this.installedSelf?.(this.organization);if(!e){await super.resolveConnectIdentity(),this.defaultBotUserId&&this.defaultOrganizationId===this.organization&&await this.saveSelf?.(this.organization,this.defaultBotUserId);return}this.defaultBotUserId=e,this.defaultOrganizationId=this.organization}async handle(){let e=this.chat.getState(),t=`linear:handle:${this.botUserId}`,n=await e.get(t);if(n)return n;let{displayName:r}=await this.getClient().user(this.botUserId);return await e.set(t,r,W),r}async onCommentEvent(e,t){let{data:n}=e,r=this.chat,i=e.action===`update`;if(!i&&e.action!==`create`||!r||!n.issueId||!n.user)return;let{issueId:a,user:o}=n;await this.withWebhookInstallation(e.organizationId,async()=>{let s=(/@|\/profiles\//.test(n.body)?await this.handle().catch(e=>{console.error(`coder server: could not read the Linear app user`,e)}):void 0)?.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),c=s&&RegExp(`https://linear\\.app/[^/\\s]+/profiles/${s}(?![\\w-])|(?<![\\w-])@${s}(?![\\w-])`,`gi`),l=c?n.body.replace(c,`@${this.userName}`):n.body,u=this.parseMessage({kind:`comment`,organizationId:e.organizationId,comment:{id:n.id,body:l,issueId:a,parentId:n.parentId??void 0,createdAt:n.createdAt,updatedAt:n.updatedAt,url:e.url??void 0,user:{type:`user`,id:o.id,displayName:/\/profiles\/([^/?#]+)/.exec(o.url)?.[1]??``,fullName:o.name,email:o.email,avatarUrl:o.avatarUrl??void 0}}}),d=this.encodeThreadId({issueId:a,commentId:n.parentId||n.id});i?r.processMessageUpdated({adapter:this,threadId:d,message:u},t):r.processMessage(this,d,u,t)})}bound(e){return this.requestContext.getStore()?e():this.organization?this.withInstallation(this.organization,e):Promise.reject(Error(`No Linear workspace to post for`))}postMessage(e,t){return this.bound(()=>super.postMessage(e,t))}editMessage(e,t,n){return this.bound(()=>super.editMessage(e,t,n))}addReaction(e,t,n){return this.bound(()=>super.addReaction(e,t,r.toGChat(n)))}startTyping(e,t,n){let{issueId:r,commentId:i}=this.decodeThreadId(e),a=n?.messageId??i;return this.bound(async()=>{await this.ensureValidToken();let{reaction:t}=await this.getClient().createReaction({...a?{commentId:a}:{issueId:r},emoji:`👀`});await this.chat?.getState().appendToList(G(e),t.id,{ttlMs:W})})}async endTyping(e){let t=this.chat?.getState(),n=await t?.getList(G(e))??[];n.length&&(await t.delete(G(e)),await this.bound(async()=>{await this.ensureValidToken(),await Promise.all(n.map(e=>this.getClient().deleteReaction(e)))}))}}let a=e.credentials?.webhookSecret,o=e.installationId;return new i({mode:`comments`,userName:e.name,apiUrl:`https://api.linear.app/graphql`,encryptionKey:``,accessToken:()=>o?e.token(o):Promise.reject(Error(`The webhook names no Linear workspace`)),webhookVerifier:(e,t)=>gt(t,e.headers.get(`linear-signature`),a),logger:new n(`error`)},o,e.installedSelf,e.saveSelf)}const Ct={id:`linear`,brand:{color:`#222326`,icon:`M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" fill="#222326" viewBox="0 0 100 100" style="fill:light-dark(#222326,#fff)"><path d="M 1.23 61.52 c -0.22 -0.95 0.91 -1.55 1.6 -0.86 L 39.33 97.18 c 0.69 0.69 0.09 1.82 -0.86 1.6 C 20.05 94.45 5.55 79.95 1.23 61.52 Z M 0 46.89 c -0.02 0.28 0.09 0.56 0.29 0.76 L 52.35 99.71 c 0.2 0.2 0.48 0.31 0.76 0.29 2.37 -0.15 4.69 -0.46 6.96 -0.93 0.76 -0.16 1.03 -1.1 0.48 -1.65 L 2.58 39.45 c -0.55 -0.55 -1.49 -0.29 -1.65 0.48 -0.47 2.27 -0.78 4.59 -0.93 6.96 Z M 4.21 29.71 c -0.17 0.37 -0.08 0.81 0.21 1.1 l 64.78 64.78 c 0.29 0.29 0.73 0.37 1.1 0.21 1.79 -0.8 3.52 -1.69 5.19 -2.68 0.55 -0.33 0.64 -1.09 0.18 -1.54 L 8.44 24.34 c -0.45 -0.45 -1.21 -0.37 -1.54 0.18 -0.99 1.67 -1.89 3.4 -2.68 5.19 Z M 12.66 18.07 c -0.37 -0.37 -0.39 -0.96 -0.04 -1.35 C 21.78 6.46 35.11 0 49.95 0 77.59 0 100 22.41 100 50.05 c 0 14.84 -6.46 28.17 -16.72 37.34 -0.39 0.35 -0.98 0.33 -1.35 -0.04 L 12.66 18.07 Z"/></svg>`},name:`Linear`,description:`Issues and comments in a Linear workspace`,installLabel:`Connect Linear`,use:`Mention @{handle} in a comment on an issue.`,sample:`linear:2f1e6a1c-0000-4000-8000-000000000001:c:5b7d3c2a-0000-4000-8000-000000000002`,item:e=>/^linear:[^:]+/.exec(e)?.[0]??e,prompt:[`A conversation is a Linear issue; each comment thread on it is a thread, and a reply goes to the thread that asked.`,`Replies are Markdown; link pull requests and issues by full URL.`].join(`
8
- `),events:{mention:{description:`Comment mentioning @<agent>; text has the mention stripped.`,on:`mention`,addressed:!0},issue:{description:"Issue created or changed by a person; text starts with the change, such as `Moved to In Review`."},comment:{description:`New comment by a person that does not mention the agent.`,on:`message`,noisy:!0}},tools:{presets:ct,server:lt},hosts:[`api.linear.app`,`mcp.linear.app`],get app(){return pt},auth:{canWrite:at,members:st,space:ot,token:(e,t,n,{save:r,fetch:i}={})=>ht(e,t,r,i),get user(){return mt}},target:_t,adapter:St,ownEvents:xt};function wt(e,t){let n=new Map;return(async(r,i)=>{let a=new Request(r,i);if(new URL(a.url).origin!==`https://slack.com`||new URL(a.url).pathname!==`/api/users.info`)return e(r,i);let o=new URLSearchParams(await a.clone().text()),s=a.headers.get(`authorization`)?.replace(/^Bearer /,``)??o.get(`token`),c=JSON.stringify([s,o.get(`team_id`)??t,o.get(`user`)]),l=n.get(c);return l||(l=e(r,i).then(async e=>{let t=await e.clone().json().catch(()=>void 0);return(!e.ok||t?.ok!==!0)&&n.delete(c),e}).catch(e=>{throw n.delete(c),e}),n.set(c,l)),(await l).clone()})}async function Tt(e,t,n=fetch){let r=e.account??e.installationId;if(!r||!e.actor.id)throw Error(`Slack event has no workspace or actor`);let i=await n(`https://slack.com/api/users.info`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({user:e.actor.id,team_id:r}),redirect:`error`,signal:AbortSignal.timeout(5e3)}),a=await i.json(),o=a.user;if(!i.ok||a.ok!==!0||!o)throw Error(`Slack returned no valid workspace member`);return o.id===e.actor.id&&o.deleted===!1&&o.is_bot===!1&&o.is_restricted===!1&&o.is_ultra_restricted===!1&&(o.is_external===void 0||o.is_external===!1)&&(o.team_id===r||Array.isArray(o.enterprise_user?.teams)&&o.enterprise_user.teams.includes(r))}async function Et(e,t,n,r){let i=await r(`https://slack.com/api/conversations.${e}`,{method:`POST`,headers:{authorization:`Bearer ${n}`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t),redirect:`error`,signal:AbortSignal.timeout(5e3)}),a=await i.json();if(!i.ok||a.ok!==!0)throw Error(`Slack conversations.${e} failed`);return a}async function Dt(e,t,n){let{channel:r}=await Et(`info`,{channel:e},t,n);if(!r)throw Error(`Slack returned no conversation`);return r.is_private===!1&&!r.is_im&&!r.is_mpim}async function Ot(e,t,n=fetch){if(e.space)return{...e.space,private:!await Dt(e.space.id,t,n)}}async function kt(e,t,n=fetch){let r=[],i=``;do{let a=await Et(`members`,{channel:e.id,limit:`200`,...i?{cursor:i}:{}},t,n);r.push(...a.members??[]),i=a.response_metadata?.next_cursor??``}while(i);return r}function At(e){let t=e?.data?.error;return[`invalid_auth`,`account_inactive`,`token_revoked`].includes(t??``)}async function jt(e,t){let n=await e.token();if(!n)return[];let r=await e.fetch(`https://slack.com/api/conversations.replies`,{method:`POST`,headers:{authorization:`Bearer ${n}`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t),redirect:`error`,signal:AbortSignal.timeout(5e3)}),i=await r.json();if(!r.ok||i.ok!==!0)throw Error(`Slack returned no thread`);return i.messages??[]}const Mt=e=>new Date(Number(e)*1e3).toISOString();async function Nt(e,t){let n=/^slack:([^:]+):(\d+\.\d+)$/.exec(e.chat?.thread.id??``),r=e.chat?.message;if(!n||!r||e.chat?.thread.isDM)return{};let[,i,a]=n;if(t.after===void 0){if(r.id===a)return{index:0};let[e]=await jt(t,{channel:i,ts:a,limit:`1`});return e?.reply_count===void 0?{}:{index:e.reply_count}}if(t.delivered)return{};let o=t.after;return{since:(await jt(t,{channel:i,ts:a,oldest:o,limit:`1000`})).filter(e=>e.ts&&e.ts!==a&&e.ts!==r.id&&e.ts>o&&!e.bot_id).map(e=>({id:e.ts,author:e.user_profile?.display_name||e.user_profile?.real_name||e.user||``,text:e.text??``,sentAt:Mt(e.ts)}))}}const Pt={"read-only":[`read`],auto:[`read`,`write`]};function Ft(e,t,n,r){let i=!e.includes(`write`);if(r)return{name:`slack`,url:`https://mcp.slack.com/mcp`,headers:{Authorization:`Bearer ${n}`},credentialFields:{header:`Authorization`},readOnly:i,description:`On the user's token; searches and reads everything the user can see.`};let a=`/tmp/coder-slack-${te()}`;return{name:`slack`,command:`slack-mcp-server`,readOnly:i,description:`On the bot token; reads the channels the bot is in and has no search.`,instructions:[`Read: channels_list lists channels;`,`conversations_history reads a channel's or DM's messages, including messages older than the conversation history the task's history tool returns;`,`conversations_replies reads a thread's by its thread_ts.`,`A channel_id is an id such as C0123, #channel-name, or @user for a DM.`,`Write, when allowed: conversations_add_message posts to a channel or thread; the reaction tools add or remove an emoji reaction.`].join(` `),args:[`--transport`,`stdio`],env:{SLACK_MCP_XOXB_TOKEN:n,SLACK_MCP_USERS_CACHE:`${a}-users.json`,SLACK_MCP_CHANNELS_CACHE:`${a}-channels.json`,SLACK_MCP_LOG_LEVEL:`error`,SLACK_MCP_ADD_MESSAGE_TOOL:i?``:`true`,SLACK_MCP_REACTION_TOOL:i?``:`true`,SLACK_MCP_ATTACHMENT_TOOL:`true`,SLACK_MCP_MARK_TOOL:i?``:`true`},credentialFields:{env:`SLACK_MCP_XOXB_TOKEN`}}}function K(e){return e.replace(/\/$/,``)}function It(e,{name:t,description:n,scopes:r,events:i,extras:a}){let o=K(e);return{display_information:{name:t,...n?{description:n.slice(0,140)}:{}},features:{bot_user:{display_name:t,always_online:!0},app_home:{home_tab_enabled:!0,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},...a},oauth_config:{redirect_urls:[`${o}/install/slack/callback`,`${o}/connect/slack/callback`],scopes:{bot:r,user:qt}},settings:{org_deploy_enabled:!0,is_mcp_enabled:!0,event_subscriptions:{request_url:`${o}/hooks/slack`,bot_events:i},interactivity:{is_enabled:!0,request_url:`${o}/hooks/slack`}}}}async function q(e,t,n,r){let{assertSlackOk:i,callSlackApi:a}=await import(`./api-qdpx8FD0.js`),o=await a(e,t,{token:n,fetch:r});return i(e,o),o}async function Lt(e,t,n=fetch){let r=await q(`apps.manifest.create`,{manifest:JSON.stringify(t)},e,n);return{appId:r.app_id,clientId:r.credentials.client_id,clientSecret:r.credentials.client_secret,signingSecret:r.credentials.signing_secret}}const J=e=>Yt(e.access,e.events);function Y(e,t,n){return It(e,{name:t,description:n.description,scopes:J(n),events:Qt(n.events),extras:$t(n)})}async function Rt(e,t=fetch){let n=await t(`https://slack.com/api/tooling.tokens.rotate`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({refresh_token:e})}),r=await n.json();if(!n.ok||!r.ok||!r.token||!r.refresh_token||!r.team_id||!r.user_id)throw new d(`platform-error`,r.error??String(n.status));return{workspace:r.team_id,user:r.user_id,configToken:r.token,configRefreshToken:r.refresh_token,configTokenExpires:(r.exp??0)*1e3}}async function zt(e,t,n,r){return e.use(t,async(e,t,i)=>{let a=e;if(a.configTokenExpires<=Date.now()+6e4){try{let e=await Rt(a.configRefreshToken,n);if(e.workspace!==a.workspace||e.user!==a.user)throw Error(`Configuration token owner changed`);a=e}catch{throw await i(),new d(`invalid-field`,`token`,`This configuration token could not be refreshed. Paste a new token.`)}await t(a)}return r(a.configToken)})}function Bt(e,t,n,r=[]){let i=new URLSearchParams({client_id:e.clientId,state:n,redirect_uri:`${K(t)}/install/slack/callback`});return r.length&&i.set(`scope`,r.join(`,`)),`https://slack.com/oauth/v2/authorize?${i}`}async function Vt(e,t,n,r){let i=await r(`https://slack.com/api/oauth.v2.access`,{method:`POST`,headers:{"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams({client_id:t.clientId,client_secret:t.clientSecret,code:e,redirect_uri:n})}),a=await i.json();if(!i.ok||!a.ok)throw new d(`platform-error`,a.error??String(i.status));return a}async function Ht(e,t,n,r=fetch){let i=await Vt(e,t,`${K(n)}/install/slack/callback`,r),a=i.is_enterprise_install===!0,o=a?i.enterprise:i.team;if(!i.access_token||!o?.id||!o.name)throw new d(`platform-error`);return{id:o.id,name:o.name,org:a,accessToken:i.access_token,...i.authed_user?.id?{installer:i.authed_user.id}:{}}}const Ut=e=>`${K(e)}/connect/slack/callback`,Wt={authorizeUrl(e,{publicUrl:t,state:n}){return`https://slack.com/oauth/v2/authorize?${new URLSearchParams({client_id:e.clientId,user_scope:qt.join(`,`),redirect_uri:Ut(t),state:n})}`},async exchange(e,t,{publicUrl:n,fetch:r}){let i=new URL(e.url).searchParams.get(`code`);if(!i)throw new d(`missing-code`);let{authed_user:a}=await Vt(i,t,Ut(n),r);if(!a?.id||!a.access_token||a.token_type!==`user`)throw new d(`platform-error`);let o=await q(`auth.test`,{},a.access_token,r);if(o.user_id!==a.id)throw new d(`platform-error`,`invalid_auth`);return{id:a.id,...o.user?{login:o.user}:{},token:JSON.stringify({accessToken:a.access_token})}},async access(e,t,{force:n}){if(n)throw new d(`platform-error`,`invalid_token`,`Slack refused the user token`);return{accessToken:JSON.parse(e).accessToken}}};async function Gt(e,t){let n=[],r=``;do{let i=await q(`auth.teams.list`,{limit:1e3,...r?{cursor:r}:{}},e,t);n.push(...i.teams.map(e=>e.id)),r=i.response_metadata?.next_cursor??``}while(r);return n}const Kt={createStep:(e,t)=>{let n=t?.saved??[],r=n.length?{field:`token`,equals:`new`}:void 0;return{intro:`The Slack app is created with a configuration token and its bot installed in the token's whole workspace.`,link:`https://api.slack.com/apps`,steps:[{...r?{when:r}:{},text:`Under **Your App Configuration Tokens**, click **Generate Token** and pick the workspace the agent should join.`},{text:`Paste the refresh token below, then approve the install when Slack asks.`,...r?{when:r}:{}}],notes:[`A workspace that requires app approval sends the install to its admins first. In Enterprise Grid, only an org admin can install org-wide.`,`To install the app in other Slack workspaces, click **Activate Public Distribution** under the app's **Manage Distribution**.`],fields:[...n.length?[{name:`token`,label:`Configuration token`,options:[...n.map(({id:e,label:t})=>({value:e,label:t})),{value:`new`,label:`Paste a new token`}]}]:[],{...r?{when:r}:{},name:`refreshToken`,label:`Refresh token`,hint:`Starts with xoxe-1-.`,placeholder:`xoxe-1-…`,required:!0}],submit:`Create Slack app`}},async createCallback(e,{publicUrl:t,spec:n,fetch:r,tokens:i}){if(!i)throw Error(`Configuration token storage is unavailable`);let a=new URLSearchParams(await e.text()),o=a.get(`token`);if(!o||o===`new`){let e=a.get(`refreshToken`);if(!e)throw Error(`Missing refresh token`);if(e.startsWith(`xoxe.xoxp-`))throw new d(`invalid-field`,`access-token`,`That is the access token, xoxe.xoxp-…. Paste the refresh token next to it, which starts with xoxe-1-.`);if(!e.startsWith(`xoxe-1-`))throw new d(`invalid-field`,`refresh-token`,`That is not a refresh token; they start with xoxe-1-. Copy it from Your App Configuration Tokens.`);let t=await Rt(e,r),n={workspace:t.workspace,user:t.user,workspaceName:t.workspace,credentials:t},s=await q(`auth.test`,{},t.configToken,r).catch(()=>void 0);o=await i.put({...n,workspaceName:s?.team||n.workspaceName})}let{name:s}=n,c=await zt(i,o,r,e=>Lt(e,Y(t,s,n),r));return{platformAppId:c.appId,name:s,credentials:{...c,configTokenId:o,scopes:J(n)}}},manifest:(e,{publicUrl:t,spec:n})=>Y(t,e.name,n),async update(e,t,{publicUrl:n,spec:r,fetch:i,saveCredentials:a,tokens:o}){let s=t;if(!s.configTokenId||!o)throw new d(`no-refresh-token`);await zt(o,s.configTokenId,i,t=>q(`apps.manifest.update`,{app_id:s.appId,manifest:JSON.stringify(Y(n,e.name,r))},t,i));let c=J(r);c.join()!==s.scopes?.join()&&await a({...s,scopes:c})},settingsUrl:(e,t)=>`https://api.slack.com/apps/${encodeURIComponent(t.appId)}`,async uninstall(e,t,{fetch:n}){let{clientId:r,clientSecret:i}=t,a=await tn(e,t);await q(`apps.uninstall`,{client_id:r,client_secret:i},a,n)},installationUrl:({account:e})=>new URL(`/apps/manage`,e.url??`https://my.slack.com`).href,installUrl(e,t,{publicUrl:n,state:r}){let i=t;return Bt(i,n,r,i.scopes??Yt(`auto`))},async installCallback(e,{app:t,credentials:n,publicUrl:r,fetch:i,tokens:a}){let o=new URL(e.url).searchParams.get(`code`);if(!o)throw new d(`missing-code`);let s=await Ht(o,n,r,i),c=n.configTokenId;a&&c&&!s.org&&await a.use(c,(e,t)=>t(e,s.name));let l=await q(`auth.test`,{},s.accessToken,i).then(e=>e.url?.replace(/\/$/,``)).catch(()=>void 0),u=s.org?await Gt(s.accessToken,i).catch(()=>null):void 0;return{platformInstallId:s.id,account:{login:s.name,...s.org?{type:`Organization`}:{},...l?{url:l}:{}},token:s.accessToken,...s.org?{covers:u}:{},installer:s.installer,...s.installer?{user:{id:s.installer}}:{}}}},qt=[`search:read.public`,`search:read.private`,`search:read.mpim`,`search:read.im`,`search:read.files`,`search:read.users`,`channels:history`,`groups:history`,`mpim:history`,`im:history`,`channels:read`,`groups:read`,`mpim:read`,`im:read`,`users:read`,`users:read.email`,`files:read`,`chat:write`],Jt=[`app_mentions:read`,`channels:history`,`groups:history`,`im:history`,`channels:read`,`groups:read`,`im:read`,`mpim:read`,`users:read`,`users:read.email`,`files:read`,`usergroups:read`,`reactions:read`,`reactions:write`];function Yt(e=`auto`,t=[]){return[...Jt,...t.includes(`dm`)?[`mpim:history`]:[],`chat:write`,`files:write`,`im:write`,`assistant:write`,...(Array.isArray(e)?e.includes(`write`):e===`auto`)?[`channels:join`,`channels:manage`,`groups:write`,`mpim:write`,`usergroups:write`]:[]]}const Xt={mention:[`app_mention`,`message.channels`,`message.groups`],dm:[`message.im`,`message.mpim`],channel:[`message.channels`,`message.groups`]},Zt=[`mention`,`dm`,`channel`];function Qt(e){let t=e.some(e=>Zt.includes(e));return[...new Set([...e.flatMap(e=>Xt[e]??[]),...t?[`reaction_added`,`member_joined_channel`,`member_left_channel`]:[]]),`team_access_granted`,`team_access_revoked`,`app_uninstalled`,`tokens_revoked`,`app_home_opened`]}function $t(e){return{agent_view:{agent_description:e.description??`${e.name} in your workspace.`}}}function en(e,t,n=`send it a direct message`){let r=[t.includes(`mention`)&&`mention @${e} in a channel`,t.includes(`dm`)&&n,t.includes(`channel`)&&`write in a channel it is in`].filter(e=>!!e);if(!r.length)return;let i=r.length>1?`${r.slice(0,-1).join(`, `)}, or ${r.at(-1)}`:r[0];return`${i[0].toUpperCase()}${i.slice(1)}.`}const tn=async e=>{if(!e.token)throw Error(`Slack installation ${e.id} has no bot token`);return e.token},nn=l({type:i(c()),team_id:i(c()),enterprise_id:i(c()),is_enterprise_install:i(n([a(),c()])),api_app_id:i(c()),challenge:i(c()),authorizations:i(o(l({user_id:i(c()),team_id:i(r(c())),enterprise_id:i(r(c())),is_enterprise_install:i(a())})))}),rn=l({enterprise_id:i(c()),authorizations:i(o(l({enterprise_id:i(c())}))),event:l({type:s([`team_access_granted`,`team_access_revoked`]),team_ids:o(c())})}),an=l({type:s([`app_uninstalled`,`tokens_revoked`]),tokens:i(l({bot:i(o(c()))}))}),on=l({type:u(`app_home_opened`),user:c(),tab:u(`home`)}),sn=`link:`,cn=`click:`,ln=`ask:`,un=l({type:u(`block_actions`),actions:o(l({action_id:c()}))}),dn=l({id:c(),username:i(c()),name:i(c())}),fn=l({user:dn,channel:l({id:c()}),message:i(l({ts:c(),thread_ts:i(c())})),trigger_id:i(c()),actions:t([l({action_id:c(),value:c()})])}),pn=l({type:u(`view_submission`),user:dn,view:l({callback_id:u(`ask`),private_metadata:c(),state:l({values:l({ask:l({ask:l({value:i(r(c()))})})})})})}),mn=l({thread:c(),message:i(c()),value:c()}),hn=e=>{let t=e.username??e.name;return{id:e.id,...t?{login:t}:{}}};function gn(e){let t=fn.safeParse(e).data,n=t?.actions[0];if(!t||!n)return;let r=t.channel.id.startsWith(`D`)?t.message?.thread_ts??``:t.message?.thread_ts??t.message?.ts,i={thread:`slack:${t.channel.id}${r===void 0?``:`:${r}`}`,...t.message?{message:t.message.ts}:{}},a=t.trigger_id;if(n.action_id.startsWith(`ask:`)&&a)return{work:async e=>(await import(`./views-3TxH367C.js`)).openAsk(e,a,i,n.value)};if(n.action_id.startsWith(`click:`))return{click:{...i,value:n.value,actor:hn(t.user)}}}function _n(e){let t=pn.safeParse(e).data,n;try{n=t&&mn.safeParse(JSON.parse(t.view.private_metadata)).data}catch{return}if(!t||!n)return;let r=t.view.state.values.ask.ask.value?.trim();return{click:{...n,...r?{text:r}:{},actor:hn(t.user)}}}function vn(e){try{return JSON.parse(e)}catch{let t=new URLSearchParams(e),n=t.get(`payload`);if(!n)return Object.fromEntries(t);try{return JSON.parse(n)}catch{return{}}}}const yn=n([l({type:s([`member_joined_channel`,`member_left_channel`]),user:c(),channel:c()}),l({type:u(`message`),subtype:s([`channel_convert_to_private`,`channel_convert_to_public`]),channel:c()})]);function bn(e,t,n,r){let i=yn.safeParse(e.event).data;if(i&&n){let e={installation:n,...r?{account:r}:{}},t={kind:`channel`,id:i.channel};return i.type===`message`?{space:{...e,space:{...t,private:i.subtype===`channel_convert_to_private`}}}:{space:{...e,space:t,...i.type===`member_joined_channel`?{joined:i.user}:{left:i.user}}}}let a=an.safeParse(e.event).data;if(a){let e=a.type===`app_uninstalled`||a.tokens?.bot?.length;return n&&e?{uninstalled:`${t}:${n}`}:{ack:!0}}let o=on.safeParse(e.event).data;if(o)return{work:async e=>(await import(`./views-3TxH367C.js`)).publishHome(e,o.user)};let s=un.safeParse(e).data?.actions,c=s?.length?gn(e):void 0;if(c)return c;let l=_n(e);if(l)return l;if(s?.length&&s.every(e=>e.action_id.startsWith(`link:`)))return{ack:!0};if(e.type&&e.type!==`event_callback`&&e.type!==`url_verification`)return{unhandled:`Slack interaction ${e.type}`};let u=rn.safeParse(e).data,d=u?.enterprise_id??u?.authorizations?.[0]?.enterprise_id;if(!u||!d)return;let f=u.event.team_ids;return{covers:{installation:`${t}:${d}`,...u.event.type===`team_access_granted`?{add:f}:{remove:f}}}}function xn(e,t,n){let r=e.headers.get(`x-slack-request-timestamp`)??``;if(!n||!(Math.abs(Date.now()/1e3-Number(r))<=300))return!1;let i=`v0=${p(`sha256`,n).update(`v0:${r}:${t}`).digest(`hex`)}`;return f(e.headers.get(`x-slack-signature`)??``,i)}const Sn=e=>e===`im`||e===`mpim`?`dm`:`channel`;function Cn(e){let t=l({channel:c(),channel_type:i(c())}).safeParse(e).data;if(!t)return;let n=t.channel_type;return{kind:`channel`,id:t.channel,...n===`channel`?{private:!1}:[`group`,`im`,`mpim`].includes(n??``)?{private:!0}:{}}}function X(e,t){let n=vn(t),r=nn.safeParse(n).data;if(r?.type===`url_verification`&&r.challenge)return new Response(r.challenge);let i=r?.authorizations?.[0],a=i?.team_id??r?.team_id??n.team?.id,o=String(i?.is_enterprise_install??r?.is_enterprise_install)===`true`,s=o?i?.enterprise_id??r?.enterprise_id??n.enterprise?.id:a,c=i?.user_id,l=Cn(n.event);return r?.api_app_id?{app:r.api_app_id,...s?{installation:s}:{},...o&&a?{account:a}:{},...c?{self:c}:{},...l?{space:l}:{}}:void 0}function wn(e,t,n,r){let i=X(e,t),a=i&&!(i instanceof Response)?i:void 0,o=bn(vn(t),n.id,a?.installation,a?.account);if(o)return xn(e,t,r?.signingSecret)?o:{invalid:!0}}function Tn(e,t,n){let r=n.raw.channel_type;return{type:t.isDM?`dm`:e===`mention`?e:Sn(r),actor:{id:n.author.userId,...n.author.userName?{login:n.author.userName}:{}}}}function En(e){let t=/^slack:([^:]+):(\d+)\.(\d+)$/.exec(e.chat?.thread.id??``);return t?`https://slack.com/archives/${t[1]}/p${t[2]}${t[3]}`:void 0}const Dn=864e5,Z=e=>`slack:typing:${e}`,Q=`coder-pending:`;function On(e,t){return async n=>{let r=n.data,i=n.headers.toJSON(),a=typeof r==`string`?new URLSearchParams(r):void 0,o=a?.get(`token`);a&&o?.startsWith(Q)&&(a.set(`token`,await t(o.slice(14))),r=a.toString());let s=Object.keys(i).find(e=>e.toLowerCase()===`authorization`);s&&i[s].startsWith(`Bearer ${Q}`)&&(i[s]=`Bearer ${await t(i[s].slice(`Bearer ${Q}`.length))}`);let c=await e(new URL(n.url??``,n.baseURL),{method:n.method?.toUpperCase()??`POST`,headers:i,body:r});return{data:await c.text(),status:c.status,statusText:c.statusText,headers:Object.fromEntries(c.headers),config:n,request:{}}}}async function kn(e){let[{SlackAdapter:t},{ConsoleLogger:n,defaultEmojiResolver:r}]=await Promise.all([import(`./dist-DfD9WmV8.js`),import(`./dist-B5qUdWUG.js`)]);class i extends t{outbound;privateState;hears;active;knows;constructor(e,t,n,r,i,a){super(e),this.outbound=t,this.privateState=n,this.hears=r,this.active=i,this.knows=a}unnamed=!1;async handleReactionEvent(e,t){let n=e.item;if(!(this.knows&&n.type===`message`&&n.channel&&n.ts&&!await this.knows(n.channel,n.ts)))return super.handleReactionEvent(e,t)}handleMessageEvent(e,t){let n=e.subtype===`message_changed`&&e.message?{...e.message,channel:e.channel,channel_type:e.channel_type}:e;if(!(e.type===`message`&&e.subtype!==`message_deleted`&&e.channel_type!==`im`&&!this.parseMessage(n).isMention)||!this.hears)return super.handleMessageEvent(e,t);let r=(async()=>{await this.hears(Sn(e.channel_type),n.text??``)&&(this.unnamed=!!n.thread_ts&&!await this.active?.(this.threadIdForMessageEvent(n)),super.handleMessageEvent(e,t))})();t?.waitUntil?.(r)}lookupUser(e){return this.unnamed?Promise.resolve({displayName:e,realName:e}):super.lookupUser(e)}async initialize(e){let t=e.getState(),n=this.privateState?.()??t,r=new Proxy(t,{get(e,t){let r=Reflect.get(e,t);return typeof r==`function`?(...r)=>{let i=typeof r[0]==`string`&&/^slack:(?:user:|user-by-name:|thread-participants:)/.test(r[0])?n:e;return Reflect.apply(Reflect.get(i,t),i,r)}:r}});await super.initialize(new Proxy(e,{get:(e,t,n)=>t===`getState`?()=>r:Reflect.get(e,t,n)}))}async startTyping(e,t,n){let r=n?.messageId??this.decodeThreadId(e).threadTs;if(r){try{await super.addReaction(e,r,`eyes`)}catch(e){if(e.data?.error===`already_reacted`)return;throw e}await this.chat?.getState().appendToList(Z(e),r,{ttlMs:Dn})}}async endTyping(e){let t=this.chat?.getState(),n=await t?.getList(Z(e))??[];n.length&&(await t.delete(Z(e)),await Promise.all(n.map(t=>super.removeReaction(e,t,`eyes`))))}async addReaction(e,t,n){let i=this.chat?.getState(),a=r.toSlack(n).replace(/:/g,``)===`eyes`&&i?await i.getList(Z(e)):[];if(!a.includes(t))return super.addReaction(e,t,n);await i.delete(Z(e));for(let n of a.filter(e=>e!==t))await i.appendToList(Z(e),n,{ttlMs:Dn})}markEventDelivered(){}async isDuplicateEventDelivery(){return!1}getToken(){return this.requestContext.getStore()?.token||!this.outbound?super.getToken():this.outbound()}}let a=e.credentials?.signingSecret,o=e.installationId,s=new Map,c=t=>(s.has(t)||s.set(t,e.token(t)),s.get(t));return new i({userName:e.name,apiUrl:`https://slack.com/api/`,appToken:``,socketForwardingSecret:``,clientId:``,clientSecret:``,encryptionKey:``,...a?{signingSecret:a,installationProvider:{getInstallation:async t=>({botToken:`${Q}${t}`,...e.self?{botUserId:e.self}:{}})}}:{webhookVerifier:()=>!1,botToken:()=>o?e.token(o):Promise.reject(Error(`No Slack workspace to post for`))},webClientOptions:{adapter:On(e.fetch,c)},logger:new n(`error`)},a&&o?()=>c(o):void 0,e.privateState,e.hears,e.active,e.knows)}const An={id:`slack`,brand:{color:`#E3066A`,icon:`M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z`,svg:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400"><g><path d="M 84.04 252.77 c 0 23.13 -18.89 42.02 -42.02 42.02 S 0 275.9 0 252.77 s 18.89 -42.02 42.02 -42.02 h 42.02 v 42.02 Z" fill="#e3066a"/><path d="M 105.21 252.77 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 v 105.21 c 0 23.13 -18.89 42.02 -42.02 42.02 s -42.02 -18.89 -42.02 -42.02 c 0 0 0 -105.21 0 -105.21 Z" fill="#e3066a"/></g><g><path d="M 147.23 84.04 c -23.13 0 -42.02 -18.89 -42.02 -42.02 S 124.1 0 147.23 0 s 42.02 18.89 42.02 42.02 v 42.02 h -42.02 Z" fill="#00b3ff"/><path d="M 147.23 105.21 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 H 42.02 c -23.13 0 -42.02 -18.89 -42.02 -42.02 s 18.89 -42.02 42.02 -42.02 c 0 0 105.21 0 105.21 0 Z" fill="#00b3ff"/></g><g><path d="M 315.96 147.23 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 -18.89 42.02 -42.02 42.02 h -42.02 v -42.02 Z" fill="#41b658"/><path d="M 294.79 147.23 c 0 23.13 -18.89 42.02 -42.02 42.02 s -42.02 -18.89 -42.02 -42.02 V 42.02 c 0 -23.13 18.89 -42.02 42.02 -42.02 s 42.02 18.89 42.02 42.02 v 105.21 Z" fill="#41b658"/></g><g><path d="M 252.77 315.96 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 -42.02 -18.89 -42.02 -42.02 v -42.02 h 42.02 Z" fill="#fcc003"/><path d="M 252.77 294.79 c -23.13 0 -42.02 -18.89 -42.02 -42.02 s 18.89 -42.02 42.02 -42.02 h 105.21 c 23.13 0 42.02 18.89 42.02 42.02 s -18.89 42.02 -42.02 42.02 h -105.21 Z" fill="#fcc003"/></g></svg>`},name:`Slack`,featured:!0,description:`Mentions, direct messages, and channel messages in a Slack workspace`,installLabel:`Add to Slack`,use:(e,t)=>en(`{handle}`,e,t?`message it here`:void 0),covered:`Slack workspace`,item:e=>e.replace(/^(slack:D[A-Z0-9]+:).+$/,`$1`),sample:`slack:C0000000000:1700000000.000100`,prompt:[`A conversation is a Slack thread, or a whole 1:1 DM with its threads. A group DM works like a channel.`,`Replies render as Slack Markdown: headings, lists, tables, code blocks, quotes. Mention a person as <@USER_ID>.`,`Link pull requests and issues by full URL; a bare number like #123 renders only on GitHub.`].join(`
9
- `),replyLimit:12e3,events:{mention:{description:`A message that mentions the agent in a channel or group DM.`,on:`mention`,addressed:!0},dm:{description:`Every message in a direct message or group DM with the agent.`,on:`message`,addressed:!0},channel:{description:`Every message in channels the agent is in.`,on:`message`,noisy:!0,addressed:!0}},tools:{presets:Pt,server:Ft,install:`set -eu; arch=$(uname -m); case "$arch" in x86_64) arch=amd64; checksum=d1525962e9b9dbfdd2eaf48d0a81ca1eca7d8f1862b8d34931b812c850b3e568;; aarch64|arm64) arch=arm64; checksum=a307a48d16c2261346bdc257274cdcdb8b2027c867dc971b41d52cef36472c88;; *) exit 1;; esac; file=$(mktemp); trap 'rm -f "$file"' EXIT; curl -fsSL "https://github.com/korotovsky/slack-mcp-server/releases/download/v1.3.0/slack-mcp-server-linux-$arch" -o "$file"; echo "$checksum $file" | sha256sum -c -; install -m 755 "$file" /usr/local/bin/slack-mcp-server`,installHosts:[`github.com`,`release-assets.githubusercontent.com`]},hosts:[`slack.com`,`*.slack.com`],get app(){return Kt},target:X,messages:{asks:!0,post:async(e,t)=>(await import(`./views-3TxH367C.js`)).postMessage(e,t),edit:async(e,t,n)=>(await import(`./views-3TxH367C.js`)).editMessage(e,t,n),direct:async(e,t,n)=>(await import(`./views-3TxH367C.js`)).directMessage(e,t,n)},link:En,ownEvents:wn,adapter:kn,event:Tn,requestFetch:wt,isUninstalled:At,conversation:Nt,auth:{canWrite:Tt,members:kt,space:Ot,token:tn,get user(){return Wt}}};var jn=e({INTEGRATIONS:()=>$,enabledIntegrations:()=>Mn});const $={slack:An,github:it,linear:Ct};function Mn(e){if(!e)return $;let t=e.filter(e=>!$[e]);if(t.length)throw Error(`Unknown integration ${t.join(`, `)} in SERVER_INTEGRATIONS; pick from ${Object.keys($).join(`, `)}`);return Object.fromEntries(e.map(e=>[e,$[e]]))}export{cn as a,ln as i,Mn as n,sn as o,jn as r,q as s,$ as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./errors-DK_trCff.js";import"./dispatch-BaW2X6Sc.js";import{n as t}from"./env-_AxrvBXP.js";import{p as n}from"./drizzle-orm-CYU7WOQS.js";import{secret as r}from"./schema.js";import{$t as i,ai as a,ci as o,kr as s,li as c,si as l}from"./apps-B6mUToTa.js";import u from"node:process";async function d(t){try{return await t()}catch(t){throw t instanceof e?t:new e(`server`,t instanceof Error?t.message:String(t))}}function f(f={}){return d(async()=>{let d=t(f.env??u.env);if(!d.encryptionKey)throw new e(`invalid-option`,`SERVER_ENCRYPTION_KEY is required to rotate keys.`,{hint:`Set the new key in SERVER_ENCRYPTION_KEY and the old key in SERVER_ENCRYPTION_KEY_PREVIOUS.`});let p=await s(d);try{let e=p.connection?.db;if(!e)return{moved:await i(p.store(p.defaultOrganizationId),d)};let t=o(d.encryptionKey),s=0;for(let i of await e.select().from(r))c(d,i.value)!==t&&(await e.update(r).set({value:l(d,a(d,i.value))}).where(n(r.id,i.id)),s++);return{moved:s}}finally{await p.close()}})}export{f as rotateKey};