@wular/coder 0.4.7 → 0.4.8

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 (608) hide show
  1. package/README.md +2 -2
  2. package/dist/actions-5TDwmn_z.js +20 -0
  3. package/dist/adapter-B2RXnvqt.js +49845 -0
  4. package/dist/adapter-YCvP9H2n.js +94 -0
  5. package/dist/adapter-sKt1J1Cm.js +1 -0
  6. package/dist/add-BDBCRqKN.js +1 -0
  7. package/dist/{add-DpsjB8Mp.js → add-DcR15CL7.js} +1 -1
  8. package/dist/add-Df1Ezy3y.js +2 -0
  9. package/dist/{add-B3zygDO5.js → add-yIlNqPSu.js} +1 -1
  10. package/dist/agent-B2Ikhp7u.js +1 -0
  11. package/dist/agent-C1HI4JlI.js +3 -0
  12. package/dist/{alias-CZjD1F0F.js → alias-DghaKDbh.js} +1 -1
  13. package/dist/api-qdpx8FD0.js +1 -0
  14. package/dist/{app-CE5j7IDN.js → app-snjvOKJA.js} +1 -1
  15. package/dist/approvals-BziBKWgU.js +2 -0
  16. package/dist/approve-DAuvq9Eq.js +1 -0
  17. package/dist/{approve-D5Dkw1Lo.js → approve-DKrTnZfk.js} +2 -2
  18. package/dist/apps-aj_JtpAm.js +242 -0
  19. package/dist/{archive-RBPoB4cr.js → archive-BhfGdyuC.js} +2 -2
  20. package/dist/{archive-Br2eM_A2.js → archive-DxWYJ7Zi.js} +2 -2
  21. package/dist/archive-sweep-CqTQUafj.js +1 -0
  22. package/dist/args-CxsMr9Un.js +1 -0
  23. package/dist/{ask-zjX8kQz0.js → ask-B_si1yM4.js} +2 -2
  24. package/dist/auth-B3RiDPMI.js +1 -0
  25. package/dist/auth-Cx4ePjWG.js +1 -0
  26. package/dist/build-CmtlB7pX.js +1 -0
  27. package/dist/builtin/coder/agent.json +19 -4
  28. package/dist/chat-Bbzlea60.js +1 -0
  29. package/dist/chat-DLolwsuq.js +13 -0
  30. package/dist/{chat-bridge-18koyS7c.js → chat-bridge-CvspGKBc.js} +1 -1
  31. package/dist/chunk-7WDLOIRP-B_IWkVtZ.js +1 -0
  32. package/dist/cli-D5hyqGq0.js +9 -0
  33. package/dist/cli.js +1 -1
  34. package/dist/config-BdeKsCPh.js +3 -0
  35. package/dist/config-D2FxHWwi.js +14 -0
  36. package/dist/connection-CQPndo-u.js +1 -0
  37. package/dist/connection-wq0CJZKh.js +1 -0
  38. package/dist/core-DwsAMCnL.js +65 -0
  39. package/dist/create-8_XbAnHs.js +1 -0
  40. package/dist/credentials-BOAy2_-6.js +1 -0
  41. package/dist/dash/standalone/server/build-index.json +1 -1
  42. package/dist/dash/standalone/server/manifest.json +2467 -1446
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.b7c6e5f49704993d.js → index.8e150ef2bc6a5f4e.js} +68 -16
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{defaults.36612942475445c3.js → defaults.e6ce0944639198a2.js} +5 -1
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.e10960fe4c66b9d8.js → errors.5954bd9bd05e8230.js} +1 -0
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.58ba9a3d545808d7.js → log-view.871cbff2605b5cfd.js} +3 -2
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.35be1b07171553e7.js → load.4f942c7f68b2e273.js} +10 -5
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.72b248cd95237fb6.js → page.a4ec4bce860e3e71.js} +6 -3
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/page.4c818ef18a084013.js +29 -0
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/loading.fce966caba9308e4.js → [org]/account/loading.f8373428f20c270b.js} +3 -3
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/notify.fc4ba1b51ee26296.js → [org]/account/notify.b0946ff7951ecc11.js} +3 -3
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/page.6c8e958aeab2678e.js → [org]/account/page.55eef4b0e71415d9.js} +22 -15
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/sign-out.5d3bca9efecd6f70.js → [org]/account/sign-out.1ee9b7f1343376e9.js} +4 -4
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/agent-menu.79e38c6e4139b9de.js +12 -0
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/(list)/agents-grid.0813591f217e9dbb.js → [org]/agents/(list)/agents-grid.3a3c550ff68aeb11.js} +23 -21
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/connect-apps.7a4cfa5c917e5db9.js +35 -0
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/loading.fd26a5414b0a06db.js +18 -0
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/(list)/page.e0ad2df8b7c9a0af.js → [org]/agents/(list)/page.b2bed855b68a77b2.js} +19 -20
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/layout.f2464375e393c96e.js → [org]/agents/[slug]/(tabs)/layout.95b8bf3c438955c2.js} +51 -34
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/loading.39c596735b108f80.js +5 -0
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/page.1ba2497fa9116713.js → [org]/agents/[slug]/(tabs)/page.1401a08ea4e27c01.js} +33 -24
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/loading.2d6e75e5923f73f2.js +29 -0
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.848ccc3a609385a9.js +348 -0
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-actions.4b14873a20ebd56c.js +591 -0
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/agent-settings-form.dd8f3cbc00876ebd.js +408 -0
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/loading.80f597fd04fc4a97.js +8 -0
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/page.35d01036ce840ff9.js +46 -0
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/tasks/loading.f5c0c1c727da9f57.js → [org]/agents/[slug]/(tabs)/tasks/loading.ff54c7100f781fbc.js} +2 -2
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/tasks/page.9324e2d909d55c6f.js → [org]/agents/[slug]/(tabs)/tasks/page.e5a405c518c1d8e6.js} +2 -2
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/loading.5e1f922969ab7016.js → [org]/agents/[slug]/(tabs)/usage/loading.55aa8df7712e6820.js} +16 -8
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/page.67c3489c62b661da.js +209 -0
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/versions-list.e2427d618decaf7a.js → [org]/agents/[slug]/(tabs)/versions-list.0c20e2100b321316.js} +7 -7
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/edit/loading.21eb60e655c125c7.js → [org]/agents/[slug]/edit/loading.2fa9e225a5c42496.js} +8 -8
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/edit/page.057807354396ea77.js → [org]/agents/[slug]/edit/page.7132b3ef68d33cc4.js} +20 -16
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/agent-pills.19e913c8cb22db21.js +101 -0
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/agent-toggle.ec6d07ccd1f9796e.js +35 -0
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/hero.9de48723967d8546.js +94 -0
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/instructions.2f4229d42e7c99ef.js → [org]/agents/agent/instructions.6558ffd02a59ad53.js} +4 -4
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/connect-repositories.329ac182c8242a67.js → [org]/agents/editor/connect-repositories.258f6c2c5f1b1b17.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/editor.d28d4afe11d7ff71.js → [org]/agents/editor/editor.9e1a0945f6880076.js} +162 -120
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/import-picker.5e76549e7934b718.js → [org]/agents/editor/import-picker.e54af9841da11373.js} +41 -46
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/loading.38715a27e2d25ebd.js +30 -0
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/new/page.c3396459a9ba5c13.js → [org]/agents/new/page.6c8e9ef5d72b7ef1.js} +13 -12
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{layout.53a8a3b0e4a7917f.js → [org]/layout.c67ccee8b4770821.js} +89 -85
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.3365f9248dfe735d.js +147 -0
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/page.c60ebc5afe4dcdae.js +84 -0
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/page.c720853404d94114.js +11 -0
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.544315916300ed07.js +643 -0
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/credentials-list.c25242f7f4ef6399.js → [org]/settings/[tab]/credentials-list.41ce6eb622300bb3.js} +158 -156
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/credentials.c1a312e6ec58db83.js +44 -0
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/engines-list.6c02a7e6d3c965cc.js → [org]/settings/[tab]/engines-list.75dc69caed34ff8f.js} +8 -10
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/list.db2e212e3c8b5d32.js → [org]/settings/[tab]/list.6d6180438e2bd0c8.js} +12 -40
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/loading.9d7c30db2ecccda3.js +6 -0
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/models-list.052f3ccc66833937.js → [org]/settings/[tab]/models-list.04eb5a47bca3bd09.js} +37 -32
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/page.dd00f57d398be882.js +133 -0
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/runners-list.b5296983ba8007aa.js → [org]/settings/[tab]/runners-list.e644287ae91ea8c3.js} +65 -109
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/secrets-list.35fa72bf3f00d1af.js +136 -0
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/layout.3a17085fb262e4ab.js +49 -0
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/page.bac05d6e87953d0e.js +11 -0
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/settings-head.d0f5ac9cbf170a77.js → [org]/settings/settings-head.a14b9796a8af62dc.js} +8 -7
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/tunnel-guide.f6685b045ccccdcd.js → [org]/settings/tunnel-guide.1fd664df1fd0e3c1.js} +5 -3
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/create-link.3acdd50e1cc0c729.js +34 -0
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome-dialog.d730e0bfbe0cf2f8.js +32 -0
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome.cbbc8cd1bbbee01b.js +71 -0
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/page.079600422889e725.js +44 -0
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/activity.ed49ee2686d1ee41.js +318 -0
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/[id]/loading.d88d1139ea3ff52a.js → [org]/tasks/[id]/loading.0d973b51fee68801.js} +8 -8
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/page.05dd344bada1d4d8.js +24 -0
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/[id]/task-actions.ee523c68a38a7975.js → [org]/tasks/[id]/task-actions.ece7ec732352ce70.js} +44 -79
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/[id]/task-view.1c54f267d127f4e3.js → [org]/tasks/[id]/task-view.8a5908c42647923f.js} +91 -80
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/composer-data.ff108c0ef82a4d7b.js +69 -0
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/composer.f232cc1bf2d7b08a.js → [org]/tasks/composer.c7ec618e215d63ce.js} +99 -64
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/status.b90b76ffa62e957a.js → [org]/tasks/list/status.16190fdd5fd7daad.js} +2 -2
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/task.465c2af602cce783.js → [org]/tasks/list/task.af5001e51d2f612b.js} +12 -1
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/tasks-list.2a0e1eb5c396be42.js → [org]/tasks/list/tasks-list.0976f1812d6d15f5.js} +114 -110
  116. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/tasks-section.2cbc1550d723661d.js → [org]/tasks/list/tasks-section.fd72404364042b87.js} +14 -13
  117. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/page.293492d13a9dca2e.js +16 -0
  118. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/custom-range.d85de32fb6ec4fe6.js → [org]/usage/custom-range.471edcb853889c2e.js} +7 -7
  119. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/day-chart.5e716070459d785c.js → [org]/usage/day-chart.d40438efa74b0596.js} +4 -4
  120. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/loading.5b28c7d8f3a473a3.js +15 -0
  121. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/metric.ca0466e33225f184.js → [org]/usage/metric.ada350d2b7449b39.js} +1 -1
  122. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/page.c2b88b495780b12a.js → [org]/usage/page.69adbf6cde427292.js} +20 -19
  123. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/range-bar.76e3de97583e6eab.js → [org]/usage/range-bar.884e58b044238e98.js} +11 -11
  124. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/stats.4793e81a32ea5e8f.js → [org]/usage/stats.de820599cf126120.js} +2 -2
  125. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/top-agents.b228062d012dc17b.js → [org]/usage/top-agents.b00f571862b5b608.js} +21 -15
  126. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.c762b39aafb84a1f.js → layout.ab6f86cc5b8b2dab.js} +1 -1
  127. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.3ddaa1a675a04c5a.js → page.088b41424cd6cf3c.js} +6 -3
  128. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.b337ce209ff621e9.js → drawer.0e2e3636f33049f5.js} +5 -3
  129. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/foreign-link.fe46528a6a66c0f4.js +28 -0
  130. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{heads.fa2157b3b36647f3.js → heads.20414ddcb2d08bcd.js} +18 -14
  131. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.bf58af8330a78704.js → loading-card.df3717186948c93f.js} +3 -3
  132. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.a2336c95004aed4b.js → page-head.e5d2185c1cdac740.js} +9 -8
  133. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.77a2ec038d97b2b8.js → stream.2fea238dc4f4f9a4.js} +2 -2
  134. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.10b46a8b8db1791f.js → task-toasts.4282affa47415a36.js} +107 -23
  135. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.ea23f57dd753683f.js → theme-choices.ef190ef1cd197199.js} +1 -1
  136. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/back-cookie.942c0904e944d8d6.js +12 -0
  137. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/back.af528135d7e33d6d.js +42 -0
  138. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{current-link.844899810531977f.js → current-link.727b350a40b9ca13.js} +1 -1
  139. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/org.813dc34bd23a336f.js +29 -0
  140. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.55d3e6c43ca5e1f9.js → side-toggle.bafcb4b273b1c4d0.js} +1 -1
  141. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{to.0116bedfbe5f1133.js → to.a2c840c09bd4bf4a.js} +2 -0
  142. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.3d9163a51e6f6d6e.js +43 -0
  143. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/card.15f7435f202831c3.css.pnext-asset.js +0 -0
  144. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.b0873d38765c9d20.js → card.6227f43fc0ae4bd1.js} +36 -2
  145. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.ca0efacf2ce15578.js → combo.0572dd5730c94112.js} +1 -1
  146. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.d18497f656702a16.css.pnext-asset.js +0 -0
  147. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.fe133a074c2743af.js +26 -0
  148. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/copy.991f1efa061e71d6.css.pnext-asset.js +0 -0
  149. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/copy.9be99c94423eb1ca.js +33 -0
  150. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{field.7b2a2075ee8c6e29.js → field.75588c33b72824a7.js} +0 -7
  151. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.f19b6d5ebd6a3c2b.js → filter.4f703a4ce7d2a519.js} +3 -3
  152. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.1777c0350d5d215e.js → icons.868385119bf2de28.js} +3 -0
  153. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.a4dd9fb9f566689a.js → menu.0f064f75822888be.js} +29 -9
  154. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.1d42c8d0493e2221.css.pnext-asset.js +0 -0
  155. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/modal.92432959e3a3e2c0.js +67 -0
  156. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/modal.9db07d368dcf5981.css.pnext-asset.js +0 -0
  157. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/notice.f395f231cbb96445.js +13 -0
  158. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/select.32a95ad31c0436ad.css.pnext-asset.js +0 -0
  159. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.f036fdc3fce02b92.js → select.7f481669998074f8.js} +27 -17
  160. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.d3d29747fe976f88.js → sentinel.17cffebfc3103b9f.js} +1 -1
  161. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/sentinel.1e3ec9bd6008d811.css.pnext-asset.js +0 -0
  162. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.d00fc01ad9c1b91e.js → tabs.66b2e54963f6901b.js} +3 -2
  163. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.9377d261fe9e91df.js → tail.30913c92f5ca6102.js} +1 -1
  164. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.b2c59c5fc015d08d.js → toolbar.801bbd3163d3fbb0.js} +3 -3
  165. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/action.568346602027ac74.js +34 -0
  166. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/client.d25e6dcc6704eb60.js +59 -0
  167. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{paged.7e5713a82abf0211.js → paged.18f5872fc5aebe96.js} +1 -0
  168. package/dist/dash/standalone/static/assets/chunks/action-df9907c7a10bf826.js +1 -0
  169. package/dist/dash/standalone/static/assets/chunks/agent-pills-106a518bef96408e.js +1 -0
  170. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-d1aa82950d30d829.js +1 -0
  171. package/dist/dash/standalone/static/assets/chunks/agent-toggle-44667051d8be2040.js +1 -0
  172. package/dist/dash/standalone/static/assets/chunks/agents-grid-69fabb48962a282a.js +1 -0
  173. package/dist/dash/standalone/static/assets/chunks/back-e02e04679467c05b.js +1 -0
  174. package/dist/dash/standalone/static/assets/chunks/badge-b302b4d707908367.js +1 -0
  175. package/dist/dash/standalone/static/assets/chunks/card-31a2cdcfeda5254f.js +1 -0
  176. package/dist/dash/standalone/static/assets/chunks/{combo-8aa7545cfda42090.js → combo-fd495e7fa91b69ed.js} +1 -1
  177. package/dist/dash/standalone/static/assets/chunks/composer-10f0a825a16e1fc7.js +1 -0
  178. package/dist/dash/standalone/static/assets/chunks/composer-8c1198d45f700738.js +1 -0
  179. package/dist/dash/standalone/static/assets/chunks/confirm-7b6112578a1c4877.js +1 -0
  180. package/dist/dash/standalone/static/assets/chunks/connect-apps-bd95a6cbdc89a438.js +1 -0
  181. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-8864a63f83ffd411.js → connect-repositories-569c181ff81509f4.js} +1 -1
  182. package/dist/dash/standalone/static/assets/chunks/connections-list-5bbf7321d9bfd08f.js +1 -0
  183. package/dist/dash/standalone/static/assets/chunks/copy-f057128db8aefd1b.js +1 -0
  184. package/dist/dash/standalone/static/assets/chunks/create-link-6f6e6b87e46f67c8.js +1 -0
  185. package/dist/dash/standalone/static/assets/chunks/credentials-list-8fc72c0331289ac6.js +2 -0
  186. package/dist/dash/standalone/static/assets/chunks/custom-range-d06cd17fcc05183d.js +1 -0
  187. package/dist/dash/standalone/static/assets/chunks/defaults-dcc0eccad4e8585b.js +1 -0
  188. package/dist/dash/standalone/static/assets/chunks/editor-b5a9659f85edea17.js +7 -0
  189. package/dist/dash/standalone/static/assets/chunks/engines-list-c10ca5e7410b790f.js +1 -0
  190. package/dist/dash/standalone/static/assets/chunks/field-f40df6a5289dfe05.js +1 -0
  191. package/dist/dash/standalone/static/assets/chunks/{filter-02bba5796258deb0.js → filter-966a9aae3b0b6d77.js} +1 -1
  192. package/dist/dash/standalone/static/assets/chunks/{instructions-0b968d5d0a58c716.js → instructions-c9e1097c4e1b352a.js} +1 -1
  193. package/dist/dash/standalone/static/assets/chunks/instructions-e969d4439f6676c9.js +1 -0
  194. package/dist/dash/standalone/static/assets/chunks/list-5db1dd782965a5fc.js +1 -0
  195. package/dist/dash/standalone/static/assets/chunks/model-options-3a57918eaa4a2a82.js +1 -0
  196. package/dist/dash/standalone/static/assets/chunks/models-list-b6237067c9a39f97.js +1 -0
  197. package/dist/dash/standalone/static/assets/chunks/notice-84358e912a9f01cc.js +1 -0
  198. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-c4f75d37645035b8.js +1 -0
  199. package/dist/dash/standalone/static/assets/chunks/paged-c44eccacea100110.js +1 -0
  200. package/dist/dash/standalone/static/assets/chunks/platform-actions-6004e96f54953935.js +1 -0
  201. package/dist/dash/standalone/static/assets/chunks/platform-actions-d8dd016336a3d768.js +1 -0
  202. package/dist/dash/standalone/static/assets/chunks/runners-list-0b288b2b79de8968.js +1 -0
  203. package/dist/dash/standalone/static/assets/chunks/secrets-list-64650cb827e93322.js +1 -0
  204. package/dist/dash/standalone/static/assets/chunks/{segmented-bf5a4c06605249e0.js → segmented-5423dcc766dc7abc.js} +1 -1
  205. package/dist/dash/standalone/static/assets/chunks/select-53722330d2e3f1c6.js +1 -0
  206. package/dist/dash/standalone/static/assets/chunks/shared-init-35a0e9007eeca198.js +2 -0
  207. package/dist/dash/standalone/static/assets/chunks/shared-init-a7f2e71a718bc285.js +5 -0
  208. package/dist/dash/standalone/static/assets/chunks/shared-init-b8184e0e554d5aa4.js +1 -0
  209. package/dist/dash/standalone/static/assets/chunks/shared-init-e0aa7cbf9ac680b5.js +1 -0
  210. package/dist/dash/standalone/static/assets/chunks/side-toggle-34ee3bbe5ac64a60.js +1 -0
  211. package/dist/dash/standalone/static/assets/chunks/{tail-74153aeac1f0baec.js → tail-7dece33a58f72850.js} +1 -1
  212. package/dist/dash/standalone/static/assets/chunks/task-6ae2bb4f1b384140.js +1 -0
  213. package/dist/dash/standalone/static/assets/chunks/task-actions-b36dc5fcd9b2b2c5.js +1 -0
  214. package/dist/dash/standalone/static/assets/chunks/task-view-1696d47594c6dbfa.js +5 -0
  215. package/dist/dash/standalone/static/assets/chunks/tasks-list-7c70210e7121b95a.js +1 -0
  216. package/dist/dash/standalone/static/assets/chunks/versions-list-26475f0d05e2d434.js +1 -0
  217. package/dist/dash/standalone/static/assets/connect-b73a327c12fa5c63.css +1 -0
  218. package/dist/dash/standalone/static/assets/create-param-id-d679f8832eafd7e8.css +1 -0
  219. package/dist/dash/standalone/static/assets/{dash-settings-cf1997cd7f72e518.css → dash-param-org-14abc8f62d04dc4c.css} +1 -1
  220. package/dist/dash/standalone/static/assets/dash-param-org-account-aba6d7e7f99c97cb.css +1 -0
  221. package/dist/dash/standalone/static/assets/dash-param-org-agents-570ddee6de22492e.css +1 -0
  222. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-9fa9b19084b3cd2f.css +1 -0
  223. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-0e7e591f05cbddf5.css +1 -0
  224. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-f16fb90321952887.css +1 -0
  225. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-5cf30b084239d643.css +1 -0
  226. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-1c84b31df8c64b88.css +1 -0
  227. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-7da323ffa5be29aa.css +1 -0
  228. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-4900a42b805e90cb.css +1 -0
  229. package/dist/dash/standalone/static/assets/dash-param-org-operator-2f4e497a01a78f29.css +1 -0
  230. package/dist/dash/standalone/static/assets/dash-param-org-settings-0ea983332482dbc6.css +1 -0
  231. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-e1c1f81610bb925f.css +1 -0
  232. package/dist/dash/standalone/static/assets/dash-param-org-setup-6824fce3862dbb43.css +1 -0
  233. package/dist/dash/standalone/static/assets/dash-param-org-tasks-f914c28afa705d66.css +1 -0
  234. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-65c8bb06f94ff868.css +1 -0
  235. package/dist/dash/standalone/static/assets/dash-param-org-usage-5dbb2aa369c46eed.css +1 -0
  236. package/dist/dash/standalone/static/assets/global-eecd2b20d5e4b08d.css +1 -0
  237. package/dist/dash/standalone/static/assets/login-ca4c0cd7d65b3269.css +1 -0
  238. package/dist/dash/standalone/static/assets/pnext-client-0bcd0cbf2549bdf2.js +1 -0
  239. package/dist/dash/standalone/static/assets/pnext-client-22414b6c8a870c92.js +1 -0
  240. package/dist/dash/standalone/static/assets/pnext-client-2a02ab5209cae1ea.js +1 -0
  241. package/dist/dash/standalone/static/assets/pnext-client-46d843cfdabf3e71.js +1 -0
  242. package/dist/dash/standalone/static/assets/pnext-client-5a50a2a4da7e870e.js +1 -0
  243. package/dist/dash/standalone/static/assets/pnext-client-5b6ea850cead1482.js +1 -0
  244. package/dist/dash/standalone/static/assets/pnext-client-5b94497ba23568a8.js +1 -0
  245. package/dist/dash/standalone/static/assets/pnext-client-6686f1714e481293.js +1 -0
  246. package/dist/dash/standalone/static/assets/pnext-client-67155accb837a12a.js +1 -0
  247. package/dist/dash/standalone/static/assets/pnext-client-7db5d810ee904f4b.js +1 -0
  248. package/dist/dash/standalone/static/assets/pnext-client-8d779b89650f4b7a.js +1 -0
  249. package/dist/dash/standalone/static/assets/pnext-client-9d7a7a634c9be6ac.js +1 -0
  250. package/dist/dash/standalone/static/assets/pnext-client-9edebc462604c881.js +1 -0
  251. package/dist/dash/standalone/static/assets/pnext-client-aa5a424e38b430a5.js +1 -0
  252. package/dist/dash/standalone/static/assets/pnext-client-b983cd476c808b15.js +1 -0
  253. package/dist/dash/standalone/static/assets/pnext-client-bdf1cb75a3de35ea.js +1 -0
  254. package/dist/dash/standalone/static/assets/pnext-client-c5177dd613b27b84.js +1 -0
  255. package/dist/dash/standalone/static/assets/{pnext-client-ffab25199333314f.js → pnext-client-d998d7077d159f68.js} +1 -1
  256. package/dist/dash/standalone/static/assets/pnext-client-f01c6d0c6beb582b.js +1 -0
  257. package/dist/dash/standalone/static/assets/pnext-client-fd4c0f3ecbcc461c.js +1 -0
  258. package/dist/{default-B3ValFJp.js → default-CNhVH61w.js} +1 -1
  259. package/dist/default-dQC33jLt.js +1 -0
  260. package/dist/{delete-6T7ujDtY.js → delete-BDOtztW_.js} +2 -2
  261. package/dist/{delete-k7pxp5B6.js → delete-Dbo9goyQ.js} +2 -2
  262. package/dist/{disable-BJXxuJ9s.js → disable-VvU6oDku.js} +1 -1
  263. package/dist/discover-CBP4Uw0N.js +1 -0
  264. package/dist/{discover-CRUU1hdS.js → discover-hpHsnxqU.js} +2 -2
  265. package/dist/dispatch-D3Dqxijf.js +8 -0
  266. package/dist/dist-BTornX7Y.js +101 -0
  267. package/dist/dist-C3wD7GfG.js +4 -0
  268. package/dist/dist-DkATuPBB.js +6 -0
  269. package/dist/dist-node-Bv1kCqyi.js +20 -0
  270. package/dist/docs-3SW1O9iS.js +2 -0
  271. package/dist/{docs-PmFB2aMA.js → docs-CYMICGEv.js} +1 -1
  272. package/dist/{enable-DZ7rw7iL.js → enable-BmvNVDHO.js} +1 -1
  273. package/dist/env-C_DoQYl5.js +1 -0
  274. package/dist/exec-BsXFIdTl.js +11 -0
  275. package/dist/executor-5j-Ewzzb.js +11 -0
  276. package/dist/flow/builtin/review.d.ts +1 -156
  277. package/dist/flow/builtin/review.js +7 -7
  278. package/dist/flow/index.d.ts +1 -1
  279. package/dist/flow/index.js +1 -1
  280. package/dist/{flow-D8T71fyu.js → flow-4Rr-2NUz.js} +1 -1
  281. package/dist/http-BYMXT_p6.js +1 -0
  282. package/dist/{index-Xe8n_t2Z.d.ts → index-CVjkwYeS.d.ts} +103 -1
  283. package/dist/{init-BfXdsU46.js → init-kZdO2PF5.js} +1 -1
  284. package/dist/integrations-35T26qmP.js +1 -0
  285. package/dist/integrations-D3OgJk6Y.js +1 -0
  286. package/dist/lib/broker.js +2 -2
  287. package/dist/{list-DedQA2pn.js → list-CLqNS8_q.js} +2 -2
  288. package/dist/{list-F-PN6ieH.js → list-CbN2giPy.js} +1 -1
  289. package/dist/list-ChFFjT_a.js +2 -0
  290. package/dist/{list-CO8x2rgz.js → list-D0NK3Iqu.js} +1 -1
  291. package/dist/{list-yoGxyIlx.js → list-D2eSpGoo.js} +1 -1
  292. package/dist/list-D3LCULQt.js +1 -0
  293. package/dist/{list-erdHI-w9.js → list-P2Ztf1bQ.js} +2 -2
  294. package/dist/{list-NtMN55g0.js → list-uS9iEE0F.js} +1 -1
  295. package/dist/load-CRmQB1LD.js +2 -0
  296. package/dist/local-XNsjb-UM.js +1 -0
  297. package/dist/log-view-DB4nXHXO.js +3 -0
  298. package/dist/{login-CJjcqCg4.js → login-BoOBMH4y.js} +1 -1
  299. package/dist/login-CCA0uLsW.js +1 -0
  300. package/dist/{logout-B7mHWeWr.js → logout-Cv0cm9F8.js} +1 -1
  301. package/dist/maintenance-B_79IJ_E.js +1 -0
  302. package/dist/match-Kt3vFTl1.js +1 -0
  303. package/dist/mcp-C13n4A3y.js +12 -0
  304. package/dist/mcp-YhyTUMIM.js +11 -0
  305. package/dist/{model-Cti-OOdV.js → model-0sxp5GdI.js} +1 -1
  306. package/dist/models-CdvmuaLv.js +1 -0
  307. package/dist/prompt-C--TI1qn.js +8 -0
  308. package/dist/push-IpLeKMp-.js +1 -0
  309. package/dist/reconnect-CR3RaXX0.js +1 -0
  310. package/dist/refresh-D0YjtXBD.js +1 -0
  311. package/dist/remote-oQs6My_3.js +1 -0
  312. package/dist/remove-B01SXfEq.js +1 -0
  313. package/dist/remove-C9eahMDh.js +1 -0
  314. package/dist/remove-D1UOd48O.js +1 -0
  315. package/dist/remove-D65xtbw5.js +1 -0
  316. package/dist/rename-Qwr_XDxD.js +1 -0
  317. package/dist/result-70jciKDJ.js +5 -0
  318. package/dist/{result-DtVw6XYk.js → result-DXL9N9Ip.js} +7 -7
  319. package/dist/{resume-D7XcEIbu.js → resume-xqhwHn3l.js} +2 -2
  320. package/dist/review-D-U_2KyT.d.ts +157 -0
  321. package/dist/{review-DZGyNO5h.js → review-vlPAshsb.js} +3 -3
  322. package/dist/{rotate-key-pIfcaeCd.js → rotate-key-CfeZ6Rg7.js} +1 -1
  323. package/dist/{run-BlXCPJzq.js → run-CoTg7SkY.js} +2 -2
  324. package/dist/{run-B-2NnW4r.js → run-CvdayZfK.js} +2 -2
  325. package/dist/{run-Co36tfya.js → run-VOuS-hHe.js} +1 -1
  326. package/dist/runner-D0TLZrrO.js +1 -0
  327. package/dist/runner-DME7ohjt.js +1 -0
  328. package/dist/runners-UNKPlmYE.js +36 -0
  329. package/dist/schema-BSlHRFSP.js +8 -0
  330. package/dist/schema.config.d.ts +12 -0
  331. package/dist/schema.config.js +1 -0
  332. package/dist/schema.d.ts +2 -0
  333. package/dist/schema.js +1 -0
  334. package/dist/sdk-4Vjo5Q6R.d.ts +12371 -0
  335. package/dist/sdk.d.ts +5 -1549
  336. package/dist/sdk.js +1 -1
  337. package/dist/serve-BQsv2KZs.js +1 -0
  338. package/dist/serve-BoTW4P2G.js +2 -0
  339. package/dist/serve-ByWMT5Gm.js +1 -0
  340. package/dist/serve-HNXk3HMY.js +9 -0
  341. package/dist/server-B1x8gx33.js +1 -0
  342. package/dist/{setup-host-ON6zJGqS.js → setup-host-DExG-bWZ.js} +1 -1
  343. package/dist/show-BeacgzZ0.js +1 -0
  344. package/dist/{show-jdaVKG0f.js → show-D3OC0c35.js} +1 -1
  345. package/dist/slack-C_RlVDz7.js +3 -0
  346. package/dist/{status-BO1jm6NW.js → status-ZN0HYtLa.js} +1 -1
  347. package/dist/steer-DwSC8AO4.js +4 -0
  348. package/dist/{stop-BS2MB4CQ.js → stop-CEEiI1RA.js} +1 -1
  349. package/dist/{stop-B-dQ2-Gm.js → stop-DTzpTbg1.js} +2 -2
  350. package/dist/task-4gw9OZun.js +1 -0
  351. package/dist/task-CB-j4EO8.js +5 -0
  352. package/dist/task-IoBYe7ok.js +1 -0
  353. package/dist/test-BnGF24Hg.js +1 -0
  354. package/dist/tools-ar-D3jOh.js +1 -0
  355. package/dist/types-B42Oh0zF.js +1 -0
  356. package/dist/types-BktBEKW5.d.ts +1710 -0
  357. package/dist/{unalias-DpkgCs_c.js → unalias-9AwJnbpE.js} +1 -1
  358. package/dist/{update-ChIiUO1Z.js → update-DoJEPBvm.js} +1 -1
  359. package/dist/{upgrade-Cq24oWFZ.js → upgrade-DRPBwDYe.js} +2 -2
  360. package/dist/{usage-CazoINYM.js → usage-CItBLFFE.js} +1 -1
  361. package/dist/views-BhsnL0nr.js +5 -0
  362. package/dist/watch-BMuVZorc.js +9 -0
  363. package/dist/{watch-B3gAEK1N.js → watch-Bl_pCGfq.js} +2 -2
  364. package/dist/wire-B5rc5Av6.js +1 -0
  365. package/dist/worker-BFGETvid.js +1 -0
  366. package/dist/worker-BiJ7jiOr.js +9 -0
  367. package/dist/{workflow-BOPHazbM.js → workflow-CcC-xbfp.js} +1 -1
  368. package/dist/zod-BoqHoRCH.js +1 -0
  369. package/dist/zod.d.ts +3 -0
  370. package/dist/zod.js +1 -0
  371. package/docs/agents/coder.md +9 -2
  372. package/docs/agents/index.md +28 -18
  373. package/docs/cli.md +24 -13
  374. package/docs/config.md +1 -1
  375. package/docs/dash.md +3 -3
  376. package/docs/flows.md +3 -3
  377. package/docs/mcp.md +8 -16
  378. package/docs/sdk.md +4 -4
  379. package/docs/self-host.md +29 -18
  380. package/package.json +22 -14
  381. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  382. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  383. package/dist/actions-CmfXOVXQ.js +0 -20
  384. package/dist/adapter-7SEiVsmp.js +0 -1
  385. package/dist/adapter-BLEfUqoQ.js +0 -1
  386. package/dist/adapter-DaiJMOYo.js +0 -1
  387. package/dist/adapter-H4GlcKQz.js +0 -1
  388. package/dist/adapter-PeKziOUg.js +0 -1
  389. package/dist/add-8Z5bNm74.js +0 -1
  390. package/dist/add-DiwLZmjp.js +0 -1
  391. package/dist/add-json-wOUPHwUD.js +0 -1
  392. package/dist/agent-B69nSuTY.js +0 -1
  393. package/dist/agent-D0pQ_ewc.js +0 -3
  394. package/dist/approvals-Gv7x14u3.js +0 -2
  395. package/dist/apps-CaHoLNE7.js +0 -1
  396. package/dist/archive-sweep-jE6TPk2F.js +0 -1
  397. package/dist/args-DEMOfLz2.js +0 -1
  398. package/dist/auth-DSE3SIuI.js +0 -1
  399. package/dist/auth-DsxfkPsx.js +0 -1
  400. package/dist/chat-3Znsevah.js +0 -1
  401. package/dist/chat-cknlIhVh.js +0 -13
  402. package/dist/cli-DtTdpTy3.js +0 -9
  403. package/dist/cli.d.ts +0 -71
  404. package/dist/client-31YzOj-i.js +0 -1
  405. package/dist/config-BAkyRxp-.js +0 -3
  406. package/dist/create-BF6VHUst.js +0 -1
  407. package/dist/credentials-6PHXj8k7.js +0 -1
  408. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/agent-menu.6d3339a02f02460d.js +0 -12
  409. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/connect-apps.8d218b96f9939819.js +0 -42
  410. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/loading.02dd47fe59680cc8.js +0 -18
  411. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/loading.b27b95d8ccf0581e.js +0 -5
  412. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/loading.572d3404b984b163.js +0 -10
  413. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.9b30598fa84dd0df.js +0 -170
  414. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/platform-actions.bc640252ecf046c6.js +0 -70
  415. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.d3e6dc6bcfcfc928.js +0 -268
  416. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/loading.a55efbdbdd995213.js +0 -8
  417. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.44eabcf6cf9fbfbd.js +0 -35
  418. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.30a31e2464417a08.js +0 -160
  419. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/agent-pills.6a0eea1ec99dffd7.js +0 -67
  420. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/hero.9af8c50df6487ca5.js +0 -62
  421. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/new/loading.02e30b3a7f1ab9f1.js +0 -28
  422. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/page.a4be8e0779589f4e.js +0 -10
  423. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/credentials.a62d1642ca580836.js +0 -34
  424. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/loading.f4024074bf71b11b.js +0 -6
  425. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/mcp-list.0ce34ed7d7e756a7.js +0 -249
  426. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/page.3458e42728e30f54.js +0 -86
  427. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/layout.85946d20d7e48767.js +0 -39
  428. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/page.9d2087e0e33d57f8.js +0 -6
  429. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/activity.4aeb0734da711e10.js +0 -177
  430. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/page.e5b562dd47e19043.js +0 -24
  431. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/composer-data.5f12d8ef1db38026.js +0 -63
  432. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/page.107706655a927e59.js +0 -16
  433. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/loading.8aabf89dabaf1c3f.js +0 -15
  434. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.5abdef72e9189fdc.js +0 -31
  435. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.1328a7ede6c27bb9.js +0 -53
  436. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/client.a8205c524e63d4a9.js +0 -26
  437. package/dist/dash/standalone/static/assets/chunks/agent-pills-c5d56f60f9e17aea.js +0 -1
  438. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-738f9ac4b9fb67ef.js +0 -1
  439. package/dist/dash/standalone/static/assets/chunks/agents-grid-37e2e7f7a37b7a35.js +0 -1
  440. package/dist/dash/standalone/static/assets/chunks/badge-9984d2fd0e7f995d.js +0 -1
  441. package/dist/dash/standalone/static/assets/chunks/card-818c7a0d580e2e0d.js +0 -1
  442. package/dist/dash/standalone/static/assets/chunks/composer-a969037cf22215c7.js +0 -1
  443. package/dist/dash/standalone/static/assets/chunks/composer-data-6f7608fed13f3dd7.js +0 -1
  444. package/dist/dash/standalone/static/assets/chunks/composer-f433a2e64648633a.js +0 -1
  445. package/dist/dash/standalone/static/assets/chunks/confirm-be929e2de15876a6.js +0 -1
  446. package/dist/dash/standalone/static/assets/chunks/connect-apps-97c10fa6e35ccae6.js +0 -1
  447. package/dist/dash/standalone/static/assets/chunks/credentials-list-08cd5dfe29f42bf2.js +0 -2
  448. package/dist/dash/standalone/static/assets/chunks/custom-range-63f577240e5d5d85.js +0 -1
  449. package/dist/dash/standalone/static/assets/chunks/editor-9752c8ab26ebd328.js +0 -7
  450. package/dist/dash/standalone/static/assets/chunks/engines-list-dab79c4e3e22eefe.js +0 -1
  451. package/dist/dash/standalone/static/assets/chunks/field-43fea54c1c287e30.js +0 -1
  452. package/dist/dash/standalone/static/assets/chunks/heads-8f40675f508ebe33.js +0 -1
  453. package/dist/dash/standalone/static/assets/chunks/instructions-f3ecfb5c50f270c2.js +0 -1
  454. package/dist/dash/standalone/static/assets/chunks/list-591905f0aaa57629.js +0 -1
  455. package/dist/dash/standalone/static/assets/chunks/mcp-list-bae4d2186f67849e.js +0 -1
  456. package/dist/dash/standalone/static/assets/chunks/model-options-15c53331a2f28a4f.js +0 -1
  457. package/dist/dash/standalone/static/assets/chunks/models-list-c758db0c40f5173f.js +0 -1
  458. package/dist/dash/standalone/static/assets/chunks/paged-3ddb6077bef42752.js +0 -1
  459. package/dist/dash/standalone/static/assets/chunks/platform-actions-4454493d02a1c172.js +0 -1
  460. package/dist/dash/standalone/static/assets/chunks/runners-list-9d27c76eed33cb05.js +0 -1
  461. package/dist/dash/standalone/static/assets/chunks/select-adccc9ac86ac833f.js +0 -1
  462. package/dist/dash/standalone/static/assets/chunks/sentinel-b4c91a38a5d79219.js +0 -1
  463. package/dist/dash/standalone/static/assets/chunks/shared-init-17c1fd399ac53851.js +0 -5
  464. package/dist/dash/standalone/static/assets/chunks/shared-init-3a95c0e0cc27e0cb.js +0 -2
  465. package/dist/dash/standalone/static/assets/chunks/shared-init-8f2ac936c95a7f7b.js +0 -1
  466. package/dist/dash/standalone/static/assets/chunks/task-actions-189775b88ef7ada4.js +0 -1
  467. package/dist/dash/standalone/static/assets/chunks/task-ddfddeaf07fb684c.js +0 -1
  468. package/dist/dash/standalone/static/assets/chunks/task-view-0b3d7ea9cc41888b.js +0 -5
  469. package/dist/dash/standalone/static/assets/chunks/tasks-list-1b0195e3fd68714f.js +0 -1
  470. package/dist/dash/standalone/static/assets/chunks/toolbar-035d33d1e7ad11bf.js +0 -1
  471. package/dist/dash/standalone/static/assets/chunks/versions-list-875a9a0ebb3f7d08.js +0 -1
  472. package/dist/dash/standalone/static/assets/connect-382b1729a7ae7808.css +0 -1
  473. package/dist/dash/standalone/static/assets/dash-49ca85b59ac65c20.css +0 -1
  474. package/dist/dash/standalone/static/assets/dash-account-edc56e85dbaaabe0.css +0 -1
  475. package/dist/dash/standalone/static/assets/dash-agents-edba57b67e4005d0.css +0 -1
  476. package/dist/dash/standalone/static/assets/dash-agents-new-fe22253fbada2fbf.css +0 -1
  477. package/dist/dash/standalone/static/assets/dash-agents-param-slug-adf52e9dacb2d825.css +0 -1
  478. package/dist/dash/standalone/static/assets/dash-agents-param-slug-edit-a2937a347689ef29.css +0 -1
  479. package/dist/dash/standalone/static/assets/dash-agents-param-slug-platforms-265ba13db32a460d.css +0 -1
  480. package/dist/dash/standalone/static/assets/dash-agents-param-slug-settings-8afc52eb0372bc4b.css +0 -1
  481. package/dist/dash/standalone/static/assets/dash-agents-param-slug-tasks-6193e646be68dbd2.css +0 -1
  482. package/dist/dash/standalone/static/assets/dash-agents-param-slug-usage-ceadb3a1c911c402.css +0 -1
  483. package/dist/dash/standalone/static/assets/dash-settings-param-tab-b44dac8e79a560e6.css +0 -1
  484. package/dist/dash/standalone/static/assets/dash-tasks-916c7100a8058aa3.css +0 -1
  485. package/dist/dash/standalone/static/assets/dash-tasks-param-id-24265771fd1e3f78.css +0 -1
  486. package/dist/dash/standalone/static/assets/dash-usage-40940b289f85e0b6.css +0 -1
  487. package/dist/dash/standalone/static/assets/global-d2adbf01910d9df5.css +0 -1
  488. package/dist/dash/standalone/static/assets/login-c129b1ce237be260.css +0 -1
  489. package/dist/dash/standalone/static/assets/pnext-client-105d2264e4064f32.js +0 -1
  490. package/dist/dash/standalone/static/assets/pnext-client-140064bc22718639.js +0 -1
  491. package/dist/dash/standalone/static/assets/pnext-client-2825c0ea7bfa1240.js +0 -1
  492. package/dist/dash/standalone/static/assets/pnext-client-39ac7ac446e20cfb.js +0 -1
  493. package/dist/dash/standalone/static/assets/pnext-client-43cbb846cb4c167f.js +0 -1
  494. package/dist/dash/standalone/static/assets/pnext-client-7d88eb36e6e3c301.js +0 -1
  495. package/dist/dash/standalone/static/assets/pnext-client-9172198a969bd1e1.js +0 -1
  496. package/dist/dash/standalone/static/assets/pnext-client-9c9c88e5c2fe31bc.js +0 -1
  497. package/dist/dash/standalone/static/assets/pnext-client-a629391487c4b8e3.js +0 -1
  498. package/dist/dash/standalone/static/assets/pnext-client-aace561f07b06542.js +0 -1
  499. package/dist/dash/standalone/static/assets/pnext-client-b7d6355b1323fff1.js +0 -1
  500. package/dist/dash/standalone/static/assets/pnext-client-c4be2f807668e35c.js +0 -1
  501. package/dist/dash/standalone/static/assets/pnext-client-ce83b85e9562a049.js +0 -1
  502. package/dist/dash/standalone/static/assets/pnext-client-dd2046446844a78b.js +0 -1
  503. package/dist/dash/standalone/static/assets/pnext-client-e62f31aae8ce2c3b.js +0 -1
  504. package/dist/default-DgP-hBmn.js +0 -1
  505. package/dist/discover-CaAtyC0h.js +0 -1
  506. package/dist/dispatch-YW1aqjEg.js +0 -14
  507. package/dist/docs-Byrpar10.js +0 -2
  508. package/dist/env-LsVTi18f.js +0 -1
  509. package/dist/exec-DgI3boHa.js +0 -11
  510. package/dist/executor-HWnIIYUL.js +0 -10
  511. package/dist/github-actions-CvLya8ve.js +0 -24
  512. package/dist/http-DG54kyx4.js +0 -1
  513. package/dist/integrations-B2CavXR1.js +0 -5
  514. package/dist/integrations-DNz6PHFV.js +0 -1
  515. package/dist/lib/broker.d.ts +0 -1
  516. package/dist/list-CJhHYVb2.js +0 -2
  517. package/dist/list-Cr4c8mT6.js +0 -1
  518. package/dist/load-DDZfByUe.js +0 -2
  519. package/dist/local-B0GiaLV0.js +0 -1
  520. package/dist/log-view-DeJstSkw.js +0 -3
  521. package/dist/login-p2VknR9f.js +0 -1
  522. package/dist/maintenance-C02_cNLp.js +0 -1
  523. package/dist/match-DMI54zg4.js +0 -1
  524. package/dist/mcp--MIvjMWZ.js +0 -1
  525. package/dist/mcp-DgMoPoUo.js +0 -1
  526. package/dist/migrate-CSwkAInI.js +0 -2
  527. package/dist/migrate-rwTojdkz.js +0 -1
  528. package/dist/models-DGPrMV51.js +0 -1
  529. package/dist/prompt-K7-bKcTC.js +0 -7
  530. package/dist/push-D3vxfhc_.js +0 -1
  531. package/dist/queue-EvplGOuk.js +0 -117
  532. package/dist/refresh-BFuahSFK.js +0 -1
  533. package/dist/remote-AcWWfKVS.js +0 -1
  534. package/dist/remove-7y1b_gHT.js +0 -1
  535. package/dist/remove-BRj1kPYm.js +0 -1
  536. package/dist/remove-C57QDigT.js +0 -1
  537. package/dist/remove-UVD3W2OE.js +0 -1
  538. package/dist/rename-CCv5pca3.js +0 -1
  539. package/dist/result-BWrYnt0u.js +0 -5
  540. package/dist/rolldown-runtime-DT7IzrpZ.js +0 -1
  541. package/dist/runner-DRgQvMiZ.js +0 -1
  542. package/dist/runner-c-2w6Eoj.js +0 -1
  543. package/dist/schema-DoNO0dPh.js +0 -1
  544. package/dist/serve-CcqX_2qk.js +0 -8
  545. package/dist/serve-Ci0AFWtY.js +0 -2
  546. package/dist/serve-DeX0lpXj.js +0 -12
  547. package/dist/serve-SWjydoBC.js +0 -1
  548. package/dist/serve-xMihn4g-.js +0 -1
  549. package/dist/server-CWbtW4W_.js +0 -1
  550. package/dist/shared-D64pQ0XU.js +0 -1
  551. package/dist/show-U0XPh927.js +0 -1
  552. package/dist/steer-DwSAYYqb.js +0 -4
  553. package/dist/store-B0RLMUR9.js +0 -42
  554. package/dist/store-Cxc2GYyj.js +0 -19
  555. package/dist/task-DEp3GHwH.js +0 -1
  556. package/dist/task-DhZ5vhyY.js +0 -5
  557. package/dist/task-gKnlLOGe.js +0 -1
  558. package/dist/test-TvJAUf4S.js +0 -1
  559. package/dist/tools-BQQfMQB9.js +0 -1
  560. package/dist/types-D0q15RJa.js +0 -1
  561. package/dist/types-DMGBYB_K.d.ts +0 -391
  562. package/dist/usage-Bw7fQeFC.js +0 -1
  563. package/dist/watch-DJATTJw_.js +0 -8
  564. package/dist/wire-DxxfWapP.js +0 -1
  565. package/dist/worker-C3dzIzd3.js +0 -1
  566. package/dist/worker-C4Lo6rLS.js +0 -9
  567. package/migrations/0000_initial.sql +0 -260
  568. package/migrations/meta/0000_snapshot.json +0 -1861
  569. package/migrations/meta/_journal.json +0 -13
  570. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{account/page.78ecdcf250ebe4bd.css.pnext-asset.js → [org]/account/page.061f6006f2685f5e.css.pnext-asset.js} +0 -0
  571. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/(list)/page.c2085e3ab40a8b66.css.pnext-asset.js → [org]/agents/(list)/page.76589c15dee1732d.css.pnext-asset.js} +0 -0
  572. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/page.31a5f9731d946f4f.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/page.1a97b8d4b955c464.css.pnext-asset.js} +0 -0
  573. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/platforms/page.b036494aace45edf.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/platforms/page.3ffef848a0b0dda3.css.pnext-asset.js} +0 -0
  574. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/settings/agent-settings-form.204e3ec0b23d58c7.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/settings/agent-settings-form.2d19ea3a4d380e0d.css.pnext-asset.js} +0 -0
  575. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/@/app/dash/usage/range-bar.034280ed1ab2616b.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/usage/@/app/dash/[org]/usage/range-bar.e8f6f0c7ee443262.css.pnext-asset.js} +0 -0
  576. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/@/comps/ui/segmented.4db9cac358865634.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/usage/@/comps/ui/segmented.2cb43dc7d1f1588a.css.pnext-asset.js} +0 -0
  577. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/[slug]/(tabs)/usage/page.6bf93d41ec4a1fab.css.pnext-asset.js → [org]/agents/[slug]/(tabs)/usage/page.80adb3d2ea31d080.css.pnext-asset.js} +0 -0
  578. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/agent-pills.1708253f0232e88e.css.pnext-asset.js → [org]/agents/agent/agent-pills.183f03f1e7e5ac9f.css.pnext-asset.js} +0 -0
  579. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/hero.8dd7556828e78b07.css.pnext-asset.js → [org]/agents/agent/hero.13019680f38b0630.css.pnext-asset.js} +0 -0
  580. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/agent/instructions.532dc545ddb11e88.css.pnext-asset.js → [org]/agents/agent/instructions.446bccc375f30eeb.css.pnext-asset.js} +0 -0
  581. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/@/app/dash/agents/(list)/page.1e19c72828fbd611.css.pnext-asset.js → [org]/agents/editor/@/app/dash/[org]/agents/(list)/page.81c825592da30a32.css.pnext-asset.js} +0 -0
  582. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/editor.52403b9719fb5157.css.pnext-asset.js → [org]/agents/editor/editor.d2e3bc878dcb47da.css.pnext-asset.js} +0 -0
  583. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{agents/editor/names.afb112f2a5a6f0f5.js → [org]/agents/editor/names.1ee5bba8d2b6ac41.js} +0 -0
  584. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{layout.4b31e7e60256f6d1.css.pnext-asset.js → [org]/layout.3827c440c6421a06.css.pnext-asset.js} +0 -0
  585. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/credentials-list.0953506d95c86a2f.css.pnext-asset.js → [org]/operator/@/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.944b02c09bbf6c22.css.pnext-asset.js} +0 -0
  586. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/engines-list.c04c712adfc0ca48.css.pnext-asset.js → [org]/operator/@/app/dash/[org]/settings/[tab]/list.83f35dd8a36acdfd.css.pnext-asset.js} +0 -0
  587. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/list.4835150fd34d0c4f.css.pnext-asset.js → [org]/operator/page.9002a449f872a10e.css.pnext-asset.js} +0 -0
  588. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/mcp-list.a2b3bf3c7c5fa42e.css.pnext-asset.js → [org]/settings/[tab]/@/app/dash/[org]/setup/outcome.3ad5f7ec67e5238d.css.pnext-asset.js} +0 -0
  589. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/[tab]/runners-list.0e2d8a76197cde60.css.pnext-asset.js → [org]/settings/[tab]/connections-list.f742847e4887f072.css.pnext-asset.js} +0 -0
  590. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/[id]/task-view.2110bc4a16798cde.css.pnext-asset.js → [org]/settings/[tab]/credentials-list.1236d6680ec02696.css.pnext-asset.js} +0 -0
  591. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/composer.80a979f079b29681.css.pnext-asset.js → [org]/settings/[tab]/engines-list.9927d602ebe9e7fc.css.pnext-asset.js} +0 -0
  592. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/status.d71a946ed749ca30.css.pnext-asset.js → [org]/settings/[tab]/list.e0ce46919b75ef76.css.pnext-asset.js} +0 -0
  593. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{tasks/list/tasks-list.291e81e56d54513c.css.pnext-asset.js → [org]/settings/[tab]/runners-list.a835c9a264cf8903.css.pnext-asset.js} +0 -0
  594. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{settings/model-options.bccfaced52fc0c00.js → [org]/settings/model-options.2eacf7f8ac0032df.js} +0 -0
  595. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/@/app/dash/usage/range-bar.53967f3261c8387e.css.pnext-asset.js → [org]/setup/outcome.2a3073f895357275.css.pnext-asset.js} +0 -0
  596. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/@/comps/ui/segmented.2ca6fee7dd2830ad.css.pnext-asset.js → [org]/tasks/[id]/task-view.38b1b7ef3976ba71.css.pnext-asset.js} +0 -0
  597. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/day-chart.c566c1a55d15bf58.css.pnext-asset.js → [org]/tasks/composer.360b393e5938c60b.css.pnext-asset.js} +0 -0
  598. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/range-bar.5504dd2c591a3056.css.pnext-asset.js → [org]/tasks/list/status.7e63f2b02469ca40.css.pnext-asset.js} +0 -0
  599. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/stats.cd1d20f46f1347bf.css.pnext-asset.js → [org]/tasks/list/tasks-list.2282a7cef8b15bd8.css.pnext-asset.js} +0 -0
  600. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/top-agents.47aecd65c0c8fa2e.css.pnext-asset.js → [org]/usage/@/app/dash/[org]/usage/range-bar.85d30ec5f022f124.css.pnext-asset.js} +0 -0
  601. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/{usage/usage.0f646568d57d13e8.css.pnext-asset.js → [org]/usage/@/comps/ui/segmented.41728247cda62f82.css.pnext-asset.js} +0 -0
  602. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.e9ce0eb6697f992d.css.pnext-asset.js → dash/[org]/usage/day-chart.4b3dbef8704de0e0.css.pnext-asset.js} +0 -0
  603. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/page-head.a6e3c4204ca45e94.css.pnext-asset.js → app/dash/[org]/usage/range-bar.1da88d087e3b5302.css.pnext-asset.js} +0 -0
  604. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/card.146f70c7049b5b31.css.pnext-asset.js → app/dash/[org]/usage/stats.bb7cb568c0174557.css.pnext-asset.js} +0 -0
  605. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/confirm.fb57a29a70e9df56.css.pnext-asset.js → app/dash/[org]/usage/top-agents.20a1d4451784792b.css.pnext-asset.js} +0 -0
  606. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/menu.6341c87b5bec4256.css.pnext-asset.js → app/dash/[org]/usage/usage.775df2f43187c487.css.pnext-asset.js} +0 -0
  607. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/select.03a695573b914d6f.css.pnext-asset.js → app/globals.76731787d2a1aa3b.css.pnext-asset.js} +0 -0
  608. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/sentinel.bcff411a9f2355ec.css.pnext-asset.js → frame/page-head.364ec93a8e7857b3.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}.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,.pop-item small{color:var(--muted);font-size:11.5px}.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}.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){.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}.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){.only-m{display:none}}.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;position-try-fallbacks:flip-block;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.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}}.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{cursor:default}.pop-item:disabled:hover{background:none}.pop-item small{display:block}.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-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-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}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.pop .add-models{margin-top:4px;color:var(--muted)}.pop .add-models .ic{width:14px;height:14px}.toasts{position:fixed;top:16px;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));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.err .toast-head .cover{color:var(--bad)}.toast.err .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}.head .lead:has(.fact){display:flex;align-items:center;gap: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}}.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{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)}.body.waiting{display:flex;justify-content:center;padding-block:40px}.body.waiting>.loading{flex:0 1 auto}.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}.act-slot:has(>.sep){padding-top:8px}button.act{grid-template-columns:76px 16px minmax(0,1fr) 14px;cursor:pointer}.act .act-chev{visibility:hidden}button.act:hover .act-chev,.act.open .act-chev{visibility:visible}.act.open .act-chev{rotate:180deg}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-tool{color:var(--fg)}.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}.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.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{border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.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}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{border-left-color:var(--fg)}.turn.prompt .prose{font-size:13.5px}.turn .collapse:not(.open){margin-bottom:-12px}.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){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{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:var(--warnbg)}.card.danger{border-color:var(--bad)}.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 .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}}.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)}.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}.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}dialog.confirm{width:min(420px,calc(100vw - 32px));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.confirm::backdrop{background:#00000073}dialog.confirm form{display:grid;gap:8px;padding:20px}dialog.confirm h2{font-size:15px;font-weight:700;overflow-wrap:anywhere}dialog.confirm p{color:var(--muted)}dialog.confirm .actions{justify-content:flex-end;margin-top:12px}.btn.destructive{background:var(--bad);border-color:var(--bad);color:var(--bg)}.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}.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}}.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)}
@@ -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}.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,.pop-item small{color:var(--muted);font-size:11.5px}.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}.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){.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}.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){.only-m{display:none}}.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;position-try-fallbacks:flip-block;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.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}}.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{cursor:default}.pop-item:disabled:hover{background:none}.pop-item small{display:block}.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-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-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}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.pop .add-models{margin-top:4px;color:var(--muted)}.pop .add-models .ic{width:14px;height:14px}.toasts{position:fixed;top:16px;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));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.err .toast-head .cover{color:var(--bad)}.toast.err .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}.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:popover-open{display:grid;gap:12px;min-width:240px;padding:14px}.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:var(--warnbg)}.card.danger{border-color:var(--bad)}.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 .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}}.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){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{gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.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}}.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}}.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)}
@@ -1 +0,0 @@
1
- @font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:optional;src:url(/assets/fonts/fira-code-latin-400-normal-717ee080.woff2) format("woff2")}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:optional;src:url(/assets/fonts/fira-code-latin-500-normal-530b6706.woff2) format("woff2")}@font-face{font-family:Fira Code;font-style:normal;font-weight:700;font-display:optional;src:url(/assets/fonts/fira-code-latin-700-normal-98730669.woff2) format("woff2")}:root{color-scheme:light dark;--bg: light-dark(#ffffff, #0b0c10);--panel: light-dark(#f8f7f8, #13141a);--tile: light-dark(#f4f4f5, #16171c);--fg: light-dark(#0b0c10, #f3f4f6);--muted: light-dark(#4f5664, #a9b0bd);--dim: light-dark(#7a808b, #7c828e);--line: light-dark(rgba(11, 12, 16, .08), rgba(255, 255, 255, .08));--line2: light-dark(rgba(11, 12, 16, .15), rgba(255, 255, 255, .15));--wash: light-dark(rgba(11, 12, 16, .06), rgba(255, 255, 255, .07));--wash-low: light-dark(rgba(11, 12, 16, .025), rgba(255, 255, 255, .03));--wash2: light-dark(rgba(11, 12, 16, .07), rgba(255, 255, 255, .09));--field: light-dark(#ffffff, #0a0a0a);--acc: light-dark(#0a63c4, #8fbcff);--accbg: light-dark(rgba(10, 99, 196, .1), rgba(143, 188, 255, .14));--deep: #0a63c4;--blue: #2a5da9;--ok: light-dark(#2b8a3e, #51cf66);--okbg: light-dark(rgba(47, 158, 68, .12), rgba(47, 158, 68, .18));--warn: light-dark(#b35c00, #fcc419);--warnbg: light-dark(rgba(245, 159, 0, .14), rgba(245, 159, 0, .16));--bad: light-dark(#c92a2a, #ff8787);--badbg: light-dark(rgba(224, 49, 49, .1), rgba(224, 49, 49, .18));--s1: light-dark(#2a78d6, #3987e5);--s2: light-dark(#eb6834, #d95926);--s3: light-dark(#1baf7a, #199e70);--s4: light-dark(#eda100, #c98500);--s0: light-dark(#b9bdc5, #3d414a);--mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}html{font-size:14px;-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;font:400 13px/1.6 var(--mono);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}[hidden]{display:none!important}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.link{color:var(--acc);border-bottom:1px solid currentColor}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}code{padding:0 4px;background:var(--wash2)}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line2);background-clip:padding-box;border:3px solid transparent;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:var(--dim);border-width:1px}::-webkit-scrollbar-corner{background:transparent}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--line2) transparent}}.bar h2,th,.stats small,.pop-label,.btn,.badge,.st,.tabs a,.tabs>button,.auth-links,.facts dt,.tabs-label,.seg-btns>a,.seg-btns .menu>button,.live,.sheet .label b,.tag{text-transform:uppercase;letter-spacing:.2em}.frame{position:relative;border:1px solid var(--line2);background:var(--panel)}.bar{display:flex;align-items:center;gap:12px;min-height:40px;padding:6px 14px;border-bottom:1px solid var(--line)}.bar h2{flex:1;display:flex;align-items:center;gap:10px;font-size:10.5px;font-weight:500}.n{padding:0 6px;font-size:10.5px;letter-spacing:.05em;color:var(--muted);background:var(--wash2)}.body{padding:16px}.body:not(dl)>*+*{margin-top:12px}.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;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{color:var(--bad)}.btn.ghost-danger{background:transparent;border-color:transparent;color:var(--fg)}.btn.ghost-danger:is(:hover,:focus-visible){background:var(--badbg);color:var(--bad);filter:none}.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));filter:none}.btn.sm{height:28px;padding:0 10px;font-size:10px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn[aria-busy=true]{position:relative;-webkit-text-fill-color:transparent}.btn[aria-busy=true]: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)}@keyframes spin{to{transform:rotate(360deg)}}.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.brand{display:flex;align-items:center;gap:8px;min-width:0;font-weight:700;font-size:14px;line-height:16px;letter-spacing:.02em;white-space:nowrap}main{display:flex;flex-direction:column;min-width:0;padding:40px 40px 80px}.page,.tab-body{flex:1 0 auto;display:flex;flex-direction:column;gap:20px}.page{width:100%;max-width:1120px;margin:0 auto}.head{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.head>div:first-child{min-width:0;flex:1 1 420px}h1{font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere}.lead{margin-top:8px;max-width:64ch;color:var(--muted)}.head .lead{margin-top:4px;max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.flash{font-size:12px;color:var(--ok)}.flash.err{color:var(--bad)}.scroll-box{max-height:var(--max, 280px);overflow:auto}.scroll-box thead th{position:sticky;top:0;z-index:1;background:var(--panel)}.prose{white-space:pre-line;overflow-wrap:anywhere}.sub{display:block;font-size:11.5px;color:var(--muted)}.when{white-space:nowrap;color:var(--muted)}.approval{font-size:14px}.notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--warn);background:var(--warnbg)}.notice .ic{color:var(--warn)}.notice.soft{border-color:var(--line);background:none}.notice.soft .ic{color:var(--dim)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px 16px;font-size:10px;font-weight:500;color:var(--dim);border-bottom:1px solid var(--line);white-space:nowrap}th a{display:inline-flex;align-items:center;gap:4px}th a:hover,th a[aria-current]{color:var(--fg)}td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}td .btn,td .icon-btn{height:28px;margin-block:-3px -5px;vertical-align:top}td .icon-btn{width:28px}tbody tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}th.num a{justify-content:flex-end}.rows tbody tr{position:relative}.rows tbody tr:hover{background:var(--wash-low)}.rows.tasks tbody tr:hover{background:var(--wash)}.cover{font-weight:500}.cover:after{content:"";position:absolute;inset:0}.row-title{display:flex;align-items:baseline;gap:8px}.acts{text-align:right;white-space:nowrap}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:36px;padding:7px 10px;border:1px solid var(--line2);background:var(--field);border-radius:0}textarea{resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}input[type=checkbox],input[type=radio]{accent-color:var(--deep);width:15px;height:15px;margin:0;flex:none}select:enabled,input[type=checkbox]:enabled,input[type=radio]:enabled{cursor:pointer}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.check{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.check input{margin-top:3px}.check small{display:block;color:var(--muted);font-size:11.5px}.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.with-btn{display:flex;gap:8px}.with-btn input{flex:1;min-width:0}.with-btn .btn{height:auto}.picks{display:flex;flex-wrap:wrap;gap:6px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.add-form{display:grid;gap:16px;padding:16px}.add-form>.seg-btns{justify-self:start}.add-grid{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}.add-grid>.field{flex:1 1 180px}.add-grid>div.field{flex:none}.add-grid>.btn{height:36px}.acts .menu{display:inline-block;margin-left:4px}.guide{display:grid;gap:12px;padding:16px;color:var(--muted)}.guide code,.cmd{padding:1px 6px;background:var(--wash2);color:var(--fg);font-size:12px;overflow-wrap:anywhere}.steps-list{display:grid;gap:8px;padding-left:20px}ol.steps-list{list-style:decimal}ul.steps-list{list-style:square}pnext-suspense,pnext-hole{display:contents}@keyframes loader-in{0%{visibility:hidden}}.add-grid>.field:has(>input[name=name]){flex:0 1 220px}.add-grid>.field:has(>.select){flex:0 0 auto}.copied,.copied:hover{color:var(--ok)}@media(max-width:760px){main{padding:16px 16px 64px}h1{font-size:22px}.head .actions,.hero .actions{width:100%}.head{row-gap:12px}.head .actions{gap:4px}.head .actions>.btn{padding-inline:10px}.head .lead{white-space:normal}.fields,.fields.three,.agent-form,.import,.cred-new.split{grid-template-columns:minmax(0,1fr)}.stacked thead{display:none}.stacked tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 16px;border-bottom:1px solid var(--line)}.stacked td{padding:0;border:0}.stacked td:first-child{grid-column:1 / -1;min-width:0}}
@@ -1 +0,0 @@
1
- .btn .logo{width:16px;height:16px;flex:none}.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.provider-grid>.provider:only-child{grid-column:1 / -1}.provider{justify-content:center;gap:10px;text-transform:none;letter-spacing:.02em;font-size:13px;font-weight:500}@media(max-width:420px){.provider-grid{grid-template-columns:minmax(0,1fr)}}.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}.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}
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as s,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:g,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:f},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:s},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-ea656259bc",Component:c}]});e();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,g as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/custom-range-63f577240e5d5d85.js";import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as r,$0b as i,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as e}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:v,unmountRoute:u}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:r},{id:"c-2cfb5c118d",Component:e},{id:"c-2f39143d38",Component:i},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-d9e42b1374",Component:f},{id:"c-ea656259bc",Component:p}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,v as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as d,$0b as r,$0d as s,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as m}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:l,remountRoute:N,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:f},{id:"c-26b2a32d8a",Component:d},{id:"c-2cfb5c118d",Component:m},{id:"c-2f39143d38",Component:r},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:s},{id:"c-39db89e6a1",Component:a},{id:"c-3acf145303",options:{},load:()=>import("./chunks/credentials-list-08cd5dfe29f42bf2.js").then(o=>o.EngineLogins)},{id:"c-3d4f646942",options:{},load:()=>import("./chunks/models-list-c758db0c40f5173f.js").then(o=>o.ModelsList)},{id:"c-67b5383ad3",Component:p},{id:"c-914b397ba5",options:{},load:()=>import("./chunks/engines-list-dab79c4e3e22eefe.js").then(o=>o.EnginesList)},{id:"c-e35a149e11",options:{},load:()=>import("./chunks/credentials-list-08cd5dfe29f42bf2.js").then(o=>o.CredentialsList)},{id:"c-ea656259bc",Component:c},{id:"c-f0cf975d16",options:{},load:()=>import("./chunks/mcp-list-bae4d2186f67849e.js").then(o=>o.McpList)},{id:"c-f8cb94e579",options:{},load:()=>import("./chunks/runners-list-9d27c76eed33cb05.js").then(o=>o.RunnersList)}]});e();i()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,N as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as r,$0d as s,$0e as d,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as e}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(l=>l.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:e},{id:"c-2f39143d38",Component:r},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:s},{id:"c-39db89e6a1",Component:a},{id:"c-67b5383ad3",Component:d},{id:"c-ea656259bc",Component:p}]});i();n()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as s,$0b as m,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:v,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:l},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-22a2687aca",options:{},load:()=>import("./chunks/instructions-f3ecfb5c50f270c2.js").then(o=>o.Instructions)},{id:"c-26b2a32d8a",Component:s},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:m},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-91b99482e6",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-875a9a0ebb3f7d08.js").then(o=>o.VersionsList)},{id:"c-ea656259bc",Component:c}]});e();i()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,v as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as i,$0b as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:i},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-c94427b1a7",options:{},load:()=>import("./chunks/task-view-0b3d7ea9cc41888b.js").then(l=>l.TaskView)},{id:"c-ea656259bc",Component:p}]});m();t()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as s,$0d as d,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=t({islands:[{id:"c-0824f8e785",Component:l},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:s},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:d},{id:"c-39db89e6a1",Component:a},{id:"c-5650e42951",options:{},load:()=>import("./chunks/agent-settings-form-738f9ac4b9fb67ef.js").then(o=>o.AgentSettingsForm)},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-ea656259bc",Component:c}]});e();i()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/composer-a969037cf22215c7.js";import"./chunks/connect-repositories-8864a63f83ffd411.js";import"./chunks/composer-data-6f7608fed13f3dd7.js";import"./chunks/model-options-15c53331a2f28a4f.js";import"./chunks/select-adccc9ac86ac833f.js";import"./chunks/task-ddfddeaf07fb684c.js";import"./chunks/card-818c7a0d580e2e0d.js";import"./chunks/field-43fea54c1c287e30.js";import"./chunks/format-b19b8eec331414f4.js";import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as d,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as s}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as n,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:G,unmountRoute:C}=n({islands:[{id:"c-0824f8e785",Component:f},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:d},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:a},{id:"c-384b712f48",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-37e2e7f7a37b7a35.js").then(o=>o.AgentsGrid)},{id:"c-39db89e6a1",Component:s},{id:"c-67b5383ad3",Component:p},{id:"c-8abdf16cfe",options:{},load:()=>import("./chunks/connect-apps-97c10fa6e35ccae6.js").then(o=>o.ConnectApps)},{id:"c-ad4e2a70f0",Component:l},{id:"c-ea656259bc",Component:c}]});i();e()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:C});export{u as mountRoute,G as remountRoute,C as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as d,$0d as s,$0e as c,$0f as f}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a,$2c as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:L,unmountRoute:I}=t({islands:[{id:"c-0824f8e785",Component:l},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:d},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:s},{id:"c-39db89e6a1",Component:a},{id:"c-67b5383ad3",Component:c},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-ce751855ed",Component:p},{id:"c-d49f435a4e",options:{},load:()=>import("./chunks/platform-actions-4454493d02a1c172.js").then(o=>o.PlatformActions)},{id:"c-ea656259bc",Component:f}]});e();i()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:I});export{u as mountRoute,L as remountRoute,I as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as r,$0b as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as i}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as t}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:h,unmountRoute:l}=o({islands:[{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:r},{id:"c-2cfb5c118d",Component:i},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-ea656259bc",Component:p}]});m();t()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:l});export{f as mountRoute,h as remountRoute,l as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunks/custom-range-63f577240e5d5d85.js";import{a as f}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as m,$0b as s,$0d as a,$0e as p,$0f as c}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as e}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as i}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as t,$0b as n}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:u,remountRoute:G,unmountRoute:C}=t({islands:[{id:"c-0824f8e785",Component:f},{id:"c-1819c7eef5",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-1b0195e3fd68714f.js").then(o=>o.TasksList)},{id:"c-26b2a32d8a",Component:m},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:s},{id:"c-34c96f4c56",Component:n},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:p},{id:"c-7441e4d326",options:{},load:()=>import("./chunks/composer-f433a2e64648633a.js").then(o=>o.NewTaskButton)},{id:"c-d9e42b1374",Component:l},{id:"c-ea656259bc",Component:c}]});e();i()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:C});export{u as mountRoute,G as remountRoute,C as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as C}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as p,$0b as I,$0d as N,$0e as b,$0f as g}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5b as t,$5g as u}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as h}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$2a as e}from"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as l}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as f}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as c,$0b as d}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import{$1g as s,$1i as m}from"./chunks/shared-init-8f2ac936c95a7f7b.js";function T(){let[_,a]=s(!1),[r,i]=s(!1);m(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),a(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let k=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(t,"1"):localStorage.removeItem(t),o.checked=n,a(n),i(Notification.permission==="denied")};return e("label",{class:"notify",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:_,disabled:r,onChange:o=>void k(o.currentTarget)}),r?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:w,remountRoute:Z,unmountRoute:S}=c({islands:[{id:"c-0824f8e785",Component:C},{id:"c-26b2a32d8a",Component:p},{id:"c-2cfb5c118d",Component:u},{id:"c-2f39143d38",Component:I},{id:"c-34c96f4c56",Component:d},{id:"c-3562f7cd24",Component:N},{id:"c-39db89e6a1",Component:h},{id:"c-4d3a64746a",Component:T},{id:"c-67b5383ad3",Component:b},{id:"c-ea656259bc",Component:g}]});l();f()||w();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:w,unmountRoute:S});export{w as mountRoute,Z as remountRoute,S as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as u}from"./chunks/field-43fea54c1c287e30.js";import{g as p}from"./chunks/format-b19b8eec331414f4.js";import{$0b as f}from"./chunks/shared-init-17c1fd399ac53851.js";import{$1b as m}from"./chunks/shared-init-17c1fd399ac53851.js";import{$2a as t}from"./chunks/shared-init-17c1fd399ac53851.js";import{$0a as c,$0b as d}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import{$1g as i}from"./chunks/shared-init-8f2ac936c95a7f7b.js";function h({tag:e,title:a,lead:o,children:r}){return t("section",{class:"auth",children:t("div",{class:"auth-side",children:[t("div",{class:"auth-frame frame",children:[t("div",{class:"bar",children:[t("a",{class:"brand",href:"/",children:[t(f,{}),t("span",{class:"lockup",children:["coder ",t("small",{children:"wular"})]})]}),t("span",{class:"tag",children:e})]}),t("div",{class:"auth-body",children:[t("h1",{children:a}),o?t("p",{class:"lead",children:o}):null,r]})]}),t("nav",{class:"auth-links",children:[t("a",{href:"https://wular.ai",children:"wular.ai"}),t("a",{href:"https://coder.wular.ai",children:"hosted service"})]})]})})}function l(){let[e,a]=i(""),[o,r]=i(""),v=typeof location>"u"?"":new URLSearchParams(location.search).get("token")??"";return t(h,{tag:"connect",title:"Connect your account",lead:o||"Link this platform identity to your signed-in Coder account.",children:[o?null:t("button",{type:"button",class:"btn wide",onClick:()=>void m.linkAccount(v).then(n=>r(`${n.platform} account ${n.platformUserId} is connected.`)).catch(n=>a(p(n))),children:"Connect"}),t(u,{value:e})]})}var{mountRoute:_,remountRoute:M,unmountRoute:R}=c({islands:[{id:"c-34c96f4c56",Component:d}],Page:l});(window.__PNEXT_ROUTER_IMPORTS__??0)>0||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,M as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{$0a as r,$0b as e,$0d as a,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as i}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as d}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:c,remountRoute:S,unmountRoute:f}=o({islands:[{id:"c-26b2a32d8a",Component:r},{id:"c-2cfb5c118d",Component:i},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:a},{id:"c-39db89e6a1",Component:d},{id:"c-67b5383ad3",Component:s},{id:"c-ea656259bc",Component:p}]});m();n()||c();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:c,unmountRoute:f});export{c as mountRoute,S as remountRoute,f as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as c}from"./chunks/sentinel-b4c91a38a5d79219.js";import{$0a as i,$0b as e,$0d as d,$0e as s,$0f as p}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$5g as r}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/wular-pnext-37175329f2865f15-0.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import{$2a as a}from"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-3a95c0e0cc27e0cb.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import"./chunks/shared-init-17c1fd399ac53851.js";import{$1c as m}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0i as n}from"./chunks/shared-init-37175329f2865f15-2.js";import{$0a as o,$0b as t}from"./chunks/shared-init-8f2ac936c95a7f7b.js";import"./chunks/shared-init-8f2ac936c95a7f7b.js";var{mountRoute:f,remountRoute:k,unmountRoute:u}=o({islands:[{id:"c-00c11152f2",options:{},load:()=>import("./chunks/editor-9752c8ab26ebd328.js").then(l=>l.AgentEditor)},{id:"c-0824f8e785",Component:c},{id:"c-26b2a32d8a",Component:i},{id:"c-2cfb5c118d",Component:r},{id:"c-2f39143d38",Component:e},{id:"c-34c96f4c56",Component:t},{id:"c-3562f7cd24",Component:d},{id:"c-39db89e6a1",Component:a},{id:"c-67b5383ad3",Component:s},{id:"c-ea656259bc",Component:p}]});m();n()||f();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:f,unmountRoute:u});export{f as mountRoute,k as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{St as e}from"./dispatch-YW1aqjEg.js";import{i as t,t as n}from"./cli-DtTdpTy3.js";import{runnerOptions as r}from"./remove-UVD3W2OE.js";import i from"node:process";const a=t({name:`runner default`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner default <id> [--server [url]] [--json]`,summary:`Use this runner by default within its scope.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{updateRunner:r}=await import(`./runner-c-2w6Eoj.js`).then(e=>e.a);return r(n,{default:!0},t)},print:e=>i.stdout.write(`Default runner ${e.name}.\n`)});export{a as commandRunnerDefault};
@@ -1 +0,0 @@
1
- import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{Mt as t,an as n}from"./dispatch-YW1aqjEg.js";import r from"node:path";import{fileURLToPath as i}from"node:url";import a from"node:fs";var o=e({builtinFlowsDir:()=>c,discoverFlows:()=>d,flowsIn:()=>l,resolveFlow:()=>p});const s=[`.ts`,`.mjs`,`.js`];function c(){let e=r.dirname(i(import.meta.url)),t=e;for(;r.basename(t)!==`dist`&&r.dirname(t)!==t;)t=r.dirname(t);return r.basename(t)===`dist`?r.join(t,`flow`,`builtin`):r.join(e,`builtin`)}function l(e,t){let n=[];try{n=a.readdirSync(e)}catch{return[]}let i=[];for(let o of n.sort()){let n=r.extname(o);if(s.includes(n)&&!o.endsWith(`.d.ts`)){i.push({name:r.basename(o,n),path:r.join(e,o),scope:t});continue}let c=s.map(t=>r.join(e,o,`index${t}`)).find(e=>a.existsSync(e));c&&i.push({name:o,path:c,scope:t})}return i}function u(e){let i=n(e),a=[],o=r.resolve(e);for(;a.push({dir:r.join(o,`.coder`,`flows`),scope:`workspace`}),o!==i&&r.dirname(o)!==o;)o=r.dirname(o);return a.push({dir:t(`flows`),scope:`global`}),a}function d(e){let t=new Set,n=[];for(let{dir:r,scope:i}of u(e))for(let e of l(r,i))t.has(e.name)||(t.add(e.name),n.push(e));for(let e of l(c(),`builtin`))t.has(e.name)||n.push(e);return n}function f(e){return e.includes(`/`)||s.includes(r.extname(e))}function p(e,t){if(f(e)){let n=r.resolve(t,e);if(a.existsSync(n))return{name:r.basename(n,r.extname(n)),path:n};throw Error(`Flow file not found: ${e}`)}let n=d(t).find(t=>t.name===e);if(!n)throw Error(`No flow named "${e}". Run \`coder flow discover\` to see available flows.`);return{name:n.name,path:n.path,scope:n.scope}}export{p as a,l as i,d as n,o as r,c as t};
@@ -1,14 +0,0 @@
1
- import e from"node:path";import t from"node:process";import{fileURLToPath as n}from"node:url";import*as r from"zod/mini";import i from"node:fs";import{execFileSync as a,spawn as o,spawnSync as s}from"node:child_process";import{createHash as c,randomUUID as l}from"node:crypto";import u from"node:os";import d from"node:net";import f from"node:readline";function p(t,n){if(!n)return``;if(!e.isAbsolute(n))return n;let r=e.relative(t,n);return r&&!r.startsWith(`..`)?r:n}function m(e){try{return JSON.parse(i.readFileSync(e,`utf8`))}catch{return null}}function h(t,n){i.mkdirSync(e.dirname(t),{recursive:!0});let r=`${t}.${process.pid}.${l()}.tmp`;try{i.writeFileSync(r,`${JSON.stringify(n,null,2)}\n`,{encoding:`utf8`,flag:`wx`}),i.renameSync(r,t)}finally{i.rmSync(r,{force:!0})}}function g(t,n){if(i.mkdirSync(e.dirname(n),{recursive:!0}),i.existsSync(n))throw Object.assign(Error(`Directory already exists: ${n}`),{code:`EEXIST`});try{i.renameSync(t,n);return}catch(e){if(e.code!==`EXDEV`)throw e}let r=`${n}.${process.pid}.${l()}.tmp`;try{i.cpSync(t,r,{recursive:!0,preserveTimestamps:!0,verbatimSymlinks:!0,errorOnExist:!0,force:!1}),i.renameSync(r,n),i.rmSync(t,{recursive:!0})}finally{i.rmSync(r,{recursive:!0,force:!0})}}async function _(t,n){if(await i.promises.mkdir(e.dirname(n),{recursive:!0}),await i.promises.lstat(n).catch(e=>{if(e.code!==`ENOENT`)throw e}))throw Object.assign(Error(`Directory already exists: ${n}`),{code:`EEXIST`});try{await i.promises.rename(t,n);return}catch(e){if(e.code!==`EXDEV`)throw e}let r=`${n}.${process.pid}.${l()}.tmp`;try{await i.promises.cp(t,r,{recursive:!0,preserveTimestamps:!0,verbatimSymlinks:!0,errorOnExist:!0,force:!1}),await i.promises.rename(r,n),await i.promises.rm(t,{recursive:!0})}finally{await i.promises.rm(r,{recursive:!0,force:!0})}}function v(e){let t=0,n=``;return()=>{let r;try{r=i.statSync(e).size}catch{return[]}if(r<t&&(t=0,n=``),r===t)return[];let a;try{a=i.openSync(e,`r`)}catch{return[]}try{let e=Buffer.alloc(r-t),o=i.readSync(a,e,0,e.length,t);t+=o;let s=(n+e.toString(`utf8`,0,o)).split(`
2
- `);return n=s.pop()??``,s.filter(Boolean)}finally{i.closeSync(a)}}}function y(e){return String(e??``).replace(/[^A-Za-z0-9._-]/g,`-`).replace(/^-+|-+$/g,``)}function b(n,r=t.platform){return r===`win32`?`pipe:\\\\.\\pipe\\${y(`${e.win32.basename(n)}-codex-app-server`)}`:`unix:${e.join(n,`broker.sock`)}`}function x(e){if(typeof e!=`string`||e.length===0)throw Error(`Missing broker endpoint.`);if(e.startsWith(`pipe:`)){let t=e.slice(5);if(!t)throw Error(`Broker pipe endpoint is missing its path.`);return{kind:`pipe`,path:t}}if(e.startsWith(`unix:`)){let t=e.slice(5);if(!t)throw Error(`Broker Unix socket endpoint is missing its path.`);return{kind:`unix`,path:t}}throw Error(`Unsupported broker endpoint: ${e}`)}function ee(){let t=e.dirname(n(import.meta.url));for(let n=0;n<10;n++){let n=e.join(t,`package.json`);try{if(JSON.parse(i.readFileSync(n,`utf8`)).name===`@wular/coder`)return t}catch{}let r=e.dirname(t);if(r===t)break;t=r}return e.resolve(e.dirname(n(import.meta.url)),`..`)}const S=ee(),C=i.existsSync(e.join(S,`dist/cli.js`))?e.join(S,`dist/cli.js`):e.join(S,`src/cli.ts`);function w(){try{return JSON.parse(i.readFileSync(e.join(S,`package.json`),`utf8`)).version??`unknown`}catch{return`unknown`}}function T(e){try{return JSON.parse(i.readFileSync(e,`utf8`)).version??null}catch{return null}}function te(){return S}const ne={false:`broker.json`,true:`broker-network.json`};function re(t=`coder-`){return i.mkdtempSync(e.join(u.tmpdir(),t))}function ie(e){let t=x(e);return d.createConnection({path:t.path})}async function ae(e,t=2e3){let n=Date.now();for(;Date.now()-n<t;){if(await new Promise(t=>{let n=ie(e);n.on(`connect`,()=>{n.end(),t(!0)}),n.on(`error`,()=>t(!1))}))return!0;await new Promise(e=>setTimeout(e,50))}return!1}function oe({scriptPath:e,cwd:n,endpoint:r,pidFile:a,logFile:s,networkAccess:c=!1,env:l=t.env}){let u=i.openSync(s,`a`),d=o(t.execPath,[e,`serve`,`--endpoint`,r,`--cwd`,n,`--pid-file`,a,`--network-access`,String(c)],{cwd:n,env:l,detached:!0,stdio:[`ignore`,u,u]});return d.unref(),i.closeSync(u),d}function se(){let e=[new URL(`./lib/broker.js`,import.meta.url),new URL(`./main.js`,import.meta.url)];for(let t of e){let e=n(t);if(i.existsSync(e))return e}throw Error("Coder broker script not found next to the runtime. Rebuild with `bun run build`.")}function ce(t,n=!1){return e.join(M(t),ne[n?`true`:`false`])}function le(e,t=!1){let n=ce(e,t);if(!i.existsSync(n))return null;try{let e=JSON.parse(i.readFileSync(n,`utf8`));return(e.networkAccess??!1)===t?e:null}catch{return null}}function ue(e,t,n=t.networkAccess??!1){let r=M(e);i.mkdirSync(r,{recursive:!0}),i.writeFileSync(ce(e,n),`${JSON.stringify(t,null,2)}\n`,`utf8`)}function de(e,t=!1){let n=ce(e,t);i.existsSync(n)&&i.unlinkSync(n)}async function fe(e){if(!e)return!1;try{return await ae(e,150)}catch{return!1}}async function pe(n,r={}){let i=r.scriptPath??se(),a=w(),o=r.networkAccess??!1,s=le(n,o),c=s?.version===a&&s?.scriptPath===i&&(s?.networkAccess??!1)===o;if(s&&c&&await fe(s.endpoint))return s;s&&(me({endpoint:s.endpoint??null,pidFile:s.pidFile??null,logFile:s.logFile??null,sessionDir:s.sessionDir??null,pid:s.pid??null,killProcess:r.killProcess??null}),de(n,o));let l=re(),u=(r.createBrokerEndpoint??b)(l,r.platform),d=e.join(l,`broker.pid`),f=e.join(l,`broker.log`),p=oe({scriptPath:i,cwd:n,endpoint:u,pidFile:d,logFile:f,networkAccess:o,env:r.env??t.env});if(!await ae(u,r.timeoutMs??2e3))return me({endpoint:u,pidFile:d,logFile:f,sessionDir:l,pid:p.pid??null,killProcess:r.killProcess??null}),null;let m={endpoint:u,pidFile:d,logFile:f,sessionDir:l,pid:p.pid??null,networkAccess:o,version:a,scriptPath:i};return ue(n,m,o),m}function me({endpoint:t=null,pidFile:n,logFile:r,sessionDir:a=null,pid:o=null,killProcess:s=null}){if(Number.isFinite(o)&&s)try{s(o)}catch{}if(n&&i.existsSync(n)&&i.unlinkSync(n),r&&i.existsSync(r)&&i.unlinkSync(r),t)try{let e=x(t);e.kind===`unix`&&i.existsSync(e.path)&&i.unlinkSync(e.path)}catch{}let c=a??(n?e.dirname(n):r?e.dirname(r):null);if(c&&i.existsSync(c))try{i.rmdirSync(c)}catch{}}function he(e,n=[],r={}){let i=s(e,n,{cwd:r.cwd,env:r.env,encoding:`utf8`,input:r.input,maxBuffer:r.maxBuffer,stdio:r.stdio??`pipe`,shell:t.platform===`win32`?t.env.SHELL||!0:!1,windowsHide:!0});return{command:e,args:n,status:i.status??0,signal:i.signal??null,stdout:i.stdout??``,stderr:i.stderr??``,error:i.error??null}}function ge(e,t=[`--version`],n={}){let r=he(e,t,n);return r.error&&r.error.code===`ENOENT`?{available:!1,detail:`not found`}:r.error?{available:!1,detail:r.error.message}:r.status===0?{available:!0,detail:r.stdout.trim()||r.stderr.trim()||`ok`}:{available:!1,detail:r.stderr.trim()||r.stdout.trim()||`exit ${r.status}`}}function _e(e){return/not found|no running instance|cannot find|does not exist|no such process/i.test(e)}function ve(e,n={}){if(!Number.isFinite(e))return{attempted:!1,delivered:!1,method:null};let r=e,i=n.platform??t.platform,a=n.runCommandImpl??he,o=n.killImpl??t.kill.bind(t);if(i===`win32`){let e=a(`taskkill`,[`/PID`,String(r),`/T`,`/F`],{cwd:n.cwd,env:n.env});if(!e.error&&e.status===0)return{attempted:!0,delivered:!0,method:`taskkill`,result:e};let t=`${e.stderr}\n${e.stdout}`.trim();if(!e.error&&_e(t))return{attempted:!0,delivered:!1,method:`taskkill`,result:e};if(e.error?.code===`ENOENT`)try{return o(r),{attempted:!0,delivered:!0,method:`kill`}}catch(e){if(e?.code===`ESRCH`)return{attempted:!0,delivered:!1,method:`kill`};throw e}throw e.error?e.error:Error(ye(e))}try{return o(-r,`SIGTERM`),{attempted:!0,delivered:!0,method:`process-group`}}catch(e){if(e?.code!==`ESRCH`)try{return o(r,`SIGTERM`),{attempted:!0,delivered:!0,method:`process`}}catch(e){if(e?.code===`ESRCH`)return{attempted:!0,delivered:!1,method:`process`};throw e}return{attempted:!0,delivered:!1,method:`process-group`}}}function ye(e){let t=[`${e.command} ${e.args.join(` `)}`.trim()];e.signal?t.push(`signal=${e.signal}`):t.push(`exit=${e.status}`);let n=(e.stderr||``).trim(),r=(e.stdout||``).trim();return n?t.push(n):r&&t.push(r),t.join(`: `)}function be(e){return new Promise(n=>{let r=o(e,t.argv.slice(1),{env:t.env,shell:!1,stdio:`inherit`}),i=()=>r.kill(`SIGINT`),a=()=>r.kill(`SIGTERM`);t.once(`SIGINT`,i),t.once(`SIGTERM`,a);let s=e=>{t.off(`SIGINT`,i),t.off(`SIGTERM`,a),n(e)};r.once(`error`,e=>s({error:e,status:null,signal:null})),r.once(`close`,(e,t)=>s({status:e,signal:t}))})}const xe=-32001,Se=`coder/notice`,Ce=`coder/appServerExited`,we=`broker/recycle`;function Te(){let e=he(`codex`,[`--version`]),t=/(\d+\.\d+\.\d+(?:-[\w.]+)?)/.exec(`${e.stdout} ${e.stderr}`);return t?t[1]:`0.144.1`}function Ee(){return{title:`Coder`,name:`coder`,version:Te()}}const De={experimentalApi:!1,requestAttestation:!1,optOutNotificationMethods:[`item/agentMessage/delta`,`item/reasoning/summaryTextDelta`,`item/reasoning/summaryPartAdded`,`item/reasoning/textDelta`]};function Oe(e,t,n){return n===void 0?{code:e,message:t}:{code:e,message:t,data:n}}function ke(e,t){let n=Error(e);return n.data=t,t?.code!==void 0&&(n.rpcCode=t.code),n}var Ae=class{cwd;options;pending;nextId;stderr;closed;exitError;notificationHandler;serverRequestHandler;noticeHandler;lineBuffer;transport;exitPromise;exitResolved;resolveExit;handleServerRequest;constructor(e,t={}){this.cwd=e,this.options=t,this.pending=new Map,this.nextId=1,this.stderr=``,this.closed=!1,this.exitError=null,this.notificationHandler=null,this.serverRequestHandler=null,this.noticeHandler=null,this.lineBuffer=``,this.transport=`unknown`,this.handleServerRequest=e=>this.defaultHandleServerRequest(e),this.exitPromise=new Promise(e=>{this.resolveExit=e})}setNotificationHandler(e){this.notificationHandler=e}setServerRequestHandler(e){this.serverRequestHandler=e}setNoticeHandler(e){this.noticeHandler=e}request(e,t){if(this.closed)throw Error(`codex app-server client is closed.`);if(this.exitResolved)return Promise.reject(this.exitError??Error(`codex app-server connection closed.`));let n=this.nextId;return this.nextId+=1,new Promise((r,i)=>{this.pending.set(n,{resolve:r,reject:i,method:e}),this.sendMessage({id:n,method:e,params:t})})}notify(e,t={}){this.closed||this.sendMessage({method:e,params:t})}handleChunk(e){this.lineBuffer+=e;let t=this.lineBuffer.indexOf(`
3
- `);for(;t!==-1;){let e=this.lineBuffer.slice(0,t);this.lineBuffer=this.lineBuffer.slice(t+1),this.handleLine(e),t=this.lineBuffer.indexOf(`
4
- `)}}handleLine(e){if(!e.trim())return;let t;try{t=JSON.parse(e)}catch(t){this.handleExit(ke(`Failed to parse codex app-server JSONL: ${t instanceof Error?t.message:String(t)}`,{line:e}));return}if(t.id!==void 0&&t.method){this.handleServerRequest(t);return}if(t.id!==void 0){let e=this.pending.get(t.id);if(!e)return;this.pending.delete(t.id),t.error?e.reject(ke(t.error.message??`codex app-server ${e.method} failed.`,t.error)):e.resolve(t.result??{});return}if(t.method===`coder/notice`){this.noticeHandler?.(String(t.params?.message??``));return}if(t.method===`coder/appServerExited`){this.handleExit(ke(String(t.params?.message??`codex app-server exited.`)));return}t.method&&this.notificationHandler&&this.notificationHandler(t)}defaultHandleServerRequest(e){let t=this.serverRequestHandler;if(!t){this.sendMessage({id:e.id,error:Oe(-32601,`Unsupported server request: ${e.method}`)});return}Promise.resolve().then(()=>t(e.method,e.params??{})).then(t=>{this.sendMessage({id:e.id,result:t??{}})}).catch(t=>{this.sendMessage({id:e.id,error:Oe(-32e3,t instanceof Error?t.message:String(t))})})}handleExit(e){if(!this.exitResolved){this.exitResolved=!0,this.exitError=e??null;for(let e of this.pending.values())e.reject(this.exitError??Error(`codex app-server connection closed.`));this.pending.clear(),this.resolveExit(void 0)}}sendMessage(e){throw Error(`sendMessage must be implemented by subclasses.`)}},je=class extends Ae{proc;readline;constructor(e,t={}){super(e,t),this.transport=`direct`}async initialize(){let e=this.options.networkAccess??!1;this.proc=o(`codex`,Me(e,this.options.nativeMcp),{cwd:this.cwd,env:this.options.env??t.env,stdio:[`pipe`,`pipe`,`pipe`],shell:t.platform===`win32`?t.env.SHELL||!0:!1,windowsHide:!0});let n=this.proc.stdout,r=this.proc.stderr;if(!n||!r)throw Error(`codex app-server did not expose stdio streams.`);n.setEncoding(`utf8`),r.setEncoding(`utf8`),r.on(`data`,e=>{this.stderr+=e}),this.proc.on(`error`,e=>{this.handleExit(e)}),this.proc.stdin?.on(`error`,()=>{}),this.proc.on(`exit`,(e,t)=>{let n=this.stderr.trim(),r=e===0?null:ke(`codex app-server exited unexpectedly (${t?`signal ${t}`:`exit ${e}`}).${n?`\n${n}`:``}`);this.handleExit(r)}),this.readline=f.createInterface({input:n}),this.readline.on(`line`,e=>{this.handleLine(e)}),await this.request(`initialize`,{clientInfo:this.options.clientInfo??Ee(),capabilities:this.options.capabilities??De}),this.notify(`initialized`,{})}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.readline&&this.readline.close(),this.proc&&!this.proc.killed&&(this.proc.stdin?.end(),setTimeout(()=>{if(this.proc&&!this.proc.killed&&this.proc.exitCode===null)if(t.platform===`win32`)try{ve(this.proc.pid)}catch{}else this.proc.kill(`SIGTERM`)},50).unref?.()),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.proc?.stdin;if(!n)throw Error(`codex app-server stdin is not available.`);n.write(t)}};function Me(e,t=!1){return[`-c`,`sandbox_workspace_write.network_access=${e}`,`app-server`,...t?[]:[`--disable`,`plugins`,`--disable`,`apps`]]}var Ne=class extends Ae{endpoint;socket;constructor(e,t={}){super(e,t),this.transport=`broker`,this.endpoint=t.brokerEndpoint}async initialize(){await new Promise((e,t)=>{let n=x(this.endpoint);this.socket=d.createConnection({path:n.path}),this.socket.setEncoding(`utf8`),this.socket.on(`connect`,e),this.socket.on(`data`,e=>{this.handleChunk(e)}),this.socket.on(`error`,e=>{this.exitResolved||t(e),this.handleExit(e)}),this.socket.on(`close`,()=>{this.handleExit(this.exitError)})}),await this.request(`initialize`,{clientInfo:this.options.clientInfo??Ee(),capabilities:this.options.capabilities??De}),this.notify(`initialized`,{})}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.socket&&this.socket.end(),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.socket;if(!n)throw Error(`codex app-server broker connection is not connected.`);n.write(t)}},E=class{static async connect(e,n={}){let r=n.networkAccess??!1,i=null;!n.disableBroker&&!n.nativeMcp&&(i=n.brokerEndpoint??n.env?.CODER_APP_SERVER_ENDPOINT??t.env.CODER_APP_SERVER_ENDPOINT??null,!i&&n.reuseExistingBroker&&(i=le(e,r)?.endpoint??null),!i&&!n.reuseExistingBroker&&(i=(await pe(e,{env:n.env,networkAccess:r}))?.endpoint??null));let a=i?new Ne(e,{...n,brokerEndpoint:i}):new je(e,n);return await a.initialize(),a}};async function Pe(e,t,n){for(let r of[!1,!0]){if(!le(e,r))continue;let i=null;try{return i=await E.connect(e,{networkAccess:r,reuseExistingBroker:!0}),await i.request(t,{threadId:n}),!0}catch{}finally{await i?.close().catch(()=>{})}}return!1}function Fe(e){try{let t=o(`codex`,e,{detached:!0,stdio:`ignore`});t.on(`error`,()=>{}),t.unref()}catch{}}async function Ie(e,t){await Pe(e,`thread/archive`,t)||Fe([`archive`,t])}function Le(t){let n=e.join(process.env.CODEX_HOME||e.join(u.homedir(),`.codex`),`archived_sessions`);try{return i.readdirSync(n).some(e=>e.endsWith(`-${t}.jsonl`))}catch{return!1}}function Re(e){return new Promise(t=>{try{let n=o(`codex`,[`unarchive`,e],{stdio:`ignore`});n.on(`error`,()=>t(!1)),n.on(`close`,e=>t(e===0))}catch{t(!1)}})}async function ze(e,t){return await Pe(e,`thread/delete`,t)?!0:s(`codex`,[`delete`,`--force`,t],{encoding:`utf8`}).status===0}const D=[`completed`,`failed`,`cancelled`],Be=[`queued`,`running`],Ve=/^[a-z0-9][a-z0-9_-]*$/i;function O(e){return Ve.test(e)}function He(e,t){if(!O(e))throw Error(`Invalid ${t} "${e}".`)}function k(...t){return e.join(e.resolve(process.env.CODER_HOME||e.join(u.homedir(),`.coder`)),...t)}function A(...t){let n=u.homedir(),r=u.platform(),i=process.env.CODER_CACHE_HOME||(r===`darwin`?e.join(n,`Library`,`Caches`,`wular-coder`):r===`win32`?e.join(process.env.LOCALAPPDATA||e.join(n,`AppData`,`Local`),`wular-coder`,`cache`):e.join(process.env.XDG_CACHE_HOME||e.join(n,`.cache`),`wular-coder`));return e.join(e.resolve(i),...t)}function Ue(){return k()}function We(t){return t?e.join(t,`flows`):k(`state`,`global`,`flows`)}function Ge(){return A(`flows-archived`)}function Ke(){return A(`usage.json`)}function qe(e=Ke()){return`${e}.${process.pid}.${l()}.tmp`}function Je(){return A(`runner`,`usage.json`)}function j(e){try{return a(`git`,[`rev-parse`,`--show-toplevel`],{cwd:e,encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return e}}const Ye=`global`;function M(e){return k(`state`,Ye)}function Xe(){let t=k(`state`),n=[];try{n=i.readdirSync(t,{withFileTypes:!0})}catch{}return n.filter(e=>e.isDirectory()&&e.name!==Ye).map(n=>e.join(t,n.name))}function N(t){return e.join(M(t),`jobs`)}const Ze=18e5,Qe=(e,t=Date.now())=>t-e>Ze;function P(e){return A(`archive`)}function F(t,n){He(n,`task id`);let r=e.join(N(t),n);if(i.existsSync(e.join(r,`job.json`)))return r;let a=e.join(P(t),n);if(i.existsSync(e.join(a,`job.json`)))return a;for(let t of Xe()){let r=e.join(t,`jobs`,n);if(i.existsSync(e.join(r,`job.json`)))return r}return r}function $e(e,t,n={}){return t.archived&&(n.auto||!t.autoArchived)?t:t.archived?I(e,t.id,{autoArchived:void 0}):I(e,t.id,{archived:!0,archivedAt:new Date().toISOString(),...n.auto?{autoArchived:!0}:{}},{touch:!n.auto})}function et(t,n,r={}){if(Be.includes(n.status))return $e(t,n,r);let i=F(t,n.id),a=e.join(P(t),n.id);i!==a&&g(i,a);let o=$e(t,n,r);return n.engine!==`claude`&&n.threadId&&Ie(t,n.threadId),o}function tt(e){return!!e.archived&&(e.resumedAt??``)>(e.archivedAt??``)}function nt(t,n){let r=F(t,n.id),i=e.join(N(t),n.id);return r!==i&&g(r,i),I(t,n.id,{archived:void 0,archivedAt:void 0,autoArchived:void 0})}function rt(){let e=Math.random().toString(36).slice(2,8);return`task-${Date.now().toString(36)}-${e}`}function I(t,n,r,a={}){let o=F(t,n);i.mkdirSync(o,{recursive:!0});let s=e.join(o,`job.json`),c=L(t,n)??{id:n,createdAt:new Date().toISOString(),status:`queued`},l={...c,...r,updatedAt:a.touch===!1?c.updatedAt:new Date().toISOString()};return i.writeFileSync(s,`${JSON.stringify(l,null,2)}\n`,`utf8`),l}function it(e){return e.agent&&(e.engine=e.agent),delete e.agent,e}function L(t,n){if(!O(n))return null;let r=e.join(F(t,n),`job.json`);if(!i.existsSync(r))return null;try{return it(JSON.parse(i.readFileSync(r,`utf8`)))}catch{return null}}function at(e,t){let n=F(e,t);return i.existsSync(n)?(i.rmSync(n,{recursive:!0,force:!0}),!0):!1}function ot(e){if(!e)return!1;try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function st(e){try{let t=a(`ps`,[`-o`,`lstart=`,`-p`,String(e)],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`],env:{...process.env,TZ:Intl.DateTimeFormat().resolvedOptions().timeZone}}).trim(),n=t?Date.parse(t):NaN;return Number.isFinite(n)?n:null}catch{return null}}function ct(e,t,n){if(!ot(e))return!1;let r=n(e),i=Date.parse(t.resumedAt??t.createdAt??``);return r===null||!Number.isFinite(i)||r<=i+6e4}function R(e,t,n=st){if(t.status!==`running`&&t.status!==`queued`)return t;let r;if(t.pid)r=!ct(t.pid,t,n);else{let e=Date.parse(t.updatedAt??t.createdAt??``);r=Number.isFinite(e)&&Date.now()-e>6e4}return r?I(e,t.id,{status:`failed`,error:`worker exited without finishing`,completedAt:new Date().toISOString()}):t}function lt(t,n){let r=[];for(let a of t){let t=[];try{t=i.readdirSync(a)}catch{continue}for(let o of t){if(n.has(o))continue;let t=e.join(a,o,`job.json`);try{let e=it(JSON.parse(i.readFileSync(t,`utf8`)));n.add(o),r.push(e)}catch{}}}return r}async function*ut(t){let n=await i.promises.readdir(e.dirname(M(t)),{withFileTypes:!0}).catch(()=>[]),r=[{dir:N(t),archived:!1},{dir:P(t),archived:!0},...n.filter(e=>e.isDirectory()&&e.name!==Ye).map(n=>({dir:e.join(e.dirname(M(t)),n.name,`jobs`),archived:!1}))];for(let{dir:t,archived:n}of r){let r=await i.promises.readdir(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r)i.isDirectory()&&O(i.name)&&(yield{id:i.name,dir:e.join(t,i.name),archived:n})}}const dt=(e,t)=>String(t.updatedAt??``).localeCompare(String(e.updatedAt??``));function ft(){let e=new Map;return t=>(e.has(t)||e.set(t,st(t)),e.get(t))}function pt(t){let n=ft(),r=[N(t),...Xe().map(t=>e.join(t,`jobs`))],i=[];for(let e of lt(r,new Set)){let r=R(t,e,n);r.archived&&!tt(r)?et(t,r,{auto:!0}):i.push(r.archived?nt(t,r):r)}return i.sort(dt)}function mt(e,t,n=!1){if(t.status===`queued`)return!0;let r=t.generation??0;if(n&&!r)return!1;let i=L(e,t.task.id);return i?r?t.startedAt===void 0||(Date.parse(i.resumedAt??``)||0)<t.startedAt:!1:!0}function ht(t){let n=m(e.join(M(t),`runner`,`task.json`))??{},r=e=>e===void 0?void 0:new Date(e).toISOString();return Object.values(n).map(({value:e})=>e).filter(e=>mt(t,e)).map(e=>{let t=e.status===`waiting`?`running`:e.status,n=e.archivedAt??(D.includes(t)&&Qe(e.finishedAt??e.updatedAt)?e.finishedAt??e.updatedAt:void 0);return{id:e.task.id,status:t,...e.task.name?{name:e.task.name}:{},...e.task.prompt?{prompt:e.task.prompt}:{},...e.task.cwd?{cwd:e.task.cwd}:{},...e.task.agent?{agentId:e.task.agent}:{},source:e.task.source??`dashboard`,...e.error?{error:e.error}:{},createdAt:r(e.createdAt),updatedAt:r(e.updatedAt),...e.finishedAt?{completedAt:r(e.finishedAt)}:{},...n===void 0?{}:{archived:!0,archivedAt:r(n)}}})}function gt(t,n){let r=ft(),i=n?.migrate??!0,a=new Set,o=[];for(let e of lt([P(t)],a))tt(e)?i&&nt(t,R(t,e,r)):o.push(R(t,e,r));let s=[N(t),...Xe().map(t=>e.join(t,`jobs`))];for(let e of lt(s,a))if(e.archived&&!tt(e)){let n=R(t,e,r);o.push(i?et(t,n,{auto:!0}):n)}return o.sort(dt)}function _t(e,t){let n=gt(e),r=[...pt(e),...n].sort(dt);if(!t)return r[0]??null;let i=r.find(e=>e.id===t);if(i)return i;let a=r.filter(e=>e.id.startsWith(t));if(a.length===1)return a[0];if(a.length>1)throw Error(`Task reference "${t}" is ambiguous. Use a longer id.`);return null}function vt(t,n){let r=F(t,n);try{i.mkdirSync(r,{recursive:!0}),i.writeFileSync(e.join(r,`heartbeat`),``,`utf8`)}catch{}}function yt(t,n){let r=F(t,n.id),a=Date.parse(n.updatedAt??``)||0;for(let t of[`log.jsonl`,`heartbeat`])try{a=Math.max(a,i.statSync(e.join(r,t)).mtimeMs)}catch{}return a?new Date(a).toISOString():void 0}async function bt(e,t,n=400){let r=t;for(;!D.includes(r.status);)await new Promise(e=>setTimeout(e,n)),r=R(e,L(e,r.id)??r);return r}const xt=`steer-queue.jsonl`;function St(t,n,r){let a=F(t,n);i.mkdirSync(a,{recursive:!0}),i.appendFileSync(e.join(a,xt),`${JSON.stringify({at:new Date().toISOString(),text:r})}\n`,`utf8`)}function Ct(t,n){let r=F(t,n),a=e.join(r,xt),o=e.join(r,`steer-claim-${process.pid}-${Date.now()}.tmp`);try{i.renameSync(a,o)}catch{return[]}try{return i.readFileSync(o,`utf8`).split(/\r?\n/).filter(Boolean).map(e=>{try{return String(JSON.parse(e).text??``)}catch{return``}}).filter(Boolean)}finally{try{i.unlinkSync(o)}catch{}}}function wt(t,n,r){let a=F(t,n);i.mkdirSync(a,{recursive:!0}),i.appendFileSync(e.join(a,`log.jsonl`),`${JSON.stringify({at:new Date().toISOString(),...r})}\n`,`utf8`)}function Tt(t,n){let r=e.join(F(t,n),`results.jsonl`);return i.existsSync(r)?i.readFileSync(r,`utf8`).split(/\r?\n/).filter(Boolean).flatMap(e=>{try{return[JSON.parse(e)]}catch{return[]}}):[]}function Et(e,t){if(t<=0)return[];let n=0;for(let r=e.length-1;r>=0;--r)if(e[r]?.kind!==`usage`&&(n+=1)===t)return e.slice(r);return e}function z(t,n,r=40){let a=e.join(F(t,n),`log.jsonl`);return i.existsSync(a)?i.readFileSync(a,`utf8`).split(/\r?\n/).filter(Boolean).slice(-r).map(e=>{try{return JSON.parse(e)}catch{return{message:e}}}):[]}function Dt(e){return[e.engine??`-`,e.model,e.model?e.effort:null].filter(Boolean).join(`/`)}function Ot(e){let t=Date.parse(e??``);return Number.isFinite(t)?Math.max(0,Date.now()-t):0}const kt=6e5;var B=class extends Error{code;hint;taskId;payload;approval;result;runId;status;constructor(e,t,n={}){super(t),this.name=`CoderError`,this.code=e,Object.assign(this,n)}};const V={chain:[`codex`,`claude`],engines:{codex:{model:`gpt-6.1-sol`,effort:`high`,permissions:`auto`},claude:{model:`opus`,effort:`medium`,permissions:`auto`}},models:{},approvals:{escalationTimeoutMs:12e4,allowedNetworkHosts:[]}},At=e=>e===`failed`?0:e===`completed`?3:e===`cancelled`?2:1,jt=(e,t)=>e.rank-t.rank||t.createdAt-e.createdAt||(t.id<e.id?-1:+(t.id>e.id)),H={luna:`gpt-6-luna`,sol:`gpt-6.1-sol`,astra:`gpt-6-astra`},Mt=new Set([`low`,`medium`,`high`]),U={sonnet:`sonnet`,opus:`opus`,fable:`fable`},Nt=new Set([`low`,`medium`,`high`]),Pt={"read-only":{sandbox:`read-only`,approvalPolicy:`never`,approvalMode:null},"workspace-write":{sandbox:`workspace-write`,approvalPolicy:`never`,approvalMode:null},auto:{sandbox:`workspace-write`,approvalPolicy:`on-request`,approvalMode:`auto`}},Ft={"read-only":[`--permission-mode`,`dontAsk`,`--disallowedTools`,`Edit`,`Write`,`NotebookEdit`],"workspace-write":[`--permission-mode`,`acceptEdits`],auto:[`--permission-mode`,`auto`]},It=[`--permission-mode`,`dontAsk`,`--disallowedTools`,`Edit`,`Write`,`NotebookEdit`,`Bash`,`WebFetch`,`WebSearch`,`Task`],Lt=/failIfUnavailable|sandbox\b[^.\n]*?(?:failed|could ?n[o']t|cannot|unavailable|not available|not supported)/i,Rt=new Set([`localhost`,`127.0.0.1`,`::1`,`[::1]`]);function zt(e){return e.flatMap(e=>d.isIPv6(e)?[`[${e}]`]:e.startsWith(`[`)||e.includes(`:`)||d.isIP(e)?[e]:[e,`*.${e}`])}function Bt(e,t,n=[],r=[],i=[]){let a=e===`read-only`?r:[...r,...i],o=a.length?{permissions:{additionalDirectories:a}}:{};return JSON.stringify(e===`read-only`?{...o,sandbox:{enabled:!0,failIfUnavailable:!0,autoAllowBashIfSandboxed:!0,filesystem:{denyWrite:[t,...r],...i.length?{allowWrite:i}:{}}}}:{...o,sandbox:{enabled:!0,autoAllowBashIfSandboxed:!0,...e===`auto`&&n.length?{network:{allowedDomains:zt(n),...n.some(e=>Rt.has(e))?{allowLocalBinding:!0}:{}}}:{}}})}const Vt=r.enum([`codex`,`claude`]),Ht=r.enum([`codex`,`claude`,`custom`]),Ut=r.enum([`low`,`medium`,`high`]),Wt=r.enum([`read-only`,`workspace-write`,`auto`]),Gt=r.partial(r.strictObject({model:r.string().check(r.minLength(1)),effort:Ut,permissions:Wt})),Kt=r.partial(r.strictObject({model:r.string().check(r.minLength(1)),effort:Ut,permissions:Wt,network:r.boolean()})),qt=r.strictObject({baseUrl:r.url(),model:r.string().check(r.minLength(1)),envKey:r.optional(r.string().check(r.minLength(1))),wireApi:r.optional(r.enum([`chat`,`responses`])),disabled:r.optional(r.boolean())}),Jt=r.strictObject({provider:Vt,model:r.string().check(r.minLength(1)),effort:r.optional(Ut),disabled:r.optional(r.boolean())}),Yt=r.strictObject({disabled:r.boolean()}),Xt=r.union([qt,Jt,Yt]),Zt=r.strictObject({escalationTimeoutMs:r.number().check(r.positive()),allowedNetworkHosts:r.array(r.string())}),Qt=r.enum([`observe`,`comment`,`write`]),$t=r.string().check(r.regex(/^[a-z0-9][a-z0-9_-]*$/i,`agent or flow name`)),en=r.strictObject({allowedTools:r.optional(r.union([Qt,r.array(r.string())])),allowedEvents:r.optional(r.array(r.string()))}),tn=r.union([r.boolean(),r.strictObject({engine:r.optional(r.string()),model:r.optional(r.string()),effort:r.optional(Ut),permissions:r.optional(Wt),runner:r.optional(r.enum([`local`,`local-docker`,`vercel-sandbox`,`github-actions`])),integrations:r.optional(r.record(r.string(),en))})]),nn=r.strictObject({command:r.optional(r.string().check(r.minLength(1))),args:r.optional(r.array(r.string())),env:r.optional(r.record(r.string(),r.string())),url:r.optional(r.string().check(r.minLength(1))),type:r.optional(r.enum([`stdio`,`http`,`sse`])),headers:r.optional(r.record(r.string(),r.string())),tools:r.optional(r.array(r.string())),description:r.optional(r.string())}).check(r.refine(e=>!!e.command!=!!e.url,`one of command or url`)),rn=r.strictObject({chain:r.array(Ht).check(r.minLength(1)),engines:r.partial(r.strictObject({codex:Kt,claude:Gt,custom:Gt})),models:r.optional(r.record(r.string().check(r.regex(/^[a-z0-9][a-z0-9./_-]*$/i,`model name`)),Xt)),agents:r.optional(r.record($t,tn)),mcp:r.optional(r.record($t,nn)),approvals:Zt}),an=r.partial(r.extend(rn,{approvals:r.partial(Zt)}));function W(e){return`baseUrl`in e}function on(e){return`provider`in e}function sn(e,t){return t??e===`auto`}const cn=/^(?!-)[a-z0-9-]{1,63}(?<!-)(?:\.(?!-)[a-z0-9-]{1,63}(?<!-))*(?::\d{1,5})?$/i;function ln(e){if(d.isIP(e))return!0;let t=/^\[([^\]]+)\](?::\d{1,5})?$/.exec(e);return t?d.isIPv6(t[1]):e.length<=253&&cn.test(e)}function un(e,t){delete e.models?.[t];for(let n of Object.values(e.engines??{}))n?.model===t&&delete n.model}function G(e){let t=Object.keys(e?.agents??{}).filter(e=>[`codex`,`claude`,`custom`].includes(e));if(t.length)return t.map(e=>`agents.${e}: engine defaults moved to engines.${e}`);let n=an.safeParse(e);if(!n.success)return n.error.issues.map(e=>`${e.path.join(`.`)||`config`}: ${e.message}`);let r=pn(V,n.data),i=[];for(let[e,t]of(n.data.approvals?.allowedNetworkHosts??[]).entries())ln(t)||i.push(`approvals.allowedNetworkHosts.${e}: "${t}" is not a host name or IP address`);for(let[e,t]of Object.entries(n.data.models??{})){if(e===`codex`||e===`claude`||e===`custom`){i.push(`models.${e}: reserved engine name`);continue}if(on(t)){let n=r.models?.[t.model];n&&!W(n)&&i.push(`models.${e}: alias target "${t.model}" is itself a config entry`)}}return i}function dn(e){if(!i.existsSync(e))return null;try{return JSON.parse(i.readFileSync(e,`utf8`))}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Invalid JSON in ${e}: ${n}`)}}function fn(e){return pn(V,e)}function pn(e,t){if(!t||typeof t!=`object`||Array.isArray(t))return t??e;let n={...e},r=e;for(let[e,i]of Object.entries(t))n[e]=i&&typeof i==`object`&&!Array.isArray(i)&&r?.[e]&&typeof r[e]==`object`?pn(r[e],i):i;return n}function K(){return k(`config.json`)}const mn=[`coder.config.json`,`coder.json`];function q(t){let n=e.join(t,`.coder`,`config.json`);if(i.existsSync(n))return n;for(let r of mn){let a=e.join(t,r);if(i.existsSync(a)){i.mkdirSync(e.dirname(n),{recursive:!0}),i.renameSync(a,n),process.stderr.write(`coder: moved ${r} to .coder/config.json\n`);break}}return n}const hn=`CODER_WORKSPACE_CONFIG`;function gn(e,t){let n=t.approvals?.allowedNetworkHosts?.filter(t=>e.approvals.allowedNetworkHosts.includes(t)),r=Object.fromEntries(Object.entries(t.engines??{}).map(([e,t])=>[e,{...t?.model?{model:t.model}:{},...t?.effort?{effort:t.effort}:{}}])),i=Object.entries(t.models??{}).filter(([,e])=>e.disabled===!0);return{...t.chain?{chain:t.chain.filter(t=>e.chain.includes(t))}:{},engines:r,models:Object.fromEntries(i.map(([e])=>[e,{disabled:!0}])),...n?{approvals:{...e.approvals,allowedNetworkHosts:n}}:{}}}function J(e){let t=j(e),n=process.env[hn],r=[[K(),dn(K())],...n?[[`the workspace config`,JSON.parse(n)]]:[]],i=q(t);r.push([i,dn(i)]);let a=V;for(let[e,t]of r){if(!t)continue;let r=G(t);if(r.length)throw Error(`Invalid config in ${e}:\n ${r.join(`
5
- `)}`);a=pn(a,n&&e===i?gn(a,t):t)}let o=G(a);if(o.length)throw Error(`Invalid merged config:\n ${o.join(`
6
- `)}`);return a}function _n(e){return e.replace(/\/+$/,``).replace(/\/(chat\/completions|completions|responses)$/,``)}function vn(e,t,n){let r=[q(j(e)),K()];for(let e of r){let r;try{r=dn(e)}catch{continue}if(r?.models?.[t])return Object.assign(r.models[t],n),!G(r).length&&(i.writeFileSync(e,`${JSON.stringify(r,null,2)}\n`,`utf8`),!0)}return!1}function yn(e){return/\/(chat\/completions|completions|responses)\/*$/.test(e)}function bn(e,t){let n=_n(e);return yn(e)||/\/v\d+(alpha|beta)?$/.test(n)?[`${n}/${t}`]:[`${n}/${t}`,`${n}/v1/${t}`]}function xn(e,t,n){let r=t?e.models?.[t]:void 0;if(!t||!r||!W(r))return null;let i=`coder-${t}`;return{model:r.model,modelProvider:i,configOverrides:{[`model_providers.${i}`]:{name:t,base_url:n?.url??_n(r.baseUrl),...r.envKey&&!n?{env_key:r.envKey}:{},wire_api:`responses`}}}}function Sn(e){return e?H[e]??e:null}function Cn(e){return e in H||e in U}function wn(e,t){return!!(t&&e.models?.[t]?.disabled)}function Tn(e,t){if(wn(e,t))throw Error(`model "${t}" is disabled in config`)}function En(e,t){if(!e)return null;let n=String(e).trim().split(`:`).map(e=>e.trim());if(!n.length||n.length>3||n.some(e=>!e))throw Error(`Invalid engine spec "${e}".`);let r=null,i=null,a=null,o=e=>Mt.has(e)||Nt.has(e);for(let t of n)if(t===`codex`||t===`claude`||t===`custom`){if(r)throw Error(`Invalid engine spec "${e}".`);r=t}else if(o(t)&&!a)a=t;else if(!i)i=t;else throw Error(`Invalid engine spec "${e}".`);let s=i?t.models?.[i]:void 0;if(s&&on(s)){if(s.disabled)throw Error(`model "${i}" is disabled in config`);if(r&&r!==s.provider)throw Error(`Alias "${i}" runs on ${s.provider}, not ${r}.`);r=s.provider,a=a??s.effort??null,i=s.model}r||=i&&i in U?`claude`:i&&s&&W(s)?`custom`:`codex`;let c=t.engines[r]??{},l=i??c.model??null;return Tn(t,l),{engine:r,model:l,effort:a??c.effort??null}}function Dn(t){let n=K();return i.mkdirSync(e.dirname(n),{recursive:!0}),i.writeFileSync(n,`${JSON.stringify(t,null,2)}\n`,`utf8`),n}function On(e,t){return t.split(`.`).reduce((e,t)=>e?.[t],e)}function kn(e,t){return t?q(j(e)):K()}function An(e,t){let n=J(e);return t?On(n,t):n}function jn(e,t,n,r={}){let i=kn(e,r.workspace);Mn(i,e=>{let i=t.split(`.`),a=i.at(-1),o=e;for(let e of i.slice(0,-1))(typeof o[e]!=`object`||o[e]===null)&&(o[e]={}),o=o[e];r.unset?delete o[a]:o[a]=n});let a=On(J(e),t)??null;return{file:i,key:t,...r.unset?{unset:!0}:{value:n},effective:a}}function Mn(t,n){let r=i.existsSync(t)?JSON.parse(i.readFileSync(t,`utf8`)):{};n(r),r.models&&Object.keys(r.models).length===0&&delete r.models;let a=G(r);if(a.length)throw Error(`Refusing to write invalid config:\n ${a.join(`
7
- `)}`);i.mkdirSync(e.dirname(t),{recursive:!0}),i.writeFileSync(t,`${JSON.stringify(r,null,2)}\n`,`utf8`)}function Nn(e,t){return t?K():q(j(e))}function Pn(e,t){let n={};for(let r of(e??``).split(`,`).map(e=>e.trim()).filter(Boolean)){let e=r.indexOf(`=`);if(e<1)throw Error(`Invalid ${t} "${r}": use KEY=VALUE (values may hold \${VAR}).`);n[r.slice(0,e)]=r.slice(e+1)}return n}function Fn(e,t,n,r){let i=Nn(e,r);return Mn(i,e=>{e.mcp={...e.mcp,[t]:n}}),{name:t,file:i}}function In(e,t,n={}){let[r,...i]=n.command??[];if(!t)throw Error(`Usage: coder mcp add <name> [--tools a,b] [--user] (--url <url> [--header K=V] | -- <command> [args...])`);if(!r&&!n.url)throw Error("Give a remote --url, or a command after `--`.");if(r&&n.url)throw Error(`Use either --url or a command, not both.`);let a=n.tools?{tools:n.tools.split(`,`).map(e=>e.trim()).filter(Boolean)}:{},o=Pn(n.env,`--env`),s=Pn(n.header,`--header`);return Fn(e,t,n.url?{url:n.url,...n.transport?{type:n.transport}:{},...Object.keys(s).length?{headers:s}:{},...a}:{command:r,...i.length?{args:i}:{},...Object.keys(o).length?{env:o}:{},...a},n.user)}function Ln(e,t,n,r={}){if(!t||!n)throw Error(`Usage: coder mcp add-json <name> '<json entry>' [--user]`);let i=n;if(typeof n==`string`)try{i=JSON.parse(n)}catch(e){throw Error(`Invalid JSON: ${e instanceof Error?e.message:String(e)}`)}if(!i||typeof i!=`object`||Array.isArray(i))throw Error(`The entry must be a JSON object.`);return Fn(e,t,i,r.user)}function Rn(e){return J(e).mcp??{}}function zn(e,t,n={}){if(!t)throw Error(`Usage: coder mcp rm <name> [--user]`);let r=Nn(e,n.user);return Mn(r,e=>{if(!e.mcp?.[t])throw Error(`No MCP server "${t}" in ${r}.`);delete e.mcp[t],Object.keys(e.mcp).length||delete e.mcp}),{name:t,file:r}}const Bn=/access token could not be refreshed/i,Vn=/model is not supported|Codex cannot run model/i;function Hn(e){return e instanceof Error?e.message:String(e??``)}function Un(e){return Bn.test(e??``)}function Wn(e){return Vn.test(e??``)}function Gn(e,t){return!Wn(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 Kn(t=process.env){return e.join(t.CODEX_HOME||e.join(u.homedir(),`.codex`),`auth.json`)}function qn(e){try{let t=JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString(`utf8`));return String(t.sub??t.email??``)}catch{return``}}function Jn(e=process.env,t){let n=Kn(e),r;try{r=i.statSync(n).mtimeMs}catch{return``}if(t?.file===n&&t.mtimeMs===r)return t.fingerprint??``;try{let e=JSON.parse(i.readFileSync(n,`utf8`)),a=e.OPENAI_API_KEY?c(`sha256`).update(String(e.OPENAI_API_KEY)).digest(`hex`):``,o=[e.auth_mode??``,e.tokens?.account_id??``,qn(e.tokens?.id_token),a].join(`|`);return t&&Object.assign(t,{file:n,mtimeMs:r,fingerprint:o}),o}catch{return t?.file===n?t.fingerprint??``:``}}const Yn=`CODER_MAILBOX`,Xn=/^([a-f0-9-]{36})\.(?:req|applying)\.json$/;function Zn(e){if(!e)return l();if(!e.task||!Number.isInteger(e.generation)||e.generation<0||!Number.isInteger(e.seq)||e.seq<0)throw Error(`Invalid command key`);let t=c(`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 Qn=[`hint`,`taskId`,`payload`,`approval`,`result`,`runId`,`status`];function $n(e=t.env){return e.CODER_MAILBOX||void 0}function er(e,t){let n=`${e}.${l()}.tmp`;i.writeFileSync(n,JSON.stringify(t),{encoding:`utf8`,flag:`wx`}),i.renameSync(n,e)}async function tr(t,n,r={}){let a=r.dir??$n();if(!a)throw Error(`No mailbox: not inside an agent task.`);let o=r.id??l(),s=e.join(a,`${o}.res.json`);i.existsSync(s)||er(e.join(a,`${o}.req.json`),{kind:t,payload:n});let c=Date.now();for(;!i.existsSync(s);){if(r.timeoutMs&&Date.now()-c>=r.timeoutMs)throw Error(`Worker control timed out`);await new Promise(e=>setTimeout(e,100))}let{result:u,error:d}=JSON.parse(i.readFileSync(s,`utf8`));if(r.keepReply||i.rmSync(s,{force:!0}),d){let{code:e,message:t,...n}=d;throw new B(e,t,n)}return u}function nr(t,n){i.mkdirSync(t,{recursive:!0});let r=new Set,a=async(a,o)=>{let s;try{let r=e.join(t,a);if(!i.lstatSync(r).isFile())throw Error(`mailbox request is not a regular file`);let{kind:c,payload:l}=JSON.parse(i.readFileSync(r,`utf8`)),u=e.join(t,`${o}.applying.json`);i.existsSync(u)||er(u,{kind:c,payload:l});let d=Object.hasOwn(n,c)?n[c]:void 0;if(!d)throw Error(`unknown mailbox request "${c}"`);s={result:await d(l??{})??null}}catch(e){let t=e instanceof B?e:void 0;s={error:{code:t?.code??`invalid-option`,message:e instanceof Error?e.message:String(e),...Object.fromEntries(Qn.flatMap(e=>t?.[e]===void 0?[]:[[e,t[e]]]))}}}try{er(e.join(t,`${o}.res.json`),s),i.rmSync(e.join(t,`${o}.req.json`),{force:!0}),i.rmSync(e.join(t,`${o}.applying.json`),{force:!0}),r.delete(o)}catch{}},o=setInterval(()=>{let n=[];try{n=i.readdirSync(t)}catch{return}for(let o of n){let n=Xn.exec(o)?.[1];if(n){if(i.existsSync(e.join(t,`${n}.res.json`))){i.rmSync(e.join(t,o),{force:!0});continue}r.has(n)||(r.add(n),a(o,n))}}},100);return()=>clearInterval(o)}function rr(t,n){return n.agentId?e.join(F(t,n.id),`mailbox`):null}function ir(e,t){let n=`${e}.${process.pid}.${l()}.tmp`;i.writeFileSync(n,`${JSON.stringify(t)}\n`,`utf8`),i.renameSync(n,e)}function ar(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 Y(e,t,n){return Object.assign(Error(e),{retryable:t,...n===void 0?{}:{rpcCode:n}})}function or(e,t,n,r){if(!e||e.id!==t||e.method!==`turn/steer`&&e.method!==`turn/interrupt`)throw Y(`Invalid Codex control request.`,!1);let i=e.params;if(!i||typeof i!=`object`||i.threadId!==n)throw Y(`Codex control request does not match its owning thread.`,!1);if(e.method===`turn/interrupt`){if(i.turnId!==r)throw Y(`Codex turn/interrupt request does not match its owning active turn.`,!1);return{method:e.method,params:i}}if(i.expectedTurnId!==r)throw Y(`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 Y(`Invalid Codex turn/steer input schema.`,!1);return{method:e.method,params:i}}async function sr(t,{threadId:n,turnId:r}){let a=i.mkdtempSync(e.join(u.tmpdir(),`coder-codex-control-`)),o=`file:${a}`,s=new Set,c=new Set,l=!1,d=!1,f=(o=!1)=>{if(!(l&&!o||d)){d=!0;try{for(let o of i.readdirSync(a).filter(e=>e.endsWith(`.request.json`))){let u=o.slice(0,-13),d=e.join(a,o),f=e.join(a,`${u}.response.json`);if(i.existsSync(f)){i.unlinkSync(d);continue}if(c.has(u))continue;let p=`${d}.${process.pid}.processing`;try{i.renameSync(d,p)}catch{continue}c.add(u);let m=(async()=>{let e;try{if(l)throw Y(`Codex owner endpoint is shutting down.`,!0);let a=or(JSON.parse(i.readFileSync(p,`utf8`)),u,n,r);try{let n=await t.request(a.method,a.params);e={id:u,result:n}}catch(t){let n=t;e={id:u,error:{message:t instanceof Error?t.message:String(t),retryable:ar(t),...n.rpcCode===void 0?{}:{rpcCode:n.rpcCode}}}}}catch(t){let n=t;e={id:u,error:{message:n.message,retryable:n.retryable===!0,...n.rpcCode===void 0?{}:{rpcCode:n.rpcCode}}}}try{ir(f,e)}finally{c.delete(u);try{i.unlinkSync(p)}catch{}}})();s.add(m),m.then(()=>s.delete(m),()=>s.delete(m))}}catch{}finally{d=!1}}},p=setInterval(f,10);return p.unref?.(),{endpoint:o,async close(){l||(l=!0,clearInterval(p),f(!0),await Promise.allSettled([...s]),await new Promise(e=>setTimeout(e,50)),i.rmSync(a,{recursive:!0,force:!0}))}}}function cr(t){if(t?.startsWith(`file:`)&&t.length>5){let n=e.resolve(t.slice(5)),r=e.resolve(u.tmpdir());e.dirname(n)===r&&e.basename(n).startsWith(`coder-codex-control-`)&&i.rmSync(n,{recursive:!0,force:!0})}}async function lr(t,n,r,a=3e3,o){if(!t)return{ok:!1,retryable:!0,detail:`Codex owner endpoint is not ready.`};if(!t.startsWith(`file:`)||t.length===5)return{ok:!1,retryable:!1,detail:`Unsupported Codex control endpoint: ${t}`};let s=t.slice(5);if(!i.existsSync(s))return{ok:!1,retryable:!0,detail:`Codex owner endpoint is no longer available.`};let c=Zn(o),l=e.join(s,`${c}.request.json`),u=e.join(s,`${c}.response.json`);try{i.existsSync(u)||ir(l,{id:c,method:n,params:r,command:o})}catch(e){return{ok:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let d=Date.now();for(;Date.now()-d<a;){try{let e=JSON.parse(i.readFileSync(u,`utf8`));try{(!o||e?.error?.retryable)&&i.unlinkSync(u)}catch{}return e?.id===c?e?.error?{ok:!1,retryable:e.error.retryable===!0,detail:String(e.error.message??`Malformed Codex owner error response.`)}:`result`in e?{ok:!0,retryable:!1,result:e.result,detail:`Codex owner accepted control.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response id.`}}catch(e){if(e.code!==`ENOENT`)return{ok:!1,retryable:!1,detail:`Invalid Codex owner response: ${e instanceof Error?e.message:String(e)}`};if(!i.existsSync(s))return{ok:!1,retryable:!1,detail:`Codex owner endpoint closed after control publication; acceptance is unknown.`}}await new Promise(e=>setTimeout(e,10))}return{ok:!1,retryable:!1,detail:`Timed out waiting for Codex owner acknowledgement.`}}const ur=`Coder Task`;function dr(e,t=72){let n=String(e??``).trim().replace(/\s+/g,` `);return n?n.length<=t?n:`${n.slice(0,t-3)}...`:``}function fr(e){let t=dr(e,56);return t?`${ur}: ${t}`:ur}function pr(e){return e?.params?.threadId??null}function mr(e){return e?.params?.turnId?e.params.turnId:e?.params?.turn?.id?e.params.turn.id:null}function hr(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 gr(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 _r(e){try{let t=i.readFileSync(e,`utf8`),n=t?t.split(/\r\n|\r|\n/).length-+!!t.endsWith(`
8
- `):0;return n>0?[n===1?`L1`:`L1-L${n}`]:[]}catch{return[]}}function vr(e,t,n){let r=typeof e.kind==`string`?e.kind:e.kind?.type??`change`,i=e.path||`(unknown path)`,a=gr(e.diff??``,r),o=a.length||r!==`add`||!t?a:_r(i),s=typeof e.kind==`object`&&e.kind?.move_path?` -> ${n?p(n,e.kind.move_path):e.kind.move_path}`:``;return`${r} ${n?p(n,i):i}${s}${o.length?` ${o.join(`, `)}`:``}`}function yr(e,t=!1,n){return(e.changes??[]).map(e=>vr(e,t,n)).join(`; `)}function br(e){let t=e.trim().split(` `)[0]??``;return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function xr(e,t){let n=new Map,r=``,i=``;for(let t of e.split(/\r?\n/)){if(t.startsWith(`--- `)){r=br(t.slice(4));continue}if(t.startsWith(`+++ `)){i=br(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?p(t,e):e} ${n.join(`, `)}`).join(`; `)}function Sr(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 Cr(e){if(e.tokenUsageByThread.size===0)return null;let t={input:0,cachedInput:0,output:0,total:0};for(let n of e.tokenUsageByThread.values())t.input+=n.input,t.cachedInput+=n.cachedInput,t.output+=n.output,t.total+=n.total;return t}function wr(e){return String(e??``).replace(/\s+/g,` `).trim()}function X(e){if(!e)return[];if(typeof e==`string`){let t=wr(e);return t?[t]:[]}if(Array.isArray(e))return e.flatMap(e=>X(e));if(typeof e==`object`){let t=e;if(typeof t.text==`string`)return X(t.text);if(`summary`in t)return X(t.summary);if(`content`in t)return X(t.content);if(`parts`in t)return X(t.parts)}return[]}function Tr(e,t){let n=[];for(let r of[...e,...t]){let e=wr(r);!e||n.includes(e)||n.push(e)}return n}function Z(e,t,n=null,r={}){!e||t==null||e({message:t,phase:n,...r})}function Er(e,t){t&&Z(e,t.message,t.phase??null,t.extra??{})}function Dr(e){return e.replace(/^\/(?:usr\/)?bin\/\w*sh\s+-l?c\s+/,``)}function Or(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 kr(e,t){switch(e.type){case`commandExecution`:return{message:Dr(String(e.command??``).trim()),phase:`running`,extra:{kind:`tool`,tool:`command`}};case`fileChange`:return null;case`mcpToolCall`:return{message:`${e.server}/${e.tool}`,phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`dynamicToolCall`:return{message:String(e.tool??``),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`webSearch`:return{message:`search: ${String(e.query??``).trim()}`,phase:`investigating`,extra:{kind:`tool`,tool:`search`}};default:return null}}function Ar(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=X(e.summary).join(`
9
- `);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(),...t===null?{isError:e.status!==`completed`}:{exitCode:t}}}}case`fileChange`:return{message:yr(e,!0,t)||`(details unavailable)`,phase:`editing`,extra:{kind:`tool`,tool:`edit`}};case`mcpToolCall`:return{message:`${e.server}/${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,isError:e.status!==`completed`}};case`dynamicToolCall`:return{message:`${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,isError:e.status!==`completed`}};default:return null}}function jr(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:[],error:null,fileChanges:[],commandExecutions:[],tokenUsageByThread:new Map,lastDiffSummary:``,loggedTokens:0,reportedChanges:new Set,cwd:t.cwd??``,itemIndex:new Map,onProgress:t.onProgress??null,onHeartbeat:t.onHeartbeat??null}}function Mr(e){e.completionTimer&&=(clearTimeout(e.completionTimer),null)}function Nr(e,t=null){e.completed||(Mr(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 Pr(e){e.completed||e.finalTurn||!e.finalAnswerSeen||e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||(Mr(e),e.completionTimer=setTimeout(()=>{e.completionTimer=null,!(e.completed||e.finalTurn||!e.finalAnswerSeen)&&(e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||Nr(e,null))},250),e.completionTimer.unref?.())}function Fr(e,t){let n=pr(t);if(!n||!e.threadIds.has(n))return!1;let r=e.threadTurnIds.get(n)??null,i=mr(t);return r===null||i===null||i===r}function Ir(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),Pr(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,Pr(e)));return}if(t.type===`reasoning`&&n===`completed`){e.reasoningSummary=Tr(e.reasoningSummary,X(t.summary));return}if(t.type===`fileChange`&&n===`completed`){e.fileChanges.push(t);return}t.type===`commandExecution`&&n===`completed`&&e.commandExecutions.push(t)}function Lr(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),Z(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`:Ir(e,t.params.item,`started`,t.params.threadId??null),Er(e.onProgress,Or(kr(t.params.item,e.cwd),t.params.item));break;case`item/completed`:{Ir(e,t.params.item,`completed`,t.params.threadId??null);let n=t.params.item;if(n?.type===`fileChange`)for(let t of n.changes??[])t.path&&e.reportedChanges.add(p(e.cwd,t.path));Er(e.onProgress,Or(Ar(n,e.cwd),n));break}case`thread/tokenUsage/updated`:{let n=Sr(t.params?.tokenUsage?.total??t.params?.tokenUsage),r=pr(t);if(n&&r){e.tokenUsageByThread.set(r,n);let t=Cr(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=xr(String(t.params?.diff??``),e.cwd).split(`; `).filter(t=>!e.reportedChanges.has(t.split(` `)[0]??``)).join(`; `);n&&n!==e.lastDiffSummary&&(e.lastDiffSummary=n,Z(e.onProgress,`changed: ${n}`,`editing`,{kind:`status`}));break}case`item/autoApprovalReview/completed`:{let n=t.params?.review??{},r=t.params?.action??{},i=Dr(String(r.command??r.type??``).trim());Z(e.onProgress,`Auto-review ${n.status}. ${dr(i,48)}${n.rationale?`. ${dr(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,Z(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),Pr(e);break}Z(e.onProgress,`Turn ${t.params.turn.status}.`,`finalizing`,{kind:`status`}),Nr(e,t.params.turn)}}async function Rr(e,t,n,r={}){let i=jr(t,r),a=e.notificationHandler;e.setNotificationHandler(e=>{if(!i.turnId){i.bufferedNotifications.push(e);return}if(e.method===`thread/started`){Lr(i,e);return}if(!Fr(i,e)){a?.(e);return}Lr(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)Fr(i,e)?Lr(i,e):a?.(e);i.bufferedNotifications.length=0,t.turn?.status&&t.turn.status!==`inProgress`&&Nr(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{Mr(i),e.setNotificationHandler(a??null),e.setServerRequestHandler(null)}}function zr(e,t,n=[]){return e!==`workspace-write`||!n.length?null:{type:`workspaceWrite`,writableRoots:n,networkAccess:t??!1}}const Br=`coder_read_only`;function Vr(e,t=[]){return(e??`read-only`)!==`read-only`||!t.length?null:{default_permissions:Br,[`permissions.${Br}`]:{extends:`:read-only`,filesystem:Object.fromEntries(t.map(e=>[e,`write`]))}}}function Hr(e=[],t=[],n=!1){let r={};!n&&t.length&&(r.mcp_servers=Object.fromEntries(t.map(e=>[e,{enabled:!1}])));let 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[`mcp_servers.${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}:{}}}return r}function Ur(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(`
10
- `)}async function Wr(e,t,n={}){let r=n.connect??E.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 Q(t){let n=process.env.CODEX_AUTH_JSON;if(n){let t=e.join(u.homedir(),`.codex`),r=e.join(t,`auth.json`);if(!i.existsSync(r)){i.mkdirSync(t,{recursive:!0,mode:448});try{i.writeFileSync(r,n,{encoding:`utf8`,flag:`wx`,mode:384})}catch(e){if(e.code!==`EEXIST`)throw e}}}let r=ge(`codex`,[`--version`],{cwd:t});if(!r.available)return r;let a=ge(`codex`,[`app-server`,`--help`],{cwd:t});return a.available?{available:!0,detail:`${r.detail}; app-server runtime available`}:{available:!1,detail:`${r.detail}; app-server runtime unavailable: ${a.detail}`}}async function Gr(e){let t=Q(e);if(!t.available)return{available:!1,loggedIn:!1,detail:t.detail};let n=null;try{n=await E.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=s(`codex`,[`login`,`status`],{encoding:`utf8`}),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 Kr(e,{endpoint:t,threadId:n,turnId:r}){if(!n||!r)return{interrupted:!1,detail:`missing threadId or turnId`};let i=await lr(t,`turn/interrupt`,{threadId:n,turnId:r});return i.ok?{interrupted:!0,detail:`Interrupted ${r} on ${n}.`}:{interrupted:!1,detail:i.detail}}async function qr(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 lr(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 Jr(e,t={},n={}){let r=Q(e);if(!r.available)throw Error(`Codex CLI is not available: ${r.detail}`);let i=t.prompt?.trim();if(!i)throw Error(`A prompt is required.`);let a=Vr(t.sandbox,t.writableRoots),o=a?{}:{sandbox:t.sandbox??`read-only`},s={...t.configOverrides??{},...a},c=Object.keys(s).length?s:null,l=zr(t.sandbox,t.networkAccess,t.writableRoots),u=async n=>{let r=null,a,s=await n.request(`config/read`,{cwd:e,includeLayers:!1}),u={...c,...Hr(t.mcpServers,Object.keys(s.config?.mcp_servers??{}),t.nativeMcp),...t.nativeMcp?{}:{"features.apps":!1,"features.plugins":!1}};if(t.resumeThreadId)Z(t.onProgress,`Resuming thread ${t.resumeThreadId}.`,`starting`,{kind:`status`}),Le(t.resumeThreadId)&&await Re(t.resumeThreadId),a=(await n.request(`thread/resume`,{threadId:t.resumeThreadId,cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:u,approvalPolicy:t.approvalPolicy??`never`,...o,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{}})).thread.id;else if(Z(t.onProgress,`Starting Codex task thread.`,`starting`,{kind:`status`}),a=(await n.request(`thread/start`,{cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:u,approvalPolicy:t.approvalPolicy??`never`,...o,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{},serviceName:`coder_runtime`,ephemeral:t.ephemeral??!1})).thread.id,!(t.ephemeral??!1))try{await n.request(`thread/name/set`,{threadId:a,name:fr(i)})}catch(e){let t=String(e?.message??e??``);if(!t.includes(`unknown variant`)&&!t.includes(`unknown method`))throw e}Z(t.onProgress,`Thread ready (${a}).`,`starting`,{kind:`status`,threadId:a});let d;try{d=await Rr(n,a,()=>n.request(`turn/start`,{threadId:a,input:[{type:`text`,text:i,text_elements:[]}],model:t.model??null,effort:t.effort??null,outputSchema:t.outputSchema??null,...l?{sandboxPolicy:l}:{}}),{cwd:e,onProgress:t.onProgress,onHeartbeat:t.onHeartbeat,onApprovalRequest:t.onApprovalRequest,onTurnStarted:t.onControlReady?async e=>{r=await sr(n,{threadId:a,turnId:e}),t.onControlReady?.(r.endpoint,a,e)}:void 0}),t.onResult?.({status:d.finalTurn?.status===`completed`?0:1,threadId:a,turnId:d.turnId,finalMessage:d.lastAgentMessage,error:d.error??null})}finally{await r?.close()}return{status:d.finalTurn?.status===`completed`?0:1,threadId:a,turnId:d.turnId,finalMessage:d.lastAgentMessage,reasoningSummary:d.reasoningSummary,turn:d.finalTurn,error:d.error??d.finalTurn?.error??null,stderr:Ur(n.stderr),fileChanges:d.fileChanges,touchedFiles:hr(d.fileChanges),tokens:Cr(d),model:t.model??null,commandExecutions:d.commandExecutions}},d=async e=>{e.setNoticeHandler?.(e=>Z(t.onProgress,e,`starting`,{kind:`status`}));try{let t=await u(e);return Un(t.error?.message)&&await Yr(e),t}catch(t){throw Un(Hn(t))&&await Yr(e),t}},f=()=>Wr(e,d,{...n,networkAccess:t.networkAccess,nativeMcp:t.nativeMcp}),p=!1,m=()=>(p=!0,Z(t.onProgress,`Codex login changed; restarted the Codex app-server and retrying the turn once.`,`starting`,{kind:`status`}),f());try{let e=await f().catch(e=>{if(!Un(Hn(e)))throw e;return m()}),n=!e.touchedFiles?.length&&!e.commandExecutions.length;!p&&n&&Un(e.error?.message)&&(e=await m());let r=Gn(e.error?.message,t.model);return r?{...e,error:{...e.error,message:r}}:e}catch(e){let n=Gn(Hn(e),t.model);throw n?Error(n):e}}async function Yr(e){e.transport===`broker`&&await e.request(we,{}).catch(()=>{})}const Xr=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]);function Zr(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>typeof e?.text==`string`?e.text:``).join(``):e==null?``:JSON.stringify(e)}function Qr(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 $r(e,t,n=!1){if(!t)return[];let r;try{r=i.readFileSync(e,`utf8`)}catch{return[]}let a=[],o=0;for(;o<=r.length;){let e=r.indexOf(t,o);if(e<0)break;let i=Qr(r.slice(0,e))+1,s=Math.max(1,Qr(t));if(a.push(s===1?`L${i}`:`L${i}-L${i+s-1}`),!n)break;o=e+Math.max(t.length,1)}return a.length>4?[...a.slice(0,4),`+${a.length-4} matches`]:a}function ei(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 ti(t,n,r){let i=String(n.file_path??n.notebook_path??n.path??``),a=i?e.isAbsolute(i)?i:e.resolve(r,i):``,o=i?p(r,a)||i:`(unknown path)`,s=n.path?` in ${p(r,String(n.path))}`:``;if(t===`Write`){let e=Qr(String(n.content??``));return`Write ${o} ${e?`L1-L${e}`:`(empty file)`}`}if(t===`Edit`){let e=$r(a,String(n.old_string??``),n.replace_all===!0);return`Edit ${o}${e.length?` ${e.join(`, `)}`:``}`}if(t===`MultiEdit`){let e=Array.isArray(n.edits)?n.edits:[],t=e.flatMap(e=>$r(a,String(e?.old_string??``),e?.replace_all===!0));return`MultiEdit ${o}${t.length?` ${t.join(`, `)}`:``} (${e.length} edits)`}if(t===`NotebookEdit`){let e=n.cell_id??n.cell_number;return`NotebookEdit ${o}${e==null?``:` cell ${e}`}`}if(t===`Read`){let e=Number(n.offset??0),t=Number(n.limit??0);return`Read ${o}${e&&t?` L${e}-L${e+t-1}`:e?` from L${e}`:``}`}if(t===`Bash`)return`Bash ${String(n.command??``).trim()||`(no command)`}`;if(t===`Glob`)return`Glob ${String(n.pattern??``)}${s}`;if(t===`Grep`){let e=n.glob?` (${String(n.glob)})`:``;return`Grep ${String(n.pattern??``)}${s}${e}`}if(t===`Task`)return`Task ${n.subagent_type?`${String(n.subagent_type)}: `:``}${ei(n.description??n.prompt??``)}`;if(t===`WebFetch`)return`WebFetch ${String(n.url??``)}`;if(t===`WebSearch`)return`WebSearch ${String(n.query??``)}`;if(t===`TodoWrite`){let e=Array.isArray(n.todos)?n.todos:[];return`TodoWrite ${e.length} item${e.length===1?``:`s`}`}let c=Object.entries(n??{}).map(([e,t])=>`${e}=${ei(t)}`).join(` `);return c?`${t} ${c}`:t}function ni(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 ri(){let e=s(`claude`,[`--version`],{encoding:`utf8`});return e.error||e.status!==0?{available:!1,detail:`claude CLI not found on PATH (npm install -g @anthropic-ai/claude-code)`}:{available:!0,detail:String(e.stdout||``).trim()}}function ii(){if(t.env.CLAUDE_CODE_OAUTH_TOKEN)return{loggedIn:!0,detail:`CLAUDE_CODE_OAUTH_TOKEN configured`};if(t.env.ANTHROPIC_API_KEY)return{loggedIn:!0,detail:`ANTHROPIC_API_KEY configured`};let e=s(`claude`,[`auth`,`status`,`--json`],{encoding:`utf8`});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 ai(e,n){let r=n.permissions??`auto`,i=n.mcpServers??[],a={};r===`auto`&&n.approvalTaskId&&(a.coder={type:`stdio`,command:t.execPath,args:[C,`mcp`,`serve`,n.approvalTaskId,`--cwd`,e]});for(let e of i)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}:{}};return a}function oi(t,n,r,i){let a=[`-p`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--replay-user-messages`];a.push(n.resumeSessionId?`--resume`:`--session-id`,r),n.model&&a.push(`--model`,n.model),n.effort&&a.push(`--effort`,n.effort),n.outputSchema&&a.push(`--json-schema`,JSON.stringify(n.outputSchema));let o=n.permissions??`auto`,s=n.additionalDirectories??[],c=o===`read-only`?n.readOnlyAllowedTools??[]:[],l=n.mcpServers??[],u=ai(t,n),d=o===`auto`&&n.approvalTaskId,f=l.flatMap(e=>e.tools?.length?e.tools.map(t=>`mcp__${e.name}__${t}`):[`mcp__${e.name}`]),p=Object.keys(u).length?[`--mcp-config`,i??e.join(n.taskRoot??t,`.claude-mcp.json`)]:n.nativeMcp?[]:[`--mcp-config`,`{"mcpServers":{}}`];n.nativeMcp||a.push(`--strict-mcp-config`,`--no-chrome`),d?(a.push(`--permission-mode`,`default`,...p,`--permission-prompt-tool`,`mcp__coder__approval_prompt`),f.length&&a.push(`--allowedTools`,...f)):c.length?a.push(...It,...p,`--allowedTools`,...c,...f):(a.push(...Ft[o]??Ft.auto,...p),f.length&&a.push(`--allowedTools`,...f));let m=n.writableDirectories??[];for(let e of[...s,...o===`read-only`?[]:m])a.push(`--add-dir`,e);let h=Bt(o,t,n.allowedNetworkHosts??[],s,m),g={...h?JSON.parse(h):{},...n.nativeMcp?{}:{disableClaudeAiConnectors:!0}};return Object.keys(g).length&&a.push(`--settings`,JSON.stringify(g)),a}function si(e,t){return Object.assign(Error(e),{retryable:t})}function ci(e,t){let n=t&&Zn(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 li(e){let t=!0;return{sendInitial(t,n){return new Promise((r,i)=>{e(`${JSON.stringify(ci(t,n))}\n`,e=>{e?i(e):r()})})},sendSteer(n,r){return t?new Promise((t,i)=>{e(`${JSON.stringify(ci(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(si(`Failed to write Claude live steer: ${e.message}`,r))})}):Promise.reject(si(`Claude turn is no longer accepting live input.`,!0))},stopAccepting(){t=!1}}}function ui(e,n){let r=`${e}.${t.pid}.${l()}.tmp`;i.writeFileSync(r,`${JSON.stringify(n)}\n`,`utf8`),i.renameSync(r,e)}async function di(n){let r=i.mkdtempSync(e.join(u.tmpdir(),`coder-claude-steer-`)),a=`file:${r}`,o=new Set,s=new Set,c=!1,l=!1,d=(a=!1)=>{if(!(c&&!a||l)){l=!0;try{for(let a of i.readdirSync(r).filter(e=>e.endsWith(`.request.json`))){let c=a.slice(0,-13),l=e.join(r,a),u=e.join(r,`${c}.response.json`);if(i.existsSync(u)){i.unlinkSync(l);continue}if(s.has(c))continue;let d=`${l}.${t.pid}.processing`;try{i.renameSync(l,d)}catch{continue}s.add(c);let f=(async()=>{let e;try{let t=JSON.parse(i.readFileSync(d,`utf8`)),r=typeof t?.params?.text==`string`?t.params.text.trim():``;if(t?.method!==`turn/steer`||!r||t?.id!==c)e={id:c,error:{message:`Invalid Claude steer request.`,retryable:!1}};else try{await n(r,t.command),e={id:c,result:{accepted:!0}}}catch(t){let n=t;e={id:c,error:{message:n.message,retryable:n.retryable===!0}}}}catch(t){e={id:c,error:{message:`Invalid Claude steer JSON: ${t instanceof Error?t.message:String(t)}`,retryable:!1}}}try{ui(u,e)}finally{s.delete(c);try{i.unlinkSync(d)}catch{}}})();o.add(f),f.then(()=>o.delete(f),()=>o.delete(f))}}catch{}finally{l=!1}}},f=setInterval(d,10);return{endpoint:a,async close(){c=!0,clearInterval(f),d(!0),await Promise.allSettled([...o]),await new Promise(e=>setTimeout(e,50)),i.rmSync(r,{recursive:!0,force:!0})}}}async function fi(t,n,r=3e3,a){if(!t)return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is not ready.`};let o=n.trim();if(!o)return{steered:!1,retryable:!1,detail:`empty follow-up`};if(!t.startsWith(`file:`)||t.length===5)return{steered:!1,retryable:!1,detail:`Unsupported Claude steer endpoint: ${t}`};let s=t.slice(5);if(!i.existsSync(s))return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is no longer available.`};let c=Zn(a),l=e.join(s,`${c}.request.json`),u=e.join(s,`${c}.response.json`);try{i.existsSync(u)||ui(l,{id:c,method:`turn/steer`,params:{text:o},command:a})}catch(e){return{steered:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let d=Date.now();for(;Date.now()-d<r;){try{let e=JSON.parse(i.readFileSync(u,`utf8`));try{(!a||e?.error?.retryable)&&i.unlinkSync(u)}catch{}return e?.result?.accepted===!0?{steered:!0,retryable:!1,detail:`Claude accepted the live follow-up.`}:{steered:!1,retryable:e?.error?.retryable===!0,detail:String(e?.error?.message??`Malformed Claude steer response.`)}}catch(e){if(e.code!==`ENOENT`)return{steered:!1,retryable:!1,detail:`Invalid Claude steer response: ${e instanceof Error?e.message:String(e)}`}}await new Promise(e=>setTimeout(e,10))}return{steered:!1,retryable:!1,detail:`Timed out waiting for Claude live steer acknowledgement.`}}async function pi(n,r){let a=r.resumeSessionId??l(),s=ai(n,r),c=Object.keys(s).length?e.join(r.taskRoot??n,`.claude-mcp-${l()}.json`):void 0;c&&(i.mkdirSync(e.dirname(c),{recursive:!0}),i.writeFileSync(c,`${JSON.stringify({mcpServers:s})}\n`,{encoding:`utf8`,flag:`wx`,mode:384}));let u=oi(n,r,a,c),d=()=>{if(c)try{i.unlinkSync(c)}catch{}};return r.onProgress?.({kind:`status`,message:`claude turn started (session ${a})`,threadId:a}),new Promise((s,c)=>{let l=o(r.executable??`claude`,u,{cwd:n,stdio:[`pipe`,`pipe`,`pipe`],...r.env?{env:{...t.env,...r.env}}:{}}),f=``,p=``,m=[],h=null,g=a,_=null,v=!1,y=li((e,t)=>l.stdin.write(e,t)),b=Date.now(),x=new Map,ee=0,S=0,C=new Set,w=t=>{if(!(!t||typeof t!=`object`)){if(d(),r.onHeartbeat?.(),t.type===`system`&&t.subtype===`init`&&t.session_id)g=t.session_id;else if(t.type===`assistant`){let i=ni(t.message?.usage);if(i){ee+=i.output;let e=i.input+i.cachedInput+ee;(!S||e-S>=1e3)&&(S=e,r.onProgress?.({kind:`usage`,tokens:{...i,output:ee,total:e},threadId:g}))}for(let i of t.message?.content??[])if(i?.type===`tool_use`){let t=String(i.name??`Tool`);if(i.id&&x.set(String(i.id),{name:t,at:Date.now()}),Xr.has(t)){let t=String(i.input?.file_path??i.input?.notebook_path??``);t&&C.add(e.isAbsolute(t)?t:e.resolve(n,t))}r.onProgress?.({kind:`tool`,tool:t,...i.id?{callId:String(i.id)}:{},message:ti(t,i.input??{},n),threadId:g})}else i?.type===`text`&&typeof i.text==`string`&&i.text.trim()?r.onProgress?.({kind:`assistant`,message:i.text.trim(),threadId:g}):i?.type===`thinking`&&typeof i.thinking==`string`&&i.thinking.trim()&&r.onProgress?.({kind:`reasoning`,message:i.thinking.trim(),durationMs:Math.max(1e3,Date.now()-b),threadId:g})}else if(t.type===`user`){for(let e of t.message?.content??[])if(e?.type===`tool_result`){let t=Zr(e.content).trim(),n=e.is_error===!0,i=e.tool_use_id?x.get(String(e.tool_use_id)):void 0;if(e.tool_use_id&&x.delete(String(e.tool_use_id)),!t&&!n&&!i)continue;r.onProgress?.({kind:`tool-result`,...e.tool_use_id?{callId:String(e.tool_use_id)}:{},...i?{tool:i.name,durationMs:Date.now()-i.at}:{},...n?{isError:!0}:{},message:t||(n?`(tool failed with no output)`:``),threadId:g})}}else t.type===`result`&&(h=t,r.onResult?.({status:+!!t.is_error,threadId:t.session_id??g,finalMessage:t.structured_output===void 0?String(t.result??``).trim():JSON.stringify(t.structured_output),error:t.is_error?{message:String(t.result??``)}:null}),t.session_id&&(g=t.session_id),y.stopAccepting(),l.stdin.end());b=Date.now()}};l.stdout.on(`data`,e=>{f+=e;let t;for(;(t=f.indexOf(`
11
- `))>=0;){let e=f.slice(0,t).trim();if(f=f.slice(t+1),e)try{w(JSON.parse(e))}catch(e){m.push(`Invalid Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}}}),l.stderr.on(`data`,e=>{p+=e});let T=()=>{y.stopAccepting(),l.kill(`SIGTERM`),d();let e=_?.endpoint;e?.startsWith(`file:`)&&i.rmSync(e.slice(5),{recursive:!0,force:!0}),t.exit(143)};t.on(`SIGTERM`,T),(async()=>{r.onSteerReady&&(_=await di((e,t)=>y.sendSteer(e,t))),await y.sendInitial(r.prompt,r.command),_&&r.onSteerReady?.(_.endpoint)})().catch(e=>{v||(v=!0,y.stopAccepting(),l.kill(`SIGTERM`),d(),t.removeListener(`SIGTERM`,T),_?.close(),c(e))}),l.on(`error`,e=>{v||(v=!0,y.stopAccepting(),t.removeListener(`SIGTERM`,T),d(),_?.close(),c(Error(`claude spawn failed: ${e.message}`)))}),l.on(`close`,async e=>{if(v)return;v=!0,y.stopAccepting(),t.removeListener(`SIGTERM`,T),d(),await _?.close();let n=f.trim();if(n)try{w(JSON.parse(n))}catch(e){m.push(`Invalid trailing Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}let i=h?.structured_output===void 0?(h?.result??``).trim():JSON.stringify(h.structured_output),a=e!==0||h?.is_error===!0||h==null||m.length>0;s({status:+!!a,threadId:h?.session_id??g,turnId:null,finalMessage:i,touchedFiles:[...C],tokens:ni(h?.usage),model:h?.modelUsage&&Object.keys(h.modelUsage).join(`+`)||r.model||null,error:a?{message:m[0]||i||p.trim()||`claude exited ${e}`}:null})})})}const $=`@wular/coder`,mi=`https://registry.npmjs.org/${$}/latest`;function hi(){return A(`update-check.json`)}function gi(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 _i(){try{return JSON.parse(i.readFileSync(hi(),`utf8`))}catch{return null}}function vi(e){try{i.mkdirSync(A(),{recursive:!0}),i.writeFileSync(hi(),JSON.stringify(e))}catch{}}function yi(){try{i.rmSync(hi(),{force:!0})}catch{}}function bi(e,n){if(t.env.CODER_NO_UPDATE_CHECK||t.env.CI)return;let r=_i();if(!r?.checkedAt||Date.now()-r.checkedAt>864e5)try{o(t.execPath,[n,`upgrade`,`refresh`],{detached:!0,stdio:`ignore`}).unref()}catch{}return r?.latest&&gi(r.latest,e)>0?r.latest:void 0}async function xi(e){let t=_i()?.latest??null;try{let e=new AbortController,n=setTimeout(()=>e.abort(),3e3),r=await fetch(mi,{signal:e.signal,headers:{accept:`application/json`}});if(clearTimeout(n),r.ok){let e=await r.json();e?.version&&(t=e.version)}}catch{}vi({checkedAt:Date.now(),latest:t,current:e})}function Si(e){let t=e;try{t=i.realpathSync(e)}catch{}let n=t.replace(/\\/g,`/`);return/\/\.bun\//.test(n)?{pm:`bun`,command:[`bun`,`add`,`-g`,`${$}@latest`]}:/\/\.pnpm\//.test(n)||/\/pnpm(-global)?\//i.test(n)||/\/Library\/pnpm\//.test(n)?{pm:`pnpm`,command:[`pnpm`,`add`,`-g`,`${$}@latest`]}:/\/\.config\/yarn\/global\//.test(n)||/\/yarn\/global\//.test(n)||/\/Yarn\/Data\/global\//.test(n)?{pm:`yarn`,command:[`yarn`,`global`,`add`,`${$}@latest`]}:{pm:`npm`,command:[`npm`,`install`,`-g`,`${$}@latest`]}}function Ci(e){s(`claude`,[`plugin`,`marketplace`,`remove`,`coder-plugins`],{encoding:`utf8`});let t=s(`claude`,[`plugin`,`marketplace`,`add`,e],{encoding:`utf8`}),n=s(`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 wi(){return e.join(u.homedir(),`.agents`,`skills`,`coder`)}function Ti(){try{let t=i.readFileSync(e.join(wi(),`SKILL.md`),`utf8`);return/^\s*version:\s*(\S+)/m.exec(t)?.[1]??null}catch{return null}}function Ei(t){let n=wi();try{let r=e.join(t,`plugins`,`agents`,`skills`,`coder`);i.rmSync(n,{recursive:!0,force:!0}),i.mkdirSync(n,{recursive:!0}),i.cpSync(r,n,{recursive:!0});let a=e.join(n,`SKILL.md`),o=i.readFileSync(a,`utf8`).replace(`
12
- ---
13
- `,`\nmetadata:\n version: ${w()}\n---\n`);return i.writeFileSync(a,o),{marketplace:n,installed:!0,note:`Skill installed to ~/.agents/skills/coder; restart running sessions to load it.`}}catch(e){return{marketplace:n,installed:!1,note:`Skill install failed: ${e instanceof Error?e.message:String(e)}`}}}function Di(e){if(e.available)return null;let t=s(`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 Oi={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 ki(e){let t=/(\d+\.\d+\.\d+)/.exec(String(e??``));return t?t[1]:null}function Ai(e,t,n){let r=t?Oi[e][t]:void 0,i=ki(n.detail);return!r||!i||gi(i,r)>=0?null:`${e} ${i} predates ${t} (needs ${r}), so it may fail or run another model. Run: ${e} update`}function ji(e){if(!e.available)return null;let t=ki(e.detail);if(!t||gi(t,`0.159.1`)>=0)return null;let n=s(`codex`,[`update`],{encoding:`utf8`});return n.status!==0&&(n=s(`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 Mi(e,t={},r){let a=t.hosts??[],o=a.find(e=>![`claude`,`codex`,`agents`].includes(e));if(o)throw new B(`invalid-option`,`Unknown host "${o}". Use claude, codex, or agents.`,{hint:`Codex, Pi, OpenCode, and other Agent Skills hosts: coder setup-host agents`});let s=e=>t[e]||a.includes(e);r?.();let c=Q(e),l=ji(c);l?.updated&&(c=Q(e));let u=c.available?await Gr(e):{loggedIn:!1,detail:c.detail},d=ri(),f=d.available?ii():{loggedIn:!1,detail:d.detail},p=K();if(!i.existsSync(p)){let e=c.available?[`codex`,`claude`]:d.available?[`claude`,`codex`]:[`codex`,`claude`];Dn({...V,chain:e})}let m=te(),h=s(`claude`)?Ci(m):null,g=s(`agents`)||s(`codex`)?Ei(m):null,_=J(e),v=c.available&&u.loggedIn||d.available&&f.loggedIn;return{codex:{available:c.available,detail:c.detail,auth:u.detail,loggedIn:u.loggedIn},...l?{codexUpdate:l}:{},claude:{available:d.available,detail:d.detail,auth:f.detail,loggedIn:f.loggedIn},configFile:p,runtime:n(new URL(`../bin/coder.mjs`,import.meta.url)),...h?{claudePlugin:h}:{},...g?{agentsSkill:g}:{},config:_,ready:v}}async function Ni(t={},n){let r=!t.pluginsOnly,a=!t.cliOnly,o=te(),c=e.join(o,`plugins/claude/.claude-plugin/plugin.json`),l={cli:w(),claude:T(c)},u={};if(r){let e=Si(C),[r,...i]=t.pm===`npm`?[`npm`,`install`,`-g`,`@wular/coder@latest`]:t.pm===`pnpm`?[`pnpm`,`add`,`-g`,`@wular/coder@latest`]:t.pm===`yarn`?[`yarn`,`global`,`add`,`@wular/coder@latest`]:t.pm===`bun`?[`bun`,`add`,`-g`,`@wular/coder@latest`]:e.command,a=t.pm??e.pm;n?.(`via ${a}`);let o=s(r,i,{encoding:`utf8`});if(o.error?.code===`ENOENT`)throw new B(`invalid-option`,`${a} not found on PATH. Re-run with --pm <npm|pnpm|yarn|bun>, or update manually: ${r} ${i.join(` `)}`);if(o.status!==0){let e=(o.stderr||o.stdout||``).trim();throw new B(`invalid-option`,`CLI update failed (${a}).${e?`\n${e}`:``}\nRun manually: ${r} ${i.join(` `)}`)}yi();let c=w();u.cli={pm:a,from:l.cli,to:c,changed:c!==l.cli}}if(a){if(t.claude||!t.codex&&ri().available){let e=Ci(o);u.claudePlugin={installed:e.installed,note:e.note,from:l.claude,to:T(c)}}if(i.existsSync(wi())){let e=Ti(),t=Ei(o);u.agentsSkill={installed:t.installed,note:t.note,from:e,to:Ti()}}}return u}const Pi=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(`.`)),Fi=[/\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)/],Ii=new Set([`status`,`log`,`diff`,`show`,`blame`,`rev-parse`,`ls-files`,`ls-tree`,`cat-file`,`describe`,`shortlog`,`grep`,`branch`,`stash`]);function Li(e){return e.match(/^\s*(?:ba|z|da)?sh\s+(?:-[a-zA-Z]+\s+)*(?:-c\s+)?(["'])([\s\S]*)\1\s*$/)?.[2]??e}function Ri(e){return e.trim().split(/\s+/).filter(Boolean)}function zi(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 Ii.has(t)?{decision:`accept`,reason:`git ${t} is read-only`}:Pi.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 Bi(t,n={}){let r=Li(String(t??``));if(!r.trim())return{decision:`escalate`,reason:`empty command`};for(let e of Fi)if(e.test(r))return{decision:`decline`,reason:`matches hard-deny pattern ${e}`};if(/\$\(|`|<\(/.test(r))return{decision:`escalate`,reason:`contains command substitution`};let i=r.split(/&&|\|\||;|\||\r?\n/).map(e=>e.trim()).filter(Boolean);if(i.length>1){let e={decision:`accept`,reason:`all segments safe`};for(let t of i){let r=Bi(t,n);if(r.decision===`decline`)return r;r.decision===`escalate`&&(e=r)}return e}let a=Ri(r),o=e.basename(a[0]??``);if(o===`git`)return zi(a);let s=n.networkHost;return s?(n.allowedNetworkHosts??[]).some(e=>s===e||s.endsWith(`.${e}`))?{decision:`accept`,reason:`network host ${s} is allowlisted`}:{decision:`escalate`,reason:`network access to ${s}`}:{decision:`escalate`,reason:`command needs approval: ${o||`(unknown)`}`}}function Vi(t,n){if(!t.length)return{decision:`escalate`,reason:`file change with no resolvable paths`};for(let r of t){let t=e.resolve(n,r),i=e.relative(n,t);if(i.startsWith(`..`)||e.isAbsolute(i))return{decision:`escalate`,reason:`path outside workspace: ${r}`};if(i===`.git`||i.startsWith(`.git${e.sep}`))return{decision:`decline`,reason:`direct .git modification: ${r}`}}return{decision:`accept`,reason:`all paths inside workspace`}}function Hi(t){return e.join(t,`approvals`)}function Ui(t){let n=Hi(t);return i.existsSync(n)?i.readdirSync(n).filter(e=>e.endsWith(`.request.json`)).flatMap(t=>{let r=t.replace(/\.request\.json$/,``),i=m(e.join(n,t));if(!i)return[];let a=m(e.join(n,`${r}.response.json`));return[{...i,id:r,response:a}]}).sort((e,t)=>String(e.createdAt??``).localeCompare(String(t.createdAt??``))):[]}function Wi(t,n,r){let a=Hi(t),o=e.join(a,`${n}.request.json`);if(!i.existsSync(o))throw Error(`No pending approval "${n}" for this task.`);i.writeFileSync(e.join(a,`${n}.response.json`),`${JSON.stringify({decision:r,answeredAt:new Date().toISOString()},null,2)}\n`,`utf8`)}async function Gi(t,n,{timeoutMs:r,onEvent:a}){let o=Hi(t);i.mkdirSync(o,{recursive:!0});let s=`apr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`;i.writeFileSync(e.join(o,`${s}.request.json`),`${JSON.stringify({...n,createdAt:new Date().toISOString()},null,2)}\n`,`utf8`),a?.({kind:`approval-escalated`,approvalId:s,summary:n.summary,message:`Approval needed (${s}): ${n.summary}. Answer with: coder task approve ${e.basename(t)} ${s} [--deny]`});let c=e.join(o,`${s}.response.json`),l=Date.now()+r;for(;Date.now()<l;){if(i.existsSync(c))try{let e=JSON.parse(i.readFileSync(c,`utf8`)).decision===`accept`?`accept`:`decline`;return a?.({kind:`approval-answered`,approvalId:s,decision:e}),e}catch{}await new Promise(e=>setTimeout(e,400))}return a?.({kind:`approval-timeout`,approvalId:s,message:`Approval ${s} timed out; declining.`}),`decline`}function Ki(e,t={}){return Gi(e,{method:`simulate`,summary:`simulated approval probe (--simulate-approval)`},{timeoutMs:t.timeoutMs??12e4,onEvent:t.onEvent??null})}function qi({workspaceRoot:e,taskDir:t,mode:n=`auto`,escalationTimeoutMs:r=12e4,allowedNetworkHosts:i=[],onEvent:a=null}){return async(o,s,c)=>{if(o===`item/commandExecution/requestApproval`){let l=c?.itemIndex?.get(s.itemId??``),u=s.command??l?.command??``,d=s.cwd??l?.cwd??e,f=`Run command. ${u||`Unknown command`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:f}),{decision:`decline`};let p=Bi(u,{networkHost:s.networkApprovalContext?.host??null,allowedNetworkHosts:i});return a?.({kind:`approval-decision`,method:o,decision:p.decision,reason:p.reason,summary:f}),p.decision===`escalate`?{decision:await Gi(t,{method:o,summary:f,command:u,cwd:d,params:s},{timeoutMs:r,onEvent:a})}:{decision:p.decision}}if(o===`item/fileChange/requestApproval`){let i=(c?.itemIndex?.get(s.itemId??``)?.changes??[]).map(e=>e.path).filter(e=>!!e),l=`Apply file changes. ${i.join(`, `)||`Unknown paths`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:l}),{decision:`decline`};let u=Vi(i,e);return a?.({kind:`approval-decision`,method:o,decision:u.decision,reason:u.reason,summary:l}),u.decision===`escalate`?{decision:await Gi(t,{method:o,summary:l,paths:i,params:s},{timeoutMs:r,onEvent:a})}:{decision:u.decision}}throw a?.({kind:`approval-unsupported`,method:o}),Error(`Coder does not handle server request ${o}; treating as denied.`)}}const Ji=/usage|quota|rate.?limit|429|401|unauthorized|not authenticated|login|insufficient|exhausted|not available|ENOENT/i;function Yi(e){return Ji.test(e)&&!Wn(e)}var Xi=class extends Error{engine;detail;constructor(e,t){super(t),this.engine=e,this.detail=t}};function Zi(e,t){let n=e.engine,r=!!n,i=e.model,a=e.effort,o=e=>{let n=e?t.models?.[e]:void 0;return n&&on(n)?n:void 0},s=e=>{let n=e?t.models?.[e]:void 0;return n&&W(n)?n:void 0};if(o(i)){let e;try{e=En(i,t)}catch(e){throw new B(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),i=e.model??void 0,a=a??e.effort??void 0)}if(!n&&i&&(i in U?n=`claude`:i in H?n=`codex`:s(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 U||n in(t.models??{})?` "${n}" is a model; use --model ${n}.`:``;throw new B(`invalid-option`,`Invalid --engine "${n}". Use codex, claude, or custom.${e}`)}let c=t.engines[n]??{},l=i??c.model??null,u=a??c.effort??null;if(o(l)){let e;try{e=En(l,t)}catch(e){throw new B(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),l=e.model,u=a??e.effort??u)}let d=e.permissions??c.permissions??`auto`;try{Tn(t,l)}catch(e){throw new B(`invalid-option`,e instanceof Error?e.message:String(e))}if(n===`custom`){let e=Object.entries(t.models??{}).filter(([,e])=>W(e)).map(([e])=>e);if(!l&&e.length===1&&(l=e[0]),!l||!s(l))throw new B(`invalid-option`,l?`No custom model named "${l}". 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 f=n===`claude`;if(!(d in Pt))throw new B(`invalid-option`,`Invalid --permissions "${d}". Use one of: ${Object.keys(Pt).join(`, `)}`);if(!f&&u&&!Mt.has(u))throw new B(`invalid-option`,`Invalid codex --effort "${u}". Use one of: ${[...Mt].join(`, `)}`);if(f&&u&&!Nt.has(u))throw new B(`invalid-option`,`Invalid claude --effort "${u}". Use one of: ${[...Nt].join(`, `)}`);return{engine:n,model:l,effort:u,permissions:d}}const Qi=r.strictObject({name:r.string().check(r.minLength(1)),command:r.optional(r.string().check(r.minLength(1))),args:r.optional(r.array(r.string())),env:r.optional(r.record(r.string(),r.string())),url:r.optional(r.string().check(r.minLength(1))),type:r.optional(r.enum([`stdio`,`http`,`sse`])),headers:r.optional(r.record(r.string(),r.string())),tools:r.optional(r.array(r.string()))}).check(r.refine(e=>!!e.command!=!!e.url,`one of command or url`)),$i=r.array(Qi);function ea(e,t={}){let n=e.trim();return/^[\[{]/.test(n)?na(n):(n===`all`?Object.keys(t):n.split(`,`).map(e=>e.trim()).filter(Boolean)).map(e=>{let n=t[e];if(!n)throw new B(`invalid-option`,`Unknown MCP server "${e}".`,{hint:`configured: ${Object.keys(t).join(`, `)||`none`}; or pass a JSON array`});return{name:e,...n}})}function ta(e,t={},n={}){return typeof e==`string`&&!e.trim()&&(e=void 0),{mcp:typeof e==`string`?ea(e,{...t,...n}):e??Object.entries(n).map(([e,t])=>({name:e,...t})),nativeMcp:typeof e==`string`&&e.trim()===`all`}}function na(e){let t;try{t=JSON.parse(e)}catch(e){throw new B(`invalid-option`,`Invalid --mcp JSON: ${e instanceof Error?e.message:String(e)}`)}let n=$i.safeParse(t);if(!n.success)throw new B(`invalid-option`,`Invalid --mcp value: ${r.prettifyError(n.error)}`,{hint:`--mcp '[{"name":"docs","command":"npx","args":["-y","docs-mcp"],"tools":["search"]}]'`});return n.data}function ra(n,r=t.env,a){let o=e=>e.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g,(e,t,n)=>r[t]??n??``),s=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,o(t)]));return(n??[]).map(t=>{let n={...t,...t.command?{command:o(t.command)}:{},...t.args?{args:t.args.map(o)}:{},...t.url?{url:o(t.url)}:{},...t.env?{env:s(t.env)}:{},...t.headers?{headers:s(t.headers)}:{}};if(!a||!n.command)return n;let c=(n.command.includes(e.sep)?[e.resolve(a,n.command)]:(n.env?.PATH??r.PATH??`/usr/bin:/bin`).split(e.delimiter).map(t=>e.resolve(a,t,n.command))).find(e=>{try{return i.accessSync(e,i.constants.X_OK),i.statSync(e).isFile()}catch{return!1}});if(!c)throw new B(`invalid-option`,`MCP server "${t.name}" command cannot be resolved.`);return n.command=i.realpathSync(c),n.args=n.args?.map(t=>{if(t.startsWith(`-`)||e.isAbsolute(t))return t;let n=e.resolve(a,t),r=i.existsSync(n)&&i.statSync(n).isFile();return!r&&!t.startsWith(`./`)&&!t.startsWith(`../`)?t:r?i.realpathSync(n):n}),n})}function ia(t,n=[]){let r=[...new Set(n.map(n=>e.resolve(t,n)))];for(let e of r)if(!i.statSync(e,{throwIfNoEntry:!1})?.isDirectory())throw new B(`invalid-option`,`--add-dir ${e} is not a directory.`);return r}function aa(e,t){return e===`read-only`&&Lt.test(t??``)}const oa=[`read-only`,`workspace-write`,`auto`];function sa(e,t,n){if(!t)return n.permissions;if(oa.indexOf(t)>oa.indexOf(n.permissions))throw new B(`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 ca(n,r){let a=F(n,r),s=i.openSync(e.join(a,`worker.log`),`a`),c=o(t.execPath,[C,`task`,`worker`,r,`--cwd`,n],{cwd:n,detached:!0,stdio:[`ignore`,s,s],env:{...t.env,CODER_WORKER:`1`}});c.unref(),i.closeSync(s),I(n,r,{pid:c.pid??null})}async function la(t,n,r,i,a){let o=r.cwd,s=n.engine===`claude`?ri():Q(o),c=n.model?t.models?.[n.model]:void 0;if(!s.available&&c&&W(c)){let e=Di(s);r.onNote?.(e.note),s=Q(o)}if(!s.available)throw new Xi(n.engine,s.detail);let u=c?null:n.engine===`claude`?Ai(`claude`,n.model,s):Ai(`codex`,Sn(n.model),s);u&&r.onNote?.(u);let d=r.addDirs??[],f=r.taskId??rt(),p=I(o,f,{status:`queued`,...r.taskId?{dispatchId:l()}:{},kind:`task`,name:i.name??null,system:r.system??null,engine:n.engine,prompt:r.prompt,...r.outputSchema?{outputSchema:r.outputSchema}:{},model:n.model,effort:n.effort,permissions:n.permissions,resumeThreadId:null,cwd:o,background:!r.wait,...i.simulateApproval?{simulateApproval:!0}:{},...r.flowRunId?{flowRunId:r.flowRunId}:{},...r.agentId?{agentId:r.agentId}:{},...r.source?{source:r.source}:{},...r.author?{author:r.author}:{},...r.repo?{repo:r.repo}:{},...r.mcp?.length?{mcp:r.mcp}:{},nativeMcp:r.nativeMcp??!1,...d.length?{addDirs:d}:{}});if(ca(o,f),!a)return{taskId:f,task:L(o,f)??p,engine:n.engine,startupCheck:`pending`};let h=2**53-1,g=new Set([`status`,`usage`]),_=()=>z(o,f,h).filter(e=>{let{phase:t,kind:n}=e;return t!==`starting`&&!g.has(String(n??``))}).length,v=Date.now()+15e3,y=p,b=null,x=null;for(;Date.now()<(x??v)&&(y=L(o,f)??y,y.status!==`failed`&&y.status!==`completed`);){if(y.threadId&&b===null&&(b=_(),x=Date.now()+5e3),b!==null&&_()>b){y=L(o,f)??y;break}await new Promise(e=>setTimeout(e,150))}if(y.status===`failed`){let t=m(e.join(F(o,f),`result.json`))?.error?.message??``,r=z(o,f,5).map(e=>e.message??``).join(`
14
- `),i=t||r;throw aa(n.permissions,i)?new B(`read-only-unavailable`,i):Yi(i)?new Xi(n.engine,i):new B(`startup-failed`,i,{taskId:f})}return{taskId:f,task:y,engine:n.engine,startupCheck:y.threadId?`passed`:`pending`}}function ua(e,t,n,r,i){return{error:`${e} failed to start: ${t}`,fallback:{action:`run-native-subagent`,reason:`no-engine-available`,permissions:n,instructions:`Mention the engine failure to the user, including any limit reset time. If your harness has a native subagent facility, spawn one subagent with fallback.task verbatim, prefixed with: "NEVER run git write operations (commit, checkout, stash, reset, push, etc.); leave changes uncommitted." If fallback.permissions is "read-only", append: "Investigate and report without modifying anything." If it is "workspace-write", append: "Never touch anything outside the workspace." Relay its output when it completes. If your harness has no native subagent facility, report the failure and stop; do not implement the task yourself.`,note:`Every coder engine failed to start. Spawn your own native subagent and forward the task verbatim; tell it to never run git write operations (commit, checkout, stash, reset, push, ...) and to honor the permissions.`,...r?{system:r}:{},task:i}}}async function da(e,n={}){if(t.env.CODER_WORKER&&!n.fromMailbox)throw new B(`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 B(`invalid-option`,`outputSchema must be an object.`);if(!e.prompt.trim())throw new B(`invalid-option`,`Missing task text.`,{hint:[`Usage: coder run "<task text>"`,`Help: coder task run --help`]});e={...e,addDirs:ia(e.cwd,e.addDirs)};let r=J(e.cwd),i=ta(e.mcp,r.mcp),a={...e,mcp:i.mcp,nativeMcp:e.nativeMcp??i.nativeMcp},o={engine:e.engine,model:e.model,effort:e.effort,permissions:e.permissions},s={name:e.name,simulateApproval:e.simulateApproval};for(;;){let t=Zi(o,r);try{return await la(r,t,a,s,n.waitForStartup!==!1)}catch(n){if(!(n instanceof Xi))throw n;let i=r.chain[r.chain.indexOf(n.engine)+1];if(!i){let r=ua(n.engine,n.detail,t.permissions,e.system,e.prompt);throw new B(`chain-exhausted`,r.error,{payload:r})}e.onFallback?.({engine:n.engine,detail:n.detail,next:i}),o={engine:i,permissions:e.permissions},s={name:void 0,simulateApproval:void 0}}}}function fa(e,t){if(t.status!==`failed`)return;let n=t.result;if(!n||!Yi(n.error?.message??``)||!(!n.touchedFiles?.length&&!n.fileChanges?.length&&!n.commandExecutions?.length))return;let r=J(e).chain;return r[r.indexOf(t.task.engine)+1]}function pa(t,n){return m(e.join(F(t,n),`result.json`))}function ma(e,t,n=0){if(n===0)return[];let r=z(e,t,2**53-1);return n===`all`?r:Et(r,n)}function ha(e,t,n={}){let r=L(e,t);if(!r)throw Error(`No task found for "${t}".`);return{taskId:t,status:r.status,result:Be.includes(r.status)?null:pa(e,t),steps:ma(e,t,n.tail),turns:Tt(e,t),task:r}}async function ga(e,t,n={}){let r=L(e,t);if(!r)throw Error(`No task found for "${t}".`);let i=await _a(e,r);if(i.reason===`approval`){let e=i.approval;throw new B(`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:pa(e,t),steps:ma(e,t,n.tail),turns:Tt(e,t),task:a}}async function _a(e,t,n=400){let r=t;for(;;){if(D.includes(r.status))return{task:r,reason:`terminal`};let t=Ui(F(e,r.id)).filter(e=>!e.response);if(t[0]){let e=t[0].params;return{task:r,reason:`approval`,approval:{id:t[0].id,summary:String(t[0].summary??``),cwd:typeof t[0].cwd==`string`?t[0].cwd:null,networkHost:e?.networkApprovalContext?.host??null}}}await new Promise(e=>setTimeout(e,n)),r=R(e,L(e,r.id)??r)}}export{Cn as $,We as $t,Kr as A,m as An,Ct as At,Jn as B,pt as Bt,Mi as C,S as Cn,Ze as Ct,pi as D,v as Dn,Qe as Dt,xi as E,x as En,wt as Et,rr as F,Dt as Ft,Mt as G,mt as Gt,Nt as H,$e as Ht,tr as I,rt as It,hn as J,R as Jt,H as K,z as Kt,$n as L,O as Lt,qr as M,h as Mn,k as Mt,cr as N,St as Nt,fi as O,g as On,et as Ot,Yn as P,_t as Pt,on as Q,Ge as Qt,Zn as R,yt as Rt,Di as S,C as Sn,B as St,bi as T,te as Tn,Ot as Tt,U,st as Ut,Hn as V,L as Vt,It as W,ht as Wt,jn as X,P as Xt,An as Y,at as Yt,bn as Z,Ue as Zt,Bi as _,Se as _n,fn as _t,Yi as a,j as an,Rn as at,Ui as b,be as bn,jt as bt,ra as c,vt as cn,En as ct,ca as d,I as dn,Sn as dt,Je as en,W as et,fa as f,Be as fn,sn as ft,qi as g,xe as gn,G as gt,Wi as h,Ce as hn,q as ht,aa as i,qe as in,nn as it,Jr as j,p as jn,A as jt,Q as k,_ as kn,He as kt,Zi as l,nt as ln,vn as lt,ga as m,ze as mn,K as mt,sa as n,F as nn,In as nt,pa as o,Et as on,zn as ot,_a as p,D as pn,xn as pt,Pt as q,Tt as qt,da as r,Ke as rn,Ln as rt,ha as s,ut as sn,_n as st,ua as t,M as tn,J as tt,ta as u,bt as un,un as ut,Vi as v,we as vn,Mn as vt,Ni as w,w as wn,kt as wt,Ki as x,le as xn,At as xt,Gi as y,E as yn,Dn as yt,nr as z,gt as zt};
@@ -1,2 +0,0 @@
1
- import{St as e,Tn as t}from"./dispatch-YW1aqjEg.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)))}}let d=i.map(e=>({name:e.name,file:e.file,description:e.description}));return[...u,...d]}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=t(),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 e(`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 e(`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{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{St as t,bn as n}from"./dispatch-YW1aqjEg.js";import r from"node:path";import i from"node:process";import*as a from"zod/mini";import o from"node:os";var s=e({loadServerConfig:()=>g,requireBunServer:()=>v,rerunUnderBun:()=>y});const c=e=>a._default(a.coerce.number().check(a.int(),a.positive()),e),l=a.pipe(a.optional(a.string()),a.transform(e=>e===`1`)),u=(e,t)=>a.string().check(a.overwrite(e=>e.replace(/\/$/,``)),a.refine(e=>URL.canParse(e),{error:`must be a URL`,abort:!0}),a.refine(t=>e(new URL(t)),t)),d=e=>a.pipe(a.transform(e=>e||void 0),e),f=a.pipe(a.string(),a.transform((e,t)=>{try{let t=JSON.parse(e);if(t&&!Array.isArray(t)&&typeof t==`object`)return t}catch{}return t.issues.push({code:`custom`,message:`must be a JSON object`,input:e}),a.NEVER})),p=a.object({AUTH_WULAR_URL:a._default(u(e=>e.protocol===`https:`||e.hostname===`localhost`,`must use HTTPS unless it is localhost`),`https://auth.wular.ai`)}),m=a.object({SERVER_LIMITS:d(a.optional(a.pipe(f,a.strictObject({principalPerMinute:a.optional(a.number().check(a.int(),a.positive())),authPerMinute:a.optional(a.number().check(a.int(),a.positive())),registerPerMinute:a.optional(a.number().check(a.int(),a.positive())),ipPerMinute:a.optional(a.number().check(a.int(),a.positive())),pairingPerMinute:a.optional(a.number().check(a.int(),a.positive())),concurrentTasks:a.optional(a.number().check(a.int(),a.positive()))})))),RUNNER:a.optional(a.enum([`local`,`local-docker`,`vercel-sandbox`,`github-actions`,`http`])),RUNNER_CONFIG:d(a._default(f,{})),WORK_DIR:a.optional(a.string()),SERVER_ENCRYPTION_KEY:a.optional(a.string()),SERVER_ENCRYPTION_KEY_PREVIOUS:a.optional(a.string()),ADMIN_TOKEN:a.optional(a.string()),PUBLIC_URL:d(a.optional(u(e=>e.pathname===`/`&&!e.search&&!e.hash,`must be an origin, with no path, query or fragment`))),SERVER_NAME:a.optional(a.string().check(a.trim())),VERCEL_PROJECT_PRODUCTION_URL:a.optional(a.string()),VERCEL_URL:a.optional(a.string()),VERCEL:a.optional(a.string()),DATABASE_URL:a.optional(a.string()),POSTGRES_URL:a.optional(a.string()),DATABASE_POOL_MAX:a.optional(a.coerce.number().check(a.int(),a.positive())),DATABASE_IDLE_TIMEOUT:a.optional(a.coerce.number().check(a.int(),a.positive())),MAX_TASKS:a.optional(a.coerce.number().check(a.int(),a.positive())),MAX_QUEUED:c(1e3),TASK_STALL:c(3e5),TASK_ATTEMPTS:c(2),TASK_TIMEOUT:c(18e5),CLAUDE_SUBSCRIPTIONS:l,CODEX_SUBSCRIPTIONS:l,SERVER_INTEGRATIONS:d(a.optional(a.string()))});function h(e,n){let r=e.safeParse(n);if(r.success)return r.data;let i=r.error.issues[0];throw new t(`invalid-option`,`Invalid server configuration:${String(i.path[0])} ${i.message}`)}function g(e=i.env,n=`node`){let a=h(m,e),s=a.DATABASE_URL??a.POSTGRES_URL,c=s?`postgres`:`memory`;if(c===`postgres`&&!a.SERVER_ENCRYPTION_KEY)throw new t(`invalid-option`,`SERVER_ENCRYPTION_KEY is required with DATABASE_URL`);let l=n===`vercel`?a.VERCEL_PROJECT_PRODUCTION_URL??a.VERCEL_URL:void 0,u=a.PUBLIC_URL??(l?`https://${l}`:void 0),d=c===`postgres`?h(p,e).AUTH_WULAR_URL:void 0;return{runner:a.RUNNER??(n===`vercel`||a.VERCEL?`vercel-sandbox`:`local`),store:c,workDir:a.WORK_DIR??r.join(o.tmpdir(),`coder`),...a.SERVER_ENCRYPTION_KEY?{encryptionKey:a.SERVER_ENCRYPTION_KEY}:{},...a.SERVER_ENCRYPTION_KEY_PREVIOUS?{previousEncryptionKey:a.SERVER_ENCRYPTION_KEY_PREVIOUS}:{},...a.ADMIN_TOKEN?{adminToken:a.ADMIN_TOKEN}:{},...u?{publicUrl:u}:{},...a.SERVER_NAME?{name:a.SERVER_NAME}:{},...s?{databaseUrl:s,databasePool:{max:a.DATABASE_POOL_MAX??(n===`vercel`||a.VERCEL?2:10),idleTimeout:a.DATABASE_IDLE_TIMEOUT??(n===`vercel`||a.VERCEL?30:240)}}:{},runnerConfig:a.RUNNER_CONFIG,maxTasks:a.MAX_TASKS,limits:a.SERVER_LIMITS,maxQueued:a.MAX_QUEUED,taskTimeoutMs:a.TASK_TIMEOUT,taskStallMs:a.TASK_STALL,taskAttempts:a.TASK_ATTEMPTS,...a.CLAUDE_SUBSCRIPTIONS||a.CODEX_SUBSCRIPTIONS?{subscriptions:{claude:a.CLAUDE_SUBSCRIPTIONS,codex:a.CODEX_SUBSCRIPTIONS}}:{},...d?{auth:{wular:{url:d}}}:{},...a.SERVER_INTEGRATIONS?{integrations:a.SERVER_INTEGRATIONS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{}}}function _(){return new t(`invalid-option`,`The Coder server needs Bun; the CLI itself runs on Node.`,{hint:[i.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 v(){if(typeof Bun>`u`)throw _()}async function y(){if(typeof Bun<`u`)return;let e=i.platform===`win32`?[`bun.exe`,`bun.cmd`,`bun`]:[`bun`];for(let t of e){let e=await n(t);if(e.error?.code!==`ENOENT`&&e.error?.code!==`EINVAL`){if(e.error)throw e.error;if(e.signal){let t=o.constants.signals[e.signal];i.exit(typeof t==`number`?128+t:1)}i.exit(e.status??1)}}throw _()}export{g as n,v as r,s as t};
@@ -1,11 +0,0 @@
1
- import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{F as t,St as n,Vt as r,c as i,f as a,l as o,m as s,n as c,r as l,tt as u,u as d,z as f}from"./dispatch-YW1aqjEg.js";import{a as p,f as m,o as h}from"./load-DDZfByUe.js";import{t as g}from"./integrations-B2CavXR1.js";import{a as _}from"./discover-CaAtyC0h.js";import{c as v}from"./actions-CmfXOVXQ.js";import{n as y}from"./executor-HWnIIYUL.js";import{REVIEW_PLATFORM as b,postReview as x,resolveReviewTarget as S}from"./flow/builtin/review.js";import{a as C,i as w,n as T,r as E}from"./mcp-DgMoPoUo.js";import D from"node:path";import O from"node:process";import{readFileSync as k,readdirSync as A,realpathSync as j}from"node:fs";import M from"node:os";import N from"node:fs/promises";var P=e({AGENT_TASK_PREFIX:()=>F,agentInstructions:()=>q,agentSystemPrompt:()=>K,agentTaskOptions:()=>W,builtinArgs:()=>U,builtinTaskArgs:()=>V,defaultTask:()=>Q,execAgent:()=>z,postReply:()=>L,renderContext:()=>X,startAgentMailbox:()=>$,taskFromEvent:()=>I,waitForAgentTask:()=>B});const F=`agent:`;function I(e,t,n){let r=g[n.integration];return{id:`local-${n.deliveryId}-${e.id}`,source:n.integration,agent:e.id,flow:t,runner:`local`,event:n,definition:e.definition,...e.usage?{usage:e.usage}:{},tools:r?{[n.integration]:m(e,n.integration,r)}:{}}}async function L(e,t,n,r,i=e.id){if(!t.chat)throw Error(`The ${t.integration} event has no thread to reply in`);let[{Chat:a},{LocalChatState:o}]=await Promise.all([import(`chat`),import(`./chat-3Znsevah.js`).then(e=>e.r)]),s=await e.adapter({fetch,appId:t.appId.slice(e.id.length+1),name:i,installationId:t.installationId,token:async()=>r}),c=new a({userName:i,adapters:{[e.id]:s},state:new o,logger:`error`});await c.initialize();let l=c.thread(t.chat.thread.id);s.reply&&t.chat.message?.id?await l.reply(t.chat.message.id,n):await l.post(n)}function R(e,t){return Object.fromEntries(Object.keys(e.tools).map(n=>[n,t[w(n)]??(n===e.event?.integration?t.APP_TOKEN:void 0)]))}async function z(e){let{cwd:t,flow:n}=e,r=u(t),i=await p(t,g),a=e.task;!a&&e.taskFile&&(a={...JSON.parse(await N.readFile(D.resolve(t,e.taskFile),`utf8`)),flow:n});let s=i.find(t=>t.id===e.agent);if(!s&&a&&(s={id:a.agent,name:a.definition.name??a.agent,definition:a.definition,...a.usage?{usage:a.usage}:{},...a.files?{files:a.files}:{},builtin:!1}),!s)throw Error(`No agent named "${e.agent}".`);a??=await H(t,s,n,e);let c=a.event,f=c&&g[c.integration];if(c&&!f)throw Error(`Unknown integration "${c.integration}".`);if(n==="default"){let i=Q(s,a),u=e.noteFile?void 0:await N.mkdtemp(D.join(M.tmpdir(),`coder-note-`)),p=e.noteFile??D.join(u,`note`);e.noteFile||await N.writeFile(p,a.context?.note??``);let m=o(h(s),r),g=d(a.mcp?.join(`,`),r.mcp,s.definition.mcp),_=[...E(a,e.toolEnvironment?.tokens??R(a,O.env)),T(p),...g.mcp],v=e.resumeTaskId?{taskId:e.resumeTaskId}:await l({taskId:e.taskId,mcp:_,nativeMcp:g.nativeMcp,cwd:t,agentId:a.agent,...a.author?{author:a.author}:{},...c?.repo?{repo:`${c.repo.owner}/${c.repo.name}`}:{},...e.source?{source:e.source}:{name:`${F}${a.id}`},engine:m.engine,model:m.model??void 0,effort:m.effort??void 0,permissions:a.permissions??m.permissions,system:i.system,prompt:i.prompt,outputSchema:a.context?.outputSchema,wait:!0});await e.onTask?.(v.taskId);let y=await B(t,v.taskId,e.onApproval),b=(y.result?.finalMessage??y.result?.error?.message??``).trim(),x=(await N.readFile(p,`utf8`).catch(()=>``)).trim();u&&await N.rm(u,{recursive:!0,force:!0});let S=e.post!==!1&&!!f;return S&&await L(f,c,b,e.postToken??O.env.APP_TOKEN,a.author),{ok:y.status===`completed`,flow:n,reply:b,posted:S,taskId:v.taskId,tokens:y.result?.tokens??void 0,...x===(a.context?.note??``).trim()?{}:{note:x}}}let m=_(n,t),v=m.scope===`builtin`?{...await V(a,s,e.post!==!1),cwd:t,...a.args}:a.args??c,b=await y(m.path,{cwd:t,...e.taskId?{runId:e.taskId}:{},args:v,ceiling:{agent:s.id,permissions:a.permissions??o(h(s),r).permissions},...e.postToken?{integrationToken:e.postToken}:{}},{...e.onTask?{onTaskStart:t=>e.onTask(t.taskId)}:{},...e.onStart?{onStart:e.onStart}:{}});return{ok:!0,flow:n,runId:b.runId,result:b.result,tokens:b.tokens}}async function B(e,t,r,i=s,a=()=>new Promise(e=>setTimeout(e,100))){let o;for(;;)try{return await i(e,t)}catch(e){if(!(e instanceof n)||e.code!==`approval-pending`||!r)throw e;e.approval?.id!==o&&(o=e.approval?.id,await r(e.approval)),await a()}}async function V(e,t,n=!0){if(!e.event)throw Error(`built-in flows need a GitHub pull request event`);return{...await U(e.event,t,e.context,e.author,n),...h(t),...e.permissions?{permissions:e.permissions}:{}}}async function H(e,t,n,r){if(r.taskFile){let t=JSON.parse(await N.readFile(D.resolve(e,r.taskFile),`utf8`));return{...t,flow:n,tools:t.tools??{}}}if(!r.eventFile)throw Error(`Missing --task or --event file.`);return I(t,n,JSON.parse(await N.readFile(D.resolve(e,r.eventFile),`utf8`)))}function U(e,t,n,r,i=!0){let a=g[e.integration]?.repos?.pullRequest(e);if(!a)throw Error(`built-in flows need a pull request event`);return{pr:a,post:i,...r?{author:r}:{}}}async function W(e,t,r){let i=await p(e,g),a=i.find(e=>e.id===t);if(!a)throw new n(`invalid-option`,`No agent named "${t}".`,{hint:`Agents here: ${i.map(e=>e.id).join(`, `)}`});let{definition:o,usage:s}=a,c=o.mcp??{},l=d(r,u(e).mcp,c);return{engine:s?.engine??o.engine,model:s?.model??o.model,effort:s?.effort??o.effort,permissions:s?.permissions??o.permissions,system:q(a)||void 0,...l}}const G=48e3;function K(e){let t=[`You are an agent named "{name}" acting on behalf of a software team. You receive one request, a platform event or a task, and must produce the reply that goes back to its thread verbatim. Be direct and specific, use the attached tools to read context before answering, never invent facts about the repository, and stay within the actions your tools allow. Reply in plain markdown with no preamble.`.replace(`{name}`,e.definition.name??e.id)];e.definition.description&&t.push(`Your role: ${e.definition.description}`);let n=q(e);return n&&t.push(`## Agent instructions\n\n${n}`),t.join(`
2
-
3
- `)}function q(e){if(!e.dir)return J(e.files??{});let t;try{t=A(e.dir).filter(e=>e.endsWith(`.md`))}catch{return``}t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${k(D.join(e.dir,r),`utf8`).trim()}\n`;if(n+=t.slice(0,G-n.length),n.length===G)break}return n.trimEnd()}function J(e){let t=Object.keys(e).filter(e=>e.endsWith(`.md`));t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${e[r].trim()}\n`;if(n+=t.slice(0,G-n.length),n.length===G)break}return n.trimEnd()}function Y(e){let t=[`**Integration:** ${e.integration}`,`**Type:** ${e.type}`,`**Actor:** ${e.actor.login??e.actor.id}`];return e.repo&&t.push(`**Repo:** ${e.repo.owner}/${e.repo.name}`),e.chat&&t.push(`**Thread:** ${e.chat.thread.id}${e.chat.thread.isDM?` (direct message)`:``}`),[t.join(`
4
- `),e.promptContext,e.text].filter(Boolean).join(`
5
-
6
- `)}function X(e){if(!e)return``;let t=[];return e.messages?.length&&t.push(`## Recent thread\n\n${e.messages.map(e=>`- ${e.user}: ${e.text}`).join(`
7
- `)}`),e.note&&t.push(`## Note from earlier in this thread\n\n${e.note}`),e.instructions&&t.push(`## Repository instructions\n\n${e.instructions}`),e.user&&t.push(`## Who asked\n\n${e.user.name} (${e.user.email}), a member of this Coder server.`),t.join(`
8
-
9
- `)}function Z({event:e,prompt:t}){return t===void 0?e?Y(e):``:e?.repo?`**Repo:** ${e.repo.owner}/${e.repo.name}\n\n${t}`:t}function Q(e,t){let n=X(t.context),r=t.prompt===void 0&&t.event?g[t.event.integration]?.hint:void 0,i=Z(t);return{system:[K(e),r?`## Platform\n\n${r}`:``].filter(Boolean).join(`
10
-
11
- `),prompt:n?`${i}\n\n${n}`:i}}function $(e,o){let u=t(e,o);if(!u)return()=>{};let d={agent:o.agentId,permissions:o.permissions??`auto`},p=j(e),m=new Map((o.mcp??[]).map(e=>[e.name,e])),h=e=>{if(!e.command)return e;let[t]=i([e],O.env,p);return{...e,command:t.command,args:t.args}},g=e=>{try{return j(e)}catch{return null}},_=[e,...o.addDirs??[]].flatMap(e=>g(D.resolve(e))??[]),y=e=>_.some(t=>e===t||e.startsWith(t+D.sep)),w=new Map,T=new Set,E=()=>{let e=C(i(o.mcp),b);return e?{token:e}:{}};return f(u,{async dispatch(e){let t=e.name??`task`;if(e.mcp!==void 0&&(typeof e.mcp!=`string`||/^[\[{]/.test(e.mcp.trim())))throw new n(`invalid-option`,`Mailbox MCP selections must be server names.`);let r=(e.mcp??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e===`all`?void 0:m.get(e);if(!t)throw new n(`invalid-option`,`MCP server "${e}" is not authorized for agent "${d.agent}".`);return h(t)}),i=D.resolve(String(e.cwd??p));if(g(i)!==g(p)&&r.some(e=>e.command))throw new n(`invalid-option`,`Inherited stdio MCP servers do not allow a cwd override.`);let a=[i,...(e.addDirs??[]).map(e=>D.resolve(i,e))],o=a.find(e=>!g(e));if(o)throw new n(`invalid-option`,`task "${t}" asks for ${o}, which does not exist`);let[s,...u]=a.map(e=>g(e)),f=[s,...u].find(e=>!y(e));if(f)throw new n(`invalid-option`,`task "${t}" asks for ${f}, outside the workspace of agent "${d.agent}"`);let _=await l({prompt:String(e.prompt??``),outputSchema:e.outputSchema,cwd:s,engine:e.engine,model:e.model,effort:e.effort,mcp:r,permissions:c(t,e.permissions,d),name:e.name,system:e.system,addDirs:u,flowRunId:e.flowRunId,wait:!0},{fromMailbox:!0});return w.set(_.taskId,s),{taskId:_.taskId}},async steer(e){let t=w.get(e.taskId);if(!t)throw new n(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let i=r(t,e.taskId);if(!i)throw new n(`invalid-option`,`No task "${e.taskId}".`);return v(t,i,String(e.text??``),{model:e.model,effort:e.effort,permissions:e.permissions?c(i.name,e.permissions,d):void 0})},async wait(e){let t=w.get(e.taskId);if(!t)throw new n(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let r=await s(t,e.taskId);return{status:r.status,result:r.result,model:r.task.model??null,next:a(t,r)??null}},review(t){if(t.op===`resolveTarget`){let{repo:r,...i}=t.input??{};if(!o.repo&&!/^\d+$/.test(String(i.pr)))throw new n(`invalid-option`,`review target must be a pull request number in this task's repository`);let a=S({...i,cwd:e,...o.repo?{repo:o.repo}:{},...o.author?{author:o.author}:{}},E());return a.pr&&T.add(`${a.pr.repo}#${a.pr.number}`),a}if(t.op!==`post`)throw new n(`invalid-option`,`unknown review action "${t.op}"`);if(!T.has(`${t.input?.repo}#${t.input?.pr}`))throw new n(`invalid-option`,`review post: pull request was not resolved by this task`);return x({...t.input,cwd:e},E())}})}export{I as a,P as i,W as n,z as r,F as t};