@wular/coder 0.4.11 → 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 (485) hide show
  1. package/README.md +4 -2
  2. package/dist/actions-D12xDiQS.js +4 -0
  3. package/dist/{adapter-DYxjaefw.js → adapter-Bz0E-DAY.js} +2 -2
  4. package/dist/{adapter-CkL4PqXE.js → adapter-CsacmMmv.js} +1 -1
  5. package/dist/adapter-DzpdWewB.js +1 -0
  6. package/dist/{agent-6GooVMsq.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-BhpnOCbn.js +1 -0
  11. package/dist/base64url-CsVsW4Id.js +1 -0
  12. package/dist/builtin/coder/agent.json +0 -1
  13. package/dist/builtin/coder/system.md +1 -1
  14. package/dist/chat-CSepnsrK.js +13 -0
  15. package/dist/cli.js +19 -1
  16. package/dist/{client-sqXb-y09.js → client-C4QCT6cG.js} +2 -2
  17. package/dist/cmd-BHZwhrfa.js +118 -0
  18. package/dist/connection-BkYTuJjV.js +1 -0
  19. package/dist/context-zhSlmXOp.js +7 -0
  20. package/dist/dash/standalone/node_modules/contextjsx/dist/index.mjs +1 -0
  21. package/dist/dash/standalone/node_modules/contextjsx/dist/jsx-runtime.mjs +1 -0
  22. package/dist/dash/standalone/node_modules/contextjsx/dist/src-BJ0QFeB8.mjs +2 -0
  23. package/dist/dash/standalone/node_modules/contextjsx/package.json +70 -0
  24. package/dist/dash/standalone/server/build-index.json +1 -1
  25. package/dist/dash/standalone/server/manifest.json +1302 -1282
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/turn.6bb73458768e222e.js +129 -0
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.0de14cb4e30bd70d.js → index.de1f1311bab4252f.js} +12 -6
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{defaults.1b615366c56838a1.js → defaults.e972c134a1ae918f.js} +3 -5
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.60308a11f7001eb7.js → log-view.ec6391dbf3063330.js} +40 -48
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.be791a5eaf328738.js → load.30ed8c28774a1a82.js} +4 -4
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.0fbfdba5254f7ae5.js → page.04762872666a6f0a.js} +1 -1
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.70913bd4075da914.js → page.118a70787eff1761.js} +23 -3
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.5f88059c03cf82b4.js → page.d066b77dd3187026.js} +9 -9
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.b7392d534ce0410e.js → layout.b26006f060cd48f0.js} +9 -9
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.5aae24bbfd90c434.js → page.4b23e9df21433bd3.js} +10 -10
  44. 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
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.91c992fdd3b4a493.js → page.4048048acb374c67.js} +35 -23
  46. 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
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.eb707a9e32718374.js → agent-settings-form.ee0bb2dc4d403ec3.js} +9 -9
  48. 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
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.9ec1ec08ba05da59.js → page.649b4ba135ded99b.js} +7 -7
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.dd9088a4581b1d65.js → loading.195e168e8e41d797.js} +1 -1
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.71dc042821133e82.js → page.96f7573208644f40.js} +1 -1
  52. 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
  53. 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
  54. 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
  55. 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
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.e3179ddf20a7e55d.js → page.e898c4b5ef16ecb0.js} +7 -7
  57. 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
  58. 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
  59. 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
  60. 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
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.62cb8207218e6437.js → editor.471af698b8060eba.js} +32 -21
  62. 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
  63. 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
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.dffb05f2d256d81a.js → page.880bdac7fe843635.js} +5 -5
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.393cf7429eea189e.js → layout.81f7e055829854a3.js} +5 -5
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.09bf294d753ee9d7.js +115 -0
  67. 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
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.24a1987405ed7b17.js → page.fe608b8e661aba1d.js} +1 -1
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.56520888d5270b88.js → loading.76f851da5cc5268d.js} +5 -5
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.25b29e72df84806b.js → page.ddb594bb6567ee13.js} +6 -6
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.51fbeac76459433a.js +240 -0
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.f2e902c8208b2e78.js → task-view.3276538e8306fd8a.js} +28 -28
  89. 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
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.b0bb1faaac8e0b6c.js → composer.dbf06b05c5e2eba3.js} +9 -9
  91. 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
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.a0c68180db5fb4c1.js → task.f089c1c122ed6dd2.js} +17 -4
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.b52a49fb5faeefd0.js → tasks-list.5a00d69851dae119.js} +37 -22
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.80f9c9a42ecae854.js → tasks-section.36e70c93f7d0feee.js} +7 -7
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.20b5c22658eae312.js → page.185b1ba0c803db3f.js} +4 -4
  96. 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
  97. 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
  98. 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
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.185dbc99875e208a.js → layout.296d70b95894209f.js} +1 -1
  100. 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
  101. 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
  102. 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
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.e2915852cf82c86b.js → stream.c32d78562f75db25.js} +1 -1
  104. 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
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.180765bdadf6d602.js → back.d6109e72fbd04b45.js} +2 -2
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.572ad93c7707ab27.js → org.d3abfd4053b711ce.js} +1 -1
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.c1281f9b12854210.js → confirm.29e198be34578222.js} +1 -1
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.3a452a262f040973.js → filter.81bb9a5c60cd1089.js} +1 -1
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.25d53e5b41b9c4e5.js → modal.0b69c7fd9db025b9.js} +1 -1
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.a08dc08338d080e9.js → segmented.633abe26ff760e37.js} +1 -1
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.17cffebfc3103b9f.js → sentinel.0ddf515b8f09ef9f.js} +1 -1
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.66b2e54963f6901b.js → tabs.1600a0b563a5c7dd.js} +1 -1
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.24036899654de6df.js → toolbar.8b3a460a65edf85a.js} +1 -1
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.b9a5c37272250e82.js → action.67dd6f8ab1ae067d.js} +1 -1
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.a3928fa2dcd27b75.js → client.78267fa3d7905d17.js} +1 -1
  116. package/dist/dash/standalone/static/assets/chunks/action-a76e495fb39a73d3.js +1 -0
  117. package/dist/dash/standalone/static/assets/chunks/{agent-pills-bd32cb89331aff7e.js → agent-pills-4d3c6a2aa9eb1522.js} +1 -1
  118. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-f7231a66e391f6b6.js +1 -0
  119. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-a45b95908d62f926.js → agent-toggle-d7d27123f2070f18.js} +1 -1
  120. package/dist/dash/standalone/static/assets/chunks/{agents-grid-9f79b5074899c8be.js → agents-grid-185ecb3d86c6c447.js} +1 -1
  121. package/dist/dash/standalone/static/assets/chunks/{back-b0cd2b85c9d8403e.js → back-e29cb10f5548ddae.js} +1 -1
  122. package/dist/dash/standalone/static/assets/chunks/{combo-1050768988cd0347.js → combo-702c94817bf6ac17.js} +1 -1
  123. package/dist/dash/standalone/static/assets/chunks/composer-56ebf36d63400423.js +1 -0
  124. package/dist/dash/standalone/static/assets/chunks/{composer-87f138e21d68370d.js → composer-a686289a79f64bae.js} +1 -1
  125. package/dist/dash/standalone/static/assets/chunks/composer-data-f46a9bc7a14b4f9a.js +1 -0
  126. package/dist/dash/standalone/static/assets/chunks/{confirm-01d5814b1c5f7721.js → confirm-a78147b6ecef3847.js} +1 -1
  127. package/dist/dash/standalone/static/assets/chunks/connect-apps-696726aedab42c96.js +1 -0
  128. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-49098298b3a82647.js → connect-repositories-7770ab805160028d.js} +1 -1
  129. package/dist/dash/standalone/static/assets/chunks/connections-list-07559f145f3e3da3.js +1 -0
  130. package/dist/dash/standalone/static/assets/chunks/{copy-5db9d328f8f65d82.js → copy-bdc60bdafe336316.js} +1 -1
  131. package/dist/dash/standalone/static/assets/chunks/create-link-426b0a5871ee41dd.js +1 -0
  132. package/dist/dash/standalone/static/assets/chunks/credentials-list-f07d090410104148.js +1 -0
  133. package/dist/dash/standalone/static/assets/chunks/{custom-range-fdf1946aac09cfc3.js → custom-range-6618f32ef6cd4e80.js} +1 -1
  134. package/dist/dash/standalone/static/assets/chunks/editor-0860e370cbfc6b03.js +6 -0
  135. package/dist/dash/standalone/static/assets/chunks/engines-list-31b9bb7885924b05.js +1 -0
  136. package/dist/dash/standalone/static/assets/chunks/{field-c530e261587d94df.js → field-bb8191aa02d07282.js} +1 -1
  137. package/dist/dash/standalone/static/assets/chunks/instructions-06b63e558f879da5.js +1 -0
  138. package/dist/dash/standalone/static/assets/chunks/{instructions-3ea5afeea1992bf2.js → instructions-2d9fbcbfadac4f40.js} +1 -1
  139. package/dist/dash/standalone/static/assets/chunks/list-2773686bf8df64c7.js +1 -0
  140. package/dist/dash/standalone/static/assets/chunks/models-list-03611e64b6a07efe.js +1 -0
  141. package/dist/dash/standalone/static/assets/chunks/{notice-8939183c8a889bae.js → notice-d14fdac28139c0a8.js} +1 -1
  142. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-d3ba8ef89c59f801.js +1 -0
  143. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-6323cb5300b6d3c9.js → outcome-dialog-fde11a52c282301d.js} +1 -1
  144. package/dist/dash/standalone/static/assets/chunks/platform-actions-2a71c62b9f7eaef3.js +1 -0
  145. package/dist/dash/standalone/static/assets/chunks/platform-actions-70600c9943320152.js +1 -0
  146. package/dist/dash/standalone/static/assets/chunks/runners-list-edf536eb8003eab5.js +1 -0
  147. package/dist/dash/standalone/static/assets/chunks/{runtime-71b727f8f5906f08-1.js → runtime-6e12333f12903a62-1.js} +1 -1
  148. package/dist/dash/standalone/static/assets/chunks/secrets-list-e86122f73525ff95.js +1 -0
  149. package/dist/dash/standalone/static/assets/chunks/segmented-0b6dc6b93c35e0f5.js +1 -0
  150. package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +1 -0
  151. package/dist/dash/standalone/static/assets/chunks/shared-init-b281027d465e004f.js +5 -0
  152. package/dist/dash/standalone/static/assets/chunks/shared-init-c3bd249cf1eca6d1.js +2 -0
  153. package/dist/dash/standalone/static/assets/chunks/side-toggle-9b3af821cfe4c824.js +1 -0
  154. package/dist/dash/standalone/static/assets/chunks/{tail-81b69d49bfebfd4c.js → tail-f8804b80cf32f8d0.js} +1 -1
  155. package/dist/dash/standalone/static/assets/chunks/task-a37e7c26e82eb77d.js +1 -0
  156. package/dist/dash/standalone/static/assets/chunks/task-actions-705395565f2d83b8.js +1 -0
  157. package/dist/dash/standalone/static/assets/chunks/task-view-cb21169f38b56d15.js +6 -0
  158. package/dist/dash/standalone/static/assets/chunks/tasks-list-d7dccfd7e0623ae0.js +1 -0
  159. package/dist/dash/standalone/static/assets/chunks/{versions-list-fbeed95c0b4e5f0f.js → versions-list-f8f2e71df691efda.js} +1 -1
  160. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-71b727f8f5906f08-0.js → wular-pnext-6e12333f12903a62-0.js} +1 -1
  161. package/dist/dash/standalone/static/assets/create-param-id-c2c756f652f2fc30.css +1 -0
  162. package/dist/dash/standalone/static/assets/{dash-param-org-account-9471bec93c444232.css → dash-param-org-account-702f8a1b213e4026.css} +1 -1
  163. package/dist/dash/standalone/static/assets/dash-param-org-agents-aad2f9f93c06e9ab.css +1 -0
  164. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-f9dcbcec36586f2b.css +1 -0
  165. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-8ff47f5d622c1f9b.css +1 -0
  166. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-907036d553cfeb36.css +1 -0
  167. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-5cc77badad15f00c.css +1 -0
  168. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-705d7c15868b4fd6.css +1 -0
  169. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-04e189c045098772.css +1 -0
  170. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-76fcd1ce7b3dae71.css +1 -0
  171. package/dist/dash/standalone/static/assets/{dash-param-org-bcfa3de29341d5ba.css → dash-param-org-eccb6bb9297a53e6.css} +1 -1
  172. package/dist/dash/standalone/static/assets/dash-param-org-operator-635a121f7a9a95bd.css +1 -0
  173. package/dist/dash/standalone/static/assets/{dash-param-org-settings-6d6902345d88a687.css → dash-param-org-settings-a3297dc4d9e0c961.css} +1 -1
  174. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-bcb06f81d9e8268d.css +1 -0
  175. package/dist/dash/standalone/static/assets/{dash-param-org-setup-173efecd7b990c2e.css → dash-param-org-setup-df4be8b188b9777f.css} +1 -1
  176. package/dist/dash/standalone/static/assets/dash-param-org-tasks-16f9866a1b4801cd.css +1 -0
  177. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-02ae551dcd852b57.css +1 -0
  178. package/dist/dash/standalone/static/assets/dash-param-org-usage-f2175403069aab99.css +1 -0
  179. package/dist/dash/standalone/static/assets/{global-87e1762113874559.css → global-e1de614478b64717.css} +1 -1
  180. package/dist/dash/standalone/static/assets/pnext-client-0dc829ba60df5c26.js +1 -0
  181. package/dist/dash/standalone/static/assets/pnext-client-14d191f7f1da6602.js +1 -0
  182. package/dist/dash/standalone/static/assets/pnext-client-169eaa63783b71fd.js +1 -0
  183. package/dist/dash/standalone/static/assets/pnext-client-1e34cfefafa70fac.js +1 -0
  184. package/dist/dash/standalone/static/assets/pnext-client-285d61f00a80f40b.js +1 -0
  185. package/dist/dash/standalone/static/assets/pnext-client-35b89c3ba23ee845.js +1 -0
  186. package/dist/dash/standalone/static/assets/pnext-client-6c42784e005d4b87.js +1 -0
  187. package/dist/dash/standalone/static/assets/pnext-client-6cd93f9bd4cf6ffd.js +1 -0
  188. package/dist/dash/standalone/static/assets/pnext-client-7355f473fade532d.js +1 -0
  189. package/dist/dash/standalone/static/assets/pnext-client-815c3c297f75efb0.js +1 -0
  190. package/dist/dash/standalone/static/assets/pnext-client-87fe73c10a4dc33c.js +1 -0
  191. package/dist/dash/standalone/static/assets/pnext-client-98b56a142d441260.js +1 -0
  192. package/dist/dash/standalone/static/assets/pnext-client-b4bafe68a40f720b.js +1 -0
  193. package/dist/dash/standalone/static/assets/pnext-client-bf61ff39bdc0db48.js +1 -0
  194. package/dist/dash/standalone/static/assets/pnext-client-c9fa86c244813f74.js +1 -0
  195. package/dist/dash/standalone/static/assets/pnext-client-d2e7a75e16221224.js +1 -0
  196. package/dist/dash/standalone/static/assets/pnext-client-d34e774405ea8da8.js +1 -0
  197. package/dist/dash/standalone/static/assets/pnext-client-d511822afdb41d1d.js +1 -0
  198. package/dist/dash/standalone/static/assets/pnext-client-e113aa2f25ecfe01.js +1 -0
  199. package/dist/dash/standalone/static/assets/{pnext-client-e4c659a371f4cd79.js → pnext-client-eb62f461d0c32266.js} +1 -1
  200. package/dist/discover-CHfF4cEz.js +1 -0
  201. package/dist/docs-KHc0_gFX.js +2 -0
  202. package/dist/drive-Bwl7Bjme.js +1 -0
  203. package/dist/emit-BrkJJPUE.js +11 -0
  204. package/dist/env-6Y-NNnYD.js +1 -0
  205. package/dist/errors-DO_IltpP.js +16 -0
  206. package/dist/exec-BmTa0vcO.js +4 -0
  207. package/dist/executor-ufWRqhdS.js +11 -0
  208. package/dist/flow/builtin/review/index.d.ts +2 -0
  209. package/dist/flow/builtin/review/index.js +16 -0
  210. package/dist/flow/index.d.ts +1 -1
  211. package/dist/flow/index.js +1 -1
  212. package/dist/hook-CIipj9MJ.js +1 -0
  213. package/dist/http-Cg8PSe-c.js +1 -0
  214. package/dist/{types-C6NAqGqn.d.ts → index-ChcxzFdB.d.ts} +734 -285
  215. package/dist/integrations-I7fRDk_l.js +4 -0
  216. package/dist/lib/broker.js +2 -2
  217. package/dist/load-BDlEFetB.js +2 -0
  218. package/dist/local-COlczLwI.js +5 -0
  219. package/dist/log-view-CfX9lakH.js +4 -0
  220. package/dist/maintenance-CKCIWOvn.js +1 -0
  221. package/dist/{match-BwcxeAZF.js → match-CufHAZQH.js} +1 -1
  222. package/dist/mcp-BkwmRHI9.js +2 -0
  223. package/dist/mcp-CGU7aoJ-.js +1 -0
  224. package/dist/mcp-DAHbhfUh.js +13 -0
  225. package/dist/models-CzggS7p2.js +1 -0
  226. package/dist/output-SNqdgh9A.js +17 -0
  227. package/dist/permission-MWFjKxqX.js +1 -0
  228. package/dist/prompt-CIx4jwQF.js +8 -0
  229. package/dist/refresh-CxsaX5R9.js +1 -0
  230. package/dist/remote-C9Hj2cby.js +2 -0
  231. package/dist/remote-HUZCWgfl.js +3 -0
  232. package/dist/runner-DYysY1-G.js +1 -0
  233. package/dist/runner.json +1 -1
  234. package/dist/runner.tgz +0 -0
  235. package/dist/runners-CfaGE0nV.js +36 -0
  236. package/dist/schema.d.ts +1 -1
  237. package/dist/schema.js +8 -1
  238. package/dist/sdk.d.ts +12733 -4
  239. package/dist/sdk.js +1 -1
  240. package/dist/serve-DdAdw7Su.js +4 -0
  241. package/dist/serve-NQykWAKV.js +1 -0
  242. package/dist/serve-vKNqVaVy.js +12 -0
  243. package/dist/slack-BtKvW_4v.js +5 -0
  244. package/dist/task-CFxs0E_J.js +1 -0
  245. package/dist/task-iuYQ0zAK.js +7 -0
  246. package/dist/tools-B6ZxcqRi.js +2 -0
  247. package/dist/tools-FVop8XYG.js +1 -0
  248. package/dist/tools-search-kjKKolwp.js +1 -0
  249. package/dist/turn-DQ13lkPF.js +2 -0
  250. package/dist/types-DPtbvoo3.js +1 -0
  251. package/dist/types-DmThhjcW.js +1 -0
  252. package/dist/views-CMHXBMJp.js +3 -0
  253. package/dist/{wire-nJ7sEi-M.js → wire-C9CupY_A.js} +1 -1
  254. package/dist/worker-BQpx1dPr.js +9 -0
  255. package/dist/worker-sTJL2eoe.js +1 -0
  256. package/docs/access.md +33 -0
  257. package/docs/agents/coder.md +0 -11
  258. package/docs/agents/index.md +18 -20
  259. package/docs/cli/agent.md +137 -0
  260. package/docs/cli/auth.md +48 -0
  261. package/docs/cli/connection.md +89 -0
  262. package/docs/cli/credentials.md +58 -0
  263. package/docs/cli/flow.md +158 -0
  264. package/docs/cli/index.md +139 -0
  265. package/docs/cli/model.md +118 -0
  266. package/docs/cli/runner.md +92 -0
  267. package/docs/cli/server.md +89 -0
  268. package/docs/cli/task.md +273 -0
  269. package/docs/config.md +5 -15
  270. package/docs/flows.md +1 -7
  271. package/docs/mcp.md +8 -8
  272. package/docs/models.md +7 -6
  273. package/docs/review.md +4 -0
  274. package/docs/sdk.md +29 -29
  275. package/docs/self-host.md +25 -25
  276. package/package.json +3 -1
  277. package/plugins/agents/skills/coder/SKILL.md +16 -1
  278. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  279. package/plugins/claude/.mcp.json +5 -0
  280. package/plugins/claude/skills/dispatch/SKILL.md +16 -1
  281. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  282. package/plugins/cursor/skills/coder/SKILL.md +16 -1
  283. package/dist/actions-Cwe3IDVs.js +0 -2
  284. package/dist/adapter-Bi768A94.js +0 -1
  285. package/dist/add-B6vPKZEr.js +0 -1
  286. package/dist/add-n6c9OINP.js +0 -2
  287. package/dist/add-v1Pv00HX.js +0 -1
  288. package/dist/add-wC8ByRgM.js +0 -6
  289. package/dist/agent-BkxXgha0.js +0 -1
  290. package/dist/alias-A8ObWElH.js +0 -2
  291. package/dist/app-CaxTL1H3.js +0 -1
  292. package/dist/approvals-h5lytkey.js +0 -2
  293. package/dist/approve-BNhg0MLi.js +0 -2
  294. package/dist/approve-BiHM8kSo.js +0 -1
  295. package/dist/apps-BNe86LfS.js +0 -367
  296. package/dist/archive-CMHRsVYf.js +0 -4
  297. package/dist/archive-H2B7Me8E.js +0 -3
  298. package/dist/args-CURX44CA.js +0 -1
  299. package/dist/ask-D8TIVhPl.js +0 -4
  300. package/dist/auth-BSMPjhnz.js +0 -1
  301. package/dist/auth-D3quZAKT.js +0 -1
  302. package/dist/chat-3AvUDOwf.js +0 -13
  303. package/dist/chat-bridge-BmqYsASZ.js +0 -2
  304. package/dist/cli-BBlH53hA.js +0 -9
  305. package/dist/config-K6Rrjsee.js +0 -3
  306. package/dist/connection-B-IB8tlP.js +0 -1
  307. package/dist/connection-BXBDeoax.js +0 -1
  308. package/dist/create-CP_JmJnh.js +0 -1
  309. package/dist/credentials-BRFajC0d.js +0 -1
  310. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/event-prompt.87f064ca0141e796.js +0 -30
  311. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.a244f3199e7cf09c.js +0 -144
  312. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.587da79d68ab8d14.js +0 -151
  313. package/dist/dash/standalone/static/assets/chunks/action-fc8716cda7527d8c.js +0 -1
  314. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-f5576a2c50fce094.js +0 -1
  315. package/dist/dash/standalone/static/assets/chunks/composer-8f0e8b1d07e74aad.js +0 -1
  316. package/dist/dash/standalone/static/assets/chunks/composer-data-5fed6c271a4791ca.js +0 -1
  317. package/dist/dash/standalone/static/assets/chunks/connect-apps-857dc9fa3f6f5bbc.js +0 -1
  318. package/dist/dash/standalone/static/assets/chunks/connections-list-46d48443d8fc8a0d.js +0 -1
  319. package/dist/dash/standalone/static/assets/chunks/create-link-6b6e9eeac436c4af.js +0 -1
  320. package/dist/dash/standalone/static/assets/chunks/credentials-list-3cccc85ef335cb22.js +0 -1
  321. package/dist/dash/standalone/static/assets/chunks/defaults-52f30e83d7666f7a.js +0 -1
  322. package/dist/dash/standalone/static/assets/chunks/editor-d2460c315bb1fd32.js +0 -6
  323. package/dist/dash/standalone/static/assets/chunks/engines-list-0159c8baa0b3e711.js +0 -1
  324. package/dist/dash/standalone/static/assets/chunks/instructions-d8884576a18e6cdb.js +0 -1
  325. package/dist/dash/standalone/static/assets/chunks/list-b67ce61483dd6acb.js +0 -1
  326. package/dist/dash/standalone/static/assets/chunks/models-list-98c956ba00913a73.js +0 -1
  327. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-be3fbe8c4b43d180.js +0 -1
  328. package/dist/dash/standalone/static/assets/chunks/platform-actions-aafbf038008de64f.js +0 -1
  329. package/dist/dash/standalone/static/assets/chunks/platform-actions-ed27388f722b4a4c.js +0 -1
  330. package/dist/dash/standalone/static/assets/chunks/runners-list-a13d0f8f6583c6d2.js +0 -1
  331. package/dist/dash/standalone/static/assets/chunks/secrets-list-53a0c079492199c9.js +0 -1
  332. package/dist/dash/standalone/static/assets/chunks/segmented-a3642b8169857fb1.js +0 -1
  333. package/dist/dash/standalone/static/assets/chunks/shared-init-6cad28f8cc696d91.js +0 -2
  334. package/dist/dash/standalone/static/assets/chunks/shared-init-71b727f8f5906f08-2.js +0 -1
  335. package/dist/dash/standalone/static/assets/chunks/shared-init-94883db7bc70a5a8.js +0 -5
  336. package/dist/dash/standalone/static/assets/chunks/side-toggle-a2f67a8671a0309b.js +0 -1
  337. package/dist/dash/standalone/static/assets/chunks/task-95daa40d39de664f.js +0 -1
  338. package/dist/dash/standalone/static/assets/chunks/task-actions-25c70b47b5a53cd2.js +0 -1
  339. package/dist/dash/standalone/static/assets/chunks/task-view-e5ee0ada38552918.js +0 -5
  340. package/dist/dash/standalone/static/assets/chunks/tasks-list-d58f3063ae31d9d2.js +0 -1
  341. package/dist/dash/standalone/static/assets/create-param-id-da3f7e20689fe51a.css +0 -1
  342. package/dist/dash/standalone/static/assets/dash-param-org-agents-64500e78caae32df.css +0 -1
  343. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-c067c22928a2d7cc.css +0 -1
  344. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-9dec87710e04f949.css +0 -1
  345. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-779c474301e04440.css +0 -1
  346. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-c7d594b5232630c2.css +0 -1
  347. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-a80e62570716fdb9.css +0 -1
  348. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-ce278252012297b9.css +0 -1
  349. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-d3b6d701eb8e1403.css +0 -1
  350. package/dist/dash/standalone/static/assets/dash-param-org-operator-b7bc6447cc27c9ce.css +0 -1
  351. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-85c7af9a89eef06e.css +0 -1
  352. package/dist/dash/standalone/static/assets/dash-param-org-tasks-ae0bc03f468e63cc.css +0 -1
  353. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-7325d8cff5be3592.css +0 -1
  354. package/dist/dash/standalone/static/assets/dash-param-org-usage-517b2a7ae462ac57.css +0 -1
  355. package/dist/dash/standalone/static/assets/pnext-client-037852a9f274c8c8.js +0 -1
  356. package/dist/dash/standalone/static/assets/pnext-client-10eac8df53f62104.js +0 -1
  357. package/dist/dash/standalone/static/assets/pnext-client-12635905e9754177.js +0 -1
  358. package/dist/dash/standalone/static/assets/pnext-client-12955733c71cc641.js +0 -1
  359. package/dist/dash/standalone/static/assets/pnext-client-26999113ea61d5b9.js +0 -1
  360. package/dist/dash/standalone/static/assets/pnext-client-27b6e4b7d1697094.js +0 -1
  361. package/dist/dash/standalone/static/assets/pnext-client-34fec171024dd082.js +0 -1
  362. package/dist/dash/standalone/static/assets/pnext-client-44eb6d4096f7e875.js +0 -1
  363. package/dist/dash/standalone/static/assets/pnext-client-4c558a168b95d9b1.js +0 -1
  364. package/dist/dash/standalone/static/assets/pnext-client-5d21f3dd3f4407af.js +0 -1
  365. package/dist/dash/standalone/static/assets/pnext-client-5fe04a4e1dff28a3.js +0 -1
  366. package/dist/dash/standalone/static/assets/pnext-client-88bbc009041aa776.js +0 -1
  367. package/dist/dash/standalone/static/assets/pnext-client-b36106c6b8a6cd35.js +0 -1
  368. package/dist/dash/standalone/static/assets/pnext-client-b47dda1cd4cfac04.js +0 -1
  369. package/dist/dash/standalone/static/assets/pnext-client-b556f5611fdcf545.js +0 -1
  370. package/dist/dash/standalone/static/assets/pnext-client-b8485144ca29d436.js +0 -1
  371. package/dist/dash/standalone/static/assets/pnext-client-c5c3c90b3518c5a8.js +0 -1
  372. package/dist/dash/standalone/static/assets/pnext-client-f139547dc55d7d76.js +0 -1
  373. package/dist/dash/standalone/static/assets/pnext-client-fd280710b31af681.js +0 -1
  374. package/dist/default-Ojx5oFuw.js +0 -1
  375. package/dist/delete-D1hEPpsk.js +0 -2
  376. package/dist/delete-UyzcQPoG.js +0 -4
  377. package/dist/disable-Dml_Slph.js +0 -1
  378. package/dist/discover-CyIfIBGD.js +0 -3
  379. package/dist/dispatch-CFZ9Crvg.js +0 -8
  380. package/dist/docs-BUHKbQjM.js +0 -2
  381. package/dist/docs-CvjWiada.js +0 -2
  382. package/dist/drive-BqunNi9n.js +0 -1
  383. package/dist/enable-xye-Nanc.js +0 -1
  384. package/dist/env-BgE9ipvN.js +0 -1
  385. package/dist/exec-Cprez703.js +0 -3
  386. package/dist/executor-3QMa-XRY.js +0 -11
  387. package/dist/flow/builtin/review.d.ts +0 -2
  388. package/dist/flow/builtin/review.js +0 -12
  389. package/dist/flow-CtillCQY.js +0 -1
  390. package/dist/history-C53URBjs.js +0 -8
  391. package/dist/http-CDZKt5ln.js +0 -1
  392. package/dist/hub-B0WCXtsP.js +0 -2
  393. package/dist/init-HdSVUozH.js +0 -1
  394. package/dist/integrations-BdLs4W6o.js +0 -1
  395. package/dist/integrations-IGnXBrPw.js +0 -2
  396. package/dist/list-1IMeVNg3.js +0 -1
  397. package/dist/list-BTjIMvNs.js +0 -1
  398. package/dist/list-BlOB32n6.js +0 -4
  399. package/dist/list-CZGTVKcS.js +0 -4
  400. package/dist/list-CquHtsmW.js +0 -3
  401. package/dist/list-CxjPT0Il.js +0 -1
  402. package/dist/list-DvFVuGT_.js +0 -1
  403. package/dist/list-gFnOS9Hk.js +0 -2
  404. package/dist/load-Q9fL4VC6.js +0 -2
  405. package/dist/local-Bzdmzc1o.js +0 -5
  406. package/dist/log-view-CL3_S0IQ.js +0 -3
  407. package/dist/login-C723kHh6.js +0 -1
  408. package/dist/login-Dq3r6gh6.js +0 -1
  409. package/dist/logout-DEg0aTmq.js +0 -1
  410. package/dist/maintenance-DYOstY6V.js +0 -1
  411. package/dist/mcp-CKqinFkk.js +0 -1
  412. package/dist/mcp-Dsl3Xdd3.js +0 -13
  413. package/dist/mcp-server-BlP9lACI.js +0 -1
  414. package/dist/model-Bs27g5EX.js +0 -1
  415. package/dist/models-Cb0ZTKZ7.js +0 -1
  416. package/dist/output-BKeyLbvt.js +0 -5
  417. package/dist/prompt-PEgcMJO7.js +0 -8
  418. package/dist/prompts-Bj4Fbd_n.js +0 -78
  419. package/dist/push-DpEW4XbQ.js +0 -1
  420. package/dist/reconnect-BmP_XXDv.js +0 -1
  421. package/dist/refresh-SHNJq9Cx.js +0 -1
  422. package/dist/remote-D3JZ4MMQ.js +0 -3
  423. package/dist/remove-BZZgJq8Z.js +0 -1
  424. package/dist/remove-CId1EwPg.js +0 -1
  425. package/dist/remove-Ci87WQq0.js +0 -1
  426. package/dist/remove-DxCv9BB4.js +0 -1
  427. package/dist/rename-DJaf5SwH.js +0 -1
  428. package/dist/result-BesDQ-b1.js +0 -5
  429. package/dist/result-D0dpv2O_.js +0 -18
  430. package/dist/resume-2Y0uC5MM.js +0 -3
  431. package/dist/review-DIm9oK_W.js +0 -7
  432. package/dist/review-Dxs-idTn.d.ts +0 -566
  433. package/dist/rotate-key-CS1G6ReH.js +0 -1
  434. package/dist/run-BKUd6B8S.js +0 -2
  435. package/dist/run-DjTTb8oA.js +0 -5
  436. package/dist/run-UPW-7pKo.js +0 -2
  437. package/dist/runner-BLS_ReEw.js +0 -1
  438. package/dist/runner-BM_98EQl.js +0 -1
  439. package/dist/runners-DyLnqHKy.js +0 -36
  440. package/dist/schema-CjHmulYJ.js +0 -8
  441. package/dist/sdk-B4Cl0Hbw.d.ts +0 -12551
  442. package/dist/serve-BApfeXk8.js +0 -12
  443. package/dist/serve-DE1cKoGa.js +0 -1
  444. package/dist/serve-lF97RlpX.js +0 -2
  445. package/dist/serve-mXTjboT1.js +0 -1
  446. package/dist/server-CUsxAflx.js +0 -1
  447. package/dist/setup-host-tlsilI6C.js +0 -6
  448. package/dist/show-Dn7zTz-9.js +0 -1
  449. package/dist/show-uyUpeqa9.js +0 -1
  450. package/dist/slack-DhPhLuWb.js +0 -5
  451. package/dist/status-D_1VGn9F.js +0 -1
  452. package/dist/steer-CMp-a7v2.js +0 -4
  453. package/dist/stop-C7YjN2sB.js +0 -1
  454. package/dist/stop-D8G7AtdY.js +0 -3
  455. package/dist/task-DJ6nruuA.js +0 -1
  456. package/dist/task-DeFLNmQH.js +0 -1
  457. package/dist/task-bkoi8_NN.js +0 -7
  458. package/dist/test-BD9rvefN.js +0 -1
  459. package/dist/tools-CdWkwI1g.js +0 -1
  460. package/dist/types-D_xnfP7m.js +0 -1
  461. package/dist/unalias-bL5t8Isc.js +0 -1
  462. package/dist/update-DIYW08ME.js +0 -2
  463. package/dist/upgrade-3fH6dGJw.js +0 -2
  464. package/dist/usage-Dr8F0xt0.js +0 -1
  465. package/dist/views-CE2d9x6T.js +0 -5
  466. package/dist/watch-BiyN4NxE.js +0 -5
  467. package/dist/watch-DJXu13jK.js +0 -9
  468. package/dist/worker-CHD_OiQS.js +0 -1
  469. package/dist/worker-KfrTK_Dk.js +0 -2
  470. package/dist/workflow-C21qQ4rT.js +0 -1
  471. package/docs/agents/prompt.md +0 -231
  472. package/docs/cli.md +0 -155
  473. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.0a735590a5412ea6.js → errors.1bd0542d832ae0c0.js} +0 -0
  474. /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
  475. /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
  476. /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
  477. /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
  478. /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
  479. /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
  480. /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
  481. /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
  482. /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
  483. /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
  484. /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
  485. /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{b as I}from"./chunks/back-b0cd2b85c9d8403e.js";import{a as p,b as c,c as l,d as f,e as C,f as u}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as r,$3i as s}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as m,$0k as a}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:R,remountRoute:P,unmountRoute:b}=t({islands:[{id:"c-1ac5924051",options:{},load:()=>import("./chunks/models-list-98c956ba00913a73.js").then(o=>o.ModelsList)},{id:"c-2a1887a0ac",options:{},load:()=>import("./chunks/secrets-list-53a0c079492199c9.js").then(o=>o.TaskSecrets)},{id:"c-3152e3eeba",Component:r},{id:"c-34706dc412",options:{},load:()=>import("./chunks/credentials-list-3cccc85ef335cb22.js").then(o=>o.EngineLogins)},{id:"c-44689ff458",Component:p},{id:"c-450a8c0d7f",options:{},load:()=>import("./chunks/runners-list-a13d0f8f6583c6d2.js").then(o=>o.RunnersList)},{id:"c-4e8ca4da33",Component:I},{id:"c-54d48b04c1",Component:c},{id:"c-74daf303c0",Component:s},{id:"c-8b097d487c",Component:l},{id:"c-99efd129c2",Component:f},{id:"c-9ac44950e1",options:{},load:()=>import("./chunks/engines-list-0159c8baa0b3e711.js").then(o=>o.EnginesList)},{id:"c-bb95fb5cd0",options:{},load:()=>import("./chunks/outcome-dialog-be3fbe8c4b43d180.js").then(o=>o.OutcomeDialog)},{id:"c-bd3768138d",Component:n},{id:"c-c2d1844a24",Component:a},{id:"c-c861855933",Component:C},{id:"c-c870abe231",Component:u},{id:"c-ca1e18c91f",Component:d},{id:"c-d0ef3e0346",Component:m},{id:"c-d22db79b78",options:{},load:()=>import("./chunks/credentials-list-3cccc85ef335cb22.js").then(o=>o.CredentialsList)},{id:"c-dee30f9e6a",options:{},load:()=>import("./chunks/connections-list-46d48443d8fc8a0d.js").then(o=>o.ConnectionsList)}]});e();i()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:b});export{R as mountRoute,P as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as I}from"./chunks/back-b0cd2b85c9d8403e.js";import{a as s,b as p,c,d as f,e as l,f as C}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as a,$3i as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as e}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as i,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as m}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-3152e3eeba",Component:a},{id:"c-44689ff458",Component:s},{id:"c-4e8ca4da33",Component:I},{id:"c-54d48b04c1",Component:p},{id:"c-74daf303c0",Component:d},{id:"c-8b097d487c",Component:c},{id:"c-99efd129c2",Component:f},{id:"c-bd3768138d",Component:n},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:l},{id:"c-c870abe231",Component:C},{id:"c-ca1e18c91f",Component:e},{id:"c-d0ef3e0346",Component:i}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a,b as p,c,d as f,e as l,f as u}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as s,$3i as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as i}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as m,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:C,remountRoute:P,unmountRoute:_}=o({islands:[{id:"c-0e17c1e6be",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-d58f3063ae31d9d2.js").then(I=>I.TasksList)},{id:"c-3152e3eeba",Component:s},{id:"c-44689ff458",Component:a},{id:"c-54d48b04c1",Component:p},{id:"c-74daf303c0",Component:d},{id:"c-8b097d487c",Component:c},{id:"c-99efd129c2",Component:f},{id:"c-bd3768138d",Component:n},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:l},{id:"c-c870abe231",Component:u},{id:"c-ca1e18c91f",Component:i},{id:"c-d0ef3e0346",Component:m}]});e();t()||C();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:C,unmountRoute:_});export{C as mountRoute,P as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/custom-range-fdf1946aac09cfc3.js";import{a as R}from"./chunks/agent-toggle-a45b95908d62f926.js";import"./chunks/field-c530e261587d94df.js";import"./chunks/action-fc8716cda7527d8c.js";import"./chunks/format-a27067f0186e78ac.js";import{a as c,b as f,c as l,d as C,e as u,f as I}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as a,$3i as p}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2C as s,$2i as m}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as r,$0k as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:_,remountRoute:D,unmountRoute:b}=n({islands:[{id:"c-0e17c1e6be",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-d58f3063ae31d9d2.js").then(o=>o.TasksList)},{id:"c-3152e3eeba",Component:a},{id:"c-35b309bc7e",Component:T},{id:"c-44689ff458",Component:c},{id:"c-54d48b04c1",Component:f},{id:"c-74daf303c0",Component:p},{id:"c-8419d00b21",options:{},load:()=>import("./chunks/composer-8f0e8b1d07e74aad.js").then(o=>o.NewTaskButton)},{id:"c-8b097d487c",Component:l},{id:"c-99efd129c2",Component:C},{id:"c-bd3768138d",Component:t},{id:"c-c0501a541d",Component:s},{id:"c-c2d1844a24",Component:d},{id:"c-c861855933",Component:u},{id:"c-c870abe231",Component:I},{id:"c-ca1e18c91f",Component:m},{id:"c-d0ef3e0346",Component:r},{id:"c-ef88d7061d",Component:R}]});i();e()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:b});export{_ as mountRoute,D as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as R}from"./chunks/agent-toggle-a45b95908d62f926.js";import{a as _}from"./chunks/composer-87f138e21d68370d.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-95daa40d39de664f.js";import"./chunks/connect-repositories-49098298b3a82647.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/notice-8939183c8a889bae.js";import{a as T}from"./chunks/back-b0cd2b85c9d8403e.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-fc8716cda7527d8c.js";import"./chunks/format-a27067f0186e78ac.js";import{a as f,b as l,c as C,d as I,e as u,f as b}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as p,$3i as c}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2C as s,$2i as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as m,$0k as a,$0l as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:g,remountRoute:j,unmountRoute:h}=t({islands:[{id:"c-0e17c1e6be",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-d58f3063ae31d9d2.js").then(o=>o.TasksList)},{id:"c-18a0dc9be5",options:{},load:()=>import("./chunks/platform-actions-ed27388f722b4a4c.js").then(o=>o.DriftQueue)},{id:"c-3152e3eeba",Component:p},{id:"c-44689ff458",Component:f},{id:"c-54d48b04c1",Component:l},{id:"c-5ee3648746",options:{},load:()=>import("./chunks/platform-actions-ed27388f722b4a4c.js").then(o=>o.PlatformActions)},{id:"c-61854541ef",options:{},load:()=>import("./chunks/platform-actions-ed27388f722b4a4c.js").then(o=>o.InstallButton)},{id:"c-70c81f47fd",Component:_},{id:"c-74daf303c0",Component:c},{id:"c-8419d00b21",options:{},load:()=>import("./chunks/composer-8f0e8b1d07e74aad.js").then(o=>o.NewTaskButton)},{id:"c-8b097d487c",Component:C},{id:"c-99efd129c2",Component:I},{id:"c-b67cafaaf9",Component:r},{id:"c-bb95fb5cd0",options:{},load:()=>import("./chunks/outcome-dialog-be3fbe8c4b43d180.js").then(o=>o.OutcomeDialog)},{id:"c-bd3768138d",Component:n},{id:"c-c0501a541d",Component:s},{id:"c-c2d1844a24",Component:a},{id:"c-c861855933",Component:u},{id:"c-c870abe231",Component:b},{id:"c-ca1e18c91f",Component:d},{id:"c-d0ef3e0346",Component:m},{id:"c-e812bd4faf",Component:T},{id:"c-ef88d7061d",Component:R}]});e();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 p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as a,$3i as s}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2D as d,$2i as i}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as e,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as m}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-15679eb241",Component:d},{id:"c-3152e3eeba",Component:a},{id:"c-44689ff458",Component:p},{id:"c-521cfaedd3",options:{},load:()=>import("./chunks/editor-d2460c315bb1fd32.js").then(_=>_.AgentEditor)},{id:"c-54d48b04c1",Component:c},{id:"c-74daf303c0",Component:s},{id:"c-8b097d487c",Component:f},{id:"c-99efd129c2",Component:l},{id:"c-bd3768138d",Component:n},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:C},{id:"c-c870abe231",Component:I},{id:"c-ca1e18c91f",Component:i},{id:"c-d0ef3e0346",Component:e}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/custom-range-fdf1946aac09cfc3.js";import"./chunks/field-c530e261587d94df.js";import{a as s,b as p,c,d as f,e as l,f as C}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as a,$3i as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as e}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as i,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as m}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:I,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-3152e3eeba",Component:a},{id:"c-35b309bc7e",Component:u},{id:"c-44689ff458",Component:s},{id:"c-54d48b04c1",Component:p},{id:"c-74daf303c0",Component:d},{id:"c-8b097d487c",Component:c},{id:"c-99efd129c2",Component:f},{id:"c-bd3768138d",Component:n},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:l},{id:"c-c870abe231",Component:C},{id:"c-ca1e18c91f",Component:e},{id:"c-d0ef3e0346",Component:i}]});m();t()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:R});export{I as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as _}from"./chunks/agent-toggle-a45b95908d62f926.js";import{a as T}from"./chunks/composer-87f138e21d68370d.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-95daa40d39de664f.js";import"./chunks/connect-repositories-49098298b3a82647.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/notice-8939183c8a889bae.js";import"./chunks/back-b0cd2b85c9d8403e.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-fc8716cda7527d8c.js";import"./chunks/format-a27067f0186e78ac.js";import{a as c,b as f,c as l,d as C,e as I,f as u}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as a,$3i as p}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2C as s,$2i as m}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as d,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:R,remountRoute:B,unmountRoute:b}=n({islands:[{id:"c-0e17c1e6be",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-d58f3063ae31d9d2.js").then(o=>o.TasksList)},{id:"c-3152e3eeba",Component:a},{id:"c-44689ff458",Component:c},{id:"c-54d48b04c1",Component:f},{id:"c-70c81f47fd",Component:T},{id:"c-74daf303c0",Component:p},{id:"c-8419d00b21",options:{},load:()=>import("./chunks/composer-8f0e8b1d07e74aad.js").then(o=>o.NewTaskButton)},{id:"c-8ac5bd4461",options:{},load:()=>import("./chunks/agent-settings-form-f5576a2c50fce094.js").then(o=>o.AgentSettingsForm)},{id:"c-8b097d487c",Component:l},{id:"c-99efd129c2",Component:C},{id:"c-bd3768138d",Component:t},{id:"c-c0501a541d",Component:s},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:I},{id:"c-c870abe231",Component:u},{id:"c-ca1e18c91f",Component:m},{id:"c-d0ef3e0346",Component:d},{id:"c-ef88d7061d",Component:_}]});i();e()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:b});export{R as mountRoute,B as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-a45b95908d62f926.js";import"./chunks/action-fc8716cda7527d8c.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-a2f67a8671a0309b.js";import{$3h as a,$3i as p}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2C as s,$2i as m}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as r,$0k as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:_,remountRoute:x,unmountRoute:R}=n({islands:[{id:"c-0e17c1e6be",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-d58f3063ae31d9d2.js").then(o=>o.TasksList)},{id:"c-3152e3eeba",Component:a},{id:"c-44689ff458",Component:c},{id:"c-54d48b04c1",Component:f},{id:"c-74daf303c0",Component:p},{id:"c-8419d00b21",options:{},load:()=>import("./chunks/composer-8f0e8b1d07e74aad.js").then(o=>o.NewTaskButton)},{id:"c-8b097d487c",Component:l},{id:"c-99efd129c2",Component:u},{id:"c-bd3768138d",Component:t},{id:"c-c0501a541d",Component:s},{id:"c-c2d1844a24",Component:d},{id:"c-c861855933",Component:C},{id:"c-c870abe231",Component:I},{id:"c-ca1e18c91f",Component:m},{id:"c-d0ef3e0346",Component:r},{id:"c-ef88d7061d",Component:T}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,x as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{f as l,g as G}from"./chunks/list-b67ce61483dd6acb.js";import"./chunks/confirm-01d5814b1c5f7721.js";import{a as u}from"./chunks/field-c530e261587d94df.js";import"./chunks/defaults-52f30e83d7666f7a.js";import{a as N}from"./chunks/action-fc8716cda7527d8c.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-a2f67a8671a0309b.js";import{$3h as D,$3i as F}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as B}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as w,$0k as O,$0o as L}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import{$0a as A,$0c as S}from"./chunks/shared-init-94883db7bc70a5a8.js";import{$1L as p,$1N as E,$1a as e,$1t as k}from"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as h}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as y}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as _}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as T}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$2c as b,$2h as c,$2j as I,$2l as R,$2n as v}from"./chunks/shared-init-71b727f8f5906f08-2.js";function W({row:o,product:r,unreachable:i,onClose:t}){let m=R(null),f=v(),[d,g]=c(!1);I(()=>m.current.showModal(),[]);let s=()=>!d&&m.current.close(),V=n=>{let C=a=>String(n.get(a)??"").trim()||void 0;g(!0),S.operator.setUp(o.integration,{name:C("name"),owner:C("owner")}).then(({url:a})=>{location.href=a}).catch(a=>{if(a instanceof A&&a.status===401)return location.reload();g(!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(b,{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-3152e3eeba",Component:D},{id:"c-44689ff458",Component:M},{id:"c-54d48b04c1",Component:P},{id:"c-74daf303c0",Component:F},{id:"c-8b097d487c",Component:U},{id:"c-99efd129c2",Component:z},{id:"c-a3f550bbb1",Component:q},{id:"c-bd3768138d",Component:y},{id:"c-c2d1844a24",Component:O},{id:"c-c861855933",Component:X},{id:"c-c870abe231",Component:x},{id:"c-ca1e18c91f",Component:B},{id:"c-d0ef3e0346",Component:w},{id:"c-e0f570b1d4",Component:l}]});_();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 a,c as s,d as p,e as c,f}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as i,$3i as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as e}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as m}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:l,remountRoute:h,unmountRoute:u}=o({islands:[{id:"c-3152e3eeba",Component:i},{id:"c-44689ff458",Component:d},{id:"c-54d48b04c1",Component:a},{id:"c-74daf303c0",Component:r},{id:"c-8b097d487c",Component:s},{id:"c-99efd129c2",Component:p},{id:"c-bd3768138d",Component:n},{id:"c-c861855933",Component:c},{id:"c-c870abe231",Component:f},{id:"c-d0ef3e0346",Component:e}]});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 _}from"./chunks/agent-toggle-a45b95908d62f926.js";import{a as T}from"./chunks/composer-87f138e21d68370d.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-95daa40d39de664f.js";import"./chunks/connect-repositories-49098298b3a82647.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/notice-8939183c8a889bae.js";import"./chunks/back-b0cd2b85c9d8403e.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-fc8716cda7527d8c.js";import"./chunks/format-a27067f0186e78ac.js";import{a as c,b as l,c as f,d as u,e as C,f as I}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as a,$3i as p}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2C as s,$2i as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as r,$0k as m}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:R,remountRoute:D,unmountRoute:b}=n({islands:[{id:"c-0e17c1e6be",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-d58f3063ae31d9d2.js").then(o=>o.TasksList)},{id:"c-165dc36564",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-fbeed95c0b4e5f0f.js").then(o=>o.VersionsList)},{id:"c-3152e3eeba",Component:a},{id:"c-44689ff458",Component:c},{id:"c-54d48b04c1",Component:l},{id:"c-70c81f47fd",Component:T},{id:"c-74daf303c0",Component:p},{id:"c-8419d00b21",options:{},load:()=>import("./chunks/composer-8f0e8b1d07e74aad.js").then(o=>o.NewTaskButton)},{id:"c-8b097d487c",Component:f},{id:"c-99efd129c2",Component:u},{id:"c-9c0994e737",options:{},load:()=>import("./chunks/instructions-d8884576a18e6cdb.js").then(o=>o.Instructions)},{id:"c-bd3768138d",Component:t},{id:"c-c0501a541d",Component:s},{id:"c-c2d1844a24",Component:m},{id:"c-c861855933",Component:C},{id:"c-c870abe231",Component:I},{id:"c-ca1e18c91f",Component:d},{id:"c-d0ef3e0346",Component:r},{id:"c-ef88d7061d",Component:_}]});e();i()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:b});export{R as mountRoute,D 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-a2f67a8671a0309b.js";import{$3h as d,$3i as s}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2D as a,$2i as i}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as e,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as m}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-15679eb241",Component:a},{id:"c-3152e3eeba",Component:d},{id:"c-44689ff458",Component:p},{id:"c-54d48b04c1",Component:c},{id:"c-74daf303c0",Component:s},{id:"c-8b097d487c",Component:f},{id:"c-99efd129c2",Component:l},{id:"c-b5a3026961",options:{},load:()=>import("./chunks/task-view-e5ee0ada38552918.js").then(_=>_.TaskView)},{id:"c-bd3768138d",Component:n},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:C},{id:"c-c870abe231",Component:I},{id:"c-ca1e18c91f",Component:i},{id:"c-d0ef3e0346",Component:e}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as I}from"./chunks/composer-87f138e21d68370d.js";import"./chunks/composer-data-5fed6c271a4791ca.js";import"./chunks/task-95daa40d39de664f.js";import"./chunks/connect-repositories-49098298b3a82647.js";import"./chunks/model-options-8d2170eebe0d061d.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/notice-8939183c8a889bae.js";import"./chunks/back-b0cd2b85c9d8403e.js";import"./chunks/defaults-52f30e83d7666f7a.js";import"./chunks/action-fc8716cda7527d8c.js";import"./chunks/format-a27067f0186e78ac.js";import{a as p,b as c,c as f,d as l,e as C,f as u}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3h as s,$3i as a}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as m}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as r,$0k as d}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as e}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:_,remountRoute:Y,unmountRoute:R}=n({islands:[{id:"c-3152e3eeba",Component:s},{id:"c-44689ff458",Component:p},{id:"c-54d48b04c1",Component:c},{id:"c-70c81f47fd",Component:I},{id:"c-74daf303c0",Component:a},{id:"c-8b097d487c",Component:f},{id:"c-93f8f1416f",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-9f79b5074899c8be.js").then(o=>o.AgentsGrid)},{id:"c-99efd129c2",Component:l},{id:"c-a325e54133",options:{},load:()=>import("./chunks/connect-apps-857dc9fa3f6f5bbc.js").then(o=>o.ConnectApps)},{id:"c-bd3768138d",Component:t},{id:"c-c2d1844a24",Component:d},{id:"c-c861855933",Component:C},{id:"c-c870abe231",Component:u},{id:"c-ca1e18c91f",Component:m},{id:"c-d0ef3e0346",Component:r}]});i();e()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,Y as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/agent-toggle-a45b95908d62f926.js";import"./chunks/action-fc8716cda7527d8c.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-a2f67a8671a0309b.js";import{$3h as a,$3i as s}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2C as d,$2i as i}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as e,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as m}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:_,remountRoute:x,unmountRoute:T}=o({islands:[{id:"c-3152e3eeba",Component:a},{id:"c-44689ff458",Component:p},{id:"c-521cfaedd3",options:{},load:()=>import("./chunks/editor-d2460c315bb1fd32.js").then(R=>R.AgentEditor)},{id:"c-54d48b04c1",Component:c},{id:"c-74daf303c0",Component:s},{id:"c-8b097d487c",Component:f},{id:"c-99efd129c2",Component:l},{id:"c-bd3768138d",Component:n},{id:"c-c0501a541d",Component:d},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:C},{id:"c-c870abe231",Component:I},{id:"c-ca1e18c91f",Component:i},{id:"c-d0ef3e0346",Component:e},{id:"c-ef88d7061d",Component:u}]});m();t()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:T});export{_ as mountRoute,x as remountRoute,T 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-a2f67a8671a0309b.js";import{$3h as d,$3i as a}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as m}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as e,$0k as r}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as n}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:u,remountRoute:P,unmountRoute:_}=o({islands:[{id:"c-3152e3eeba",Component:d},{id:"c-44689ff458",Component:s},{id:"c-54d48b04c1",Component:p},{id:"c-74daf303c0",Component:a},{id:"c-8b097d487c",Component:c},{id:"c-99efd129c2",Component:f},{id:"c-bd3768138d",Component:n},{id:"c-c2d1844a24",Component:r},{id:"c-c861855933",Component:l},{id:"c-c870abe231",Component:C},{id:"c-ca1e18c91f",Component:m},{id:"c-d0ef3e0346",Component:e},{id:"c-d9fccf0000",options:{},load:()=>import("./chunks/create-link-6b6e9eeac436c4af.js").then(I=>I.CreateLink)}]});i();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:_});export{u as mountRoute,P as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as r}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:m,remountRoute:d,unmountRoute:n}=o({islands:[{id:"c-bd3768138d",Component:t}]});i();r()||m();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:m,unmountRoute:n});export{m as mountRoute,d as remountRoute,n as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as h,b,c as g,d as T,e as k,f as w}from"./chunks/side-toggle-a2f67a8671a0309b.js";import{$3b as t,$3h as C,$3i as N}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$2i as p}from"./chunks/shared-init-6cad28f8cc696d91.js";import{$0j as u,$0k as I}from"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/wular-pnext-71b727f8f5906f08-0.js";import"./chunks/shared-init-6cad28f8cc696d91.js";import"./chunks/shared-init-94883db7bc70a5a8.js";import{$1a as e}from"./chunks/shared-init-94883db7bc70a5a8.js";import{$4a as c}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as d}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as l}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as f}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$2h as s,$2j as m}from"./chunks/shared-init-71b727f8f5906f08-2.js";function _(){let[S,r]=s(!1),[a,i]=s(!1);m(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),r(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let 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}=c({islands:[{id:"c-3152e3eeba",Component:C},{id:"c-44689ff458",Component:h},{id:"c-54d48b04c1",Component:b},{id:"c-74daf303c0",Component:N},{id:"c-8b097d487c",Component:g},{id:"c-99efd129c2",Component:T},{id:"c-a2cd4b0c1a",Component:_},{id:"c-bd3768138d",Component:d},{id:"c-c2d1844a24",Component:I},{id:"c-c861855933",Component:k},{id:"c-c870abe231",Component:w},{id:"c-ca1e18c91f",Component:p},{id:"c-d0ef3e0346",Component:u}]});l();f()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:v});export{R as mountRoute,V as remountRoute,v as unmountRoute};
@@ -1 +0,0 @@
1
- import{$4a as o}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$3a as t}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$1c as r}from"./chunks/shared-init-71b727f8f5906f08-2.js";import{$0i as i}from"./chunks/shared-init-71b727f8f5906f08-2.js";import"./chunks/shared-init-71b727f8f5906f08-2.js";var{mountRoute:n,remountRoute:p,unmountRoute:m}=o({islands:[{id:"c-bd3768138d",Component:t},{id:"c-d9fccf0000",options:{},load:()=>import("./chunks/create-link-6b6e9eeac436c4af.js").then(e=>e.CreateLink)}]});r();i()||n();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:n,unmountRoute:m});export{n as mountRoute,p as remountRoute,m as unmountRoute};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./cli-BBlH53hA.js";import{runnerOptions as n}from"./remove-DxCv9BB4.js";import r from"node:process";const i=e({name:`runner default`,globalFlags:{cwd:!1},args:1,required:[`<id>`],help:{usage:`coder runner default <id> [--server [url]] [--json]`,summary:`Use this runner by default within its scope.`,flags:[t]},options:n,async run({options:e,args:[t]}){let{runners:n}=await import(`./runner-BM_98EQl.js`).then(e=>e.t);return n.default(t,e)},print:e=>r.stdout.write(`Default runner ${e.name}.\n`)});export{i as commandRunnerDefault};
@@ -1,2 +0,0 @@
1
- import{i as e,r as t}from"./cli-BBlH53hA.js";import{p as n}from"./output-BKeyLbvt.js";import{n as r,s as i,t as a}from"./args-CURX44CA.js";import{plural as o}from"./archive-CMHRsVYf.js";import s from"node:process";const c=e({name:`task delete`,help:{usage:`coder task delete <task-id> | coder task delete --all-archived [--server [url]]`,summary:`Delete a task's session from disk. This is permanent. Pass --all-archived to
2
- delete every archived task at once. A running task must be stopped first.`,flags:[[`--all-archived`,`delete every archived task`],t]},options:{...a,"all-archived":r,...i},args:1,run:async({options:e,args:[t]})=>{let{tasks:n}=await import(`./task-DJ6nruuA.js`).then(e=>e.t);return n.delete(t,{...e,organization:e.workspace,allArchived:e[`all-archived`]})},print(e,{options:t}){if(e.count===void 0)return void s.stdout.write(`Deleted task ${n.cyan(e.taskId)}.\n`);s.stdout.write(t.server===void 0?e.count?`Deleted ${e.count} archived task${o(e.count)}.\n`:`${n.dim(`No archived tasks to delete.`)}\n`:`Deleted ${e.count} server task${o(e.count)}.\n`)}});export{c as commandDelete};
@@ -1,4 +0,0 @@
1
- import{i as e}from"./cli-BBlH53hA.js";import{p as t}from"./output-BKeyLbvt.js";import{n,t as r}from"./args-CURX44CA.js";import{plural as i}from"./archive-H2B7Me8E.js";import a from"node:process";const o=e({name:`flow delete`,help:{usage:`coder flow delete <run-id> | coder flow delete --all-archived`,summary:`Delete a flow run's record from disk (its journal, events, and logs). This is
2
- permanent; the run's tasks are ordinary tasks and are not touched. Pass
3
- --all-archived to delete every archived run at once. A running run must be
4
- stopped first.`,flags:[[`--all-archived`,`delete every archived run`]]},options:{...r,"all-archived":n},args:1,run:async({options:e,args:[t]})=>{let{deleteRuns:n}=await import(`./executor-3QMa-XRY.js`).then(e=>e.S);return n(t,{allArchived:e[`all-archived`]})},print(e){if(!(`count`in e))return void a.stdout.write(`Deleted run ${t.cyan(e.runId)}.\n`);a.stdout.write(e.count?`Deleted ${e.count} archived run${i(e.count)}.\n`:`${t.dim(`No archived runs to delete.`)}\n`)}});export{o as commandDelete};
@@ -1 +0,0 @@
1
- import{i as e}from"./cli-BBlH53hA.js";import{t}from"./models-Cb0ZTKZ7.js";import{n}from"./add-wC8ByRgM.js";import{t as r}from"./remove-CId1EwPg.js";const i=(i,a)=>e({name:`model ${i?`disable`:`enable`}`,help:a,options:n,args:1,run:({options:e,args:[n],cwd:r})=>t[i?`disable`:`enable`](n,{...e,cwd:r}),json:({name:e,file:t})=>({[i?`disabled`:`enabled`]:e,file:t}),print:({name:e,file:t})=>r(i?`disabled`:`enabled`,e,t)}),a=i(!0,{usage:`coder model disable <name> [--workspace]`,summary:`Disable a model - built-in, custom, or alias. Requests for it fail until re-enabled.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]});export{a as commandModelDisable,i as toggle};
@@ -1,3 +0,0 @@
1
- import{i as e}from"./cli-BBlH53hA.js";import{g as t,p as n,s as r}from"./output-BKeyLbvt.js";import{t as i}from"./args-CURX44CA.js";import a from"node:path";import o from"node:process";import s from"node:os";const c=e({name:`flow discover`,help:{usage:`coder flow discover [--json]`,summary:`List every flow discoverable from the current directory: workspace flows in
2
- .coder/flows/ (walking up to the repo root) and global flows in ~/.coder/flows/.`},options:i,run:async({cwd:e})=>{let{discoverFlows:t}=await import(`./prompts-Bj4Fbd_n.js`).then(e=>e.b);return t(e)},print:(e,{cwd:t})=>l(e,t)});function l(e,i){if(!e.length){o.stdout.write(`No flows found in .coder/flows/ (workspace) or ~/.coder/flows/ (global).
3
- `),o.stdout.write(`\n${r([`Authoring guide: coder docs flows`],n)}\n`);return}let c=n;o.stdout.write(t([{header:`name`,value:e=>e.name,paint:e=>c.cyan(e)},{header:`scope`,value:e=>e.scope,paint:e=>c.light(e)},{header:`path`,value:e=>e.scope===`workspace`?a.relative(i,e.path)||e.path:e.path.replace(s.homedir(),`~`),paint:e=>c.light(e)}],e,c)),o.stdout.write(`\n${r([`Run one: coder flow run <name>`,`Recent runs: coder flow list`],c)}\n`)}export{c as commandDiscover};
@@ -1,8 +0,0 @@
1
- import{Rt as e,wi as t}from"./core-DwsAMCnL.js";import{$ as n,A as r,An as i,D as a,Dn as o,Dr as s,E as c,En as l,G as u,I as d,Jn as f,Jt as p,L as m,M as h,Mn as g,N as _,Nn as v,O as y,Or as b,P as x,Pn as S,Pt as C,T as w,Tn as T,U as E,V as ee,Vt as D,W as O,Wt as te,X as ne,Yt as re,_ as ie,_r as ae,dr as oe,fn as se,hn as ce,it as le,j as ue,k as de,kr as fe,kt as pe,lr as k,lt as me,mn as he,n as ge,nn as A,on as _e,or as ve,pn as ye,q as be,qt as xe,st as Se,t as Ce,un as we,ur as j,ut as Te,vn as Ee,wn as De,wt as Oe,yn as ke}from"./prompts-Bj4Fbd_n.js";import M from"node:path";import N from"node:process";import{fileURLToPath as Ae}from"node:url";import P from"node:fs";import{spawn as je,spawnSync as F}from"node:child_process";import{createHash as Me,randomUUID as I}from"node:crypto";import L from"node:os";import{setImmediate as Ne}from"node:timers/promises";var R=class extends Error{code;hint;taskId;payload;approval;result;runId;status;needs;constructor(e,t,n={}){super(t),this.name=`CoderError`,this.code=e,Object.assign(this,n)}};const Pe=/access token could not be refreshed/i,Fe=/model is not supported|Codex cannot run model/i;function z(e){return e instanceof Error?e.message:String(e??``)}function B(e){return Pe.test(e??``)}function Ie(e){return Fe.test(e??``)}function Le(e,t){return!Ie(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 Re(e=process.env){return M.join(e.CODEX_HOME||M.join(L.homedir(),`.codex`),`auth.json`)}function ze(e){try{let t=JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString(`utf8`));return String(t.sub??t.email??``)}catch{return``}}function Be(e=process.env,t){let n=Re(e),r;try{r=P.statSync(n).mtimeMs}catch{return``}if(t?.file===n&&t.mtimeMs===r)return t.fingerprint??``;try{let e=JSON.parse(P.readFileSync(n,`utf8`)),i=e.OPENAI_API_KEY?Me(`sha256`).update(String(e.OPENAI_API_KEY)).digest(`hex`):``,a=[e.auth_mode??``,e.tokens?.account_id??``,ze(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??``:``}}function Ve(e,t){let n=`${e}.${I()}.tmp`;P.writeFileSync(n,JSON.stringify(t),{flag:`wx`}),P.renameSync(n,e)}function He(e,t){let n=P.mkdtempSync(M.join(L.tmpdir(),e)),r=new Map,i=!1,a=()=>{try{for(let e of P.readdirSync(n)){if(!e.endsWith(`.request.json`))continue;let a=e.slice(0,-13),o=M.join(n,e),s=M.join(n,`${a}.response.json`);if(P.existsSync(s)){P.rmSync(o,{force:!0});continue}if(r.has(a))continue;let c=`${o}.processing`;P.renameSync(o,c);let l=(async()=>{let e;try{let n=JSON.parse(P.readFileSync(c,`utf8`));if(n.id!==a)throw Error(`Invalid control request id.`);e={id:a,result:await t(n,i)}}catch(t){let n=t;e={id:a,error:{message:n.message,retryable:n.retryable===!0,rpcCode:n.rpcCode}}}Ve(s,e),P.rmSync(c,{force:!0})})();r.set(a,l),l.finally(()=>r.delete(a)).catch(()=>{})}}catch{}},o=oe(n,a),s=setInterval(a,3e4);return s.unref(),{endpoint:`file:${n}`,async close(){if(i)return;i=!0,clearInterval(s);let e=Date.now()+3e3;try{for(;a(),await Promise.allSettled([...r.values()]),await Ne(),!(!P.existsSync(n)||!P.readdirSync(n).some(e=>e.endsWith(`.reader`))||Date.now()>=e);)await o.wait(e-Date.now())}finally{o.close(),P.rmSync(n,{recursive:!0,force:!0})}}}}async function Ue(e,t,n,r){if(!e)return{ok:!1,retryable:!0,detail:`${r} endpoint is not ready.`};if(!e.startsWith(`file:`)||e.length===5)return{ok:!1,retryable:!1,detail:`Unsupported ${r} endpoint: ${e}`};let i=e.slice(5),a=oe(i),o=M.join(i,`${I()}.reader`),s=!1;try{P.writeFileSync(o,``);let e=M.join(i,`${t.id}.response.json`);P.existsSync(e)||Ve(M.join(i,`${t.id}.request.json`),t),s=!0;let c=Date.now()+n;await Ne();let l=await a.until(()=>{try{let n=JSON.parse(P.readFileSync(e,`utf8`));if((!t.command||n?.error?.retryable)&&P.rmSync(e,{force:!0}),n?.id!==t.id)throw Error(`Malformed ${r} response id.`);if(n.error)return{ok:!1,retryable:n.error.retryable===!0,detail:String(n.error.message)};if(!(`result`in n))throw Error(`Malformed ${r} response.`);return{ok:!0,retryable:!1,result:n.result,detail:`${r} accepted control.`}}catch(e){if(e.code!==`ENOENT`)throw e;if(!P.existsSync(i))throw Error(`${r} endpoint closed after control publication; acceptance is unknown.`)}},Math.max(0,c-Date.now()));if(l)return l;throw Error(`Timed out waiting for ${r} acknowledgement.`)}catch(e){return{ok:!1,retryable:!s&&e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}finally{a.close(),P.rmSync(o,{force:!0})}}const We=`CODER_MAILBOX`,Ge=/^([a-f0-9-]{36})\.(?:req|applying)\.json$/;function V(e){if(!e)return I();if(!e.task||!Number.isInteger(e.generation)||e.generation<0||!Number.isInteger(e.seq)||e.seq<0)throw Error(`Invalid command key`);let t=Me(`sha256`).update(JSON.stringify([e.task,e.generation,e.seq])).digest(`hex`).slice(0,32);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}const Ke=[`hint`,`taskId`,`payload`,`approval`,`result`,`runId`,`status`];function qe(e=N.env){return e.CODER_MAILBOX||void 0}function Je(e,t){let n=`${e}.${I()}.tmp`;P.writeFileSync(n,JSON.stringify(t),{encoding:`utf8`,flag:`wx`}),P.renameSync(n,e)}async function Ye(e,t,n={}){let r=n.dir??qe();if(!r)throw Error(`No mailbox: not inside an agent task.`);let i=n.id??I(),a=M.join(r,`${i}.res.json`);P.existsSync(a)||Je(M.join(r,`${i}.req.json`),{kind:e,payload:t});let o=Date.now();for(;!P.existsSync(a);){if(n.timeoutMs&&Date.now()-o>=n.timeoutMs)throw Error(`Worker control timed out`);await new Promise(e=>setTimeout(e,100))}let{result:s,error:c}=JSON.parse(P.readFileSync(a,`utf8`));if(n.keepReply||P.rmSync(a,{force:!0}),c){let{code:e,message:t,...n}=c;throw new R(e,t,n)}return s}function Xe(e,t){P.mkdirSync(e,{recursive:!0});let n=new Set,r=async(r,i)=>{let a;try{let n=M.join(e,r);if(!P.lstatSync(n).isFile())throw Error(`mailbox request is not a regular file`);let{kind:o,payload:s}=JSON.parse(P.readFileSync(n,`utf8`)),c=M.join(e,`${i}.applying.json`);P.existsSync(c)||Je(c,{kind:o,payload:s});let l=Object.hasOwn(t,o)?t[o]:void 0;if(!l)throw Error(`unknown mailbox request "${o}"`);a={result:await l(s??{})??null}}catch(e){let t=e instanceof R?e:void 0;a={error:{code:t?.code??`invalid-option`,message:e instanceof Error?e.message:String(e),...Object.fromEntries(Ke.flatMap(e=>t?.[e]===void 0?[]:[[e,t[e]]]))}}}try{Je(M.join(e,`${i}.res.json`),a),P.rmSync(M.join(e,`${i}.req.json`),{force:!0}),P.rmSync(M.join(e,`${i}.applying.json`),{force:!0}),n.delete(i)}catch{}},i=setInterval(()=>{let t=[];try{t=P.readdirSync(e)}catch{return}for(let i of t){let t=Ge.exec(i)?.[1];if(t){if(P.existsSync(M.join(e,`${t}.res.json`))){P.rmSync(M.join(e,i),{force:!0});continue}n.has(t)||(n.add(t),r(i,t))}}},100);return()=>clearInterval(i)}function Ze(e,t){return t.agentId?M.join(A(e,t.id),`mailbox`):null}function Qe(e){let t=e instanceof Error?e.message:String(e);return/no active turn|active turn.*(?:ended|completed)|turn.*(?:already )?(?:ended|completed)|turn.*not active/i.test(t)}function H(e,t,n){return Object.assign(Error(e),{retryable:t,...n===void 0?{}:{rpcCode:n}})}function $e(e,t,n,r){if(!e||e.id!==t||e.method!==`turn/steer`&&e.method!==`turn/interrupt`)throw H(`Invalid Codex control request.`,!1);let i=e.params;if(!i||typeof i!=`object`||i.threadId!==n)throw H(`Codex control request does not match its owning thread.`,!1);if(e.method===`turn/interrupt`){if(i.turnId!==r)throw H(`Codex turn/interrupt request does not match its owning active turn.`,!1);return{method:e.method,params:i}}if(i.expectedTurnId!==r)throw H(`Codex turn/steer request does not match its owning active turn.`,!1);let a=i.input;if(!Array.isArray(a)||a.length!==1||a[0]?.type!==`text`||typeof a[0]?.text!=`string`||!a[0].text.trim())throw H(`Invalid Codex turn/steer input schema.`,!1);return{method:e.method,params:i}}async function et(e,{threadId:t,turnId:n}){return He(`coder-codex-control-`,async(r,i)=>{if(i)throw H(`Codex owner endpoint is shutting down.`,!0);let a=$e(r,r.id,t,n);try{return await e.request(a.method,a.params)}catch(e){throw H(e instanceof Error?e.message:String(e),Qe(e),e.rpcCode)}})}function tt(e){if(e?.startsWith(`file:`)&&e.length>5){let t=M.resolve(e.slice(5)),n=M.resolve(L.tmpdir());M.dirname(t)===n&&M.basename(t).startsWith(`coder-codex-control-`)&&P.rmSync(t,{recursive:!0,force:!0})}}async function nt(e,t,n,r=3e3,i){return Ue(e,{id:V(i),method:t,params:n,command:i},r,`Codex control`)}const rt=`Coder Task`;function it(e,t=72){let n=String(e??``).trim().replace(/\s+/g,` `);return n?n.length<=t?n:`${n.slice(0,t-3)}...`:``}function at(e){let t=it(e,56);return t?`${rt}: ${t}`:rt}function ot(e){return e?.params?.threadId??null}function st(e){return e?.params?.turnId?e.params.turnId:e?.params?.turn?.id?e.params.turn.id:null}function ct(e){let t=new Set;for(let n of e)for(let e of n.changes??[])e.path&&t.add(e.path);return[...t]}function lt(e,t){let n=[];for(let r of e.matchAll(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/gm)){let e=t===`delete`,i=Number(e?r[1]:r[3]),a=Number((e?r[2]:r[4])??1);!Number.isFinite(i)||!Number.isFinite(a)||n.push(a<=1?`L${i}`:`L${i}-L${i+a-1}`)}return n}function ut(e){try{let t=P.readFileSync(e,`utf8`),n=t?t.split(/\r\n|\r|\n/).length-+!!t.endsWith(`
2
- `):0;return n>0?[n===1?`L1`:`L1-L${n}`]:[]}catch{return[]}}function dt(e,t,n){let r=typeof e.kind==`string`?e.kind:e.kind?.type??`change`,i=e.path||`(unknown path)`,a=lt(e.diff??``,r),o=a.length||r!==`add`||!t?a:ut(i),s=typeof e.kind==`object`&&e.kind?.move_path?` -> ${n?j(n,e.kind.move_path):e.kind.move_path}`:``;return`${r} ${n?j(n,i):i}${s}${o.length?` ${o.join(`, `)}`:``}`}function ft(e,t=!1,n){return(e.changes??[]).map(e=>dt(e,t,n)).join(`; `)}function pt(e){let t=e.trim().split(` `)[0]??``;return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function mt(e,t){let n=new Map,r=``,i=``;for(let t of e.split(/\r?\n/)){if(t.startsWith(`--- `)){r=pt(t.slice(4));continue}if(t.startsWith(`+++ `)){i=pt(t.slice(4));continue}let e=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/.exec(t);if(!e)continue;let a=Number(e[1]),o=Number(e[2]??1),s=Number(e[3]),c=Number(e[4]??1),l=c===0,u=(l?r:i)||i||r||`(unknown path)`,d=l?a:s,f=l?o:c,p=f<=1?`L${d}`:`L${d}-L${d+f-1}`,m=n.get(u)??[];m.push(p),n.set(u,m)}return[...n].map(([e,n])=>`${t?j(t,e):e} ${n.join(`, `)}`).join(`; `)}function ht(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.inputTokens),r=t(e.cachedInputTokens),i=t(e.outputTokens);return{input:n,cachedInput:r,output:i,total:t(e.totalTokens)||n+r+i}}function gt(e){if(e.tokenUsageByThread.size===0)return null;let t={input:0,cachedInput:0,output:0,total:0};for(let[n,r]of e.tokenUsageByThread){let i=e.tokenUsageBaselineByThread.get(n);t.input+=Math.max(0,r.input-(i?.input??0)),t.cachedInput+=Math.max(0,r.cachedInput-(i?.cachedInput??0)),t.output+=Math.max(0,r.output-(i?.output??0)),t.total+=Math.max(0,r.total-(i?.total??0))}return t}function _t(e){return String(e??``).replace(/\s+/g,` `).trim()}function U(e){if(!e)return[];if(typeof e==`string`){let t=_t(e);return t?[t]:[]}if(Array.isArray(e))return e.flatMap(e=>U(e));if(typeof e==`object`){let t=e;if(typeof t.text==`string`)return U(t.text);if(`summary`in t)return U(t.summary);if(`content`in t)return U(t.content);if(`parts`in t)return U(t.parts)}return[]}function vt(e,t){let n=[];for(let r of[...e,...t]){let e=_t(r);!e||n.includes(e)||n.push(e)}return n}function W(e,t,n=null,r={}){!e||t==null||e({message:t,phase:n,...r})}function yt(e,t){t&&W(e,t.message,t.phase??null,t.extra??{})}function bt(e){return e.replace(/^\/(?:usr\/)?bin\/\w*sh\s+-l?c\s+/,``)}function xt(e,t){let n=e?.extra?.kind;return!e||n!==`tool`&&n!==`tool-result`||typeof t.id!=`string`?e:{...e,extra:{...e.extra,callId:t.id}}}function G(e){return e==null?``:typeof e==`string`?e:JSON.stringify(e)}function St(e){let t=String(e.tool||e.name||e.kind||e.type||`tool`),n=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null&&![`id`,`type`,`kind`,`name`,`tool`,`status`,`result`,`results`,`output`,`error`,`contentItems`,`success`,`durationMs`,`exitCode`].includes(e))),r=Object.keys(n).length?G(n):``;return{message:r?`${t} ${r}`:t,phase:`investigating`,extra:{kind:`tool`,tool:t}}}function Ct(e,t){switch(e.type){case`commandExecution`:return{message:bt(String(e.command??``).trim())||`command`,phase:`running`,extra:{kind:`tool`,tool:`command`}};case`fileChange`:return{message:ft(e,!1,t)||`edit`,phase:`editing`,extra:{kind:`tool`,tool:`edit`}};case`mcpToolCall`:return{message:[`${e.server}/${e.tool}`,G(e.arguments)].filter(Boolean).join(` `),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`dynamicToolCall`:return{message:[[e.namespace,e.tool||`tool`].filter(Boolean).join(`/`),G(e.arguments)].filter(Boolean).join(` `),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`webSearch`:{let t=e.action,n=Array.isArray(t?.queries)?t.queries.filter(e=>typeof e==`string`&&e.trim()):[],r=n.length?n.join(`; `):String(t?.query||e.query||``).trim()||G(t);return{message:r?`search: ${r}`:`search`,phase:`investigating`,extra:{kind:`tool`,tool:`search`}}}case`agentMessage`:case`reasoning`:case`userMessage`:return null;default:return St(e)}}function wt(e,t){switch(e.type){case`agentMessage`:{let t=String(e.text??``).trim();return t?{message:t,phase:null,extra:{kind:`assistant`}}:null}case`reasoning`:{let t=U(e.summary).join(`
3
- `);return t?{message:t,phase:null,extra:{kind:`reasoning`}}:null}case`commandExecution`:{let t=typeof e.exitCode==`number`?e.exitCode:null;return{message:String(e.aggregatedOutput??``).trim(),phase:`running`,extra:{kind:`tool-result`,tool:`command`,command:String(e.command??``).trim(),durationMs:e.durationMs,...t===null?{isError:e.status!==`completed`}:{exitCode:t}}}}case`fileChange`:return{message:ft(e,!0,t)||`(details unavailable)`,phase:`editing`,extra:{kind:`tool-result`,tool:`edit`,isError:e.status!==`completed`}};case`mcpToolCall`:return{message:G(e.error??e.result)||`${e.server}/${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,tool:String(e.tool??``),durationMs:e.durationMs,isError:e.status!==`completed`||e.error!=null}};case`dynamicToolCall`:return{message:G(e.contentItems)||`${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,tool:String(e.tool??``),durationMs:e.durationMs,isError:e.status!==`completed`||e.success===!1}};case`userMessage`:return null;default:return{message:G(e.error??e.result??e.results??e.output??e.action??e),phase:`investigating`,extra:{kind:`tool-result`,tool:Ct(e,t)?.extra?.tool,durationMs:e.durationMs,isError:e.status===`failed`||e.status===`declined`||e.success===!1||e.error!=null}}}}function Tt(e,t={}){let n,r,i=new Promise((e,t)=>{n=e,r=t});return{threadId:e,rootThreadId:e,threadIds:new Set([e]),threadTurnIds:new Map,turnId:null,bufferedNotifications:[],completion:i,resolveCompletion:n,rejectCompletion:r,finalTurn:null,completed:!1,finalAnswerSeen:!1,pendingCollaborations:new Set,activeSubagentTurns:new Set,completionTimer:null,lastAgentMessage:``,reasoningSummary:[],reasoningStartedAt:new Map,error:null,fileChanges:[],commandExecutions:[],tokenUsageByThread:new Map,tokenUsageBaselineByThread:new Map,lastDiffSummary:``,loggedTokens:0,reportedChanges:new Set,cwd:t.cwd??``,itemIndex:new Map,onProgress:t.onProgress??null,onHeartbeat:t.onHeartbeat??null}}function Et(e){e.completionTimer&&=(clearTimeout(e.completionTimer),null)}function Dt(e,t=null){e.completed||(Et(e),e.completed=!0,t?(e.finalTurn=t,e.turnId||=t.id??null):e.finalTurn||={id:e.turnId??`inferred-turn`,status:`completed`},e.resolveCompletion(e))}function Ot(e){e.completed||e.finalTurn||!e.finalAnswerSeen||e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||(Et(e),e.completionTimer=setTimeout(()=>{e.completionTimer=null,!(e.completed||e.finalTurn||!e.finalAnswerSeen)&&(e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||Dt(e,null))},250),e.completionTimer.unref?.())}function kt(e,t){let n=ot(t);if(!n||!e.threadIds.has(n))return!1;let r=e.threadTurnIds.get(n)??null,i=st(t);return r===null||i===null||i===r}function At(e,t,n,r=null){if(t.id&&e.itemIndex.set(t.id,t),t.type===`collabAgentToolCall`){(!r||r===e.threadId)&&(n===`started`||t.status===`inProgress`?e.pendingCollaborations.add(t.id):n===`completed`&&(e.pendingCollaborations.delete(t.id),Ot(e)));for(let n of t.receiverThreadIds??[])e.threadIds.add(n)}if(t.type===`agentMessage`){t.text&&(!r||r===e.threadId)&&(e.lastAgentMessage=t.text.trim(),n===`completed`&&t.phase===`final_answer`&&(e.finalAnswerSeen=!0,Ot(e)));return}if(t.type===`reasoning`&&n===`completed`){e.reasoningSummary=vt(e.reasoningSummary,U(t.summary));return}if(t.type===`fileChange`&&n===`completed`){e.fileChanges.push(t);return}t.type===`commandExecution`&&n===`completed`&&e.commandExecutions.push(t)}function jt(e,t){switch(e.onHeartbeat?.(),t.method){case`thread/started`:e.threadIds.add(t.params.thread.id);break;case`turn/started`:e.threadIds.add(t.params.threadId),e.threadTurnIds.set(t.params.threadId,t.params.turn.id),(t.params.threadId??null)!==e.threadId&&e.activeSubagentTurns.add(t.params.threadId),W(e.onProgress,`Turn started (${t.params.turn.id}).`,`starting`,{kind:`status`,threadId:t.params.threadId??null,turnId:t.params.turn.id??null});break;case`item/started`:t.params.item?.type===`reasoning`&&t.params.item.id&&e.reasoningStartedAt.set(`${t.params.threadId}:${t.params.item.id}`,Date.now()),At(e,t.params.item,`started`,t.params.threadId??null),yt(e.onProgress,xt(Ct(t.params.item,e.cwd),t.params.item));break;case`item/completed`:{let n={...e.itemIndex.get(t.params.item.id),...t.params.item};if(At(e,n,`completed`,t.params.threadId??null),n?.type===`fileChange`)for(let t of n.changes??[])t.path&&e.reportedChanges.add(j(e.cwd,t.path));let r=xt(wt(n,e.cwd),n);if(r?.extra?.kind===`tool-result`){let t=Ct(n,e.cwd);r.extra={...r.extra,callMessage:n.type===`fileChange`?r.message:t?.message}}if(n?.type===`reasoning`){let i=`${t.params.threadId}:${n.id}`,a=e.reasoningStartedAt.get(i);e.reasoningStartedAt.delete(i),r&&(r.extra={...r.extra,durationMs:Math.max(0,Date.now()-(a??Date.now()))})}yt(e.onProgress,r);break}case`thread/tokenUsage/updated`:{let n=ht(t.params?.tokenUsage?.last),r=ot(t);r===e.threadId&&t.params?.tokenUsage?.last&&(e.contextTokens=n?.total);let i=ht(t.params?.tokenUsage?.total??t.params?.tokenUsage);if(i&&r){n&&!e.tokenUsageByThread.has(r)&&e.tokenUsageBaselineByThread.set(r,{input:Math.max(0,i.input-n.input),cachedInput:Math.max(0,i.cachedInput-n.cachedInput),output:Math.max(0,i.output-n.output),total:Math.max(0,i.total-n.total)}),e.tokenUsageByThread.set(r,i);let t=gt(e);t&&(!e.loggedTokens||t.total-e.loggedTokens>=1e3)&&(e.loggedTokens=t.total,e.onProgress?.({kind:`usage`,tokens:t}))}break}case`turn/diff/updated`:{let n=mt(String(t.params?.diff??``),e.cwd).split(`; `).filter(t=>!e.reportedChanges.has(t.split(` `)[0]??``)).join(`; `);n&&n!==e.lastDiffSummary&&(e.lastDiffSummary=n,W(e.onProgress,`changed: ${n}`,`editing`,{kind:`status`}));break}case`item/autoApprovalReview/completed`:{let n=t.params?.review??{},r=t.params?.action??{},i=bt(String(r.command??r.type??``).trim());W(e.onProgress,`Auto-review ${n.status}. ${it(i,48)}${n.rationale?`. ${it(n.rationale,320)}`:``}`,null,{kind:`auto-review`,decision:String(n.status??``),...n.riskLevel?{riskLevel:String(n.riskLevel)}:{},...i?{summary:`run command: ${i}`}:{},...n.rationale?{reason:String(n.rationale)}:{}});break}case`error`:e.error=t.params.error,W(e.onProgress,`Codex error: ${t.params.error.message}`,`failed`,{kind:`error`});break;case`turn/completed`:if((t.params.threadId??null)!==e.threadId){e.activeSubagentTurns.delete(t.params.threadId),Ot(e);break}W(e.onProgress,`Turn ${t.params.turn.status}.`,`finalizing`,{kind:`status`}),Dt(e,t.params.turn)}}async function Mt(e,t,n,r={}){let i=Tt(t,r),a=e.notificationHandler;e.setNotificationHandler(e=>{if(!i.turnId){i.bufferedNotifications.push(e);return}if(e.method===`thread/started`){jt(i,e);return}if(!kt(i,e)){a?.(e);return}jt(i,e)});let o=r.onApprovalRequest;o&&e.setServerRequestHandler((e,t)=>o(e,t,i));try{let t=await n();i.turnId=t.turn?.id??null,i.turnId&&(i.threadTurnIds.set(i.threadId,i.turnId),await r.onTurnStarted?.(i.turnId));for(let e of i.bufferedNotifications)kt(i,e)?jt(i,e):a?.(e);i.bufferedNotifications.length=0,t.turn?.status&&t.turn.status!==`inProgress`&&Dt(i,t.turn);let o=e.exitPromise?.then(()=>{throw e.exitError??Error(`codex app-server connection closed before the turn completed.`)});return await(o?Promise.race([i.completion,o]):i.completion)}finally{Et(i),e.setNotificationHandler(a??null),e.setServerRequestHandler(null)}}function Nt(e,t,n=[]){return e!==`workspace-write`||!n.length?null:{type:`workspaceWrite`,writableRoots:n,networkAccess:t??!1}}const Pt=`coder_read_only`;function Ft(e,t=[]){return(e??`read-only`)!==`read-only`||!t.length?null:{default_permissions:Pt,[`permissions.${Pt}`]:{extends:`:read-only`,filesystem:Object.fromEntries(t.map(e=>[e,`write`]))}}}function It(e=[],t=[],n=!1){let r=Object.fromEntries((n?[]:t).map(e=>[e,{enabled:!1}])),i=new Set([...t,...e.map(e=>e.name)]);for(let n of e){let e=n.name;if(t.includes(e)){for(let t=1;i.has(e);t++)e=`${n.name}_coder_${t}`;i.add(e)}r[e]={...n.url?{url:n.url,...n.headers?{http_headers:n.headers}:{}}:{command:n.command,args:n.args??[],...n.env?{env:n.env}:{}},...n.tools?.length?{enabled_tools:n.tools}:{},default_tools_approval_mode:`approve`}}return Object.keys(r).length?{mcp_servers:r}:{}}async function Lt(e,t,n,r){let i=Object.entries(n).filter(([,e])=>e.enabled!==!1).map(([e])=>e);await Promise.all(i.map(async n=>{let i=await e.request(`mcpServerStatus/list`,{threadId:t,serverName:n,detail:`toolsAndAuthOnly`}).catch(e=>{W(r,`MCP server ${n} status unavailable. ${z(e)}`,null,{kind:`warning`})});for(let e of i?.data??[])e.name===n&&e.runtimeStatus===`failed`&&W(r,`MCP server ${e.name} failed to start. ${e.toolsError??``}`.trim(),null,{kind:`error`})}))}function Rt(e){return e.split(/\r?\n/).map(e=>e.trimEnd()).filter(e=>e&&!e.startsWith(`WARNING: proceeding, even though we could not update PATH:`)).join(`
4
- `)}async function zt(e,t,n={}){let r=n.connect??T.connect,i={...n.networkAccess===void 0?{}:{networkAccess:n.networkAccess},nativeMcp:n.nativeMcp??!1},a=null;try{a=await r(e,i);let n=await t(a);return await a.close(),n}catch(n){let o=n,s=a?.transport===`broker`||!!process.env.CODER_APP_SERVER_ENDPOINT,c=a?.transport===`broker`&&o?.rpcCode===-32001||s&&(o?.code===`ENOENT`||o?.code===`ECONNREFUSED`);if(a&&=(await a.close().catch(()=>{}),null),!c)throw n;let l=await r(e,{...i,disableBroker:!0});try{return await t(l)}finally{await l.close()}}}function K(e){let t=process.env.CODEX_AUTH_JSON;if(t){let e=M.join(L.homedir(),`.codex`),n=M.join(e,`auth.json`);if(!P.existsSync(n)){P.mkdirSync(e,{recursive:!0,mode:448});try{P.writeFileSync(n,t,{encoding:`utf8`,flag:`wx`,mode:384})}catch(e){if(e.code!==`EEXIST`)throw e}}}let n=l(`codex`,[`--version`],{cwd:e,env:f()});if(!n.available)return n;let r=l(`codex`,[`app-server`,`--help`],{cwd:e,env:f()});return r.available?{available:!0,detail:`${n.detail}; app-server runtime available`}:{available:!1,detail:`${n.detail}; app-server runtime unavailable: ${r.detail}`}}async function Bt(e){let t=K(e);if(!t.available)return{available:!1,loggedIn:!1,detail:t.detail};let n=null;try{n=await T.connect(e,{reuseExistingBroker:!0});let t=await n.request(`account/read`,{refreshToken:!1}),r=t?.account??null;return r?.type===`chatgpt`?{available:!0,loggedIn:!0,detail:r.email?`ChatGPT login active for ${r.email}`:`ChatGPT login active`}:r?.type===`apiKey`?{available:!0,loggedIn:!0,detail:`API key configured`}:t?.requiresOpenaiAuth===!1?{available:!0,loggedIn:!0,detail:`Active provider does not require OpenAI authentication`}:{available:!0,loggedIn:!1,detail:"Not authenticated. Run `codex login`."}}catch(e){let t=F(`codex`,[`login`,`status`],{encoding:`utf8`,env:f()}),n=`${t.stdout??``}${t.stderr??``}`.trim();return t.status===0?{available:!0,loggedIn:!0,detail:n||`Logged in`}:{available:!0,loggedIn:!1,detail:n||(e instanceof Error?e.message:String(e))}}finally{await n?.close().catch(()=>{})}}async function Vt(e,{endpoint:t,threadId:n,turnId:r}){if(!n||!r)return{interrupted:!1,detail:`missing threadId or turnId`};let i=await nt(t,`turn/interrupt`,{threadId:n,turnId:r});return i.ok?{interrupted:!0,detail:`Interrupted ${r} on ${n}.`}:{interrupted:!1,detail:i.detail}}async function Ht(e,{endpoint:t,threadId:n,turnId:r,text:i,command:a}){if(!n)return{steered:!1,retryable:!0,detail:`missing active threadId`};if(!r)return{steered:!1,retryable:!0,detail:`missing active turnId`};let o=i.trim();if(!o)return{steered:!1,retryable:!1,detail:`empty follow-up`};let s=await nt(t,`turn/steer`,{threadId:n,input:[{type:`text`,text:o,text_elements:[]}],expectedTurnId:r},3e3,a);return s.ok?s.result?.turnId===r?{steered:!0,retryable:!1,detail:`Steered follow-up into ${r} on ${n}.`}:{steered:!1,retryable:!1,detail:`turn/steer returned unexpected turnId ${String(s.result?.turnId??`(missing)`)}; expected ${r}`}:{steered:!1,retryable:s.retryable,detail:s.detail}}async function Ut(e,t={},n={}){if(!t.availabilityChecked){let t=K(e);if(!t.available)throw Error(`Codex CLI is not available: ${t.detail}`)}let r=t.prompt?.trim();if(!r)throw Error(`A prompt is required.`);let i=process.env.CODER_MACHINE_SANDBOX===`1`&&(t.sandbox??`read-only`)!==`read-only`?`danger-full-access`:t.sandbox,a=Ft(i,t.writableRoots),s=a?{}:{sandbox:i??`read-only`},c={...t.configOverrides??{},...a},l=Object.keys(c).length?c:null,u=Nt(i,t.networkAccess,t.writableRoots),d=async n=>{let i=null,a;o(`codex.config.start`);let c=await n.request(`config/read`,{cwd:e,includeLayers:!1});o(`codex.config.done`);let d={...t.modelProvider?{}:{model_reasoning_summary:`auto`},...l,...It(t.mcpServers,Object.keys(c.config?.mcp_servers??{}),t.nativeMcp),...t.nativeMcp?{}:{"features.apps":!1,"features.plugins":!1}},f=t.developerInstructions?{developerInstructions:t.developerInstructions}:{},p;if(t.resumeThreadId&&(W(t.onProgress,`Resuming thread ${t.resumeThreadId}.`,`starting`,{kind:`status`}),Ee(t.resumeThreadId)&&await ke(t.resumeThreadId),p=await n.request(`thread/resume`,{threadId:t.resumeThreadId,cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:d,approvalPolicy:t.approvalPolicy??`never`,...s,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{},...f}).catch(e=>{W(t.onProgress,he,`starting`,{kind:`warning`,detail:String(e?.message??e)})})),p)a=p.thread.id;else if(W(t.onProgress,`Starting Codex task thread.`,`starting`,{kind:`status`}),o(`codex.thread.start`),a=(await n.request(`thread/start`,{cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:d,approvalPolicy:t.approvalPolicy??`never`,...s,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{},...f,serviceName:`coder_runtime`,ephemeral:t.ephemeral??!1})).thread.id,!(t.ephemeral??!1))try{await n.request(`thread/name/set`,{threadId:a,name:at(r)})}catch(e){let t=String(e?.message??e??``);if(!t.includes(`unknown variant`)&&!t.includes(`unknown method`))throw e}o(`codex.thread.ready`),W(t.onProgress,`Thread ready (${a}).`,`starting`,{kind:`status`,threadId:a}),await Lt(n,a,d.mcp_servers??{},t.onProgress);let m;try{m=await Mt(n,a,()=>n.request(`turn/start`,{threadId:a,input:[{type:`text`,text:r,text_elements:[]}],model:t.model??null,effort:t.effort??null,outputSchema:t.outputSchema??null,...u?{sandboxPolicy:u}:{}}),{cwd:e,onProgress:t.onProgress,onHeartbeat:t.onHeartbeat,onApprovalRequest:t.onApprovalRequest,onTurnStarted:t.onControlReady?async e=>{i=await et(n,{threadId:a,turnId:e}),t.onControlReady?.(i.endpoint,a,e)}:void 0}),o(`codex.result`),t.onResult?.({status:m.finalTurn?.status===`completed`?0:1,threadId:a,turnId:m.turnId,finalMessage:m.lastAgentMessage,error:m.error??m.finalTurn?.error??null})}finally{await i?.close()}return{status:m.finalTurn?.status===`completed`?0:1,threadId:a,turnId:m.turnId,finalMessage:m.lastAgentMessage,reasoningSummary:m.reasoningSummary,turn:m.finalTurn,error:m.error??m.finalTurn?.error??null,stderr:Rt(n.stderr),fileChanges:m.fileChanges,touchedFiles:ct(m.fileChanges),tokens:gt(m),contextTokens:m.contextTokens,model:t.model??null,commandExecutions:m.commandExecutions}},f=async e=>{e.setNoticeHandler?.(e=>W(t.onProgress,e,`starting`,{kind:`status`}));try{let t=await d(e);return B(t.error?.message)&&await Wt(e),t}catch(t){throw B(z(t))&&await Wt(e),t}},p=()=>zt(e,f,{...n,networkAccess:t.networkAccess,nativeMcp:t.nativeMcp}),m=!1,h=()=>(m=!0,W(t.onProgress,`Codex login changed; restarted the Codex app-server and retrying the turn once.`,`starting`,{kind:`status`}),p());try{let e=await p().catch(e=>{if(!B(z(e)))throw e;return h()}),n=!e.touchedFiles?.length&&!e.commandExecutions.length;!m&&n&&B(e.error?.message)&&(e=await h());let r=Le(e.error?.message,t.model);return r?{...e,error:{...e.error,message:r}}:e}catch(e){let n=Le(z(e),t.model);throw n?Error(n):e}}async function Wt(e){e.transport===`broker`&&await e.request(De,{}).catch(()=>{})}const q=`@wular/coder`,Gt=`https://registry.npmjs.org/${q}/latest`,J={npm:[`npm`,`install`,`-g`,`${q}@latest`],pnpm:[`pnpm`,`add`,`-g`,`${q}@latest`],yarn:[`yarn`,`global`,`add`,`${q}@latest`],bun:[`bun`,`add`,`-g`,`${q}@latest`]};function Kt(){return pe(`update-check.json`)}function Y(e,t){let n=String(e).split(`.`).map(e=>parseInt(e,10)||0),r=String(t).split(`.`).map(e=>parseInt(e,10)||0);for(let e=0;e<3;e+=1){if((n[e]??0)>(r[e]??0))return 1;if((n[e]??0)<(r[e]??0))return-1}return 0}function qt(){try{return JSON.parse(P.readFileSync(Kt(),`utf8`))}catch{return null}}function Jt(e){try{P.mkdirSync(pe(),{recursive:!0}),P.writeFileSync(Kt(),JSON.stringify(e))}catch{}}function Yt(){try{P.rmSync(Kt(),{force:!0})}catch{}}function Xt(e,t){if(N.env.CODER_NO_UPDATE_CHECK||N.env.CI)return;let n=qt();if(!n?.checkedAt||Date.now()-n.checkedAt>864e5)try{je(N.execPath,[t,`upgrade`,`refresh`],{detached:!0,stdio:`ignore`}).unref()}catch{}return n?.latest&&Y(n.latest,e)>0?n.latest:void 0}async function Zt(e){let t=qt()?.latest??null;try{let e=await fetch(Gt,{signal:AbortSignal.timeout(3e3),headers:{accept:`application/json`}});if(e.ok){let n=await e.json();n?.version&&(t=n.version)}}catch{}Jt({checkedAt:Date.now(),latest:t,current:e})}function Qt(e){let t=e;try{t=P.realpathSync(e)}catch{}let n=t.replace(/\\/g,`/`);return/\/\.bun\//.test(n)?{pm:`bun`,command:J.bun}:/\/\.pnpm\//.test(n)||/\/pnpm(-global)?\//i.test(n)||/\/Library\/pnpm\//.test(n)?{pm:`pnpm`,command:J.pnpm}:/\/\.config\/yarn\/global\//.test(n)||/\/yarn\/global\//.test(n)||/\/Yarn\/Data\/global\//.test(n)?{pm:`yarn`,command:J.yarn}:{pm:`npm`,command:J.npm}}function $t(e){F(`claude`,[`plugin`,`marketplace`,`remove`,`coder-plugins`],{encoding:`utf8`});let t=F(`claude`,[`plugin`,`marketplace`,`add`,e],{encoding:`utf8`}),n=F(`claude`,[`plugin`,`install`,`coder@coder-plugins`],{encoding:`utf8`}),r=t.status===0&&n.status===0;return{marketplace:e,installed:r,note:r?`Plugin installed; restart any running Claude Code session to load it.`:`Automatic install failed (${(n.stderr||t.stderr||`claude not found`).trim()}); run: claude plugin marketplace add "${e}" && claude plugin install coder@coder-plugins`}}function en(){return M.join(L.homedir(),`.agents`,`skills`,`coder`)}function tn(){try{let e=P.readFileSync(M.join(en(),`SKILL.md`),`utf8`);return/^\s*version:\s*(\S+)/m.exec(e)?.[1]??null}catch{return null}}function nn(e){let t=en();try{let n=M.join(e,`plugins`,`agents`,`skills`,`coder`);P.rmSync(t,{recursive:!0,force:!0}),P.mkdirSync(t,{recursive:!0}),P.cpSync(n,t,{recursive:!0});let r=M.join(t,`SKILL.md`),i=P.readFileSync(r,`utf8`).replace(`
5
- ---
6
- `,`\nmetadata:\n version: ${v()}\n---\n`);return P.writeFileSync(r,i),{marketplace:t,installed:!0,note:`Skill installed to ~/.agents/skills/coder; restart running sessions to load it.`}}catch(e){return{marketplace:t,installed:!1,note:`Skill install failed: ${e instanceof Error?e.message:String(e)}`}}}function rn(e){if(e.available)return null;let t=F(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`});return t.status===0?{installed:!0,note:`codex CLI installed (runs your custom models; no login needed for them)`}:{installed:!1,note:`custom models run on the codex CLI and it is not installed; auto-install failed: ${(t.stderr||`npm not found`).trim()}. Run: npm install -g @openai/codex`}}const an={codex:{"gpt-6-astra":`0.154.0`,"gpt-6-sol":`0.156.1`,"gpt-6-luna":`0.156.1`,"gpt-6.1-sol":`0.159.1`},claude:{sonnet:`2.1.197`,fable:`2.1.257`,opus:`2.1.280`}};function on(e){let t=/(\d+\.\d+\.\d+)/.exec(String(e??``));return t?t[1]:null}function sn(e,t,n){let r=t?an[e][t]:void 0,i=on(n.detail);return!r||!i||Y(i,r)>=0?null:`${e} ${i} predates ${t} (needs ${r}), so it may fail or run another model. Run: ${e} update`}function cn(e){if(!e.available)return null;let t=on(e.detail);if(!t||Y(t,`0.159.1`)>=0)return null;let n=F(`codex`,[`update`],{encoding:`utf8`});return n.status!==0&&(n=F(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`})),n.status===0?{updated:!0,from:t}:{updated:!1,from:t,note:`codex ${t} is too old for the default codex model (needs >= 0.159.1); auto-update failed: ${(n.stderr||`codex/npm not found`).trim()}. Run: codex update`}}async function ln(e,t={},r){let i=t.hosts??[],a=i.find(e=>![`claude`,`agents`].includes(e));if(a)throw new R(`invalid-option`,`Unknown host "${a}". Use claude or agents.`,{hint:`Codex, Pi, OpenCode, and other Agent Skills hosts: coder setup-host agents`});let o=e=>i.includes(e);r?.();let s=K(e),c=cn(s);c?.updated&&(s=K(e));let l=s.available?await Bt(e):{loggedIn:!1,detail:s.detail},u=Q(),d=u.available?Cn():{loggedIn:!1,detail:u.detail},f=n();if(!P.existsSync(f)){let e=s.available?[`codex`,`claude`]:u.available?[`claude`,`codex`]:[`codex`,`claude`];le({...Te,chain:e})}let p=S(),m=o(`claude`)?$t(p):null,h=o(`agents`)?nn(p):null,g=O(e),_=s.available&&l.loggedIn||u.available&&d.loggedIn;return{codex:{available:s.available,detail:s.detail,auth:l.detail,loggedIn:l.loggedIn},...c?{codexUpdate:c}:{},claude:{available:u.available,detail:u.detail,auth:d.detail,loggedIn:d.loggedIn},configFile:f,runtime:Ae(new URL(`../bin/coder.mjs`,import.meta.url)),...m?{claudePlugin:m}:{},...h?{agentsSkill:h}:{},config:g,ready:_}}async function un(e={},t){let n=!e.pluginsOnly,r=!e.cliOnly,a=S(),o=M.join(a,`plugins/claude/.claude-plugin/plugin.json`),s={cli:v(),claude:g(o)},c={};if(n){let n=Qt(i),[r,...a]=e.pm&&J[e.pm]||n.command,o=e.pm??n.pm;t?.(`via ${o}`);let l=F(r,a,{encoding:`utf8`});if(l.error?.code===`ENOENT`)throw new R(`invalid-option`,`${o} not found on PATH. Re-run with --pm <npm|pnpm|yarn|bun>, or update manually: ${r} ${a.join(` `)}`);if(l.status!==0){let e=(l.stderr||l.stdout||``).trim();throw new R(`invalid-option`,`CLI update failed (${o}).${e?`\n${e}`:``}\nRun manually: ${r} ${a.join(` `)}`)}Yt();let u=v();c.cli={pm:o,from:s.cli,to:u,changed:u!==s.cli}}if(r){if(e.claude||!e.codex&&Q().available){let e=$t(a);c.claudePlugin={installed:e.installed,note:e.note,from:s.claude,to:g(o)}}if(P.existsSync(en())){let e=tn(),t=nn(a);c.agentsSkill={installed:t.installed,note:t.note,from:e,to:tn()}}}return c}function dn(e=[],t={}){return ln(M.resolve(t.cwd??`.`),{hosts:e})}const fn=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]),pn=`coder-mcp-status`,X=new Map,mn=`CODER_CLAUDE_VERSION`;function hn(e){let t=e=>e&&typeof e==`object`&&(typeof e.data==`string`||typeof e.blob==`string`||Object.values(e).some(t)),n=e=>typeof e==`string`?e:t(e)||[`image`,`document`,`audio`,`video`,`file`].includes(e?.type)?`[${e?.type??`binary`}]`:typeof e?.text==`string`?e.text:e==null?``:JSON.stringify(e);return Array.isArray(e)?e.map(n).join(``):n(e)}function gn(e){if(!e)return 0;let t=e.split(/\r\n|\r|\n/);return t.at(-1)===``&&t.pop(),Math.max(1,t.length)}function _n(e,t,n=!1){if(!t)return[];let r;try{r=P.readFileSync(e,`utf8`)}catch{return[]}let i=[],a=0;for(;a<=r.length;){let e=r.indexOf(t,a);if(e<0)break;let o=gn(r.slice(0,e))+1,s=Math.max(1,gn(t));if(i.push(s===1?`L${o}`:`L${o}-L${o+s-1}`),!n)break;a=e+Math.max(t.length,1)}return i.length>4?[...i.slice(0,4),`+${i.length-4} matches`]:i}function vn(e){let t=(typeof e==`string`?e:JSON.stringify(e)??String(e)).replace(/\s+/g,` `).trim();return t.length>80?`${t.slice(0,80)}…`:t}function yn(e,t,n){let r=String(t.file_path??t.notebook_path??t.path??``),i=r?M.isAbsolute(r)?r:M.resolve(n,r):``,a=r?j(n,i)||r:`(unknown path)`,o=t.path?` in ${j(n,String(t.path))}`:``;if(e===`Write`){let e=gn(String(t.content??``));return`Write ${a} ${e?`L1-L${e}`:`(empty file)`}`}if(e===`Edit`){let e=_n(i,String(t.old_string??``),t.replace_all===!0);return`Edit ${a}${e.length?` ${e.join(`, `)}`:``}`}if(e===`MultiEdit`){let e=Array.isArray(t.edits)?t.edits:[],n=e.flatMap(e=>_n(i,String(e?.old_string??``),e?.replace_all===!0));return`MultiEdit ${a}${n.length?` ${n.join(`, `)}`:``} (${e.length} edits)`}if(e===`NotebookEdit`){let e=t.cell_id??t.cell_number;return`NotebookEdit ${a}${e==null?``:` cell ${e}`}`}if(e===`Read`){let e=Number(t.offset??0),n=Number(t.limit??0);return`Read ${a}${e&&n?` L${e}-L${e+n-1}`:e?` from L${e}`:``}`}if(e===`Bash`)return`Bash ${String(t.command??``).trim()||`(no command)`}`;if(e===`Glob`)return`Glob ${String(t.pattern??``)}${o}`;if(e===`Grep`){let e=t.glob?` (${String(t.glob)})`:``;return`Grep ${String(t.pattern??``)}${o}${e}`}if(e===`Task`)return`Task ${t.subagent_type?`${String(t.subagent_type)}: `:``}${vn(t.description??t.prompt??``)}`;if(e===`WebFetch`)return`WebFetch ${String(t.url??``)}`;if(e===`WebSearch`)return`WebSearch ${String(t.query??``)}`;if(e===`TodoWrite`){let e=Array.isArray(t.todos)?t.todos:[];return`TodoWrite ${e.length} item${e.length===1?``:`s`}`}let s=Object.entries(t??{}).map(([e,t])=>`${e}=${vn(t)}`).join(` `);return s?`${e} ${s}`:e}function Z(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.input_tokens),r=t(e.cache_read_input_tokens)+t(e.cache_creation_input_tokens),i=t(e.output_tokens);return{input:n,cachedInput:r,output:i,total:n+r+i}}function bn(e,t,n){let r=N.platform===`win32`?t[Object.keys(t).sort().find(e=>e.toLowerCase()===`path`)??`PATH`]??N.env.PATH??``:t.PATH??`/usr/bin:/bin`,i=/[\\/]/.test(e)?[``]:[...N.platform===`win32`?[n]:[],...r.split(M.delimiter)],a=N.platform===`win32`&&!M.extname(e)?[``,...(t.PATHEXT??`.EXE;.COM`).split(`;`)]:[``];for(let t of i)for(let r of a){let i=M.resolve(n,t,e+r);try{if(P.accessSync(i,P.constants.X_OK),P.statSync(i).isFile())return P.realpathSync(i)}catch{}}return M.resolve(n,e)}function xn(e,t){let n=bn(`claude`,f(e),t),r=X.get(n);return{[mn]:r===void 0?void 0:JSON.stringify({executable:n,detail:r})}}function Sn(e,t,n){let r=bn(e,t,n),i=X.get(r);if(i!==void 0)return i;try{let e=JSON.parse(t[mn]??`null`);if(e?.executable===r&&typeof e.detail==`string`)return X.set(r,e.detail),e.detail}catch{}return Q(e,t,n).detail}function Q(e=`claude`,t=N.env,n=N.cwd()){t=f(t);let r=bn(e,t,n),i=F(e,[`--version`],{encoding:`utf8`,env:t,cwd:n}),a=!i.error&&i.status===0,o=a?String(i.stdout||``).trim():`claude CLI not found on PATH (npm install -g @anthropic-ai/claude-code)`;return X.set(r,o),{available:a,detail:o}}function Cn(){if(N.env.CLAUDE_CODE_OAUTH_TOKEN)return{loggedIn:!0,detail:`CLAUDE_CODE_OAUTH_TOKEN configured`};if(N.env.ANTHROPIC_API_KEY)return{loggedIn:!0,detail:`ANTHROPIC_API_KEY configured`};let e=F(`claude`,[`auth`,`status`,`--json`],{encoding:`utf8`,env:f()});if(e.error||e.status!==0)return{loggedIn:!1,detail:`not logged in`};try{let t=JSON.parse(String(e.stdout||``));return t.loggedIn?{loggedIn:!0,detail:[t.email,t.subscriptionType].filter(Boolean).join(`, `)||`logged in`}:{loggedIn:!1,detail:`not logged in`}}catch{return{loggedIn:!1,detail:`unknown`}}}function wn(e,t){let n=t.permissions??`auto`,r=t.mcpServers??[],a={};n===`auto`&&t.approvalTaskId&&(a.coder={type:`stdio`,command:N.execPath,args:[i,`task`,`mcp`,t.approvalTaskId,`--cwd`,e]});for(let e of r)a[e.name]={...e.url?{type:e.type??`http`,url:e.url,...e.headers?{headers:e.headers}:{}}:{type:`stdio`,command:e.command,args:e.args??[],...e.env?{env:e.env}:{}},...e.alwaysLoad?{alwaysLoad:!0}:{}};return a}function Tn(e,t,n,i,a,o){let s=[`-p`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--replay-user-messages`],c=on(a);if(c&&Y(c,`2.1.94`)>=0&&s.push(`--thinking-display`,`summarized`),s.push(t.resumeSessionId?`--resume`:`--session-id`,n),t.model&&s.push(`--model`,t.model),t.effort&&s.push(`--effort`,t.effort),t.systemPrompt&&s.push(`--append-system-prompt-file`,o??M.join(t.taskRoot??e,`.claude-system.md`)),t.excludeDynamicSections&&s.push(`--exclude-dynamic-system-prompt-sections`),t.settingSources&&s.push(`--setting-sources`,t.settingSources),t.outputSchema){let{$schema:e,...n}=t.outputSchema;s.push(`--json-schema`,JSON.stringify(n))}let l=t.permissions??`auto`,u=t.additionalDirectories??[],d=l===`read-only`?t.readOnlyAllowedTools??[]:[],f=t.mcpServers??[],p=wn(e,t),h=l===`auto`&&t.approvalTaskId,g=f.flatMap(e=>e.tools?.length?e.tools.map(t=>`mcp__${e.name}__${t}`):[`mcp__${e.name}`]),v=Object.keys(p).length?[`--mcp-config`,i??M.join(t.taskRoot??e,`.claude-mcp.json`)]:t.nativeMcp?[]:[`--mcp-config`,`{"mcpServers":{}}`];t.nativeMcp||s.push(`--strict-mcp-config`,`--no-chrome`),h?(s.push(`--permission-mode`,`default`,...v,`--permission-prompt-tool`,`mcp__coder__approval_prompt`),g.length&&s.push(`--allowedTools`,...g)):d.length?s.push(...r.filter(e=>N.env.CODER_MACHINE_SANDBOX!==`1`||e!==`Bash`),...v,`--allowedTools`,...d,...g):(s.push(...y[l]??y.auto,...v),g.length&&s.push(`--allowedTools`,...g));let b=t.writableDirectories??[];for(let e of[...u,...l===`read-only`?[]:b])s.push(`--add-dir`,e);let x=m(l,e,t.allowedNetworkHosts??[],u,b,N.env[_]!==`1`),S={...x?JSON.parse(x):{},...t.nativeMcp?{}:{disableClaudeAiConnectors:!0},...t.promptCacheTtl&&c&&Y(c,`2.1.242`)>=0?{promptCacheTtl:t.promptCacheTtl}:{}};return Object.keys(S).length&&s.push(`--settings`,JSON.stringify(S)),s}function $(e,t){return Object.assign(Error(e),{retryable:t})}function En(e,t){let n=t&&V(t),r=n&&`${n.slice(0,14)}5${n.slice(15,19)}${(Number.parseInt(n[19],16)&3|8).toString(16)}${n.slice(20)}`;return{type:`user`,...r?{uuid:r}:{},message:{role:`user`,content:[{type:`text`,text:e}]}}}function Dn(e){let t=!0;return{sendInitial(t,n){return new Promise((r,i)=>{e(`${JSON.stringify(En(t,n))}\n`,e=>{e?i(e):r()})})},sendSteer(n,r){return t?new Promise((t,i)=>{e(`${JSON.stringify(En(n,r))}\n`,e=>{if(!e){t();return}let n=e.code,r=n===`EPIPE`||n===`ERR_STREAM_DESTROYED`||n===`ERR_STREAM_WRITE_AFTER_END`;i($(`Failed to write Claude live steer: ${e.message}`,r))})}):Promise.reject($(`Claude turn is no longer accepting live input.`,!0))},stopAccepting(){t=!1}}}async function On(e){return He(`coder-claude-steer-`,async(t,n)=>{if(n)throw $(`Claude turn is no longer accepting live input.`,!0);let r=typeof t?.params?.text==`string`?t.params.text.trim():``;if(t.method!==`turn/steer`||!r)throw $(`Invalid Claude steer request.`,!1);return await e(r,t.command),{accepted:!0}})}async function kn(e,t,n=3e3,r){if(!t.trim())return{steered:!1,retryable:!1,detail:`empty follow-up`};let i=await Ue(e,{id:V(r),method:`turn/steer`,params:{text:t.trim()},command:r},n,`Claude live steer`);return{steered:i.ok&&i.result?.accepted===!0,retryable:i.retryable,detail:i.detail}}async function An(e,t){let n=await jn(e,t);return!t.resumeSessionId||!n.error?.message?.includes(`No conversation found with session ID`)?n:(t.onProgress?.({kind:`warning`,message:he}),jn(e,{...t,resumeSessionId:null}))}async function jn(e,t){let n=t.resumeSessionId??I(),r=wn(e,t),i=Object.keys(r).length?M.join(t.taskRoot??e,`.claude-mcp-${I()}.json`):void 0,a=t.systemPrompt?M.join(t.taskRoot??e,`.claude-system-${I()}.md`):void 0;for(let[e,n]of[[i,`${JSON.stringify({mcpServers:r})}\n`],[a,t.systemPrompt]])e&&(P.mkdirSync(M.dirname(e),{recursive:!0}),P.writeFileSync(e,n,{encoding:`utf8`,flag:`wx`,mode:384}));o(`claude.prepare`,{resume:!!t.resumeSessionId});let s=f({...N.env,...t.env}),c=Tn(e,t,n,i,Sn(t.executable??`claude`,s,e),a),l=()=>{for(let e of[i,a])if(e)try{P.unlinkSync(e)}catch{}};return t.onProgress?.({kind:`status`,message:`claude turn started (session ${n})`,threadId:n}),new Promise((r,i)=>{let a=Date.now();o(`claude.spawn`);let u=je(t.executable??`claude`,c,{cwd:e,stdio:[`pipe`,`pipe`,`pipe`],env:s}),d=``,f=``,p=[],m=null,h=n,g=null,_=!1,v=Dn((e,t)=>u.stdin.write(e,t)),y=Date.now(),b=new Map,x=0,S=0,C=null,T,E=0,ee=new Set,D=n=>{if(!(!n||typeof n!=`object`)){if(l(),t.onHeartbeat?.(),n.type===`system`&&n.subtype===`init`&&n.session_id)h=n.session_id,n.mcp_servers?.some(e=>e.status===`failed`)&&u.stdin.write(`${JSON.stringify({type:`control_request`,request_id:pn,request:{subtype:`mcp_status`}})}\n`);else if(n.type===`control_response`&&n.response?.request_id===pn)for(let e of n.response.response?.mcpServers??[])e.status===`failed`&&t.onProgress?.({kind:`error`,message:`MCP server ${e.name} failed to start. ${e.error??``}`.trim()});else if(n.type===`stream_event`&&!n.parent_tool_use_id){let e=n.event;e?.type===`message_start`?(T=e.message?.id,C=e.message?.usage):e?.type===`message_delta`&&(C={...C,...e.usage});let t=Z(C);S=t?t.input+t.cachedInput:0}else if(n.type===`assistant`||n.type===`user`){let r=n.type===`assistant`?Z(n.message?.usage):null;if(n.type===`assistant`&&!n.parent_tool_use_id){(!T||T!==n.message?.id)&&(C=null),T=n.message?.id,(!C||r&&r.input+r.cachedInput>0)&&(C=n.message?.usage);let e=Z(C);S=e?e.input+e.cachedInput:0}if(r){x+=r.output;let e=r.input+r.cachedInput+x;(!E||e-E>=1e3)&&(E=e,t.onProgress?.({kind:`usage`,tokens:{...r,output:x,total:e},threadId:h}))}for(let r of n.message?.content??[])if(r?.type===`tool_use`||r?.type?.endsWith(`_tool_use`)){let n=String(r.name??`Tool`);if(r.id&&b.set(String(r.id),{name:n,at:Date.now()}),fn.has(n)){let t=String(r.input?.file_path??r.input?.notebook_path??``);t&&ee.add(M.isAbsolute(t)?t:M.resolve(e,t))}t.onProgress?.({kind:`tool`,tool:n,...r.id?{callId:String(r.id)}:{},message:yn(n,r.input??{},e),threadId:h})}else if(r?.type===`tool_result`||r?.type?.endsWith(`_tool_result`)){let e=hn(r.content).trim(),n=r.is_error===!0||r.content?.type?.endsWith(`_error`)===!0,i=r.tool_use_id?b.get(String(r.tool_use_id)):void 0;r.tool_use_id&&b.delete(String(r.tool_use_id)),t.onProgress?.({kind:`tool-result`,...r.tool_use_id?{callId:String(r.tool_use_id)}:{},...i?{tool:i.name,durationMs:Date.now()-i.at}:{},...n?{isError:!0}:{},message:e||(n?`(tool failed with no output)`:`(no output)`),threadId:h})}else n.type===`assistant`&&r?.type===`text`&&typeof r.text==`string`&&r.text.trim()?t.onProgress?.({kind:`assistant`,message:r.text.trim(),threadId:h}):n.type===`assistant`&&r?.type===`thinking`&&typeof r.thinking==`string`&&r.thinking.trim()&&t.onProgress?.({kind:`reasoning`,message:r.thinking.trim(),durationMs:Math.max(0,Date.now()-y),threadId:h})}else n.type===`result`&&(o(`claude.result`),m=n,t.onResult?.({status:n.is_error||p.length?1:0,threadId:n.session_id??h,finalMessage:n.structured_output===void 0?String(n.result??``).trim():JSON.stringify(n.structured_output),error:n.is_error||p.length?{message:p[0]||String(n.result??``)}:null}),n.session_id&&(h=n.session_id),v.stopAccepting(),u.stdin.end());y=Date.now()}};u.stdout.on(`data`,e=>{d+=e;let t;for(;(t=d.indexOf(`
7
- `))>=0;){let e=d.slice(0,t).trim();if(d=d.slice(t+1),e)try{D(JSON.parse(e))}catch(e){p.push(`Invalid Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}}}),u.stderr.on(`data`,e=>{f+=e});let O=()=>{v.stopAccepting(),u.kill(`SIGTERM`),l();let e=g?.endpoint;e?.startsWith(`file:`)&&P.rmSync(e.slice(5),{recursive:!0,force:!0}),N.exit(143)};N.on(`SIGTERM`,O),(async()=>{t.onSteerReady&&(g=await On((e,t)=>v.sendSteer(e,t))),await v.sendInitial(t.prompt,t.command),g&&t.onSteerReady?.(g.endpoint)})().catch(e=>{_||(_=!0,v.stopAccepting(),u.kill(`SIGTERM`),l(),N.removeListener(`SIGTERM`,O),g?.close(),i(e))}),u.on(`error`,e=>{_||(_=!0,v.stopAccepting(),N.removeListener(`SIGTERM`,O),l(),g?.close(),i(Error(`claude spawn failed: ${e.message}`)))}),u.on(`close`,async e=>{if(_)return;_=!0,v.stopAccepting(),N.removeListener(`SIGTERM`,O),l(),o(`claude.exit`),await g?.close(),o(`claude.teardown.done`);let n=d.trim();if(n)try{D(JSON.parse(n))}catch(e){p.push(`Invalid trailing Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}let i=m?.structured_output===void 0?(m?.result??``).trim():JSON.stringify(m.structured_output),c=e!==0||m?.is_error===!0||m==null||p.length>0;o(`claude.usage.start`);let u=Z(m?.usage);if(!S&&m){let e=Z(await w(h,a,s.CLAUDE_CONFIG_DIR).catch(()=>null)),t=e&&e.input+e.cachedInput>0?e:u;S=t?t.input+t.cachedInput:0}o(`claude.usage.done`),r({status:+!!c,threadId:m?.session_id??h,turnId:null,finalMessage:i,touchedFiles:[...ee],tokens:u,contextTokens:S,model:m?.modelUsage&&Object.keys(m.modelUsage).join(`+`)||t.model||null,error:c?{message:p[0]||i||f.trim()||`claude exited ${e}`}:null})})})}const Mn=new Set(`commit.checkout.switch.restore.stash.reset.rebase.merge.push.pull.cherry-pick.revert.clean.am.apply.tag.branch.worktree.filter-branch.filter-repo.gc.prune.reflog.remote.submodule.config`.split(`.`)),Nn=[/\bsudo\b/,/\brm\s+(-[a-zA-Z]*r[a-zA-Z]*f|-[a-zA-Z]*f[a-zA-Z]*r)\b.*\s(\/\*?|~\/?|\$HOME\/?)(\s|$)/,/\b(shutdown|reboot|halt|poweroff)\b/,/\bmkfs\b|\bdiskutil\s+erase/i,/\b(chmod|chown)\b.*-R.*\s\/(\s|$)/,/\bkill(all)?\s+-9\s+1\b/,/curl[^|;&]*\|\s*(ba|z|da)?sh\b/,/wget[^|;&]*\|\s*(ba|z|da)?sh\b/,/\blaunchctl\b|\bsystemctl\b/,/\bdefaults\s+write\b/,/>\s*\/dev\/(sd|disk)/],Pn=new Set([`status`,`log`,`diff`,`show`,`blame`,`rev-parse`,`ls-files`,`ls-tree`,`cat-file`,`describe`,`shortlog`,`grep`,`branch`,`stash`]);function Fn(e){return e.match(/^\s*(?:ba|z|da)?sh\s+(?:-[a-zA-Z]+\s+)*(?:-c\s+)?(["'])([\s\S]*)\1\s*$/)?.[2]??e}function In(e){return e.trim().split(/\s+/).filter(Boolean)}function Ln(e){let t=e.find((e,t)=>t>0&&!e.startsWith(`-`));if(!t)return{decision:`accept`,reason:`bare git`};if(t===`branch`&&e.some(e=>/^-(d|D|m|M|c|C|f|u)|^--(delete|move|copy|force|set-upstream)/.test(e)))return{decision:`decline`,reason:`git branch write operation (git is read-only for Coder)`};if(t===`stash`){let t=e.find((e,t)=>t>1&&!e.startsWith(`-`));return t===`list`||t===`show`?{decision:`accept`,reason:`git stash ${t} is read-only`}:{decision:`decline`,reason:`git stash write operation (git is read-only for Coder)`}}return Pn.has(t)?{decision:`accept`,reason:`git ${t} is read-only`}:Mn.has(t)?{decision:`decline`,reason:`git ${t} is a write operation (git is read-only for Coder)`}:{decision:`escalate`,reason:`unrecognized git subcommand: ${t}`}}function Rn(e,t={}){let n=Fn(String(e??``));if(!n.trim())return{decision:`escalate`,reason:`empty command`};for(let e of Nn)if(e.test(n))return{decision:`decline`,reason:`matches hard-deny pattern ${e}`};if(/\$\(|`|<\(/.test(n))return{decision:`escalate`,reason:`contains command substitution`};let r=n.split(/&&|\|\||;|\||\r?\n/).map(e=>e.trim()).filter(Boolean);if(r.length>1){let e={decision:`accept`,reason:`all segments safe`};for(let n of r){let r=Rn(n,t);if(r.decision===`decline`)return r;r.decision===`escalate`&&(e=r)}return e}let i=In(n),a=M.basename(i[0]??``);if(a===`git`)return Ln(i);let o=t.networkHost;return o?(t.allowedNetworkHosts??[]).some(e=>o===e||o.endsWith(`.${e}`))?{decision:`accept`,reason:`network host ${o} is allowlisted`}:{decision:`escalate`,reason:`network access to ${o}`}:{decision:`escalate`,reason:`command needs approval: ${a||`(unknown)`}`}}function zn(e,t){if(!e.length)return{decision:`escalate`,reason:`file change with no resolvable paths`};for(let n of e){let e=M.resolve(t,n),r=M.relative(t,e);if(r.startsWith(`..`)||M.isAbsolute(r))return{decision:`escalate`,reason:`path outside workspace: ${n}`};if(r===`.git`||r.startsWith(`.git${M.sep}`))return{decision:`decline`,reason:`direct .git modification: ${n}`}}return{decision:`accept`,reason:`all paths inside workspace`}}function Bn(e){return M.join(e,`approvals`)}function Vn(e){let t=Bn(e);return P.existsSync(t)?P.readdirSync(t).filter(e=>e.endsWith(`.request.json`)).flatMap(e=>{let n=e.replace(/\.request\.json$/,``),r=k(M.join(t,e));if(!r)return[];let i=k(M.join(t,`${n}.response.json`));return[{...r,id:n,response:i}]}).sort((e,t)=>String(e.createdAt??``).localeCompare(String(t.createdAt??``))):[]}function Hn(e,t,n){let r=Bn(e),i=M.join(r,`${t}.request.json`);if(!P.existsSync(i))throw Error(`No pending approval "${t}" for this task.`);P.writeFileSync(M.join(r,`${t}.response.json`),`${JSON.stringify({decision:n,answeredAt:new Date().toISOString()},null,2)}\n`,`utf8`)}async function Un(e,t,{timeoutMs:n,onEvent:r}){let i=Bn(e);P.mkdirSync(i,{recursive:!0});let a=`apr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`;P.writeFileSync(M.join(i,`${a}.request.json`),`${JSON.stringify({...t,createdAt:new Date().toISOString()},null,2)}\n`,`utf8`),r?.({kind:`approval-escalated`,approvalId:a,summary:t.summary,message:`Approval needed (${a}): ${t.summary}. Answer with: coder task approve ${M.basename(e)} ${a} [--deny]`});let o=M.join(i,`${a}.response.json`),s=await oe(i).until(()=>k(o)??void 0,n);if(s){let e=s.decision===`accept`?`accept`:`decline`;return r?.({kind:`approval-answered`,approvalId:a,decision:e}),e}return r?.({kind:`approval-timeout`,approvalId:a,message:`Approval ${a} timed out; declining.`}),`decline`}function Wn(e,t={}){return Un(e,{method:`simulate`,summary:`simulated approval probe (--simulate-approval)`},{timeoutMs:t.timeoutMs??12e4,onEvent:t.onEvent??null})}function Gn({workspaceRoot:e,taskDir:t,mode:n=`auto`,escalationTimeoutMs:r=12e4,allowedNetworkHosts:i=[],onEvent:a=null}){return async(o,s,c)=>{let l=c?.itemIndex?.get(s.itemId??``),u,d;if(o===`item/commandExecution/requestApproval`){let t=s.command??l?.command??``,n=s.cwd??l?.cwd??e;u={method:o,summary:`Run command. ${t||`Unknown command`}${s.reason?`. ${s.reason}`:``}`,command:t,cwd:n,params:s},d=Rn(t,{networkHost:s.networkApprovalContext?.host??null,allowedNetworkHosts:i})}else if(o===`item/fileChange/requestApproval`){let t=(l?.changes??[]).map(e=>e.path).filter(e=>!!e);u={method:o,summary:`Apply file changes. ${t.join(`, `)||`Unknown paths`}${s.reason?`. ${s.reason}`:``}`,paths:t,params:s},d=zn(t,e)}else throw a?.({kind:`approval-unsupported`,method:o}),Error(`Coder does not handle server request ${o}; treating as denied.`);return n===`deny`&&(d={decision:`decline`,reason:`deny mode`}),a?.({kind:`approval-decision`,method:o,...d,summary:u.summary}),{decision:d.decision===`escalate`?await Un(t,u,{timeoutMs:r,onEvent:a}):d.decision}}}const Kn=/usage|quota|rate.?limit|429|401|unauthorized|not authenticated|login|insufficient|exhausted|not available|ENOENT/i;function qn(e){return Kn.test(e)&&!Ie(e)}var Jn=class extends Error{engine;detail;constructor(e,t){super(t),this.engine=e,this.detail=t}};function Yn(e,t){let n=e.engine,r=!!n,i=e.model,o=e.effort,s=e=>{let n=e?t.models?.[e]:void 0;return n&&ee(n)?n:void 0},l=e=>{let n=e?t.models?.[e]:void 0;return n&&E(n)?n:void 0},u=e=>{try{return be(e,t)}catch(e){throw new R(`invalid-option`,e instanceof Error?e.message:String(e))}};if(s(i)){let e=u(i);e&&(r||(n=e.engine),i=e.model??void 0,o=o??e.effort??void 0)}if(!n&&i&&(i in a?n=`claude`:i in h?n=`codex`:l(i)?n=`custom`:/^(?:claude-|opus|sonnet|haiku|fable)/i.test(i)&&(n=`claude`)),n=n??t.chain[0]??`codex`,n!==`codex`&&n!==`claude`&&n!==`custom`){let e=n in h||n in a||n in(t.models??{})?` "${n}" is a model; use --model ${n}.`:``;throw new R(`invalid-option`,`Invalid --engine "${n}". Use codex, claude, or custom.${e}`)}let f=t.engines[n]??{},p=i??f.model??null,m=o??f.effort??null;if(s(p)){let e=u(p);e&&(r||(n=e.engine),p=e.model,m=o??e.effort??m)}let g=e.permissions??f.permissions??`auto`;try{d(t,p)}catch(e){throw new R(`invalid-option`,e instanceof Error?e.message:String(e))}if(n===`custom`){let e=Object.entries(t.models??{}).filter(([,e])=>E(e)).map(([e])=>e);if(!p&&e.length===1&&(p=e[0]),!p||!l(p))throw new R(`invalid-option`,p?`No custom model named "${p}". Configured: ${e.join(`, `)||`none`}.`:`No custom model to run: pass --model <name> or set engines.custom.model.`,{hint:`Add one: coder model add <name> --base-url <url> --model <id>`})}let _=n===`claude`;if(!(g in x))throw new R(`invalid-option`,`Invalid --permissions "${g}". Use one of: ${Object.keys(x).join(`, `)}`);if(!_&&m&&!ue.has(m))throw new R(`invalid-option`,`Invalid codex --effort "${m}". Use one of: ${[...ue].join(`, `)}`);if(_&&m&&!c.has(m))throw new R(`invalid-option`,`Invalid claude --effort "${m}". Use one of: ${[...c].join(`, `)}`);return{engine:n,model:p,effort:m,permissions:g}}const{connection:Xn,description:Zn,...Qn}=u.shape,$n=b({name:fe().check(e(1)),...Qn}).check(s(e=>!!e.command!=!!e.url,`one of command or url`)),er=ae($n);function tr(e,t={}){let n=e.trim();return/^[\[{]/.test(n)?rr(n):(n===`all`?Object.keys(t):n.split(`,`).map(e=>e.trim()).filter(Boolean)).map(e=>{let n=t[e];if(!n)throw new R(`invalid-option`,`Unknown MCP server "${e}".`,{hint:`configured: ${Object.keys(t).join(`, `)||`none`}; or pass a JSON array`});return{name:e,...n}})}function nr(e,t={},n={},r={}){typeof e==`string`&&!e.trim()&&(e=void 0);let i=typeof e==`string`?tr(e,{...t,...n}):e??Object.entries(n).map(([e,t])=>({name:e,...t})),a=[],o=i.filter(e=>e.connection).map(({name:e,connection:t,tools:n})=>({name:e,connection:t,...n?{tools:n}:{}})),s=new Set,c=[];for(let e of i){if(!e.connection||e.resolved){e.connection&&s.add(e.connection),e.repository&&a.push(...me(e.name,e)),c.push(e);continue}let t=Object.hasOwn(r,e.connection)?r[e.connection]:void 0;if(!t){a.push(`MCP server "${e.name}" skipped because connection "${e.connection}" was not granted to this task.`);continue}if(s.has(e.connection))continue;s.add(e.connection);let n=e.tools?.length?e.tools.filter(e=>!t.tools?.length||t.tools.includes(e)):t.tools;if(e.tools?.length&&!n?.length){a.push(`MCP server "${e.name}" skipped because its tools are not granted by connection "${e.connection}".`);continue}c.push({...t,name:e.name,connection:e.connection,resolved:!0,...n?{tools:n}:{}})}for(let[e,t]of Object.entries(r)){if(s.has(e))continue;let n=c.findIndex(e=>e.name===t.name);n>=0&&c.splice(n,1),c.push({...t,resolved:!0})}return{mcp:c,...o.length?{mcpBindings:o}:{},nativeMcp:typeof e==`string`&&e.trim()===`all`,...a.length?{warnings:a}:{}}}function rr(e){let n;try{n=JSON.parse(e)}catch(e){throw new R(`invalid-option`,`Invalid --mcp JSON: ${e instanceof Error?e.message:String(e)}`)}let r=er.safeParse(n);if(!r.success)throw new R(`invalid-option`,`Invalid --mcp value: ${t(r.error)}`,{hint:`--mcp '[{"name":"docs","command":"npx","args":["-y","docs-mcp"],"tools":["search"]}]'`});return r.data}function ir(e,t=N.env,n,r={}){let i=r.cloud??t.CODER_MCP_MODE===`cloud`,a=r.connectionEnv??JSON.parse(t.CODER_MCP_CONNECTION_ENV??`{}`),o=r.onWarning??(e=>N.stderr.write(`coder: ${e}\n`));return(e??[]).flatMap(e=>{let r=e.repository&&!e.resolved;if(r){for(let t of me(e.name,e))o(t);if(!i&&!Se(e))return o(`MCP server "${e.name}" skipped pending local approval. Run coder connection approve ${e.name} in its repository.`),[]}let s=new Set,c=new Set,l=n=>e.resolved?n.replace(/^\$\{(CODER_CONNECTION_[A-F0-9]{24})\}$/,(e,n)=>t[n]??``):n.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g,(e,n,o)=>r&&i?a[n]===null?(c.add(n),``):Object.hasOwn(a,n)?a[n]:(s.add(n),``):t[n]??o??``),u=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,l(t)])),d=r&&!!e.url,f={...e,...e.command?{command:l(e.command)}:{},...e.args?{args:e.args.map(l)}:{},...e.url?{url:d?e.url:l(e.url)}:{},...e.env?{env:u(e.env)}:{},...e.headers?{headers:d?e.headers:u(e.headers)}:{}};if(c.size)return o(`MCP server "${e.name}" skipped because connection variables ${[...c].join(`, `)} are ambiguous.`),[];if(s.size&&o(`MCP server "${e.name}" has unresolved connection variables ${[...s].join(`, `)}; expanded to empty.`),!n||!f.command)return[f];let p=(f.command.includes(M.sep)?[M.resolve(n,f.command)]:(f.env?.PATH??t.PATH??`/usr/bin:/bin`).split(M.delimiter).map(e=>M.resolve(n,e,f.command))).find(e=>{try{return P.accessSync(e,P.constants.X_OK),P.statSync(e).isFile()}catch{return!1}});if(!p)throw new R(`invalid-option`,`MCP server "${e.name}" command cannot be resolved.`);return f.command=P.realpathSync(p),f.args=f.args?.map(e=>{if(e.startsWith(`-`)||M.isAbsolute(e))return e;let t=M.resolve(n,e),r=P.existsSync(t)&&P.statSync(t).isFile();return!r&&!e.startsWith(`./`)&&!e.startsWith(`../`)?e:r?P.realpathSync(t):t}),[f]})}function ar(e,t=[]){let n=[...new Set(t.map(t=>M.resolve(e,t)))];for(let e of n)if(!P.statSync(e,{throwIfNoEntry:!1})?.isDirectory())throw new R(`invalid-option`,`--add-dir ${e} is not a directory.`);return n}function or(e=[]){return e.filter(e=>!e.alwaysLoad&&(e.command||e.url)).map(({name:e,description:t,access:n,connection:r,url:i})=>({name:e,description:t??(r?`connection ${r}`:i&&URL.canParse(i)?new URL(i).host:`MCP server`),...n?{access:n}:{}}))}function sr(e,t){return e===`read-only`&&de.test(t??``)}const cr=[`read-only`,`workspace-write`,`auto`];function lr(e,t,n){if(!t)return n.permissions;if(cr.indexOf(t)>cr.indexOf(n.permissions))throw new R(`invalid-option`,`task "${e??`task`}" asks for ${t} but agent "${n.agent}" is ${n.permissions}: lower the task's permissions or raise the agent's`);return t}function ur(e,t,n={},r=!1){let a=A(e,t),s=P.openSync(M.join(a,`worker.log`),`a`),c={...N.env,...n};o(`worker.spawn`,{taskId:t});let l=je(N.execPath,[i,`task`,`worker`,t,`--cwd`,e],{cwd:e,detached:!0,stdio:[`ignore`,s,s,`ipc`],env:{...c,...xn(c,e),CODER_WORKER:`1`,CODER_ENGINE_CHECKED:r?`1`:void 0}});return l.on(`error`,()=>{}),l.unref(),l.channel?.unref?.(),P.closeSync(s),se(e,t,{pid:l.pid??null}),l}async function dr(e,t,n,r,i){let a=n.cwd,o=n.availability?.[t.engine===`custom`?`codex`:t.engine]??(t.engine===`claude`?Q(`claude`,{...N.env,...n.connectionEnv},a):K(a)),s=t.model?e.models?.[t.model]:void 0;if(!o.available&&s&&E(s)){let e=rn(o);n.onNote?.(e.note),o=K(a)}if(!o.available)throw new Jn(t.engine,o.detail);let c=s?null:t.engine===`claude`?sn(`claude`,t.model,o):sn(`codex`,ne(t.model),o);c&&n.onNote?.(c);let l=n.addDirs??[],u=n.taskId??C(),d=n.resume?.engine===t.engine?n.resume:void 0,f=se(a,u,{status:`queued`,...n.taskId?{dispatchId:I()}:{},name:r.name??null,system:n.system??null,systemPrompt:ie({cwd:a,...n.agentPrompt,servers:or(n.mcp),hub:t.engine!==`claude`,instructions:n.system??void 0,conversation:n.conversation,agent:!!n.agentId,local:N.env.CODER_MCP_MODE!==`cloud`}),engine:t.engine,prompt:n.prompt,...n.outputSchema?{outputSchema:n.outputSchema}:{},model:t.model,effort:t.effort,permissions:t.permissions,resumeThreadId:d?.threadId??null,...d?{threadId:d.threadId,...d.previousThreadIds?{previousThreadIds:d.previousThreadIds}:{},...d.pendingRollover?{pendingRollover:d.pendingRollover}:{}}:{},cwd:a,...r.simulateApproval?{simulateApproval:!0}:{},...n.flowRunId?{flowRunId:n.flowRunId}:{},...n.agentId?{agentId:n.agentId}:{},...n.conversation?{conversation:!0}:{},...n.source?{source:n.source}:{},...n.author?{author:n.author}:{},...n.repo?{repo:n.repo}:{},...n.mcp?.length?{mcp:n.mcp}:{},...n.mcpBindings?{mcpBindings:n.mcpBindings}:{},...n.connections?{connections:n.connections}:{},...n.connectionSource?{connectionSource:n.connectionSource}:{},nativeMcp:n.nativeMcp??!1,...l.length?{addDirs:l}:{}});for(let e of new Set(n.mcpWarnings??[]))Oe(a,u,{kind:`warning`,message:e});n.resume&&!d&&Oe(a,u,{kind:`warning`,message:he});let m=M.join(A(a,u),`log.jsonl`),h=P.existsSync(m)?P.statSync(m).size:0,g=ur(a,u,n.connectionEnv,!0);if(n.onWorker?.(u,g),!i)return{taskId:u,task:D(a,u)??f,engine:t.engine,startupCheck:`pending`};let _=we(a,u,g),v=ve(m,h),y=!1,b=!1,x=()=>{let e=v().map(e=>{try{return JSON.parse(e)}catch{return{kind:`unknown`}}});return b||=e.some(e=>e.kind===`tool`||e.kind===`reply`),e.some(e=>e.phase!==`starting`&&![`status`,`usage`].includes(e.kind??``))},S=Date.now()+15e3,w,T=f;try{for(;Date.now()<(w===void 0?S:w+5e3)&&(T=D(a,u)??T,!(ce.includes(T.status)||p(a,u).at(-1)?.status===0||(y=x()||y,T.threadId&&(w??=Date.now(),y))));)await _.wait(Math.min(3e4,(w===void 0?S:w+5e3)-Date.now()))}finally{_.close()}if(T.status===`failed`){x();let e=M.join(A(a,u),`result.json`),n=k(e),r=n?.error?.message??``,i=xe(a,u,5).map(e=>e.message??``).join(`
8
- `),o=r||i;throw sr(t.permissions,o)?new R(`read-only-unavailable`,o):qn(o)&&!hr(n,b)?new Jn(t.engine,o):new R(`startup-failed`,o,{taskId:u})}return{taskId:u,task:T,engine:t.engine,startupCheck:T.threadId?`passed`:`pending`}}function fr(e,t,n,r,i){return{error:`${e} failed to start: ${t}`,fallback:{action:`run-native-subagent`,reason:`no-engine-available`,permissions:n,instructions:Ce,note:ge,...r?{system:r}:{},task:i}}}async function pr(e,t={}){if(N.env.CODER_WORKER&&!t.fromMailbox)throw new R(`nested-dispatch`,`Nested dispatch is disabled inside a worker; do the work directly.`);if(e.outputSchema!==void 0&&(!e.outputSchema||typeof e.outputSchema!=`object`||Array.isArray(e.outputSchema)))throw new R(`invalid-option`,`outputSchema must be an object.`);if(!e.prompt.trim())throw new R(`invalid-option`,`Missing task text.`,{hint:[`Usage: coder run "<task text>"`,`Help: coder task run --help`]});e={...e,addDirs:ar(e.cwd,e.addDirs)};let n=t.config??O(e.cwd),r=nr(e.mcp,n.mcp),i={...e,mcp:r.mcp,mcpBindings:e.mcpBindings??r.mcpBindings,mcpWarnings:[...e.mcpWarnings??[],...r.warnings??[]],nativeMcp:e.nativeMcp??r.nativeMcp},a={engine:e.engine,model:e.model,effort:e.effort,permissions:e.permissions},o={name:e.name,simulateApproval:e.simulateApproval};for(;;){let r=Yn(a,n);try{return await dr(n,r,i,o,t.waitForStartup!==!1)}catch(t){if(!(t instanceof Jn))throw t;let i=mr(t.engine,n);if(!i){let n=fr(t.engine,t.detail,r.permissions,e.system,e.prompt);throw new R(`chain-exhausted`,n.error,{payload:n})}e.onFallback?.({engine:t.engine,detail:t.detail,next:i}),a={engine:i,permissions:e.permissions},o={name:void 0,simulateApproval:void 0}}}}function mr(e,t){return t.chain.slice(t.chain.indexOf(e)+1).find(e=>e!==`custom`||Object.values(t.models??{}).some(E))}function hr(e,t=!1){return!!(t||e?.touchedFiles?.length||e?.fileChanges?.length||e?.commandExecutions?.length)}function gr(e,t,n){if(t.status!==`failed`)return;let r=t.result;if(!r||!qn(r.error?.message??``))return;let i=Date.parse(t.turns.at(-2)?.at??t.task.resumedAt??t.task.createdAt);if(!hr(r,xe(e,t.taskId,2**53-1).some(e=>(e.kind===`tool`||e.kind===`reply`)&&(!e.at||Date.parse(e.at)>=i)))&&!t.turns.at(-1)?.lastReply)return mr(t.task.engine,n??O(e))??null}function _r(e,t){return k(M.join(A(e,t),`result.json`))}function vr(e,t,n=0){if(n===0)return[];let r=xe(e,t,2**53-1);return n===`all`?r:_e(r,n)}function yr(e,t,n={}){let r=D(e,t);if(!r)throw Error(`No task found for "${t}".`);return{taskId:t,status:r.status,result:ye.includes(r.status)?null:_r(e,t),steps:vr(e,t,n.tail),turns:p(e,t),task:r}}async function br(e,t,n={}){let r=D(e,t);if(!r)throw Error(`No task found for "${t}".`);let i=await xr(e,r,1e3,n);if(i.reason===`approval`){let e=i.approval;throw new R(`approval-pending`,`Approval needed for task ${t}: ${e.summary}`,{taskId:t,approval:e})}n.onSettle?.();let a=i.task;return{taskId:t,status:a.status,result:_r(e,t),steps:vr(e,t,n.tail),turns:p(e,t),task:a}}async function xr(e,t,n=1e3,{turn:r,worker:i,rollover:a=!1,signal:o}={}){let s=t,c=we(e,t.id,i);try{let t=te();for(;;){o?.throwIfAborted(),s=D(e,s.id)??s;let i=r===void 0?void 0:p(e,s.id)[r];if(s=i?{...s,status:i.status===0?`completed`:`failed`}:re(e,s,t),a?!s.rollingOver:ce.includes(s.status))return{task:s,reason:`terminal`};let l=Vn(A(e,s.id)).find(e=>!e.response);if(l){let e=l.params;return{task:s,reason:`approval`,approval:{id:l.id,summary:String(l.summary??``),cwd:typeof l.cwd==`string`?l.cwd:null,networkHost:e?.networkApprovalContext?.host??null}}}await c.wait(n,o)}}finally{c.close()}}export{K as A,Xe as B,kn as C,un as D,ln as E,We as F,z as H,Ze as I,Ye as L,Ut as M,Ht as N,Xt as O,tt as P,qe as R,An as S,dn as T,R as U,Be as V,zn as _,_r as a,Wn as b,Yn as c,gr as d,xr as f,Rn as g,Gn as h,sr as i,Vt as j,Zt as k,nr as l,Hn as m,lr as n,yr as o,br as p,pr as r,ir as s,fr as t,ur as u,Un as v,rn as w,Q as x,Vn as y,V as z};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./cli-BBlH53hA.js";import{g as t,p as n,s as r}from"./output-BKeyLbvt.js";import{n as i}from"./args-CURX44CA.js";import{t as a}from"./docs-CvjWiada.js";import o from"node:process";const s=e({name:`docs`,globalFlags:{cwd:!1},help:{usage:`coder docs [topic] [--json]`,summary:"Print bundled documentation. With no topic, list the available topics; with a\ntopic, print that doc's raw markdown to stdout (unstyled, for an agent to\nconsume). Topics with sub-pages list them as `<topic>/<page>` (also accepted as\n`<topic>-<page>`). `coder docs skill` prints the host skill so an engine can\nload it once per session (--claude for the Claude Code flavor).",flags:[[`--claude`,`with the skill topic: print the Claude Code flavor`]],examples:[[`coder docs`,`list the available topics`],[`coder docs flows`,`print the Flows doc`],[`coder docs review`,`print the Review doc`]]},options:{json:i,claude:i},args:1,run:({options:e,args:[t]})=>a(t,e),print:e=>o.stdout.write(`content`in e?e.content.endsWith(`
2
- `)?e.content:`${e.content}\n`:c(e.topics))});function c(e){let i=n,a=e=>e.includes(`/`)?` ${e}`:e;return t([{header:`topic`,value:e=>a(e.name),paint:e=>i.cyan(e)},{header:`about`,value:e=>e.description,paint:e=>i.light(e)}],e,i)+`\n${r([`Read a topic: coder docs <topic>`],i)}\n`}export{s as commandDocs};
@@ -1,2 +0,0 @@
1
- import{Pn as e}from"./prompts-Bj4Fbd_n.js";import{U as t}from"./dispatch-CFZ9Crvg.js";import n from"node:path";import r from"node:fs";const i=[{name:`readme`,file:`README.md`,description:`What Coder is and how to get started.`},{name:`skill`,file:`plugins/agents/skills/coder/SKILL.md`,description:`How a host agent should drive Coder.`}];function a(e){let t=n.join(e,`docs`),a=[];try{a=r.readdirSync(t,{withFileTypes:!0})}catch{a=[]}let c=(t,r)=>({name:t,file:r,description:s(n.join(e,r))}),l=[...new Set(a.filter(e=>e.isDirectory()?o(n.join(t,e.name)):e.name.endsWith(`.md`)).map(e=>e.isDirectory()?e.name:n.basename(e.name,`.md`)))].sort(),u=[];for(let e of l){let i=n.join(t,e);if(!a.some(t=>t.isDirectory()&&t.name===e)){u.push(c(e,n.join(`docs`,`${e}.md`)));continue}u.push(c(e,n.join(`docs`,e,`index.md`)));let o=r.readdirSync(i).filter(e=>e.endsWith(`.md`)&&e!==`index.md`).sort();for(let t of o){let r=n.basename(t,`.md`);u.push(c(`${e}/${r}`,n.join(`docs`,e,t)))}}return[...u,...i]}function o(e){return r.existsSync(n.join(e,`index.md`))}function s(e){let t=``;try{t=r.readFileSync(e,`utf8`)}catch{return``}let n=t.split(`
2
- `),i=``,a=``,o=!1;for(let e of n){let t=e.trim();if(t.startsWith("```")){o=!o;continue}if(!(o||t===``)){if(t.startsWith(`#`)){i||=t.replace(/^#+\s*/,``);continue}a=t;break}}return c(a)||i}function c(e){if(!e)return``;let t=e.match(/^.*?[.!?](?=\s|$)/);return(t?t[0]:e).trim()}function l(i,o={}){let s=e(),c=a(s);if(!i)return{topics:c.map(e=>({name:e.name,description:e.description}))};let l=i.toLowerCase(),u=c.find(e=>{let t=e.name.toLowerCase();return t===l||t.replace(`/`,`-`)===l});if(u?.name===`skill`&&o.claude&&(u={...u,file:`plugins/claude/skills/dispatch/SKILL.md`}),!u)throw new t(`invalid-option`,`Unknown docs topic "${i}". Available: ${c.map(e=>e.name).join(`, `)}`,{hint:`List topics: coder docs`});let d=n.join(s,u.file),f;try{f=r.readFileSync(d,`utf8`)}catch{throw new t(`invalid-option`,`Could not read docs for "${u.name}" (${u.file}).`)}return{name:u.name,content:f}}export{l as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./cli-BBlH53hA.js";import{c as t}from"./args-CURX44CA.js";import{_ as n}from"./executor-3QMa-XRY.js";const r=e({name:`flow drive`,options:{cwd:t},args:1,run:({args:[e],cwd:t})=>n(e,t)});export{r as commandDrive};
@@ -1 +0,0 @@
1
- import{toggle as e}from"./disable-Dml_Slph.js";const t=e(!1,{usage:`coder model enable <name> [--workspace]`,summary:`Re-enable a disabled model.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]});export{t as commandModelEnable};
@@ -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{Ar as a,Cr as o,Dr as s,On as c,Or as l,Sr as u,Tr as d,gr as f,hr as p,kr as m,mr as h,wr as g,yr as _}from"./prompts-Bj4Fbd_n.js";import{U as v}from"./dispatch-CFZ9Crvg.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=>p(h().check(_(),n()),e),w=d(g(m()),a(e=>e===`1`)),T=`https://github.com/muzam1l/coder/issues/new`,E=(e,n)=>m().check(t(e=>e.replace(/\/$/,``)),s(e=>URL.canParse(e),{error:`must be a URL`,abort:!0}),s(t=>e(new URL(t)),n)),D=e=>d(a(e=>e||void 0),e),O=d(m(),a((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=o({AUTH_WULAR_URL:p(E(e=>e.protocol===`https:`||e.hostname===`localhost`,`must use HTTPS unless it is localhost`),`https://auth.wular.ai`)}),A=o({SERVER_LIMITS:D(g(d(O,l({principalPerMinute:g(u().check(_(),n())),authPerMinute:g(u().check(_(),n())),registerPerMinute:g(u().check(_(),n())),ipPerMinute:g(u().check(_(),n())),pairingPerMinute:g(u().check(_(),n())),concurrentTasks:g(u().check(_(),n()))})))),RUNNER:g(f([`local`,`local-docker`,`vercel-sandbox`,`github-actions`,`http`])),RUNNER_CONFIG:D(p(O,{})),WORK_DIR:g(m()),SERVER_ENCRYPTION_KEY:g(m()),SERVER_ENCRYPTION_KEY_PREVIOUS:g(m()),ADMIN_TOKEN:g(m()),PUBLIC_URL:D(g(E(e=>e.pathname===`/`&&!e.search&&!e.hash,`must be an origin, with no path, query or fragment`))),SERVER_NAME:g(m().check(r())),ISSUES_URL:D(g(E(()=>!0,`must be a URL`))),VERCEL_PROJECT_PRODUCTION_URL:g(m()),VERCEL_URL:g(m()),VERCEL:g(m()),DATABASE_URL:g(m()),POSTGRES_URL:g(m()),DATABASE_POOL_MAX:g(h().check(_(),n())),DATABASE_IDLE_TIMEOUT:g(h().check(_(),n())),MAX_TASKS:g(h().check(_(),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(g(m())),SERVER_OPERATORS:D(g(m()))});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};