@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
@@ -1 +0,0 @@
1
- .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:12;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}button.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){button.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.more>.more-list{position-try-fallbacks:flip-block}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}.menu>.pop.flip{inset:auto auto anchor(top) anchor(left);margin:0 0 8px}.menu.right>.pop.flip{inset:auto anchor(right) anchor(top) auto}.menu.up>.pop.flip{inset:anchor(bottom) anchor(right) auto anchor(left);margin:8px 0 0}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled,.pop-item[aria-disabled=true]{cursor:default}.pop-item:disabled:hover,.pop-item[aria-disabled=true]:hover{background:none}.pop-item small{display:block;color:var(--muted);font-size:11.5px}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small{color:var(--muted);font-size:11.5px}.pop-row{display:flex;align-items:center}.pop-row>.pop-item{flex:1 1 auto}.pop-row>.pop-item small{margin-right:6px;color:var(--muted);font-size:11px}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more.info>button{display:inline-flex;padding:0;border:0;color:var(--muted);vertical-align:middle}.more.info .ic{width:14px;height:14px}.more.info>.more-list{max-width:280px;padding:10px 12px;gap:6px;color:var(--fg);font-size:13px;letter-spacing:normal;text-align:left}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}.more-list>:not(.pf-row,p){padding:4px 6px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){button.only-m{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 14px;border:1px solid var(--deep);background:var(--deep);color:#fff;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;white-space:nowrap;cursor:pointer}.btn:hover{filter:brightness(1.12)}.btn.outline{background:transparent;color:var(--fg);border-color:var(--line2)}.btn.outline:hover,.btn.ghost:hover{background:var(--wash);filter:none}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg)}.btn.secondary{background:var(--wash2);border-color:transparent;color:var(--fg)}.btn.secondary:hover{background:var(--line2);filter:none}.btn.danger{background:light-dark(#c92a2a,#d42f2f);border-color:light-dark(#c92a2a,#d42f2f);color:#fff}.btn.secondary.danger{background:var(--badbg);border-color:transparent;color:var(--bad)}.btn.secondary.danger:is(:hover,:focus-visible){background:light-dark(rgba(224,49,49,.18),rgba(224,49,49,.3))}.btn.outline.danger{background:transparent;border-color:var(--line2);color:var(--bad)}.btn.ghost.danger{background:transparent;border-color:transparent;color:var(--fg)}.btn:is(.outline,.ghost).danger:is(:hover,:focus-visible){background:var(--badbg);color:var(--bad)}.btn.sm{height:28px;padding:0 10px;font-size:10px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn-spin{flex:none;width:12px;height:12px;margin:2px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.btn[aria-busy=true]:not(:has(>.btn-spin)){position:relative;-webkit-text-fill-color:transparent}.btn[aria-busy=true]:not(:has(>.btn-spin)):after{content:"";position:absolute;inset:0;width:12px;height:12px;margin:auto;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:0;background:none;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--fg);background:var(--wash)}td .btn,td .icon-btn{height:28px;margin-block:-3px -5px;vertical-align:top}td .icon-btn{width:28px}.bar-r .icon-btn{width:28px;height:28px}.toasts{position:fixed;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));height:auto;inset:16px 16px 16px auto;margin:0;padding:0;border:0;background:none;color:inherit;overflow:visible;pointer-events:none}.toast{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast:is(.success,.warning,.error){border-top:3px solid var(--tone)}.toast.success{--tone: var(--ok)}.toast.warning{--tone: var(--warn)}.toast.error{--tone: var(--bad)}.toast.error .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin-inline:-40px;padding:0 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck>div:first-child:has(>.back,>*>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.page .head.stuck,.page .hero.stuck{padding-top:10px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{align-items:center;gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn);background:linear-gradient(var(--warnbg),var(--warnbg)),var(--panel)}.card.danger{border-color:var(--bad)}.fold>summary{list-style:none;cursor:pointer}.fold>summary::-webkit-details-marker{display:none}.fold:not([open])>summary{border-bottom:0}.fold>summary h2{flex:0 0 auto}.fold-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.fold>summary:hover{background:var(--wash)}.fold>summary:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}.fold>summary .btn{pointer-events:none}.fold[open]>summary .fold-open,.fold:not([open])>summary .fold-close{display:none}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading.late>span{animation-delay:.3s}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}.filter-chips{display:flex;flex:1 1 0;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.filters:has(>.filter-chips)>.search{flex-grow:1000}.head.tools .filter-chips{order:-1}.head.tools .filter-chips>:first-child{margin-left:auto}.filter-chips .chip{display:inline-flex;flex:none;align-items:center;gap:4px;max-width:200px}.filter-chips .chip .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chips .chip .ic{width:12px;height:12px}.filter-more>.pop:popover-open{display:block;width:min(260px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:auto;padding:6px}.filter-more .pop-label:not(:first-child){margin-top:10px}.filter-more .pop-item{width:100%;min-height:30px;font-size:12px}.field-btn{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 12px;border:1px solid var(--line2);background:var(--field);white-space:nowrap;cursor:pointer}.field-btn:focus-visible,.field-btn:has(+.pop:popover-open){outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.field-btn:disabled{color:var(--muted);cursor:default}.filter-more>.field-btn.on{color:var(--acc)}.filter-panel .pop-item>.brand-icon{width:16px;height:16px}.filter-panel [data-facet]{color:var(--muted)}.filter-panel .search{margin:4px 0 6px}.filter-panel .search input{width:100%}@media(max-width:760px){@supports (anchor-scope: --menu){.filters .menu.filter-more>.pop{inset:anchor(bottom) auto auto anchor(left)}}.head.tools .filter-chips{order:0}.head.tools .filter-chips>:first-child{margin-left:0}}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.head.tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-height:36px}.head.tools>div:first-child{display:contents}.head.tools .lead{grid-row:2;grid-column:1 / -1}.head.tools>.filters{grid-row:1;grid-column:2;justify-content:flex-end}.head.tools>.filters:last-child{grid-column:2 / -1}.head.tools>.actions{grid-row:1;grid-column:3}.page{container-type:inline-size}@container (max-width: 720px){.head.tools:has(>.actions)>.filters{grid-row:auto;grid-column:1 / -1;justify-content:flex-start}.head.tools:has(>.actions) .search{max-width:none}}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;display:block}.tab-body .filters{position:sticky;top:calc(56px + var(--head, 0px) + var(--tabs, 0px));z-index:8;margin-block:-8px;padding-block:8px;background:var(--bg)}.filters .search{flex:1 1 240px;max-width:360px}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}label.search input[type=search]{padding-left:32px}.filters .select{flex:none}.filters .end{margin-left:auto}.vsearch .search{width:min(280px,100%)}@media(max-width:760px){.head.tools{grid-template-columns:minmax(0,1fr) auto;row-gap:12px}.head.tools>.filters{grid-row:3;grid-column:1 / -1}.head.tools>.actions{grid-column:2;width:auto}.filters .search{max-width:none;flex-basis:100%}.filters .select{flex:1 1 0}.filters .select>button{gap:4px;padding-inline:8px}.head.tools.stuck>.filters>.select{display:none}}.select{position:relative;display:inline-flex;min-width:0}.field .select{display:flex}.select>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}.select>button .grow{overflow:hidden;text-overflow:ellipsis}.select>button .ic{color:var(--dim);transition:transform .15s}.select>button[aria-expanded=true] .ic{transform:rotate(180deg)}.select>button:focus-visible,.select>button[aria-expanded=true]{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.select>button:disabled{color:var(--muted);cursor:default}.select-pop{min-width:0;max-width:min(440px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.select-pop .pop-item{white-space:nowrap}.select-pop .pop-item:hover{background:none}.select-pop .pop-item.on{background:var(--wash2)}.select-pop .pop-item>.ic{visibility:hidden}.select-pop .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.select>button:disabled{opacity:.65;cursor:default}.select-pop .pop-item small{display:block;overflow:hidden;direction:rtl;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--muted)}.select-pop .pop-item .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}.select-pop .pop-item.action{margin-top:4px;color:var(--muted)}.select-pop .pop-item.action>.ic{visibility:visible;width:14px;height:14px}.select-pop .pop-item.action.on{color:var(--fg)}.select .brand-icon,.select-pop .brand-icon{flex:none;width:14px;height:14px}dialog.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid var(--line2);background:var(--tile);color:inherit;text-align:left;white-space:normal;box-shadow:0 12px 32px #0000002e}dialog.modal:focus-visible{outline:none}dialog.modal::backdrop{background:light-dark(rgba(0,0,0,.45),rgba(0,0,0,.72))}.modal form{display:grid;gap:16px;padding:20px 24px 24px}.modal header{display:flex;align-items:center;gap:10px}.modal header:has(.icon-btn){margin-right:-10px}.modal h2{flex:1;font-size:15px;font-weight:700;overflow-wrap:anywhere}.modal .actions{justify-content:flex-end;margin-top:4px}@media(min-width:561px){.modal .actions>:first-child:not(:only-child){margin-right:auto}}dialog.confirm,dialog.outcome-dialog{width:min(500px,calc(100vw - 32px))}.confirm p,.outcome-dialog p{color:var(--muted);line-height:1.6}.confirm form{gap:8px}.confirm .actions{margin-top:12px}.outcome-dialog form{gap:10px;padding:24px 24px 20px}dialog.modal.tone{border-top:3px solid var(--tone)}dialog.modal.neutral{--tone: var(--muted)}dialog.modal.success{--tone: var(--ok)}dialog.modal.warning{--tone: var(--warn)}dialog.modal.error{--tone: var(--bad)}.modal.tone header{color:var(--tone)}.modal.tone h2{color:var(--fg)}.outcome-dialog .actions{margin-top:14px}@media(max-width:560px){.modal .actions{flex-direction:column-reverse;align-items:stretch}.modal .actions>*{margin-right:0}}.head .lead:has(.fact){display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:12px}.fact{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.fact .ic{width:12px;height:12px;color:var(--dim)}.fact-dim{color:var(--dim)}.head.stuck .lead:has(.fact){display:none}@media(max-width:760px){.head:has(.fact) .back{height:34px}.head:has(.fact) .title-row>h1{flex-basis:100%}.head:has(.fact) .actions{position:absolute;top:0;right:16px;width:auto;flex-wrap:nowrap}.head.stuck:has(.fact) .actions{position:static}.head.stuck:has(.fact) .actions>.menu{display:inline}.head.stuck:has(.fact) .title-row>h1{flex-basis:auto}.head.stuck:has(.fact) .meta{display:none}.reply-box,.reply-box textarea{min-width:0}}.agent-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);text-decoration:underline dotted;text-underline-offset:3px}.agent-link .ic{width:12px;height:12px}.turn.answer,.turn.reply{border-left-color:var(--line2)}.agent-link:hover{color:var(--fg)}.logs{margin:0;padding:16px;max-height:420px;overflow:auto;font:12.5px/1.8 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--tile)}pre.json{margin:0;overflow-x:auto}.convo{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.turn{min-width:0;padding:12px 16px;border-left:2px solid var(--acc);background:var(--tile)}.turn .who{margin-bottom:4px;font-size:11px;color:var(--dim)}.turn .collapse.open>.btn.more-toggle{margin:8px auto 0}.act-list{position:relative}.act-slot{position:absolute;top:0;left:0;width:100%}.act{display:grid;grid-template-columns:76px 16px minmax(0,1fr);align-items:baseline;gap:10px;width:100%;padding:3px 8px;border:0;border-left:2px solid transparent;background:none;font:12.5px/1.7 var(--mono);text-align:left}:is(.act.fold,button.act){grid-template-columns:76px 16px minmax(0,1fr) 14px;cursor:pointer}.act .act-chev{visibility:hidden}:is(.act.fold,button.act):hover .act-chev,.act.open .act-chev{visibility:visible}.act.open .act-chev{rotate:180deg}:is(.act.fold,button.act):hover{background:var(--wash)}.act time{color:var(--dim);font-size:11px}.act .ic{width:13px;height:13px;align-self:start;margin-top:4px;color:var(--dim)}.act-text{display:flex;gap:12px;min-width:0}.act-title,.act-detail{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.act-title{flex:0 1 auto}.act-detail{flex:1 1 0;color:var(--dim)}.act.open .act-text{display:grid;gap:2px}.act.open :is(.act-title,.act-detail){white-space:pre-wrap;overflow-wrap:anywhere}.act.muted .act-title,.act.usage .act-title{color:var(--muted)}.act.assistant .act-title{color:var(--fg);font-size:13px;line-height:21.25px}.act.assistant .ic{color:var(--acc)}.act.approval{border-left-color:var(--acc);background:var(--accbg)}.act.approval .ic{color:var(--acc)}.act.warning :is(.act-title,.ic){color:var(--warn)}.act.error :is(.act-title,.ic){color:var(--bad)}.act.steer :is(.act-title,.ic){color:var(--acc)}.act.timed{grid-template-columns:76px 16px minmax(0,1fr) auto 14px}.act-state{color:var(--dim);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.act-state.bad,.act-state.bad .ic{color:var(--bad)}.act-state :is(.ic,.spin){display:inline-block;width:11px;height:11px;margin:0 6px 0 0;vertical-align:-1px}.act-state .spin,.act.step>.spin{border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.run-sum,.run-foot{color:var(--muted);font-size:12px}.run>.run-steps{display:grid;grid-template-rows:repeat(2,28px);margin:8px -8px 0}.run-steps.earlier{mask-image:linear-gradient(to bottom,#00000040,#000 28px)}.run>.loading.inline{display:flex;margin-top:12px}.act.step{grid-template-columns:16px minmax(0,1fr) auto 14px}.act.run-sum{grid-template-columns:minmax(0,1fr) 14px;width:calc(100% + 16px);margin-inline:-8px}.act.step.approval{border-left-color:transparent}.act.step.approval:not(:hover){background:none}.act.step>.spin{width:11px;height:11px;margin-inline:1px;align-self:center}.run-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px 16px;border-top:1px solid var(--line)}.act-slot.at>.act{background:var(--wash)}.act-empty{padding:24px 0;text-align:center}.jump{position:sticky;bottom:calc(var(--reply, 72px) + 8px);z-index:11;display:block;width:max-content;margin:0 auto;padding:6px 14px;border:1px solid var(--line2);border-radius:999px;background:var(--tile);color:var(--fg);font-size:12px;box-shadow:0 6px 18px #0000002e;cursor:pointer}.no-reply{margin-top:16px;font-size:12px}.tabs+.card.accent{position:sticky;top:var(--stuck);z-index:8}main:has(form.reply){padding-bottom:0}form.reply{position:sticky;bottom:0;z-index:10;display:grid;gap:6px;margin-top:auto;padding:12px 0 16px;background:var(--bg)}.reply-box{display:flex;align-items:flex-end;gap:6px;padding:4px;border:1px solid var(--line2);background:var(--field)}.reply-box:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.reply-box textarea{flex:1;field-sizing:content;min-height:28px;max-height:6lh;padding:2px 6px;border:0;background:none;resize:none;box-shadow:none}.reply-box textarea:focus{box-shadow:none}.reply-box textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-box .mode{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;background:var(--wash2);font-size:11px;text-transform:uppercase;letter-spacing:.2em}.reply-box .mode .ic{width:12px;height:12px}.act:is(.tool,.tool-result,.status,.line,.reasoning,.usage) .act-title{color:var(--muted)}.act.open:not(.warning,.error) .act-title{color:var(--fg)}.findings{display:grid;gap:24px;margin:0;padding:12px 16px;list-style:none}.finding{min-width:0;padding-left:12px;border-left:2px solid var(--dim);--sev: var(--dim)}.finding.critical{--sev: var(--bad)}.finding.major{--sev: var(--warn)}.finding.minor{--sev: var(--acc)}.finding{border-left-color:var(--sev)}.finding p{white-space:normal;overflow-wrap:anywhere}.finding-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;font-size:12px}.finding-head .sev{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sev)}.finding-head .loc{color:var(--muted)}.finding-head .cat{margin-left:auto;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.finding-sum{margin-top:4px;font-weight:500}.finding-why{margin-top:2px;font-size:12.5px}.turn.qa>.answer{margin-top:10px;padding-top:10px;border-top:1px solid var(--line2)}.turn.prompt .prose{font-size:13.5px}.turn .collapse:not(.open){margin-bottom:-12px}.collapse{position:relative}.collapse:not(.open){padding-bottom:6px}.collapse-box{box-sizing:content-box;max-height:calc(var(--lines) * 1lh + 44px);overflow:hidden}.collapse.open>.collapse-box{max-height:none}.collapse.long:not(.open)>.collapse-box{mask-image:linear-gradient(#000 calc(100% - 52px),transparent calc(100% - 36px))}.collapse>.btn.more-toggle{position:absolute;z-index:1;left:50%;bottom:6px;translate:-50% 0}.collapse.open>.btn.more-toggle{position:static;display:flex;margin:0 auto 12px;translate:none}.md{overflow-wrap:anywhere}.md :where(h3,h4,h5,h6){margin:0;font-size:13px;font-weight:700}.md h3{font-size:14px}.md ul{padding-left:20px;list-style:disc}.md ol{padding-left:20px;list-style:decimal}.md pre{margin:0;padding:8px 12px;overflow-x:auto;background:var(--wash)}.md pre code{padding:0;background:none}.tabs{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none;box-shadow:inset 0 -1px var(--line2)}.page .tabs:not(.vertical){height:40px;margin-top:-8px;position:sticky;top:calc(56px + var(--head, 0px));z-index:9;background:var(--bg)}.tabs a,.tabs>button{display:flex;flex:none;align-items:center;gap:8px;padding:10px 12px;border:0;border-bottom:2px solid transparent;background:none;font-size:10.5px;color:var(--muted);white-space:nowrap;cursor:pointer}.tabs a:hover,.tabs>button:hover{color:var(--fg)}.tabs:focus{outline:none}.tabs a:focus-visible,.tabs>button:focus-visible{outline-offset:-2px}.tabs a[aria-current],.tabs a[data-pending],.tabs>button[aria-current]{color:var(--fg);border-bottom-color:var(--fg)}.tabs:has(a[data-pending]) a[aria-current]:not([data-pending]){color:var(--muted);border-bottom-color:transparent}.tabs .count{color:var(--dim)}@property --tabs-fade{syntax: "<length>"; inherits: false; initial-value: 0px;}@keyframes tabs-fade{0%{--tabs-fade: 40px}to{--tabs-fade: 0px}}.tabs{mask-image:linear-gradient(to left,transparent,#000 var(--tabs-fade));animation:tabs-fade linear both;animation-timeline:scroll(self inline)}.tabs[aria-hidden]>*{visibility:hidden}
@@ -1 +0,0 @@
1
- .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:12;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}button.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){button.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.more>.more-list{position-try-fallbacks:flip-block}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}.menu>.pop.flip{inset:auto auto anchor(top) anchor(left);margin:0 0 8px}.menu.right>.pop.flip{inset:auto anchor(right) anchor(top) auto}.menu.up>.pop.flip{inset:anchor(bottom) anchor(right) auto anchor(left);margin:8px 0 0}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled,.pop-item[aria-disabled=true]{cursor:default}.pop-item:disabled:hover,.pop-item[aria-disabled=true]:hover{background:none}.pop-item small{display:block;color:var(--muted);font-size:11.5px}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small{color:var(--muted);font-size:11.5px}.pop-row{display:flex;align-items:center}.pop-row>.pop-item{flex:1 1 auto}.pop-row>.pop-item small{margin-right:6px;color:var(--muted);font-size:11px}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more.info>button{display:inline-flex;padding:0;border:0;color:var(--muted);vertical-align:middle}.more.info .ic{width:14px;height:14px}.more.info>.more-list{max-width:280px;padding:10px 12px;gap:6px;color:var(--fg);font-size:13px;letter-spacing:normal;text-align:left}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}.more-list>:not(.pf-row,p){padding:4px 6px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){button.only-m{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 14px;border:1px solid var(--deep);background:var(--deep);color:#fff;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;white-space:nowrap;cursor:pointer}.btn:hover{filter:brightness(1.12)}.btn.outline{background:transparent;color:var(--fg);border-color:var(--line2)}.btn.outline:hover,.btn.ghost:hover{background:var(--wash);filter:none}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg)}.btn.secondary{background:var(--wash2);border-color:transparent;color:var(--fg)}.btn.secondary:hover{background:var(--line2);filter:none}.btn.danger{background:light-dark(#c92a2a,#d42f2f);border-color:light-dark(#c92a2a,#d42f2f);color:#fff}.btn.secondary.danger{background:var(--badbg);border-color:transparent;color:var(--bad)}.btn.secondary.danger:is(:hover,:focus-visible){background:light-dark(rgba(224,49,49,.18),rgba(224,49,49,.3))}.btn.outline.danger{background:transparent;border-color:var(--line2);color:var(--bad)}.btn.ghost.danger{background:transparent;border-color:transparent;color:var(--fg)}.btn:is(.outline,.ghost).danger:is(:hover,:focus-visible){background:var(--badbg);color:var(--bad)}.btn.sm{height:28px;padding:0 10px;font-size:10px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn-spin{flex:none;width:12px;height:12px;margin:2px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.btn[aria-busy=true]:not(:has(>.btn-spin)){position:relative;-webkit-text-fill-color:transparent}.btn[aria-busy=true]:not(:has(>.btn-spin)):after{content:"";position:absolute;inset:0;width:12px;height:12px;margin:auto;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:0;background:none;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--fg);background:var(--wash)}td .btn,td .icon-btn{height:28px;margin-block:-3px -5px;vertical-align:top}td .icon-btn{width:28px}.bar-r .icon-btn{width:28px;height:28px}.toasts{position:fixed;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));height:auto;inset:16px 16px 16px auto;margin:0;padding:0;border:0;background:none;color:inherit;overflow:visible;pointer-events:none}.toast{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast:is(.success,.warning,.error){border-top:3px solid var(--tone)}.toast.success{--tone: var(--ok)}.toast.warning{--tone: var(--warn)}.toast.error{--tone: var(--bad)}.toast.error .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin-inline:-40px;padding:0 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck>div:first-child:has(>.back,>*>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.page .head.stuck,.page .hero.stuck{padding-top:10px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{align-items:center;gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn);background:linear-gradient(var(--warnbg),var(--warnbg)),var(--panel)}.card.danger{border-color:var(--bad)}.fold>summary{list-style:none;cursor:pointer}.fold>summary::-webkit-details-marker{display:none}.fold:not([open])>summary{border-bottom:0}.fold>summary h2{flex:0 0 auto}.fold-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.fold>summary:hover{background:var(--wash)}.fold>summary:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}.fold>summary .btn{pointer-events:none}.fold[open]>summary .fold-open,.fold:not([open])>summary .fold-close{display:none}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading.late>span{animation-delay:.3s}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}.filter-chips{display:flex;flex:1 1 0;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.filters:has(>.filter-chips)>.search{flex-grow:1000}.head.tools .filter-chips{order:-1}.head.tools .filter-chips>:first-child{margin-left:auto}.filter-chips .chip{display:inline-flex;flex:none;align-items:center;gap:4px;max-width:200px}.filter-chips .chip .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chips .chip .ic{width:12px;height:12px}.filter-more>.pop:popover-open{display:block;width:min(260px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:auto;padding:6px}.filter-more .pop-label:not(:first-child){margin-top:10px}.filter-more .pop-item{width:100%;min-height:30px;font-size:12px}.field-btn{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 12px;border:1px solid var(--line2);background:var(--field);white-space:nowrap;cursor:pointer}.field-btn:focus-visible,.field-btn:has(+.pop:popover-open){outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.field-btn:disabled{color:var(--muted);cursor:default}.filter-more>.field-btn.on{color:var(--acc)}.filter-panel .pop-item>.brand-icon{width:16px;height:16px}.filter-panel [data-facet]{color:var(--muted)}.filter-panel .search{margin:4px 0 6px}.filter-panel .search input{width:100%}@media(max-width:760px){@supports (anchor-scope: --menu){.filters .menu.filter-more>.pop{inset:anchor(bottom) auto auto anchor(left)}}.head.tools .filter-chips{order:0}.head.tools .filter-chips>:first-child{margin-left:0}}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.head.tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-height:36px}.head.tools>div:first-child{display:contents}.head.tools .lead{grid-row:2;grid-column:1 / -1}.head.tools>.filters{grid-row:1;grid-column:2;justify-content:flex-end}.head.tools>.filters:last-child{grid-column:2 / -1}.head.tools>.actions{grid-row:1;grid-column:3}.page{container-type:inline-size}@container (max-width: 720px){.head.tools:has(>.actions)>.filters{grid-row:auto;grid-column:1 / -1;justify-content:flex-start}.head.tools:has(>.actions) .search{max-width:none}}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;display:block}.tab-body .filters{position:sticky;top:calc(56px + var(--head, 0px) + var(--tabs, 0px));z-index:8;margin-block:-8px;padding-block:8px;background:var(--bg)}.filters .search{flex:1 1 240px;max-width:360px}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}label.search input[type=search]{padding-left:32px}.filters .select{flex:none}.filters .end{margin-left:auto}.vsearch .search{width:min(280px,100%)}@media(max-width:760px){.head.tools{grid-template-columns:minmax(0,1fr) auto;row-gap:12px}.head.tools>.filters{grid-row:3;grid-column:1 / -1}.head.tools>.actions{grid-column:2;width:auto}.filters .search{max-width:none;flex-basis:100%}.filters .select{flex:1 1 0}.filters .select>button{gap:4px;padding-inline:8px}.head.tools.stuck>.filters>.select{display:none}}.select{position:relative;display:inline-flex;min-width:0}.field .select{display:flex}.select>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}.select>button .grow{overflow:hidden;text-overflow:ellipsis}.select>button .ic{color:var(--dim);transition:transform .15s}.select>button[aria-expanded=true] .ic{transform:rotate(180deg)}.select>button:focus-visible,.select>button[aria-expanded=true]{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.select>button:disabled{color:var(--muted);cursor:default}.select-pop{min-width:0;max-width:min(440px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.select-pop .pop-item{white-space:nowrap}.select-pop .pop-item:hover{background:none}.select-pop .pop-item.on{background:var(--wash2)}.select-pop .pop-item>.ic{visibility:hidden}.select-pop .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.select>button:disabled{opacity:.65;cursor:default}.select-pop .pop-item small{display:block;overflow:hidden;direction:rtl;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--muted)}.select-pop .pop-item .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}.select-pop .pop-item.action{margin-top:4px;color:var(--muted)}.select-pop .pop-item.action>.ic{visibility:visible;width:14px;height:14px}.select-pop .pop-item.action.on{color:var(--fg)}.select .brand-icon,.select-pop .brand-icon{flex:none;width:14px;height:14px}dialog.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid var(--line2);background:var(--tile);color:inherit;text-align:left;white-space:normal;box-shadow:0 12px 32px #0000002e}dialog.modal:focus-visible{outline:none}dialog.modal::backdrop{background:light-dark(rgba(0,0,0,.45),rgba(0,0,0,.72))}.modal form{display:grid;gap:16px;padding:20px 24px 24px}.modal header{display:flex;align-items:center;gap:10px}.modal header:has(.icon-btn){margin-right:-10px}.modal h2{flex:1;font-size:15px;font-weight:700;overflow-wrap:anywhere}.modal .actions{justify-content:flex-end;margin-top:4px}@media(min-width:561px){.modal .actions>:first-child:not(:only-child){margin-right:auto}}dialog.confirm,dialog.outcome-dialog{width:min(500px,calc(100vw - 32px))}.confirm p,.outcome-dialog p{color:var(--muted);line-height:1.6}.confirm form{gap:8px}.confirm .actions{margin-top:12px}.outcome-dialog form{gap:10px;padding:24px 24px 20px}dialog.modal.tone{border-top:3px solid var(--tone)}dialog.modal.neutral{--tone: var(--muted)}dialog.modal.success{--tone: var(--ok)}dialog.modal.warning{--tone: var(--warn)}dialog.modal.error{--tone: var(--bad)}.modal.tone header{color:var(--tone)}.modal.tone h2{color:var(--fg)}.outcome-dialog .actions{margin-top:14px}@media(max-width:560px){.modal .actions{flex-direction:column-reverse;align-items:stretch}.modal .actions>*{margin-right:0}}.seg-btns{display:flex;border:1px solid var(--line2)}.seg-btns>a,.seg-btns>button,.seg-btns .menu>button{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-left:1px solid var(--line2);background:var(--panel);font-size:10.5px;letter-spacing:.14em;color:var(--muted);cursor:pointer}.seg-btns>button{border-top:0;border-right:0;border-bottom:0;text-transform:uppercase}.seg-btns>:first-child{border-left:0}.seg-btns>a:hover,.seg-btns>button:hover,.seg-btns .menu>button:hover{color:var(--fg)}.seg-btns [aria-current],.seg-btns [aria-checked=true],.seg-btns .on>button{background:var(--accbg);color:var(--acc)}.seg-btns>button:disabled{opacity:.45;color:var(--muted);cursor:not-allowed}.range-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.date-pop{display:grid;gap:12px;min-width:226px;padding:8px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stats>div{position:relative;display:grid;align-content:start;gap:8px;min-width:0;padding:14px 16px;border:1px solid var(--line);background:var(--panel)}.stats>div:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--acc);opacity:.7}.stats small{font-size:10px;color:var(--muted)}.stats strong{font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.25}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.stats{gap:8px}.stats strong{font-size:16px}}.usage td:first-child{width:40%}.unlinked{font-weight:500;color:var(--muted)}.unlinked.gone{color:var(--dim)}.bar-in{display:block;height:3px;margin-top:8px;width:var(--w);background:var(--acc);opacity:.6}.bar-in.top{opacity:1;background:var(--c, var(--acc))}@media(max-width:760px){.usage.stacked tr{grid-template-columns:repeat(3,minmax(0,1fr))}.usage td.num{display:grid;text-align:left;font-size:12px}.usage td.num:before{content:attr(data-label);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}}.chart{display:flex;align-items:flex-end;gap:4px;height:200px}.empty-chart{align-items:center;justify-content:center}.chart li{position:relative;flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.chart .col{display:flex;flex-direction:column-reverse;gap:2px;width:100%;max-width:48px;height:var(--h);min-height:1px}.chart .col i{display:block;flex:var(--f) 0 0;min-height:1px;background:var(--c, var(--s1))}.chart .col i:last-child{border-radius:4px 4px 0 0}.chart li>small{font-size:10.5px;color:var(--dim);height:16px;white-space:nowrap}.chart li:hover .col{filter:brightness(1.15)}.chart .tip{display:none;position:absolute;bottom:calc(var(--h) + 30px);left:50%;transform:translate(-50%);z-index:5;width:max-content;max-width:240px;padding:8px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;font-size:11.5px;line-height:1.5}.chart li:hover .tip{display:grid}.chart li:first-child .tip,.chart li:nth-child(2) .tip{left:0;transform:none}.chart li:last-child .tip,.chart li:nth-last-child(2) .tip{left:auto;right:0;transform:none}.tip b{font-weight:500}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}.legend span,.tip span{display:inline-flex;align-items:center;gap:6px}.legend i,.tip i{width:10px;height:10px;border-radius:2px;background:var(--c)}@media(max-width:760px){.chart{gap:2px;height:160px}}.field{display:grid;gap:6px}.field>span:first-child,.field>label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-weight:500}.field small{font-weight:400;color:var(--muted);font-size:11.5px}.field .seg-btns{width:max-content;max-width:100%}.field .seg-btns>button{height:36px}
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-ca98586e3b4ce9ae.js";import{a as b}from"./chunks/composer-85e0ec7163ae18b7.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-681061023bdf0a49.js";import"./chunks/connect-repositories-0de82daaf654b1d3.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/notice-57db7a1f05b7308c.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/back-fa9d6e37f9828093.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as c,b as f,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as d,$1i as p}from"./chunks/shared-init-cc13a835f3508618.js";import{$3C as a,$3i as r}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as m,$2k as s}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as e}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:_,remountRoute:D,unmountRoute:R}=n({islands:[{id:"c-23fe0b0a88",Component:m},{id:"c-270e7c98c3",options:{},load:()=>import("./chunks/instructions-fd7402ac5aa8b50e.js").then(o=>o.Instructions)},{id:"c-30f2612e58",Component:d},{id:"c-332207ff19",Component:r},{id:"c-34c6ed2333",Component:t},{id:"c-3766284c27",Component:s},{id:"c-50297fb16e",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-352a3222d878de0f.js").then(o=>o.TasksList)},{id:"c-5db4008f94",Component:c},{id:"c-64acca4509",Component:f},{id:"c-6520696115",options:{},load:()=>import("./chunks/composer-910bb87127972f62.js").then(o=>o.NewTaskButton)},{id:"c-725404fa88",Component:l},{id:"c-a0ca15b5bd",Component:u},{id:"c-c2deb0b175",Component:C},{id:"c-c83c3ef861",Component:T},{id:"c-d2258f48fe",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-21cb854e6a7108a7.js").then(o=>o.VersionsList)},{id:"c-e15a0b3a60",Component:a},{id:"c-e4fe842dbb",Component:p},{id:"c-fadef23fda",Component:b},{id:"c-fb2126b5c2",Component:I}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,D as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as e}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:r,remountRoute:p,unmountRoute:m}=o({islands:[{id:"c-1b8b8de475",options:{},load:()=>import("./chunks/create-link-6d64a2d5f9ce6de0.js").then(n=>n.CreateLink)},{id:"c-34c6ed2333",Component:t}]});i();e()||r();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:r,unmountRoute:m});export{r as mountRoute,p as remountRoute,m as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as I}from"./chunks/composer-85e0ec7163ae18b7.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-681061023bdf0a49.js";import"./chunks/connect-repositories-0de82daaf654b1d3.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/notice-57db7a1f05b7308c.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/back-fa9d6e37f9828093.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as p,b as f,c,d as l,e as C,f as u}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as a,$1i as s}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as m}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as r,$2k as d}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as e}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:b,remountRoute:Y,unmountRoute:_}=n({islands:[{id:"c-23fe0b0a88",Component:r},{id:"c-30f2612e58",Component:a},{id:"c-332207ff19",Component:m},{id:"c-34c6ed2333",Component:t},{id:"c-3766284c27",Component:d},{id:"c-5db4008f94",Component:p},{id:"c-61c01e3efe",options:{},load:()=>import("./chunks/connect-apps-b73490e04ae6398d.js").then(o=>o.ConnectApps)},{id:"c-64acca4509",Component:f},{id:"c-725404fa88",Component:c},{id:"c-9f972f9b73",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-29c399e46b4e9e2b.js").then(o=>o.AgentsGrid)},{id:"c-a0ca15b5bd",Component:l},{id:"c-c2deb0b175",Component:C},{id:"c-e4fe842dbb",Component:s},{id:"c-fadef23fda",Component:I},{id:"c-fb2126b5c2",Component:u}]});i();e()||b();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:b,unmountRoute:_});export{b as mountRoute,Y as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as I}from"./chunks/back-fa9d6e37f9828093.js";import{a as s,b as p,c,d as f,e as l,f as C}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as a,$1i as d}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as e}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as i,$2k as r}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:b}=o({islands:[{id:"c-23fe0b0a88",Component:i},{id:"c-30f2612e58",Component:a},{id:"c-332207ff19",Component:e},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:r},{id:"c-5db4008f94",Component:s},{id:"c-64acca4509",Component:p},{id:"c-725404fa88",Component:c},{id:"c-a0ca15b5bd",Component:f},{id:"c-c2deb0b175",Component:l},{id:"c-c787744e37",Component:I},{id:"c-e4fe842dbb",Component:d},{id:"c-fb2126b5c2",Component:C}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:b});export{u as mountRoute,X as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as d,$1i as s}from"./chunks/shared-init-cc13a835f3508618.js";import{$3D as a,$3i as i}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as r,$2k as e}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:_}=o({islands:[{id:"c-02b35d4653",options:{},load:()=>import("./chunks/task-view-134186a544917ceb.js").then(b=>b.TaskView)},{id:"c-23fe0b0a88",Component:r},{id:"c-30f2612e58",Component:d},{id:"c-332207ff19",Component:i},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:e},{id:"c-5db4008f94",Component:p},{id:"c-64acca4509",Component:c},{id:"c-725404fa88",Component:f},{id:"c-93ef6ca41b",Component:a},{id:"c-a0ca15b5bd",Component:l},{id:"c-c2deb0b175",Component:C},{id:"c-e4fe842dbb",Component:s},{id:"c-fb2126b5c2",Component:I}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:_});export{u as mountRoute,X as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as R}from"./chunks/agent-toggle-ca98586e3b4ce9ae.js";import{a as _}from"./chunks/composer-85e0ec7163ae18b7.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-681061023bdf0a49.js";import"./chunks/connect-repositories-0de82daaf654b1d3.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/notice-57db7a1f05b7308c.js";import"./chunks/types-3eca2c7f47c46054.js";import{a as T}from"./chunks/back-fa9d6e37f9828093.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as c,b as l,c as C,d as I,e as u,f as b}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as p,$1i as f}from"./chunks/shared-init-cc13a835f3508618.js";import{$3C as s,$3i as e}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as m,$2k as d,$2l as r}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as a}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:g,remountRoute:j,unmountRoute:h}=t({islands:[{id:"c-20aaa4afd2",options:{},load:()=>import("./chunks/platform-actions-1d27d2ba7eee9ff1.js").then(o=>o.DriftQueue)},{id:"c-23fe0b0a88",Component:m},{id:"c-30f2612e58",Component:p},{id:"c-332207ff19",Component:e},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:d},{id:"c-50297fb16e",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-352a3222d878de0f.js").then(o=>o.TasksList)},{id:"c-5db4008f94",Component:c},{id:"c-64acca4509",Component:l},{id:"c-6520696115",options:{},load:()=>import("./chunks/composer-910bb87127972f62.js").then(o=>o.NewTaskButton)},{id:"c-725404fa88",Component:C},{id:"c-a0ca15b5bd",Component:I},{id:"c-a7239cabd6",options:{},load:()=>import("./chunks/platform-actions-1d27d2ba7eee9ff1.js").then(o=>o.PlatformActions)},{id:"c-aafc8bda2d",options:{},load:()=>import("./chunks/platform-actions-1d27d2ba7eee9ff1.js").then(o=>o.InstallButton)},{id:"c-af5e978b06",Component:r},{id:"c-c2deb0b175",Component:u},{id:"c-c83c3ef861",Component:R},{id:"c-d85dcffeb9",options:{},load:()=>import("./chunks/outcome-dialog-b219595be320108a.js").then(o=>o.OutcomeDialog)},{id:"c-dae477050b",Component:T},{id:"c-e15a0b3a60",Component:s},{id:"c-e4fe842dbb",Component:f},{id:"c-fadef23fda",Component:_},{id:"c-fb2126b5c2",Component:b}]});a();i()||g();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:g,unmountRoute:h});export{g as mountRoute,j as remountRoute,h as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as b}from"./chunks/agent-toggle-ca98586e3b4ce9ae.js";import"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as c,b as f,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as d,$1i as p}from"./chunks/shared-init-cc13a835f3508618.js";import{$3C as s,$3i as e}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as r,$2k as a}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:T,remountRoute:x,unmountRoute:_}=n({islands:[{id:"c-23fe0b0a88",Component:r},{id:"c-30f2612e58",Component:d},{id:"c-332207ff19",Component:e},{id:"c-34c6ed2333",Component:t},{id:"c-3766284c27",Component:a},{id:"c-50297fb16e",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-352a3222d878de0f.js").then(o=>o.TasksList)},{id:"c-5db4008f94",Component:c},{id:"c-64acca4509",Component:f},{id:"c-6520696115",options:{},load:()=>import("./chunks/composer-910bb87127972f62.js").then(o=>o.NewTaskButton)},{id:"c-725404fa88",Component:l},{id:"c-a0ca15b5bd",Component:u},{id:"c-c2deb0b175",Component:C},{id:"c-c83c3ef861",Component:b},{id:"c-e15a0b3a60",Component:s},{id:"c-e4fe842dbb",Component:p},{id:"c-fb2126b5c2",Component:I}]});m();i()||T();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:T,unmountRoute:_});export{T as mountRoute,x as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{b}from"./chunks/back-fa9d6e37f9828093.js";import{a as p,b as c,c as f,d as l,e as C,f as u}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as s,$1i as a}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as d}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as m,$2k as r}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as e}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:I,remountRoute:P,unmountRoute:R}=t({islands:[{id:"c-0aefda266d",options:{},load:()=>import("./chunks/models-list-12bc7aceaa52f5b0.js").then(o=>o.ModelsList)},{id:"c-13e5a52e5b",options:{},load:()=>import("./chunks/runners-list-36f8c5ecfcf8e9ae.js").then(o=>o.RunnersList)},{id:"c-170509135a",options:{},load:()=>import("./chunks/connections-list-c50f58b4b28d10bb.js").then(o=>o.ConnectionsList)},{id:"c-23fe0b0a88",Component:m},{id:"c-30f2612e58",Component:s},{id:"c-332207ff19",Component:d},{id:"c-34c6ed2333",Component:n},{id:"c-369363a923",options:{},load:()=>import("./chunks/secrets-list-d7dbafd24dd18481.js").then(o=>o.TaskSecrets)},{id:"c-3766284c27",Component:r},{id:"c-49d4bffdc4",options:{},load:()=>import("./chunks/credentials-list-bee95799b2319b3b.js").then(o=>o.EngineLogins)},{id:"c-5db4008f94",Component:p},{id:"c-64acca4509",Component:c},{id:"c-725404fa88",Component:f},{id:"c-a0ca15b5bd",Component:l},{id:"c-c2deb0b175",Component:C},{id:"c-c787744e37",Component:b},{id:"c-c9ddcc3ff9",options:{},load:()=>import("./chunks/credentials-list-bee95799b2319b3b.js").then(o=>o.CredentialsList)},{id:"c-d85dcffeb9",options:{},load:()=>import("./chunks/outcome-dialog-b219595be320108a.js").then(o=>o.OutcomeDialog)},{id:"c-e02eb20fc2",options:{},load:()=>import("./chunks/engines-list-2720c3e8fa12b2f7.js").then(o=>o.EnginesList)},{id:"c-e4fe842dbb",Component:a},{id:"c-fb2126b5c2",Component:u}]});e();i()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:R});export{I as mountRoute,P as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as b}from"./chunks/custom-range-a0630599f907b30e.js";import{a as T}from"./chunks/agent-toggle-ca98586e3b4ce9ae.js";import"./chunks/field-b82a0f895266791c.js";import"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as f,b as c,c as l,d as C,e as u,f as I}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as d,$1i as p}from"./chunks/shared-init-cc13a835f3508618.js";import{$3C as s,$3i as e}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as r,$2k as a}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:R,remountRoute:D,unmountRoute:_}=n({islands:[{id:"c-23fe0b0a88",Component:r},{id:"c-30f2612e58",Component:d},{id:"c-332207ff19",Component:e},{id:"c-34c6ed2333",Component:t},{id:"c-3766284c27",Component:a},{id:"c-50297fb16e",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-352a3222d878de0f.js").then(o=>o.TasksList)},{id:"c-5db4008f94",Component:f},{id:"c-64acca4509",Component:c},{id:"c-6520696115",options:{},load:()=>import("./chunks/composer-910bb87127972f62.js").then(o=>o.NewTaskButton)},{id:"c-725404fa88",Component:l},{id:"c-a0ca15b5bd",Component:C},{id:"c-af54f108b1",Component:b},{id:"c-c2deb0b175",Component:u},{id:"c-c83c3ef861",Component:T},{id:"c-e15a0b3a60",Component:s},{id:"c-e4fe842dbb",Component:p},{id:"c-fb2126b5c2",Component:I}]});m();i()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:_});export{R as mountRoute,D as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as d,$1i as s}from"./chunks/shared-init-cc13a835f3508618.js";import{$3D as a,$3i as i}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as r,$2k as e}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:_}=o({islands:[{id:"c-0f449496a8",options:{},load:()=>import("./chunks/editor-b9951819f21b2e43.js").then(b=>b.AgentEditor)},{id:"c-23fe0b0a88",Component:r},{id:"c-30f2612e58",Component:d},{id:"c-332207ff19",Component:i},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:e},{id:"c-5db4008f94",Component:p},{id:"c-64acca4509",Component:c},{id:"c-725404fa88",Component:f},{id:"c-93ef6ca41b",Component:a},{id:"c-a0ca15b5bd",Component:l},{id:"c-c2deb0b175",Component:C},{id:"c-e4fe842dbb",Component:s},{id:"c-fb2126b5c2",Component:I}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:_});export{u as mountRoute,X as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as s,b as p,c,d as f,e as l,f as C}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as a,$1i as d}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as m}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as e,$2k as r}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:u,remountRoute:P,unmountRoute:b}=o({islands:[{id:"c-1b8b8de475",options:{},load:()=>import("./chunks/create-link-6d64a2d5f9ce6de0.js").then(I=>I.CreateLink)},{id:"c-23fe0b0a88",Component:e},{id:"c-30f2612e58",Component:a},{id:"c-332207ff19",Component:m},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:r},{id:"c-5db4008f94",Component:s},{id:"c-64acca4509",Component:p},{id:"c-725404fa88",Component:c},{id:"c-a0ca15b5bd",Component:f},{id:"c-c2deb0b175",Component:l},{id:"c-e4fe842dbb",Component:d},{id:"c-fb2126b5c2",Component:C}]});i();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:b});export{u as mountRoute,P as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/agent-toggle-ca98586e3b4ce9ae.js";import"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as d,$1i as s}from"./chunks/shared-init-cc13a835f3508618.js";import{$3C as a,$3i as i}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as e,$2k as r}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:b,remountRoute:x,unmountRoute:R}=o({islands:[{id:"c-0f449496a8",options:{},load:()=>import("./chunks/editor-b9951819f21b2e43.js").then(_=>_.AgentEditor)},{id:"c-23fe0b0a88",Component:e},{id:"c-30f2612e58",Component:d},{id:"c-332207ff19",Component:i},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:r},{id:"c-5db4008f94",Component:p},{id:"c-64acca4509",Component:c},{id:"c-725404fa88",Component:f},{id:"c-a0ca15b5bd",Component:l},{id:"c-c2deb0b175",Component:C},{id:"c-c83c3ef861",Component:u},{id:"c-e15a0b3a60",Component:a},{id:"c-e4fe842dbb",Component:s},{id:"c-fb2126b5c2",Component:I}]});m();t()||b();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:b,unmountRoute:R});export{b as mountRoute,x as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as N,b as h,c as g,d as T,e as k,f as w}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1b as t,$1h as b,$1i as C}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as p}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as u,$2k as I}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$1a as e}from"./chunks/shared-init-f475017dd5811e33.js";import{$4a as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as d}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as l}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as f}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$3h as s,$3j as c}from"./chunks/shared-init-6e12333f12903a62-2.js";function _(){let[S,r]=s(!1),[a,i]=s(!1);c(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),r(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let E=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(t,"1"):localStorage.removeItem(t),o.checked=n,r(n),i(Notification.permission==="denied")};return e("label",{class:"notify",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:S,disabled:a,onChange:o=>void E(o.currentTarget)}),a?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:R,remountRoute:V,unmountRoute:v}=m({islands:[{id:"c-23fe0b0a88",Component:u},{id:"c-30f2612e58",Component:b},{id:"c-332207ff19",Component:p},{id:"c-34c6ed2333",Component:d},{id:"c-3766284c27",Component:I},{id:"c-412face415",Component:_},{id:"c-5db4008f94",Component:N},{id:"c-64acca4509",Component:h},{id:"c-725404fa88",Component:g},{id:"c-a0ca15b5bd",Component:T},{id:"c-c2deb0b175",Component:k},{id:"c-e4fe842dbb",Component:C},{id:"c-fb2126b5c2",Component:w}]});l();f()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:v});export{R as mountRoute,V as remountRoute,v as unmountRoute};
@@ -1 +0,0 @@
1
- import{a,b as d,c as s,d as p,e as c,f}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as r,$1i as e}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-cc13a835f3508618.js";import{$2j as i}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:l,remountRoute:h,unmountRoute:u}=o({islands:[{id:"c-23fe0b0a88",Component:i},{id:"c-30f2612e58",Component:r},{id:"c-34c6ed2333",Component:n},{id:"c-5db4008f94",Component:a},{id:"c-64acca4509",Component:d},{id:"c-725404fa88",Component:s},{id:"c-a0ca15b5bd",Component:p},{id:"c-c2deb0b175",Component:c},{id:"c-e4fe842dbb",Component:e},{id:"c-fb2126b5c2",Component:f}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,h as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/custom-range-a0630599f907b30e.js";import"./chunks/field-b82a0f895266791c.js";import{a as d,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as a,$1i as s}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as i}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as r,$2k as e}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as m}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:I,remountRoute:X,unmountRoute:b}=o({islands:[{id:"c-23fe0b0a88",Component:r},{id:"c-30f2612e58",Component:a},{id:"c-332207ff19",Component:i},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:e},{id:"c-5db4008f94",Component:d},{id:"c-64acca4509",Component:p},{id:"c-725404fa88",Component:f},{id:"c-a0ca15b5bd",Component:c},{id:"c-af54f108b1",Component:u},{id:"c-c2deb0b175",Component:l},{id:"c-e4fe842dbb",Component:s},{id:"c-fb2126b5c2",Component:C}]});m();t()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:b});export{I as mountRoute,X as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-ca98586e3b4ce9ae.js";import{a as b}from"./chunks/composer-85e0ec7163ae18b7.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-681061023bdf0a49.js";import"./chunks/connect-repositories-0de82daaf654b1d3.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/notice-57db7a1f05b7308c.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/back-fa9d6e37f9828093.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as f,b as c,c as l,d as C,e as I,f as u}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as s,$1i as p}from"./chunks/shared-init-cc13a835f3508618.js";import{$3C as d,$3i as m}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as r,$2k as a}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as e}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:_,remountRoute:B,unmountRoute:R}=n({islands:[{id:"c-118b215fcd",options:{},load:()=>import("./chunks/agent-settings-form-6e6a87d6e673daa8.js").then(o=>o.AgentSettingsForm)},{id:"c-23fe0b0a88",Component:r},{id:"c-30f2612e58",Component:s},{id:"c-332207ff19",Component:m},{id:"c-34c6ed2333",Component:t},{id:"c-3766284c27",Component:a},{id:"c-50297fb16e",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-352a3222d878de0f.js").then(o=>o.TasksList)},{id:"c-5db4008f94",Component:f},{id:"c-64acca4509",Component:c},{id:"c-6520696115",options:{},load:()=>import("./chunks/composer-910bb87127972f62.js").then(o=>o.NewTaskButton)},{id:"c-725404fa88",Component:l},{id:"c-a0ca15b5bd",Component:C},{id:"c-c2deb0b175",Component:I},{id:"c-c83c3ef861",Component:T},{id:"c-e15a0b3a60",Component:d},{id:"c-e4fe842dbb",Component:p},{id:"c-fadef23fda",Component:b},{id:"c-fb2126b5c2",Component:u}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,B as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{f as l,g as G}from"./chunks/list-d918f79562d497eb.js";import"./chunks/confirm-c29a1db0130638d2.js";import{a as u}from"./chunks/field-b82a0f895266791c.js";import"./chunks/defaults-52f30e83d7666f7a.js";import{a as N}from"./chunks/action-71685b2d5ad9f359.js";import"./chunks/format-a27067f0186e78ac.js";import{a as M,b as P,c as U,d as z,e as X,f as x}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as D,$1i as F}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as B}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as w,$2k as O,$2o as L}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import{$0a as A,$0c as S}from"./chunks/shared-init-f475017dd5811e33.js";import{$1L as p,$1N as E,$1a as e,$1t as k}from"./chunks/shared-init-f475017dd5811e33.js";import{$4a as h}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as y}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as _}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as T}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$3c as C,$3h as c,$3j as I,$3l as R,$3n as v}from"./chunks/shared-init-6e12333f12903a62-2.js";function W({row:o,product:r,unreachable:i,onClose:t}){let m=R(null),f=v(),[d,b]=c(!1);I(()=>m.current.showModal(),[]);let s=()=>!d&&m.current.close(),V=n=>{let g=a=>String(n.get(a)??"").trim()||void 0;b(!0),S.operator.setUp(o.integration,{name:g("name"),owner:g("owner")}).then(({url:a})=>{location.href=a}).catch(a=>{if(a instanceof A&&a.status===401)return location.reload();b(!1),N(a)})};return e("dialog",{ref:m,class:"create-dialog","aria-labelledby":f,onClose:t,onCancel:n=>{n.preventDefault(),s()},onClick:n=>n.target===n.currentTarget&&s(),children:e("form",{onSubmit:n=>{n.preventDefault(),V(new FormData(n.currentTarget))},children:[e("header",{children:[e("h2",{id:f,children:["Set up shared ",o.name," app"]}),e(E,{icon:k,label:"Close",onClick:s})]}),i?e("p",{class:"flash err",children:[o.name," cannot reach this server yet. Set a public address first: run the server with PUBLIC_URL set to an address ",o.name," can reach."]}):null,e("p",{class:"muted",children:["One app on ",o.name," serves the built-in agent in every workspace. People see its name on consent screens, as in ",r," wants to connect."]}),e(u,{label:"App name",children:e("input",{name:"name",defaultValue:r,autocomplete:"off",required:!0})}),o.organizationApps?e(u,{label:`${o.name} organization`,hint:"owns the app; leave empty to own it on your personal account",children:e("input",{name:"owner",placeholder:"your-org",autocomplete:"off"})}):null,e("div",{class:"actions",children:[e(p,{variant:"ghost",disabled:d,onClick:s,children:"Cancel"}),e(p,{type:"submit",disabled:i,loading:d,children:["Continue on ",o.name]})]})]})})}function q({first:o}){let[r,i]=c();return e(C,{children:[e(G,{title:"Built-in apps",count:o.platforms.length,children:o.platforms.map(t=>e(l,{title:t.name,badges:t.app?e(L,{tone:"ok",children:"set up"}):null,sub:t.app?t.app.name:"Not set up. Workspaces cannot add the built-in agent here.",actions:t.app?null:e(p,{variant:"secondary",size:"sm",onClick:()=>i(t),children:"Set up"})},t.integration))}),r?e(W,{row:r,product:o.name,unreachable:o.unreachable,onClose:()=>i(void 0)}):null]})}var{mountRoute:H,remountRoute:Se,unmountRoute:Z}=h({islands:[{id:"c-23fe0b0a88",Component:w},{id:"c-30f2612e58",Component:D},{id:"c-332207ff19",Component:B},{id:"c-34c6ed2333",Component:y},{id:"c-3766284c27",Component:O},{id:"c-5db4008f94",Component:M},{id:"c-64acca4509",Component:P},{id:"c-6fa396106d",Component:l},{id:"c-725404fa88",Component:U},{id:"c-a0ca15b5bd",Component:z},{id:"c-c2deb0b175",Component:X},{id:"c-e0d1393d34",Component:q},{id:"c-e4fe842dbb",Component:F},{id:"c-fb2126b5c2",Component:x}]});_();T()||H();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:H,unmountRoute:Z});export{H as mountRoute,Se as remountRoute,Z as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as d,b as p,c as f,d as c,e as l,f as u}from"./chunks/side-toggle-0aa237eba3dfe9c1.js";import{$1h as s,$1i as a}from"./chunks/shared-init-cc13a835f3508618.js";import{$3i as m}from"./chunks/shared-init-cc13a835f3508618.js";import{$2j as e,$2k as r}from"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/wular-pnext-6e12333f12903a62-0.js";import"./chunks/shared-init-cc13a835f3508618.js";import"./chunks/shared-init-f475017dd5811e33.js";import"./chunks/shared-init-f475017dd5811e33.js";import{$4a as o}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$1a as n}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$2c as i}from"./chunks/shared-init-6e12333f12903a62-2.js";import{$0i as t}from"./chunks/shared-init-6e12333f12903a62-2.js";import"./chunks/shared-init-6e12333f12903a62-2.js";var{mountRoute:C,remountRoute:P,unmountRoute:b}=o({islands:[{id:"c-23fe0b0a88",Component:e},{id:"c-30f2612e58",Component:s},{id:"c-332207ff19",Component:m},{id:"c-34c6ed2333",Component:n},{id:"c-3766284c27",Component:r},{id:"c-50297fb16e",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-352a3222d878de0f.js").then(I=>I.TasksList)},{id:"c-5db4008f94",Component:d},{id:"c-64acca4509",Component:p},{id:"c-725404fa88",Component:f},{id:"c-a0ca15b5bd",Component:c},{id:"c-c2deb0b175",Component:l},{id:"c-e4fe842dbb",Component:a},{id:"c-fb2126b5c2",Component:u}]});i();t()||C();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:C,unmountRoute:b});export{C as mountRoute,P as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{Wi as e,Xt as t,Zt as n,dn as r,qi as i}from"./core-DwsAMCnL.js";import{Qt as a,Xt as o,Zt as s,_t as c,cn as l,fn as u,hn as d,mn as f,on as p,pn as m,rn as h,sn as g,un as _}from"./errors-XBA-Ls4n.js";import{Zt as v}from"./output-D95NoAA9.js";import y from"node:path";import b from"node:process";import x from"node:os";var S=i({ISSUES_URL:()=>T,loadServerConfig:()=>M,requireBunServer:()=>P,rerunUnderBun:()=>F});const C=e=>s(o().check(h(),n()),e),w=_(l(f()),d(e=>e===`1`)),T=`https://github.com/muzam1l/coder/issues/new`,E=(e,n)=>f().check(t(e=>e.replace(/\/$/,``)),u(e=>URL.canParse(e),{error:`must be a URL`,abort:!0}),u(t=>e(new URL(t)),n)),D=e=>_(d(e=>e||void 0),e),O=_(f(),d((t,n)=>{try{let e=JSON.parse(t);if(e&&!Array.isArray(e)&&typeof e==`object`)return e}catch{}return n.issues.push({code:`custom`,message:`must be a JSON object`,input:t}),e})),k=g({AUTH_WULAR_URL:s(E(e=>e.protocol===`https:`||e.hostname===`localhost`,`must use HTTPS unless it is localhost`),`https://auth.wular.ai`)}),A=g({SERVER_LIMITS:D(l(_(O,m({principalPerMinute:l(p().check(h(),n())),authPerMinute:l(p().check(h(),n())),registerPerMinute:l(p().check(h(),n())),ipPerMinute:l(p().check(h(),n())),pairingPerMinute:l(p().check(h(),n())),concurrentTasks:l(p().check(h(),n()))})))),RUNNER:l(a([`local`,`local-docker`,`vercel-sandbox`,`github-actions`,`http`])),RUNNER_CONFIG:D(s(O,{})),WORK_DIR:l(f()),SERVER_ENCRYPTION_KEY:l(f()),SERVER_ENCRYPTION_KEY_PREVIOUS:l(f()),ADMIN_TOKEN:l(f()),PUBLIC_URL:D(l(E(e=>e.pathname===`/`&&!e.search&&!e.hash,`must be an origin, with no path, query or fragment`))),SERVER_NAME:l(f().check(r())),ISSUES_URL:D(l(E(()=>!0,`must be a URL`))),VERCEL_PROJECT_PRODUCTION_URL:l(f()),VERCEL_URL:l(f()),VERCEL:l(f()),DATABASE_URL:l(f()),POSTGRES_URL:l(f()),DATABASE_POOL_MAX:l(o().check(h(),n())),DATABASE_IDLE_TIMEOUT:l(o().check(h(),n())),MAX_TASKS:l(o().check(h(),n())),MAX_QUEUED:C(1e3),TASK_STALL:C(3e5),TASK_ATTEMPTS:C(2),TASK_TIMEOUT:C(18e5),CLAUDE_SUBSCRIPTIONS:w,CODEX_SUBSCRIPTIONS:w,SERVER_INTEGRATIONS:D(l(f())),SERVER_OPERATORS:D(l(f()))});function j(e,t){let n=e.safeParse(t);if(n.success)return n.data;let r=n.error.issues[0];throw new v(`invalid-option`,`Invalid server configuration:${String(r.path[0])} ${r.message}`)}function M(e=b.env,t=`node`){let n=j(A,e),r=n.DATABASE_URL??n.POSTGRES_URL,i=r?`postgres`:`memory`;if(i===`postgres`&&!n.SERVER_ENCRYPTION_KEY)throw new v(`invalid-option`,`SERVER_ENCRYPTION_KEY is required with DATABASE_URL`);let a=t===`vercel`?n.VERCEL_PROJECT_PRODUCTION_URL??n.VERCEL_URL:void 0,o=n.PUBLIC_URL??(a?`https://${a}`:void 0),s=i===`postgres`?j(k,e).AUTH_WULAR_URL:void 0;return{runner:n.RUNNER??(t===`vercel`||n.VERCEL?`vercel-sandbox`:`local`),store:i,workDir:n.WORK_DIR??y.join(x.tmpdir(),`coder`),...n.SERVER_ENCRYPTION_KEY?{encryptionKey:n.SERVER_ENCRYPTION_KEY}:{},...n.SERVER_ENCRYPTION_KEY_PREVIOUS?{previousEncryptionKey:n.SERVER_ENCRYPTION_KEY_PREVIOUS}:{},...n.ADMIN_TOKEN?{adminToken:n.ADMIN_TOKEN}:{},...o?{publicUrl:o}:{},...n.SERVER_NAME?{name:n.SERVER_NAME}:{},issuesUrl:n.ISSUES_URL??`https://github.com/muzam1l/coder/issues/new`,...r?{databaseUrl:r,databasePool:{max:n.DATABASE_POOL_MAX??(t===`vercel`||n.VERCEL?2:10),idleTimeout:n.DATABASE_IDLE_TIMEOUT??(t===`vercel`||n.VERCEL?30:240)}}:{},runnerConfig:n.RUNNER_CONFIG,maxTasks:n.MAX_TASKS,limits:n.SERVER_LIMITS,maxQueued:n.MAX_QUEUED,taskTimeoutMs:n.TASK_TIMEOUT,taskStallMs:n.TASK_STALL,taskAttempts:n.TASK_ATTEMPTS,...n.CLAUDE_SUBSCRIPTIONS||n.CODEX_SUBSCRIPTIONS?{subscriptions:{claude:n.CLAUDE_SUBSCRIPTIONS,codex:n.CODEX_SUBSCRIPTIONS}}:{},...s?{auth:{wular:{url:s}}}:{},...n.SERVER_INTEGRATIONS?{integrations:n.SERVER_INTEGRATIONS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{},...n.SERVER_OPERATORS?{operators:n.SERVER_OPERATORS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{}}}function N(){return new v(`invalid-option`,`The Coder server needs Bun; the CLI itself runs on Node.`,{hint:[b.platform===`win32`?`Install Bun: powershell -c "irm bun.sh/install.ps1 | iex"`:`Install Bun: curl -fsSL https://bun.sh/install | bash`,`Or with npm: npm install -g bun`,`Then run the command again. More: https://bun.sh/docs/installation`]})}function P(){if(typeof Bun>`u`)throw N()}async function F(){if(typeof Bun<`u`)return;let e=b.platform===`win32`?[`bun.exe`,`bun.cmd`,`bun`]:[`bun`];for(let t of e){let e=await c(t);if(e.error?.code!==`ENOENT`&&e.error?.code!==`EINVAL`){if(e.error)throw e.error;if(e.signal){let t=x.constants.signals[e.signal];b.exit(typeof t==`number`?128+t:1)}b.exit(e.status??1)}}throw N()}export{M as n,P as r,S as t};
@@ -1,10 +0,0 @@
1
- import{$t as e,Cr as t,Di as n,Ei as r,Er as i,Fi as a,Gr as o,Ir as s,Jr as c,Kn as l,Lr as u,Ni as d,Oi as f,Or as ee,Pn as te,Pr as ne,Rt as re,Tn as ie,Tr as ae,Ui as p,Ur as oe,Vr as se,Wt as ce,X as le,Yn as ue,Yr as de,Yt as fe,_i as pe,bi as me,br as he,er as ge,gn as _e,gt as ve,hr as ye,in as be,kr as xe,nt as Se,vi as Ce,vn as we,wr as Te,yi as Ee,yt as De,zi as Oe,zn as ke}from"./core-DwsAMCnL.js";import m from"node:path";import h from"node:process";import{fileURLToPath as Ae}from"node:url";import g from"node:fs";import{execFileSync as _,spawn as v,spawnSync as je}from"node:child_process";import{createHash as y,randomUUID as b}from"node:crypto";import x from"node:os";import Me from"node:net";import Ne from"node:readline";import{channel as Pe}from"node:diagnostics_channel";function Fe(e,t){return{type:e,props:t}}const Ie=Fe;function Le(e){return e.children}function Re(e){return e.children}const ze={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&apos;`},Be=(e,t)=>e.replace(t,e=>ze[e]);function S(e,t,n){if(e==null||typeof e==`boolean`)return;if(typeof e==`string`||typeof e==`number`){let r=String(e);n.push(t?Be(r,/[&<>]/g):r);return}if(Array.isArray(e)){for(let r of e)S(r,t,n);return}let{type:r,props:i}=e,a=i.children;if(r===Re)return i.value!==void 0&&S(JSON.stringify(i.value,null,2),!0,n),S(a,!0,n);if(typeof r==`function`)return S(r(i),t,n);let o=[];S(a,t,o);let s=Ve(o);if(!s.length&&!i.keep)return;let c=``;for(let e in i){let t=i[e];if(e!==`children`&&e!==`keep`&&t!=null){if(typeof t!=`string`&&typeof t!=`number`&&typeof t!=`boolean`)throw Error(`contextjsx: attribute ${e} on <${r}> must be a string, number or boolean`);c+=` ${e}="${Be(String(t),/[&<>"']/g)}"`}}n.push({name:r,attributes:c,children:s})}function Ve(e){let t=[],n=``,r=()=>{let e=n.trim();e&&t.push(e),n=``};for(let i of e)typeof i==`string`?n+=i:(r(),t.push(i));return r(),t}function He(e,t,n){return e.map(e=>typeof e==`string`?t?e.replace(/^(?=.)/gm,t):e:e.children.length?`${t}<${e.name}${e.attributes}>\n${He(e.children,t+n,n)}\n${t}</${e.name}>`:`${t}<${e.name}${e.attributes}/>`).join(`
2
- `)}function Ue(e,t={}){let n=[];return S(e,!1,n),He(Ve(n),``,` `.repeat(t.indent??1))}function We(e){return e}function Ge(e){return e}function Ke(e){return e}function qe(e){return e}function Je(e,t){if(!t)return``;if(!m.isAbsolute(t))return t;let n=m.relative(e,t);return n&&!n.startsWith(`..`)?n:t}function Ye(e){try{return JSON.parse(g.readFileSync(e,`utf8`))}catch{return null}}function Xe(e,t){g.mkdirSync(m.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.${b()}.tmp`;try{g.writeFileSync(n,t,{encoding:`utf8`,flag:`wx`}),g.renameSync(n,e)}finally{g.rmSync(n,{force:!0})}}function Ze(e,t){Xe(e,`${JSON.stringify(t,null,2)}\n`)}function Qe(e,t){if(g.mkdirSync(m.dirname(t),{recursive:!0}),g.existsSync(t))throw Object.assign(Error(`Directory already exists: ${t}`),{code:`EEXIST`});try{g.renameSync(e,t);return}catch(e){if(e.code!==`EXDEV`)throw e}let n=`${t}.${process.pid}.${b()}.tmp`;try{g.cpSync(e,n,{recursive:!0,preserveTimestamps:!0,verbatimSymlinks:!0,errorOnExist:!0,force:!1}),g.renameSync(n,t),g.rmSync(e,{recursive:!0})}finally{g.rmSync(n,{recursive:!0,force:!0})}}async function $e(e,t){if(await g.promises.mkdir(m.dirname(t),{recursive:!0}),await g.promises.lstat(t).catch(e=>{if(e.code!==`ENOENT`)throw e}))throw Object.assign(Error(`Directory already exists: ${t}`),{code:`EEXIST`});try{await g.promises.rename(e,t);return}catch(e){if(e.code!==`EXDEV`)throw e}let n=`${t}.${process.pid}.${b()}.tmp`;try{await g.promises.cp(e,n,{recursive:!0,preserveTimestamps:!0,verbatimSymlinks:!0,errorOnExist:!0,force:!1}),await g.promises.rename(n,t),await g.promises.rm(e,{recursive:!0})}finally{await g.promises.rm(n,{recursive:!0,force:!0})}}function et(e,t=0){let n=t,r=``;return()=>{let t;try{t=g.statSync(e).size}catch{return[]}if(t<n&&(n=0,r=``),t===n)return[];let i;try{i=g.openSync(e,`r`)}catch{return[]}try{let e=Buffer.alloc(t-n),a=g.readSync(i,e,0,e.length,n);n+=a;let o=(r+e.toString(`utf8`,0,a)).split(`
3
- `);return r=o.pop()??``,o.filter(Boolean)}finally{g.closeSync(i)}}}function C(e,t){let n=!1,r=!1,i=new Set,a=()=>{n=!0;for(let e of[...i])e()},o=e?setImmediate(()=>{a(),t?.(null)}):void 0,s;try{e&&(s=g.watch(e,{persistent:!1},(e,n)=>{a(),t?.(n)})),s?.on(`error`,a)}catch{}return{notify:a,wait(e,t){return r||n||t?.aborted||e<=0?(n=!1,Promise.resolve()):new Promise(r=>{let a=()=>{clearTimeout(o),t?.removeEventListener(`abort`,a),i.delete(a),n=!1,r()},o=setTimeout(a,e);i.add(a),t?.addEventListener(`abort`,a,{once:!0})})},async until(e,t,n,i=3e4){let a=Date.now()+t;try{for(;;){let t=await e();if(t!==void 0||r||Date.now()>=a||n?.aborted)return t;await this.wait(Math.min(i,a-Date.now()),n)}}finally{this.close()}},close(){r=!0,clearImmediate(o),s?.close();for(let e of[...i])e()}}}async function tt(e,t,n=3e4,r=1/0){g.mkdirSync(m.dirname(e),{recursive:!0});let i=g.mkdtempSync(`${e}-`),a=`${process.pid}-${b()}`;g.mkdirSync(m.join(i,a));let o=C(m.dirname(e)),s=Date.now()+r,c=!1,l;try{for(;!c;)try{if(g.existsSync(e))throw Object.assign(Error(`Lock is held`),{code:`EEXIST`});g.renameSync(i,e),c=!0}catch(t){if(![`EEXIST`,`ENOTEMPTY`,`ENOTDIR`].includes(t.code??``))throw t;try{let t=g.statSync(e).isFile(),r=t?[``]:g.readdirSync(e);for(let i of r){let r=t?e:m.join(e,i),a=Number(t?g.readFileSync(e,`utf8`):i.split(`-`)[0]),o=(!t||!a)&&Date.now()-g.statSync(r).mtimeMs>n;if(a)try{process.kill(a,0)}catch(e){o||=e.code===`ESRCH`}o&&(t?g.unlinkSync(r):g.rmdirSync(r))}!t&&(r.length||n===1/0||Date.now()-g.statSync(e).mtimeMs>n)&&g.rmdirSync(e)}catch{}if(Date.now()>=s)throw Error(`File lock wait timed out`);await o.wait(Math.min(3e4,n,s-Date.now()))}return l=setInterval(()=>{try{g.utimesSync(m.join(e,a),new Date,new Date)}catch{}},1e3),l.unref(),await t()}finally{if(o.close(),clearInterval(l),c){try{g.rmdirSync(m.join(e,a))}catch{}try{g.rmdirSync(e)}catch{}}else g.rmSync(i,{recursive:!0,force:!0})}}const w=p(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);oe.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>pe(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Ee(e,t,n),e.parseAsync=async(t,n)=>Ce(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>me(e,t,n),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]},{parent:!0}),e.with=e.check,e.clone=(t,n)=>r(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),nt=p(`ZodMiniString`,(e,t)=>{s.init(e,t),w.init(e,t)});function T(e){return be(nt,e)}const rt=p(`ZodMiniStringFormat`,(e,t)=>{u.init(e,t),nt.init(e,t)}),it=p(`ZodMiniURL`,(e,t)=>{o.init(e,t),rt.init(e,t)});function at(e){return we(it,e)}const ot=p(`ZodMiniNumber`,(e,t)=>{Te.init(e,t),w.init(e,t)});function st(e){return fe(ot,e)}const ct=p(`ZodMiniNumberFormat`,(e,t)=>{ae.init(e,t),ot.init(e,t)});function lt(e){return De(ct,e)}const ut=p(`ZodMiniBoolean`,(e,t)=>{ke.init(e,t),w.init(e,t)});function dt(e){return le(ut,e)}const ft=p(`ZodMiniUnknown`,(e,t)=>{de.init(e,t),w.init(e,t)});function pt(){return _e(ft)}const mt=p(`ZodMiniNever`,(e,t)=>{he.init(e,t),w.init(e,t)});function ht(e){return ce(mt,e)}const gt=p(`ZodMiniArray`,(e,t)=>{te.init(e,t),w.init(e,t)});function _t(e,t){return new gt({type:`array`,element:e,...d(t)})}const vt=p(`ZodMiniObject`,(e,t)=>{i.init(e,t),w.init(e,t),n(e,`shape`,()=>t.shape)});function yt(e,t){let n={type:`object`,shape:e??{},...d(t)};return new vt(n)}function bt(e,t){return new vt({type:`object`,shape:e,catchall:ht(),...d(t)})}function xt(e,t){return f(e,t)}function St(e,t){return a(Nt,e,t)}const Ct=p(`ZodMiniUnion`,(e,t)=>{c.init(e,t),w.init(e,t)});function wt(e,t){return new Ct({type:`union`,options:e,...d(t)})}const Tt=p(`ZodMiniRecord`,(e,t)=>{ne.init(e,t),w.init(e,t)});function Et(e,t,n){return!t||!t._zod?new Tt({type:`record`,keyType:T(),valueType:e,...d(t)}):new Tt({type:`record`,keyType:e,valueType:t,...d(n)})}const Dt=p(`ZodMiniEnum`,(e,t)=>{ge.init(e,t),w.init(e,t),e.options=Object.values(t.entries)});function Ot(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new Dt({type:`enum`,entries:n,...d(t)})}const kt=p(`ZodMiniLiteral`,(e,t)=>{ye.init(e,t),w.init(e,t)});function At(e,t){return new kt({type:`literal`,values:Array.isArray(e)?e:[e],...d(t)})}const jt=p(`ZodMiniTransform`,(e,t)=>{se.init(e,t),w.init(e,t)});function Mt(e){return new jt({type:`transform`,transform:e})}const Nt=p(`ZodMiniOptional`,(e,t)=>{ee.init(e,t),w.init(e,t)});function E(e){return new Nt({type:`optional`,innerType:e})}const Pt=p(`ZodMiniNullable`,(e,n)=>{t.init(e,n),w.init(e,n)});function Ft(e){return new Pt({type:`nullable`,innerType:e})}const It=p(`ZodMiniDefault`,(e,t)=>{ue.init(e,t),w.init(e,t)});function Lt(e,t){return new It({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Oe(t)}})}const Rt=p(`ZodMiniPipe`,(e,t)=>{xe.init(e,t),w.init(e,t)});function zt(e,t){return new Rt({type:`pipe`,in:e,out:t})}const Bt=p(`ZodMiniCustom`,(e,t)=>{l.init(e,t),w.init(e,t)});function Vt(t,n={}){return e(Bt,t,n)}const Ht=ie;function Ut(e){return Se(ot,e)}const D=T().check(re(1)),Wt=yt({access_token:D,token_type:T().check(Vt(e=>e.toLowerCase()===`bearer`)),refresh_token:E(D),expires_in:E(st().check(ve(0))),scope:E(T()),name:E(D),preferred_username:E(D),email:E(D)}),Gt=yt({error:D});function Kt(e){let t=new URL(e),n=t.hostname===`localhost`||t.hostname===`[::1]`||/^127\.(?:\d{1,3}\.){2}\d{1,3}$/.test(t.hostname);if(t.protocol!==`https:`&&!(t.protocol===`http:`&&n)||t.username||t.password||t.hash)throw Error(`OAuth URLs require HTTPS or loopback and no credentials or fragment.`);return t}async function qt(e,t,n={}){let r=Kt(t).origin;for(let i=0;i<5;i++){let i=await e(t,{...n,redirect:`manual`,signal:n.signal??AbortSignal.timeout(15e3)});if(i.status<300||i.status>=400)return i;let a=i.headers.get(`location`);if(!a)throw Error(`OAuth redirect has no location.`);let o=Kt(new URL(a,t).href);if(o.origin!==r)throw Error(`OAuth redirect changed origin.`);if(await i.body?.cancel(),i.status===303||(i.status===301||i.status===302)&&n.method===`POST`)throw Error(`OAuth redirect would discard the request body.`);t=o.href}throw Error(`Too many OAuth redirects.`)}function Jt(e,t){let n=new Headers({"content-type":`application/x-www-form-urlencoded`,accept:`application/json`}),r=e.tokenEndpointAuthMethod??(e.clientSecret?`client_secret_basic`:`none`);if(r!==`none`&&!e.clientSecret)throw Error(`OAuth client secret is missing.`);if(r===`client_secret_basic`){let t=e=>new URLSearchParams({v:e}).toString().slice(2);n.set(`authorization`,`Basic ${Buffer.from(`${t(e.clientId)}:${t(e.clientSecret)}`).toString(`base64`)}`)}else t.set(`client_id`,e.clientId),r===`client_secret_post`&&t.set(`client_secret`,e.clientSecret);return n}async function Yt(e,t,n){n.set(`resource`,t.resource);let r=Jt(t,n),i=await qt(e,t.tokenEndpoint,{method:`POST`,headers:r,body:n}),a=await i.json();if(!i.ok){let e=Gt.safeParse(a);throw n.get(`grant_type`)===`refresh_token`&&i.status>=400&&i.status<500&&e.success&&[`invalid_grant`,`invalid_client`].includes(e.data.error)?new O(`The OAuth connection must be reconnected.`):Error(`OAuth token request failed.`)}return Wt.parse(a)}function Xt(e,t,n){return{...e,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,expiresAt:t.expires_in===void 0?void 0:n+t.expires_in*1e3,scope:t.scope??e.scope}}async function Zt(e){let{secret:t,now:n}=e;if(!e.force&&t.accessToken&&(t.expiresAt===void 0?!t.refreshToken:t.expiresAt-n>=6e4))return t.accessToken;if(!t.refreshToken)throw new O(`The OAuth connection must be reconnected.`);let r=Xt(t,await Yt(e.fetch,t,new URLSearchParams({grant_type:`refresh_token`,refresh_token:t.refreshToken})),n);return await e.save(r),r.accessToken}var O=class extends Error{},k=class extends Error{authenticate;constructor(e,t){super(e),this.authenticate=t}};function A(e){return/^[A-Z][A-Z0-9_]*$/.test(e)&&!/^(CODER_|CODEX_|LD_|DYLD_|GIT_|APP_TOKEN(?:_|$))/.test(e)&&![`PATH`,`HOME`,`SHELL`,`USER`,`PWD`,`TMPDIR`,`NODE_OPTIONS`,`NODE_PATH`,`BASH_ENV`,`ENV`,`OPENAI_API_KEY`,`ANTHROPIC_API_KEY`,`CLAUDE_CODE_OAUTH_TOKEN`,`CODEX_AUTH_JSON`,`CODEX_HOME`,`CLAUDE_CONFIG_DIR`,`OPENAI_BASE_URL`,`ANTHROPIC_BASE_URL`].includes(e)}function Qt(e,t){return t?e?t.filter(t=>e.includes(t)):t:e}function $t(e){let t=new Set,n=new Set;for(let r of e){if(r.provider!==`env`||!r.keyIn||!(`env`in r.keyIn))continue;let e=r.keyIn.env;t.has(e)&&n.add(e),t.add(e)}return n}function j(e=process.env){let t=JSON.parse(e.CODER_CONNECTION_ENV_VALUES??`{}`);return Object.fromEntries(Object.entries(t).filter(e=>A(e[0])&&typeof e[1]==`string`))}function en(e=process.env){let t=Object.entries(j(e)).sort(([e],[t])=>e.localeCompare(t));return t.length?y(`sha256`).update(JSON.stringify(t)).digest(`hex`):void 0}function M(e=process.env){return{...Object.fromEntries(Object.entries(e).filter(([e])=>!e.startsWith(`CODER_CONNECTION_`)&&e!==`CODER_MCP_CONNECTION_ENV`)),...Object.fromEntries(Object.entries(j(e)).filter(([t])=>e[t]===void 0))}}function tn(e){let t={};for(let n of Object.values(e))for(let[e,r]of Object.entries(n.env??{}))t[e]=Object.hasOwn(t,e)?null:r;return t}const nn=e=>e instanceof k||e instanceof O,N=(e,t)=>nn(t)?`${e} needs reconnecting.`:`${e} is temporarily unavailable; skipped for this task.`;function rn(e){if(e.status===401||e.status===403)throw new k(`MCP credential was refused`,e.headers.get(`www-authenticate`)??void 0);if(!e.ok)throw Error(`MCP did not answer`)}const an=e=>/^[a-zA-Z0-9_.-]{1,128}$/.test(e);function on(e,t){return!e.username&&!e.password&&(t||!/^(?:(?:[a-z0-9_-]+\.)*localhost\.?|127\.\d+\.\d+\.\d+|\[::1\]|\[::ffff:7f[0-9a-f]{2}:[0-9a-f]{1,4}\])$/i.test(e.hostname))&&(e.protocol===`https:`||e.protocol===`http:`&&[`localhost`,`127.0.0.1`,`[::1]`].includes(e.hostname))}function P(e,t){try{return JSON.parse(g.readFileSync(e,`utf8`))}catch(e){if(e.code===`ENOENT`)return t;throw e}}function F(e,t){g.mkdirSync(m.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.tmp`;try{g.writeFileSync(n,`${JSON.stringify(t,null,2)}\n`,{mode:384}),g.chmodSync(n,384),g.renameSync(n,e)}finally{g.rmSync(n,{force:!0})}}var sn=class{secrets;file;credentialFile;lock;constructor(e=H(),t=process.platform,n){this.file=m.join(e,`connections.json`),this.credentialFile=m.join(e,`local-credentials.json`),this.lock=m.join(e,`state`,`global`,`connections.lock`);let r=m.join(e,`credentials.json`);this.secrets=n??(t===`darwin`?{get(e){try{return _(`security`,[`find-generic-password`,`-s`,`coder`,`-a`,e,`-w`],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}).trimEnd()}catch(e){if(e.status===44)return;throw Error(`Could not read the connection keychain`)}},put(e,t){try{let n=e=>`"`+e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`)+`"`;if(/[\r\n\0]/.test(e+t))throw Error(`Invalid keychain value`);_(`security`,[`-i`],{input:`add-generic-password -U -s coder -a ${n(e)} -w ${n(t)}\n`,stdio:[`pipe`,`pipe`,`pipe`]})}catch{throw Error(`Could not save the connection keychain`)}},delete(e){try{_(`security`,[`delete-generic-password`,`-s`,`coder`,`-a`,e],{stdio:[`ignore`,`pipe`,`pipe`]})}catch(e){if(e.status!==44)throw Error(`Could not remove the connection keychain`)}}}:{get:e=>P(r,{})[e],put(e,t){F(r,{...P(r,{}),[e]:t})},delete(e){let t=P(r,{});delete t[e],F(r,t)}})}async withLock(e,t){return tt(t===void 0?this.lock:`${this.lock}-${y(`sha256`).update(t).digest(`hex`)}`,e)}list(){return Object.values(P(this.file,{}))}get(e){let t=this.list().find(t=>t.id===e);if(!t)return;let n;try{n=t.auth===`none`?void 0:this.secrets.get(e)}catch{return{...t,broken:{at:Date.now(),reason:`Needs reconnecting`}}}return{...t,...n?{secret:n}:{}}}put(e){if(e.provider===`env`&&(e.auth!==`key`||e.access!==`write`||e.endpoint||e.secret||!e.credential||!e.keyIn||!(`env`in e.keyIn)||!A(e.keyIn.env)))throw Error(`Invalid environment connection`);let{secret:t,...n}=e,r=P(this.file,{});t?this.secrets.put(e.id,t):r[e.id]?.auth!==`none`&&r[e.id]&&this.secrets.delete(e.id),r[e.id]=n,F(this.file,r)}delete(e){let t=P(this.file,{}),n=t[e]&&t[e].auth!==`none`;delete t[e],F(this.file,t),n&&this.secrets.delete(e)}credentials(){return Object.entries(P(this.credentialFile,{})).flatMap(([e,t])=>{let n=this.secrets.get(`credential/${e}`);return n?[{id:e,value:{...t,...JSON.parse(n)}}]:[]})}credential(e){let t=P(this.credentialFile,{})[e];if(!t)return;let n=this.secrets.get(`credential/${e}`);return n?{...t,...JSON.parse(n)}:void 0}putCredential(e,t){let{iv:n,tag:r,ciphertext:i,...a}=t;this.secrets.put(`credential/${e}`,JSON.stringify({iv:n,tag:r,ciphertext:i})),F(this.credentialFile,{...P(this.credentialFile,{}),[e]:a})}deleteCredential(e){let t=P(this.credentialFile,{});delete t[e],F(this.credentialFile,t),this.secrets.delete(`credential/${e}`)}};async function cn(e,t=fetch,n){let r=`2025-11-25`,i=e=>n?Promise.race([e,new Promise((e,t)=>{let r=()=>t(n.reason??Error(`MCP startup timed out`));n.aborted&&r(),n.addEventListener(`abort`,r,{once:!0})})]):e,a=await i(e.command?ln(e):un(e,t,()=>r)),o=1,s=(e,t,n)=>a.rpc(e,t,o++,n),c,l={initialize:()=>c??=i(s(`initialize`,{protocolVersion:r,capabilities:{},clientInfo:{name:`coder`,version:`1`}},n).then(async e=>{r=e?.protocolVersion??r,await a.rpc(`notifications/initialized`)})),async tools(){await l.initialize();let e=[],t=new Set,r;do{let a=await i(s(`tools/list`,r===void 0?{}:{cursor:r},n));if(!Array.isArray(a?.tools))throw Error(`Invalid tools`);if(e.push(...a.tools.filter(e=>typeof e.name==`string`)),r=a.nextCursor,r!==void 0){if(typeof r!=`string`||t.has(r))throw Error(`Invalid tools cursor`);t.add(r)}}while(r!==void 0);return e},close:()=>a.close()};return l}async function ln(e){let{spawn:t}=await import(`node:child_process`),n=await import(`node:readline`),r=t(e.command,e.args??[],{env:{...process.env,...e.env},stdio:[`pipe`,`pipe`,`inherit`]}),i=new Map,a,o=e=>{a=e;for(let t of i.values())t.reject(e);i.clear()};return r.once(`error`,t=>o(Error(`MCP server ${e.name} could not start: ${t.message}`))),r.once(`close`,t=>o(Error(`MCP server ${e.name} exited with status ${t}`))),r.stdin.on(`error`,o),n.createInterface({input:r.stdout,terminal:!1}).on(`line`,e=>{let t;try{t=JSON.parse(e)}catch{return}let n=t.id===void 0?void 0:i.get(t.id);n&&(i.delete(t.id),t.error?n.reject(Error(t.error.message??`MCP error`)):n.resolve(t.result))}),{rpc(e,t,n,o){if(a)return Promise.reject(a);let s=n===void 0?Promise.resolve(void 0):new Promise((e,t)=>i.set(n,{resolve:e,reject:t}));return r.stdin.write(`${JSON.stringify({jsonrpc:`2.0`,method:e,...n===void 0?{}:{id:n},...t?{params:t}:{}})}\n`),s},async close(){r.stdin.end(),r.kill()}}}async function un(e,t,n){let r,i=()=>({...e.headers,"mcp-protocol-version":n(),...r?{"mcp-session-id":r}:{}});return{async rpc(n,a,o,s){let c=await t(e.url,{method:`POST`,redirect:`manual`,...s?{signal:s}:{},headers:{...i(),"content-type":`application/json`,accept:`application/json, text/event-stream`},body:JSON.stringify({jsonrpc:`2.0`,method:n,...o===void 0?{}:{id:o},...a?{params:a}:{}})});if(rn(c),r=c.headers.get(`mcp-session-id`)??r,o===void 0){await c.body?.cancel();return}let l=await c.text(),u=(c.headers.get(`content-type`)?.includes(`text/event-stream`)?l.split(/\r?\n\r?\n/).flatMap(e=>{let t=e.split(/\r?\n/).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
4
- `);return t?[JSON.parse(t)]:[]}):[JSON.parse(l)]).find(e=>e.id===o);if(!u?.result||u.error)throw Error(`Invalid MCP response`);return u.result},async close(){r&&await t(e.url,{method:`DELETE`,redirect:`manual`,headers:i()}).then(e=>e.body?.cancel()).catch(()=>{})}}}async function dn(e,t,n=fetch){if(!e.endpoint)throw Error(`Missing endpoint`);let r={...e.endpoint,name:e.id};if(t)if(r.command){if(!e.keyIn||!(`env`in e.keyIn))throw Error(`Missing key env`);r.env={...r.env,[e.keyIn.env]:t},r.credentialFields={env:e.keyIn.env}}else{let n=e.keyIn&&`header`in e.keyIn?e.keyIn.header:`Authorization`;r.headers={...r.headers,[n]:n.toLowerCase()===`authorization`?`Bearer ${t}`:t},r.credentialFields={header:n}}if(r.command){if(e.access===`read`&&!r.tools?.length)throw Error(`Read-only requires tools`);return r}let i=await cn(r,n,AbortSignal.timeout(5e3));try{return await i.initialize(),e.access===`write`?r:(r.tools=(await i.tools()).filter(t=>an(t.name)&&t.annotations?.readOnlyHint===!0&&(!e.endpoint?.tools?.length||e.endpoint.tools.includes(t.name))).map(e=>e.name),r.tools.length?r:void 0)}finally{await i.close()}}function fn(e,t={}){let n=new Set(mn()),r=Object.keys(t).length?{CODER_CONNECTION_ENV_VALUES:JSON.stringify(t)}:{};return{mcp:Object.fromEntries(Object.entries(e).map(([e,t])=>{let{credentialFields:i,...a}=t,o=a=>t[a]&&Object.fromEntries(Object.entries(t[a]).map(([t,o])=>{if(!(t===i?.[a===`env`?`env`:`header`]||n.has(o)))return[t,o];let s=`CODER_CONNECTION_${y(`sha256`).update(`${e}:${a}:${t}`).digest(`hex`).slice(0,24).toUpperCase()}`;return r[s]=o,[t,"${"+s+`}`]}));return[e,{...a,...t.env?{env:o(`env`)}:{},...t.headers?{headers:o(`headers`)}:{}}]})),env:r}}async function pn(e,t,n=new sn,r=`write`){let i=t??n.list().filter(t=>!t.owner&&(e===void 0||e.includes(t.id))).map(e=>e.id),a={},o={},s=[],c=$t(n.list().filter(e=>i.includes(e.id)&&!e.owner));return await Promise.all(i.map(async e=>{let t=n.get(e);if(!t||t.owner||![`mcp`,`env`].includes(t.provider))return;if(t.provider===`env`&&(t.auth!==`key`||t.access!==`write`||t.endpoint||!t.credential||!t.keyIn||!(`env`in t.keyIn)||!A(t.keyIn.env)||c.has(t.keyIn.env)||process.env[t.keyIn.env]!==void 0)){s.push(N(t.name,Error(`Invalid environment connection`)));return}if(t.broken){s.push(`${t.name} needs reconnecting.`);return}if(t.provider===`env`){let e=t.keyIn.env;try{let r=n.credential(t.credential),i=r?.iv===`plain`?JSON.parse(Buffer.from(r.ciphertext,`base64`).toString(`utf8`)).env[e]:void 0;if(!i)throw Error(`Missing credential`);o[e]=i}catch(e){s.push(N(t.name,e))}return}let i=async(r=!1,i)=>n.withLock(async()=>{let a=n.get(e);if(!a||a.owner||a.broken||a.auth!==t.auth)throw Error(`Connection changed during resolution`);if(t=a,!a.secret)throw Error(`Missing credential`);let o=a.secret.startsWith(`plain.`)?JSON.parse(Buffer.from(a.secret.slice(6),`base64`).toString(`utf8`)):{key:a.secret};return a.auth===`key`?o.key:Zt({secret:o,fetch,now:Date.now(),force:r&&o.accessToken===i,save:async t=>n.withLock(async()=>{let r=n.get(e);if(!r||r.secret!==a.secret||r.auth!==a.auth||r.owner!==a.owner)throw Error(`Connection changed during refresh`);a.secret=`plain.${Buffer.from(JSON.stringify(t)).toString(`base64`)}`,n.put(a)})})},e);try{let n=t.auth===`none`?void 0:await i();if(t.auth!==`none`&&!n)throw Error(`Missing credential`);let o;try{o=await dn({...t,access:t.access??r},n)}catch(e){if(!(e instanceof k)||t.auth!==`oauth`)throw e;n=await i(!0,n),o=await dn({...t,access:t.access??r},n)}o&&(a[e]={...o,description:t.name,access:t.access??r})}catch(r){nn(r)&&await n.withLock(async()=>{let r=n.get(e);r&&r.secret===t.secret&&n.put({...r,broken:{at:Date.now(),reason:`Needs reconnecting`}})}),s.push(N(t.name,r))}})),{...fn(a,o),ids:i,warnings:s}}function mn(){return Object.entries(process.env).filter(([e,t])=>/^CODER_CONNECTION_[A-F0-9]{24}$/.test(e)&&t).flatMap(([,e])=>[e,...e.startsWith(`Bearer `)?[e.slice(7)]:[]])}function hn(e,t=[]){let n=Object.entries(j()).filter(([,e])=>e.length>=8).map(([e,t])=>[t,`[${e}]`]),r=[...t,...mn()].filter(Boolean).map(e=>[e,`[REDACTED]`]),i=[...n,...r].sort(([e],[t])=>t.length-e.length);return JSON.stringify(e,(e,t)=>typeof t==`string`?i.reduce((e,[t,n])=>e.replaceAll(t,n),t):t)}function gn(e){return String(e??``).replace(/[^A-Za-z0-9._-]/g,`-`).replace(/^-+|-+$/g,``)}function _n(e,t=h.platform){return t===`win32`?`pipe:\\\\.\\pipe\\${gn(`${m.win32.basename(e)}-codex-app-server`)}`:`unix:${m.join(e,`broker.sock`)}`}function I(e){if(typeof e!=`string`||e.length===0)throw Error(`Missing broker endpoint.`);if(e.startsWith(`pipe:`)){let t=e.slice(5);if(!t)throw Error(`Broker pipe endpoint is missing its path.`);return{kind:`pipe`,path:t}}if(e.startsWith(`unix:`)){let t=e.slice(5);if(!t)throw Error(`Broker Unix socket endpoint is missing its path.`);return{kind:`unix`,path:t}}throw Error(`Unsupported broker endpoint: ${e}`)}function vn(){let e=m.dirname(Ae(import.meta.url));for(let t=0;t<10;t++){let t=m.join(e,`package.json`);try{if(JSON.parse(g.readFileSync(t,`utf8`)).name===`@wular/coder`)return e}catch{}let n=m.dirname(e);if(n===e)break;e=n}return m.resolve(m.dirname(Ae(import.meta.url)),`..`)}const L=vn(),yn=g.existsSync(m.join(L,`dist/cli.js`))?m.join(L,`dist/cli.js`):m.join(L,`src/cli.ts`);function bn(){try{return JSON.parse(g.readFileSync(m.join(L,`package.json`),`utf8`)).version??`unknown`}catch{return`unknown`}}function xn(e){try{return JSON.parse(g.readFileSync(e,`utf8`)).version??null}catch{return null}}function Sn(){return L}const Cn={false:`broker.json`,true:`broker-network.json`};function wn(e=`coder-`){return g.mkdtempSync(m.join(x.tmpdir(),e))}function Tn(e){let t=I(e);return Me.createConnection({path:t.path})}async function En(e,t=2e3){let n=I(e);return!!await C(m.dirname(n.path)).until(()=>new Promise(t=>{let n=Tn(e);n.on(`connect`,()=>{n.end(),t(!0)}),n.on(`error`,()=>t(void 0))}),t,void 0,n.kind===`pipe`?250:1e3)}function Dn({scriptPath:e,cwd:t,endpoint:n,pidFile:r,logFile:i,networkAccess:a=!1,env:o=h.env}){let s=g.openSync(i,`a`),c=v(h.execPath,[e,`serve`,`--endpoint`,n,`--cwd`,t,`--pid-file`,r,`--network-access`,String(a)],{cwd:t,env:{...M(o),...o.CODER_CONNECTION_ENV_VALUES?{CODER_CONNECTION_ENV_VALUES:o.CODER_CONNECTION_ENV_VALUES}:{}},detached:!0,stdio:[`ignore`,s,s]});return c.unref(),g.closeSync(s),c}function On(){let e=[new URL(`./lib/broker.js`,import.meta.url),new URL(`./main.js`,import.meta.url)];for(let t of e){let e=Ae(t);if(g.existsSync(e))return e}throw Error("Coder broker script not found next to the runtime. Rebuild with `bun run build`.")}function kn(e,t=!1,n){let r=Cn[t?`true`:`false`];return m.join(W(e),n?r.replace(`.json`,`-${n}.json`):r)}function R(e,t=!1,n){let r=kn(e,t,n);if(!g.existsSync(r))return null;try{let e=JSON.parse(g.readFileSync(r,`utf8`));return(e.networkAccess??!1)===t?e:null}catch{return null}}function An(e){let t=W(e),n;try{n=g.readdirSync(t)}catch{return[]}return n.flatMap(e=>{if(!/^broker(?:-network)?(?:-[a-f0-9]{64})?\.json$/.test(e))return[];try{let n=JSON.parse(g.readFileSync(m.join(t,e),`utf8`));return typeof n.endpoint==`string`?[n]:[]}catch{return[]}})}function jn(e,t,n=t.networkAccess??!1,r){let i=W(e);g.mkdirSync(i,{recursive:!0}),g.writeFileSync(kn(e,n,r),`${JSON.stringify(t,null,2)}\n`,`utf8`)}function Mn(e,t=!1,n){let r=kn(e,t,n);g.existsSync(r)&&g.unlinkSync(r)}async function Nn(e){if(!e)return!1;try{return await En(e,150)}catch{return!1}}async function Pn(e,t={}){let n=t.scriptPath??On(),r=bn(),i=t.networkAccess??!1,a=R(e,i,t.connectionKey),o=a?.version===r&&a?.scriptPath===n&&(a?.networkAccess??!1)===i;if(a&&o&&await Nn(a.endpoint))return a;a&&(Fn({endpoint:a.endpoint??null,pidFile:a.pidFile??null,logFile:a.logFile??null,sessionDir:a.sessionDir??null,pid:a.pid??null,killProcess:t.killProcess??null}),Mn(e,i,t.connectionKey));let s=wn(),c=(t.createBrokerEndpoint??_n)(s,t.platform),l=m.join(s,`broker.pid`),u=m.join(s,`broker.log`),d=Dn({scriptPath:n,cwd:e,endpoint:c,pidFile:l,logFile:u,networkAccess:i,env:t.env??h.env});if(!await En(c,t.timeoutMs??2e3))return Fn({endpoint:c,pidFile:l,logFile:u,sessionDir:s,pid:d.pid??null,killProcess:t.killProcess??null}),null;let f={endpoint:c,pidFile:l,logFile:u,sessionDir:s,pid:d.pid??null,networkAccess:i,version:r,scriptPath:n};return jn(e,f,i,t.connectionKey),f}function Fn({endpoint:e=null,pidFile:t,logFile:n,sessionDir:r=null,pid:i=null,killProcess:a=null}){if(Number.isFinite(i)&&a)try{a(i)}catch{}if(t&&g.existsSync(t)&&g.unlinkSync(t),n&&g.existsSync(n)&&g.unlinkSync(n),e)try{let t=I(e);t.kind===`unix`&&g.existsSync(t.path)&&g.unlinkSync(t.path)}catch{}let o=r??(t?m.dirname(t):n?m.dirname(n):null);if(o&&g.existsSync(o))try{g.rmdirSync(o)}catch{}}function z(e,t){let n=Pe(`coder.timing`);n.hasSubscribers&&n.publish({at:Date.now(),pid:h.pid,stage:e,...t})}function In(e,t=[],n={}){let r=je(e,t,{cwd:n.cwd,env:n.env,encoding:`utf8`,input:n.input,maxBuffer:n.maxBuffer,stdio:n.stdio??`pipe`,shell:h.platform===`win32`?h.env.SHELL||!0:!1,windowsHide:!0});return{command:e,args:t,status:r.status??0,signal:r.signal??null,stdout:r.stdout??``,stderr:r.stderr??``,error:r.error??null}}function Ln(e,t=[`--version`],n={}){let r=In(e,t,n);return r.error&&r.error.code===`ENOENT`?{available:!1,detail:`not found`}:r.error?{available:!1,detail:r.error.message}:r.status===0?{available:!0,detail:r.stdout.trim()||r.stderr.trim()||`ok`}:{available:!1,detail:r.stderr.trim()||r.stdout.trim()||`exit ${r.status}`}}function Rn(e){return new Promise(t=>{let n=v(e,h.argv.slice(1),{env:h.env,shell:!1,stdio:`inherit`}),r=()=>n.kill(`SIGINT`),i=()=>n.kill(`SIGTERM`);h.once(`SIGINT`,r),h.once(`SIGTERM`,i);let a=e=>{h.off(`SIGINT`,r),h.off(`SIGTERM`,i),t(e)};n.once(`error`,e=>a({error:e,status:null,signal:null})),n.once(`close`,(e,t)=>a({status:e,signal:t}))})}const zn=`CODER_APP_SERVER_ENDPOINT`,Bn=-32001,Vn=`coder/notice`,Hn=`coder/appServerExited`,Un=`broker/recycle`;function Wn(){return{title:`Coder`,name:`coder`,version:bn()}}const Gn={experimentalApi:!0,requestAttestation:!1,optOutNotificationMethods:[`item/agentMessage/delta`,`item/reasoning/summaryTextDelta`,`item/reasoning/summaryPartAdded`,`item/reasoning/textDelta`]};function Kn(e,t,n){return n===void 0?{code:e,message:t}:{code:e,message:t,data:n}}function B(e,t){let n=Error(e);return n.data=t,t?.code!==void 0&&(n.rpcCode=t.code),n}var qn=class{cwd;options;pending;nextId;stderr;closed;exitError;notificationHandler;serverRequestHandler;noticeHandler;lineBuffer;transport;exitPromise;exitResolved;resolveExit;handleServerRequest;constructor(e,t={}){this.cwd=e,this.options=t,this.pending=new Map,this.nextId=1,this.stderr=``,this.closed=!1,this.exitError=null,this.notificationHandler=null,this.serverRequestHandler=null,this.noticeHandler=null,this.lineBuffer=``,this.transport=`unknown`,this.handleServerRequest=e=>this.defaultHandleServerRequest(e),this.exitPromise=new Promise(e=>{this.resolveExit=e})}setNotificationHandler(e){this.notificationHandler=e}setServerRequestHandler(e){this.serverRequestHandler=e}setNoticeHandler(e){this.noticeHandler=e}request(e,t){if(this.closed)throw Error(`codex app-server client is closed.`);if(this.exitResolved)return Promise.reject(this.exitError??Error(`codex app-server connection closed.`));let n=this.nextId;return this.nextId+=1,new Promise((r,i)=>{this.pending.set(n,{resolve:r,reject:i,method:e}),this.sendMessage({id:n,method:e,params:t})})}notify(e,t={}){this.closed||this.sendMessage({method:e,params:t})}handleChunk(e){this.lineBuffer+=e;let t=this.lineBuffer.indexOf(`
5
- `);for(;t!==-1;){let e=this.lineBuffer.slice(0,t);this.lineBuffer=this.lineBuffer.slice(t+1),this.handleLine(e),t=this.lineBuffer.indexOf(`
6
- `)}}handleLine(e){if(!e.trim())return;let t;try{t=JSON.parse(e)}catch(t){this.handleExit(B(`Failed to parse codex app-server JSONL: ${t instanceof Error?t.message:String(t)}`,{line:e}));return}if(t.id!==void 0&&t.method){this.handleServerRequest(t);return}if(t.id!==void 0){let e=this.pending.get(t.id);if(!e)return;this.pending.delete(t.id),t.error?e.reject(B(t.error.message??`codex app-server ${e.method} failed.`,t.error)):e.resolve(t.result??{});return}if(t.method===`coder/notice`){this.noticeHandler?.(String(t.params?.message??``));return}if(t.method===`coder/appServerExited`){this.handleExit(B(String(t.params?.message??`codex app-server exited.`)));return}t.method&&this.notificationHandler&&this.notificationHandler(t)}defaultHandleServerRequest(e){let t=this.serverRequestHandler;if(!t){this.sendMessage({id:e.id,error:Kn(-32601,`Unsupported server request: ${e.method}`)});return}Promise.resolve().then(()=>t(e.method,e.params??{})).then(t=>{this.sendMessage({id:e.id,result:t??{}})}).catch(t=>{this.sendMessage({id:e.id,error:Kn(-32e3,t instanceof Error?t.message:String(t))})})}handleExit(e){if(!this.exitResolved){this.exitResolved=!0,this.exitError=e??null;for(let e of this.pending.values())e.reject(this.exitError??Error(`codex app-server connection closed.`));this.pending.clear(),this.resolveExit(void 0)}}sendMessage(e){throw Error(`sendMessage must be implemented by subclasses.`)}},Jn=class extends qn{proc;readline;constructor(e,t={}){super(e,t),this.transport=`direct`}async initialize(){let e=this.options.networkAccess??!1;z(`codex.spawn`),this.proc=v(`codex`,Yn(e,this.options.nativeMcp),{cwd:this.cwd,env:M(this.options.env??h.env),stdio:[`pipe`,`pipe`,`pipe`],shell:h.platform===`win32`?h.env.SHELL||!0:!1,windowsHide:!0});let t=this.proc.stdout,n=this.proc.stderr;if(!t||!n)throw Error(`codex app-server did not expose stdio streams.`);t.setEncoding(`utf8`),n.setEncoding(`utf8`),n.on(`data`,e=>{this.stderr+=e}),this.proc.on(`error`,e=>{this.handleExit(e)}),this.proc.stdin?.on(`error`,()=>{}),this.proc.on(`exit`,(e,t)=>{let n=this.stderr.trim(),r=e===0?null:B(`codex app-server exited unexpectedly (${t?`signal ${t}`:`exit ${e}`}).${n?`\n${n}`:``}`);this.handleExit(r)}),this.readline=Ne.createInterface({input:t}),this.readline.on(`line`,e=>{this.handleLine(e)}),await this.request(`initialize`,{clientInfo:this.options.clientInfo??Wn(),capabilities:this.options.capabilities??Gn}),this.notify(`initialized`,{}),z(`codex.initialized`)}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.readline&&this.readline.close(),this.proc&&!this.proc.killed&&(this.proc.stdin?.end(),setTimeout(()=>{if(this.proc&&!this.proc.killed&&this.proc.exitCode===null)if(h.platform===`win32`)try{je(`taskkill`,[`/PID`,String(this.proc.pid),`/T`,`/F`],{stdio:`ignore`})}catch{}else this.proc.kill(`SIGTERM`)},50).unref?.()),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.proc?.stdin;if(!n)throw Error(`codex app-server stdin is not available.`);n.write(t)}};function Yn(e,t=!1){return[`-c`,`sandbox_workspace_write.network_access=${e}`,`app-server`,...t?[]:[`--disable`,`plugins`,`--disable`,`apps`]]}var Xn=class extends qn{endpoint;socket;constructor(e,t={}){super(e,t),this.transport=`broker`,this.endpoint=t.brokerEndpoint}async initialize(){await new Promise((e,t)=>{let n=I(this.endpoint);this.socket=Me.createConnection({path:n.path}),this.socket.setEncoding(`utf8`),this.socket.on(`connect`,e),this.socket.on(`data`,e=>{this.handleChunk(e)}),this.socket.on(`error`,e=>{this.exitResolved||t(e),this.handleExit(e)}),this.socket.on(`close`,()=>{this.handleExit(this.exitError)})}),await this.request(`initialize`,{clientInfo:this.options.clientInfo??Wn(),capabilities:this.options.capabilities??Gn}),this.notify(`initialized`,{}),z(`codex.initialized`)}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.socket&&this.socket.end(),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.socket;if(!n)throw Error(`codex app-server broker connection is not connected.`);n.write(t)}},Zn=class{static async connect(e,t={}){let n=t.env??h.env,r=en(n);t={...t,env:M(n)};let i=t.networkAccess??!1,a=null;!t.disableBroker&&!t.nativeMcp&&(a=r?null:t.brokerEndpoint??t.env?.CODER_APP_SERVER_ENDPOINT??h.env.CODER_APP_SERVER_ENDPOINT??null,!a&&t.reuseExistingBroker&&(a=R(e,i,r)?.endpoint??null),!a&&!t.reuseExistingBroker&&(a=(await Pn(e,{env:n,networkAccess:i,connectionKey:r}))?.endpoint??null));let o=a?new Xn(e,{...t,brokerEndpoint:a}):new Jn(e,t);return await o.initialize(),o}};function Qn(){return process.env.CODEX_HOME||m.join(x.homedir(),`.codex`)}async function $n(e,t,n){for(let r of An(e)){let i=null;try{return i=await Zn.connect(e,{env:M(),brokerEndpoint:r.endpoint,networkAccess:r.networkAccess??!1,reuseExistingBroker:!0}),await i.request(t,{threadId:n}),!0}catch{}finally{await i?.close().catch(()=>{})}}return!1}function er(e){try{let t=v(`codex`,e,{detached:!0,stdio:`ignore`,env:M()});t.on(`error`,()=>{}),t.unref()}catch{}}async function tr(e,t){await $n(e,`thread/archive`,t)||er([`archive`,t])}function nr(e){let t=m.join(Qn(),`archived_sessions`);try{return g.readdirSync(t).some(t=>t.endsWith(`-${e}.jsonl`))}catch{return!1}}function rr(e){return new Promise(t=>{try{let n=v(`codex`,[`unarchive`,e],{stdio:`ignore`,env:M()});n.on(`error`,()=>t(!1)),n.on(`close`,e=>t(e===0))}catch{t(!1)}})}async function ir(e,t){return await $n(e,`thread/delete`,t)?!0:je(`codex`,[`delete`,`--force`,t],{encoding:`utf8`,env:M()}).status===0}const ar=`Background processes will not re-invoke you.`,or="Wait on each task with `coder task result <task-id> --wait` in its own background shell, one per task, never several tasks in one call, so each approval and answer reaches you.",sr=[`completed`,`failed`,`cancelled`],cr=[`queued`,`running`],lr=`History lost, starting fresh`,ur=/^[a-z0-9][a-z0-9_-]*$/i;function V(e){return ur.test(e)}function dr(e,t){if(!V(e))throw Error(`Invalid ${t} "${e}".`)}function H(...e){return m.join(m.resolve(process.env.CODER_HOME||m.join(x.homedir(),`.coder`)),...e)}function U(...e){let t=x.homedir(),n=x.platform(),r=process.env.CODER_CACHE_HOME||(n===`darwin`?m.join(t,`Library`,`Caches`,`wular-coder`):n===`win32`?m.join(process.env.LOCALAPPDATA||m.join(t,`AppData`,`Local`),`wular-coder`,`cache`):m.join(process.env.XDG_CACHE_HOME||m.join(t,`.cache`),`wular-coder`));return m.join(m.resolve(r),...e)}function fr(){return H(`state`,`global`,`flows`)}function pr(){return U(`flows-archived`)}function mr(){return U(`usage.json`)}function hr(e=mr()){return`${e}.${process.pid}.${b()}.tmp`}function gr(){return U(`runner`,`usage.json`)}function _r(e){try{return _(`git`,[`rev-parse`,`--show-toplevel`],{cwd:e,encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return e}}function W(e){return H(`state`,`global`)}function G(e){return m.join(W(e),`jobs`)}const vr=18e5,yr=(e,t=Date.now())=>t-e>vr;function K(e){return U(`archive`)}function q(e,t){dr(t,`task id`);let n=m.join(G(e),t);if(g.existsSync(m.join(n,`job.json`)))return n;let r=m.join(K(e),t);return g.existsSync(m.join(r,`job.json`))?r:n}function br(e,t,n={}){let r=cr.includes(t.status);if(!r){let n=q(e,t.id),r=m.join(K(e),t.id);n!==r&&Qe(n,r)}let i=t.archived?n.auto||!t.autoArchived?t:X(e,t.id,{autoArchived:void 0}):X(e,t.id,{archived:!0,archivedAt:new Date().toISOString(),...n.auto?{autoArchived:!0}:{}},{touch:!n.auto});return!r&&t.engine!==`claude`&&t.threadId&&tr(e,t.threadId),i}function J(e){return!!e.archived&&(e.resumedAt??``)>(e.archivedAt??``)}function Y(e,t){let n=q(e,t.id),r=m.join(G(e),t.id);return n!==r&&Qe(n,r),X(e,t.id,{archived:void 0,archivedAt:void 0,autoArchived:void 0})}function xr(){let e=Math.random().toString(36).slice(2,8);return`task-${Date.now().toString(36)}-${e}`}function X(e,t,n,r={}){let i=q(e,t);g.mkdirSync(i,{recursive:!0});let a=m.join(i,`job.json`),o=Z(e,t)??{id:t,createdAt:new Date().toISOString(),status:`queued`},s={...o,...n,updatedAt:r.touch===!1?o.updatedAt:new Date().toISOString()};return Xe(a,`${hn(s)}\n`),s}function Z(e,t){if(!V(t))return null;let n=m.join(q(e,t),`job.json`);if(!g.existsSync(n))return null;try{return JSON.parse(g.readFileSync(n,`utf8`))}catch{return null}}function Sr(e,t){let n=q(e,t);return g.existsSync(n)?(g.rmSync(n,{recursive:!0,force:!0}),!0):!1}function Cr(e){if(!e)return!1;try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function Q(e){try{let t=_(`ps`,[`-o`,`lstart=`,`-p`,String(e)],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`],env:{...process.env,TZ:Intl.DateTimeFormat().resolvedOptions().timeZone}}).trim(),n=t?Date.parse(t):NaN;return Number.isFinite(n)?n:null}catch{return null}}function wr(e,t,n=Q){if(!Cr(e))return!1;let r=n(e),i=Date.parse(t.resumedAt??t.createdAt??``);return r===null||!Number.isFinite(i)||r<=i+6e4}function $(e,t,n=Q){let r=t.status===`running`||t.status===`queued`;if(!r&&!t.rollingOver)return t;let i;if(t.pid)i=!wr(t.pid,t,n);else{let e=Date.parse(t.updatedAt??t.createdAt??``);i=Number.isFinite(e)&&Date.now()-e>6e4}if(i){let i=Z(e,t.id);return i&&(i.status!==t.status||i.updatedAt!==t.updatedAt)?$(e,i,n):r?X(e,t.id,{status:`failed`,rollingOver:!1,error:`worker exited without finishing`,completedAt:new Date().toISOString()}):X(e,t.id,{rollingOver:!1},{touch:!1})}return t}function Tr(e){try{return g.readdirSync(e)}catch{return[]}}function Er(e,t=new Set){return Tr(e).flatMap(n=>{if(t.has(n))return[];try{let r=JSON.parse(g.readFileSync(m.join(e,n,`job.json`),`utf8`));return t.add(n),[r]}catch{return[]}})}async function*Dr(e){let t=[{dir:G(e),archived:!1},{dir:K(e),archived:!0}];for(let{dir:e,archived:n}of t){let t=await g.promises.readdir(e,{withFileTypes:!0}).catch(()=>[]);for(let r of t)r.isDirectory()&&V(r.name)&&(yield{id:r.name,dir:m.join(e,r.name),archived:n})}}const Or=(e,t)=>String(t.updatedAt??``).localeCompare(String(e.updatedAt??``));function kr(){let e=new Map,t=Date.now()+3e4;return n=>(Date.now()>=t&&(e.clear(),t=Date.now()+3e4),e.has(n)||e.set(n,Q(n)),e.get(n))}function Ar(e){let t=kr(),n=[];for(let r of Er(G(e))){let i=$(e,r,t);i.archived&&!J(i)?br(e,i,{auto:!0}):n.push(i.archived?Y(e,i):i)}return n.sort(Or)}function jr(e,t,n=!1){if(t.status===`queued`)return!0;let r=t.generation??0;if(n&&!r)return!1;let i=Z(e,t.task.id);return i?r?t.startedAt===void 0||(Date.parse(i.resumedAt??``)||0)<t.startedAt:!1:!0}function Mr(e){let t=Ye(m.join(W(e),`runner`,`task.json`))??{},n=e=>e===void 0?void 0:new Date(e).toISOString();return Object.values(t).map(({value:e})=>e).filter(t=>jr(e,t)).map(e=>{let t=e.status===`waiting`?`running`:e.status,r=e.archivedAt??(sr.includes(t)&&yr(e.finishedAt??e.updatedAt)?e.finishedAt??e.updatedAt:void 0);return{id:e.task.id,status:t,...e.task.name?{name:e.task.name}:{},...e.task.prompt?{prompt:e.task.prompt}:{},...e.task.cwd?{cwd:e.task.cwd}:{},...e.task.agent?{agentId:e.task.agent}:{},source:e.task.source??`dashboard`,...e.error?{error:e.error}:{},createdAt:n(e.createdAt),updatedAt:n(e.updatedAt),...e.finishedAt?{completedAt:n(e.finishedAt)}:{},...r===void 0?{}:{archived:!0,archivedAt:n(r)}}})}function Nr(e,t){let n=kr(),r=t?.migrate??!0,i=new Set,a=[];for(let t of Er(K(e),i))J(t)?r&&Y(e,$(e,t,n)):a.push($(e,t,n));for(let t of Er(G(e),i))if(t.archived&&!J(t)){let i=$(e,t,n);a.push(r?br(e,i,{auto:!0}):i)}return a.sort(Or)}function Pr(e,t){if(!t){let t=Nr(e);return[...Ar(e),...t].sort(Or)[0]??null}let n=t=>{let n=$(e,t);return J(n)?Y(e,n):n},r=Z(e,t);if(r)return n(r);if(!V(t))return null;let i=[...new Set([G(e),K(e)].flatMap(e=>Tr(e).filter(e=>e.startsWith(t))))].flatMap(t=>{let n=Z(e,t);return n?[n]:[]});if(i.length>1)throw Error(`Task reference "${t}" is ambiguous. Use a longer id.`);return i[0]?n(i[0]):null}function Fr(e,t){let n=q(e,t);try{g.mkdirSync(n,{recursive:!0}),g.writeFileSync(m.join(n,`heartbeat`),``,`utf8`)}catch{}}function Ir(e,t){let n=q(e,t.id),r=Date.parse(t.updatedAt??``)||0;for(let e of[`log.jsonl`,`heartbeat`])try{r=Math.max(r,g.statSync(m.join(n,e)).mtimeMs)}catch{}return r?new Date(r).toISOString():void 0}const Lr=`steer-queue.jsonl`;function Rr(e,t,n){return dr(t,`task id`),tt(m.join(W(e),`steer`,`${t}.lock`),n)}function zr(e,t,n){let r=q(e,t);g.mkdirSync(r,{recursive:!0}),g.appendFileSync(m.join(r,Lr),`${JSON.stringify({at:new Date().toISOString(),text:n})}\n`,`utf8`)}function Br(e,t){return g.existsSync(m.join(q(e,t),Lr))}function Vr(e,t){let n=q(e,t),r=m.join(n,Lr),i=m.join(n,`steer-claim-${process.pid}-${Date.now()}.tmp`);try{g.renameSync(r,i)}catch{return[]}try{return g.readFileSync(i,`utf8`).split(/\r?\n/).filter(Boolean).map(e=>{try{return String(JSON.parse(e).text??``)}catch{return``}}).filter(Boolean)}finally{try{g.unlinkSync(i)}catch{}}}function Hr(e,t,n){Ur(q(e,t),n)}function Ur(e,t){g.mkdirSync(e,{recursive:!0}),g.appendFileSync(m.join(e,`log.jsonl`),`${hn({at:new Date().toISOString(),...t})}\n`,`utf8`)}const Wr=`Steer accepted live:
7
- `;function Gr(e,t,n){let r=C(q(e,t));return n?.on(`message`,r.notify),n?.on(`exit`,r.notify),n?.on(`error`,r.notify),{wait:r.wait,close(){n?.off(`message`,r.notify),n?.off(`exit`,r.notify),n?.off(`error`,r.notify),r.close()}}}function Kr(e,t){let n=m.join(q(e,t),`results.jsonl`);return g.existsSync(n)?g.readFileSync(n,`utf8`).split(`
8
- `).flatMap(e=>{try{return[JSON.parse(e)]}catch{return[]}}):[]}function qr(e,t){if(t<=0)return[];let n=0;for(let r=e.length-1;r>=0;--r)if(e[r]?.kind!==`usage`&&(n+=1)===t)return e.slice(r);return e}function Jr(e,t,n=40){if(n<=0)return[];let r=m.join(q(e,t),`log.jsonl`),i;try{i=g.openSync(r,`r`)}catch(e){if(e.code===`ENOENT`)return[];throw e}try{let e=g.fstatSync(i).size,t=Math.min(e,65536);for(;;){let r=e-t,a=Buffer.alloc(t),o=g.readSync(i,a,0,t,r),s=a.toString(`utf8`,0,o),c=(r?s.slice(s.indexOf(`
9
- `)+1):s).split(/\r?\n/).filter(Boolean);if(r===0||s.includes(`
10
- `)&&c.length>=n)return c.slice(-n).map(e=>{try{return JSON.parse(e)}catch{return{message:e}}});t=Math.min(e,t*2)}}finally{g.closeSync(i)}}function Yr(e){return[e.engine??`-`,e.model,e.model?e.effort:null].filter(Boolean).join(`/`)}function Xr(e){let t=Date.parse(e??``);return Number.isFinite(t)?Math.max(0,Date.now()-t):0}const Zr=6e5,Qr=/access token could not be refreshed/i,$r=/model is not supported|Codex cannot run model/i;function ei(e){return e instanceof Error?e.message:String(e??``)}function ti(e){return Qr.test(e??``)}function ni(e){return $r.test(e??``)}function ri(e,t){return!ni(e)||/Codex cannot run model/.test(e??``)?null:`Codex cannot run model ${/'([^']+)' model/.exec(e??``)?.[1]??t??`this model`} on the signed-in account. Run \`codex login\` with an account that has it, or pick another alias (coder model list).`}function ii(e=process.env){return m.join(e.CODEX_HOME||m.join(x.homedir(),`.codex`),`auth.json`)}function ai(e){try{let t=JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString(`utf8`));return String(t.sub??t.email??``)}catch{return``}}function oi(e=process.env,t){let n=ii(e),r;try{r=g.statSync(n).mtimeMs}catch{return``}if(t?.file===n&&t.mtimeMs===r)return t.fingerprint??``;try{let e=JSON.parse(g.readFileSync(n,`utf8`)),i=e.OPENAI_API_KEY?y(`sha256`).update(String(e.OPENAI_API_KEY)).digest(`hex`):``,a=[e.auth_mode??``,e.tokens?.account_id??``,ai(e.tokens?.id_token),i].join(`|`);return t&&Object.assign(t,{file:n,mtimeMs:r,fingerprint:a}),a}catch{return t?.file===n?t.fingerprint??``:``}}export{X as $,_t as $t,Q as A,Ue as An,fn as At,fr as B,pn as Bt,Cr as C,Je as Cn,bn as Ct,Ar as D,Ge as Dn,sn as Dt,Nr as E,Ze as En,k as Et,Kr as F,Ie as Fn,on as Ft,hr as G,Zt as Gt,W as H,Qt as Ht,$ as I,tn as It,Dr as J,Yt as Jt,_r as K,qt as Kt,Sr as L,N as Lt,Mr as M,qe as Mn,dn as Mt,jr as N,Fe as Nn,nn as Nt,Z as O,Re as On,$t as Ot,Jr as P,Le as Pn,an as Pt,Rr as Q,Ot as Qt,K as R,M as Rt,Br as S,Ye as Sn,xn as St,Ir as T,tt as Tn,I as Tt,q as U,hn as Ut,gr as V,cn as Vt,mr as W,O as Wt,Y as X,Ut as Xt,Fr as Y,Xt as Yt,Gr as Z,Lt as Zt,H as _,pt as _n,Rn as _t,ni as a,Ft as an,Qn as at,Yr as b,Qe as bn,yn as bt,Zr as c,E as cn,rr as ct,Hr as d,Et as dn,zn as dt,dt as en,cr as et,yr as f,Vt as fn,Vn as ft,U as g,wt as gn,z as gt,Vr as h,Mt as hn,Ln as ht,ti as i,At as in,sr as it,kr as j,We as jn,en as jt,wr as k,Ke as kn,A as kt,Xr as l,St as ln,Hn as lt,dr as m,T as mn,Zn as mt,ri as n,xt as nn,ar as nt,vr as o,st as on,ir as ot,br as p,bt as pn,Un as pt,qr as q,Kt as qt,ei as r,lt as rn,or as rt,Wr as s,yt as sn,nr as st,oi as t,Ht as tn,lr as tt,Ur as u,zt as un,Bn as ut,zr as v,at as vn,Mn as vt,V as w,C as wn,Sn as wt,xr as x,$e as xn,L as xt,Pr as y,et as yn,R as yt,pr as z,j as zt};
@@ -1,3 +0,0 @@
1
- import{qi as e}from"./core-DwsAMCnL.js";import{$ as t,At as n,Bt as r,En as i,F as a,Ht as o,O as s,Sn as c,U as l,Z as u,d,x as ee}from"./errors-XBA-Ls4n.js";import{Ct as f,E as p,Gt as m,I as te,Kt as ne,M as re,P as ie,Zt as h,j as g}from"./output-D95NoAA9.js";import{d as _,l as v,m as y,o as b,u as x}from"./load-zhcrwSRF.js";import{t as S}from"./integrations-DyInAa5g.js";import{i as C}from"./dist-DAnSqY1s.js";import{a as w}from"./discover-CPZdprlQ.js";import{o as T}from"./executor-Dt2FFT-y.js";import{i as E,r as D}from"./mcp-Bta09QCU.js";import{i as O,o as k,r as A,s as j}from"./turn-DMvPfhb5.js";import M from"node:path";import N from"node:process";import{readFileSync as P,readdirSync as F,writeFileSync as I}from"node:fs";import L from"node:fs/promises";var R=e({AGENT_TASK_PREFIX:()=>z,agentDeveloperInstructions:()=>Q,agentInstructions:()=>de,agentTaskOptions:()=>ue,builtinArgs:()=>ce,builtinTaskArgs:()=>oe,defaultTask:()=>pe,execAgent:()=>Y,isConversation:()=>$,localAgentPrompt:()=>le,postReply:()=>G,postReplyParts:()=>W,postTurnReply:()=>K,reactToMessage:()=>q,replyParts:()=>U,taskFromEvent:()=>B,threadReply:()=>H,waitForAgentTask:()=>X});const z=`agent:`;function B(e,t,n){let r=S[n.integration];return{id:`local-${n.deliveryId}-${e.id}`,source:n.integration,agent:e.id,flow:t,runner:`local`,event:n,definition:e.definition,...e.usage?{usage:e.usage}:{},tools:r?{[n.integration]:r.tools.presets[v(e)]}:{}}}function V(e){return e.normalize(`NFKC`).toLowerCase().replace(/[“”„‟«»‘’‚‛"'`]/g,``).replace(/[‐‑‒–—―−]/g,`-`).replace(/[.!?,;:…]+(?=\s|$)/g,``).replace(/\s+/g,` `).trim()}function H(e,t,n,r){let i=t?.finalMessage?.trim(),a=e.event&&S[e.event.integration]?.progressReplies,o=r?.lastReply?.trim();if(i&&i.replace(/^`+|`+$/g,``).trim()!==`__EMPTY__`&&!t?.error)return{text:i,problem:!1,...!a&&o&&V(i)===V(o)?{duplicate:!0}:{}};let s=t?.error?.message?.trim()??``;if(t?.error&&o&&!a)return{text:``,problem:!0,duplicate:!0};if(n)return{text:s,problem:!1};if(t&&!t.error){if(a&&o)return{text:o,problem:!1};if(r?.lastReply?.trim()||k(r?.prompt,e.context?.mustReply??e.event?.mustReply,r?.steers)===!1)return{text:``,problem:!1,skipped:!0};let t=e.taskUrl?` [See the task](${e.taskUrl})`:``;return{text:`${m}${t}`,problem:!1}}return{text:e.failureReply??s,problem:!0}}function U(e,t){if(!t||e.length<=t)return[e];let n=[],r=``,i=!1,a=()=>{r.trim()&&n.push(r.trimEnd()),r=``};for(let o of e.split(/\n\n/)){r&&!i&&`${r}\n\n${o}`.length>t&&a();let e=r?`${r}\n\n${o}`:o;for(;e.length>t;){let r=e.lastIndexOf(`
2
- `,t),i=r>0?r:t;n.push(e.slice(0,i).trimEnd()),e=e.slice(i).replace(/^\n/,``)}r=e,(o.match(/^```/gm)??[]).length%2==1&&(i=!i)}return a(),n}async function W(e,t,n,r,i=!1){let a=[],o=i&&e.adapter.postProgress;for(let i of U(t,n))a.push(o?await o.call(e.adapter,e.id,i):r&&e.adapter.reply?await e.reply(r,{markdown:i}):await e.post({markdown:i}));return a}async function G(e,t,n,r,i=e.id,a=!1,o=!1,s){let c=s??await ae(e,t,r,i),l=c.adapter,u=l.postProblem;if(a&&u){let e=(await u.call(l,c.id,n))?.id;return e?[e]:[]}return(await W(c,n,e.replyLimit,t.chat?.message?.id,o)).flatMap(e=>e.id?[e.id]:[])}async function K(e,t,n,r){let a=M.join(l(e,t),`post-${n}.json`),o=c(a);if(o)return o;I(a,`null`,{flag:`wx`});let s=await r();return i(a,s),s}async function ae(e,t,n,r){if(!t.chat)throw Error(`The ${t.integration} event has no conversation`);let[{Chat:i},{LocalChatState:a}]=await Promise.all([import(`./dist-DAnSqY1s.js`).then(e=>e.a),import(`./chat-bwKd3y6V.js`).then(e=>e.r)]),o=await e.adapter({fetch,appId:t.appId.slice(e.id.length+1),name:r,installationId:t.installationId,token:async()=>n,privateState:()=>new a}),s=new i({userName:r,adapters:{[e.id]:o},state:new a,logger:`error`});return await s.initialize(),s.thread(t.chat.thread.id)}async function q(e,t,n){if(!n)throw Error(`This turn has no message to react to; give a message id`);let r=C.fromSlack(C.fromGChat(t).name);await e.adapter.addReaction(e.id,n,r)}function J(e,t){return Object.fromEntries(Object.keys(e.tools).map(n=>[n,t[E(n)]??(n===e.event?.integration?t.APP_TOKEN:void 0)]))}async function Y(e){let{cwd:r,flow:o}=e,c=f(r),u=await b(r,S),m=e.task;!m&&e.taskFile&&(m={...JSON.parse(await L.readFile(M.resolve(r,e.taskFile),`utf8`)),flow:o});let v=u.find(t=>t.id===e.agent);if(m&&(v={id:m.agent,name:m.definition.name??m.agent,definition:y(m.agent,m.definition),...m.usage?{usage:m.usage}:{},...m.files?{files:m.files}:{},builtin:!1}),!v)throw Error(`No agent named "${e.agent}".`);m??=await se(r,v,o,e);let x=m.event,C=x&&S[x.integration];if(x&&!C)throw Error(`Unknown integration "${x.integration}".`);let E=n(e.connections??{},e.connectionEnv),O=D(m,e.toolEnvironment?.tokens??J(m,N.env),e.replyEndpoint,e.toolEnvironment?.native);if(o==="default"){let n=e.post!==!1&&!!C,u=e.postToken??N.env.APP_TOKEN,f=n?ae(C,x,u,m.author??C.id):void 0;f?.catch(()=>{});let y=pe(v,m),b=e.resumeTaskId&&s(r,e.resumeTaskId)?.engine,S=g(b&&b!==_(v).engine?{engine:b}:_(v),c),w=re(m.mcp?.join(`,`),c.mcp,v.definition.mcp,E.mcp),T=[...Object.values(O.mcp),...w.mcp],D=e.resumeTurn??(e.resumeTaskId?a(r,e.resumeTaskId).length:0),k,A=e.resumeTaskId??e.taskId??ee(),j=m.engineChain??[S.engine],P=Math.max(0,j.indexOf(S.engine)),F=!1;for(let e of j.slice(0,P))d(r,A,{kind:`warning`,message:`${e} skipped because no applicable credential is connected`});let I,R;for(;;){let n=j[P];S=g(F?{engine:n}:{..._(v),engine:n},c);let o=!1;try{if(await e.onEngine?.(n)===!1)throw new h(`chain-exhausted`,`No applicable credential is connected for ${n}`);F&&t(r,A,{status:`queued`,pid:null,threadId:null,resumeThreadId:null,resumedAt:new Date().toISOString(),error:void 0,completedAt:void 0}),I=e.resumeTaskId?{taskId:e.resumeTaskId}:await p({onWorker:(t,n)=>{k=n,e.onWorker?.(t,n)},availability:e.availability,taskId:A,...e.resume?{resume:e.resume}:{},mcp:T,mcpBindings:w.mcpBindings,mcpWarnings:w.warnings,nativeMcp:w.nativeMcp,connectionEnv:{...E.env,...O.env},connections:m.connections,cwd:r,agentId:m.agent,...$(m)?{conversation:!0}:{},...m.author?{author:m.author}:{},...x?.repo?{repo:`${x.repo.owner}/${x.repo.name}`}:{},...e.source?{source:e.source}:{name:`${z}${m.id}`,source:m.source},engine:S.engine,model:S.model??void 0,effort:S.effort??void 0,permissions:m.permissions??S.permissions,agentPrompt:y.agentPrompt,prompt:y.prompt,outputSchema:m.context?.outputSchema,wait:!0},m.engineChain?{config:{...c,chain:[S.engine]},waitForStartup:!1}:{}),await e.onTask?.(I.taskId,D),R=await X(r,I.taskId,e.onApproval,(e,t)=>te(e,t,{turn:D,worker:k}))}catch(n){if(!m.engineChain||!(n instanceof h)||n.code!==`chain-exhausted`)throw n;o=!0;let s=n.payload?.error??n.message,c=t(r,A,{status:`failed`,engine:S.engine,prompt:y.prompt,error:s,pid:null}),u={status:1,threadId:null,error:{message:s}};i(M.join(l(r,c.id),`result.json`),u),await L.appendFile(M.join(l(r,c.id),`results.jsonl`),JSON.stringify({...u,prompt:y.prompt})+`
3
- `),I={taskId:c.id},await e.onTask?.(c.id,D),R={taskId:c.id,task:c,status:`failed`,result:u,turns:a(r,c.id),steps:[]}}let s=o?j[P+1]??null:m.engineChain?ie(r,R,{...c,chain:j}):void 0;if(s!==void 0&&d(r,A,{kind:`warning`,message:`${S.engine} skipped because ${R.result?.error?.message??`the engine could not start`}`}),s==null)break;D=a(r,I.taskId).length,k&&await new Promise(e=>{if(k.exitCode!==null||k.signalCode)return e();k.once(`exit`,()=>e())}),P++,F=!0,e={...e,resumeTaskId:void 0,resume:void 0}}let B=a(r,I.taskId)[D],{text:V,problem:U,skipped:W,duplicate:q}=B?H(m,B,!1,B):H(m,R.result,R.status===`cancelled`);W&&n&&d(r,I.taskId,{kind:`status`,message:ne});let J=n&&!!V&&!q,Y=J?await K(r,I.taskId,D,async()=>G(C,x,V,u,m.author,U,!1,await f)):[];return{ok:R.status===`completed`,flow:o,reply:V,posted:J,...Y.length?{postedMessages:Y}:{},taskId:I.taskId,turn:D,tokens:R.result?.tokens??void 0}}let k=w(o,r),A=k.scope===`builtin`?{...await oe(m,v,e.post!==!1),cwd:r,...m.args}:m.args??x,j=await T(k.path,{cwd:r,...e.taskId?{runId:e.taskId}:{},args:A,ceiling:{agent:v.id,permissions:m.permissions??g(_(v),c).permissions},...e.postToken?{integrationToken:e.postToken}:{},connections:{mcp:{...E.mcp,...O.mcp},env:{...E.env,...O.env},ids:m.connections??[]}},{...e.onTask?{onEvent:t=>{t.kind===`task-start`&&e.onTask(t.taskId)}}:{},...e.onStart?{onStart:e.onStart}:{}});return{ok:!0,flow:o,runId:j.runId,result:j.result,tokens:j.tokens}}async function X(e,t,n,r=te,i){let a,o=u(e,t);try{for(;;)try{return await r(e,t)}catch(e){if(!(e instanceof h)||e.code!==`approval-pending`||!n)throw e;if(e.approval?.id!==a){a=e.approval?.id,await n(e.approval);continue}await(i?i():o.wait(3e4))}}finally{o.close()}}async function oe(e,t,n=!0){if(!e.event)throw Error(`built-in flows need a GitHub pull request event`);return{...await ce(e.event,t,e.context,e.author,n),..._(t),...e.permissions?{permissions:e.permissions}:{}}}async function se(e,t,n,r){if(r.taskFile){let t=JSON.parse(await L.readFile(M.resolve(e,r.taskFile),`utf8`));return{...t,flow:n,tools:t.tools??{}}}if(!r.eventFile)throw Error(`Missing --task or --event file.`);return B(t,n,JSON.parse(await L.readFile(M.resolve(e,r.eventFile),`utf8`)))}function ce(e,t,n,r,i=!0){let a=S[e.integration]?.repos?.pullRequest(e);if(!a)throw Error(`built-in flows need a pull request event`);return{pr:a,post:i,...r?{author:r}:{}}}async function le(e,t){let n=(await b(e,S).catch(()=>[])).find(e=>e.id===t);return n?{access:v(n),developer:Q(n)}:{access:`read`}}async function ue(e,t,n,i,a){let s=await b(e,S),c=s.find(e=>e.id===t);if(!c)throw new h(`invalid-option`,`No agent named "${t}".`,{hint:`Agents here: ${s.map(e=>e.id).join(`, `)}`});let{definition:l,usage:u}=c,d=i===void 0?await r(o(u?.connections,a),void 0,void 0,v(c)):void 0,ee=l.mcp??{},p=re(n,f(e).mcp,ee,i??d?.mcp);return{engine:u?.engine??l.engine,model:u?.model??l.model,effort:u?.effort??l.effort,permissions:u?.permissions??l.permissions,developer:Q(c),...p,mcpWarnings:p.warnings,connections:u?.connections,...d?{connected:d}:{}}}const Z=48e3;function Q(e,t){return{description:e.definition.description,instructions:de(e),notes:t?.instructions}}function de(e){if(!e.dir)return fe(e.files??{});let t;try{t=F(e.dir).filter(e=>e.endsWith(`.md`))}catch{return``}t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${P(M.join(e.dir,r),`utf8`).trim()}\n`;if(n+=t.slice(0,Z-n.length),n.length===Z)break}return n.trimEnd()}function fe(e){let t=Object.keys(e).filter(e=>e.endsWith(`.md`));t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${e[r].trim()}\n`;if(n+=t.slice(0,Z-n.length),n.length===Z)break}return n.trimEnd()}const $=e=>!!(e.event&&e.source===e.event.integration);function pe(e,t){let{event:n,context:r}=t,i=$(t),a=t.prompt===void 0?r?.user:void 0,o=n&&S[n.integration],s=t.prompt===void 0?n?A([n],a):``:j(t.prompt,n?.repo,n&&o?.repos?.pullRequest(n));return{agentPrompt:{developer:Q(e,r),...i?{platform:{name:n.integration,prompt:o?.prompt},events:x(e.definition.integrations[n.integration])}:{},access:v(e)},prompt:O(r?.messages??[],s)}}export{G as a,q as c,X as d,R as i,B as l,ue as n,W as o,Y as r,K as s,z as t,H as u};
@@ -1,11 +0,0 @@
1
- import{qi as e}from"./core-DwsAMCnL.js";import{A as t,B as n,I as r,O as i,b as a,bn as o,bt as s,it as c,j as l,l as u,m as d,w as f,wn as p,yn as ee,z as m}from"./errors-XBA-Ls4n.js";import{Ct as te,E as ne,I as re,M as ie,P as ae,T as oe,Zt as h,r as se,s as ce}from"./output-D95NoAA9.js";import{a as g}from"./discover-CPZdprlQ.js";import{a as le,i as ue}from"./prompts-B8pKhMcu.js";import{c as de,s as fe}from"./actions-BT7_eKXm.js";import{t as pe}from"./log-view-CL3_S0IQ.js";import{createRequire as me}from"node:module";import _ from"node:path";import v from"node:process";import{fileURLToPath as he,pathToFileURL as ge}from"node:url";import y from"node:fs";import{spawn as _e,spawnSync as ve}from"node:child_process";import ye,{randomUUID as be}from"node:crypto";import xe from"node:os";import{AsyncLocalStorage as Se}from"node:async_hooks";function b(e){return typeof e!=`object`||!e?JSON.stringify(e)??`null`:Array.isArray(e)?`[${e.map(b).join(`,`)}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${b(e[t])}`).join(`,`)}}`}function Ce(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function x(e,t){return ye.createHash(`sha256`).update(`${e}\0${b(t)}`).digest(`hex`)}function S(e){return y.existsSync(e)?y.readFileSync(e,`utf8`).split(/\r?\n/).filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>e!==null):[]}var we=class{file;recorded;seq=0;constructor(e,t){this.file=t,this.recorded=e.map(e=>({...e})),y.writeFileSync(t,``,`utf8`)}write(e){e.seq=this.seq++,y.appendFileSync(this.file,`${JSON.stringify(e)}\n`,`utf8`)}replay(...e){let t=this.recorded.find(t=>!t.consumed&&e.includes(t.fingerprint));if(!t)return null;t.consumed=!0;let{consumed:n,...r}=t;return this.write(r),r}record(e){this.write({...e,seq:0})}},Te=e({archiveRun:()=>k,archiveRuns:()=>Fe,collectFlowRuns:()=>Be,deleteRun:()=>A,deleteRuns:()=>Ie,detachRun:()=>C,driveRun:()=>ke,flowSteps:()=>ze,flowTaskIds:()=>z,generateRunId:()=>D,latestRun:()=>R,listArchivedRuns:()=>L,listRuns:()=>I,readFlowRecord:()=>N,readRawRecord:()=>j,reconcileRun:()=>M,resumeRun:()=>Ne,runDirFor:()=>O,runResult:()=>T,startRun:()=>Me,unarchiveRun:()=>Le,watchRun:()=>E,writeFlowRecord:()=>P});function Ee(){try{return ve(`bun`,[`--version`],{stdio:`ignore`}).status===0}catch{return!1}}function De(e,t){if(!e.endsWith(`.ts`)||v.versions.bun||v.features.typescript)return;if(!Ee())throw new h(`invalid-option`,`This flow is a TypeScript file (${e}) and this Node cannot run TypeScript.`,{hint:[`Upgrade to Node 23.6+ or install bun: https://bun.sh`,`Or write the flow as .mjs / .js`]});let n=ve(`bun`,[s,...t],{stdio:`inherit`});v.exit(n.status??1)}function Oe(e){let t=!1,n=n=>{t||(t=!0,(async()=>{let{runId:t}=e;v.stderr.write(`\n[flow] Stopping run ${t}. No new tasks will dispatch.\n`);let r=n?e.runningIds():await bt(t,e.runningIds());r.length&&v.stderr.write(`[flow] ${n?`left running`:`stopped tasks`}: ${r.join(`, `)}\n`),v.stderr.write(`\n${ce([`Resume: coder flow resume ${t}`],se)}\n`),e.requestStop(),v.exit(130)})())};v.once(`SIGINT`,()=>n(!1)),v.once(`SIGTERM`,()=>n(!0))}async function ke(e,t){let n=j(e);if(!n)throw Error(`No flow run "${e}".`);try{await $(n,t,{onStart:Oe})}catch(t){throw Y(e,t instanceof Error?t.message:String(t)),t}}function C(e,t,n={}){let r=e.script.endsWith(`.ts`)&&!v.versions.bun&&!v.features.typescript;if(r&&!Ee())throw Error(`TypeScript flows need bun or Node 23.6+.`);let i=y.openSync(_.join(O(e.runId),`flow.log`),`a`),a=_e(r?`bun`:v.execPath,[s,`flow`,`drive`,e.runId,`--cwd`,t,...n.drive??[]],{detached:!0,stdio:[`ignore`,i,i],env:n.env??v.env});return a.unref(),y.closeSync(i),{runId:e.runId,status:`running`,...n.wait?{watch:E(e.runId,{bootPid:a.pid})}:{}}}async function Ae(e,t,n){try{return await n()}catch(n){if(!(n instanceof h)||n.code!==`flow-failed`)throw n;let r=t?`
2
- [flow] dry-run ended early: a downstream step depends on real task output (stub it or run for real).`:``;throw new h(`flow-failed`,`[flow] ${e} ${n.runId} failed: ${n.message}${r}`,{runId:n.runId,hint:`Resume${e===`resume`?` again`:``}: coder flow resume ${n.runId}`})}}function je(e,t){let n=e?N(e):R();if(!n)throw new h(`flow-failed`,e?`No flow run "${e}".`:t,{hint:`Run one: coder flow run <name>`});return n}async function Me(e,t={},n={}){if(t.detached){if(!t.dryRun)return C(q(e,t),t.cwd?_.resolve(t.cwd):v.cwd(),{wait:t.wait});De(g(e,t.cwd?_.resolve(t.cwd):v.cwd()).path,v.argv.slice(2))}return Ae(`run`,t.dryRun,()=>Q(e,t,n))}async function Ne(e,t={},n={}){let r=je(e,`No flow runs to resume.`);if(t.detached){if(!t.dryRun)return C(q(``,t,r.runId),t.cwd?_.resolve(t.cwd):v.cwd(),{wait:t.wait});De(r.script,v.argv.slice(2))}return Ae(`resume`,t.dryRun,()=>Et(r.runId,t,n))}function w(e){let t=_.join(O(e),`events.jsonl`);return y.existsSync(t)?y.readFileSync(t,`utf8`).split(`
3
- `).filter(Boolean).flatMap(e=>{try{return[JSON.parse(e)]}catch{return[]}}):[]}function T(e,t={}){let n=e?N(e):R();return n?{...n,steps:ze(n.runId,t.tail),journal:S(_.join(O(n.runId),`journal.jsonl`)).map(e=>({kind:e.kind,taskId:e.taskId,tokens:e.tokens})),events:w(n.runId)}:null}function E(e,t={}){let n=je(e,`No flow runs yet.`),r=t.from;return{record:n,events:r===void 0?St(n.runId,t.bootPid,{tail:t.tail}):(async function*(){yield*w(n.runId).slice(r)})(),final(){let e=T(n.runId,{tail:0});if(!e)throw new h(`flow-failed`,`[flow] run ${n.runId} vanished while following.`,{hint:`Recent runs: coder flow list`});return e}}}function Pe(e){let t=N(e);if(!t)throw new h(`flow-failed`,`No flow run "${e}".`,{hint:`Recent runs: coder flow list`});if(t.status===`running`)throw new h(`flow-failed`,`Run ${t.runId} is still running.`,{runId:t.runId,hint:`Stop it first: coder flow stop ${t.runId}`});return t}function Fe(e,t={}){if(t.allStopped){let e=I().filter(e=>e.status!==`running`);for(let t of e)k(t);let t=e.map(e=>e.runId);return{archived:t,count:t.length}}if(!e)throw new h(`invalid-option`,`Missing run id.`,{hint:[`Archive one: coder flow archive <run-id>`,`Archive all stopped: coder flow archive --all-stopped`]});let n=Pe(e);return k(n),{runId:n.runId,archived:!0}}function Ie(e,t={}){if(t.allArchived){let e=L().filter(e=>A(e.runId)).map(e=>e.runId);return{deleted:e,count:e.length}}if(!e)throw new h(`invalid-option`,`Missing run id.`,{hint:[`Delete one: coder flow delete <run-id>`,`Delete all archived: coder flow delete --all-archived`]});let n=Pe(e);return{runId:n.runId,deleted:A(n.runId)}}function D(){return`flow-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function O(e){d(e,`flow run id`);let t=_.join(n(),e);if(y.existsSync(_.join(t,`flow.json`)))return t;let r=_.join(m(),e);return y.existsSync(_.join(r,`flow.json`))?r:t}function k(e){let t=O(e.runId),n=_.join(m(),e.runId);t!==n&&o(t,n);let r={...e,archived:!0,archivedAt:e.archivedAt??new Date().toISOString()};return P(n,r),r}function Le(e){let t=O(e.runId),r=_.join(n(),e.runId);t!==r&&o(t,r);let i={...e,archived:void 0,archivedAt:void 0};return P(O(e.runId),i),i}function A(e){let t=O(e);return y.existsSync(_.join(t,`flow.json`))?(y.rmSync(t,{recursive:!0,force:!0}),!0):!1}function j(e){if(!f(e))return null;let t=_.join(O(e),`flow.json`);if(!y.existsSync(t))return null;try{return JSON.parse(y.readFileSync(t,`utf8`))}catch{return null}}function M(e,n=t){return e.status!==`running`||!e.pid||Z(e,n)?e:(Y(e.runId,`orchestrator died`),j(e.runId)??e)}function N(e){let t=j(e);return t?M(t):null}function P(e,t){y.writeFileSync(_.join(e,`flow.json`),`${JSON.stringify(t,null,2)}\n`,`utf8`)}function Re(e){let t=[];try{t=y.readdirSync(e)}catch{return[]}let n=[],r=l();for(let i of t)try{n.push(M(JSON.parse(y.readFileSync(_.join(e,i,`flow.json`),`utf8`)),r))}catch{}return n}const F=(e,t)=>String(t.startedAt).localeCompare(String(e.startedAt));function I(){return Re(n()).sort(F)}function L(){return Re(m()).sort(F)}function R(){return[...I(),...L()].sort(F)[0]??null}function z(e){let t=S(_.join(O(e),`journal.jsonl`));return[...new Set([...t.flatMap(e=>e.kind===`task`&&e.taskId?[e.taskId]:[]),...w(e).flatMap(e=>e.kind===`task-start`?[e.taskId]:[])])]}function ze(e,t=`all`){if(t===0)return[];let n=S(_.join(O(e),`journal.jsonl`)).filter(e=>e.kind===`task`),a=v.cwd(),o=l(),s=z(e).flatMap(e=>{let t=i(a,e);return t?[r(a,t,o)]:[]}),c=new Map(s.map(e=>[e.id,e])),u=e=>e?.name??e?.prompt?.replace(/\s+/g,` `).trim().slice(0,60)??null,d=n.map(e=>{let t=e.taskId?c.get(e.taskId):void 0;return{taskId:e.taskId??null,name:u(t),status:t?.status??e.result?.status??`?`,tokens:e.tokens??null}}),f=new Set(d.map(e=>e.taskId));for(let t of s)t.flowRunId===e&&!f.has(t.id)&&d.push({taskId:t.id,name:u(t),status:t.status,tokens:null});return t===`all`?d:d.slice(-t)}function Be(e={}){let t=e.limit===`all`?void 0:e.limit,n;n=e.archived?L():I().filter(e=>e.status===`running`||u(e.endedAt??e.startedAt)<=18e5||(k(e),!1));let r=t===void 0?0:Math.max(0,n.length-t);return{runs:t===void 0?n:n.slice(0,t),clipped:r}}function B(e,t){e&&(y.appendFileSync(_.join(e.runDir,`events.jsonl`),`${JSON.stringify(t)}\n`,`utf8`),e.hooks.onEvent?.(t))}const Ve=globalThis,V=Ve.__coderFlowCtxALS??=new Se,H=Ve.__coderFlowScopeALS??=new Se;function He(){return H.getStore()?.args}function Ue(){return V.getStore()?.integrationToken}function U(){return H.getStore()?.depth??0}var We=class{limit;active=0;queue=[];constructor(e){this.limit=e}async run(e){this.active<this.limit?this.active+=1:await new Promise(e=>this.queue.push(e));try{return await e()}finally{let e=this.queue.shift();e?e():--this.active}}};function Ge(e,t){if(!t.tokens)return;let n=t.model??`default`;e.ledger[n]=pe(e.ledger[n]??null,t.tokens)}function Ke(e){return!!e&&typeof e.safeParse==`function`}async function qe(e){try{let t=await import(`./zod-BoqHoRCH.js`).then(e=>e.n);if(typeof t.toJSONSchema==`function`)return t.toJSONSchema(e)}catch{}return null}function Je(e){let t=e.trim(),n=t.match(/```(?:json)?\s*([\s\S]*?)```/i);n&&(t=n[1].trim());let r=t.indexOf(`{`);if(r===-1)throw Error(`no JSON object found in reply`);let i=0,a=!1,o=!1;for(let e=r;e<t.length;e+=1){let n=t[e];if(a){o?o=!1:n===`\\`?o=!0:n===`"`&&(a=!1);continue}if(n===`"`)a=!0;else if(n===`{`)i+=1;else if(n===`}`&&(--i,i===0))return JSON.parse(t.slice(r,e+1))}throw Error(`unterminated JSON object in reply`)}function W(e,t){if(!Ke(e))return{ok:!0,data:t};let n=e.safeParse(t);if(n.success)return{ok:!0,data:n.data};let r=n.error?.issues??n.error?.errors??[];return{ok:!1,errors:Array.isArray(r)?r.map(e=>`${(e.path??[]).join(`.`)||`(root)`}: ${e.message}`).join(`; `):String(n.error)}}function Ye(e,t,n){return{cwd:t,engine:e.engine,model:e.model,effort:e.effort,mcp:e.mcp,permissions:n?.ceiling?oe(e.name,e.permissions,n.ceiling):e.permissions,name:e.name,system:e.system,addDirs:e.addDirs,wait:!0,flowRunId:n?.runId}}function Xe(e,t){return{taskId:e,status:t.status,output:t.result?.finalMessage||t.result?.error?.message||``,tokens:t.result?.tokens??null,model:t.result?.model??t.model}}async function Ze(e,t,n){n?.running.add(t);try{let n=await re(e,t);return{status:n.status,result:n.result,model:n.task.model??null,next:ae(e,n)??null}}finally{n?.running.delete(t)}}async function Qe(e,t,n,r){let a=r?.cwd??v.cwd(),o=i(a,e);if(!o)throw new h(`invalid-option`,`No task "${e}".`);return await fe(o.cwd??a,o,t,{...r?.connections?{resolveConnections:async e=>({mcp:Object.fromEntries(Object.entries(r.connections.mcp).filter(([t])=>e.includes(t))),env:r.connections.env,warnings:[]})}:{},model:n.model,effort:n.effort,permissions:r?.ceiling&&n.permissions?oe(o.name,n.permissions,r.ceiling):n.permissions}),Xe(e,await Ze(a,e,r))}async function $e(e,t,n,r){let o=t.cwd?_.resolve(t.cwd):n?.cwd??v.cwd(),s=t.returns&&!r?[t.system,ue(null)].filter(Boolean).join(`
4
-
5
- `):t.system,c;for(;;){let l={prompt:e,...Ye(t,o,n),system:s,...r?{outputSchema:r}:{},...c?{engine:c,model:void 0,effort:void 0}:{}},u=n?.connections?ie(l.mcp,te(o).mcp,{},n.connections.mcp):void 0,d=r=>{let s=i(o,r),c=s?a(s):void 0;B(n,{kind:`task-start`,taskId:r,name:t.name,prompt:e,engine:c,depth:U()})},f=await ne({...l,onWorker:d,...n?.connections?{...u,mcpWarnings:u?.warnings,connectionEnv:n.connections.env,connections:n.connections.ids,connectionSource:`server`}:{},onFallback:e=>K(`${e.engine} failed to start. Falling back to ${e.next}. ${e.detail.replace(/\s+/g,` `).slice(0,140)}`)}),p=await Ze(o,f.taskId,n);if(p.next){let e=p.next;B(n,{kind:`task-end`,taskId:f.taskId,status:`failed`,tokens:null}),c=e;continue}return Xe(f.taskId,p)}}async function et(e,t,n,r=null){if(n?.dryRun){v.stdout.write(`\n[dry-run] task${t.name?` (${t.name})`:``}:\n${e}\n`);let n={...t,returns:t.returns?`<schema>`:void 0};return v.stdout.write(`[dry-run] opts: ${JSON.stringify(n)}\n`),{taskId:`dry`,status:`completed`,output:`[dry-run]`,data:void 0,tokens:null,model:t.model??null}}let i=await $e(e,t,n,r);if(i.status!==`completed`){let e={...i,data:void 0};throw new h(`task-failed`,`Task ${i.taskId} ${i.status}: ${i.output||`no output`}`,{taskId:i.taskId,result:e})}let a=i.output,o=i.tokens,s;if(t.returns){let e;try{e=W(t.returns,Je(a))}catch(t){e={ok:!1,errors:t instanceof Error?t.message:String(t)}}if(e.ok)s=e.data;else{let r=await Qe(i.taskId,le(e.errors),{},n);a=r.output||a,o=pe(o,r.tokens);try{let e=W(t.returns,Je(a));if(!e.ok)throw Error(e.errors);s=e.data}catch(e){let t={taskId:i.taskId,status:`completed`,output:a,data:void 0,tokens:o,model:i.model};throw new h(`task-failed`,`Task ${i.taskId} produced no valid structured output: ${e instanceof Error?e.message:String(e)}`,{taskId:i.taskId,result:t})}}}return{taskId:i.taskId,status:`completed`,output:a,data:s,tokens:o,model:i.model}}async function tt(e,t,n){let r=e.journal.replay(t);if(r)return r.result;if(++e.taskCount>e.maxTasks)throw Error(`Flow exceeded --max-tasks (${e.maxTasks}). Raise it with --max-tasks, or fix a runaway loop; the run is resumable.`);return e.semaphore.run(async()=>{let r=new Date().toISOString(),i;try{i=await n()}catch(t){let n=t instanceof h?t.result:void 0;throw n&&B(e,{kind:`task-end`,taskId:n.taskId,status:n.status===`completed`?`failed`:n.status,tokens:n.tokens}),t}return Ge(e,i),e.dryRun||B(e,{kind:`task-end`,taskId:i.taskId,status:i.status,tokens:i.tokens}),e.journal.record({kind:`task`,fingerprint:t,result:i,taskId:i.taskId,tokens:i.tokens,startedAt:r,endedAt:new Date().toISOString()}),i})}async function nt(e,t={}){let n=V.getStore(),r=t.returns?await qe(t.returns):null,i=()=>et(e,t,n,r);if(!n)return i();let{returns:a,...o}=t;return tt(n,x(`task`,Ce({prompt:e,...o,returns:a?r??`<schema>`:void 0})),i)}async function rt(e,t,n={}){let r=V.getStore(),i=async()=>{if(r?.dryRun)return v.stdout.write(`\n[dry-run] steer ${e}:\n${t}\n`),{taskId:e,status:`completed`,output:`[dry-run]`,tokens:null,model:n.model??null};let i=await Qe(e,t,n,r);if(i.status!==`completed`)throw new h(`task-failed`,`Task ${e} ${i.status}: ${i.output||`no output`}`,{taskId:e,result:i});return i};return r?tt(r,x(`steer`,Ce({taskId:e,text:t,...n})),i):i()}const G=262144;function it(e){let t=[];for(let n=e;;){t.push(_.join(n,`node_modules`,`.bin`));let e=_.dirname(n);if(e===n)break;n=e}let n=v.platform===`win32`?`;`:`:`;return{...v.env,PATH:[...t,v.env.PATH??``].join(n)}}async function at(e,t){return new Promise(n=>{let r=_e(e,{shell:!0,cwd:t,env:it(t)}),i=``,a=e=>{i.length>=G||(i+=e,i.length>=G&&(i=`${i.slice(0,G)}\n... [gate output truncated]`))};r.stdout?.on(`data`,a),r.stderr?.on(`data`,a),r.on(`error`,e=>n({ok:!1,code:1,output:String(e.message??e).trim()})),r.on(`close`,e=>n({ok:e===0,code:e??0,output:i.trim()}))})}async function ot(e,t={}){let n=V.getStore(),r=t.cwd?_.resolve(t.cwd):n?.cwd??v.cwd();if(!n)return at(e,r);let i=x(`gate`,{cmd:e,cwd:t.cwd}),a=n.journal.replay(i);if(a)return a.result;if(n.dryRun){v.stdout.write(`\n[dry-run] gate: ${e}\n`);let t={ok:!0,code:0,output:``};return n.journal.record({kind:`gate`,fingerprint:i,result:t,startedAt:new Date().toISOString(),endedAt:new Date().toISOString()}),t}let o=new Date().toISOString(),s=`gate-${v.pid}-${be()}`,c=U();B(n,{kind:`gate-start`,gateId:s,cmd:e,depth:c});let l=await at(e,r);return B(n,{kind:`gate`,gateId:s,cmd:e,ok:l.ok,code:l.code,depth:c}),n.journal.record({kind:`gate`,fingerprint:i,result:l,startedAt:o,endedAt:new Date().toISOString()}),l}async function st(e,...t){return Promise.all(e.map(async(e,n)=>{let r=e;for(let[i,a]of t.entries())try{r=await a(r,e,n)}catch(e){return K(`stage ${i+1} failed: ${e instanceof Error?e.message:String(e)}`),null}return r}))}function K(e){let t=V.getStore();B(t,{kind:`log`,message:e,depth:U()}),(!t||v.stderr.isTTY&&!t.hooks.onEvent)&&v.stderr.write(`[flow] ${e}\n`)}const ct=me(import.meta.url);function lt(e){let t=_.dirname(he(import.meta.url));for(;_.basename(t)!==`dist`&&_.dirname(t)!==t;)t=_.dirname(t);return _.basename(t)===`dist`?ge(_.join(t,e)).href:null}function ut(e){if(e===`zod`||e.startsWith(`zod/`)){let e=lt(`zod.js`)??new URL(`./zod.js`,import.meta.url).href;if(y.existsSync(he(e)))return e}if(!(e===`@wular/coder`||e===`@wular/coder/flow`||e===`zod`||e.startsWith(`zod/`)))return null;try{return ge(ct.resolve(e)).href}catch{}return e===`@wular/coder/flow`?lt(`flow/index.js`):e===`@wular/coder`?lt(`sdk.js`):null}const dt=/(\bfrom\s+|\bimport\s+|\bimport\s*\(\s*)(['"])([^'"]+)\2/g;function ft(e){return e.replace(dt,(e,t,n,r)=>{let i=ut(r);return i?`${t}${n}${i}${n}`:e})}async function pt(e){e=y.realpathSync(e);let t=H.getStore(),n=t.imports??={dirs:new Set,node:!1};if(v.versions?.bun){if(n.dirs.has(e))return;n.dirs.add(e);let{plugin:t}=await import(`bun`),r=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);t({name:`coder-flow:${e}`,setup(e){e.onLoad({filter:RegExp(`^${r}/(?!.*node_modules/).*\\.m?[jt]sx?$`)},e=>({contents:ft(y.readFileSync(e.path,`utf8`)),loader:_.extname(e.path).replace(/^\.m?/,``)}))}});return}if(n.node)return;n.node=!0;let{register:r}=await import(`node:module`),i=Object.fromEntries([`@wular/coder`,`@wular/coder/flow`,`zod`].flatMap(e=>{let t=ut(e);return t?[[e,t]]:[]})),a=`const urls = ${JSON.stringify(i)}, parent = ${JSON.stringify(import.meta.url)};
6
- export function resolve(spec, ctx, next) {
7
- if (spec.startsWith('zod/') && urls.zod) return { url: urls.zod, shortCircuit: true };
8
- if (urls[spec]) return { url: urls[spec], shortCircuit: true };
9
- return next(spec, spec.startsWith('zod/') ? { ...ctx, parentURL: parent } : ctx);
10
- }`;r(`data:text/javascript,${encodeURIComponent(a)}`)}async function mt(e,t,n){try{return await import(ge(e).href)}catch(e){let r=e instanceof Error?e.message:String(e);throw t===`.ts`&&!v.versions?.bun&&/Unknown file extension|Unexpected token|SyntaxError|Cannot parse|import type|interface/i.test(r)?Error(`Could not run ${_.basename(n)}: TypeScript flows need bun. Run under \`bun\`, or write the flow as .mjs/.js.`):e}}async function ht(e){if(!y.existsSync(e))throw Error(`Cannot read flow file: ${e}`);return await pt(_.dirname(e)),mt(e,_.extname(e),e)}async function gt(e,t,n){let r=H.getStore();r.args=t??{};let i=await ht(e),a=V.getStore();a?.flowConcurrency&&!r.depth&&typeof i.concurrency==`number`&&(a.semaphore.limit=Math.max(1,i.concurrency),n&&(n.concurrency=a.semaphore.limit,P(a.runDir,n)));let o=i.args,s=r.args;if(Ke(o)){let e=W(o,t??{});if(!e.ok)throw Error(`Invalid flow args: ${e.errors}`);s=e.data,r.args=s}let c=i.default;return typeof c==`function`?c(s):c}async function _t(e,t){let n=V.getStore(),r=n?.cwd??v.cwd(),i=g(e,r);if(!n)return H.run({args:t??{},depth:0},()=>gt(i.path,t));let a=H.getStore();if(a&&a.depth>=1)throw Error(`flow("${e}") nesting is one level deep; a sub-flow cannot call flow().`);let o=x(`flow`,{name:i.name,args:t??{}}),s=n.journal.replay(o);if(s)return s.result;let c=new Date().toISOString();B(n,{kind:`flow-start`,name:i.name,depth:(a?.depth??0)+1});let l=await H.run({args:t??{},depth:(a?.depth??0)+1,imports:a?.imports},()=>gt(i.path,t));return n.journal.record({kind:`flow`,fingerprint:o,result:l,startedAt:c,endedAt:new Date().toISOString()}),l}var vt=e({drivePreparedRun:()=>$,markRunFailed:()=>Y,orchestratorAlive:()=>Z,pidAlive:()=>X,prepareRun:()=>q,resumeFlow:()=>Et,review:()=>Dt,runFlowByName:()=>Q,stopFlowTasks:()=>bt,stopRun:()=>xt,streamFlowCore:()=>St});function q(e,t={},n,r){let i,a,o;if(n){let e=N(n);if(!e)throw Error(`No flow run "${n}".`);e.archived&&Le(e),i=e.name,a=e.script,o=t.args??e.args}else{let n=g(e,t.cwd?_.resolve(t.cwd):v.cwd());i=n.name,a=n.path,o=t.args??{}}let s=n??t.runId??D(),c=O(s);y.mkdirSync(c,{recursive:!0});let l={runId:s,name:i,script:a,args:o,status:`running`,startedAt:new Date().toISOString(),concurrency:Math.max(1,t.concurrency??xe.cpus().length),maxTasks:Math.max(1,t.maxTasks??xe.cpus().length*10),taskCount:0,ledger:{},...r?{pid:r,pidStartedAt:new Date().toISOString()}:{},...t.concurrency===void 0?{}:{concurrencySet:!0}};return P(c,l),l}function J(e,t,n){P(e,{...t,endedAt:new Date().toISOString(),pid:void 0,pidStartedAt:void 0,...n})}function Y(e,t){let n=j(e);!n||n.status!==`running`||J(O(e),n,{status:`failed`,error:t})}function X(e){try{return v.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function Z(e,n=t){if(!e.pid||!X(e.pid))return!1;let r=n(e.pid),i=Date.parse(e.pidStartedAt??``);return r===null||!Number.isFinite(i)||r<=i+6e4}function yt(e){return z(e).filter(e=>{let t=i(v.cwd(),e);return t&&!c.includes(t.status)})}async function bt(e,t=[]){let n=v.cwd(),r=[];for(let a of new Set([...yt(e),...t])){let e=i(n,a);if(!(!e||c.includes(e.status)))try{await de(n,e),r.push(a)}catch{}}return r}async function xt(e,t={}){let n=e?N(e):R();if(!n)throw new h(`flow-failed`,e?`No flow run "${e}".`:`No flow runs.`,{hint:`Run one: coder flow run <name>`});if(n.status!==`running`)throw new h(`flow-failed`,`Run ${n.runId} is not running.`,{runId:n.runId,hint:`Result: coder flow result ${n.runId}`});let r=O(n.runId);if(!Z(n))return J(r,n,{status:`failed`,error:`orchestrator died`}),{runId:n.runId,status:`failed`,stoppedTasks:[],keptTasks:yt(n.runId)};let a=yt(n.runId),o=p(r);try{v.kill(n.pid,t.keepTasks?`SIGTERM`:`SIGINT`)}catch(e){throw o.close(),e}let s=await o.until(()=>{let e=j(n.runId);return e?.status===`running`?void 0:e},5e3);if(!s||s.status===`running`)throw new h(`flow-failed`,`Run ${n.runId} did not stop within 5s.`,{runId:n.runId,hint:`Check it: coder flow result ${n.runId}`});let l=v.cwd(),u=[],d=[];for(let e of a){let t=i(l,e);t&&(t.status===`cancelled`?u.push(e):c.includes(t.status)||d.push(e))}return{runId:n.runId,status:s.status,stoppedTasks:u,keptTasks:d}}async function*St(e,t,n={}){let r=p(O(e));try{let i=_.join(O(e),`events.jsonl`),a=n.tail??`all`,o=0;if(a!==`all`)try{o=Math.max(0,y.readFileSync(i,`utf8`).split(`
11
- `).length-1-a)}catch{}let s=ee(i),c=()=>{let e=[];for(let t of s()){if(o>0){--o;continue}try{e.push(JSON.parse(t))}catch{}}return e},u=l(),d=j(e);for(;(!d||d.status===`running`)&&(yield*c(),d=j(e)??d,!(d&&d.status!==`running`));){let n=d?.pid?!Z(d,u):t!==void 0&&!X(t);if(d&&(d.pid||t!==void 0)&&n){Y(e,`orchestrator died`);break}await r.wait(1e3)}yield*c()}finally{r.close()}}function Ct(e,t,n,r,i){let a=i?{...i,pid:v.pid,pidStartedAt:new Date().toISOString()}:q(e,t,r,v.pid),{runId:o}=a,s=O(o);i&&P(s,a),y.writeFileSync(_.join(s,`events.jsonl`),``,`utf8`);let c=_.join(s,`journal.jsonl`),l=r?S(c):[],u=new we(l,c),d={runId:o,runDir:s,cwd:t.cwd?_.resolve(t.cwd):v.cwd(),journal:u,semaphore:new We(a.concurrency),flowConcurrency:t.concurrency===void 0,maxTasks:a.maxTasks,dryRun:t.dryRun??!1,ledger:{},running:new Set,taskCount:0,stopping:!1,hooks:n,...t.integrationToken?{integrationToken:t.integrationToken}:{},...t.connections?{connections:t.connections}:{},...t.ceiling?{ceiling:t.ceiling}:{}};return{record:a,ctx:d,markStopped:()=>{d.stopping=!0,J(s,a,{status:`stopped`,concurrency:d.semaphore.limit,taskCount:d.taskCount,ledger:d.ledger})},replayable:l.length}}async function wt(e){let{ctx:t,record:n}=e,{runDir:r,runId:i}=t,{script:a,name:o,args:s}=n;try{let e=await V.run(t,()=>H.run({args:s??{},depth:0},()=>gt(a,s,n)));return J(r,n,{status:`completed`,concurrency:t.semaphore.limit,taskCount:t.taskCount,ledger:t.ledger,result:e}),{runId:i,name:o,status:`completed`,result:e,tokens:t.ledger,taskCount:t.taskCount}}catch(e){throw t.stopping||J(r,n,{status:`failed`,concurrency:t.semaphore.limit,taskCount:t.taskCount,ledger:t.ledger,error:e instanceof Error?e.message:String(e)}),e instanceof h&&(e.code===`chain-exhausted`||e.code===`approval-pending`)?(e.runId??=i,e):new h(`flow-failed`,e instanceof Error?e.message:String(e),{runId:i})}}async function Tt(e,t,n,r,i){let a=Ct(e,t,n,r,i);return n.onStart?.({runId:a.ctx.runId,requestStop:a.markStopped,runningIds:()=>[...a.ctx.running]}),a.replayable&&B(a.ctx,{kind:`replay`,count:a.replayable}),wt(a)}function Q(e,t={},n={}){return Tt(e,t,n)}function Et(e,t={},n={}){return Tt(``,t,n,e)}function $(e,t,n){return Tt(``,{cwd:t,concurrency:e.concurrencySet?e.concurrency:void 0,maxTasks:e.maxTasks},n,e.runId,e)}const Dt={async run(e={}){let t=await Q(`review`,{cwd:e.cwd,args:e});return{...t.result,runId:t.runId}}};export{N as C,Te as D,T as E,Me as O,D as S,Ne as T,Fe as _,Dt as a,C as b,xt as c,_t as d,ot as f,nt as g,rt as h,q as i,E as k,Ue as l,st as m,vt as n,Q as o,K as p,X as r,bt as s,$ as t,He as u,Be as v,j as w,ke as x,Ie as y};
@@ -1 +0,0 @@
1
- import{bt as e}from"./errors-XBA-Ls4n.js";import{t}from"./integrations-DyInAa5g.js";import{a as n,i as r,l as i,s as a}from"./task-BU1JEK9X.js";import{n as o,t as s}from"./base64url-CsVsW4Id.js";import c from"node:path";import l from"node:process";import u from"node:fs";import{execFile as d,spawn as f}from"node:child_process";import p from"node:fs/promises";import{promisify as m}from"node:util";import{Readable as h}from"node:stream";import{pipeline as g}from"node:stream/promises";const _=m(d);async function v(e){if(l.platform===`linux`){let t=await p.readFile(`/proc/${e}/stat`,`utf8`).catch(()=>``);return t.slice(t.lastIndexOf(`)`)+2).split(` `)[19]}return(await _(`ps`,[`-p`,String(e),`-o`,`lstart=`]).catch(()=>void 0))?.stdout.trim()||void 0}function y(e){let t=s(e);if(!Number.isInteger(t.pid)||typeof t.dir!=`string`||typeof t.started!=`string`)throw Error(`Invalid local runner handle`);return t}var b=class{workDir;kind=`local`;children=new Map;constructor(e){this.workDir=e}async start(t,i){await p.mkdir(this.workDir,{recursive:!0});let s=await p.mkdtemp(c.join(this.workDir,`task-`)),d=t.runner===`local`?r(t):void 0,m=u.openSync(c.join(s,`runner.log`),`a`);await p.mkdir(c.join(s,`bin`)),await p.writeFile(c.join(s,`bin/coder`),`#!/bin/sh\nexec "${l.execPath}" "${e}" "$@"\n`,{mode:493});let h=f(l.execPath,[e,`agent`,`run`,`--task`,t.id],{cwd:s,detached:!0,env:{PATH:[c.join(s,`bin`),l.env.PATH??``].join(c.delimiter),HOME:l.env.HOME??``,TMPDIR:l.env.TMPDIR??``,...l.env.CODER_HOME?{CODER_HOME:l.env.CODER_HOME}:{},...i,...d?{CODER_CHECKOUT_CACHE:d}:{},CODER_INBOX_SOCKET:n(s)},stdio:[`ignore`,m,m]});await new Promise((e,t)=>{h.once(`spawn`,e),h.once(`error`,t)}),u.closeSync(m);let g={child:h};this.children.set(h.pid,g),h.once(`close`,e=>{g.code=e,a(c.join(s,`repo`)).catch(e=>console.error(`coder runner: checkout cleanup failed`,e))}),h.unref();let _=await v(h.pid);if(!_)throw Error(`Could not identify the local runner process`);return o({pid:h.pid,dir:s,started:_})}async status(e){let{pid:t,dir:n,started:r}=y(e),i=this.children.get(t);if(i?.code===void 0)try{if(l.kill(t,0),await v(t)===r)return{state:`running`}}catch{}return await a(c.join(n,`repo`)),{state:`exited`,...i?.code==null?{}:{code:i.code}}}async stop(e){let{pid:t,started:n}=y(e);if(await v(t)===n)try{l.kill(-t,`SIGTERM`)}catch{try{l.kill(t,`SIGTERM`)}catch{}}}async push(e,t){let{pid:r,dir:a,started:o}=y(e);if(await v(r)!==o)throw Error(`The task process exited`);return i(n(a),t)}};function x(e,t,n={}){return new Promise((r,i)=>{let a=f(e,t,{env:n,stdio:[`ignore`,`pipe`,`pipe`]}),o=``,s=``;a.stdout.on(`data`,e=>o+=String(e)),a.stderr.on(`data`,e=>s+=String(e)),a.once(`error`,i),a.once(`close`,e=>r({code:e,stdout:o,stderr:s}))})}function S(){return Object.values(t).flatMap(e=>e.tools.install?[`(${e.tools.install})`]:[])}function C(e,t=200,n={}){return new Response(JSON.stringify(e),{status:t,headers:{"content-type":`application/json`,...n}})}const w=e=>e.searchParams.has(`cursor`);function T(e){if(e)try{return s(e)}catch{return}}const E=e=>T(e.searchParams.get(`cursor`));function D(e,t=50,n=200){let r=Number(e.searchParams.get(`limit`)??t);return Number.isInteger(r)&&r>0?Math.min(r,n):t}function O(e,t,n){let r=e.slice(0,t);return{items:r,...e.length>t?{next:o(n(r.at(-1)))}:{}}}const k=(e,t=302)=>new Response(null,{status:t,headers:{location:e}}),A=()=>new Response(`Forbidden`,{status:403}),j=()=>new Response(`Not found`,{status:404,headers:{"content-type":`text/plain; charset=utf-8`}}),M=()=>new Response(`Method not allowed`,{status:405}),N=e=>k(`/login?return=${encodeURIComponent(`${e.pathname}${e.search}`)}`),P=e=>e.startsWith(`/api/auth`)?65536:/\/tasks\/[^/]+\/history$/.test(e)?4194304:1048576;async function F(e,t,n){let r=Number(t??0);if(Number.isFinite(r)&&r>n)throw Object.assign(Error(`Payload too large`),{status:413});let i=[],a=0;for await(let t of e){if(a+=t.byteLength,a>n)throw Object.assign(Error(`Payload too large`),{status:413});i.push(t)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.byteLength;return o}function I(e){let t=new Headers;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,Array.isArray(r)?r.join(`, `):r);return t}function L(e,t){let n=e.url??`/`,r=e.method===`GET`||e.method===`HEAD`?void 0:h.toWeb(e);return new Request(`http://${e.headers.host??`localhost`}${n}`,{method:e.method,headers:I(e.headers),body:r,duplex:`half`,signal:t})}function R(e,{admit:t=()=>!0}={}){return async(n,r)=>{if(!t(n))return void r.writeHead(404).end(`Not found`);let i=new AbortController,a=()=>{n.socket.destroyed&&i.abort()};r.once(`close`,()=>i.abort()),a();try{let t=await e(L(n,i.signal),n.socket.remoteAddress?.replace(/^::ffff:/,``));a();let o=Object.fromEntries(t.headers.entries()),s=t.headers.getSetCookie();s.length&&(o[`set-cookie`]=s),r.writeHead(t.status,o),t.body?await g(h.fromWeb(t.body),r).catch(()=>{}):r.end()}catch(e){if(r.headersSent)return void r.destroy();let t=typeof e==`object`&&e&&`status`in e;t||console.error(`coder server: request failed`,e);let n=t?e instanceof Error?e.message:String(e):`Internal server error`;r.writeHead(t?Number(e.status):500,{"content-type":`application/json`}),r.end(JSON.stringify({error:n}))}}}async function z(e,t){if(e.method===`GET`||e.method===`HEAD`||!e.body)return e;try{let n=await F(e.body,e.headers.get(`content-length`)??void 0,t);return new Request(e.url,{method:e.method,headers:e.headers,body:n.byteLength?Buffer.from(n):void 0,signal:e.signal})}catch(e){if(e.status===413)return new Response(`Payload too large`,{status:413});throw e}}export{S as _,C as a,M as c,D as d,w as f,x as g,b as h,A as i,j as l,N as m,E as n,z as o,k as p,T as r,R as s,P as t,O as u};