@mrpatronz/nexusflow 2.8.1 → 2.10.0

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 (732) hide show
  1. package/README.md +172 -113
  2. package/dist/agent/AcpCliAdapter.d.ts +2 -0
  3. package/dist/agent/AcpCliAdapter.d.ts.map +1 -1
  4. package/dist/agent/AcpCliAdapter.js +50 -4
  5. package/dist/agent/AcpCliAdapter.js.map +1 -1
  6. package/dist/agent/AntigravityCliAdapter.d.ts +44 -2
  7. package/dist/agent/AntigravityCliAdapter.d.ts.map +1 -1
  8. package/dist/agent/AntigravityCliAdapter.js +363 -16
  9. package/dist/agent/AntigravityCliAdapter.js.map +1 -1
  10. package/dist/agent/ClaudeCliAdapter.d.ts +3 -0
  11. package/dist/agent/ClaudeCliAdapter.d.ts.map +1 -1
  12. package/dist/agent/ClaudeCliAdapter.js +37 -10
  13. package/dist/agent/ClaudeCliAdapter.js.map +1 -1
  14. package/dist/agent/ClaudeSdkAdapter.d.ts +1 -0
  15. package/dist/agent/ClaudeSdkAdapter.d.ts.map +1 -1
  16. package/dist/agent/ClaudeSdkAdapter.js +38 -11
  17. package/dist/agent/ClaudeSdkAdapter.js.map +1 -1
  18. package/dist/agent/CliAdapterBase.d.ts +2 -0
  19. package/dist/agent/CliAdapterBase.d.ts.map +1 -1
  20. package/dist/agent/CliAdapterBase.js +5 -1
  21. package/dist/agent/CliAdapterBase.js.map +1 -1
  22. package/dist/agent/CodexCliAdapter.d.ts +1 -1
  23. package/dist/agent/CodexCliAdapter.d.ts.map +1 -1
  24. package/dist/agent/CodexCliAdapter.js +5 -4
  25. package/dist/agent/CodexCliAdapter.js.map +1 -1
  26. package/dist/agent/CodexSdkAdapter.d.ts.map +1 -1
  27. package/dist/agent/CodexSdkAdapter.js +4 -1
  28. package/dist/agent/CodexSdkAdapter.js.map +1 -1
  29. package/dist/agent/CopilotAcpAdapter.d.ts.map +1 -1
  30. package/dist/agent/CopilotAcpAdapter.js +2 -2
  31. package/dist/agent/CopilotAcpAdapter.js.map +1 -1
  32. package/dist/agent/ProviderRegistry.d.ts +8 -1
  33. package/dist/agent/ProviderRegistry.d.ts.map +1 -1
  34. package/dist/agent/ProviderRegistry.js.map +1 -1
  35. package/dist/agent/TurnSessionManager.d.ts +65 -0
  36. package/dist/agent/TurnSessionManager.d.ts.map +1 -0
  37. package/dist/agent/TurnSessionManager.js +330 -0
  38. package/dist/agent/TurnSessionManager.js.map +1 -0
  39. package/dist/agent/adapters.d.ts.map +1 -1
  40. package/dist/agent/adapters.js +23 -6
  41. package/dist/agent/adapters.js.map +1 -1
  42. package/dist/agent/cliAvailability.d.ts.map +1 -1
  43. package/dist/agent/cliAvailability.js +12 -0
  44. package/dist/agent/cliAvailability.js.map +1 -1
  45. package/dist/agent/mcp-config.d.ts +0 -5
  46. package/dist/agent/mcp-config.d.ts.map +1 -1
  47. package/dist/agent/mcp-config.js +2 -1
  48. package/dist/agent/mcp-config.js.map +1 -1
  49. package/dist/agent/models.d.ts +13 -0
  50. package/dist/agent/models.d.ts.map +1 -1
  51. package/dist/agent/models.js +262 -8
  52. package/dist/agent/models.js.map +1 -1
  53. package/dist/agent/nativeTools.d.ts.map +1 -1
  54. package/dist/agent/nativeTools.js +1 -0
  55. package/dist/agent/nativeTools.js.map +1 -1
  56. package/dist/agent/orchestrator.d.ts.map +1 -1
  57. package/dist/agent/orchestrator.js +3 -2
  58. package/dist/agent/orchestrator.js.map +1 -1
  59. package/dist/agent/session.d.ts +1 -0
  60. package/dist/agent/session.d.ts.map +1 -1
  61. package/dist/agent/session.js.map +1 -1
  62. package/dist/analyzers/detect-deps.js +16 -1
  63. package/dist/analyzers/detect-deps.js.map +1 -1
  64. package/dist/analyzers/run-analyzer.d.ts.map +1 -1
  65. package/dist/analyzers/run-analyzer.js.map +1 -1
  66. package/dist/commands/adapter.d.ts.map +1 -1
  67. package/dist/commands/adapter.js +15 -14
  68. package/dist/commands/adapter.js.map +1 -1
  69. package/dist/commands/add-repo.d.ts.map +1 -1
  70. package/dist/commands/add-repo.js +6 -5
  71. package/dist/commands/add-repo.js.map +1 -1
  72. package/dist/commands/commit.js +6 -8
  73. package/dist/commands/commit.js.map +1 -1
  74. package/dist/commands/config.d.ts.map +1 -1
  75. package/dist/commands/config.js +2 -1
  76. package/dist/commands/config.js.map +1 -1
  77. package/dist/commands/create.d.ts +4 -4
  78. package/dist/commands/create.d.ts.map +1 -1
  79. package/dist/commands/create.js +8 -7
  80. package/dist/commands/create.js.map +1 -1
  81. package/dist/commands/desktop.d.ts +44 -3
  82. package/dist/commands/desktop.d.ts.map +1 -1
  83. package/dist/commands/desktop.js +246 -7
  84. package/dist/commands/desktop.js.map +1 -1
  85. package/dist/commands/diff.d.ts.map +1 -1
  86. package/dist/commands/diff.js +3 -2
  87. package/dist/commands/diff.js.map +1 -1
  88. package/dist/commands/doctor.d.ts.map +1 -1
  89. package/dist/commands/doctor.js +3 -2
  90. package/dist/commands/doctor.js.map +1 -1
  91. package/dist/commands/finish.js +2 -1
  92. package/dist/commands/finish.js.map +1 -1
  93. package/dist/commands/handoff.d.ts.map +1 -1
  94. package/dist/commands/handoff.js +12 -12
  95. package/dist/commands/handoff.js.map +1 -1
  96. package/dist/commands/init.d.ts +2 -2
  97. package/dist/commands/init.d.ts.map +1 -1
  98. package/dist/commands/init.js +8 -7
  99. package/dist/commands/init.js.map +1 -1
  100. package/dist/commands/isolate.d.ts.map +1 -1
  101. package/dist/commands/isolate.js +2 -1
  102. package/dist/commands/isolate.js.map +1 -1
  103. package/dist/commands/knowledge.d.ts.map +1 -1
  104. package/dist/commands/knowledge.js +3 -2
  105. package/dist/commands/knowledge.js.map +1 -1
  106. package/dist/commands/list.d.ts.map +1 -1
  107. package/dist/commands/list.js +3 -2
  108. package/dist/commands/list.js.map +1 -1
  109. package/dist/commands/logs.js +3 -3
  110. package/dist/commands/logs.js.map +1 -1
  111. package/dist/commands/mcp.d.ts +1 -2
  112. package/dist/commands/mcp.d.ts.map +1 -1
  113. package/dist/commands/mcp.js +19 -12
  114. package/dist/commands/mcp.js.map +1 -1
  115. package/dist/commands/migrate.d.ts +12 -0
  116. package/dist/commands/migrate.d.ts.map +1 -0
  117. package/dist/commands/migrate.js +128 -0
  118. package/dist/commands/migrate.js.map +1 -0
  119. package/dist/commands/open.d.ts.map +1 -1
  120. package/dist/commands/open.js +2 -1
  121. package/dist/commands/open.js.map +1 -1
  122. package/dist/commands/progress.d.ts.map +1 -1
  123. package/dist/commands/progress.js +2 -1
  124. package/dist/commands/progress.js.map +1 -1
  125. package/dist/commands/project.d.ts.map +1 -1
  126. package/dist/commands/project.js +7 -6
  127. package/dist/commands/project.js.map +1 -1
  128. package/dist/commands/refresh.d.ts.map +1 -1
  129. package/dist/commands/refresh.js +8 -11
  130. package/dist/commands/refresh.js.map +1 -1
  131. package/dist/commands/remove.d.ts.map +1 -1
  132. package/dist/commands/remove.js +2 -1
  133. package/dist/commands/remove.js.map +1 -1
  134. package/dist/commands/schedule.js +16 -18
  135. package/dist/commands/schedule.js.map +1 -1
  136. package/dist/commands/start.d.ts.map +1 -1
  137. package/dist/commands/start.js +9 -8
  138. package/dist/commands/start.js.map +1 -1
  139. package/dist/commands/status.d.ts.map +1 -1
  140. package/dist/commands/status.js +2 -1
  141. package/dist/commands/status.js.map +1 -1
  142. package/dist/commands/stop.d.ts.map +1 -1
  143. package/dist/commands/stop.js +2 -1
  144. package/dist/commands/stop.js.map +1 -1
  145. package/dist/commands/strategy.d.ts.map +1 -1
  146. package/dist/commands/strategy.js +6 -5
  147. package/dist/commands/strategy.js.map +1 -1
  148. package/dist/commands/sync.js +8 -10
  149. package/dist/commands/sync.js.map +1 -1
  150. package/dist/commands/tui.d.ts.map +1 -1
  151. package/dist/commands/tui.js +11 -10
  152. package/dist/commands/tui.js.map +1 -1
  153. package/dist/commands/ui.d.ts.map +1 -1
  154. package/dist/commands/ui.js +4 -3
  155. package/dist/commands/ui.js.map +1 -1
  156. package/dist/core/adapters/local-storage.d.ts +3 -1
  157. package/dist/core/adapters/local-storage.d.ts.map +1 -1
  158. package/dist/core/adapters/local-storage.js +62 -4
  159. package/dist/core/adapters/local-storage.js.map +1 -1
  160. package/dist/core/analysis-cache.d.ts.map +1 -1
  161. package/dist/core/analysis-cache.js +8 -7
  162. package/dist/core/analysis-cache.js.map +1 -1
  163. package/dist/core/brand-config.d.ts +261 -0
  164. package/dist/core/brand-config.d.ts.map +1 -0
  165. package/dist/core/brand-config.js +514 -0
  166. package/dist/core/brand-config.js.map +1 -0
  167. package/dist/core/config.d.ts +1 -1
  168. package/dist/core/config.d.ts.map +1 -1
  169. package/dist/core/config.js +18 -8
  170. package/dist/core/config.js.map +1 -1
  171. package/dist/core/constants.d.ts +88 -0
  172. package/dist/core/constants.d.ts.map +1 -0
  173. package/dist/core/constants.js +103 -0
  174. package/dist/core/constants.js.map +1 -0
  175. package/dist/core/doctor.d.ts.map +1 -1
  176. package/dist/core/doctor.js +11 -3
  177. package/dist/core/doctor.js.map +1 -1
  178. package/dist/core/generation-lock.d.ts +2 -2
  179. package/dist/core/generation-lock.d.ts.map +1 -1
  180. package/dist/core/generation-lock.js +49 -22
  181. package/dist/core/generation-lock.js.map +1 -1
  182. package/dist/core/knowledge.d.ts +19 -0
  183. package/dist/core/knowledge.d.ts.map +1 -1
  184. package/dist/core/knowledge.js +150 -24
  185. package/dist/core/knowledge.js.map +1 -1
  186. package/dist/core/migrate.d.ts +53 -0
  187. package/dist/core/migrate.d.ts.map +1 -0
  188. package/dist/core/migrate.js +607 -0
  189. package/dist/core/migrate.js.map +1 -0
  190. package/dist/core/new-repo.js +1 -1
  191. package/dist/core/new-repo.js.map +1 -1
  192. package/dist/core/projects.d.ts.map +1 -1
  193. package/dist/core/projects.js +13 -4
  194. package/dist/core/projects.js.map +1 -1
  195. package/dist/core/refresh.d.ts.map +1 -1
  196. package/dist/core/refresh.js +6 -4
  197. package/dist/core/refresh.js.map +1 -1
  198. package/dist/core/scheduler.d.ts +1 -1
  199. package/dist/core/scheduler.d.ts.map +1 -1
  200. package/dist/core/scheduler.js +11 -9
  201. package/dist/core/scheduler.js.map +1 -1
  202. package/dist/core/sync.js +1 -1
  203. package/dist/core/sync.js.map +1 -1
  204. package/dist/core/workspace-git.d.ts.map +1 -1
  205. package/dist/core/workspace-git.js +34 -10
  206. package/dist/core/workspace-git.js.map +1 -1
  207. package/dist/core/workspace-state.d.ts +4 -0
  208. package/dist/core/workspace-state.d.ts.map +1 -1
  209. package/dist/core/workspace-state.js +8 -8
  210. package/dist/core/workspace-state.js.map +1 -1
  211. package/dist/core/workspace.d.ts +3 -4
  212. package/dist/core/workspace.d.ts.map +1 -1
  213. package/dist/core/workspace.js +62 -30
  214. package/dist/core/workspace.js.map +1 -1
  215. package/dist/desktop-server.js +6 -3
  216. package/dist/desktop-server.js.map +1 -1
  217. package/dist/generators/base.d.ts.map +1 -1
  218. package/dist/generators/base.js +7 -5
  219. package/dist/generators/base.js.map +1 -1
  220. package/dist/generators/claude.d.ts.map +1 -1
  221. package/dist/generators/claude.js +2 -1
  222. package/dist/generators/claude.js.map +1 -1
  223. package/dist/generators/cursor.d.ts +1 -1
  224. package/dist/generators/cursor.d.ts.map +1 -1
  225. package/dist/generators/cursor.js +9 -4
  226. package/dist/generators/cursor.js.map +1 -1
  227. package/dist/generators/index.d.ts +4 -8
  228. package/dist/generators/index.d.ts.map +1 -1
  229. package/dist/generators/index.js +34 -69
  230. package/dist/generators/index.js.map +1 -1
  231. package/dist/generators/plan-generator.d.ts.map +1 -1
  232. package/dist/generators/plan-generator.js +20 -11
  233. package/dist/generators/plan-generator.js.map +1 -1
  234. package/dist/generators/skills-generator.d.ts.map +1 -1
  235. package/dist/generators/skills-generator.js +26 -11
  236. package/dist/generators/skills-generator.js.map +1 -1
  237. package/dist/gui/app_logo.png +0 -0
  238. package/dist/gui/assets/AgentsPage-CnXzZFo1.js +3 -0
  239. package/dist/gui/assets/DashboardPage-rm3hKgsw.js +1 -0
  240. package/dist/gui/assets/GettingStartedPage-BKeuSHZQ.js +1 -0
  241. package/dist/gui/assets/NullStore-DuSDhGOe.js +1 -0
  242. package/dist/gui/assets/ProjectsPage-CioaA4uf.js +1 -0
  243. package/dist/gui/assets/ScaffoldRepoInline-DKZ1rPmE.js +1 -0
  244. package/dist/gui/assets/Separator-BgWyHDtg.js +1 -0
  245. package/dist/gui/assets/SettingsPage-BevO8oge.js +1 -0
  246. package/dist/gui/assets/SkillsPage-D2stJRWy.js +6 -0
  247. package/dist/gui/assets/StartWorkPage-C8a6eN90.js +1 -0
  248. package/dist/gui/assets/{StrategiesPage-C36TZgDX.js → StrategiesPage-BRQMly_d.js} +2 -2
  249. package/dist/gui/assets/WorkroomsPage-KqBkRD-x.js +4 -0
  250. package/dist/gui/assets/WorkspacesPage-DcA2i5HN.js +2 -0
  251. package/dist/gui/assets/alert-QnMXzwpU.js +1 -0
  252. package/dist/gui/assets/alert-dialog-BHEUQVyS.js +1 -0
  253. package/dist/gui/assets/badge-DTBzXOWn.js +1 -0
  254. package/dist/gui/assets/brand-hHByyyzq.js +1 -0
  255. package/dist/gui/assets/button-CREn1mup.js +1 -0
  256. package/dist/gui/assets/card-yrg6ov8B.js +1 -0
  257. package/dist/gui/assets/chevron-down-B_Mwbim8.js +1 -0
  258. package/dist/gui/assets/{circle-plus-lmU1yNJd.js → circle-plus--zM3-3r3.js} +1 -1
  259. package/dist/gui/assets/{code-xml-jFAa3-TT.js → code-xml-DH-38Tt7.js} +1 -1
  260. package/dist/gui/assets/{git-branch-Cfj9D8yW.js → git-branch-Ce0I2663.js} +1 -1
  261. package/dist/gui/assets/index-BB4BuHBQ.css +2 -0
  262. package/dist/gui/assets/index-BTe-_1Mu.js +57 -0
  263. package/dist/gui/assets/isElementDisabled-BrwmCB1d.js +1 -0
  264. package/dist/gui/assets/label-DC730X8s.js +1 -0
  265. package/dist/gui/assets/layers-j_brOuoa.js +1 -0
  266. package/dist/gui/assets/menu-d_G9km1-.js +1 -0
  267. package/dist/gui/assets/shield-check-Dd1Yv3l2.js +1 -0
  268. package/dist/gui/assets/square-check-big-BSIiYXPI.js +1 -0
  269. package/dist/gui/assets/tabs-BHwTt4t1.js +1 -0
  270. package/dist/gui/assets/{trash-2-CtR35_eF.js → trash-2-CMdv3eD3.js} +1 -1
  271. package/dist/gui/assets/useAriaLabelledBy-BmJErI5a.js +1 -0
  272. package/dist/gui/assets/useValueChanged-WS99hTmm.js +1 -0
  273. package/dist/gui/assets/{vsc-DFh0-53h.js → vsc-eMRaEwN3.js} +1 -1
  274. package/dist/gui/favicon-aurora.svg +8 -0
  275. package/dist/gui/favicon.ico +0 -0
  276. package/dist/gui/favicon.svg +8 -1
  277. package/dist/gui/index.html +21 -12
  278. package/dist/harness/claude.d.ts.map +1 -1
  279. package/dist/harness/claude.js +97 -7
  280. package/dist/harness/claude.js.map +1 -1
  281. package/dist/harness/codex.d.ts +1 -0
  282. package/dist/harness/codex.d.ts.map +1 -1
  283. package/dist/harness/codex.js +51 -34
  284. package/dist/harness/codex.js.map +1 -1
  285. package/dist/index.js +57 -27
  286. package/dist/index.js.map +1 -1
  287. package/dist/mcp/server.d.ts +12 -1
  288. package/dist/mcp/server.d.ts.map +1 -1
  289. package/dist/mcp/server.js +24 -6
  290. package/dist/mcp/server.js.map +1 -1
  291. package/dist/mcp/tools.d.ts +4 -2
  292. package/dist/mcp/tools.d.ts.map +1 -1
  293. package/dist/mcp/tools.js +372 -17
  294. package/dist/mcp/tools.js.map +1 -1
  295. package/dist/orchestration/detect.d.ts.map +1 -1
  296. package/dist/orchestration/detect.js +12 -5
  297. package/dist/orchestration/detect.js.map +1 -1
  298. package/dist/orchestration/log-tail.js +17 -17
  299. package/dist/orchestration/log-tail.js.map +1 -1
  300. package/dist/orchestration/runner.d.ts +1 -1
  301. package/dist/orchestration/runner.d.ts.map +1 -1
  302. package/dist/orchestration/runner.js +13 -8
  303. package/dist/orchestration/runner.js.map +1 -1
  304. package/dist/resources/agents-catalog.d.ts +3 -1
  305. package/dist/resources/agents-catalog.d.ts.map +1 -1
  306. package/dist/resources/agents-catalog.js +12 -6
  307. package/dist/resources/agents-catalog.js.map +1 -1
  308. package/dist/resources/contracts.d.ts +7 -0
  309. package/dist/resources/contracts.d.ts.map +1 -1
  310. package/dist/resources/contracts.js +8 -1
  311. package/dist/resources/contracts.js.map +1 -1
  312. package/dist/resources/fs-safety.d.ts +7 -1
  313. package/dist/resources/fs-safety.d.ts.map +1 -1
  314. package/dist/resources/fs-safety.js +44 -1
  315. package/dist/resources/fs-safety.js.map +1 -1
  316. package/dist/resources/materializer.d.ts +1 -0
  317. package/dist/resources/materializer.d.ts.map +1 -1
  318. package/dist/resources/materializer.js +48 -17
  319. package/dist/resources/materializer.js.map +1 -1
  320. package/dist/resources/service.d.ts.map +1 -1
  321. package/dist/resources/service.js +3 -2
  322. package/dist/resources/service.js.map +1 -1
  323. package/dist/server.d.ts +2 -19
  324. package/dist/server.d.ts.map +1 -1
  325. package/dist/server.js +1158 -318
  326. package/dist/server.js.map +1 -1
  327. package/dist/static-resources/workflows/cost-aware-sol-luna.md +95 -0
  328. package/dist/storage/db.d.ts +94 -0
  329. package/dist/storage/db.d.ts.map +1 -0
  330. package/dist/storage/db.js +609 -0
  331. package/dist/storage/db.js.map +1 -0
  332. package/dist/types.d.ts +19 -0
  333. package/dist/types.d.ts.map +1 -1
  334. package/dist/utils/detect-ai.d.ts.map +1 -1
  335. package/dist/utils/detect-ai.js +1 -3
  336. package/dist/utils/detect-ai.js.map +1 -1
  337. package/dist/utils/multi-git.d.ts +0 -8
  338. package/dist/utils/multi-git.d.ts.map +1 -1
  339. package/dist/utils/multi-git.js +12 -4
  340. package/dist/utils/multi-git.js.map +1 -1
  341. package/dist/utils/pr.d.ts.map +1 -1
  342. package/dist/utils/pr.js +10 -5
  343. package/dist/utils/pr.js.map +1 -1
  344. package/dist/utils/resolve-workspace.d.ts +1 -1
  345. package/dist/utils/resolve-workspace.d.ts.map +1 -1
  346. package/dist/utils/resolve-workspace.js +10 -3
  347. package/dist/utils/resolve-workspace.js.map +1 -1
  348. package/dist/utils/session-finder.d.ts +12 -1
  349. package/dist/utils/session-finder.d.ts.map +1 -1
  350. package/dist/utils/session-finder.js +183 -0
  351. package/dist/utils/session-finder.js.map +1 -1
  352. package/dist/utils/skills-catalog.d.ts +5 -1
  353. package/dist/utils/skills-catalog.d.ts.map +1 -1
  354. package/dist/utils/skills-catalog.js +131 -75
  355. package/dist/utils/skills-catalog.js.map +1 -1
  356. package/dist/utils/terminal-launch.d.ts +4 -0
  357. package/dist/utils/terminal-launch.d.ts.map +1 -1
  358. package/dist/utils/terminal-launch.js +71 -12
  359. package/dist/utils/terminal-launch.js.map +1 -1
  360. package/dist/utils/update-check.d.ts +4 -1
  361. package/dist/utils/update-check.d.ts.map +1 -1
  362. package/dist/utils/update-check.js +66 -19
  363. package/dist/utils/update-check.js.map +1 -1
  364. package/dist/utils/workflows.d.ts +4 -1
  365. package/dist/utils/workflows.d.ts.map +1 -1
  366. package/dist/utils/workflows.js +51 -21
  367. package/dist/utils/workflows.js.map +1 -1
  368. package/dist/workrooms/client.d.ts +54 -0
  369. package/dist/workrooms/client.d.ts.map +1 -0
  370. package/dist/workrooms/client.js +191 -0
  371. package/dist/workrooms/client.js.map +1 -0
  372. package/dist/workrooms/contracts.d.ts +579 -0
  373. package/dist/workrooms/contracts.d.ts.map +1 -0
  374. package/dist/workrooms/contracts.js +231 -0
  375. package/dist/workrooms/contracts.js.map +1 -0
  376. package/dist/workrooms/crypto.d.ts +30 -0
  377. package/dist/workrooms/crypto.d.ts.map +1 -0
  378. package/dist/workrooms/crypto.js +72 -0
  379. package/dist/workrooms/crypto.js.map +1 -0
  380. package/dist/workrooms/host.d.ts +61 -0
  381. package/dist/workrooms/host.d.ts.map +1 -0
  382. package/dist/workrooms/host.js +747 -0
  383. package/dist/workrooms/host.js.map +1 -0
  384. package/dist/workrooms/local-resources.d.ts +26 -0
  385. package/dist/workrooms/local-resources.d.ts.map +1 -0
  386. package/dist/workrooms/local-resources.js +367 -0
  387. package/dist/workrooms/local-resources.js.map +1 -0
  388. package/dist/workrooms/manager.d.ts +228 -0
  389. package/dist/workrooms/manager.d.ts.map +1 -0
  390. package/dist/workrooms/manager.js +768 -0
  391. package/dist/workrooms/manager.js.map +1 -0
  392. package/dist/workrooms/milestones.d.ts +42 -0
  393. package/dist/workrooms/milestones.d.ts.map +1 -0
  394. package/dist/workrooms/milestones.js +94 -0
  395. package/dist/workrooms/milestones.js.map +1 -0
  396. package/dist/workrooms/portable.d.ts +21 -0
  397. package/dist/workrooms/portable.d.ts.map +1 -0
  398. package/dist/workrooms/portable.js +201 -0
  399. package/dist/workrooms/portable.js.map +1 -0
  400. package/dist/workrooms/resource-package.d.ts +7 -0
  401. package/dist/workrooms/resource-package.d.ts.map +1 -0
  402. package/dist/workrooms/resource-package.js +260 -0
  403. package/dist/workrooms/resource-package.js.map +1 -0
  404. package/dist/workrooms/service.d.ts +92 -0
  405. package/dist/workrooms/service.d.ts.map +1 -0
  406. package/dist/workrooms/service.js +788 -0
  407. package/dist/workrooms/service.js.map +1 -0
  408. package/dist/workrooms/sqlite-store.d.ts +31 -0
  409. package/dist/workrooms/sqlite-store.d.ts.map +1 -0
  410. package/dist/workrooms/sqlite-store.js +511 -0
  411. package/dist/workrooms/sqlite-store.js.map +1 -0
  412. package/dist/workrooms/store.d.ts +542 -0
  413. package/dist/workrooms/store.d.ts.map +1 -0
  414. package/dist/workrooms/store.js +71 -0
  415. package/dist/workrooms/store.js.map +1 -0
  416. package/package.json +16 -10
  417. package/resources/workflows/cost-aware-sol-luna.md +95 -0
  418. package/dist/agent/AcpCliAdapter.test.d.ts +0 -2
  419. package/dist/agent/AcpCliAdapter.test.d.ts.map +0 -1
  420. package/dist/agent/AcpCliAdapter.test.js +0 -235
  421. package/dist/agent/AcpCliAdapter.test.js.map +0 -1
  422. package/dist/agent/AntigravityCliAdapter.test.d.ts +0 -2
  423. package/dist/agent/AntigravityCliAdapter.test.d.ts.map +0 -1
  424. package/dist/agent/AntigravityCliAdapter.test.js +0 -222
  425. package/dist/agent/AntigravityCliAdapter.test.js.map +0 -1
  426. package/dist/agent/ClaudeCliAdapter.test.d.ts +0 -2
  427. package/dist/agent/ClaudeCliAdapter.test.d.ts.map +0 -1
  428. package/dist/agent/ClaudeCliAdapter.test.js +0 -320
  429. package/dist/agent/ClaudeCliAdapter.test.js.map +0 -1
  430. package/dist/agent/ClaudeSdkAdapter.test.d.ts +0 -2
  431. package/dist/agent/ClaudeSdkAdapter.test.d.ts.map +0 -1
  432. package/dist/agent/ClaudeSdkAdapter.test.js +0 -155
  433. package/dist/agent/ClaudeSdkAdapter.test.js.map +0 -1
  434. package/dist/agent/CliAdapterBase.test.d.ts +0 -2
  435. package/dist/agent/CliAdapterBase.test.d.ts.map +0 -1
  436. package/dist/agent/CliAdapterBase.test.js +0 -240
  437. package/dist/agent/CliAdapterBase.test.js.map +0 -1
  438. package/dist/agent/CodexCliAdapter.test.d.ts +0 -2
  439. package/dist/agent/CodexCliAdapter.test.d.ts.map +0 -1
  440. package/dist/agent/CodexCliAdapter.test.js +0 -331
  441. package/dist/agent/CodexCliAdapter.test.js.map +0 -1
  442. package/dist/agent/CodexSdkAdapter.test.d.ts +0 -2
  443. package/dist/agent/CodexSdkAdapter.test.d.ts.map +0 -1
  444. package/dist/agent/CodexSdkAdapter.test.js +0 -76
  445. package/dist/agent/CodexSdkAdapter.test.js.map +0 -1
  446. package/dist/agent/ProviderRegistry.test.d.ts +0 -2
  447. package/dist/agent/ProviderRegistry.test.d.ts.map +0 -1
  448. package/dist/agent/ProviderRegistry.test.js +0 -129
  449. package/dist/agent/ProviderRegistry.test.js.map +0 -1
  450. package/dist/agent/adapters.test.d.ts +0 -2
  451. package/dist/agent/adapters.test.d.ts.map +0 -1
  452. package/dist/agent/adapters.test.js +0 -71
  453. package/dist/agent/adapters.test.js.map +0 -1
  454. package/dist/agent/cliAvailability.test.d.ts +0 -2
  455. package/dist/agent/cliAvailability.test.d.ts.map +0 -1
  456. package/dist/agent/cliAvailability.test.js +0 -217
  457. package/dist/agent/cliAvailability.test.js.map +0 -1
  458. package/dist/agent/mcp-config.test.d.ts +0 -2
  459. package/dist/agent/mcp-config.test.d.ts.map +0 -1
  460. package/dist/agent/mcp-config.test.js +0 -22
  461. package/dist/agent/mcp-config.test.js.map +0 -1
  462. package/dist/agent/models.test.d.ts +0 -2
  463. package/dist/agent/models.test.d.ts.map +0 -1
  464. package/dist/agent/models.test.js +0 -40
  465. package/dist/agent/models.test.js.map +0 -1
  466. package/dist/agent/nativeAgent.test.d.ts +0 -2
  467. package/dist/agent/nativeAgent.test.d.ts.map +0 -1
  468. package/dist/agent/nativeAgent.test.js +0 -35
  469. package/dist/agent/nativeAgent.test.js.map +0 -1
  470. package/dist/agent/nativeTools.test.d.ts +0 -2
  471. package/dist/agent/nativeTools.test.d.ts.map +0 -1
  472. package/dist/agent/nativeTools.test.js +0 -67
  473. package/dist/agent/nativeTools.test.js.map +0 -1
  474. package/dist/agent/orchestrator.test.d.ts +0 -2
  475. package/dist/agent/orchestrator.test.d.ts.map +0 -1
  476. package/dist/agent/orchestrator.test.js +0 -284
  477. package/dist/agent/orchestrator.test.js.map +0 -1
  478. package/dist/agent/session.test.d.ts +0 -2
  479. package/dist/agent/session.test.d.ts.map +0 -1
  480. package/dist/agent/session.test.js +0 -74
  481. package/dist/agent/session.test.js.map +0 -1
  482. package/dist/agent/smoke-chat.test.d.ts +0 -2
  483. package/dist/agent/smoke-chat.test.d.ts.map +0 -1
  484. package/dist/agent/smoke-chat.test.js +0 -166
  485. package/dist/agent/smoke-chat.test.js.map +0 -1
  486. package/dist/commands/add-repo.test.d.ts +0 -2
  487. package/dist/commands/add-repo.test.d.ts.map +0 -1
  488. package/dist/commands/add-repo.test.js +0 -30
  489. package/dist/commands/add-repo.test.js.map +0 -1
  490. package/dist/commands/commands.test.d.ts +0 -2
  491. package/dist/commands/commands.test.d.ts.map +0 -1
  492. package/dist/commands/commands.test.js +0 -156
  493. package/dist/commands/commands.test.js.map +0 -1
  494. package/dist/commands/commit.test.d.ts +0 -2
  495. package/dist/commands/commit.test.d.ts.map +0 -1
  496. package/dist/commands/commit.test.js +0 -54
  497. package/dist/commands/commit.test.js.map +0 -1
  498. package/dist/commands/isolate.test.d.ts +0 -2
  499. package/dist/commands/isolate.test.d.ts.map +0 -1
  500. package/dist/commands/isolate.test.js +0 -59
  501. package/dist/commands/isolate.test.js.map +0 -1
  502. package/dist/commands/knowledge.test.d.ts +0 -2
  503. package/dist/commands/knowledge.test.d.ts.map +0 -1
  504. package/dist/commands/knowledge.test.js +0 -90
  505. package/dist/commands/knowledge.test.js.map +0 -1
  506. package/dist/commands/status.test.d.ts +0 -2
  507. package/dist/commands/status.test.d.ts.map +0 -1
  508. package/dist/commands/status.test.js +0 -31
  509. package/dist/commands/status.test.js.map +0 -1
  510. package/dist/commands/ui.test.d.ts +0 -2
  511. package/dist/commands/ui.test.d.ts.map +0 -1
  512. package/dist/commands/ui.test.js +0 -58
  513. package/dist/commands/ui.test.js.map +0 -1
  514. package/dist/core/adapters/storage.test.d.ts +0 -2
  515. package/dist/core/adapters/storage.test.d.ts.map +0 -1
  516. package/dist/core/adapters/storage.test.js +0 -65
  517. package/dist/core/adapters/storage.test.js.map +0 -1
  518. package/dist/core/analysis-cache.test.d.ts +0 -2
  519. package/dist/core/analysis-cache.test.d.ts.map +0 -1
  520. package/dist/core/analysis-cache.test.js +0 -163
  521. package/dist/core/analysis-cache.test.js.map +0 -1
  522. package/dist/core/config.test.d.ts +0 -2
  523. package/dist/core/config.test.d.ts.map +0 -1
  524. package/dist/core/config.test.js +0 -90
  525. package/dist/core/config.test.js.map +0 -1
  526. package/dist/core/finish.test.d.ts +0 -2
  527. package/dist/core/finish.test.d.ts.map +0 -1
  528. package/dist/core/finish.test.js +0 -110
  529. package/dist/core/finish.test.js.map +0 -1
  530. package/dist/core/generation-lock.test.d.ts +0 -2
  531. package/dist/core/generation-lock.test.d.ts.map +0 -1
  532. package/dist/core/generation-lock.test.js +0 -134
  533. package/dist/core/generation-lock.test.js.map +0 -1
  534. package/dist/core/isolate.test.d.ts +0 -2
  535. package/dist/core/isolate.test.d.ts.map +0 -1
  536. package/dist/core/isolate.test.js +0 -320
  537. package/dist/core/isolate.test.js.map +0 -1
  538. package/dist/core/knowledge.test.d.ts +0 -2
  539. package/dist/core/knowledge.test.d.ts.map +0 -1
  540. package/dist/core/knowledge.test.js +0 -287
  541. package/dist/core/knowledge.test.js.map +0 -1
  542. package/dist/core/locks.test.d.ts +0 -2
  543. package/dist/core/locks.test.d.ts.map +0 -1
  544. package/dist/core/locks.test.js +0 -143
  545. package/dist/core/locks.test.js.map +0 -1
  546. package/dist/core/new-repo.test.d.ts +0 -2
  547. package/dist/core/new-repo.test.d.ts.map +0 -1
  548. package/dist/core/new-repo.test.js +0 -78
  549. package/dist/core/new-repo.test.js.map +0 -1
  550. package/dist/core/progress.test.d.ts +0 -2
  551. package/dist/core/progress.test.d.ts.map +0 -1
  552. package/dist/core/progress.test.js +0 -52
  553. package/dist/core/progress.test.js.map +0 -1
  554. package/dist/core/projects.test.d.ts +0 -2
  555. package/dist/core/projects.test.d.ts.map +0 -1
  556. package/dist/core/projects.test.js +0 -165
  557. package/dist/core/projects.test.js.map +0 -1
  558. package/dist/core/refresh.test.d.ts +0 -2
  559. package/dist/core/refresh.test.d.ts.map +0 -1
  560. package/dist/core/refresh.test.js +0 -93
  561. package/dist/core/refresh.test.js.map +0 -1
  562. package/dist/core/scanner.test.d.ts +0 -2
  563. package/dist/core/scanner.test.d.ts.map +0 -1
  564. package/dist/core/scanner.test.js +0 -53
  565. package/dist/core/scanner.test.js.map +0 -1
  566. package/dist/core/scheduler.test.d.ts +0 -2
  567. package/dist/core/scheduler.test.d.ts.map +0 -1
  568. package/dist/core/scheduler.test.js +0 -169
  569. package/dist/core/scheduler.test.js.map +0 -1
  570. package/dist/core/sync.test.d.ts +0 -2
  571. package/dist/core/sync.test.d.ts.map +0 -1
  572. package/dist/core/sync.test.js +0 -128
  573. package/dist/core/sync.test.js.map +0 -1
  574. package/dist/core/workspace-git.test.d.ts +0 -2
  575. package/dist/core/workspace-git.test.d.ts.map +0 -1
  576. package/dist/core/workspace-git.test.js +0 -52
  577. package/dist/core/workspace-git.test.js.map +0 -1
  578. package/dist/core/workspace-skills-workflow.integration.test.d.ts +0 -2
  579. package/dist/core/workspace-skills-workflow.integration.test.d.ts.map +0 -1
  580. package/dist/core/workspace-skills-workflow.integration.test.js +0 -177
  581. package/dist/core/workspace-skills-workflow.integration.test.js.map +0 -1
  582. package/dist/core/workspace-state.test.d.ts +0 -2
  583. package/dist/core/workspace-state.test.d.ts.map +0 -1
  584. package/dist/core/workspace-state.test.js +0 -84
  585. package/dist/core/workspace-state.test.js.map +0 -1
  586. package/dist/core/workspace.create.test.d.ts +0 -2
  587. package/dist/core/workspace.create.test.d.ts.map +0 -1
  588. package/dist/core/workspace.create.test.js +0 -224
  589. package/dist/core/workspace.create.test.js.map +0 -1
  590. package/dist/core/workspace.test.d.ts +0 -2
  591. package/dist/core/workspace.test.d.ts.map +0 -1
  592. package/dist/core/workspace.test.js +0 -53
  593. package/dist/core/workspace.test.js.map +0 -1
  594. package/dist/core/worktree.test.d.ts +0 -2
  595. package/dist/core/worktree.test.d.ts.map +0 -1
  596. package/dist/core/worktree.test.js +0 -153
  597. package/dist/core/worktree.test.js.map +0 -1
  598. package/dist/generators/base.test.d.ts +0 -2
  599. package/dist/generators/base.test.d.ts.map +0 -1
  600. package/dist/generators/base.test.js +0 -287
  601. package/dist/generators/base.test.js.map +0 -1
  602. package/dist/generators/knowledge-migration.test.d.ts +0 -2
  603. package/dist/generators/knowledge-migration.test.d.ts.map +0 -1
  604. package/dist/generators/knowledge-migration.test.js +0 -22
  605. package/dist/generators/knowledge-migration.test.js.map +0 -1
  606. package/dist/generators/plan-generator.test.d.ts +0 -2
  607. package/dist/generators/plan-generator.test.d.ts.map +0 -1
  608. package/dist/generators/plan-generator.test.js +0 -220
  609. package/dist/generators/plan-generator.test.js.map +0 -1
  610. package/dist/generators/skills-generator.test.d.ts +0 -2
  611. package/dist/generators/skills-generator.test.d.ts.map +0 -1
  612. package/dist/generators/skills-generator.test.js +0 -79
  613. package/dist/generators/skills-generator.test.js.map +0 -1
  614. package/dist/gui/assets/AgentsPage-B4fx43rd.js +0 -3
  615. package/dist/gui/assets/CSPContext-DBUu9tE0.js +0 -1
  616. package/dist/gui/assets/DashboardPage-DH52G8IG.js +0 -1
  617. package/dist/gui/assets/GettingStartedPage-BlTrQhvi.js +0 -1
  618. package/dist/gui/assets/ProjectsPage-BPVSLPXv.js +0 -1
  619. package/dist/gui/assets/ScaffoldRepoInline-ywcpq9PX.js +0 -1
  620. package/dist/gui/assets/SettingsPage-RQr8SalV.js +0 -1
  621. package/dist/gui/assets/SkillsPage-CYoSRrwx.js +0 -6
  622. package/dist/gui/assets/StartWorkPage-DBKK4lFi.js +0 -1
  623. package/dist/gui/assets/WorkspacesPage-DxEONvSq.js +0 -6
  624. package/dist/gui/assets/alert-dialog-CQAX2yRx.js +0 -1
  625. package/dist/gui/assets/badge-CAohJGj6.js +0 -1
  626. package/dist/gui/assets/bot-C2HWrAft.js +0 -1
  627. package/dist/gui/assets/button-BDDZnIHx.js +0 -1
  628. package/dist/gui/assets/card-BKXzd_5L.js +0 -1
  629. package/dist/gui/assets/chevron-down-qTL8HPug.js +0 -1
  630. package/dist/gui/assets/cpu-Cdwd84Jz.js +0 -1
  631. package/dist/gui/assets/empty-BdlgbifD.js +0 -1
  632. package/dist/gui/assets/index-BF6pre6G.css +0 -2
  633. package/dist/gui/assets/index-C_rwnBzF.js +0 -52
  634. package/dist/gui/assets/isElementDisabled-uy_EOitH.js +0 -1
  635. package/dist/gui/assets/label-CG5exjag.js +0 -1
  636. package/dist/gui/assets/square-DlIYnlSq.js +0 -1
  637. package/dist/gui/assets/textarea-ByfoCb54.js +0 -1
  638. package/dist/gui/assets/useAriaLabelledBy-ClesgjMe.js +0 -1
  639. package/dist/gui/assets/useValueChanged-DeYvGnKs.js +0 -1
  640. package/dist/gui/assets/zap-CWG_Lvki.js +0 -1
  641. package/dist/harness/contract.test.d.ts +0 -2
  642. package/dist/harness/contract.test.d.ts.map +0 -1
  643. package/dist/harness/contract.test.js +0 -426
  644. package/dist/harness/contract.test.js.map +0 -1
  645. package/dist/harness/harness.test.d.ts +0 -2
  646. package/dist/harness/harness.test.d.ts.map +0 -1
  647. package/dist/harness/harness.test.js +0 -215
  648. package/dist/harness/harness.test.js.map +0 -1
  649. package/dist/mcp/tools.test.d.ts +0 -2
  650. package/dist/mcp/tools.test.d.ts.map +0 -1
  651. package/dist/mcp/tools.test.js +0 -194
  652. package/dist/mcp/tools.test.js.map +0 -1
  653. package/dist/orchestration/log-tail.test.d.ts +0 -2
  654. package/dist/orchestration/log-tail.test.d.ts.map +0 -1
  655. package/dist/orchestration/log-tail.test.js +0 -72
  656. package/dist/orchestration/log-tail.test.js.map +0 -1
  657. package/dist/orchestration/orchestrator.test.d.ts +0 -2
  658. package/dist/orchestration/orchestrator.test.d.ts.map +0 -1
  659. package/dist/orchestration/orchestrator.test.js +0 -85
  660. package/dist/orchestration/orchestrator.test.js.map +0 -1
  661. package/dist/orchestration/runner.test.d.ts +0 -2
  662. package/dist/orchestration/runner.test.d.ts.map +0 -1
  663. package/dist/orchestration/runner.test.js +0 -233
  664. package/dist/orchestration/runner.test.js.map +0 -1
  665. package/dist/resources/agents-catalog.test.d.ts +0 -2
  666. package/dist/resources/agents-catalog.test.d.ts.map +0 -1
  667. package/dist/resources/agents-catalog.test.js +0 -50
  668. package/dist/resources/agents-catalog.test.js.map +0 -1
  669. package/dist/resources/codex-agent.test.d.ts +0 -2
  670. package/dist/resources/codex-agent.test.d.ts.map +0 -1
  671. package/dist/resources/codex-agent.test.js +0 -27
  672. package/dist/resources/codex-agent.test.js.map +0 -1
  673. package/dist/resources/materializer.test.d.ts +0 -2
  674. package/dist/resources/materializer.test.d.ts.map +0 -1
  675. package/dist/resources/materializer.test.js +0 -149
  676. package/dist/resources/materializer.test.js.map +0 -1
  677. package/dist/resources/service.test.d.ts +0 -2
  678. package/dist/resources/service.test.d.ts.map +0 -1
  679. package/dist/resources/service.test.js +0 -58
  680. package/dist/resources/service.test.js.map +0 -1
  681. package/dist/server.test.d.ts +0 -2
  682. package/dist/server.test.d.ts.map +0 -1
  683. package/dist/server.test.js +0 -1697
  684. package/dist/server.test.js.map +0 -1
  685. package/dist/utils/detect-ai.test.d.ts +0 -2
  686. package/dist/utils/detect-ai.test.d.ts.map +0 -1
  687. package/dist/utils/detect-ai.test.js +0 -70
  688. package/dist/utils/detect-ai.test.js.map +0 -1
  689. package/dist/utils/detect-editors.test.d.ts +0 -2
  690. package/dist/utils/detect-editors.test.d.ts.map +0 -1
  691. package/dist/utils/detect-editors.test.js +0 -85
  692. package/dist/utils/detect-editors.test.js.map +0 -1
  693. package/dist/utils/git.test.d.ts +0 -2
  694. package/dist/utils/git.test.d.ts.map +0 -1
  695. package/dist/utils/git.test.js +0 -125
  696. package/dist/utils/git.test.js.map +0 -1
  697. package/dist/utils/multi-git.test.d.ts +0 -2
  698. package/dist/utils/multi-git.test.d.ts.map +0 -1
  699. package/dist/utils/multi-git.test.js +0 -330
  700. package/dist/utils/multi-git.test.js.map +0 -1
  701. package/dist/utils/pr.test.d.ts +0 -2
  702. package/dist/utils/pr.test.d.ts.map +0 -1
  703. package/dist/utils/pr.test.js +0 -47
  704. package/dist/utils/pr.test.js.map +0 -1
  705. package/dist/utils/session-finder.test.d.ts +0 -2
  706. package/dist/utils/session-finder.test.d.ts.map +0 -1
  707. package/dist/utils/session-finder.test.js +0 -304
  708. package/dist/utils/session-finder.test.js.map +0 -1
  709. package/dist/utils/skills-catalog.test.d.ts +0 -2
  710. package/dist/utils/skills-catalog.test.d.ts.map +0 -1
  711. package/dist/utils/skills-catalog.test.js +0 -281
  712. package/dist/utils/skills-catalog.test.js.map +0 -1
  713. package/dist/utils/system-scanner.test.d.ts +0 -2
  714. package/dist/utils/system-scanner.test.d.ts.map +0 -1
  715. package/dist/utils/system-scanner.test.js +0 -73
  716. package/dist/utils/system-scanner.test.js.map +0 -1
  717. package/dist/utils/terminal-launch.test.d.ts +0 -2
  718. package/dist/utils/terminal-launch.test.d.ts.map +0 -1
  719. package/dist/utils/terminal-launch.test.js +0 -117
  720. package/dist/utils/terminal-launch.test.js.map +0 -1
  721. package/dist/utils/update-check.test.d.ts +0 -2
  722. package/dist/utils/update-check.test.d.ts.map +0 -1
  723. package/dist/utils/update-check.test.js +0 -30
  724. package/dist/utils/update-check.test.js.map +0 -1
  725. package/dist/utils/workflows.test.d.ts +0 -2
  726. package/dist/utils/workflows.test.d.ts.map +0 -1
  727. package/dist/utils/workflows.test.js +0 -86
  728. package/dist/utils/workflows.test.js.map +0 -1
  729. package/dist/utils/workspace-launch.test.d.ts +0 -2
  730. package/dist/utils/workspace-launch.test.d.ts.map +0 -1
  731. package/dist/utils/workspace-launch.test.js +0 -128
  732. package/dist/utils/workspace-launch.test.js.map +0 -1
@@ -1 +0,0 @@
1
- import{_ as e,b as t,c as n,f as r,g as i,i as a,p as o,s}from"./button-BDDZnIHx.js";import{An as c,At as l,Bt as u,Cn as d,Ct as f,Dn as p,En as m,G as h,Gt as g,Ht as _,It as v,Jn as y,Jt as b,Kt as x,Ln as S,Lt as C,M as w,Nt as T,On as E,Sn as D,St as ee,Tn as O,Tt as te,Ut as k,Vn as A,Vt as ne,Wt as j,Yt as M,Zn as N,Zt as P,_n as F,an as re,at as ie,bn as ae,bt as oe,cn as I,g as se,gn as L,hn as R,jn as z,kn as ce,kt as le,m as B,mn as V,nr as H,on as ue,ot as de,pn as U,pt as fe,qt as pe,rn as me,tn as he,ut as ge,vn as W,wn as G,wt as _e,xn as ve,xt as ye,yn as K,zt as be}from"./CSPContext-DBUu9tE0.js";import{t as xe}from"./useValueChanged-DeYvGnKs.js";var q=t(e(),1),Se=q.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function Ce(){return q.useContext(Se)}var we=function(e){return e[e.None=0]=`None`,e[e.GuessFromOrder=1]=`GuessFromOrder`,e}({});function Te(e={}){let{label:t,metadata:n,textRef:r,indexGuessBehavior:i,index:a}=e,{register:o,unregister:s,subscribeMapChange:c,elementsRef:l,labelsRef:u,nextIndexRef:d}=Ce(),f=q.useRef(-1),[p,m]=q.useState(a??(i===we.GuessFromOrder?()=>{if(f.current===-1){let e=d.current;d.current+=1,f.current=e}return f.current}:-1)),h=q.useRef(null),g=q.useCallback(e=>{if(h.current=e,p!==-1&&e!==null&&(l.current[p]=e,u)){let n=t!==void 0;u.current[p]=n?t:r?.current?.textContent??e.textContent}},[p,l,u,t,r]);return U(()=>{if(a!=null)return;let e=h.current;if(e)return o(e,n),()=>{s(e)}},[a,o,s,n]),U(()=>{if(a==null)return c(e=>{let t=h.current?e.get(h.current)?.index:null;t!=null&&m(t)})},[a,c,m]),{ref:g,index:p}}var Ee=[`top`,`right`,`bottom`,`left`],De=Math.min,J=Math.max,Y=Math.round,Oe=Math.floor,X=e=>({x:e,y:e}),ke={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Ae(e,t,n){return J(e,De(t,n))}function Z(e,t){return typeof e==`function`?e(t):e}function Q(e){return e.split(`-`)[0]}function je(e){return e.split(`-`)[1]}function Me(e){return e===`x`?`y`:`x`}function Ne(e){return e===`y`?`height`:`width`}function $(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Pe(e){return Me($(e))}function Fe(e,t,n){n===void 0&&(n=!1);let r=je(e),i=Pe(e),a=Ne(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=We(o)),[o,We(o)]}function Ie(e){let t=We(e);return[Le(e),t,Le(t)]}function Le(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Re=[`left`,`right`],ze=[`right`,`left`],Be=[`top`,`bottom`],Ve=[`bottom`,`top`];function He(e,t,n){switch(e){case`top`:case`bottom`:return n?t?ze:Re:t?Re:ze;case`left`:case`right`:return t?Be:Ve;default:return[]}}function Ue(e,t,n,r){let i=je(e),a=He(Q(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Le)))),a}function We(e){let t=Q(e);return ke[t]+e.slice(t.length)}function Ge(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function Ke(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Ge(e)}function qe(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Je(e,t={}){let{enabled:r=!0,event:i=`click`,toggle:a=!0,ignoreMouse:o=!1,stickIfOpen:s=!0,touchOpenDelay:c=0,reason:l=y}=t,u=`rootStore`in e?e.rootStore:e,d=u.context.dataRef,f=q.useRef(void 0),p=he(),m=P(),h=q.useMemo(()=>{function e(e,t,n,r){let i=me(l,t,n);e&&r===`touch`&&c>0?m.start(c,()=>{u.setOpen(!0,i)}):u.setOpen(e,i)}function t(e,t,n){let r=d.current.openEvent,i=u.select(`domReferenceElement`)!==t;return e&&i||!e||!a?!0:r&&s?!n(r.type):!1}return{onPointerDown(e){f.current=e.pointerType},onMouseDown(n){let r=f.current,a=n.nativeEvent,s=u.select(`open`);if(n.button!==0||i===`click`||x(r,!0)&&o)return;let c=t(s,n.currentTarget,e=>e===`click`||e===`mousedown`),l=ne(a);if(C(l)){e(c,a,l,r);return}let d=n.currentTarget;p.request(()=>{e(c,a,d,r)})},onClick(n){if(i===`mousedown-only`)return;let r=f.current;if(i===`mousedown`&&r){f.current=void 0;return}x(r,!0)&&o||e(t(u.select(`open`),n.currentTarget,e=>e===`click`||e===`mousedown`||e===`keydown`||e===`keyup`),n.nativeEvent,n.currentTarget,r)},onKeyDown(){f.current=void 0}}},[d,i,o,l,u,s,a,p,m,c]);return q.useMemo(()=>r?{reference:h}:n,[r,h])}function Ye(e,t,n){let{reference:r,floating:i}=e,a=$(t),o=Pe(t),s=Ne(o),c=Q(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=je(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function Xe(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Z(t,e),p=Ke(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=qe(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=qe(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Ze=50,Qe=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Xe},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Ye(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Ze&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Ye(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},$e=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Z(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Q(r),_=$(o),v=Q(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[We(o)]:Ie(o)),x=p!==`none`;!d&&x&&b.push(...Ue(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=Fe(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==$(t))||T.every(e=>$(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=$(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function et(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function tt(e){return Ee.some(t=>e[t]>=0)}var nt=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Z(e,t);switch(i){case`referenceHidden`:{let e=et(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:tt(e)}}}case`escaped`:{let e=et(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:tt(e)}}}default:return{}}}}},rt=new Set([`left`,`top`]);async function it(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Q(n),s=je(n),c=$(n)===`y`,l=rt.has(o)?-1:1,u=a&&c?-1:1,d=Z(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var at=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await it(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ot=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Z(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=$(i),p=Me(f),m=u[p],h=u[f],g=(e,t)=>Ae(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},st=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Z(e,t),u={x:n,y:r},d=$(i),f=Me(d),p=u[f],m=u[d],h=Z(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=rt.has(Q(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},ct=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=Z(e,t),c=await i.detectOverflow(t,s),l=Q(n),u=je(n),d=$(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=De(p-c[m],g),y=De(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*J(c.left,c.right):S=p-2*J(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function lt(e){let t=R(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=m(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Y(n)!==a||Y(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ut(e){return O(e)?e:e.contextElement}function dt(e){let t=ut(e);if(!m(t))return X(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=lt(t),o=(a?Y(n.width):n.width)/r,s=(a?Y(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var ft=X(0);function pt(e){let t=d(e);return!z()||!t.visualViewport?ft:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function mt(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===d(e)}function ht(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ut(e),o=X(1);t&&(r?O(r)&&(o=dt(r)):o=dt(e));let s=mt(a,n,r)?pt(a):X(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,f=i.height/o.y;if(a&&r){let e=d(a),t=O(r)?d(r):r,n=e,i=W(n);for(;i&&t!==n;){let e=dt(i),t=i.getBoundingClientRect(),r=R(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,f*=e.y,c+=a,l+=o,n=d(i),i=W(n)}}return qe({width:u,height:f,x:c,y:l})}function gt(e,t){let n=ae(e).scrollLeft;return t?t.left+n:ht(F(e)).left+n}function _t(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-gt(e,n),y:n.top+t.scrollTop}}function vt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=F(r),s=t?c(t.floating):!1;if(r===o||s&&a)return n;let l={scrollLeft:0,scrollTop:0},u=X(1),d=X(0),f=m(r);if((f||!a)&&((K(r)!==`body`||E(o))&&(l=ae(r)),f)){let e=ht(r);u=dt(r),d.x=e.x+r.clientLeft,d.y=e.y+r.clientTop}let p=o&&!f&&!a?_t(o,l):X(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+d.x+p.x,y:n.y*u.y-l.scrollTop*u.y+d.y+p.y}}function yt(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function bt(e){let t=ae(e),n=e.ownerDocument.body,r=J(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=J(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+gt(e),o=-t.scrollTop;return R(n).direction===`rtl`&&(a+=J(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var xt=25;function St(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=d(e),a=F(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!z()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(gt(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=xt&&(s-=o)}return{width:s,height:c,x:l,y:u}}function Ct(e,t){let n=ht(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=dt(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function wt(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=St(e,n,t);else if(t===`document`)r=bt(F(e));else if(O(t))r=Ct(t,n);else{let n=pt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return qe(r)}function Tt(e,t){let n=t.get(e);if(n)return n;let r=ve(e,[],!1).filter(e=>O(e)&&K(e)!==`body`),i=null,a=R(e).position===`fixed`,o=a?D(e):e;for(;O(o)&&!p(o);){let e=R(o),t=G(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=D(o)}return t.set(e,r),r}function Et(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?c(t)?[]:Tt(t,this._c):[].concat(n),r],o=wt(t,a[0],i),s=o.top,l=o.right,u=o.bottom,d=o.left;for(let e=1;e<a.length;e++){let n=wt(t,a[e],i);s=J(n.top,s),l=De(n.right,l),u=De(n.bottom,u),d=J(n.left,d)}return{width:l-d,height:u-s,x:d,y:s}}function Dt(e){let{width:t,height:n}=lt(e);return{width:t,height:n}}function Ot(e,t,n){let r=m(t),i=F(t),a=n===`fixed`,o=ht(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=X(0);if((r||!a)&&((K(t)!==`body`||E(i))&&(s=ae(t)),r)){let e=ht(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=gt(i));let l=i&&!r&&!a?_t(i,s):X(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function kt(e){return R(e).position===`static`}function At(e,t){if(!m(e)||R(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return F(e)===n&&(n=n.ownerDocument.body),n}function jt(e,t){let n=d(e);if(c(e))return n;if(!m(e)){let t=D(e);for(;t&&!p(t);){if(O(t)&&!kt(t))return t;t=D(t)}return n}let r=At(e,t);for(;r&&ce(r)&&kt(r);)r=At(r,t);return r&&p(r)&&kt(r)&&!G(r)?n:r||L(e)||n}var Mt=async function(e){let t=this.getOffsetParent||jt,n=this.getDimensions,r=await n(e.floating);return{reference:Ot(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Nt(e){return R(e).direction===`rtl`}var Pt={convertOffsetParentRelativeRectToViewportRelativeRect:vt,getDocumentElement:F,getClippingRect:Et,getOffsetParent:jt,getElementRects:Mt,getClientRects:yt,getDimensions:Dt,getScale:dt,isElement:O,isRTL:Nt};function Ft(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function It(e,t,n){let r=null,i,a=F(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=Oe(d),h=Oe(a.clientWidth-(u+f)),g=Oe(a.clientHeight-(d+p)),_=Oe(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:J(0,De(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!Ft(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=d(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function Lt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=ut(e),u=i||a?[...l?ve(l):[],...t?ve(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?It(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?ht(e):null;c&&g();function g(){let t=ht(e);h&&!Ft(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Rt=at,zt=ot,Bt=$e,Vt=ct,Ht=nt,Ut=st,Wt=(e,t,n)=>{let r=new Map,i=n??{},a={...Pt,...i.platform,_c:r};return Qe(e,t,{...i,platform:a})},Gt=t(H(),1),Kt=typeof document<`u`?q.useLayoutEffect:function(){};function qt(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!qt(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!qt(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Jt(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Yt(e,t){let n=Jt(e);return Math.round(t*n)/n}function Xt(e){let t=q.useRef(e);return Kt(()=>{t.current=e}),t}function Zt(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=q.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=q.useState(r);qt(f,r)||p(r);let[m,h]=q.useState(null),[g,_]=q.useState(null),v=q.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=q.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=q.useRef(null),C=q.useRef(null),w=q.useRef(u),T=c!=null,E=Xt(c),D=Xt(i),ee=Xt(l),O=q.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),Wt(S.current,C.current,e).then(e=>{let t={...e,isPositioned:ee.current!==!1};te.current&&!qt(w.current,t)&&(w.current=t,Gt.flushSync(()=>{d(t)}))})},[f,t,n,D,ee]);Kt(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let te=q.useRef(!1);Kt(()=>(te.current=!0,()=>{te.current=!1}),[]),Kt(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,O);O()}},[b,x,O,E,T]);let k=q.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),A=q.useMemo(()=>({reference:b,floating:x}),[b,x]),ne=q.useMemo(()=>{let e={position:n,left:0,top:0};if(!A.floating)return e;let t=Yt(A.floating,u.x),r=Yt(A.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...Jt(A.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,A.floating,u.x,u.y]);return q.useMemo(()=>({...u,update:O,refs:k,elements:A,floatingStyles:ne}),[u,O,k,A,ne])}var Qt=(e,t)=>{let n=Rt(e);return{name:n.name,fn:n.fn,options:[e,t]}},$t=(e,t)=>{let n=zt(e);return{name:n.name,fn:n.fn,options:[e,t]}},en=(e,t)=>({fn:Ut(e).fn,options:[e,t]}),tn=(e,t)=>{let n=Bt(e);return{name:n.name,fn:n.fn,options:[e,t]}},nn=(e,t)=>{let n=Vt(e);return{name:n.name,fn:n.fn,options:[e,t]}},rn=(e,t)=>{let n=Ht(e);return{name:n.name,fn:n.fn,options:[e,t]}};function an(e){let{open:t=!1,onOpenChange:n,elements:i={}}=e,a=re(),o=ie()!=null,s=r(()=>new h({open:t,transitionStatus:void 0,onOpenChange:n,referenceElement:i.reference??null,floatingElement:i.floating??null,triggerElements:new w,floatingId:a,syncOnly:!1,nested:o})).current;return U(()=>{let e={open:t,floatingId:a};i.reference!==void 0&&(e.referenceElement=i.reference,e.domReferenceElement=O(i.reference)?i.reference:null),i.floating!==void 0&&(e.floatingElement=i.floating),s.update(e)},[t,a,i.reference,i.floating,s]),s.context.onOpenChange=n,s.context.nested=o,s}function on(e={}){let{nodeId:t,externalTree:n}=e,r=an(e),i=e.rootContext||r,a=i.useState(`referenceElement`),o=i.useState(`floatingElement`),s=i.useState(`domReferenceElement`),c=i.useState(`open`),l=i.useState(`floatingId`),[u,d]=q.useState(null),[f,p]=q.useState(void 0),[m,h]=q.useState(void 0),g=q.useRef(null),_=de(n),v=q.useMemo(()=>({reference:a,floating:o,domReference:s}),[a,o,s]),y=Zt({...e,elements:{...v,...u&&{reference:u}}}),b=O(f)?f:null,x=m===void 0?i.state.floatingElement:m;i.useSyncedValue(`referenceElement`,f??null),i.useSyncedValue(`domReferenceElement`,f===void 0?s:b),i.useSyncedValue(`floatingElement`,x);let S=q.useCallback(e=>{let t=O(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;d(t),y.refs.setReference(t)},[y.refs]),C=q.useCallback(e=>{(O(e)||e===null)&&(g.current=e,p(e)),(O(y.refs.reference.current)||y.refs.reference.current===null||e!==null&&!O(e))&&y.refs.setReference(e)},[y.refs,p]),w=q.useCallback(e=>{h(e),y.refs.setFloating(e)},[y.refs]),T=q.useMemo(()=>({...y.refs,setReference:C,setFloating:w,setPositionReference:S,domReference:g}),[y.refs,C,w,S]),E=q.useMemo(()=>({...y.elements,domReference:s}),[y.elements,s]),D=q.useMemo(()=>({...y,dataRef:i.context.dataRef,open:c,onOpenChange:i.setOpen,events:i.context.events,floatingId:l,refs:T,elements:E,nodeId:t,rootStore:i}),[y,T,E,t,i,c,l]);return U(()=>{s&&(g.current=s)},[s]),U(()=>{i.context.dataRef.current.floatingContext=D;let e=_?.nodesRef.current.find(e=>e.id===t);e&&(e.context=D)}),q.useMemo(()=>({...y,context:D,refs:T,elements:E,rootStore:i}),[y,T,E,D,i])}var sn=`Escape`;function cn(e,t,n){switch(e){case`vertical`:return t;case`horizontal`:return n;default:return t||n}}function ln(e,t){return cn(t,e===`ArrowUp`||e===`ArrowDown`,e===`ArrowLeft`||e===`ArrowRight`)}function un(e,t,n){return cn(t,e===`ArrowDown`,n?e===`ArrowLeft`:e===`ArrowRight`)||e===`Enter`||e===` `||e===``}function dn(e,t,n){return cn(t,n?e===k:e===j,e===_)}function fn(e,t,n,r){return t===`both`||t===`horizontal`&&r?e===sn:cn(t,n?e===j:e===k,e===g)}function pn(e,t){let{listRef:n,activeIndex:r,onNavigate:i=()=>{},enabled:a=!0,selectedIndex:o=null,allowEscape:s=!1,loopFocus:c=!1,nested:d=!1,rtl:f=!1,virtual:p=!1,focusItemOnOpen:h=`auto`,focusItemOnHover:g=!0,openOnArrowKeyDown:_=!0,disabledIndices:y=void 0,orientation:x=`vertical`,parentOrientation:C,id:w,resetOnPointerLeave:E=!0,externalTree:D,grid:O}=t,te=O!=null,k=`rootStore`in e?e.rootStore:e,j=k.useState(`open`),N=k.useState(`floatingElement`),P=k.useState(`domReferenceElement`),F=k.context.dataRef,re=T(N),ae=v(P),I=l(re),se=ie(),L=de(D),R=q.useRef(h),z=q.useRef(o??-1),ce=q.useRef(null),B=q.useRef(!0),H=V(e=>{i(z.current===-1?null:z.current,e)}),ue=q.useRef(!!N),ge=q.useRef(j),W=q.useRef(!1),G=q.useRef(!1),ve=q.useRef(null),K=l(y),xe=l(j),Se=l(o),Ce=l(E),we=he(),Te=he(),Ee=V(()=>{function e(e){p?L?.events.emit(`virtualfocus`,e):ve.current=fe(e,{sync:W.current,preventScroll:!0})}let t=n.current[z.current],r=G.current;t&&e(t),(W.current?e=>e():e=>we.request(e))(()=>{let i=n.current[z.current]||t;i&&(t||e(i),ke&&(r||!B.current)&&i.scrollIntoView?.({block:`nearest`,inline:`nearest`}))})});U(()=>{F.current.orientation=x},[F,x]),U(()=>{a&&(j&&N?(z.current=o??-1,R.current&&o!=null&&(G.current=!0,H())):ue.current&&(z.current=-1,H()))},[a,j,N,o,H]),U(()=>{if(a){if(!j){W.current=!1;return}if(N)if(r==null){if(W.current=!1,Se.current!=null)return;if(ue.current&&(z.current=-1,Ee()),(!ge.current||!ue.current)&&R.current&&(ce.current!=null||R.current===!0&&ce.current==null)){let e=0,t=()=>{n.current[0]==null?(e<2&&(e?e=>Te.request(e):queueMicrotask)(t),e+=1):(z.current=ce.current==null||un(ce.current,x,f)||d?ee(n):ye(n),ce.current=null,H())};t()}}else _e(n.current,r)||(z.current=r,Ee(),G.current=!1)}},[a,j,N,r,Se,d,n,x,f,H,Ee,Te]),U(()=>{if(!a||N||!L||p||!ue.current)return;let e=L.nodesRef.current,t=e.find(e=>e.id===se)?.context?.elements.floating,n=be(le(P??t??null)),r=e.some(e=>e.context&&u(e.context.elements.floating,n));t&&!r&&B.current&&t.focus({preventScroll:!0})},[a,N,P,L,se,p]),U(()=>{ge.current=j,ue.current=!!N}),U(()=>{j||(ce.current=null,R.current=h)},[j,h]);let De=r!=null,J=V(e=>{if(!xe.current)return;let t=n.current.indexOf(e.currentTarget);t!==-1&&(z.current!==t||r!==t)&&(z.current=t,H(e))}),Y=V(()=>C??L?.nodesRef.current.find(e=>e.id===se)?.context?.dataRef?.current.orientation),Oe=V(()=>ee(n,K.current)),X=V(e=>{if(B.current=!1,W.current=!0,e.which===229||!xe.current&&e.currentTarget===I.current)return;if(d&&fn(e.key,x,f,te)){ln(e.key,Y())||M(e),k.setOpen(!1,me(A,e.nativeEvent)),m(P)&&(p?L?.events.emit(`virtualfocus`,P):P.focus());return}let t=z.current,r=ee(n,y),i=ye(n,y);if(ae||(e.key===`Home`&&(M(e),z.current=r,H(e)),e.key===`End`&&(M(e),z.current=i,H(e))),O!=null){let t=O(e,z.current,n,x,c,f,y,r,i);if(t!=null&&(z.current=t,H(e)),x===`both`)return}if(ln(e.key,x)){if(M(e),j&&!p&&be(e.currentTarget.ownerDocument)===e.currentTarget){z.current=un(e.key,x,f)?r:i,H(e);return}un(e.key,x,f)?c?t>=i?s&&t!==n.current.length?z.current=-1:(W.current=!1,z.current=r):z.current=oe(n.current,{startingIndex:t,disabledIndices:y}):z.current=Math.min(i,oe(n.current,{startingIndex:t,disabledIndices:y})):c?t<=r?s&&t!==-1?z.current=n.current.length:(W.current=!1,z.current=i):z.current=oe(n.current,{startingIndex:t,decrement:!0,disabledIndices:y}):z.current=Math.max(r,oe(n.current,{startingIndex:t,decrement:!0,disabledIndices:y})),_e(n.current,z.current)&&(z.current=-1),H(e)}}),ke=q.useMemo(()=>({onFocus(e){W.current=!0,J(e)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(e){W.current=!0,G.current=!1,g&&J(e)},onPointerLeave(e){if(!xe.current||!B.current||e.pointerType===`touch`)return;W.current=!0;let t=e.relatedTarget;if(!(!g||n.current.includes(t))&&Ce.current&&(ve.current?.(),ve.current=null,z.current=-1,H(e),!p)){let e=I.current,t=be(le(e));e&&u(e,t)&&e.focus({preventScroll:!0})}}}),[J,xe,I,g,n,H,Ce,p]),Ae=q.useMemo(()=>p&&j&&De&&{"aria-activedescendant":`${w}-${r}`},[p,j,De,w,r]),Z=q.useMemo(()=>({"aria-orientation":x===`both`?void 0:x,...ae?{}:Ae,onKeyDown(e){if(e.key===`Tab`&&e.shiftKey&&j&&!p){let t=ne(e.nativeEvent);if(t&&!u(I.current,t))return;M(e),k.setOpen(!1,me(S,e.nativeEvent)),m(P)&&P.focus();return}X(e)},onPointerMove(){B.current=!0}}),[Ae,X,I,x,ae,k,j,p,P]),Q=q.useMemo(()=>{function e(e){k.setOpen(!0,me(A,e.nativeEvent,e.currentTarget))}function t(e){h===`auto`&&pe(e.nativeEvent)&&(R.current=!p)}function n(e){R.current=h,h===`auto`&&b(e.nativeEvent)&&(R.current=!0)}return{onKeyDown(t){let n=k.select(`open`);B.current=!1;let r=t.key.startsWith(`Arrow`),i=dn(t.key,Y(),f),a=ln(t.key,x),o=(d?i:a)||t.key===`Enter`||t.key.trim()===``;if(p&&n)return X(t);if(!(!n&&!_&&r)){if(o){let e=ln(t.key,Y());ce.current=d&&e?null:t.key}if(d){i&&(M(t),n?(z.current=Oe(),H(t)):e(t));return}a&&(Se.current!=null&&(z.current=Se.current),M(t),!n&&_?e(t):X(t),n&&H(t))}},onFocus(e){k.select(`open`)&&!p&&(z.current=-1,H(e))},onPointerDown:n,onPointerEnter:n,onMouseDown:t,onClick:t}},[X,h,Oe,d,H,k,_,x,Y,f,Se,p]),je=q.useMemo(()=>({...Ae,...Q}),[Ae,Q]);return q.useMemo(()=>a?{reference:je,floating:Z,item:ke,trigger:Q}:{},[a,je,Z,Q,ke])}function mn(e,t){let{listRef:n,elementsRef:r,activeIndex:i,onMatch:a,disabledIndices:o,onTyping:c,enabled:l=!0,resetMs:d=750,selectedIndex:p=null}=t,m=`rootStore`in e?e.rootStore:e,h=m.useState(`open`),g=P(),_=q.useRef(``),v=q.useRef(p??i??-1),y=q.useRef(null),b=V(e=>{function t(e){let t=r?.current[e];return!t||f(t)}function l(e){return t(e)?o==null||!te(s,e,o):!1}function u(e,t,n=0){if(e.length===0)return-1;let r=(n%e.length+e.length)%e.length,i=t.toLowerCase();for(let t=0;t<e.length;t+=1){let n=(r+t)%e.length;if(!(!e[n]?.toLowerCase().startsWith(i)||!l(n)))return n}return-1}let m=n.current;if(_.current.length>0&&e.key===` `&&(M(e),c?.(!0)),_.current.length>0&&_.current[0]!==` `&&u(m,_.current)===-1&&e.key!==` `&&c?.(!1),m==null||e.key.length!==1||e.ctrlKey||e.metaKey||e.altKey)return;h&&e.key!==` `&&(M(e),c?.(!0));let b=_.current===``;b&&(v.current=p??i??-1),m.every((e,t)=>e&&l(t)?e[0]?.toLowerCase()!==e[1]?.toLowerCase():!0)&&_.current===e.key&&(_.current=``,v.current=y.current),_.current+=e.key,g.start(d,()=>{_.current=``,v.current=y.current,c?.(!1)});let x=((b?p??i??-1:v.current)??0)+1,S=u(m,_.current,x);S===-1?e.key!==` `&&(_.current=``,c?.(!1)):(a?.(S),y.current=S)}),x=V(e=>{let t=e.relatedTarget,n=m.select(`domReferenceElement`),r=m.select(`floatingElement`);u(n,t)||u(r,t)||(g.clear(),_.current=``,v.current=y.current,c?.(!1))});U(()=>{!h&&p!==null||(g.clear(),y.current=null,_.current!==``&&(_.current=``))},[h,p,g]),U(()=>{h&&_.current===``&&(v.current=p??i??-1)},[h,p,i]);let S=q.useMemo(()=>({onKeyDown:b,onBlur:x}),[b,x]);return q.useMemo(()=>l?{reference:S,floating:S}:{},[l,S])}var hn=q.createContext(void 0);function gn(e){let t=q.useContext(hn);if(t===void 0&&!e)throw Error(o(69));return t}var _n=i();function vn(e){return e===`starting`?ge:n}var yn=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0,offsetParent:d=`real`}=Z(e,t)||{};if(l==null)return{};let f=Ke(u),p={x:n,y:r},m=Pe(i),h=Ne(m),g=await o.getDimensions(l),_=m===`y`,v=_?`top`:`left`,y=_?`bottom`:`right`,b=_?`clientHeight`:`clientWidth`,x=a.reference[h]+a.reference[m]-p[m]-a.floating[h],S=p[m]-a.reference[m],C=d===`real`?await o.getOffsetParent?.(l):s.floating,w=s.floating[b]||a.floating[h];(!w||!await o.isElement?.(C))&&(w=s.floating[b]||a.floating[h]);let T=x/2-S/2,E=w/2-g[h]/2-1,D=Math.min(f[v],E),ee=Math.min(f[y],E),O=D,te=w-g[h]-ee,k=w/2-g[h]/2+T,A=Ae(O,k,te),ne=!c.arrow&&je(i)!=null&&k!==A&&a.reference[h]/2-(k<O?D:ee)-g[h]/2<0,j=ne?k<O?k-O:k-te:0;return{[m]:p[m]+j,data:{[m]:A,centerOffset:k-A-j,...ne&&{alignmentOffset:j}},reset:ne}}}),bn=(e,t)=>({...yn(e),options:[e,t]}),xn=rn().fn,Sn={name:`hide`,async fn(e){let{width:t,height:n,x:r,y:i}=e.rects.reference,a=t===0&&n===0&&r===0&&i===0;return{data:{referenceHidden:(await xn(e)).data?.referenceHidden||a}}}},Cn={sideX:`left`,sideY:`top`},wn={name:`adaptiveOrigin`,async fn(e){let{x:t,y:n,rects:{floating:r},elements:{floating:i},platform:a,strategy:o,placement:s}=e,c=d(i),l=c.getComputedStyle(i);if(!(l.transitionDuration!==`0s`&&l.transitionDuration!==``))return{x:t,y:n,data:Cn};let u=await a.getOffsetParent?.(i),f={width:0,height:0};if(o===`fixed`&&c?.visualViewport)f={width:c.visualViewport.width,height:c.visualViewport.height};else if(u===c){let e=le(i);f={width:e.documentElement.clientWidth,height:e.documentElement.clientHeight}}else await a.isElement?.(u)&&(f=await a.getDimensions(u));let p=Q(s),m=t,h=n;p===`left`&&(m=f.width-(t+r.width)),p===`top`&&(h=f.height-(n+r.height));let g=p===`left`?`right`:Cn.sideX,_=p===`top`?`bottom`:Cn.sideY;return{x:m,y:h,data:{sideX:g,sideY:_}}}};function Tn(e,t,n){let r=e===`inline-start`||e===`inline-end`;return{top:`top`,right:r?n?`inline-start`:`inline-end`:`right`,bottom:`bottom`,left:r?n?`inline-end`:`inline-start`:`left`}[t]}function En(e,t,n){let{rects:r,placement:i}=e;return{side:Tn(t,Q(i),n),align:je(i)||`center`,anchor:{width:r.reference.width,height:r.reference.height},positioner:{width:r.floating.width,height:r.floating.height}}}function Dn(e){let{anchor:t,positionMethod:n=`absolute`,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,collisionBoundary:s,collisionPadding:c=5,sticky:u=!1,arrowPadding:f=5,disableAnchorTracking:p=!1,inline:m,keepMounted:h=!1,floatingRootContext:g,mounted:_,collisionAvoidance:v,shiftCrossAxis:y=!1,nodeId:b,adaptiveOrigin:x,lazyFlip:S=!1,externalTree:C}=e,[w,T]=q.useState(null);!_&&w!==null&&T(null);let E=v.side||`flip`,D=v.align||`flip`,ee=v.fallbackAxisSide||`end`,O=typeof t==`function`?t:void 0,te=V(O),k=O?te:t,A=l(t),ne=l(_),j=se()===`rtl`,M=w||{top:`top`,right:`right`,bottom:`bottom`,left:`left`,"inline-end":j?`left`:`right`,"inline-start":j?`right`:`left`}[r],N=a===`center`?M:`${M}-${a}`,P=c,F=+(r===`bottom`),re=+(r===`top`),ie=+(r===`right`),ae=+(r===`left`);typeof P==`number`?P={top:P+F,right:P+ae,bottom:P+re,left:P+ie}:P&&={top:(P.top||0)+F,right:(P.right||0)+ae,bottom:(P.bottom||0)+re,left:(P.left||0)+ie};let oe={boundary:s===`clipping-ancestors`?`clippingAncestors`:s,padding:P},I=q.useRef(null),L=l(i),R=l(o),z=typeof i==`function`?0:i,ce=typeof o==`function`?0:o,B=[];m&&B.push(m),B.push(Qt(e=>{let t=En(e,r,j),n=typeof L.current==`function`?L.current(t):L.current,i=typeof R.current==`function`?R.current(t):R.current;return{mainAxis:n,crossAxis:i,alignmentAxis:i}},[z,ce,j,r]));let H=D===`none`&&E!==`shift`,ue=!H&&(u||y||E===`shift`),de=E===`none`?null:tn({...oe,padding:{top:P.top+1,right:P.right+1,bottom:P.bottom+1,left:P.left+1},mainAxis:!y&&E===`flip`,crossAxis:D===`flip`&&`alignment`,fallbackAxisSideDirection:ee}),fe=H?null:$t(e=>{let t=le(e.elements.floating).documentElement;return{...oe,rootBoundary:y?{x:0,y:0,width:t.clientWidth,height:t.clientHeight}:void 0,mainAxis:D!==`none`,crossAxis:ue,limiter:u||y?void 0:en(e=>{if(!I.current)return{};let{width:t,height:n}=I.current.getBoundingClientRect(),r=$(Q(e.placement)),i=r===`y`?t:n,a=r===`y`?P.left+P.right:P.top+P.bottom;return{offset:i/2+a/2}})}},[oe,u,y,P,D]);E===`shift`||D===`shift`||a===`center`?B.push(fe,de):B.push(de,fe),B.push(nn({...oe,apply({elements:{floating:e},availableWidth:t,availableHeight:n,rects:r}){if(!ne.current)return;let i=e.style;i.setProperty(`--available-width`,`${t}px`),i.setProperty(`--available-height`,`${n}px`);let a=d(e).devicePixelRatio||1,{x:o,y:s,width:c,height:l}=r.reference,u=(Math.round((o+c)*a)-Math.round(o*a))/a,f=(Math.round((s+l)*a)-Math.round(s*a))/a;i.setProperty(`--anchor-width`,`${u}px`),i.setProperty(`--anchor-height`,`${f}px`)}}),bn(e=>({element:I.current||le(e.elements.floating).createElement(`div`),padding:f,offsetParent:`floating`}),[f]),{name:`transformOrigin`,fn(e){let{elements:t,middlewareData:n,placement:a,rects:o,y:s}=e,c=Q(a),l=$(c),u=I.current,d=n.arrow?.x||0,f=n.arrow?.y||0,p=u?.clientWidth||0,m=u?.clientHeight||0,h=d+p/2,g=f+m/2,_=Math.abs(n.shift?.y||0),v=o.reference.height/2,y=typeof i==`function`?i(En(e,r,j)):i,b=_>y,x={top:`${h}px calc(100% + ${y}px)`,bottom:`${h}px ${-y}px`,left:`calc(100% + ${y}px) ${g}px`,right:`${-y}px ${g}px`}[c],S=`${h}px ${o.reference.y+v-s}px`;return t.floating.style.setProperty(`--transform-origin`,ue&&l===`y`&&b?S:x),{}}},Sn,x),U(()=>{!_&&g&&g.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[_,g]);let pe=q.useMemo(()=>({elementResize:!p&&typeof ResizeObserver<`u`,layoutShift:!p&&typeof IntersectionObserver<`u`}),[p]),{refs:me,elements:he,x:ge,y:W,middlewareData:G,update:_e,placement:ve,context:ye,isPositioned:K,floatingStyles:be}=on({rootContext:g,open:h?_:void 0,placement:N,middleware:B,strategy:n,whileElementsMounted:h?void 0:(...e)=>Lt(...e,pe),nodeId:b,externalTree:C}),{sideX:xe,sideY:Se}=G.adaptiveOrigin||Cn,Ce=K?n:`fixed`,we=q.useMemo(()=>{let e=x?{position:Ce,[xe]:ge,[Se]:W}:{position:Ce,...be};return K||(e.opacity=0),e},[x,Ce,xe,ge,Se,W,be,K]),Te=q.useRef(null);U(()=>{if(!_)return;let e=A.current,t=typeof e==`function`?e():e,n=(On(t)?t.current:t)||null;n!==Te.current&&(me.setPositionReference(n),Te.current=n)},[_,me,k,A]),q.useEffect(()=>{if(!_)return;let e=A.current;typeof e!=`function`&&On(e)&&e.current!==Te.current&&(me.setPositionReference(e.current),Te.current=e.current)},[_,me,k,A]),q.useEffect(()=>{if(h&&_&&he.reference&&he.floating)return Lt(he.reference,he.floating,_e,pe)},[h,_,he,_e,pe]);let Ee=Q(ve),De=Tn(r,Ee,j),J=je(ve)||`center`,Y=!!G.hide?.referenceHidden;U(()=>{S&&_&&K&&T(Ee)},[S,_,K,Ee]);let Oe=q.useMemo(()=>({position:`absolute`,top:G.arrow?.y,left:G.arrow?.x}),[G.arrow]),X=G.arrow?.centerOffset!==0;return q.useMemo(()=>({positionerStyles:we,arrowStyles:Oe,arrowRef:I,arrowUncentered:X,side:De,align:J,physicalSide:Ee,anchorHidden:Y,refs:me,context:ye,isPositioned:K,update:_e}),[we,Oe,I,X,De,J,Ee,Y,me,ye,K,_e])}function On(e){return e!=null&&`current`in e}function kn(e){let{children:t,elementsRef:n,labelsRef:i,onMapChange:a}=e,o=V(a),s=q.useRef(0),c=r(jn).current,l=r(An).current,[u,d]=q.useState(0),f=q.useRef(u),p=V((e,t)=>{l.set(e,t??null),f.current+=1,d(f.current)}),m=V(e=>{l.delete(e),f.current+=1,d(f.current)}),h=q.useMemo(()=>{let e=new Map;return Array.from(l.keys()).filter(e=>e.isConnected).sort(Mn).forEach((t,n)=>{let r=l.get(t)??{};e.set(t,{...r,index:n})}),e},[l,u]);U(()=>{if(typeof MutationObserver!=`function`||h.size===0)return;let e=new MutationObserver(e=>{let t=new Set,n=e=>t.has(e)?t.delete(e):t.add(e);e.forEach(e=>{e.removedNodes.forEach(n),e.addedNodes.forEach(n)}),t.size===0&&(f.current+=1,d(f.current))});return h.forEach((t,n)=>{n.parentElement&&e.observe(n.parentElement,{childList:!0})}),()=>{e.disconnect()}},[h]),U(()=>{f.current===u&&(n.current.length!==h.size&&(n.current.length=h.size),i&&i.current.length!==h.size&&(i.current.length=h.size),s.current=h.size),o(h)},[o,h,n,i,u]),U(()=>()=>{n.current=[]},[n]),U(()=>()=>{i&&(i.current=[])},[i]);let g=V(e=>(c.add(e),()=>{c.delete(e)}));U(()=>{c.forEach(e=>e(h))},[c,h]);let _=q.useMemo(()=>({register:p,unregister:m,subscribeMapChange:g,elementsRef:n,labelsRef:i,nextIndexRef:s}),[p,m,g,n,i,s]);return(0,_n.jsx)(Se.Provider,{value:_,children:t})}function An(){return new Map}function jn(){return new Set}function Mn(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}function Nn(e,t,{styles:n,transitionStatus:r,props:i,refs:o,hidden:s,inert:c=!1}){let l={...n};return c&&(l.pointerEvents=`none`),a(`div`,e,{state:t,ref:o,props:[{role:`presentation`,hidden:s,style:l},vn(r),i],stateAttributesMapping:N})}var Pn=20;function Fn(e,t,n,r){let[i,a]=q.useState(!1);U(()=>{if(!e||!t||n==null){a(!1);return}let r=le(n).documentElement.clientWidth,i=n.offsetWidth;a(r>0&&i>0&&i>=r-Pn)},[e,t,n]),B(e&&(!t||i),r)}function In(e){let t=q.useRef(``),n=q.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:q.useCallback(n=>{if(n.detail===0){e(n,`keyboard`);return}`pointerType`in n?e(n,n.pointerType):e(n,t.current),t.current=``},[e]),onPointerDown:n}}function Ln(e,t){let{onClick:n,onPointerDown:r}=In(V((n,r)=>{(typeof e==`function`?e():e)||t(r||(I?`touch`:``))}));return q.useMemo(()=>({onClick:n,onPointerDown:r}),[n,r])}function Rn(e){let[t,n]=q.useState(null),r=Ln(e,n);return xe(e,t=>{t&&!e&&n(null)}),q.useMemo(()=>({openMethod:t,triggerProps:r}),[t,r])}function zn(e){let t=e.getBoundingClientRect(),n=d(e);if(ue)return t;let r=n.getComputedStyle(e,`::before`),i=n.getComputedStyle(e,`::after`);if(!(r.content!==`none`||i.content!==`none`))return t;let a=parseFloat(r.width)||0,o=parseFloat(r.height)||0,s=parseFloat(i.width)||0,c=parseFloat(i.height)||0,l=Math.max(t.width,a,s),u=Math.max(t.height,o,c),f=l-t.width,p=u-t.height;return{left:t.left-f/2,right:t.right+f/2,top:t.top-p/2,bottom:t.bottom+p/2}}function Bn(e){let[t,n]=q.useState({current:e,previous:null});return e!==t.current&&n({current:e,previous:t.current}),t.previous}function Vn(e){return e==null||e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`}export{Je as _,Ln as a,we as b,kn as c,vn as d,gn as f,Pt as g,an as h,Rn as i,Dn as l,pn as m,Bn as n,Fn as o,mn as p,zn as r,Nn as s,Vn as t,wn as u,qe as v,Te as x,Y as y};
@@ -1 +0,0 @@
1
- import{m as e,o as t,r as n}from"./button-BDDZnIHx.js";function r({className:r,render:i,...a}){return n({defaultTagName:`label`,props:t({className:e(`inline-flex items-center gap-2 text-base/4.5 sm:text-sm/4 font-medium text-foreground`,r),"data-slot":`label`},a),render:i})}export{r as t};
@@ -1 +0,0 @@
1
- import{h as e}from"./button-BDDZnIHx.js";var t=e(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),n=e(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),r=e(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),i=e(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),a=e(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),o=e(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),s=e(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),c=e(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),l=e(`square-check-big`,[[`path`,{d:`M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344`,key:`2acyp4`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),u=e(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]);export{o as a,r as c,s as i,n as l,l as n,a as o,c as r,i as s,u as t,t as u};
@@ -1 +0,0 @@
1
- import{g as e,m as t,o as n}from"./button-BDDZnIHx.js";import{s as r}from"./CSPContext-DBUu9tE0.js";var i=e();function a({className:e,size:a=`default`,unstyled:o=!1,...s}){return(0,i.jsx)(`span`,{className:t(!o&&`relative inline-flex w-full rounded-lg border border-input bg-background not-dark:bg-clip-padding text-base text-foreground shadow-xs/5 ring-ring/24 transition-shadow before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 has-aria-invalid:border-destructive/36 has-focus-visible:border-ring has-disabled:opacity-64 has-[:disabled,:focus-visible,[aria-invalid]]:shadow-none has-focus-visible:ring-[3px] not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] sm:text-sm dark:bg-input/32 dark:has-aria-invalid:ring-destructive/24 dark:not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)]`,e)||void 0,"data-size":a,"data-slot":`textarea-control`,children:(0,i.jsx)(r,{render:e=>(0,i.jsx)(`textarea`,{className:t(`field-sizing-content min-h-17.5 w-full rounded-[inherit] px-[calc(--spacing(3)-1px)] py-[calc(--spacing(1.5)-1px)] outline-none max-sm:min-h-20.5`,a===`sm`&&`min-h-16.5 px-[calc(--spacing(2.5)-1px)] py-[calc(--spacing(1)-1px)] max-sm:min-h-19.5`,a===`lg`&&`min-h-18.5 py-[calc(--spacing(2)-1px)] max-sm:min-h-21.5`),"data-slot":`textarea`,...n(e,s)})})})}export{a as t};
@@ -1 +0,0 @@
1
- import{_ as e,b as t}from"./button-BDDZnIHx.js";import{in as n,pn as r}from"./CSPContext-DBUu9tE0.js";var i=t(e(),1);function a(e,t,a,s=!0,c){let[l,u]=i.useState(),d=n(c?`${c}-label`:void 0),f=e??t??l;return r(()=>{let n=e||t||!s?void 0:o(a.current,d);l!==n&&u(n)}),f}function o(e,t){let n=s(e);if(n)return!n.id&&t&&(n.id=t),n.id||void 0}function s(e){if(!e)return;let t=e.parentElement;if(t&&t.tagName===`LABEL`)return t;let n=e.id;if(n){let t=e.nextElementSibling;if(t&&t.htmlFor===n)return t}let r=e.labels;return r&&r[0]}export{a as t};
@@ -1 +0,0 @@
1
- import{_ as e,b as t}from"./button-BDDZnIHx.js";import{mn as n,pn as r}from"./CSPContext-DBUu9tE0.js";var i=t(e(),1);function a(e,t){let a=i.useRef(e),o=n(t);r(()=>{a.current!==e&&o(a.current)},[e,o]),r(()=>{a.current=e},[e])}export{a as t};
@@ -1 +0,0 @@
1
- import{h as e}from"./button-BDDZnIHx.js";var t=e(`zap`,[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]]);export{t};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=contract.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../../src/harness/contract.test.ts"],"names":[],"mappings":""}
@@ -1,426 +0,0 @@
1
- import { describe, expect, it, vi } from 'vitest';
2
- import { ClaudeCodeAdapter } from './claude.js';
3
- import { CodexAdapter } from './codex.js';
4
- describe('Harness Contract Test Suite (Issue #174)', () => {
5
- describe('ClaudeCodeAdapter Contract', () => {
6
- it('resolves lazy sessionId and normalizes stream events and usage', async () => {
7
- async function* fakeQuery() {
8
- yield {
9
- type: 'system',
10
- subtype: 'init',
11
- session_id: '123e4567-e89b-12d3-a456-426614174000',
12
- };
13
- yield {
14
- type: 'stream_event',
15
- event: {
16
- type: 'content_block_delta',
17
- delta: { type: 'text_delta', text: 'Hello from Claude' },
18
- },
19
- };
20
- yield {
21
- type: 'assistant',
22
- message: {
23
- content: [{ type: 'text', text: 'Hello from Claude' }],
24
- },
25
- };
26
- yield {
27
- type: 'result',
28
- subtype: 'success',
29
- result: 'Hello from Claude',
30
- total_cost_usd: 0.002,
31
- usage: {
32
- input_tokens: 120,
33
- output_tokens: 30,
34
- cache_read_input_tokens: 40,
35
- },
36
- };
37
- }
38
- const mockQueryFn = vi.fn().mockReturnValue(fakeQuery());
39
- const adapter = new ClaudeCodeAdapter(undefined, mockQueryFn);
40
- const handle = await adapter.start({
41
- prompt: 'Say hello',
42
- workspace: { workspaceId: 'test-ws', rootPath: 'C:/test' },
43
- env: { ANTHROPIC_API_KEY: 'sk-ant-test' },
44
- });
45
- const sessionId = await handle.sessionId();
46
- expect(sessionId).toBe('123e4567-e89b-12d3-a456-426614174000');
47
- const events = [];
48
- for await (const ev of handle.events) {
49
- events.push(ev);
50
- if (ev.type === 'turn_completed')
51
- break;
52
- }
53
- expect(events).toContainEqual({
54
- type: 'session_started',
55
- sessionId: '123e4567-e89b-12d3-a456-426614174000',
56
- });
57
- expect(events).toContainEqual({
58
- type: 'text_delta',
59
- text: 'Hello from Claude',
60
- });
61
- expect(events).toContainEqual({
62
- type: 'assistant_message',
63
- text: 'Hello from Claude',
64
- });
65
- expect(events).toContainEqual({
66
- type: 'turn_completed',
67
- usage: {
68
- inputTokens: 120,
69
- outputTokens: 30,
70
- cachedInputTokens: 40,
71
- costUsdEstimate: 0.002,
72
- },
73
- });
74
- await handle.dispose();
75
- });
76
- it('cancels active turn cleanly on handle.interrupt() via AbortController', async () => {
77
- let aborted = false;
78
- async function* fakeLongQuery(args) {
79
- const signal = args.options.abortController.signal;
80
- signal.addEventListener('abort', () => {
81
- aborted = true;
82
- });
83
- yield {
84
- type: 'system',
85
- subtype: 'init',
86
- session_id: '123e4567-e89b-12d3-a456-426614174000',
87
- };
88
- yield {
89
- type: 'stream_event',
90
- event: {
91
- type: 'content_block_delta',
92
- delta: { type: 'text_delta', text: 'Starting long task...' },
93
- },
94
- };
95
- // Simulate waiting for abort
96
- while (!signal.aborted) {
97
- await new Promise((r) => setTimeout(r, 10));
98
- }
99
- }
100
- const mockQueryFn = vi.fn().mockImplementation((args) => fakeLongQuery(args));
101
- const adapter = new ClaudeCodeAdapter(undefined, mockQueryFn);
102
- const handle = await adapter.start({
103
- prompt: 'Long running task',
104
- workspace: { workspaceId: 'test-ws', rootPath: 'C:/test' },
105
- env: { ANTHROPIC_API_KEY: 'sk-ant-test' },
106
- });
107
- await handle.interrupt();
108
- expect(aborted).toBe(true);
109
- await handle.dispose();
110
- });
111
- });
112
- describe('CodexAdapter Contract & MCP Smoke Test', () => {
113
- it('executes Codex thread lifecycle, maps MCP tool items, and normalizes usage', async () => {
114
- async function* fakeStream() {
115
- yield {
116
- type: 'thread.started',
117
- thread_id: 'codex-thread-12345',
118
- };
119
- yield {
120
- type: 'item.completed',
121
- item: {
122
- id: 'mcp-call-1',
123
- type: 'mcp_tool_call',
124
- server: 'nexusflow',
125
- tool: 'list_repos',
126
- arguments: {},
127
- status: 'completed',
128
- result: {
129
- content: [{ type: 'text', text: '["repo1"]' }],
130
- structured_content: ['repo1'],
131
- },
132
- },
133
- };
134
- yield {
135
- type: 'item.completed',
136
- item: {
137
- id: 'agent-msg-1',
138
- type: 'agent_message',
139
- text: 'Found 1 repo in workspace.',
140
- },
141
- };
142
- yield {
143
- type: 'turn.completed',
144
- usage: {
145
- input_tokens: 200,
146
- output_tokens: 50,
147
- cached_input_tokens: 100,
148
- },
149
- };
150
- }
151
- const mockThread = {
152
- id: 'codex-thread-12345',
153
- runStreamed: vi.fn().mockResolvedValue({ events: fakeStream() }),
154
- };
155
- const mockClient = {
156
- startThread: vi.fn().mockReturnValue(mockThread),
157
- };
158
- const adapter = new CodexAdapter({}, () => mockClient);
159
- const handle = await adapter.start({
160
- prompt: 'List repos via MCP',
161
- workspace: { workspaceId: 'test-ws', rootPath: 'C:/test' },
162
- env: { OPENAI_API_KEY: 'sk-test' },
163
- mcpServers: {
164
- nexusflow: {
165
- command: process.execPath,
166
- args: ['mcp', 'run'],
167
- },
168
- },
169
- });
170
- const sessionId = await handle.sessionId();
171
- expect(sessionId).toBe('codex-thread-12345');
172
- const events = [];
173
- for await (const ev of handle.events) {
174
- events.push(ev);
175
- if (ev.type === 'turn_completed')
176
- break;
177
- }
178
- expect(events).toContainEqual({
179
- type: 'session_started',
180
- sessionId: 'codex-thread-12345',
181
- });
182
- expect(events).toContainEqual({
183
- type: 'tool_completed',
184
- callId: 'mcp-call-1',
185
- ok: true,
186
- outputSummary: undefined,
187
- });
188
- expect(events).toContainEqual({
189
- type: 'assistant_message',
190
- text: 'Found 1 repo in workspace.',
191
- });
192
- expect(events).toContainEqual({
193
- type: 'turn_completed',
194
- usage: {
195
- inputTokens: 200,
196
- outputTokens: 50,
197
- cachedInputTokens: 100,
198
- },
199
- });
200
- await handle.dispose();
201
- });
202
- it('keeps the handle stream open for a queued follow-up turn', async () => {
203
- let finishFirstTurn;
204
- let finishSecondTurn;
205
- const firstTurnFinished = new Promise((resolve) => {
206
- finishFirstTurn = resolve;
207
- });
208
- const secondTurnFinished = new Promise((resolve) => {
209
- finishSecondTurn = resolve;
210
- });
211
- async function* firstTurn() {
212
- try {
213
- yield {
214
- type: 'thread.started',
215
- thread_id: 'codex-thread-multi-turn',
216
- };
217
- yield {
218
- type: 'item.completed',
219
- item: {
220
- id: 'agent-msg-first',
221
- type: 'agent_message',
222
- text: 'First response',
223
- },
224
- };
225
- yield {
226
- type: 'turn.completed',
227
- usage: { input_tokens: 10, output_tokens: 2 },
228
- };
229
- }
230
- finally {
231
- finishFirstTurn();
232
- }
233
- }
234
- async function* secondTurn() {
235
- try {
236
- yield {
237
- type: 'item.completed',
238
- item: {
239
- id: 'agent-msg-second',
240
- type: 'agent_message',
241
- text: 'Second response',
242
- },
243
- };
244
- yield {
245
- type: 'turn.completed',
246
- usage: { input_tokens: 12, output_tokens: 3 },
247
- };
248
- }
249
- finally {
250
- finishSecondTurn();
251
- }
252
- }
253
- const runStreamed = vi.fn()
254
- .mockResolvedValueOnce({ events: firstTurn() })
255
- .mockResolvedValueOnce({ events: secondTurn() });
256
- const mockThread = {
257
- id: 'codex-thread-multi-turn',
258
- runStreamed,
259
- };
260
- const mockClient = {
261
- startThread: vi.fn().mockReturnValue(mockThread),
262
- };
263
- const adapter = new CodexAdapter({}, () => mockClient);
264
- const handle = await adapter.start({
265
- prompt: 'First prompt',
266
- workspace: { workspaceId: 'test-ws', rootPath: 'C:/test' },
267
- env: { OPENAI_API_KEY: 'sk-test' },
268
- });
269
- const events = handle.events[Symbol.asyncIterator]();
270
- try {
271
- await expect(events.next()).resolves.toEqual({
272
- done: false,
273
- value: { type: 'session_started', sessionId: 'codex-thread-multi-turn' },
274
- });
275
- await expect(events.next()).resolves.toEqual({
276
- done: false,
277
- value: { type: 'assistant_message', text: 'First response' },
278
- });
279
- await expect(events.next()).resolves.toMatchObject({
280
- done: false,
281
- value: { type: 'turn_completed' },
282
- });
283
- await firstTurnFinished;
284
- await new Promise((resolve) => setImmediate(resolve));
285
- handle.send('Second prompt');
286
- await expect(events.next()).resolves.toEqual({
287
- done: false,
288
- value: { type: 'assistant_message', text: 'Second response' },
289
- });
290
- await expect(events.next()).resolves.toMatchObject({
291
- done: false,
292
- value: { type: 'turn_completed' },
293
- });
294
- await secondTurnFinished;
295
- await new Promise((resolve) => setImmediate(resolve));
296
- expect(runStreamed).toHaveBeenNthCalledWith(1, 'First prompt', expect.any(Object));
297
- expect(runStreamed).toHaveBeenNthCalledWith(2, 'Second prompt', expect.any(Object));
298
- const pendingNext = events.next();
299
- const stateBeforeDispose = await Promise.race([
300
- pendingNext.then(() => 'settled'),
301
- new Promise((resolve) => setTimeout(() => resolve('pending'), 25)),
302
- ]);
303
- expect(stateBeforeDispose).toBe('pending');
304
- await handle.dispose();
305
- await expect(pendingNext).resolves.toEqual({ done: true, value: undefined });
306
- }
307
- finally {
308
- await handle.dispose();
309
- }
310
- });
311
- it('applies model and native thread options when resuming a Codex thread', async () => {
312
- const mockThread = {
313
- id: 'codex-thread-resumed',
314
- runStreamed: vi.fn(),
315
- };
316
- const mockClient = {
317
- resumeThread: vi.fn().mockReturnValue(mockThread),
318
- };
319
- const adapter = new CodexAdapter({}, () => mockClient);
320
- const handle = await adapter.resume({
321
- sessionId: 'codex-thread-resumed',
322
- mode: 'resume',
323
- workspace: { workspaceId: 'test-ws', rootPath: 'C:/test' },
324
- env: { OPENAI_API_KEY: 'sk-test' },
325
- model: 'gpt-5.6-terra',
326
- nativeOptions: { sandboxMode: 'read-only' },
327
- });
328
- expect(mockClient.resumeThread).toHaveBeenCalledWith('codex-thread-resumed', {
329
- model: 'gpt-5.6-terra',
330
- sandboxMode: 'read-only',
331
- });
332
- expect(mockThread.runStreamed).not.toHaveBeenCalled();
333
- await handle.dispose();
334
- });
335
- it('cancels active Codex turn on handle.interrupt() via AbortSignal', async () => {
336
- let aborted = false;
337
- async function* fakeLongStream(signal) {
338
- if (signal) {
339
- signal.addEventListener('abort', () => {
340
- aborted = true;
341
- });
342
- }
343
- yield {
344
- type: 'thread.started',
345
- thread_id: 'codex-thread-abort',
346
- };
347
- while (!signal?.aborted) {
348
- await new Promise((r) => setTimeout(r, 10));
349
- }
350
- }
351
- const mockThread = {
352
- id: 'codex-thread-abort',
353
- runStreamed: vi.fn().mockImplementation((_prompt, opts) => {
354
- return Promise.resolve({ events: fakeLongStream(opts?.signal) });
355
- }),
356
- };
357
- const mockClient = {
358
- startThread: vi.fn().mockReturnValue(mockThread),
359
- };
360
- const adapter = new CodexAdapter({}, () => mockClient);
361
- const handle = await adapter.start({
362
- prompt: 'Long running codex task',
363
- workspace: { workspaceId: 'test-ws', rootPath: 'C:/test' },
364
- env: { OPENAI_API_KEY: 'sk-test' },
365
- });
366
- await handle.interrupt();
367
- expect(aborted).toBe(true);
368
- await handle.dispose();
369
- });
370
- it('does not run queued or later prompts after an interrupted turn fails fatally', async () => {
371
- let streamWaiting;
372
- const streamIsWaiting = new Promise((resolve) => {
373
- streamWaiting = resolve;
374
- });
375
- async function* interruptedStream(signal) {
376
- yield {
377
- type: 'thread.started',
378
- thread_id: 'codex-thread-interrupted',
379
- };
380
- await new Promise((_resolve, reject) => {
381
- const fail = () => reject(new Error('turn aborted'));
382
- if (signal?.aborted) {
383
- fail();
384
- return;
385
- }
386
- signal?.addEventListener('abort', fail, { once: true });
387
- streamWaiting();
388
- });
389
- }
390
- const runStreamed = vi.fn().mockImplementation((_prompt, opts) => (Promise.resolve({ events: interruptedStream(opts?.signal) })));
391
- const mockThread = {
392
- id: 'codex-thread-interrupted',
393
- runStreamed,
394
- };
395
- const mockClient = {
396
- startThread: vi.fn().mockReturnValue(mockThread),
397
- };
398
- const adapter = new CodexAdapter({}, () => mockClient);
399
- const handle = await adapter.start({
400
- prompt: 'Active prompt',
401
- workspace: { workspaceId: 'test-ws', rootPath: 'C:/test' },
402
- env: { OPENAI_API_KEY: 'sk-test' },
403
- });
404
- const events = handle.events[Symbol.asyncIterator]();
405
- await expect(events.next()).resolves.toEqual({
406
- done: false,
407
- value: { type: 'session_started', sessionId: 'codex-thread-interrupted' },
408
- });
409
- await streamIsWaiting;
410
- handle.send('Queued follow-up');
411
- await handle.interrupt();
412
- await expect(events.next()).resolves.toMatchObject({
413
- done: false,
414
- value: { type: 'turn_failed', fatal: true },
415
- });
416
- await expect(events.next()).resolves.toEqual({ done: true, value: undefined });
417
- await new Promise((resolve) => setImmediate(resolve));
418
- expect(runStreamed).toHaveBeenCalledTimes(1);
419
- handle.send('Prompt after fatal failure');
420
- await new Promise((resolve) => setImmediate(resolve));
421
- expect(runStreamed).toHaveBeenCalledTimes(1);
422
- await handle.dispose();
423
- });
424
- });
425
- });
426
- //# sourceMappingURL=contract.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.test.js","sourceRoot":"","sources":["../../src/harness/contract.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=harness.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"harness.test.d.ts","sourceRoot":"","sources":["../../src/harness/harness.test.ts"],"names":[],"mappings":""}