@wular/coder 0.4.12 → 0.4.13

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 (372) hide show
  1. package/README.md +1 -1
  2. package/dist/actions-D12xDiQS.js +4 -0
  3. package/dist/{adapter-CVd5klMH.js → adapter-Bz0E-DAY.js} +2 -2
  4. package/dist/{adapter-CU9H4g6c.js → adapter-CsacmMmv.js} +1 -1
  5. package/dist/adapter-DzpdWewB.js +1 -0
  6. package/dist/{agent-BA6xr8QY.js → agent-JJStALIx.js} +2 -2
  7. package/dist/apps-Bnk7F3A2.js +379 -0
  8. package/dist/args-Dqf5Y1RP.js +1 -0
  9. package/dist/async-Tj4zKHXR.js +3 -0
  10. package/dist/{auth-DuXnSNf9.js → auth-BhpnOCbn.js} +1 -1
  11. package/dist/builtin/coder/agent.json +0 -1
  12. package/dist/builtin/coder/system.md +1 -1
  13. package/dist/{chat-CgQdDRhs.js → chat-CSepnsrK.js} +1 -1
  14. package/dist/cli.js +13 -13
  15. package/dist/cmd-BHZwhrfa.js +118 -0
  16. package/dist/connection-BkYTuJjV.js +1 -0
  17. package/dist/context-zhSlmXOp.js +7 -0
  18. package/dist/dash/standalone/node_modules/contextjsx/package.json +1 -1
  19. package/dist/dash/standalone/server/build-index.json +1 -1
  20. package/dist/dash/standalone/server/manifest.json +1281 -1261
  21. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/{turn.dac8eb211c500271.js → turn.6bb73458768e222e.js} +4 -16
  22. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.0de14cb4e30bd70d.js → index.de1f1311bab4252f.js} +12 -6
  23. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{defaults.1b615366c56838a1.js → defaults.e972c134a1ae918f.js} +3 -5
  24. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.60308a11f7001eb7.js → log-view.ec6391dbf3063330.js} +40 -48
  25. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.be791a5eaf328738.js → load.30ed8c28774a1a82.js} +4 -4
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.0fbfdba5254f7ae5.js → page.04762872666a6f0a.js} +1 -1
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.70913bd4075da914.js → page.118a70787eff1761.js} +23 -3
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.e348ec45e9ed951b.js → loading.fcdfd50c21031895.js} +1 -1
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.61aab176baeefebd.js → notify.98dfcd316c306258.js} +1 -1
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.815371ed0d5dd4fa.js → page.74c59322f5fe8a2c.js} +4 -4
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.1d6af804f9ec043d.js → sign-out.730aa96b086ac996.js} +1 -1
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.2ed0e66d131fc148.js → agent-menu.1be5795272b245c8.js} +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.f43bcc1148ce3650.js → agents-grid.2c30ace077893029.js} +6 -6
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{connect-apps.f3af8cc8540719d7.js → connect-apps.8a20501ccb244421.js} +3 -3
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.fac1132ad9c4248e.js → loading.733f0acc2af5ceda.js} +2 -2
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.c6efd5432c1a4a75.js → page.d066b77dd3187026.js} +9 -9
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.a795379254982121.js → layout.b26006f060cd48f0.js} +9 -9
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.a2cb6d1f1714259a.js → page.4b23e9df21433bd3.js} +9 -9
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.4da9e2ba3fea937f.js → loading.e06845585ca67abc.js} +2 -2
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.996172c951739b35.js → page.4048048acb374c67.js} +35 -23
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.8e7ca54dd1821e98.js → platform-actions.000f2f87a48bfbc6.js} +36 -10
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.aa9e157d141481d7.js → agent-settings-form.ee0bb2dc4d403ec3.js} +8 -8
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.ad1a4c9b000d269a.js → loading.0e3641f3e4abaa7c.js} +1 -1
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.44d886e60ae04303.js → page.649b4ba135ded99b.js} +7 -7
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.521c9e7b8d77f557.js → loading.195e168e8e41d797.js} +1 -1
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.828cfb8112404792.js → page.96f7573208644f40.js} +1 -1
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.8f998a9c511e1fb3.js → loading.905293c9aa9afbc9.js} +2 -2
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.45e18b6dc3019af4.js → page.5f2b8585db8b27ad.js} +4 -4
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.c8d76988c734dda2.js → versions-list.8700f0106f4e8c15.js} +1 -1
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.b1367e864b4fb406.js → loading.f94b2f9ab04aaf21.js} +3 -3
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.dd11f2618e08becd.js → page.e898c4b5ef16ecb0.js} +7 -7
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.f987c12bcbc5c850.js → agent-pills.44e689e546fb042b.js} +1 -1
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.1579dc8acbaacf92.js → agent-toggle.4c67dfbb7d28a416.js} +2 -2
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.ad5cc342db794e5d.js → hero.9740a8e2f4b41f28.js} +5 -5
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.43b4b28f194ea842.js → connect-repositories.ff8b78a03153239b.js} +1 -1
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.776856fe1ed1a642.js → editor.471af698b8060eba.js} +31 -20
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.eafa5b41a2ed571f.js → import-picker.b7b5c89e618e8f89.js} +5 -5
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.ee001af7a96e3972.js → loading.ecb9dfd4d0f9d107.js} +2 -2
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.7d84ef2b178b34d2.js → page.880bdac7fe843635.js} +5 -5
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.393cf7429eea189e.js → layout.81f7e055829854a3.js} +5 -5
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.09bf294d753ee9d7.js +115 -0
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.980adfb7c5714752.js → page.8f8697b1b6b34ad7.js} +36 -9
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.24a1987405ed7b17.js → page.fe608b8e661aba1d.js} +1 -1
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.21ec9dc73ce68656.js → connections-list.97381888bfdd711b.js} +8 -8
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.683476f62a9ecde7.js → credentials-list.a4d8338c7f6a5702.js} +10 -8
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.b43dd3d97c536c2a.js → credentials.1443bbed1ff1d441.js} +8 -8
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.9e116751bd34e2cc.js → engines-list.d47db60d7dc01ebd.js} +2 -2
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.083f5c665df04b1b.js → list.a5b273558fb7f0f0.js} +4 -4
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.537f63f8e5dd085d.js → models-list.31d369f1b7ab45da.js} +66 -32
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.dfed4ae6ffc74434.js → page.805d0f8a2c5817d6.js} +15 -15
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.3afa989490bbe77c.js → runners-list.1e83449aa6593224.js} +6 -6
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.0d175ee815b22cd7.js → secrets-list.17ac06593005b8ba.js} +4 -4
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.3e8289f888fa444c.js → layout.8c4a2b31b194ba3e.js} +5 -5
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.06feaa5fbb06f1e6.js → page.a77996786278cda0.js} +1 -1
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.bbc7ced8dd5491eb.js → settings-head.705be0b1129b97af.js} +1 -1
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.ff95e4b6977d0474.js → create-link.19b4c50ef497aca1.js} +3 -3
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.894c73f9abee3ce1.js → outcome-dialog.18cf32fa42247b91.js} +1 -1
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.f06fda0df59beeb5.js → page.616f0b36bf7925bc.js} +5 -5
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.3c79cf14feff12bf.js → activity.a911169a820ba604.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.47cbb34ea8d2e33f.js → loading.76f851da5cc5268d.js} +5 -5
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.abed2a8424ef3da0.js → page.ddb594bb6567ee13.js} +6 -6
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.51fbeac76459433a.js +240 -0
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.dc294bb94b7437e1.js → task-view.3276538e8306fd8a.js} +28 -28
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.309a194fc7fa34be.js → composer-data.05fc39e1a7fd1ab7.js} +2 -2
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.5072aacdce127689.js → composer.dbf06b05c5e2eba3.js} +9 -9
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{status.16190fdd5fd7daad.js → status.cb704b48ce86cc7d.js} +6 -3
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.0a1b5878dccd3b37.js → task.f089c1c122ed6dd2.js} +17 -4
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.1162926f7498c732.js → tasks-list.5a00d69851dae119.js} +37 -22
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.1d687c986db53a73.js → tasks-section.36e70c93f7d0feee.js} +7 -7
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.d5d8cb5033823c9c.js → page.185b1ba0c803db3f.js} +4 -4
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.97d277dbab9c15cf.js → loading.a7e0ec01bfa769e3.js} +2 -2
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.fb21ebe90d49dac1.js → page.d41fea7676e37bfc.js} +4 -4
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.2197d8f43216d104.js → range-bar.69e68c9dae09f238.js} +2 -2
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.185dbc99875e208a.js → layout.296d70b95894209f.js} +1 -1
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.1f4217895ff1e835.js → foreign-link.8c6adf9c5a6f467c.js} +1 -1
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.cc76fc9708142525.js → loading-card.1cea8a722c10b998.js} +2 -2
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.85f15db7b648d48c.js → page-head.87b92529dbb53ceb.js} +3 -3
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.e2915852cf82c86b.js → stream.c32d78562f75db25.js} +1 -1
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.0ed8ccaae81b9d53.js → task-toasts.44075fa7e04575e8.js} +5 -5
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.180765bdadf6d602.js → back.d6109e72fbd04b45.js} +2 -2
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.572ad93c7707ab27.js → org.d3abfd4053b711ce.js} +1 -1
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.c1281f9b12854210.js → confirm.29e198be34578222.js} +1 -1
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.3a452a262f040973.js → filter.81bb9a5c60cd1089.js} +1 -1
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.25d53e5b41b9c4e5.js → modal.0b69c7fd9db025b9.js} +1 -1
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.a08dc08338d080e9.js → segmented.633abe26ff760e37.js} +1 -1
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.17cffebfc3103b9f.js → sentinel.0ddf515b8f09ef9f.js} +1 -1
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.66b2e54963f6901b.js → tabs.1600a0b563a5c7dd.js} +1 -1
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.24036899654de6df.js → toolbar.8b3a460a65edf85a.js} +1 -1
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.b9a5c37272250e82.js → action.67dd6f8ab1ae067d.js} +1 -1
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.a3928fa2dcd27b75.js → client.78267fa3d7905d17.js} +1 -1
  111. package/dist/dash/standalone/static/assets/chunks/{action-71685b2d5ad9f359.js → action-a76e495fb39a73d3.js} +1 -1
  112. package/dist/dash/standalone/static/assets/chunks/{agent-pills-15da36c2cb81991b.js → agent-pills-4d3c6a2aa9eb1522.js} +1 -1
  113. package/dist/dash/standalone/static/assets/chunks/{agent-settings-form-6e6a87d6e673daa8.js → agent-settings-form-f7231a66e391f6b6.js} +1 -1
  114. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-ca98586e3b4ce9ae.js → agent-toggle-d7d27123f2070f18.js} +1 -1
  115. package/dist/dash/standalone/static/assets/chunks/{agents-grid-29c399e46b4e9e2b.js → agents-grid-185ecb3d86c6c447.js} +1 -1
  116. package/dist/dash/standalone/static/assets/chunks/{back-fa9d6e37f9828093.js → back-e29cb10f5548ddae.js} +1 -1
  117. package/dist/dash/standalone/static/assets/chunks/{combo-86f3e11d1f6f6cee.js → combo-702c94817bf6ac17.js} +1 -1
  118. package/dist/dash/standalone/static/assets/chunks/composer-56ebf36d63400423.js +1 -0
  119. package/dist/dash/standalone/static/assets/chunks/{composer-85e0ec7163ae18b7.js → composer-a686289a79f64bae.js} +1 -1
  120. package/dist/dash/standalone/static/assets/chunks/composer-data-f46a9bc7a14b4f9a.js +1 -0
  121. package/dist/dash/standalone/static/assets/chunks/{confirm-c29a1db0130638d2.js → confirm-a78147b6ecef3847.js} +1 -1
  122. package/dist/dash/standalone/static/assets/chunks/{connect-apps-b73490e04ae6398d.js → connect-apps-696726aedab42c96.js} +1 -1
  123. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-0de82daaf654b1d3.js → connect-repositories-7770ab805160028d.js} +1 -1
  124. package/dist/dash/standalone/static/assets/chunks/connections-list-07559f145f3e3da3.js +1 -0
  125. package/dist/dash/standalone/static/assets/chunks/{copy-445c11202f136275.js → copy-bdc60bdafe336316.js} +1 -1
  126. package/dist/dash/standalone/static/assets/chunks/create-link-426b0a5871ee41dd.js +1 -0
  127. package/dist/dash/standalone/static/assets/chunks/credentials-list-f07d090410104148.js +1 -0
  128. package/dist/dash/standalone/static/assets/chunks/{custom-range-a0630599f907b30e.js → custom-range-6618f32ef6cd4e80.js} +1 -1
  129. package/dist/dash/standalone/static/assets/chunks/editor-0860e370cbfc6b03.js +6 -0
  130. package/dist/dash/standalone/static/assets/chunks/engines-list-31b9bb7885924b05.js +1 -0
  131. package/dist/dash/standalone/static/assets/chunks/{field-b82a0f895266791c.js → field-bb8191aa02d07282.js} +1 -1
  132. package/dist/dash/standalone/static/assets/chunks/instructions-06b63e558f879da5.js +1 -0
  133. package/dist/dash/standalone/static/assets/chunks/{instructions-affaaeff366b1725.js → instructions-2d9fbcbfadac4f40.js} +1 -1
  134. package/dist/dash/standalone/static/assets/chunks/list-2773686bf8df64c7.js +1 -0
  135. package/dist/dash/standalone/static/assets/chunks/models-list-03611e64b6a07efe.js +1 -0
  136. package/dist/dash/standalone/static/assets/chunks/{notice-57db7a1f05b7308c.js → notice-d14fdac28139c0a8.js} +1 -1
  137. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-d3ba8ef89c59f801.js +1 -0
  138. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-5cf575a5e6921a5d.js → outcome-dialog-fde11a52c282301d.js} +1 -1
  139. package/dist/dash/standalone/static/assets/chunks/platform-actions-2a71c62b9f7eaef3.js +1 -0
  140. package/dist/dash/standalone/static/assets/chunks/platform-actions-70600c9943320152.js +1 -0
  141. package/dist/dash/standalone/static/assets/chunks/runners-list-edf536eb8003eab5.js +1 -0
  142. package/dist/dash/standalone/static/assets/chunks/secrets-list-e86122f73525ff95.js +1 -0
  143. package/dist/dash/standalone/static/assets/chunks/segmented-0b6dc6b93c35e0f5.js +1 -0
  144. package/dist/dash/standalone/static/assets/chunks/shared-init-b281027d465e004f.js +5 -0
  145. package/dist/dash/standalone/static/assets/chunks/shared-init-c3bd249cf1eca6d1.js +2 -0
  146. package/dist/dash/standalone/static/assets/chunks/side-toggle-9b3af821cfe4c824.js +1 -0
  147. package/dist/dash/standalone/static/assets/chunks/{tail-b1c46587301ef397.js → tail-f8804b80cf32f8d0.js} +1 -1
  148. package/dist/dash/standalone/static/assets/chunks/task-a37e7c26e82eb77d.js +1 -0
  149. package/dist/dash/standalone/static/assets/chunks/task-actions-705395565f2d83b8.js +1 -0
  150. package/dist/dash/standalone/static/assets/chunks/task-view-cb21169f38b56d15.js +6 -0
  151. package/dist/dash/standalone/static/assets/chunks/tasks-list-d7dccfd7e0623ae0.js +1 -0
  152. package/dist/dash/standalone/static/assets/chunks/{versions-list-21cb854e6a7108a7.js → versions-list-f8f2e71df691efda.js} +1 -1
  153. package/dist/dash/standalone/static/assets/create-param-id-c2c756f652f2fc30.css +1 -0
  154. package/dist/dash/standalone/static/assets/{dash-param-org-account-9471bec93c444232.css → dash-param-org-account-702f8a1b213e4026.css} +1 -1
  155. package/dist/dash/standalone/static/assets/dash-param-org-agents-aad2f9f93c06e9ab.css +1 -0
  156. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-f9dcbcec36586f2b.css +1 -0
  157. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-8ff47f5d622c1f9b.css +1 -0
  158. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-907036d553cfeb36.css +1 -0
  159. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-5cc77badad15f00c.css +1 -0
  160. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-705d7c15868b4fd6.css +1 -0
  161. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-04e189c045098772.css +1 -0
  162. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-76fcd1ce7b3dae71.css +1 -0
  163. package/dist/dash/standalone/static/assets/{dash-param-org-bcfa3de29341d5ba.css → dash-param-org-eccb6bb9297a53e6.css} +1 -1
  164. package/dist/dash/standalone/static/assets/dash-param-org-operator-635a121f7a9a95bd.css +1 -0
  165. package/dist/dash/standalone/static/assets/{dash-param-org-settings-6d6902345d88a687.css → dash-param-org-settings-a3297dc4d9e0c961.css} +1 -1
  166. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-bcb06f81d9e8268d.css +1 -0
  167. package/dist/dash/standalone/static/assets/{dash-param-org-setup-173efecd7b990c2e.css → dash-param-org-setup-df4be8b188b9777f.css} +1 -1
  168. package/dist/dash/standalone/static/assets/dash-param-org-tasks-16f9866a1b4801cd.css +1 -0
  169. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-02ae551dcd852b57.css +1 -0
  170. package/dist/dash/standalone/static/assets/dash-param-org-usage-f2175403069aab99.css +1 -0
  171. package/dist/dash/standalone/static/assets/{global-87e1762113874559.css → global-e1de614478b64717.css} +1 -1
  172. package/dist/dash/standalone/static/assets/pnext-client-0dc829ba60df5c26.js +1 -0
  173. package/dist/dash/standalone/static/assets/pnext-client-14d191f7f1da6602.js +1 -0
  174. package/dist/dash/standalone/static/assets/pnext-client-169eaa63783b71fd.js +1 -0
  175. package/dist/dash/standalone/static/assets/pnext-client-1e34cfefafa70fac.js +1 -0
  176. package/dist/dash/standalone/static/assets/pnext-client-285d61f00a80f40b.js +1 -0
  177. package/dist/dash/standalone/static/assets/pnext-client-35b89c3ba23ee845.js +1 -0
  178. package/dist/dash/standalone/static/assets/pnext-client-6c42784e005d4b87.js +1 -0
  179. package/dist/dash/standalone/static/assets/{pnext-client-576c06599e241231.js → pnext-client-6cd93f9bd4cf6ffd.js} +1 -1
  180. package/dist/dash/standalone/static/assets/pnext-client-7355f473fade532d.js +1 -0
  181. package/dist/dash/standalone/static/assets/pnext-client-815c3c297f75efb0.js +1 -0
  182. package/dist/dash/standalone/static/assets/pnext-client-87fe73c10a4dc33c.js +1 -0
  183. package/dist/dash/standalone/static/assets/pnext-client-98b56a142d441260.js +1 -0
  184. package/dist/dash/standalone/static/assets/pnext-client-b4bafe68a40f720b.js +1 -0
  185. package/dist/dash/standalone/static/assets/pnext-client-bf61ff39bdc0db48.js +1 -0
  186. package/dist/dash/standalone/static/assets/pnext-client-c9fa86c244813f74.js +1 -0
  187. package/dist/dash/standalone/static/assets/pnext-client-d2e7a75e16221224.js +1 -0
  188. package/dist/dash/standalone/static/assets/pnext-client-d34e774405ea8da8.js +1 -0
  189. package/dist/dash/standalone/static/assets/pnext-client-d511822afdb41d1d.js +1 -0
  190. package/dist/dash/standalone/static/assets/pnext-client-e113aa2f25ecfe01.js +1 -0
  191. package/dist/dash/standalone/static/assets/{pnext-client-c2c30dcb6dc31d60.js → pnext-client-eb62f461d0c32266.js} +1 -1
  192. package/dist/{discover-CPZdprlQ.js → discover-CHfF4cEz.js} +1 -1
  193. package/dist/{docs-x-l7gjFE.js → docs-KHc0_gFX.js} +1 -1
  194. package/dist/{drive-Y-ZlgiUW.js → drive-Bwl7Bjme.js} +1 -1
  195. package/dist/emit-BrkJJPUE.js +11 -0
  196. package/dist/env-6Y-NNnYD.js +1 -0
  197. package/dist/errors-DO_IltpP.js +16 -0
  198. package/dist/exec-BmTa0vcO.js +4 -0
  199. package/dist/executor-ufWRqhdS.js +11 -0
  200. package/dist/flow/builtin/review/index.d.ts +1 -1
  201. package/dist/flow/builtin/review/index.js +3 -3
  202. package/dist/flow/index.d.ts +1 -1
  203. package/dist/flow/index.js +1 -1
  204. package/dist/hook-CIipj9MJ.js +1 -0
  205. package/dist/http-Cg8PSe-c.js +1 -0
  206. package/dist/{index-BdkdNI1v.d.ts → index-ChcxzFdB.d.ts} +50 -185
  207. package/dist/integrations-I7fRDk_l.js +4 -0
  208. package/dist/lib/broker.js +2 -2
  209. package/dist/load-BDlEFetB.js +2 -0
  210. package/dist/local-COlczLwI.js +5 -0
  211. package/dist/log-view-CfX9lakH.js +4 -0
  212. package/dist/{maintenance-BfxcatXH.js → maintenance-CKCIWOvn.js} +1 -1
  213. package/dist/{match-Bq4sDuCy.js → match-CufHAZQH.js} +1 -1
  214. package/dist/mcp-BkwmRHI9.js +2 -0
  215. package/dist/mcp-CGU7aoJ-.js +1 -0
  216. package/dist/{mcp-Bta09QCU.js → mcp-DAHbhfUh.js} +1 -1
  217. package/dist/models-CzggS7p2.js +1 -0
  218. package/dist/output-SNqdgh9A.js +17 -0
  219. package/dist/permission-MWFjKxqX.js +1 -0
  220. package/dist/{prompt-onpyIyXK.js → prompt-CIx4jwQF.js} +1 -1
  221. package/dist/refresh-CxsaX5R9.js +1 -0
  222. package/dist/remote-C9Hj2cby.js +2 -0
  223. package/dist/remote-HUZCWgfl.js +3 -0
  224. package/dist/{runner-CTFTuaz_.js → runner-DYysY1-G.js} +1 -1
  225. package/dist/runner.json +1 -1
  226. package/dist/runner.tgz +0 -0
  227. package/dist/runners-CfaGE0nV.js +36 -0
  228. package/dist/schema.js +1 -1
  229. package/dist/sdk.d.ts +285 -104
  230. package/dist/sdk.js +1 -1
  231. package/dist/serve-DdAdw7Su.js +4 -0
  232. package/dist/serve-NQykWAKV.js +1 -0
  233. package/dist/serve-vKNqVaVy.js +12 -0
  234. package/dist/slack-BtKvW_4v.js +5 -0
  235. package/dist/task-CFxs0E_J.js +1 -0
  236. package/dist/task-iuYQ0zAK.js +7 -0
  237. package/dist/tools-B6ZxcqRi.js +2 -0
  238. package/dist/{tools-CM4UCsId.js → tools-FVop8XYG.js} +1 -1
  239. package/dist/tools-search-kjKKolwp.js +1 -0
  240. package/dist/turn-DQ13lkPF.js +2 -0
  241. package/dist/types-DPtbvoo3.js +1 -0
  242. package/dist/types-DmThhjcW.js +1 -0
  243. package/dist/views-CMHXBMJp.js +3 -0
  244. package/dist/{wire-JMNPv8f6.js → wire-C9CupY_A.js} +1 -1
  245. package/dist/worker-BQpx1dPr.js +9 -0
  246. package/dist/worker-sTJL2eoe.js +1 -0
  247. package/docs/access.md +33 -0
  248. package/docs/agents/coder.md +0 -11
  249. package/docs/agents/index.md +1 -1
  250. package/docs/cli/agent.md +6 -6
  251. package/docs/cli/connection.md +5 -5
  252. package/docs/cli/flow.md +9 -9
  253. package/docs/cli/index.md +3 -3
  254. package/docs/cli/model.md +12 -10
  255. package/docs/cli/runner.md +1 -1
  256. package/docs/cli/server.md +2 -2
  257. package/docs/cli/task.md +23 -21
  258. package/docs/config.md +5 -15
  259. package/docs/flows.md +1 -1
  260. package/docs/models.md +7 -6
  261. package/docs/sdk.md +29 -29
  262. package/docs/self-host.md +25 -25
  263. package/package.json +2 -2
  264. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  265. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  266. package/dist/actions-BT7_eKXm.js +0 -10
  267. package/dist/adapter-BT8ECcRG.js +0 -1
  268. package/dist/apps-D-v5sQJk.js +0 -367
  269. package/dist/args-CbO_Ck9Z.js +0 -11
  270. package/dist/async-XNO3nqum.js +0 -3
  271. package/dist/cmd-DX5ByXo3.js +0 -119
  272. package/dist/connection-DNxi2btM.js +0 -1
  273. package/dist/context-65bOofts.js +0 -7
  274. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.a244f3199e7cf09c.js +0 -144
  275. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.587da79d68ab8d14.js +0 -151
  276. package/dist/dash/standalone/static/assets/chunks/composer-910bb87127972f62.js +0 -1
  277. package/dist/dash/standalone/static/assets/chunks/composer-data-5fed6c271a4791ca.js +0 -1
  278. package/dist/dash/standalone/static/assets/chunks/connections-list-c50f58b4b28d10bb.js +0 -1
  279. package/dist/dash/standalone/static/assets/chunks/create-link-6d64a2d5f9ce6de0.js +0 -1
  280. package/dist/dash/standalone/static/assets/chunks/credentials-list-bee95799b2319b3b.js +0 -1
  281. package/dist/dash/standalone/static/assets/chunks/defaults-52f30e83d7666f7a.js +0 -1
  282. package/dist/dash/standalone/static/assets/chunks/editor-b9951819f21b2e43.js +0 -6
  283. package/dist/dash/standalone/static/assets/chunks/engines-list-2720c3e8fa12b2f7.js +0 -1
  284. package/dist/dash/standalone/static/assets/chunks/instructions-fd7402ac5aa8b50e.js +0 -1
  285. package/dist/dash/standalone/static/assets/chunks/list-d918f79562d497eb.js +0 -1
  286. package/dist/dash/standalone/static/assets/chunks/models-list-12bc7aceaa52f5b0.js +0 -1
  287. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-b219595be320108a.js +0 -1
  288. package/dist/dash/standalone/static/assets/chunks/platform-actions-1d27d2ba7eee9ff1.js +0 -1
  289. package/dist/dash/standalone/static/assets/chunks/platform-actions-dba96dcb0f6513db.js +0 -1
  290. package/dist/dash/standalone/static/assets/chunks/runners-list-36f8c5ecfcf8e9ae.js +0 -1
  291. package/dist/dash/standalone/static/assets/chunks/secrets-list-d7dbafd24dd18481.js +0 -1
  292. package/dist/dash/standalone/static/assets/chunks/segmented-8f809ebe712e92a7.js +0 -1
  293. package/dist/dash/standalone/static/assets/chunks/shared-init-cc13a835f3508618.js +0 -2
  294. package/dist/dash/standalone/static/assets/chunks/shared-init-f475017dd5811e33.js +0 -5
  295. package/dist/dash/standalone/static/assets/chunks/side-toggle-0aa237eba3dfe9c1.js +0 -1
  296. package/dist/dash/standalone/static/assets/chunks/task-681061023bdf0a49.js +0 -5
  297. package/dist/dash/standalone/static/assets/chunks/task-actions-c9e46e81604e85c5.js +0 -1
  298. package/dist/dash/standalone/static/assets/chunks/task-view-134186a544917ceb.js +0 -5
  299. package/dist/dash/standalone/static/assets/chunks/tasks-list-352a3222d878de0f.js +0 -1
  300. package/dist/dash/standalone/static/assets/create-param-id-da3f7e20689fe51a.css +0 -1
  301. package/dist/dash/standalone/static/assets/dash-param-org-agents-64500e78caae32df.css +0 -1
  302. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-c067c22928a2d7cc.css +0 -1
  303. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-9dec87710e04f949.css +0 -1
  304. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-779c474301e04440.css +0 -1
  305. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-c7d594b5232630c2.css +0 -1
  306. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-a80e62570716fdb9.css +0 -1
  307. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-ce278252012297b9.css +0 -1
  308. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-d3b6d701eb8e1403.css +0 -1
  309. package/dist/dash/standalone/static/assets/dash-param-org-operator-b7bc6447cc27c9ce.css +0 -1
  310. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-85c7af9a89eef06e.css +0 -1
  311. package/dist/dash/standalone/static/assets/dash-param-org-tasks-ae0bc03f468e63cc.css +0 -1
  312. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-7325d8cff5be3592.css +0 -1
  313. package/dist/dash/standalone/static/assets/dash-param-org-usage-517b2a7ae462ac57.css +0 -1
  314. package/dist/dash/standalone/static/assets/pnext-client-05df74b071ddb0b3.js +0 -1
  315. package/dist/dash/standalone/static/assets/pnext-client-2c19cca257f78ae6.js +0 -1
  316. package/dist/dash/standalone/static/assets/pnext-client-2db05dfa62642a65.js +0 -1
  317. package/dist/dash/standalone/static/assets/pnext-client-36b0d6085a073880.js +0 -1
  318. package/dist/dash/standalone/static/assets/pnext-client-6aa0f19a30d58d63.js +0 -1
  319. package/dist/dash/standalone/static/assets/pnext-client-6b30b71f452f2f07.js +0 -1
  320. package/dist/dash/standalone/static/assets/pnext-client-6ccb4d4fff812db3.js +0 -1
  321. package/dist/dash/standalone/static/assets/pnext-client-74eb465defba421e.js +0 -1
  322. package/dist/dash/standalone/static/assets/pnext-client-8c692d12b2fd90d6.js +0 -1
  323. package/dist/dash/standalone/static/assets/pnext-client-92e17d39063a9ced.js +0 -1
  324. package/dist/dash/standalone/static/assets/pnext-client-93246aea268c2682.js +0 -1
  325. package/dist/dash/standalone/static/assets/pnext-client-9954dcbc0c579e0d.js +0 -1
  326. package/dist/dash/standalone/static/assets/pnext-client-c0dfa1cdde9a9855.js +0 -1
  327. package/dist/dash/standalone/static/assets/pnext-client-c28d38d4aafd4af6.js +0 -1
  328. package/dist/dash/standalone/static/assets/pnext-client-dbf741073e11eac0.js +0 -1
  329. package/dist/dash/standalone/static/assets/pnext-client-e29194a27280333f.js +0 -1
  330. package/dist/dash/standalone/static/assets/pnext-client-f8a7e692b27caad9.js +0 -1
  331. package/dist/dash/standalone/static/assets/pnext-client-fc5b8cfcba2a9f63.js +0 -1
  332. package/dist/env-B9JG6gwo.js +0 -1
  333. package/dist/errors-XBA-Ls4n.js +0 -10
  334. package/dist/exec-iFssTO5V.js +0 -3
  335. package/dist/executor-Dt2FFT-y.js +0 -11
  336. package/dist/http-BZfjbiov.js +0 -1
  337. package/dist/integrations-DyInAa5g.js +0 -2
  338. package/dist/load-zhcrwSRF.js +0 -2
  339. package/dist/local-D55UkW93.js +0 -5
  340. package/dist/log-view-CL3_S0IQ.js +0 -3
  341. package/dist/mcp-CUITALl1.js +0 -1
  342. package/dist/models-C1O2DrXx.js +0 -1
  343. package/dist/output-D95NoAA9.js +0 -16
  344. package/dist/prompts-B8pKhMcu.js +0 -4
  345. package/dist/refresh-D-0K9fo3.js +0 -1
  346. package/dist/remote-CDm0YUU3.js +0 -3
  347. package/dist/runners-CYTicTb7.js +0 -36
  348. package/dist/serve-Bzs_lEg-.js +0 -1
  349. package/dist/serve-CWtLyyTz.js +0 -12
  350. package/dist/serve-DE6A-rBk.js +0 -4
  351. package/dist/slack-Bo5l13Rs.js +0 -5
  352. package/dist/task-BU1JEK9X.js +0 -7
  353. package/dist/task-CPzBITsp.js +0 -1
  354. package/dist/tools-BMaKWTa6.js +0 -1
  355. package/dist/turn-DMvPfhb5.js +0 -3
  356. package/dist/types-D_xnfP7m.js +0 -1
  357. package/dist/views-DEdKqLm_.js +0 -5
  358. package/dist/worker-BuP_Lem1.js +0 -9
  359. package/dist/worker-C1tuzq5n.js +0 -1
  360. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.0a735590a5412ea6.js → errors.1bd0542d832ae0c0.js} +0 -0
  361. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.c811938ae8a8f1df.css.pnext-asset.js → page.107e622830bff31d.css.pnext-asset.js} +0 -0
  362. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.1bef5dca89b5942c.css.pnext-asset.js → hero.243d85cac1f22df2.css.pnext-asset.js} +0 -0
  363. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.c496247a81ed832c.css.pnext-asset.js → editor.1eb1bce282b289c9.css.pnext-asset.js} +0 -0
  364. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-options.a96c11d11674f598.js → model-options.73f8d0d54f79d8e3.js} +0 -0
  365. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.57990cfd2bdf5c11.css.pnext-asset.js → task-view.42337a0d7c6ad0b6.css.pnext-asset.js} +0 -0
  366. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.abbbc9ace4d866e5.css.pnext-asset.js → tasks-list.2f90c4410f843fff.css.pnext-asset.js} +0 -0
  367. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.c8fd2b8b01e7077b.css.pnext-asset.js → globals.f8ac779f0ebf888b.css.pnext-asset.js} +0 -0
  368. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.364ec93a8e7857b3.css.pnext-asset.js → page-head.9fcc49ddf7119d75.css.pnext-asset.js} +0 -0
  369. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.9db07d368dcf5981.css.pnext-asset.js → modal.a533234c7c831be4.css.pnext-asset.js} +0 -0
  370. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.0bd8652fdbc05eb0.css.pnext-asset.js → segmented.c6f30b839fd27f35.css.pnext-asset.js} +0 -0
  371. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.1e3ec9bd6008d811.css.pnext-asset.js → sentinel.d17e2bfcbeb9df31.css.pnext-asset.js} +0 -0
  372. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.ca13e40ff54128d0.css.pnext-asset.js → tabs.025b532d6cc51736.css.pnext-asset.js} +0 -0
package/README.md CHANGED
@@ -71,7 +71,7 @@ coder dash
71
71
 
72
72
  > **Recommended setup:** Claude Code as the host (Fable, low or medium effort) and Codex (sol) as the engine, the best split of performance and cost.
73
73
 
74
- [Models](docs/models.md) · [Configuration](docs/config.md) · [MCP](docs/mcp.md)
74
+ [Models](docs/models.md) · [Configuration](docs/config.md) · [Access and approvals](docs/access.md) · [MCP](docs/mcp.md)
75
75
 
76
76
  ## Coder Cloud
77
77
 
@@ -0,0 +1,4 @@
1
+ import{A as e,Ct as t,Fn as n,G as r,Gn as i,Gt as a,J as o,M as s,N as c,O as l,P as u,Q as d,R as f,Sr as p,T as m,Tr as h,Wt as ee,Z as te,Zt as ne,_n as re,at as g,d as _,dt as v,f as y,ft as b,it as x,k as S,kr as ie,nt as C,ot as w,p as ae,pt as oe,rt as se,s as ce,ut as le,vn as ue,y as T,z as E}from"./errors-DO_IltpP.js";import{$ as D,Dt as O,F as k,H as A,M as j,P as M,Q as N,U as P,V as F,W as I,bt as L,et as R,ht as z,it as B,pt as V,rt as H,tt as U,ut as de,xt as fe}from"./output-SNqdgh9A.js";import W from"node:path";import G from"node:process";import K from"node:fs";import{randomUUID as q}from"node:crypto";import pe from"node:readline";const me=/^[A-Za-z0-9-]{1,128}$/;function J(e){return[...new Set([...e.previousThreadIds??[],...e.threadId?[e.threadId]:[]])]}async function Y(e,t){if(!/^[a-zA-Z0-9_-]+$/.test(t))return[];let n=e.engine===`claude`,i=n?P():b(),a=e.id?W.join(r(e.cwd??``,e.id),`history-files.json`):void 0,o=JSON.stringify([e.engine,i,t]),s=a?h(a)??{}:{},c=s[o];if(c?.length&&c.every(e=>e.startsWith(`${i}${W.sep}`)&&K.existsSync(e)))return c;let l=[],u=async(e,r)=>{for(let i of await K.promises.readdir(e,{withFileTypes:!0}).catch(()=>[])){let a=W.join(e,i.name);i.isDirectory()&&r?await u(a,r-1):i.isFile()&&(n?i.name===`${t}.jsonl`:i.name.endsWith(`-${t}.jsonl`))&&l.push(a)}};return n?await u(i,1):(await u(W.join(i,`sessions`),3),await u(W.join(i,`archived_sessions`),0)),a&&l.length&&ie(a,{...s,[o]:l}),l}function he(e,t){let n=t?e.message:e.type===`response_item`?e.payload:void 0;if(!n||!t&&n.type===`reasoning`)return;let r=n.content,i=Array.isArray(r)?r:[],a=n.role??(n.type?.endsWith(`_output`)?`tool`:`assistant`),o=i.some(e=>e.type===`tool_use`)||[`function_call`,`custom_tool_call`].includes(n.type),s=i.some(e=>e.type===`tool_result`)||[`function_call_output`,`custom_tool_call_output`].includes(n.type),c=typeof r==`string`?r:i.length?i.map(e=>typeof e.text==`string`?e.text:JSON.stringify(e)).join(`
2
+ `):JSON.stringify(n);return{speaker:s&&!o?`tool`:a,time:String(e.timestamp??``),text:c}}async function*ge(e,t){for(let n of await Y(e,t)){let t=K.createReadStream(n,{encoding:`utf8`}),r=pe.createInterface({input:t,crlfDelay:1/0});try{for await(let t of r){let n;try{n=JSON.parse(t)}catch{continue}let r=he(n,e.engine===`claude`);r&&(yield r)}}finally{r.close(),t.destroy()}}}async function _e(e,{query:t,from:n=0,limit:r=10}={}){if(t!==void 0&&(typeof t!=`string`||!t.length||t.length>500))throw Error(`Provide a query of 1 to 500 characters`);if(!Number.isSafeInteger(n)||n<0)throw Error(`Provide from as a nonnegative message index`);if(!Number.isInteger(r)||r<1||r>20)throw Error(`Provide a limit of 1 to 20 messages`);let i=[],a=t?.toLowerCase(),o=0;for(let t of J(e))for await(let s of ge(e,t)){let e=o++;if(e<n)continue;let t=a===void 0?0:s.text.toLowerCase().indexOf(a);if(t<0)continue;if(i.length===r)return{messages:i,next:i[i.length-1].index+1};let c=Math.max(0,t-200);i.push({index:e,speaker:s.speaker,time:s.time,text:s.text.slice(c,c+1200)})}return{messages:i}}function ve(e,t,r=e=>e){return async i=>({...n(Object.fromEntries(j(e,G.env,t).flatMap(e=>{let t=e.connection??e.name;return i.includes(t)?[[t,r(e)]]:[]}))),warnings:[]})}async function ye(e,t,n,r,i={}){if(t.status!==`running`)return null;let a=t.engine===`claude`?await(i.claude??A)(t.steerEndpoint,n,void 0,r):await(i.codex??R)(e,{endpoint:t.steerEndpoint,threadId:t.threadId,turnId:t.turnId,text:n,command:r});if(a.steered)return _(e,t.id,{kind:`steer`,message:`${ce}${n}`}),{taskId:t.id,steered:`live`};if(!a.retryable)throw _(e,t.id,{kind:`error`,message:`Live steer failed: ${a.detail}`}),Error(`Could not steer running task ${t.id}: ${a.detail}`);return null}function X(e,t,n,r){T(e,t,n,r)&&_(e,t,{kind:`steer`,message:`Steer queued for the next turn:\n${n}`})}async function Z(t,n,r,i={},a={}){if(n=e(t,n.id)??n,!n.threadId)throw new O(`invalid-option`,`Task ${n.id} has no thread to steer yet (status: ${n.status}).`,{hint:`Wait for it to start: coder task watch ${n.id}`});let o=await ye(t,n,r,i.command,a);if(o){let r=e(t,n.id)??n;return r.archived&&C(t,r),o}return{taskId:n.id,steered:await xe(t,n,r,i)}}function be(e){let t=K.mkdtempSync(`${e}-`),n=`${G.pid}-${s(G.pid)??0}-${q()}`;K.mkdirSync(W.join(t,n));try{for(let n=0;n<2;n++){try{return K.renameSync(t,e),!0}catch(e){if(![`EEXIST`,`ENOTEMPTY`,`ENOTDIR`].includes(e.code??``))throw e}try{if(K.statSync(e).isFile()){if(Date.now()-K.statSync(e).mtimeMs<6e4)return!1;K.unlinkSync(e);continue}for(let t of K.readdirSync(e)){let n=t.split(`-`),r=Number(n[0]),i=Number(n[1]),a=!1;if(Number.isInteger(r)&&r>0)try{G.kill(r,0),a=!0}catch(e){a=e.code===`EPERM`}let o=a?s(r):null;if(a&&(!i||o===null||o===i))return!1;K.rmdirSync(W.join(e,t))}K.rmdirSync(e)}catch(e){if(![`ENOENT`,`ENOTEMPTY`].includes(e.code??``))throw e}}return!1}finally{K.rmSync(t,{recursive:!0,force:!0})}}async function xe(t,n,a,o){if(n.connectionSource===`server`&&!o.resolveConnections)throw Error(`Server connection resolver is required to resume this task`);let s=await x(t,n.id,()=>{let i=e(t,n.id)??n,o=i.resumeOwner&&!m(i.resumeOwner)?f(t,i):i,s=[o?.completedAt,o?.resumedAt].map(e=>Date.parse(e??``)||0),c=W.join(r(t,n.id),`resume-${s.join(`-`)}`);if(o&&!o.steerClosed&&(w.includes(o.status)||o.status===`completed`&&o.steerClosed===!1&&m(o.pid))||!be(c)){o.archived&&C(t,o),X(t,n.id,a);return}return o.archived&&C(t,o),{fresh:o,claim:c,preparing:g(t,n.id,{status:`queued`,pid:null,resumeOwner:G.pid,dispatchId:q(),resumedAt:new Date().toISOString(),currentPrompt:a,resumeThreadId:o.threadId,steerClosed:!1,steerEndpoint:null,error:void 0})}});if(!s)return`queued`;let{fresh:c,claim:l,preparing:u}=s;n=c??n;try{for(let e of K.readdirSync(r(t,n.id)))/^resume-\d+-\d+$/.test(e)&&e!==W.basename(l)&&K.rmSync(W.join(r(t,n.id),e),{recursive:!0,force:!0});let s=n.agentId?await(await import(`./exec-BmTa0vcO.js`).then(e=>e.i)).localAgentPrompt(t,n.agentId):void 0,c=o.resolveConnections?await o.resolveConnections(n.connections??[]):await i(void 0,n.connections??[],void 0,s?.access),d=n.mcp?.map(e=>{let t=e.connection??(e.resolved&&n.connections?.includes(e.name)?e.name:void 0);return t?{...e,connection:t,resolved:!1}:e})??[],f=n.mcpBindings??d.filter(e=>e.connection).map(({name:e,connection:t,tools:n})=>({name:e,connection:t,...n?{tools:n}:{}})),p=new Set(f.map(e=>e.connection)),m=M([...f,...d.filter(e=>!p.has(e.connection))],{},{},c.mcp);n.archived&&C(t,n),await x(t,n.id,()=>{let r=e(t,n.id);if(r?.status!==`queued`||r.dispatchId!==u.dispatchId||r.resumeOwner!==G.pid)throw Error(`Task changed while preparing its resumed turn`);g(t,n.id,{...s?.developer&&n.promptParts?{promptParts:{...n.promptParts,developer:{...s.developer,notes:n.promptParts.developer?.notes}}}:{},mcp:m.mcp,mcpBindings:f,status:`queued`,pid:null,steerClosed:!1,resumeOwner:void 0,currentPrompt:a,...o.outputSchema?{outputSchema:o.outputSchema}:{},resumeThreadId:n.threadId,steerEndpoint:null,model:o.model??n.model??null,effort:o.effort??n.effort??null,permissions:o.permissions??n.permissions,error:void 0}),_(t,n.id,{kind:`steer`,message:`Resuming with steer:\n${a}`});for(let e of[...c.warnings,...m.warnings??[]])_(t,n.id,{kind:`status`,message:e});let i=k(n.cwd??t,n.id,c.env);o.onWorker?.(i)})}catch(i){let a=e(t,n.id);throw a&&a.dispatchId===u.dispatchId&&w.includes(a.status)&&g(t,n.id,{status:`failed`,resumeOwner:void 0,steerClosed:!0,completedAt:new Date().toISOString(),error:i instanceof Error?i.message:String(i)}),K.rmSync(W.join(r(t,n.id),W.basename(l)),{recursive:!0,force:!0}),i}return`resumed`}const Se=[`Read`,`Glob`,`Grep`];function Ce(e,t,n,r){return{prompt:n,model:r.model??e.model,effort:r.effort,permissions:`read-only`,additionalDirectories:[t],taskRoot:t,readOnlyAllowedTools:Se}}async function we(e,n,i,o={}){let s=r(e,n.id),c=t(n,{log:W.join(s,`log.jsonl`),result:W.join(s,`result.json`),worker:W.join(s,`worker.log`)},i,o.command?H(o.command):void 0),l=o.command?e=>{let t=W.join(s,`inbox-control`);K.mkdirSync(t,{recursive:!0}),K.appendFileSync(W.join(t,`${H(o.command)}.transcript.jsonl`),JSON.stringify({command:o.command,result:e.finalMessage??e.error?.message??``})+`
3
+ `)}:void 0,u=o.effort??n.effort??null;if(n.engine===`claude`)return F(n.cwd??e,{...Ce(n,s,c,{model:o.model,effort:u}),command:o.command,onResult:l});let d=a(e),f=o.model??n.model,p=f?d.models?.[f]:void 0;return D(n.cwd??e,{prompt:c,model:ne(f??null),...p&&f&&ee(p)?{customModel:{alias:f,entry:p}}:{},effort:u,sandbox:`read-only`,approvalPolicy:`never`,ephemeral:!0,onResult:l})}function Q(e,t,n=`active`){return S(e).filter(e=>n===`all`||w.includes(e.status)).flatMap(n=>t(r(e,n.id)).map(e=>({...e,taskId:n.id})))}async function Te(e,t,n,i,a={}){let o=r(e,t.id),s=L(o).find(e=>e.id===n),c=s?.response?.decision===i&&!s.response.deliveredAt?s:null,l=c??de(o,n,i,a.reason,a.by);return c||_(e,t.id,{kind:`approval-answered`,approvalId:n,decision:i,summary:l.actions.join(`
4
+ `),...a.reason?{reason:a.reason}:{},...l.response?.by?{by:l.response.by}:{},message:V(l)}),await Ee(e,t,l,a),fe(o,l)}async function Ee(t,n,r,i){let a=V(r),o=`${r.id}:${r.response.answeredAt}`,s=i.command??B(n.id,o),c=e(t,n.id)??n;if((c.currentPrompt??c.prompt)===a&&w.includes(c.status))return;let l=await x(t,n.id,()=>{let r=e(t,n.id)??c;return te(t,n.id,o)?!0:r.steerClosed||!w.includes(r.status)||r.threadId?!1:(X(t,n.id,a,o),!0)}),u=!w.includes((e(t,n.id)??c).status);!l&&!(u&&await i.resume?.(a))&&await Z(t,c,a,{command:s,...i.resolveConnections?{resolveConnections:i.resolveConnections}:{}})}function $(e){return S(e).filter(t=>!v.includes(t.status)||!y(Date.parse(t.completedAt??t.updatedAt??t.createdAt??``))||(ae(e,t,{auto:!0}),!1))}function De(e,t={}){let n=t.limit===`all`?void 0:t.limit,r=e=>v.includes(e.status),i=u(e),a=new Set(i.map(e=>e.id)),s=e=>e.filter(e=>!a.has(e.id)),c=[...s($(e)),...i.filter(e=>!e.archived)];if(t.archived?c=[...s(l(e)),...i.filter(e=>e.archived)]:t.running?c=c.filter(e=>w.includes(e.status)):t.stopped&&(c=c.filter(r)),t.dir){let e=o(W.resolve(String(t.dir))),n=new Map;c=c.filter(t=>t.cwd?(n.has(t.cwd)||n.set(t.cwd,o(t.cwd)),n.get(t.cwd)===e):!1)}let d=e=>({rank:ue(e.status),createdAt:Date.parse(e.createdAt??``)||0,id:e.id});c=[...c].sort((e,t)=>re(d(e),d(t)));let f=n===void 0?0:Math.max(0,c.length-n);return n!==void 0&&(c=c.slice(0,n)),{tasks:c,clipped:f}}async function*Oe(t,n,i={}){let a=se(t,n);try{let o=c(),s=e(t,n);if(!s)throw Error(`No task found for "${n}".`);let l=i.tail??1,u=p(W.join(r(t,n),`log.jsonl`)),m=!0,h=()=>{let e=u().map(e=>{try{return JSON.parse(e)}catch{return{message:e}}});return m?(m=!1,l===`all`?e:d(e,l)):e};for(yield*h();s=f(t,e(t,n)??s,o),!v.includes(s.status);)await a.wait(1e3),yield*h();yield*h()}finally{a.close()}}async function ke(e,t,n={}){let i=t.engine===`claude`?{detail:`claude worker terminated`}:await(n.interrupt??N)(e,{endpoint:t.steerEndpoint,threadId:t.threadId,turnId:t.turnId});if(t.engine!==`claude`&&U(t.steerEndpoint),t.pid&&t.status===`running`)try{G.kill(t.pid,`SIGTERM`)}catch{}return g(e,t.id,{status:`cancelled`,error:le,steerEndpoint:null,completedAt:new Date().toISOString()}),z(r(e,t.id)),{taskId:t.id,status:`cancelled`,interrupt:i.detail}}function Ae(e,t){for(let n of J(t))t.engine===`claude`?I(n):oe(e,n);return E(e,t.id)}export{Ae as a,Z as c,me as d,J as f,De as i,ke as l,Y as m,we as n,ve as o,_e as p,Q as r,$ as s,Te as t,Oe as u};
@@ -1,4 +1,4 @@
1
- import{s as e}from"./slack-Bo5l13Rs.js";import{D as t,E as n,d as r,f as i,i as a,l as o,n as s,r as c,u as l}from"./dist-DAnSqY1s.js";import{_ as u,a as d,c as f,d as p,f as m,l as h,m as ee,r as g,t as _}from"./dist-ClCNj65n.js";import{AsyncLocalStorage as te}from"async_hooks";import ne from"crypto";var v=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);const re=`linear-signature`,ie=`linear-timestamp`;var ae=class{constructor(e){this.secret=e}createHandler(){let e=new Map,t=async(t,n)=>{let r=this.getHttpAdapter(t,n);try{if(r.method!==`POST`)return r.send(405,`Method not allowed`);let t=r.signature;if(!t)return r.send(400,`Missing webhook signature`);let n=await r.readRawBody(),i;try{i=this.parseVerifiedPayload(n,t,r.timestamp)}catch{return r.send(400,`Invalid webhook`)}let a=this.collectHandlers(e,i.type);return await Promise.all(a.map(e=>e(i))),r.send(200,`OK`)}catch{return r.send(500,`Internal server error`)}};return t.on=function(t,n){let r=e.get(t)||[];r.push(n),e.set(t,r)},t.off=function(t,n){let r=e.get(t);if(r){let i=r.indexOf(n);i>-1&&(r.splice(i,1),r.length===0&&e.delete(t))}},t.removeAllListeners=function(t){t?e.delete(t):e.clear()},t}isFetchRequest(e){return typeof e==`object`&&!!e&&`arrayBuffer`in e&&typeof Reflect.get(e,`arrayBuffer`)==`function`}createFetchAdapter(e){return{method:e.method,signature:e.headers.get(re),timestamp:e.headers.get(ie),readRawBody:async()=>Buffer.from(await e.arrayBuffer()),send:(e,t)=>new Response(t,{status:e})}}createNodeAdapter(e,t){let n=e.headers[re],r=Array.isArray(n)?n[0]??null:n??null,i=e.headers[ie],a=Array.isArray(i)?i[0]??null:i??null;return{method:e.method||``,signature:r,timestamp:a,readRawBody:async()=>{let t=[];for await(let n of e)t.push(Buffer.from(n));return Buffer.concat(t)},send:(e,n)=>{t.statusCode=e,t.end(n)}}}getHttpAdapter(e,t){return this.isFetchRequest(e)?this.createFetchAdapter(e):this.createNodeAdapter(e,t)}parseVerifiedPayload(e,t,n){let r=this.parseBodyAsWebhookPayload(e),i=n??r.webhookTimestamp;if(!this.verify(e,t,i))throw Error(`Invalid webhook signature`);return r}parseBodyAsWebhookPayload(e){return JSON.parse(e.toString())}collectHandlers(e,t){let n=e.get(t)||[],r=e.get(`*`)||[];return[...n,...r]}verify(e,t,n){let r=Buffer.from(ne.createHmac(`sha256`,this.secret).update(e).digest(`hex`)),i=Buffer.from(t);if(r.length!==i.length||!ne.timingSafeEqual(r,i))throw Error(`Invalid webhook signature`);if(n){let e=typeof n==`string`?parseInt(n,10):n;if(isNaN(e))throw Error(`Invalid webhook timestamp: ${n}`);if(Math.abs(new Date().getTime()-e)>6e4)throw Error(`Invalid webhook timestamp`)}return!0}parseData(e,t,n){if(!this.verify(e,t,n))throw Error(`Invalid webhook signature`);return this.parseBodyAsWebhookPayload(e)}};let y=function(e){return e.FeatureNotAccessible=`FeatureNotAccessible`,e.InvalidInput=`InvalidInput`,e.Ratelimited=`Ratelimited`,e.NetworkError=`NetworkError`,e.AuthenticationError=`AuthenticationError`,e.Forbidden=`Forbidden`,e.BootstrapError=`BootstrapError`,e.Unknown=`Unknown`,e.InternalError=`InternalError`,e.Other=`Other`,e.UserError=`UserError`,e.GraphqlError=`GraphqlError`,e.LockTimeout=`LockTimeout`,e.UsageLimitExceeded=`UsageLimitExceeded`,e}({});function oe(e){return Object.entries(e).reduce((e,[t,n])=>{let r=`${t}@${encodeURIComponent(n)}`;return e?`${e} ${r}`:r},``)}function se(e){return e?`${e.charAt(0).toUpperCase()}${e.slice(1)}`:void 0}function ce(e){return e!=null}function b(e,t){return Object.keys(e).find(n=>e[n]===t)}const le={[y.FeatureNotAccessible]:`feature not accessible`,[y.InvalidInput]:`invalid input`,[y.Ratelimited]:`ratelimited`,[y.NetworkError]:`network error`,[y.AuthenticationError]:`authentication error`,[y.Forbidden]:`forbidden`,[y.BootstrapError]:`bootstrap error`,[y.Unknown]:`unknown`,[y.InternalError]:`internal error`,[y.Other]:`other`,[y.UserError]:`user error`,[y.GraphqlError]:`graphql error`,[y.LockTimeout]:`lock timeout`,[y.UsageLimitExceeded]:`usage limit exceeded`};function ue(e){return b(le,e)??y.Unknown}const de=`Unknown error from LinearClient`;var fe=class{type;message;userError;path;constructor(e){this.type=ue(e?.extensions?.type),this.userError=e?.extensions?.userError,this.path=e?.path,this.message=e?.extensions?.userPresentableMessage??e?.message??e?.extensions?.type??de}},x=class extends Error{type;errors;query;variables;data;status;raw;constructor(e,t,n){super(Array.from(new Set([se(e?.message?.split(`: {`)?.[0]),e?.response?.error,t?.[0]?.message].filter(ce))).filter(ce).join(` - `)??de),this.type=n,this.errors=t,this.query=e?.request?.query,this.variables=e?.request?.variables,this.status=e?.response?.status,this.data=e?.response?.data,this.raw=e}},pe=class extends x{constructor(e,t){super(e,t,y.FeatureNotAccessible)}},me=class extends x{constructor(e,t){super(e,t,y.InvalidInput)}},he=class extends x{constructor(e,t){super(e,t,y.Ratelimited);let n=e?.response?.headers;this.retryAfter=this.parseNumber(n?.get(`retry-after`)),this.requestsLimit=this.parseNumber(n?.get(`x-ratelimit-requests-limit`)),this.requestsRemaining=this.parseNumber(n?.get(`x-ratelimit-requests-remaining`)),this.requestsResetAt=this.parseNumber(n?.get(`x-ratelimit-requests-reset`)),this.complexityLimit=this.parseNumber(n?.get(`x-ratelimit-complexity-limit`)),this.complexityRemaining=this.parseNumber(n?.get(`x-ratelimit-complexity-remaining`)),this.complexityResetAt=this.parseNumber(n?.get(`x-ratelimit-complexity-reset`))}retryAfter;requestsLimit;requestsRemaining;requestsResetAt;complexityLimit;complexityRemaining;complexityResetAt;parseNumber(e){if(e!=null&&e!==``)return Number(e)??void 0}},ge=class extends x{constructor(e,t){super(e,t,y.NetworkError)}},_e=class extends x{constructor(e,t){super(e,t,y.AuthenticationError)}},ve=class extends x{constructor(e,t){super(e,t,y.Forbidden)}},ye=class extends x{constructor(e,t){super(e,t,y.BootstrapError)}},be=class extends x{constructor(e,t){super(e,t,y.Unknown)}},xe=class extends x{constructor(e,t){super(e,t,y.InternalError)}},Se=class extends x{constructor(e,t){super(e,t,y.Other)}},Ce=class extends x{constructor(e,t){super(e,t,y.UserError)}},we=class extends x{constructor(e,t){super(e,t,y.GraphqlError)}},Te=class extends x{constructor(e,t){super(e,t,y.LockTimeout)}},Ee=class extends x{constructor(e,t){super(e,t,y.UsageLimitExceeded)}};const De={[y.FeatureNotAccessible]:pe,[y.InvalidInput]:me,[y.Ratelimited]:he,[y.NetworkError]:ge,[y.AuthenticationError]:_e,[y.Forbidden]:ve,[y.BootstrapError]:ye,[y.Unknown]:be,[y.InternalError]:xe,[y.Other]:Se,[y.UserError]:Ce,[y.GraphqlError]:we,[y.LockTimeout]:Te,[y.UsageLimitExceeded]:Ee};function Oe(e){if(e instanceof x)return e;let t=(e?.response?.errors??[]).map(e=>new fe(e)),n=e?.response?.status;return new(De[t[0]?.type??(n===403?y.Forbidden:n===429?y.Ratelimited:`${n}`.startsWith(`4`)?y.AuthenticationError:n===500?y.InternalError:`${n}`.startsWith(`5`)?y.NetworkError:y.Unknown)]??x)(e,t)}var ke=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.default=typeof Symbol==`function`&&typeof Symbol.for==`function`?Symbol.for(`nodejs.util.inspect.custom`):void 0})),Ae=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=o;var t=n(ke());function n(e){return e&&e.__esModule?e:{default:e}}function r(e){"@babel/helpers - typeof";return r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},r(e)}var i=10,a=2;function o(e){return s(e,[])}function s(e,t){switch(r(e)){case`string`:return JSON.stringify(e);case`function`:return e.name?`[function ${e.name}]`:`[function]`;case`object`:return e===null?`null`:c(e,t);default:return String(e)}}function c(e,t){if(t.indexOf(e)!==-1)return`[Circular]`;var n=[].concat(t,[e]),r=d(e);if(r!==void 0){var i=r.call(e);if(i!==e)return typeof i==`string`?i:s(i,n)}else if(Array.isArray(e))return u(e,n);return l(e,n)}function l(e,t){var n=Object.keys(e);return n.length===0?`{}`:t.length>a?`[`+f(e)+`]`:`{ `+n.map(function(n){var r=s(e[n],t);return n+`: `+r}).join(`, `)+` }`}function u(e,t){if(e.length===0)return`[]`;if(t.length>a)return`[Array]`;for(var n=Math.min(i,e.length),r=e.length-n,o=[],c=0;c<n;++c)o.push(s(e[c],t));return r===1?o.push(`... 1 more item`):r>1&&o.push(`... ${r} more items`),`[`+o.join(`, `)+`]`}function d(e){var n=e[String(t.default)];if(typeof n==`function`)return n;if(typeof e.inspect==`function`)return e.inspect}function f(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,``).replace(/]$/,``);if(t===`Object`&&typeof e.constructor==`function`){var n=e.constructor.name;if(typeof n==`string`&&n!==``)return n}return t}})),je=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=t;function t(e,t){if(!e)throw Error(t??`Unexpected invariant triggered.`)}})),Me=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=i;var t=r(je()),n=r(ke());function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var r=e.prototype.toJSON;typeof r==`function`||(0,t.default)(0),e.prototype.inspect=r,n.default&&(e.prototype[n.default]=r)}})),Ne=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isNode=a,e.Token=e.Location=void 0;var t=n(Me());function n(e){return e&&e.__esModule?e:{default:e}}var r=function(){function e(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}var t=e.prototype;return t.toJSON=function(){return{start:this.start,end:this.end}},e}();e.Location=r,(0,t.default)(r);var i=function(){function e(e,t,n,r,i,a,o){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=o,this.prev=a,this.next=null}var t=e.prototype;return t.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();e.Token=i,(0,t.default)(i);function a(e){return e!=null&&typeof e.kind==`string`}})),Pe=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.visit=o,e.visitInParallel=s,e.getVisitFn=c,e.BREAK=e.QueryDocumentKeys=void 0;var t=r(Ae()),n=Ne();function r(e){return e&&e.__esModule?e:{default:e}}var i={Name:[],Document:[`definitions`],OperationDefinition:[`name`,`variableDefinitions`,`directives`,`selectionSet`],VariableDefinition:[`variable`,`type`,`defaultValue`,`directives`],Variable:[`name`],SelectionSet:[`selections`],Field:[`alias`,`name`,`arguments`,`directives`,`selectionSet`],Argument:[`name`,`value`],FragmentSpread:[`name`,`directives`],InlineFragment:[`typeCondition`,`directives`,`selectionSet`],FragmentDefinition:[`name`,`variableDefinitions`,`typeCondition`,`directives`,`selectionSet`],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:[`values`],ObjectValue:[`fields`],ObjectField:[`name`,`value`],Directive:[`name`,`arguments`],NamedType:[`name`],ListType:[`type`],NonNullType:[`type`],SchemaDefinition:[`description`,`directives`,`operationTypes`],OperationTypeDefinition:[`type`],ScalarTypeDefinition:[`description`,`name`,`directives`],ObjectTypeDefinition:[`description`,`name`,`interfaces`,`directives`,`fields`],FieldDefinition:[`description`,`name`,`arguments`,`type`,`directives`],InputValueDefinition:[`description`,`name`,`type`,`defaultValue`,`directives`],InterfaceTypeDefinition:[`description`,`name`,`interfaces`,`directives`,`fields`],UnionTypeDefinition:[`description`,`name`,`directives`,`types`],EnumTypeDefinition:[`description`,`name`,`directives`,`values`],EnumValueDefinition:[`description`,`name`,`directives`],InputObjectTypeDefinition:[`description`,`name`,`directives`,`fields`],DirectiveDefinition:[`description`,`name`,`arguments`,`locations`],SchemaExtension:[`directives`,`operationTypes`],ScalarTypeExtension:[`name`,`directives`],ObjectTypeExtension:[`name`,`interfaces`,`directives`,`fields`],InterfaceTypeExtension:[`name`,`interfaces`,`directives`,`fields`],UnionTypeExtension:[`name`,`directives`,`types`],EnumTypeExtension:[`name`,`directives`,`values`],InputObjectTypeExtension:[`name`,`directives`,`fields`]};e.QueryDocumentKeys=i;var a=Object.freeze({});e.BREAK=a;function o(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i,s=void 0,l=Array.isArray(e),u=[e],d=-1,f=[],p=void 0,m=void 0,h=void 0,ee=[],g=[],_=e;do{d++;var te=d===u.length,ne=te&&f.length!==0;if(te){if(m=g.length===0?void 0:ee[ee.length-1],p=h,h=g.pop(),ne){if(l)p=p.slice();else{for(var v={},re=0,ie=Object.keys(p);re<ie.length;re++){var ae=ie[re];v[ae]=p[ae]}p=v}for(var y=0,oe=0;oe<f.length;oe++){var se=f[oe][0],ce=f[oe][1];l&&(se-=y),l&&ce===null?(p.splice(se,1),y++):p[se]=ce}}d=s.index,u=s.keys,f=s.edits,l=s.inArray,s=s.prev}else{if(m=h?l?d:u[d]:void 0,p=h?h[m]:_,p==null)continue;h&&ee.push(m)}var b=void 0;if(!Array.isArray(p)){if(!(0,n.isNode)(p))throw Error(`Invalid AST Node: ${(0,t.default)(p)}.`);var le=c(r,p.kind,te);if(le){if(b=le.call(r,p,m,h,ee,g),b===a)break;if(b===!1){if(!te){ee.pop();continue}}else if(b!==void 0&&(f.push([m,b]),!te))if((0,n.isNode)(b))p=b;else{ee.pop();continue}}}b===void 0&&ne&&f.push([m,p]),te?ee.pop():(s={inArray:l,index:d,keys:u,edits:f,prev:s},l=Array.isArray(p),u=l?p:o[p.kind]??[],d=-1,f=[],h&&g.push(h),h=p)}while(s!==void 0);return f.length!==0&&(_=f[f.length-1][1]),_}function s(e){var t=Array(e.length);return{enter:function(n){for(var r=0;r<e.length;r++)if(t[r]==null){var i=c(e[r],n.kind,!1);if(i){var o=i.apply(e[r],arguments);if(o===!1)t[r]=n;else if(o===a)t[r]=a;else if(o!==void 0)return o}}},leave:function(n){for(var r=0;r<e.length;r++)if(t[r]==null){var i=c(e[r],n.kind,!0);if(i){var o=i.apply(e[r],arguments);if(o===a)t[r]=a;else if(o!==void 0&&o!==!1)return o}}else t[r]===n&&(t[r]=null)}}}function c(e,t,n){var r=e[t];if(r){if(!n&&typeof r==`function`)return r;var i=n?r.leave:r.enter;if(typeof i==`function`)return i}else{var a=n?e.leave:e.enter;if(a){if(typeof a==`function`)return a;var o=a[t];if(typeof o==`function`)return o}}}})),Fe=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.dedentBlockStringValue=t,e.getBlockStringIndentation=r,e.printBlockString=i;function t(e){var t=e.split(/\r\n|[\n\r]/g),i=r(e);if(i!==0)for(var a=1;a<t.length;a++)t[a]=t[a].slice(i);for(var o=0;o<t.length&&n(t[o]);)++o;for(var s=t.length;s>o&&n(t[s-1]);)--s;return t.slice(o,s).join(`
1
+ import{c as e}from"./slack-BtKvW_4v.js";import{D as t,E as n,d as r,f as i,i as a,l as o,n as s,r as c,u as l}from"./dist-DAnSqY1s.js";import{_ as u,a as d,c as f,d as p,f as m,l as h,m as ee,r as g,t as _}from"./dist-ClCNj65n.js";import{AsyncLocalStorage as te}from"async_hooks";import ne from"crypto";var v=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);const re=`linear-signature`,ie=`linear-timestamp`;var ae=class{constructor(e){this.secret=e}createHandler(){let e=new Map,t=async(t,n)=>{let r=this.getHttpAdapter(t,n);try{if(r.method!==`POST`)return r.send(405,`Method not allowed`);let t=r.signature;if(!t)return r.send(400,`Missing webhook signature`);let n=await r.readRawBody(),i;try{i=this.parseVerifiedPayload(n,t,r.timestamp)}catch{return r.send(400,`Invalid webhook`)}let a=this.collectHandlers(e,i.type);return await Promise.all(a.map(e=>e(i))),r.send(200,`OK`)}catch{return r.send(500,`Internal server error`)}};return t.on=function(t,n){let r=e.get(t)||[];r.push(n),e.set(t,r)},t.off=function(t,n){let r=e.get(t);if(r){let i=r.indexOf(n);i>-1&&(r.splice(i,1),r.length===0&&e.delete(t))}},t.removeAllListeners=function(t){t?e.delete(t):e.clear()},t}isFetchRequest(e){return typeof e==`object`&&!!e&&`arrayBuffer`in e&&typeof Reflect.get(e,`arrayBuffer`)==`function`}createFetchAdapter(e){return{method:e.method,signature:e.headers.get(re),timestamp:e.headers.get(ie),readRawBody:async()=>Buffer.from(await e.arrayBuffer()),send:(e,t)=>new Response(t,{status:e})}}createNodeAdapter(e,t){let n=e.headers[re],r=Array.isArray(n)?n[0]??null:n??null,i=e.headers[ie],a=Array.isArray(i)?i[0]??null:i??null;return{method:e.method||``,signature:r,timestamp:a,readRawBody:async()=>{let t=[];for await(let n of e)t.push(Buffer.from(n));return Buffer.concat(t)},send:(e,n)=>{t.statusCode=e,t.end(n)}}}getHttpAdapter(e,t){return this.isFetchRequest(e)?this.createFetchAdapter(e):this.createNodeAdapter(e,t)}parseVerifiedPayload(e,t,n){let r=this.parseBodyAsWebhookPayload(e),i=n??r.webhookTimestamp;if(!this.verify(e,t,i))throw Error(`Invalid webhook signature`);return r}parseBodyAsWebhookPayload(e){return JSON.parse(e.toString())}collectHandlers(e,t){let n=e.get(t)||[],r=e.get(`*`)||[];return[...n,...r]}verify(e,t,n){let r=Buffer.from(ne.createHmac(`sha256`,this.secret).update(e).digest(`hex`)),i=Buffer.from(t);if(r.length!==i.length||!ne.timingSafeEqual(r,i))throw Error(`Invalid webhook signature`);if(n){let e=typeof n==`string`?parseInt(n,10):n;if(isNaN(e))throw Error(`Invalid webhook timestamp: ${n}`);if(Math.abs(new Date().getTime()-e)>6e4)throw Error(`Invalid webhook timestamp`)}return!0}parseData(e,t,n){if(!this.verify(e,t,n))throw Error(`Invalid webhook signature`);return this.parseBodyAsWebhookPayload(e)}};let y=function(e){return e.FeatureNotAccessible=`FeatureNotAccessible`,e.InvalidInput=`InvalidInput`,e.Ratelimited=`Ratelimited`,e.NetworkError=`NetworkError`,e.AuthenticationError=`AuthenticationError`,e.Forbidden=`Forbidden`,e.BootstrapError=`BootstrapError`,e.Unknown=`Unknown`,e.InternalError=`InternalError`,e.Other=`Other`,e.UserError=`UserError`,e.GraphqlError=`GraphqlError`,e.LockTimeout=`LockTimeout`,e.UsageLimitExceeded=`UsageLimitExceeded`,e}({});function oe(e){return Object.entries(e).reduce((e,[t,n])=>{let r=`${t}@${encodeURIComponent(n)}`;return e?`${e} ${r}`:r},``)}function se(e){return e?`${e.charAt(0).toUpperCase()}${e.slice(1)}`:void 0}function ce(e){return e!=null}function b(e,t){return Object.keys(e).find(n=>e[n]===t)}const le={[y.FeatureNotAccessible]:`feature not accessible`,[y.InvalidInput]:`invalid input`,[y.Ratelimited]:`ratelimited`,[y.NetworkError]:`network error`,[y.AuthenticationError]:`authentication error`,[y.Forbidden]:`forbidden`,[y.BootstrapError]:`bootstrap error`,[y.Unknown]:`unknown`,[y.InternalError]:`internal error`,[y.Other]:`other`,[y.UserError]:`user error`,[y.GraphqlError]:`graphql error`,[y.LockTimeout]:`lock timeout`,[y.UsageLimitExceeded]:`usage limit exceeded`};function ue(e){return b(le,e)??y.Unknown}const de=`Unknown error from LinearClient`;var fe=class{type;message;userError;path;constructor(e){this.type=ue(e?.extensions?.type),this.userError=e?.extensions?.userError,this.path=e?.path,this.message=e?.extensions?.userPresentableMessage??e?.message??e?.extensions?.type??de}},x=class extends Error{type;errors;query;variables;data;status;raw;constructor(e,t,n){super(Array.from(new Set([se(e?.message?.split(`: {`)?.[0]),e?.response?.error,t?.[0]?.message].filter(ce))).filter(ce).join(` - `)??de),this.type=n,this.errors=t,this.query=e?.request?.query,this.variables=e?.request?.variables,this.status=e?.response?.status,this.data=e?.response?.data,this.raw=e}},pe=class extends x{constructor(e,t){super(e,t,y.FeatureNotAccessible)}},me=class extends x{constructor(e,t){super(e,t,y.InvalidInput)}},he=class extends x{constructor(e,t){super(e,t,y.Ratelimited);let n=e?.response?.headers;this.retryAfter=this.parseNumber(n?.get(`retry-after`)),this.requestsLimit=this.parseNumber(n?.get(`x-ratelimit-requests-limit`)),this.requestsRemaining=this.parseNumber(n?.get(`x-ratelimit-requests-remaining`)),this.requestsResetAt=this.parseNumber(n?.get(`x-ratelimit-requests-reset`)),this.complexityLimit=this.parseNumber(n?.get(`x-ratelimit-complexity-limit`)),this.complexityRemaining=this.parseNumber(n?.get(`x-ratelimit-complexity-remaining`)),this.complexityResetAt=this.parseNumber(n?.get(`x-ratelimit-complexity-reset`))}retryAfter;requestsLimit;requestsRemaining;requestsResetAt;complexityLimit;complexityRemaining;complexityResetAt;parseNumber(e){if(e!=null&&e!==``)return Number(e)??void 0}},ge=class extends x{constructor(e,t){super(e,t,y.NetworkError)}},_e=class extends x{constructor(e,t){super(e,t,y.AuthenticationError)}},ve=class extends x{constructor(e,t){super(e,t,y.Forbidden)}},ye=class extends x{constructor(e,t){super(e,t,y.BootstrapError)}},be=class extends x{constructor(e,t){super(e,t,y.Unknown)}},xe=class extends x{constructor(e,t){super(e,t,y.InternalError)}},Se=class extends x{constructor(e,t){super(e,t,y.Other)}},Ce=class extends x{constructor(e,t){super(e,t,y.UserError)}},we=class extends x{constructor(e,t){super(e,t,y.GraphqlError)}},Te=class extends x{constructor(e,t){super(e,t,y.LockTimeout)}},Ee=class extends x{constructor(e,t){super(e,t,y.UsageLimitExceeded)}};const De={[y.FeatureNotAccessible]:pe,[y.InvalidInput]:me,[y.Ratelimited]:he,[y.NetworkError]:ge,[y.AuthenticationError]:_e,[y.Forbidden]:ve,[y.BootstrapError]:ye,[y.Unknown]:be,[y.InternalError]:xe,[y.Other]:Se,[y.UserError]:Ce,[y.GraphqlError]:we,[y.LockTimeout]:Te,[y.UsageLimitExceeded]:Ee};function Oe(e){if(e instanceof x)return e;let t=(e?.response?.errors??[]).map(e=>new fe(e)),n=e?.response?.status;return new(De[t[0]?.type??(n===403?y.Forbidden:n===429?y.Ratelimited:`${n}`.startsWith(`4`)?y.AuthenticationError:n===500?y.InternalError:`${n}`.startsWith(`5`)?y.NetworkError:y.Unknown)]??x)(e,t)}var ke=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.default=typeof Symbol==`function`&&typeof Symbol.for==`function`?Symbol.for(`nodejs.util.inspect.custom`):void 0})),Ae=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=o;var t=n(ke());function n(e){return e&&e.__esModule?e:{default:e}}function r(e){"@babel/helpers - typeof";return r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},r(e)}var i=10,a=2;function o(e){return s(e,[])}function s(e,t){switch(r(e)){case`string`:return JSON.stringify(e);case`function`:return e.name?`[function ${e.name}]`:`[function]`;case`object`:return e===null?`null`:c(e,t);default:return String(e)}}function c(e,t){if(t.indexOf(e)!==-1)return`[Circular]`;var n=[].concat(t,[e]),r=d(e);if(r!==void 0){var i=r.call(e);if(i!==e)return typeof i==`string`?i:s(i,n)}else if(Array.isArray(e))return u(e,n);return l(e,n)}function l(e,t){var n=Object.keys(e);return n.length===0?`{}`:t.length>a?`[`+f(e)+`]`:`{ `+n.map(function(n){var r=s(e[n],t);return n+`: `+r}).join(`, `)+` }`}function u(e,t){if(e.length===0)return`[]`;if(t.length>a)return`[Array]`;for(var n=Math.min(i,e.length),r=e.length-n,o=[],c=0;c<n;++c)o.push(s(e[c],t));return r===1?o.push(`... 1 more item`):r>1&&o.push(`... ${r} more items`),`[`+o.join(`, `)+`]`}function d(e){var n=e[String(t.default)];if(typeof n==`function`)return n;if(typeof e.inspect==`function`)return e.inspect}function f(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,``).replace(/]$/,``);if(t===`Object`&&typeof e.constructor==`function`){var n=e.constructor.name;if(typeof n==`string`&&n!==``)return n}return t}})),je=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=t;function t(e,t){if(!e)throw Error(t??`Unexpected invariant triggered.`)}})),Me=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=i;var t=r(je()),n=r(ke());function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var r=e.prototype.toJSON;typeof r==`function`||(0,t.default)(0),e.prototype.inspect=r,n.default&&(e.prototype[n.default]=r)}})),Ne=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isNode=a,e.Token=e.Location=void 0;var t=n(Me());function n(e){return e&&e.__esModule?e:{default:e}}var r=function(){function e(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}var t=e.prototype;return t.toJSON=function(){return{start:this.start,end:this.end}},e}();e.Location=r,(0,t.default)(r);var i=function(){function e(e,t,n,r,i,a,o){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=o,this.prev=a,this.next=null}var t=e.prototype;return t.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();e.Token=i,(0,t.default)(i);function a(e){return e!=null&&typeof e.kind==`string`}})),Pe=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.visit=o,e.visitInParallel=s,e.getVisitFn=c,e.BREAK=e.QueryDocumentKeys=void 0;var t=r(Ae()),n=Ne();function r(e){return e&&e.__esModule?e:{default:e}}var i={Name:[],Document:[`definitions`],OperationDefinition:[`name`,`variableDefinitions`,`directives`,`selectionSet`],VariableDefinition:[`variable`,`type`,`defaultValue`,`directives`],Variable:[`name`],SelectionSet:[`selections`],Field:[`alias`,`name`,`arguments`,`directives`,`selectionSet`],Argument:[`name`,`value`],FragmentSpread:[`name`,`directives`],InlineFragment:[`typeCondition`,`directives`,`selectionSet`],FragmentDefinition:[`name`,`variableDefinitions`,`typeCondition`,`directives`,`selectionSet`],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:[`values`],ObjectValue:[`fields`],ObjectField:[`name`,`value`],Directive:[`name`,`arguments`],NamedType:[`name`],ListType:[`type`],NonNullType:[`type`],SchemaDefinition:[`description`,`directives`,`operationTypes`],OperationTypeDefinition:[`type`],ScalarTypeDefinition:[`description`,`name`,`directives`],ObjectTypeDefinition:[`description`,`name`,`interfaces`,`directives`,`fields`],FieldDefinition:[`description`,`name`,`arguments`,`type`,`directives`],InputValueDefinition:[`description`,`name`,`type`,`defaultValue`,`directives`],InterfaceTypeDefinition:[`description`,`name`,`interfaces`,`directives`,`fields`],UnionTypeDefinition:[`description`,`name`,`directives`,`types`],EnumTypeDefinition:[`description`,`name`,`directives`,`values`],EnumValueDefinition:[`description`,`name`,`directives`],InputObjectTypeDefinition:[`description`,`name`,`directives`,`fields`],DirectiveDefinition:[`description`,`name`,`arguments`,`locations`],SchemaExtension:[`directives`,`operationTypes`],ScalarTypeExtension:[`name`,`directives`],ObjectTypeExtension:[`name`,`interfaces`,`directives`,`fields`],InterfaceTypeExtension:[`name`,`interfaces`,`directives`,`fields`],UnionTypeExtension:[`name`,`directives`,`types`],EnumTypeExtension:[`name`,`directives`,`values`],InputObjectTypeExtension:[`name`,`directives`,`fields`]};e.QueryDocumentKeys=i;var a=Object.freeze({});e.BREAK=a;function o(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i,s=void 0,l=Array.isArray(e),u=[e],d=-1,f=[],p=void 0,m=void 0,h=void 0,ee=[],g=[],_=e;do{d++;var te=d===u.length,ne=te&&f.length!==0;if(te){if(m=g.length===0?void 0:ee[ee.length-1],p=h,h=g.pop(),ne){if(l)p=p.slice();else{for(var v={},re=0,ie=Object.keys(p);re<ie.length;re++){var ae=ie[re];v[ae]=p[ae]}p=v}for(var y=0,oe=0;oe<f.length;oe++){var se=f[oe][0],ce=f[oe][1];l&&(se-=y),l&&ce===null?(p.splice(se,1),y++):p[se]=ce}}d=s.index,u=s.keys,f=s.edits,l=s.inArray,s=s.prev}else{if(m=h?l?d:u[d]:void 0,p=h?h[m]:_,p==null)continue;h&&ee.push(m)}var b=void 0;if(!Array.isArray(p)){if(!(0,n.isNode)(p))throw Error(`Invalid AST Node: ${(0,t.default)(p)}.`);var le=c(r,p.kind,te);if(le){if(b=le.call(r,p,m,h,ee,g),b===a)break;if(b===!1){if(!te){ee.pop();continue}}else if(b!==void 0&&(f.push([m,b]),!te))if((0,n.isNode)(b))p=b;else{ee.pop();continue}}}b===void 0&&ne&&f.push([m,p]),te?ee.pop():(s={inArray:l,index:d,keys:u,edits:f,prev:s},l=Array.isArray(p),u=l?p:o[p.kind]??[],d=-1,f=[],h&&g.push(h),h=p)}while(s!==void 0);return f.length!==0&&(_=f[f.length-1][1]),_}function s(e){var t=Array(e.length);return{enter:function(n){for(var r=0;r<e.length;r++)if(t[r]==null){var i=c(e[r],n.kind,!1);if(i){var o=i.apply(e[r],arguments);if(o===!1)t[r]=n;else if(o===a)t[r]=a;else if(o!==void 0)return o}}},leave:function(n){for(var r=0;r<e.length;r++)if(t[r]==null){var i=c(e[r],n.kind,!0);if(i){var o=i.apply(e[r],arguments);if(o===a)t[r]=a;else if(o!==void 0&&o!==!1)return o}}else t[r]===n&&(t[r]=null)}}}function c(e,t,n){var r=e[t];if(r){if(!n&&typeof r==`function`)return r;var i=n?r.leave:r.enter;if(typeof i==`function`)return i}else{var a=n?e.leave:e.enter;if(a){if(typeof a==`function`)return a;var o=a[t];if(typeof o==`function`)return o}}}})),Fe=v((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.dedentBlockStringValue=t,e.getBlockStringIndentation=r,e.printBlockString=i;function t(e){var t=e.split(/\r\n|[\n\r]/g),i=r(e);if(i!==0)for(var a=1;a<t.length;a++)t[a]=t[a].slice(i);for(var o=0;o<t.length&&n(t[o]);)++o;for(var s=t.length;s>o&&n(t[s-1]);)--s;return t.slice(o,s).join(`
2
2
  `)}function n(e){for(var t=0;t<e.length;++t)if(e[t]!==` `&&e[t]!==` `)return!1;return!0}function r(e){for(var t=!0,n=!0,r=0,i=null,a=0;a<e.length;++a)switch(e.charCodeAt(a)){case 13:e.charCodeAt(a+1)===10&&++a;case 10:t=!1,n=!0,r=0;break;case 9:case 32:++r;break;default:n&&!t&&(i===null||r<i)&&(i=r),n=!1}return i??0}function i(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``,n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=e.indexOf(`
3
3
  `)===-1,i=e[0]===` `||e[0]===` `,a=e[e.length-1]===`"`,o=e[e.length-1]===`\\`,s=!r||a||o||n,c=``;return s&&!(r&&i)&&(c+=`
4
4
  `+t),c+=t?e.replace(/\n/g,`
@@ -49842,4 +49842,4 @@ ${i}`:a}function ow(e){if(e)return e.split(`,`).map(e=>e.trim()).filter(Boolean)
49842
49842
  }
49843
49843
  }
49844
49844
  `);if(!t.data)throw new g(`linear`,`Failed to resolve client identity for Linear installation.`);return{botUserId:t.data.viewer.id,displayName:t.data.viewer.displayName,organizationId:t.data.viewer.organization.id}}async fetchOAuthToken(e,t){let n=await fetch(`https://api.linear.app/oauth/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:e});if(!n.ok){let e=await n.text();throw new g(`linear`,`${t}: ${n.status} ${e}`)}return await n.json()}async refreshInstallation(e){if(!(e.refreshToken&&this.oauthClientId&&this.oauthClientSecret)||e.expiresAt!==null&&e.expiresAt>Date.now()+iw)return e;let t=await this.fetchOAuthToken(new URLSearchParams({refresh_token:e.refreshToken,grant_type:`refresh_token`,client_id:this.oauthClientId,client_secret:this.oauthClientSecret}),`Failed to refresh Linear OAuth token`),n={...e,accessToken:t.access_token,expiresAt:$C(t.expires_in),refreshToken:t.refresh_token??e.refreshToken};return await this.setInstallation(e.organizationId,n),n}async requireInstallation(e){let t=await this.getInstallation(e);if(!t)throw new g(`linear`,`No installation found for organization ${e}`);return await this.refreshInstallation(t)}async refreshClientCredentialsToken(){if(!this.clientCredentials)return;let{clientId:e,clientSecret:t,scopes:n}=this.clientCredentials,r=await this.fetchOAuthToken(new URLSearchParams({grant_type:`client_credentials`,client_id:e,client_secret:t,scope:n.join(`,`)}),`Failed to fetch Linear client credentials token`);this.defaultClient=new BC({accessToken:r.access_token,...this.apiUrl?{apiUrl:this.apiUrl}:{}}),this.accessTokenExpiry=typeof r.expires_in==`number`?Date.now()+r.expires_in*1e3-36e5:null,this.logger.info(`Linear client credentials token obtained`,{expiresIn:typeof r.expires_in==`number`?`${Math.round(r.expires_in/86400)} days`:`unknown`})}async ensureValidToken(){this.requestContext.getStore()||this.clientCredentials&&this.accessTokenExpiry&&Date.now()>this.accessTokenExpiry&&(this.logger.info(`Linear access token expired, refreshing...`),await this.refreshClientCredentialsToken())}async parseMessageFromComment(e,t,n){let r;if(e.userId){let t=await e.user;if(!t)throw new _(`User with ID ${e.userId} not found for comment ${e.id}`,`linear`);r={type:`user`,id:t.id,displayName:t.displayName,fullName:t.name,email:t.email,avatarUrl:t.avatarUrl??void 0}}else{let t=await e.botActor;if(!t)throw new _(`Comment ${e.id} has no userId and no botActor, cannot determine author.`,`linear`);r={type:`bot`,id:t.id??this.botUserId,displayName:t.userDisplayName??t.name??`unknown`,fullName:t.name??t.userDisplayName??`unknown`,email:void 0,avatarUrl:t.avatarUrl??void 0}}let i={id:e.id,body:e.body,issueId:t,user:r,parentId:e.parentId??void 0,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString(),url:e.url??void 0};return this.parseMessage(n?{kind:`agent_session_comment`,comment:i,agentSessionId:n,organizationId:this.organizationId}:{kind:`comment`,comment:i,organizationId:this.organizationId})}parseMessageFromAgentSessionEvent(e){let t=e.agentSession.issueId??e.agentSession.issue?.id;if(!t)return null;if(e.action===`prompted`){let{agentActivity:n}=e;if(!n)return this.logger.warn(`Missing agent activity for prompted action`,{agentSessionId:e.agentSession.id}),null;let r=n.content,i={id:n.sourceCommentId??n.id,body:r.body,issueId:t,user:{type:`user`,id:n.user.id,displayName:QC(n.user.url),fullName:n.user.name,email:n.user.email,avatarUrl:n.user.avatarUrl??void 0},parentId:e.agentSession.comment?.id,createdAt:n.createdAt,updatedAt:n.createdAt,url:e.agentSession.url??void 0};return this.parseMessage({kind:`agent_session_comment`,organizationId:e.organizationId,comment:i,agentSessionId:e.agentSession.id,agentSessionPromptContext:e.promptContext??void 0})}if(e.action===`created`){let{agentSession:n}=e;if(n.appUserId!==this.botUserId)return this.logger.warn(`Ignoring agent session event from another bot`,{agentSessionId:e.agentSession.id,appUserId:n.appUserId}),null;let r=n.comment??{id:`agent-session-${n.id}`,body:e.promptContext??``},i={id:r.id,body:r.body,issueId:t,user:n.creator?{type:`user`,id:n.creator.id,displayName:QC(n.creator.url),fullName:n.creator.name,email:n.creator.email,avatarUrl:n.creator.avatarUrl??void 0}:{type:`bot`,id:`linear-automation`,displayName:`Linear automation`,fullName:`Linear automation`,email:void 0,avatarUrl:void 0},parentId:void 0,createdAt:e.createdAt,updatedAt:e.createdAt,url:e.agentSession.url??void 0};return this.parseMessage({kind:`agent_session_comment`,organizationId:e.organizationId,comment:i,agentSessionId:e.agentSession.id,agentSessionPromptContext:e.promptContext??void 0})}return this.logger.warn(`Unsupported agent session event action`,{action:e.action,agentSessionId:e.agentSession.id,issueId:t}),null}async parseMessageFromAgentActivity(e,t){let n=await t.agentActivity;if(!(t.success&&n))throw new _(`Failed to create Linear agent activity for session ${e.agentSessionId}`,`linear`);let r=await n.sourceComment;if(!r)throw new _(`Failed to resolve source comment for Linear agent activity ${n.id}`,`linear`);if(!n.agentSessionId)throw new _(`Missing agentSessionId for Linear agent activity ${n.id}`,`linear`);return this.parseMessageFromComment(r,e.issueId,n.agentSessionId)}async handleWebhook(e,t){if(this.webhookVerifier)return await this.handleVerifiedWebhook(e,t);let n=new ae(this.webhookSecret).createHandler();return n.on(`OAuthApp`,async e=>await this.onOAuthAppEvent(e)),n.on(`Comment`,async e=>await this.onCommentEvent(e,t)),n.on(`AgentSessionEvent`,async e=>await this.onAgentSessionEvent(e,t)),n.on(`Reaction`,async e=>await this.onReactionEvent(e)),await n(e)}async handleVerifiedWebhook(e,t){let n=await e.text(),r;try{r=await this.webhookVerifier?.(e,n)}catch(e){return this.logger.warn(`Linear webhook verifier rejected the request`,{error:e}),new Response(`Invalid webhook`,{status:401})}if(!r)return new Response(`Invalid webhook`,{status:401});let i=typeof r==`string`?r:n,a;try{a=JSON.parse(i)}catch{return new Response(`Invalid webhook`,{status:400})}try{await this.dispatchWebhookEvent(a,t)}catch(e){return this.logger.error(`Linear webhook handler failed`,{error:e}),new Response(`Internal server error`,{status:500})}return new Response(`OK`,{status:200})}async dispatchWebhookEvent(e,t){switch(e.type){case`OAuthApp`:await this.onOAuthAppEvent(e);break;case`Comment`:await this.onCommentEvent(e,t);break;case`AgentSessionEvent`:await this.onAgentSessionEvent(e,t);break;case`Reaction`:await this.onReactionEvent(e);break;default:this.logger.debug(`Ignoring unhandled Linear webhook type`,{type:e.type})}}async onOAuthAppEvent(e){if(e.action===`revoked`)try{await this.deleteInstallation(e.organizationId)}catch(t){this.logger.error(`Failed to delete Linear installation on revoke`,{organizationId:e.organizationId,error:t})}}async onCommentEvent(e,t){await this.withWebhookInstallation(e.organizationId,()=>{this.mode===`comments`&&e.action===`create`&&this.handleCommentCreated(e,t)})}async onAgentSessionEvent(e,t){await this.withWebhookInstallation(e.organizationId,()=>{if(this.mode!==`agent-sessions`){this.logger.warn(`Received AgentSessionEvent webhook but adapter is not in agent-sessions mode, ignoring`);return}this.handleAgentSessionEvent(e,t)})}async onReactionEvent(e){await this.withWebhookInstallation(e.organizationId,()=>{this.handleReaction(e)})}async withWebhookInstallation(e,t){if(this.isConnectMode()){await this.withConnectClient(e,t);return}if(!this.isMultiTenantMode())return await t();let n=await this.getInstallation(e);if(!n){this.logger.warn(`No Linear installation found for organization`,{organizationId:e});return}await this.withInstallation(n,t)}handleCommentCreated(e,t){if(!this.chat){this.logger.warn(`Chat instance not initialized, ignoring comment`);return}let{data:n}=e;if(!n.issueId){this.logger.debug(`Ignoring non-issue comment`,{commentId:n.id});return}if(!n.user){this.logger.debug(`Ignoring comment with no user`,{commentId:n.id});return}let r=n.parentId||n.id,i=this.encodeThreadId({issueId:n.issueId,commentId:r}),a={body:n.body,createdAt:n.createdAt,id:n.id,issueId:n.issueId,parentId:n.parentId??void 0,updatedAt:n.updatedAt,url:e.url??void 0,user:{type:`user`,id:n.user.id,displayName:QC(n.user.url),fullName:n.user.name,email:n.user.email,avatarUrl:n.user.avatarUrl??void 0}},o=this.parseMessage({kind:`comment`,comment:a,organizationId:e.organizationId});this.chat.processMessage(this,i,o,t)}handleAgentSessionEvent(e,t){if(!this.chat){this.logger.warn(`Chat instance not initialized, ignoring agent session event`);return}let n=this.parseMessageFromAgentSessionEvent(e);if(!n){this.logger.warn(`Unable to build message for Linear agent session event`,{agentSessionId:e.agentSession.id});return}this.chat.processMessage(this,n.threadId,n,t)}handleReaction(e){if(!this.chat)return;let{data:t}=e;this.logger.debug(`Received reaction webhook`,{reactionId:t.id,emoji:t.emoji,commentId:t.commentId,action:e.action})}async postMessage(e,t){await this.ensureValidToken();let n=this.getClient(),r=this.decodeThreadId(e),i=YC(t,this.formatConverter);if(r.agentSessionId)return XC(r),await this.parseMessageFromAgentActivity(r,await n.createAgentActivity({agentSessionId:r.agentSessionId,content:{type:He.Response,body:i}}));let a=await(await n.createComment({issueId:r.issueId,body:i,parentId:r.commentId})).comment;if(!a)throw this.logger.error(`Linear comment creation returned no comment`,{issueId:r.issueId,threadId:e}),new _(`Failed to create comment on Linear issue`,`linear`);return{id:a.id,threadId:e,raw:{kind:`comment`,comment:{id:a.id,body:a.body,issueId:r.issueId,parentId:r.commentId,user:{type:`bot`,id:this.botUserId,displayName:this.userName,fullName:this.userName,email:void 0,avatarUrl:void 0},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString(),url:a.url},organizationId:this.organizationId}}}async editMessage(e,t,n){await this.ensureValidToken();let r=this.getClient(),{issueId:i,agentSessionId:a}=this.decodeThreadId(e);if(a)throw new _(`Linear agent session activities are append-only and cannot be edited`,`linear`);let o=YC(n,this.formatConverter),s=await(await r.updateComment(t,{body:o})).comment;if(!s)throw this.logger.error(`Linear comment update returned no comment`,{messageId:t,threadId:e}),new _(`Failed to update comment on Linear`,`linear`);return{id:s.id,threadId:e,raw:{kind:`comment`,comment:{id:s.id,body:s.body,issueId:i,parentId:s.parentId??void 0,user:{type:`bot`,id:this.botUserId,displayName:this.userName,fullName:this.userName,email:void 0,avatarUrl:void 0},createdAt:s.createdAt.toISOString(),updatedAt:s.updatedAt.toISOString(),url:s.url},organizationId:this.organizationId}}}async deleteMessage(e,t){let{agentSessionId:n}=this.decodeThreadId(e);if(n)throw new _(`Linear agent session activities are append-only and cannot be deleted`,`linear`);await this.ensureValidToken(),await this.getClient().deleteComment(t)}async addReaction(e,t,n){await this.ensureValidToken();let r=this.resolveEmoji(n);await this.getClient().createReaction({commentId:t,emoji:r})}async removeReaction(e,t,n){this.logger.warn(`removeReaction is not fully supported on Linear - reaction ID lookup would be required`)}async startTyping(e,t){await this.ensureValidToken();let n=this.decodeThreadId(e);if(n.agentSessionId){await this.getClient().createAgentActivity({agentSessionId:n.agentSessionId,content:{type:He.Thought,body:t??`Thinking...`},ephemeral:!0});return}this.logger.warn(`startTyping is only supported in agent session threads. Ignoring for comment thread.`)}async stream(e,t,n){await this.ensureValidToken();let r=this.decodeThreadId(e);return r.agentSessionId?(XC(r),this.streamInAgentSession(r,t,n)):this.streamAsComment(e,t,n)}async streamInAgentSession(e,t,n){let i=new r,a=this.getClient();XC(e);let o=``,s=async(t,n=i.getCommittableText(),r=!1)=>{let s=n.slice(o.length).trim();if(s||r)return o=n,await a.createAgentActivity({agentSessionId:e.agentSessionId,content:{type:t,body:s}})};for await(let n of t){if(typeof n==`string`){i.push(n);continue}if(n.type===`markdown_text`){i.push(n.text);continue}if(n.type===`task_update`){await s(He.Thought),n.status===`error`?await a.createAgentActivity({agentSessionId:e.agentSessionId,content:{type:He.Error,body:[n.title,n.output].filter(Boolean).join(`
49845
- `)}}):await a.createAgentActivity({agentSessionId:e.agentSessionId,content:{type:He.Action,action:n.title,parameter:``,result:n.output},ephemeral:n.status!==`complete`});continue}n.type===`plan_update`&&await this.getClient().updateAgentSession(e.agentSessionId,{plan:[{content:n.title,status:`completed`}]})}let c=await s(He.Response,i.finish(),!0);if(!c)throw Error(`Failed to flush final markdown delta for agent session stream`);return await this.parseMessageFromAgentActivity(e,c)}async streamAsComment(e,t,n){let i=n?.updateIntervalMs??500,a=await this.postMessage(e,`...`),o=a.threadId||e,s=new r,c=`...`,l=!1,u=null,d=null,f=()=>{d=setTimeout(()=>{u=p()},i)},p=async()=>{if(l||!a)return;let e=s.render();if(e!==c)try{a=await this.editMessage(o,a.id,{markdown:e}),c=e,o=a.threadId||o}catch(e){this.logger.warn(`Linear fallback stream edit failed`,{error:e})}l||f()};f();try{for await(let e of t)typeof e==`string`?s.push(e):e.type===`markdown_text`&&s.push(e.text)}finally{l=!0,d&&clearTimeout(d)}u&&await u;let m=s.finish();return m!==c&&a&&(a=await this.editMessage(o,a.id,{markdown:m})),a}async fetchMessages(e,t){await this.ensureValidToken();let n=this.decodeThreadId(e);return n.agentSessionId?(XC(n),await this.fetchAgentSessionMessages(n,t)):n.commentId?await this.fetchCommentThread(n.issueId,n.commentId,t):await this.fetchIssueComments(n.issueId,t)}async fetchAgentSessionMessages(e,t){let n=this.getClient(),r=await n.agentSession(e.agentSessionId),i=r.issueId;if(!i||i!==e.issueId)throw new d(`linear`,`Agent session does not belong to this issue`);let a=await r.comment;if(!a)return await this.fetchAgentSessionActivities(r,i,t);let o=await n.comments({filter:{parent:{id:{eq:a.id}}},...t?.direction===`forward`?{first:t?.limit??50}:{last:t?.limit??50}});return{messages:await this.commentsToMessages([a,...o.nodes],i,r.id),nextCursor:o.pageInfo.hasNextPage?o.pageInfo.endCursor??void 0:void 0}}async fetchAgentSessionActivities(e,t,n){let r=n?.direction===`forward`,i=await e.activities({...r?{first:n?.limit??50,...n?.cursor?{after:n.cursor}:{}}:{last:n?.limit??50,...n?.cursor?{before:n.cursor}:{}}}),a=[...i.nodes].sort((e,t)=>e.createdAt.getTime()-t.createdAt.getTime()),o=await Promise.all(a.map(async n=>{let r=await n.user,i=n.content.type!==He.Prompt,a=i?this.userName:`unknown`,o={type:i?`bot`:`user`,id:r?.id??n.userId??(i?this.botUserId:`unknown`),displayName:r?.displayName??r?.name??a,fullName:r?.name??r?.displayName??a,email:r?.email??void 0,avatarUrl:r?.avatarUrl??void 0};return this.parseMessage({kind:`agent_session_comment`,organizationId:this.organizationId,agentSessionId:e.id,comment:{id:n.sourceCommentId??n.id,body:aw(n),issueId:t,user:o,parentId:void 0,createdAt:n.createdAt.toISOString(),updatedAt:n.updatedAt.toISOString(),url:e.url??void 0}})})),s=i.pageInfo,c;return r&&s.hasNextPage?c=s.endCursor??void 0:!r&&s.hasPreviousPage&&(c=s.startCursor??void 0),{messages:o,nextCursor:c}}async fetchIssueComments(e,t){let n=await(await this.getClient().issue(e)).comments({first:t?.limit??50});return{messages:await this.commentsToMessages(n.nodes,e,void 0),nextCursor:n.pageInfo.hasNextPage?n.pageInfo.endCursor??void 0:void 0}}async fetchCommentThread(e,t,n){let r=this.getClient(),i=await r.comment({id:t});if(!i.issueId||i.issueId!==e)throw new d(`linear`,`Comment does not belong to this issue`);let a=await r.comments({filter:{parent:{id:{eq:t}}},...n?.direction===`forward`?{first:n?.limit??50}:{last:n?.limit??50}}),o=await this.commentsToMessages([i],i.issueId,void 0),s=await this.commentsToMessages(a.nodes,i.issueId,void 0);return{messages:[...o,...s],nextCursor:a.pageInfo.hasNextPage?a.pageInfo.endCursor??void 0:void 0}}async commentsToMessages(e,t,n){let r=[];for(let i of e)r.push(await this.parseMessageFromComment(i,t,n));return r}async fetchThread(e){await this.ensureValidToken();let{issueId:t,agentSessionId:n}=this.decodeThreadId(e),r=await this.getClient().issue(t);return{id:e,channelId:t,channelName:`${r.identifier}: ${r.title}`,isDM:!1,metadata:{issueId:t,agentSessionId:n,identifier:r.identifier,title:r.title,url:r.url}}}encodeThreadId(e){return e.agentSessionId?e.commentId?`linear:${e.issueId}:c:${e.commentId}:s:${e.agentSessionId}`:`linear:${e.issueId}:s:${e.agentSessionId}`:e.commentId?`linear:${e.issueId}:c:${e.commentId}`:`linear:${e.issueId}`}decodeThreadId(e){if(!e.startsWith(`linear:`))throw new d(`linear`,`Invalid Linear thread ID: ${e}`);let t=e.slice(7);if(!t)throw new d(`linear`,`Invalid Linear thread ID format: ${e}`);let n=t.match(ew);if(n)return{issueId:n[1],commentId:n[2],agentSessionId:n[3]};let r=t.match(nw);if(r)return{issueId:r[1],agentSessionId:r[2]};let i=t.match(tw);return i?{issueId:i[1],commentId:i[2]}:{issueId:t}}channelIdFromThreadId(e){let{issueId:t}=this.decodeThreadId(e);return`linear:${t}`}parseMessage(e){let t=e.comment.body,n=this.formatConverter.toAst(t);return new l({id:e.comment.id,isMention:e.kind===`agent_session_comment`||void 0,threadId:e.kind===`agent_session_comment`?this.encodeThreadId({issueId:e.comment.issueId,agentSessionId:e.agentSessionId}):this.encodeThreadId({issueId:e.comment.issueId,commentId:e.comment.id}),text:t,formatted:n,author:{userId:e.comment.user.id,userName:e.comment.user.displayName,fullName:e.comment.user.fullName,isBot:e.comment.user.type===`bot`,isMe:e.comment.user.id===this.botUserId},metadata:{dateSent:e.comment.createdAt?new Date(e.comment.createdAt):new Date,edited:e.comment.createdAt!==e.comment.updatedAt,editedAt:e.comment.createdAt!==e.comment.updatedAt&&e.comment.updatedAt?new Date(e.comment.updatedAt):void 0},attachments:[],raw:e})}renderFormatted(e){return this.formatConverter.fromAst(e)}resolveEmoji(e){let t=typeof e==`string`?e:e.name;return{thumbs_up:`👍`,thumbs_down:`👎`,heart:`❤️`,fire:`🔥`,rocket:`🚀`,eyes:`👀`,check:`✅`,warning:`⚠️`,sparkles:`✨`,wave:`👋`,raised_hands:`🙌`,laugh:`😄`,hooray:`🎉`,confused:`😕`}[t]||t}async fetchSubject(e){let t=e.comment?.issueId;if(!t)return null;try{await this.ensureValidToken();let e=await this.getClient().issue(t),n=await e.state,r=await e.assignee,i=await e.labels();return{type:`issue`,id:e.identifier,title:e.title,description:e.description??void 0,status:n?.name,url:e.url,assignee:r?{id:r.id,name:r.displayName}:void 0,labels:i.nodes.map(e=>e.name),raw:e}}catch(e){return this.logger.debug(`Failed to fetch subject`,{issueId:t,error:e}),null}}},lw=class extends cw{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}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))}addReaction(e,t,n){return this.bound(()=>super.addReaction(e,t,a.toGChat(n)))}startTyping(e,t){return this.bound(()=>super.startTyping(e,t))}postProgress(e,t){let{agentSessionId:n}=this.decodeThreadId(e);return n?this.bound(async()=>{await this.ensureValidToken();let e=await this.getClient().createAgentActivity({agentSessionId:n,content:{type:`thought`,body:t}}),r=await e.agentActivity;if(!e.success||!r)throw Error(`Linear progress activity failed`);return{id:r.id}}):this.postMessage(e,{markdown:t})}postProblem(e,t){let{agentSessionId:n}=this.decodeThreadId(e);return n?this.bound(async()=>{await this.ensureValidToken(),await this.getClient().createAgentActivity({agentSessionId:n,content:{type:`error`,body:t}})}):this.postMessage(e,t)}};function uw(t){let n=t.credentials?.webhookSecret,r=t.installationId;return new lw({mode:`agent-sessions`,userName:t.name,apiUrl:`https://api.linear.app/graphql`,encryptionKey:``,accessToken:()=>r?t.token(r):Promise.reject(Error(`The webhook names no Linear workspace`)),webhookVerifier:(t,r)=>e(r,t.headers.get(`linear-signature`),n),logger:new o(`error`)},r,t.installedSelf,t.saveSelf)}export{uw as linearAdapter};
49845
+ `)}}):await a.createAgentActivity({agentSessionId:e.agentSessionId,content:{type:He.Action,action:n.title,parameter:``,result:n.output},ephemeral:n.status!==`complete`});continue}n.type===`plan_update`&&await this.getClient().updateAgentSession(e.agentSessionId,{plan:[{content:n.title,status:`completed`}]})}let c=await s(He.Response,i.finish(),!0);if(!c)throw Error(`Failed to flush final markdown delta for agent session stream`);return await this.parseMessageFromAgentActivity(e,c)}async streamAsComment(e,t,n){let i=n?.updateIntervalMs??500,a=await this.postMessage(e,`...`),o=a.threadId||e,s=new r,c=`...`,l=!1,u=null,d=null,f=()=>{d=setTimeout(()=>{u=p()},i)},p=async()=>{if(l||!a)return;let e=s.render();if(e!==c)try{a=await this.editMessage(o,a.id,{markdown:e}),c=e,o=a.threadId||o}catch(e){this.logger.warn(`Linear fallback stream edit failed`,{error:e})}l||f()};f();try{for await(let e of t)typeof e==`string`?s.push(e):e.type===`markdown_text`&&s.push(e.text)}finally{l=!0,d&&clearTimeout(d)}u&&await u;let m=s.finish();return m!==c&&a&&(a=await this.editMessage(o,a.id,{markdown:m})),a}async fetchMessages(e,t){await this.ensureValidToken();let n=this.decodeThreadId(e);return n.agentSessionId?(XC(n),await this.fetchAgentSessionMessages(n,t)):n.commentId?await this.fetchCommentThread(n.issueId,n.commentId,t):await this.fetchIssueComments(n.issueId,t)}async fetchAgentSessionMessages(e,t){let n=this.getClient(),r=await n.agentSession(e.agentSessionId),i=r.issueId;if(!i||i!==e.issueId)throw new d(`linear`,`Agent session does not belong to this issue`);let a=await r.comment;if(!a)return await this.fetchAgentSessionActivities(r,i,t);let o=await n.comments({filter:{parent:{id:{eq:a.id}}},...t?.direction===`forward`?{first:t?.limit??50}:{last:t?.limit??50}});return{messages:await this.commentsToMessages([a,...o.nodes],i,r.id),nextCursor:o.pageInfo.hasNextPage?o.pageInfo.endCursor??void 0:void 0}}async fetchAgentSessionActivities(e,t,n){let r=n?.direction===`forward`,i=await e.activities({...r?{first:n?.limit??50,...n?.cursor?{after:n.cursor}:{}}:{last:n?.limit??50,...n?.cursor?{before:n.cursor}:{}}}),a=[...i.nodes].sort((e,t)=>e.createdAt.getTime()-t.createdAt.getTime()),o=await Promise.all(a.map(async n=>{let r=await n.user,i=n.content.type!==He.Prompt,a=i?this.userName:`unknown`,o={type:i?`bot`:`user`,id:r?.id??n.userId??(i?this.botUserId:`unknown`),displayName:r?.displayName??r?.name??a,fullName:r?.name??r?.displayName??a,email:r?.email??void 0,avatarUrl:r?.avatarUrl??void 0};return this.parseMessage({kind:`agent_session_comment`,organizationId:this.organizationId,agentSessionId:e.id,comment:{id:n.sourceCommentId??n.id,body:aw(n),issueId:t,user:o,parentId:void 0,createdAt:n.createdAt.toISOString(),updatedAt:n.updatedAt.toISOString(),url:e.url??void 0}})})),s=i.pageInfo,c;return r&&s.hasNextPage?c=s.endCursor??void 0:!r&&s.hasPreviousPage&&(c=s.startCursor??void 0),{messages:o,nextCursor:c}}async fetchIssueComments(e,t){let n=await(await this.getClient().issue(e)).comments({first:t?.limit??50});return{messages:await this.commentsToMessages(n.nodes,e,void 0),nextCursor:n.pageInfo.hasNextPage?n.pageInfo.endCursor??void 0:void 0}}async fetchCommentThread(e,t,n){let r=this.getClient(),i=await r.comment({id:t});if(!i.issueId||i.issueId!==e)throw new d(`linear`,`Comment does not belong to this issue`);let a=await r.comments({filter:{parent:{id:{eq:t}}},...n?.direction===`forward`?{first:n?.limit??50}:{last:n?.limit??50}}),o=await this.commentsToMessages([i],i.issueId,void 0),s=await this.commentsToMessages(a.nodes,i.issueId,void 0);return{messages:[...o,...s],nextCursor:a.pageInfo.hasNextPage?a.pageInfo.endCursor??void 0:void 0}}async commentsToMessages(e,t,n){let r=[];for(let i of e)r.push(await this.parseMessageFromComment(i,t,n));return r}async fetchThread(e){await this.ensureValidToken();let{issueId:t,agentSessionId:n}=this.decodeThreadId(e),r=await this.getClient().issue(t);return{id:e,channelId:t,channelName:`${r.identifier}: ${r.title}`,isDM:!1,metadata:{issueId:t,agentSessionId:n,identifier:r.identifier,title:r.title,url:r.url}}}encodeThreadId(e){return e.agentSessionId?e.commentId?`linear:${e.issueId}:c:${e.commentId}:s:${e.agentSessionId}`:`linear:${e.issueId}:s:${e.agentSessionId}`:e.commentId?`linear:${e.issueId}:c:${e.commentId}`:`linear:${e.issueId}`}decodeThreadId(e){if(!e.startsWith(`linear:`))throw new d(`linear`,`Invalid Linear thread ID: ${e}`);let t=e.slice(7);if(!t)throw new d(`linear`,`Invalid Linear thread ID format: ${e}`);let n=t.match(ew);if(n)return{issueId:n[1],commentId:n[2],agentSessionId:n[3]};let r=t.match(nw);if(r)return{issueId:r[1],agentSessionId:r[2]};let i=t.match(tw);return i?{issueId:i[1],commentId:i[2]}:{issueId:t}}channelIdFromThreadId(e){let{issueId:t}=this.decodeThreadId(e);return`linear:${t}`}parseMessage(e){let t=e.comment.body,n=this.formatConverter.toAst(t);return new l({id:e.comment.id,isMention:e.kind===`agent_session_comment`||void 0,threadId:e.kind===`agent_session_comment`?this.encodeThreadId({issueId:e.comment.issueId,agentSessionId:e.agentSessionId}):this.encodeThreadId({issueId:e.comment.issueId,commentId:e.comment.id}),text:t,formatted:n,author:{userId:e.comment.user.id,userName:e.comment.user.displayName,fullName:e.comment.user.fullName,isBot:e.comment.user.type===`bot`,isMe:e.comment.user.id===this.botUserId},metadata:{dateSent:e.comment.createdAt?new Date(e.comment.createdAt):new Date,edited:e.comment.createdAt!==e.comment.updatedAt,editedAt:e.comment.createdAt!==e.comment.updatedAt&&e.comment.updatedAt?new Date(e.comment.updatedAt):void 0},attachments:[],raw:e})}renderFormatted(e){return this.formatConverter.fromAst(e)}resolveEmoji(e){let t=typeof e==`string`?e:e.name;return{thumbs_up:`👍`,thumbs_down:`👎`,heart:`❤️`,fire:`🔥`,rocket:`🚀`,eyes:`👀`,check:`✅`,warning:`⚠️`,sparkles:`✨`,wave:`👋`,raised_hands:`🙌`,laugh:`😄`,hooray:`🎉`,confused:`😕`}[t]||t}async fetchSubject(e){let t=e.comment?.issueId;if(!t)return null;try{await this.ensureValidToken();let e=await this.getClient().issue(t),n=await e.state,r=await e.assignee,i=await e.labels();return{type:`issue`,id:e.identifier,title:e.title,description:e.description??void 0,status:n?.name,url:e.url,assignee:r?{id:r.id,name:r.displayName}:void 0,labels:i.nodes.map(e=>e.name),raw:e}}catch(e){return this.logger.debug(`Failed to fetch subject`,{issueId:t,error:e}),null}}},lw=class extends cw{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}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))}addReaction(e,t,n){return this.bound(()=>super.addReaction(e,t,a.toGChat(n)))}startTyping(e,t){return this.bound(()=>super.startTyping(e,t))}postProgress(e,t){let{agentSessionId:n}=this.decodeThreadId(e);return n?this.bound(async()=>{await this.ensureValidToken();let e=await this.getClient().createAgentActivity({agentSessionId:n,content:{type:`thought`,body:t}}),r=await e.agentActivity;if(!e.success||!r)throw Error(`Linear progress activity failed`);return{id:r.id}}):this.postMessage(e,{markdown:t})}postElicitation(e,t,n){let{agentSessionId:r}=this.decodeThreadId(e);return r?this.bound(async()=>{await this.ensureValidToken();let e=await this.getClient().createAgentActivity({agentSessionId:r,content:{type:`elicitation`,body:t},signal:`select`,signalMetadata:{options:n}}),i=await e.agentActivity;if(!e.success||!i)throw Error(`Linear elicitation activity failed`);return{id:i.id}}):this.postMessage(e,{markdown:t})}postProblem(e,t){let{agentSessionId:n}=this.decodeThreadId(e);return n?this.bound(async()=>{await this.ensureValidToken(),await this.getClient().createAgentActivity({agentSessionId:n,content:{type:`error`,body:t}})}):this.postMessage(e,t)}};function uw(t){let n=t.credentials?.webhookSecret,r=t.installationId;return new lw({mode:`agent-sessions`,userName:t.name,apiUrl:`https://api.linear.app/graphql`,encryptionKey:``,accessToken:()=>r?t.token(r):Promise.reject(Error(`The webhook names no Linear workspace`)),webhookVerifier:(t,r)=>e(r,t.headers.get(`linear-signature`),n),logger:new o(`error`)},r,t.installedSelf,t.saveSelf)}export{uw as linearAdapter};
@@ -1,4 +1,4 @@
1
- import{Ji as e,Ki as t}from"./core-DwsAMCnL.js";import{n}from"./slack-Bo5l13Rs.js";import{A as r,C as i,D as a,E as o,O as s,S as c,T as l,_ as u,b as d,c as f,d as p,f as m,g as h,h as g,i as _,k as v,l as y,m as b,n as x,p as S,r as C,s as w,u as T,v as E,w as D,x as O,y as k}from"./dist-DAnSqY1s.js";import{a as A,c as j,d as M,f as N,g as P,h as F,i as I,l as L,m as R,n as z,o as B,p as V,r as H,s as U,u as W,v as ee,y as te}from"./dist-ClCNj65n.js";import{t as ne}from"./chunk-7WDLOIRP-B_IWkVtZ.js";import{AsyncLocalStorage as re}from"async_hooks";import{timingSafeEqual as ie}from"crypto";var ae=/^<!(here|channel|everyone)(?:\|[^<>]*)?>$/,oe=/^<!subteam\^([A-Z0-9_]+)\|@?([^<>]+)>$/,se=/^<!subteam\^([A-Z0-9_]+)>$/,G="```",K=/^[ \t]+/,ce=/^(?:&gt;|&lt;|#{1,6}(?=[ \t\n]|$)|[-+*](?=[ \t\n]|$)|`{3,}|~{3,}|(?:[-*_][ \t]*){3,}(?=\n|$))/,le=/^(\d{1,9})([.)])(?=[ \t\n]|$)/;function ue(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function de(e){return e.replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&amp;/g,`&`)}function fe(e){return de(e.includes(G)?ge(e):me(e))}function pe(e){let t=e.replace(/<@([A-Z0-9_]+)\|([^<>]+)>/g,`@$2`);return t=t.replace(/<@([A-Z0-9_]+)>/g,`@$1`),t=t.replace(/<#([A-Z0-9_]+)\|([^<>]+)>/g,`#$2 ($1)`),t=t.replace(/<#([A-Z0-9_]+)>/g,`#$1`),t=t.replace(/<(?!https?:\/\/)([^<>|]+)\|(https?:\/\/[^|<>]+)>/g,`<$2|$1>`),t=t.replace(/<(https?:\/\/[^|<>]+)\|([^<>]+)>/g,`[$2]($1)`),t=t.replace(/<(https?:\/\/[^<>]+)>/g,`$1`),t}function me(e){let t=pe(he(e));return t=t.replace(/(?<![_*\\])\*([^*\n]+)\*(?![_*])/g,`**$1**`),t=t.replace(/(?<!~)~([^~\n]+)~(?!~)/g,`~~$1~~`),t}function he(e){let t=``,n=0,r=0;for(;r<e.length;){if(e.startsWith(G,r)){r+=3;continue}if(e[r]==="`"){let t=ve(e,r);r=t===-1?r+1:t;continue}if(e[r]!==`<`){r+=1;continue}let i=_e(e,r);if(i===-1){r+=1;continue}let a=e.slice(r,i).replace(ae,`@$1`).replace(oe,`@$2`).replace(se,`@$1`);t+=e.slice(n,r)+a,n=i,r=i}return t+e.slice(n)}function ge(e){let t=``,n=0,r=0,i=!1,a=r=>{let a=e.slice(n,r);i&&=(a=be(a),!1),t+=me(a)};for(;r<e.length;){let o=e[r];if(o===`<`){let t=_e(e,r);r=t===-1?r+1:t;continue}if(o!=="`"){r+=1;continue}if(!e.startsWith(G,r)){let t=ve(e,r);r=t===-1?r+1:t;continue}let s=r+3,c=e.indexOf(G,s);if(c===-1||ye(e,r)){r=s;continue}a(r),t.length>0&&!t.endsWith(`
1
+ import{Ji as e,Ki as t}from"./core-DwsAMCnL.js";import{i as n}from"./slack-BtKvW_4v.js";import{A as r,C as i,D as a,E as o,O as s,S as c,T as l,_ as u,b as d,c as f,d as p,f as m,g as h,h as g,i as _,k as v,l as y,m as b,n as x,p as S,r as C,s as w,u as T,v as E,w as D,x as O,y as k}from"./dist-DAnSqY1s.js";import{a as A,c as j,d as M,f as N,g as P,h as F,i as I,l as L,m as R,n as z,o as B,p as V,r as H,s as U,u as W,v as ee,y as te}from"./dist-ClCNj65n.js";import{t as ne}from"./chunk-7WDLOIRP-B_IWkVtZ.js";import{AsyncLocalStorage as re}from"async_hooks";import{timingSafeEqual as ie}from"crypto";var ae=/^<!(here|channel|everyone)(?:\|[^<>]*)?>$/,oe=/^<!subteam\^([A-Z0-9_]+)\|@?([^<>]+)>$/,se=/^<!subteam\^([A-Z0-9_]+)>$/,G="```",K=/^[ \t]+/,ce=/^(?:&gt;|&lt;|#{1,6}(?=[ \t\n]|$)|[-+*](?=[ \t\n]|$)|`{3,}|~{3,}|(?:[-*_][ \t]*){3,}(?=\n|$))/,le=/^(\d{1,9})([.)])(?=[ \t\n]|$)/;function ue(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function de(e){return e.replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&amp;/g,`&`)}function fe(e){return de(e.includes(G)?ge(e):me(e))}function pe(e){let t=e.replace(/<@([A-Z0-9_]+)\|([^<>]+)>/g,`@$2`);return t=t.replace(/<@([A-Z0-9_]+)>/g,`@$1`),t=t.replace(/<#([A-Z0-9_]+)\|([^<>]+)>/g,`#$2 ($1)`),t=t.replace(/<#([A-Z0-9_]+)>/g,`#$1`),t=t.replace(/<(?!https?:\/\/)([^<>|]+)\|(https?:\/\/[^|<>]+)>/g,`<$2|$1>`),t=t.replace(/<(https?:\/\/[^|<>]+)\|([^<>]+)>/g,`[$2]($1)`),t=t.replace(/<(https?:\/\/[^<>]+)>/g,`$1`),t}function me(e){let t=pe(he(e));return t=t.replace(/(?<![_*\\])\*([^*\n]+)\*(?![_*])/g,`**$1**`),t=t.replace(/(?<!~)~([^~\n]+)~(?!~)/g,`~~$1~~`),t}function he(e){let t=``,n=0,r=0;for(;r<e.length;){if(e.startsWith(G,r)){r+=3;continue}if(e[r]==="`"){let t=ve(e,r);r=t===-1?r+1:t;continue}if(e[r]!==`<`){r+=1;continue}let i=_e(e,r);if(i===-1){r+=1;continue}let a=e.slice(r,i).replace(ae,`@$1`).replace(oe,`@$2`).replace(se,`@$1`);t+=e.slice(n,r)+a,n=i,r=i}return t+e.slice(n)}function ge(e){let t=``,n=0,r=0,i=!1,a=r=>{let a=e.slice(n,r);i&&=(a=be(a),!1),t+=me(a)};for(;r<e.length;){let o=e[r];if(o===`<`){let t=_e(e,r);r=t===-1?r+1:t;continue}if(o!=="`"){r+=1;continue}if(!e.startsWith(G,r)){let t=ve(e,r);r=t===-1?r+1:t;continue}let s=r+3,c=e.indexOf(G,s);if(c===-1||ye(e,r)){r=s;continue}a(r),t.length>0&&!t.endsWith(`
2
2
  `)&&(t+=`
3
3
  `);let l=e.slice(s,c);t+=G,l.startsWith(`
4
4
  `)||(t+=`
@@ -0,0 +1 @@
1
+ import{d as e,f as t,u as n}from"./slack-BtKvW_4v.js";import{l as r}from"./dist-DAnSqY1s.js";import{createGitHubAdapter as i}from"./dist-B2jiMMxZ.js";function a(a){let o=a.credentials?.webhookSecret,s=a.installationId,c,l=i({userName:a.name,apiUrl:`https://api.github.com`,botUserId:0,installationToken:()=>s?c??=a.token(s,{tools:e.read}):Promise.reject(Error(`The webhook names no GitHub installation`)),webhookVerifier:(e,t)=>n(t,e.headers.get(`x-hub-signature-256`),o),logger:new r(`error`)});return t(l.octokit,a.fetch),l}export{a as githubAdapter};
@@ -1,8 +1,8 @@
1
- import{qi as e}from"./core-DwsAMCnL.js";import{Zt as t}from"./output-D95NoAA9.js";import{o as n}from"./load-zhcrwSRF.js";import{r,t as i}from"./remote-CDm0YUU3.js";import{t as a}from"./types-D_xnfP7m.js";import{t as o}from"./integrations-DyInAa5g.js";import{l as s,r as c}from"./exec-iFssTO5V.js";import{c as l,o as u,u as d}from"./task-BU1JEK9X.js";import{r as f}from"./match-Bq4sDuCy.js";import p from"node:path";import m from"node:process";import h from"node:fs";import{spawn as g}from"node:child_process";import _ from"node:os";import v from"node:fs/promises";const y=[`SIGTERM`,`SIGINT`],b=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[()][A-Z0-9]|\r/g;function x(e,t){if(e===`codex`)return{file:`codex`,args:[`login`,`--device-auth`],env:{CODEX_HOME:t}};let n=`stty cols 4000 rows 50 2>/dev/null; exec claude setup-token`;return{file:`sh`,args:[`-c`,`cat | { ${m.platform===`darwin`?`script -q /dev/null sh -c '${n}'`:`script -qfec '${n}' /dev/null`}; kill 0; }`],env:{CLAUDE_CONFIG_DIR:t,BROWSER:`true`}}}function S(e){try{return JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString())}catch{return{}}}function C(e){let t=S(JSON.parse(e).tokens?.id_token),n=t[`https://api.openai.com/auth`];return{...typeof t.email==`string`?{email:t.email}:{},...typeof n?.chatgpt_plan_type==`string`?{plan:n.chatgpt_plan_type}:{}}}function w(e,t){let n=t.replace(b,``),r=/\x1b\]8;[^;]*;(https:\/\/[^\x07\x1b]+)(?:\x07|\x1b\\)/.exec(t)?.[1],i=e===`claude`?r??/https:\/\/\S*(?:oauth|authorize)\S*(?=\s)/.exec(n)?.[0]:/https:\/\/\S+(?=\s)/.exec(n)?.[0],a=e===`codex`?/\b[A-Z0-9]{4,}-[A-Z0-9]{4,}\b/.exec(n)?.[0]:void 0;if(!(!i||e===`codex`&&!a))return{url:i,...a?{code:a}:{}}}const T=/sk-ant-oat[\w-]+/,E=e=>e.replace(/[\w#.%-]{20,}|\b[A-Z0-9]{4,}-[A-Z0-9]{4,}\b/g,`…`).slice(-600),D=/\x1b(?:\[([0-9;?<>=]*)[ -/]*([@-~])|\][^\x07\x1b]*(?:\x07|\x1b\\)|[()][\s\S]|[^[\]()])/y;var O=class{height;rows=[[]];row=0;col=0;saved=[0,0];rest=``;constructor(e=50){this.height=e}write(e){let t=this.rest+e;this.rest=``;for(let e=0;e<t.length;){if(t[e]===`\x1B`){D.lastIndex=e;let n=D.exec(t);if(!n){this.rest=t.slice(e,e+4096);return}n[2]&&!/^[?<>=]/.test(n[1])?this.csi(n[1].split(`;`),n[2]):n[0]===`\x1B7`?this.saved=[this.row,this.col]:n[0]===`\x1B8`&&([this.row,this.col]=this.saved),e+=n[0].length;continue}let n=t.codePointAt(e),r=String.fromCodePoint(n);e+=r.length,r===`\r`?this.col=0:r===`
1
+ import{qi as e}from"./core-DwsAMCnL.js";import{Dt as t}from"./output-SNqdgh9A.js";import{o as n}from"./load-BDlEFetB.js";import{r,t as i}from"./remote-HUZCWgfl.js";import{n as a}from"./types-DPtbvoo3.js";import{t as o}from"./integrations-I7fRDk_l.js";import{l as s,r as c}from"./exec-BmTa0vcO.js";import{c as l,o as u,u as d}from"./task-iuYQ0zAK.js";import{r as f}from"./match-CufHAZQH.js";import"./types-DmThhjcW.js";import p from"node:path";import m from"node:process";import h from"node:fs";import{spawn as g}from"node:child_process";import _ from"node:os";import v from"node:fs/promises";const y=[`SIGTERM`,`SIGINT`],b=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[()][A-Z0-9]|\r/g;function x(e,t){if(e===`codex`)return{file:`codex`,args:[`login`,`--device-auth`],env:{CODEX_HOME:t}};let n=`stty cols 4000 rows 50 2>/dev/null; exec claude setup-token`;return{file:`sh`,args:[`-c`,`cat | { ${m.platform===`darwin`?`script -q /dev/null sh -c '${n}'`:`script -qfec '${n}' /dev/null`}; kill 0; }`],env:{CLAUDE_CONFIG_DIR:t,BROWSER:`true`}}}function S(e){try{return JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString())}catch{return{}}}function C(e){let t=S(JSON.parse(e).tokens?.id_token),n=t[`https://api.openai.com/auth`];return{...typeof t.email==`string`?{email:t.email}:{},...typeof n?.chatgpt_plan_type==`string`?{plan:n.chatgpt_plan_type}:{}}}function w(e,t){let n=t.replace(b,``),r=/\x1b\]8;[^;]*;(https:\/\/[^\x07\x1b]+)(?:\x07|\x1b\\)/.exec(t)?.[1],i=e===`claude`?r??/https:\/\/\S*(?:oauth|authorize)\S*(?=\s)/.exec(n)?.[0]:/https:\/\/\S+(?=\s)/.exec(n)?.[0],a=e===`codex`?/\b[A-Z0-9]{4,}-[A-Z0-9]{4,}\b/.exec(n)?.[0]:void 0;if(!(!i||e===`codex`&&!a))return{url:i,...a?{code:a}:{}}}const T=/sk-ant-oat[\w-]+/,E=e=>e.replace(/[\w#.%-]{20,}|\b[A-Z0-9]{4,}-[A-Z0-9]{4,}\b/g,`…`).slice(-600),D=/\x1b(?:\[([0-9;?<>=]*)[ -/]*([@-~])|\][^\x07\x1b]*(?:\x07|\x1b\\)|[()][\s\S]|[^[\]()])/y;var O=class{height;rows=[[]];row=0;col=0;saved=[0,0];rest=``;constructor(e=50){this.height=e}write(e){let t=this.rest+e;this.rest=``;for(let e=0;e<t.length;){if(t[e]===`\x1B`){D.lastIndex=e;let n=D.exec(t);if(!n){this.rest=t.slice(e,e+4096);return}n[2]&&!/^[?<>=]/.test(n[1])?this.csi(n[1].split(`;`),n[2]):n[0]===`\x1B7`?this.saved=[this.row,this.col]:n[0]===`\x1B8`&&([this.row,this.col]=this.saved),e+=n[0].length;continue}let n=t.codePointAt(e),r=String.fromCodePoint(n);e+=r.length,r===`\r`?this.col=0:r===`
2
2
  `?this.down():r===`\b`?this.col=Math.max(0,this.col-1):n>=32&&n!==127&&(this.line()[this.col++]=r)}}text(){return this.rows.map(e=>Array.from(e,e=>e??` `).join(``).trimEnd()).join(`
3
3
  `)}line(){return this.rows[this.row]??=[]}down(){this.row<this.height-1?this.row++:this.rows.splice(0,this.rows.length-this.height+1)}csi(e,t){let n=(t=0)=>Number(e[t])||1,r=Number(e[0])||0,i=this.height-1;if(t===`A`)this.row=Math.max(0,this.row-n());else if(t===`B`)this.row=Math.min(i,this.row+n());else if(t===`C`)this.col+=n();else if(t===`D`)this.col=Math.max(0,this.col-n());else if(t===`E`||t===`F`)this.row=Math.max(0,Math.min(i,this.row+(t===`E`?n():-n()))),this.col=0;else if(t===`G`)this.col=n()-1;else if(t===`d`)this.row=Math.min(i,n()-1);else if(t===`H`||t===`f`)this.row=Math.min(i,n()-1),this.col=n(1)-1;else if(t===`K`){let e=this.line();r===0?e.length=Math.min(e.length,this.col):r===1?e.fill(` `,0,this.col+1):e.length=0}else t===`J`?r===0?(this.line().length=Math.min(this.line().length,this.col),this.rows.length=Math.min(this.rows.length,this.row+1)):r>=2&&(this.rows=[]):t===`s`?this.saved=[this.row,this.col]:t===`u`&&([this.row,this.col]=this.saved)}};async function k(e,t){let{server:n,token:r}=d();delete m.env.CODER_TASK_TOKEN,delete m.env.CODER_LOGIN;let i=new AbortController,a=async(t,a)=>{let o=t?i.signal:void 0;for(let i=1;;i++){let s=await fetch(`${n}/logins/${encodeURIComponent(e)}${t}`,{method:a===void 0?`GET`:`POST`,...o?{signal:o}:{},headers:{authorization:`Bearer ${r}`,...a===void 0?{}:{"content-type":`application/json`}},...a===void 0?{}:{body:JSON.stringify(a)}}).catch(e=>{if(o?.aborted||t===`/input`||i>=10)throw e;console.error(`coder runner: Coder server did not answer: ${e.message}`)});if(s?.ok)return await s.json();if(s&&(s.status<500||i>=10))throw Error(`Coder server answered ${s.status}`);s&&console.error(`coder runner: Coder server answered ${s.status}`),await new Promise(e=>setTimeout(e,1e3))}},{engine:o}=await a(``),s=await v.mkdtemp(p.join(t,`.login-`)),c=x(o,s),l=g(c.file,c.args,{env:{...m.env,...c.env},stdio:[`pipe`,`pipe`,`pipe`],detached:!0}),u=()=>{try{m.kill(-l.pid,`SIGTERM`)}catch{}},f=``,h=new O,_=!1,S=!1,D=0,k,A,j,M=new Promise((e,t)=>{l.once(`error`,t),l.once(`close`,e)}),N=setTimeout(u,6e5);for(let e of y)m.once(e,u);let P=async()=>{for(;!i.signal.aborted;){let{code:e}=await a(`/input`);if(e){k=f.length,l.stdin.write(e),await new Promise(e=>setTimeout(e,500)),l.stdin.write(`\r`),m.stdout.write(`Sign-in code typed
4
4
  `);let t=k;setTimeout(()=>{k===t&&!_&&console.error(`coder runner: claude has not answered the code: ${JSON.stringify(E(h.text()))}`)},2e4).unref();return}}},F=e=>{if(f+=e,h.write(e),!S){let e=w(o,f.slice(D));e&&(S=!0,clearInterval(A),m.stdout.write(`Sign-in link ready
5
5
  `),a(``,e).catch(()=>u()),o===`claude`&&P().catch(()=>{i.signal.aborted||u()}))}o===`claude`&&!_&&T.test(h.text())&&(_=!0,m.stdout.write(`Sign-in token shown
6
6
  `),j=setTimeout(u,2e3)),(k===void 0?``:f.slice(k).replace(b,``).replace(/\s/g,``)).includes(`PressEntertoretry`)&&(m.stdout.write(`Sign-in code rejected; asking claude for a new link
7
7
  `),k=void 0,D=f.length,S=!1,A=setInterval(()=>l.stdin.write(`\r`),1e3))};l.stdout.setEncoding(`utf8`).on(`data`,F),l.stderr.setEncoding(`utf8`).on(`data`,F);try{let e=await M;i.abort();let t=h.text(),n=T.exec(t)?.[0];if(o===`claude`&&n){let e=/[\w.+-]+@[\w-]+(?:\.[\w-]+)+/.exec(t)?.[0];await a(``,{result:{env:{CLAUDE_CODE_OAUTH_TOKEN:n},...e?{account:{email:e}}:{}}})}else if(o===`codex`&&e===0){let e=await v.readFile(p.join(s,`auth.json`),`utf8`);await a(``,{result:{env:{CODEX_AUTH_JSON:e},account:C(e)}})}else console.error(`coder runner: ${o} sign-in ended (exit ${e}): ${JSON.stringify(E(t))}`),await a(``,{error:S?`Sign-in did not finish. Start again.`:`${o} sign-in could not start.`}).catch(()=>{});m.stdout.write(`Sign-in finished
8
- `)}finally{clearTimeout(N),clearTimeout(j),clearInterval(A);for(let e of y)m.off(e,u);i.abort(),u(),await v.rm(s,{recursive:!0,force:!0})}}var A=e({agentIdError:()=>P,agents:()=>z,regexError:()=>F});const j=e=>e.cwd?p.resolve(e.cwd):m.cwd(),M=e=>(Array.isArray(e)?e:(e??``).split(`,`)).map(e=>e.trim()).filter(Boolean),N=/^[a-z0-9][a-z0-9_-]*$/;function P(e,t){if(!N.test(t))return`Use lowercase letters, digits, - or _, starting with a letter or digit.`;let n=p.join(e,`.coder`,`agents`,t);if(h.existsSync(n)&&h.readdirSync(n).length>0)return`${p.relative(e,n)} is not empty; clear it to start over, or edit what is there.`}function F(e){try{new RegExp(e);return}catch{return`Not a valid regular expression.`}}function I(e,t){let n=o[e]?.sample;return{integration:e,type:t,appId:`${e}:sample`,installationId:`sample`,deliveryId:`sample-1`,actor:{id:`user-1`,login:`someone`,role:`member`},text:`Replace me with the text a real event would carry.`,...n?{chat:{thread:{_type:`chat:Thread`,adapterName:e,channelId:n.slice(0,n.lastIndexOf(`:`)),id:n,isDM:!1}}}:{}}}async function L(e,n={}){let r=j(n);if(!e&&n.askId&&(e=await n.askId(e=>P(r,e))),!e)throw new t(`invalid-option`,`Missing agent id.`,{hint:`Usage: coder agent init <id>`});let i=P(r,e);if(i)throw new t(`invalid-option`,i.includes(`not empty`)?i:`Agent id "${e}": ${i}`);let s=p.join(r,`.coder`,`agents`,e),c=n.askPicks?await n.askPicks(e):{...n.name?{name:n.name}:{},integrations:M(n.integrations).length?M(n.integrations):[Object.keys(o)[0]],events:{},matches:{},access:n.access??`write`};if(!a.includes(c.access))throw new t(`invalid-option`,`Unknown access "${c.access}"; valid: ${a.join(`, `)}`);let l={},u=M(n.events),d=e=>Object.keys(o[e]?.events??{});for(let e of c.integrations)if(!o[e])throw new t(`invalid-option`,`Unknown integration "${e}"; valid: ${Object.keys(o).join(`, `)}`);for(let e of u)if(!c.integrations.some(t=>d(t).includes(e)))throw new t(`invalid-option`,`No chosen integration has event "${e}".`,{hint:`Events per integration: coder agent integrations show <id>`});let f=Object.fromEntries(M(n.match).map(e=>{let n=e.indexOf(`=`);if(n<1)throw new t(`invalid-option`,`Bad --match "${e}"; use event=regex.`);let r=e.slice(n+1);if(F(r))throw new t(`invalid-option`,`Bad --match for ${e.slice(0,n)}: ${F(r)}`);return[e.slice(0,n),r]}));for(let e of c.integrations){let n=d(e),r=c.events[e]??(u.length?u.filter(e=>n.includes(e)):[n.includes(`mention`)?`mention`:n[0]]);for(let i of r)if(!n.includes(i))throw new t(`invalid-option`,`${e} has no event "${i}"; valid: ${n.join(`, `)}`);let i={...f,...c.matches[e]??{}},a=r.filter(e=>i[e]);r.length&&(l[e]={events:a.length?Object.fromEntries(r.map(e=>[e,!i[e]||{match:i[e]}])):r})}let m={...c.name?{name:c.name}:{},...n.description?{description:n.description}:{},permissions:n.permissions??`auto`,access:c.access,integrations:l};await v.mkdir(s,{recursive:!0}),await v.writeFile(p.join(s,`agent.json`),`${JSON.stringify(m,null,2)}\n`),await v.writeFile(p.join(s,`system.md`),``);let h=p.join(_.tmpdir(),`coder-agent-samples`,e),g=[];for(let[e,t]of Object.entries(l)){let n=(Array.isArray(t.events)?t.events:Object.keys(t.events??{}))[0];await v.mkdir(h,{recursive:!0});let r=p.join(h,`sample-${e}-${n}.json`);await v.writeFile(r,`${JSON.stringify(I(e,n),null,2)}\n`),g.push(r)}return{id:e,dir:s,files:[`agent.json`,`system.md`],samples:g,integrations:Object.keys(l)}}function R(e){if(e===void 0||typeof e==`number`)return e;if(/^\d+$/.test(e))return Number(e);let n=/^(\d+)([dh])$/.exec(e);if(!n)throw new t(`invalid-option`,`Invalid --since value.`,{hint:`Use 7d, 24h, or milliseconds since epoch`});return Date.now()-Number(n[1])*(n[2]===`d`?864e5:36e5)}const z={list:(e={})=>e.server===void 0?n(j(e),o):i(e).agents.list(),async show(e,r={}){if(!e)throw new t(`invalid-option`,`Missing agent id.`,{hint:`Usage: coder agent show <id>`});if(r.server===void 0){let i=(await n(j(r),o)).find(t=>t.id===e);if(!i)throw new t(`invalid-option`,`No agent named "${e}".`,{hint:`List agents: coder agent list`});return i}let a=i(r),s=await a.agents.get(e),c=await a.agents.version(e,s.currentVersion);return{...s,definition:c.definition}},init:L,push:(e,t={})=>r(i(t),j(t),e),async run(e,r,a={}){if(a.wait&&a.server===void 0)throw new t(`invalid-option`,`--wait needs --server.`,{hint:`Offline runs print their reply as they finish`});if(!e||!r)throw new t(`invalid-option`,`Missing agent id or event file.`,{hint:`Usage: coder agent run <agent> <event.json>`});let l=j(a),u=typeof r==`string`?JSON.parse(await v.readFile(p.resolve(l,r),`utf8`)):r;if(a.server!==void 0){let t=i(a),n=await t.tasks.create({agent:e,event:u});if(!a.wait||!n.tasks.length)return n;let r=[];for(let e of n.tasks){let n=await t.tasks.wait(e,{onLog:a.onLog});r.push(n),a.onDone?.(n)}return r}let d=await n(l,o),m=d.find(t=>t.id===e);if(!m)throw new t(`invalid-option`,`No agent named "${e}".`);let h=f(u,d).find(t=>t.agent.id===e),g=a.flow??h?.flow;if(!g)throw new t(`invalid-option`,`Agent "${e}" does not match event "${u.type}".`);return c({cwd:l,agent:e,flow:g,task:{...s(m,g,u),tools:{},...h?.permissions?{permissions:h.permissions}:{}},post:!1})},runTask(e,t={}){let n=j(t);return m.env.CODER_LOGIN?k(e,n):m.env.CODER_PREPARE?u(e,n):l(e,n)},async usage(e={}){if(e.by&&![`agent`,`installation`,`engine`].includes(e.by))throw new t(`invalid-option`,`Invalid --by value.`,{hint:`Use agent, installation, or engine`});let n=e.by;if(e.server!==void 0)return i(e).usage({since:R(e.since),by:n});let[{localUsage:r},{usageSummary:a}]=await Promise.all([import(`./apps-D-v5sQJk.js`).then(e=>e.Ft),import(`./apps-D-v5sQJk.js`).then(e=>e.wn)]);return a(r(j(e)).map(([,e])=>e),R(e.since)??0,n)},integrations:{list:()=>Object.entries(o).map(([e,t])=>({id:e,description:t.description,events:Object.keys(t.events),tools:t.tools.presets.write})),show(e){if(!e)throw new t(`invalid-option`,`Missing integration id.`,{hint:`Usage: coder agent integrations show <id>`});let n=o[e];if(!n)throw new t(`invalid-option`,`Unknown integration "${e}".`,{hint:`List integrations: coder agent integrations list`});return{id:e,events:Object.fromEntries(Object.entries(n.events).map(([e,t])=>[e,t.description])),tools:n.tools.presets}}}};export{z as n,A as t};
8
+ `)}finally{clearTimeout(N),clearTimeout(j),clearInterval(A);for(let e of y)m.off(e,u);i.abort(),u(),await v.rm(s,{recursive:!0,force:!0})}}var A=e({agentIdError:()=>P,agents:()=>z,regexError:()=>F});const j=e=>e.cwd?p.resolve(e.cwd):m.cwd(),M=e=>(Array.isArray(e)?e:(e??``).split(`,`)).map(e=>e.trim()).filter(Boolean),N=/^[a-z0-9][a-z0-9_-]*$/;function P(e,t){if(!N.test(t))return`Use lowercase letters, digits, - or _, starting with a letter or digit.`;let n=p.join(e,`.coder`,`agents`,t);if(h.existsSync(n)&&h.readdirSync(n).length>0)return`${p.relative(e,n)} is not empty; clear it to start over, or edit what is there.`}function F(e){try{new RegExp(e);return}catch{return`Not a valid regular expression.`}}function I(e,t){let n=o[e]?.sample;return{integration:e,type:t,appId:`${e}:sample`,installationId:`sample`,deliveryId:`sample-1`,actor:{id:`user-1`,login:`someone`,role:`member`},text:`Replace me with the text a real event would carry.`,...n?{chat:{thread:{_type:`chat:Thread`,adapterName:e,channelId:n.slice(0,n.lastIndexOf(`:`)),id:n,isDM:!1}}}:{}}}async function L(e,n={}){let r=j(n);if(!e&&n.askId&&(e=await n.askId(e=>P(r,e))),!e)throw new t(`invalid-option`,`Missing agent id.`,{hint:`Usage: coder agent init <id>`});let i=P(r,e);if(i)throw new t(`invalid-option`,i.includes(`not empty`)?i:`Agent id "${e}": ${i}`);let s=p.join(r,`.coder`,`agents`,e),c=n.askPicks?await n.askPicks(e):{...n.name?{name:n.name}:{},integrations:M(n.integrations).length?M(n.integrations):[Object.keys(o)[0]],events:{},matches:{},access:n.access??`write`};if(!a.includes(c.access))throw new t(`invalid-option`,`Unknown access "${c.access}"; valid: ${a.join(`, `)}`);let l={},u=M(n.events),d=e=>Object.keys(o[e]?.events??{});for(let e of c.integrations)if(!o[e])throw new t(`invalid-option`,`Unknown integration "${e}"; valid: ${Object.keys(o).join(`, `)}`);for(let e of u)if(!c.integrations.some(t=>d(t).includes(e)))throw new t(`invalid-option`,`No chosen integration has event "${e}".`,{hint:`Events per integration: coder agent integrations show <id>`});let f=Object.fromEntries(M(n.match).map(e=>{let n=e.indexOf(`=`);if(n<1)throw new t(`invalid-option`,`Bad --match "${e}"; use event=regex.`);let r=e.slice(n+1);if(F(r))throw new t(`invalid-option`,`Bad --match for ${e.slice(0,n)}: ${F(r)}`);return[e.slice(0,n),r]}));for(let e of c.integrations){let n=d(e),r=c.events[e]??(u.length?u.filter(e=>n.includes(e)):[n.includes(`mention`)?`mention`:n[0]]);for(let i of r)if(!n.includes(i))throw new t(`invalid-option`,`${e} has no event "${i}"; valid: ${n.join(`, `)}`);let i={...f,...c.matches[e]??{}},a=r.filter(e=>i[e]);r.length&&(l[e]={events:a.length?Object.fromEntries(r.map(e=>[e,!i[e]||{match:i[e]}])):r})}let m={...c.name?{name:c.name}:{},...n.description?{description:n.description}:{},permissions:n.permissions??`auto`,access:c.access,integrations:l};await v.mkdir(s,{recursive:!0}),await v.writeFile(p.join(s,`agent.json`),`${JSON.stringify(m,null,2)}\n`),await v.writeFile(p.join(s,`system.md`),``);let h=p.join(_.tmpdir(),`coder-agent-samples`,e),g=[];for(let[e,t]of Object.entries(l)){let n=(Array.isArray(t.events)?t.events:Object.keys(t.events??{}))[0];await v.mkdir(h,{recursive:!0});let r=p.join(h,`sample-${e}-${n}.json`);await v.writeFile(r,`${JSON.stringify(I(e,n),null,2)}\n`),g.push(r)}return{id:e,dir:s,files:[`agent.json`,`system.md`],samples:g,integrations:Object.keys(l)}}function R(e){if(e===void 0||typeof e==`number`)return e;if(/^\d+$/.test(e))return Number(e);let n=/^(\d+)([dh])$/.exec(e);if(!n)throw new t(`invalid-option`,`Invalid --since value.`,{hint:`Use 7d, 24h, or milliseconds since epoch`});return Date.now()-Number(n[1])*(n[2]===`d`?864e5:36e5)}const z={list:(e={})=>e.server===void 0?n(j(e),o):i(e).agents.list(),async show(e,r={}){if(!e)throw new t(`invalid-option`,`Missing agent id.`,{hint:`Usage: coder agent show <id>`});if(r.server===void 0){let i=(await n(j(r),o)).find(t=>t.id===e);if(!i)throw new t(`invalid-option`,`No agent named "${e}".`,{hint:`List agents: coder agent list`});return i}let a=i(r),s=await a.agents.get(e),c=await a.agents.version(e,s.currentVersion);return{...s,definition:c.definition}},init:L,push:(e,t={})=>r(i(t),j(t),e),async run(e,r,a={}){if(a.wait&&a.server===void 0)throw new t(`invalid-option`,`--wait needs --server.`,{hint:`Offline runs print their reply as they finish`});if(!e||!r)throw new t(`invalid-option`,`Missing agent id or event file.`,{hint:`Usage: coder agent run <agent> <event.json>`});let l=j(a),u=typeof r==`string`?JSON.parse(await v.readFile(p.resolve(l,r),`utf8`)):r;if(a.server!==void 0){let t=i(a),n=await t.tasks.create({agent:e,event:u});if(!a.wait||!n.tasks.length)return n;let r=[];for(let e of n.tasks){let n=await t.tasks.wait(e,{onLog:a.onLog});r.push(n),a.onDone?.(n)}return r}let d=await n(l,o),m=d.find(t=>t.id===e);if(!m)throw new t(`invalid-option`,`No agent named "${e}".`);let h=f(u,d).find(t=>t.agent.id===e),g=a.flow??h?.flow;if(!g)throw new t(`invalid-option`,`Agent "${e}" does not match event "${u.type}".`);return c({cwd:l,agent:e,flow:g,task:{...s(m,g,u),tools:{},...h?.permissions?{permissions:h.permissions}:{}},post:!1})},runTask(e,t={}){let n=j(t);return m.env.CODER_LOGIN?k(e,n):m.env.CODER_PREPARE?u(e,n):l(e,n)},async usage(e={}){if(e.by&&![`agent`,`installation`,`engine`].includes(e.by))throw new t(`invalid-option`,`Invalid --by value.`,{hint:`Use agent, installation, or engine`});let n=e.by;if(e.server!==void 0)return i(e).usage({since:R(e.since),by:n});let[{localUsage:r},{usageSummary:a}]=await Promise.all([import(`./apps-Bnk7F3A2.js`).then(e=>e.It),import(`./apps-Bnk7F3A2.js`).then(e=>e.An)]);return a(r(j(e)).map(([,e])=>e),R(e.since)??0,n)},integrations:{list:()=>Object.entries(o).map(([e,t])=>({id:e,description:t.description,events:Object.keys(t.events),tools:t.tools.presets.write})),show(e){if(!e)throw new t(`invalid-option`,`Missing integration id.`,{hint:`Usage: coder agent integrations show <id>`});let n=o[e];if(!n)throw new t(`invalid-option`,`Unknown integration "${e}".`,{hint:`List integrations: coder agent integrations list`});return{id:e,events:Object.fromEntries(Object.entries(n.events).map(([e,t])=>[e,t.description])),tools:n.tools.presets}}}};export{z as n,A as t};