cli-jaw 2.17.62 → 2.17.63

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 (360) hide show
  1. package/README.ja.md +17 -17
  2. package/README.ko.md +17 -17
  3. package/README.md +17 -17
  4. package/README.zh-CN.md +17 -17
  5. package/dist/bin/commands/tui/input-handler.js +19 -0
  6. package/dist/bin/commands/tui/input-handler.js.map +1 -1
  7. package/dist/bin/commands/tui/overlays.js +8 -4
  8. package/dist/bin/commands/tui/overlays.js.map +1 -1
  9. package/dist/bin/star-prompt.js +1 -1
  10. package/dist/bin/star-prompt.js.map +1 -1
  11. package/dist/server.js +14 -1
  12. package/dist/server.js.map +1 -1
  13. package/dist/src/agent/claude-runtime-pool.js +2 -1
  14. package/dist/src/agent/claude-runtime-pool.js.map +1 -1
  15. package/dist/src/agent/claude-runtime-run.js +28 -7
  16. package/dist/src/agent/claude-runtime-run.js.map +1 -1
  17. package/dist/src/agent/lifecycle-handler.js +34 -6
  18. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  19. package/dist/src/agent/runtime/claude-sdk-events.js +136 -9
  20. package/dist/src/agent/runtime/claude-sdk-events.js.map +1 -1
  21. package/dist/src/agent/runtime/claude-sdk-history-loader.js +24 -0
  22. package/dist/src/agent/runtime/claude-sdk-history-loader.js.map +1 -0
  23. package/dist/src/agent/runtime/claude-sdk-hooks.js +10 -4
  24. package/dist/src/agent/runtime/claude-sdk-hooks.js.map +1 -1
  25. package/dist/src/agent/runtime/claude-sdk-messages.js +25 -2
  26. package/dist/src/agent/runtime/claude-sdk-messages.js.map +1 -1
  27. package/dist/src/agent/runtime/claude-sdk-options.js +36 -3
  28. package/dist/src/agent/runtime/claude-sdk-options.js.map +1 -1
  29. package/dist/src/agent/runtime/claude-sdk-permissions.js +32 -9
  30. package/dist/src/agent/runtime/claude-sdk-permissions.js.map +1 -1
  31. package/dist/src/agent/runtime/claude-sdk-session.js +165 -17
  32. package/dist/src/agent/runtime/claude-sdk-session.js.map +1 -1
  33. package/dist/src/agent/runtime/claude-sdk-version.js +8 -0
  34. package/dist/src/agent/runtime/claude-sdk-version.js.map +1 -0
  35. package/dist/src/agent/spawn/backend-codex-app.js +619 -0
  36. package/dist/src/agent/spawn/backend-codex-app.js.map +1 -0
  37. package/dist/src/agent/spawn/backend-context.js +2 -0
  38. package/dist/src/agent/spawn/backend-context.js.map +1 -0
  39. package/dist/src/agent/spawn/backend-copilot.js +385 -0
  40. package/dist/src/agent/spawn/backend-copilot.js.map +1 -0
  41. package/dist/src/agent/spawn/backend-native-acp.js +379 -0
  42. package/dist/src/agent/spawn/backend-native-acp.js.map +1 -0
  43. package/dist/src/agent/spawn/backend-pi.js +565 -0
  44. package/dist/src/agent/spawn/backend-pi.js.map +1 -0
  45. package/dist/src/agent/spawn/types.js +2 -0
  46. package/dist/src/agent/spawn/types.js.map +1 -0
  47. package/dist/src/agent/spawn.js +44 -1858
  48. package/dist/src/agent/spawn.js.map +1 -1
  49. package/dist/src/cli/claude-default-model-boot.js +36 -0
  50. package/dist/src/cli/claude-default-model-boot.js.map +1 -0
  51. package/dist/src/cli/claude-model-discovery.js +13 -1
  52. package/dist/src/cli/claude-model-discovery.js.map +1 -1
  53. package/dist/src/cli/claude-models.js +7 -1
  54. package/dist/src/cli/claude-models.js.map +1 -1
  55. package/dist/src/cli/commands.js +5 -15
  56. package/dist/src/cli/commands.js.map +1 -1
  57. package/dist/src/cli/tui/composer.js +3 -3
  58. package/dist/src/cli/tui/composer.js.map +1 -1
  59. package/dist/src/cli/tui/skill-mention.js +15 -0
  60. package/dist/src/cli/tui/skill-mention.js.map +1 -0
  61. package/dist/src/code-mode/manager.js +174 -9
  62. package/dist/src/code-mode/manager.js.map +1 -1
  63. package/dist/src/code-mode/providers/catalog.js +5 -3
  64. package/dist/src/code-mode/providers/catalog.js.map +1 -1
  65. package/dist/src/code-mode/providers/claude-history.js +132 -0
  66. package/dist/src/code-mode/providers/claude-history.js.map +1 -0
  67. package/dist/src/code-mode/providers/claude.js +74 -7
  68. package/dist/src/code-mode/providers/claude.js.map +1 -1
  69. package/dist/src/code-mode/providers/codex-app.js +7 -1
  70. package/dist/src/code-mode/providers/codex-app.js.map +1 -1
  71. package/dist/src/code-mode/session.js +158 -11
  72. package/dist/src/code-mode/session.js.map +1 -1
  73. package/dist/src/code-mode/store.js +416 -28
  74. package/dist/src/code-mode/store.js.map +1 -1
  75. package/dist/src/command-contract/catalog.js +3 -22
  76. package/dist/src/command-contract/catalog.js.map +1 -1
  77. package/dist/src/core/codex-config.js +3 -62
  78. package/dist/src/core/codex-config.js.map +1 -1
  79. package/dist/src/core/config.js +116 -14
  80. package/dist/src/core/config.js.map +1 -1
  81. package/dist/src/core/runtime-settings.js +20 -10
  82. package/dist/src/core/runtime-settings.js.map +1 -1
  83. package/dist/src/core/settings-watch.js +1 -0
  84. package/dist/src/core/settings-watch.js.map +1 -1
  85. package/dist/src/core/skill-mentions.js +83 -0
  86. package/dist/src/core/skill-mentions.js.map +1 -0
  87. package/dist/src/manager/registry.js +5 -1
  88. package/dist/src/manager/registry.js.map +1 -1
  89. package/dist/src/manager/routes/desktop-status.js +1 -1
  90. package/dist/src/manager/routes/desktop-status.js.map +1 -1
  91. package/dist/src/orchestrator/pipeline.js +11 -1
  92. package/dist/src/orchestrator/pipeline.js.map +1 -1
  93. package/dist/src/prompt/builder.js +10 -4
  94. package/dist/src/prompt/builder.js.map +1 -1
  95. package/dist/src/prompt/templates/a1-system.md +1 -1
  96. package/dist/src/routes/code-native.js +51 -3
  97. package/dist/src/routes/code-native.js.map +1 -1
  98. package/dist/src/routes/settings.js +1 -4
  99. package/dist/src/routes/settings.js.map +1 -1
  100. package/dist/src/routes/skills.js +7 -0
  101. package/dist/src/routes/skills.js.map +1 -1
  102. package/dist/src/shared/skill-mention.js +61 -0
  103. package/dist/src/shared/skill-mention.js.map +1 -0
  104. package/dist/src/shared/tool-input.js +137 -0
  105. package/dist/src/shared/tool-input.js.map +1 -0
  106. package/package.json +7 -5
  107. package/public/css/activity.css +83 -20
  108. package/public/css/layout.css +2 -2
  109. package/public/css/sidebar.css +18 -0
  110. package/public/css/variables.css +23 -2
  111. package/public/dist/.vite/manifest.json +302 -334
  112. package/public/dist/assets/Activity-DPLlOJ46.js +1 -0
  113. package/public/dist/assets/AdvancedExport-BgOgGvc5.js +1 -0
  114. package/public/dist/assets/Agent-O_U8ny90.js +1 -0
  115. package/public/dist/assets/Browser-m6VynQXV.js +1 -0
  116. package/public/dist/assets/BrowserPanel-Bb-Bge6B.js +3 -0
  117. package/public/dist/assets/ChannelEnablementControl-BSuKQhTW.js +85 -0
  118. package/public/dist/assets/ChannelSetupEntry-DHLoZEzJ.js +1 -0
  119. package/public/dist/assets/ChannelsDiscord-B-G8vsYy.js +1 -0
  120. package/public/dist/assets/ChannelsSlack-oPuh922z.js +1 -0
  121. package/public/dist/assets/ChannelsTelegram-PmTv43KQ.js +1 -0
  122. package/public/dist/assets/CodeCanvas-CVbdp0S-.js +3 -0
  123. package/public/dist/assets/DashboardMeta-BqEiJrvr.js +1 -0
  124. package/public/dist/assets/DesignPanel-BOb-HMbl.js +2 -0
  125. package/public/dist/assets/{Developer-BdKPcw8Z.js → Developer-CbySB7_Z.js} +1 -1
  126. package/public/dist/assets/{DiffPanel-DtJuvU5y.js → DiffPanel-D9Cch5FG.js} +1 -1
  127. package/public/dist/assets/Display-C0Zdamcb.js +1 -0
  128. package/public/dist/assets/Display-DU4_76cS.js +1 -0
  129. package/public/dist/assets/DocPanel-DvtFw8AP.js +1 -0
  130. package/public/dist/assets/{Embedding-DvdTj1BF.js → Embedding-CCFMOB_2.js} +1 -1
  131. package/public/dist/assets/Employees-BanvF58d.js +1 -0
  132. package/public/dist/assets/FolderPanel-CJvwRwIV.js +3 -0
  133. package/public/dist/assets/Heartbeat-uyi_MpUd.js +1 -0
  134. package/public/dist/assets/InlineWarn-Cq4z28F3.js +1 -0
  135. package/public/dist/assets/MarkdownRenderer-Cc3DeHvm.js +1 -0
  136. package/public/dist/assets/{MarkdownRenderer-DhonsAPC.js → MarkdownRenderer-DzN66XVb.js} +1 -1
  137. package/public/dist/assets/Mcp-rjPoL_Zo.js +4 -0
  138. package/public/dist/assets/Memory-C9I33pIi.js +1 -0
  139. package/public/dist/assets/{MilkdownWysiwygEditor-D6JaLDE4.js → MilkdownWysiwygEditor-xObhviw7.js} +1 -1
  140. package/public/dist/assets/ModelProvider-fiUktMaO.js +1 -0
  141. package/public/dist/assets/Network-CuqFrOvR.js +1 -0
  142. package/public/dist/assets/NotesGraphWorkspace-DO9LtVGF.js +1 -0
  143. package/public/dist/assets/PanelLayoutProvider-DRZ4QkBC.js +1 -0
  144. package/public/dist/assets/Permissions-BltXiZnz.js +1 -0
  145. package/public/dist/assets/{Permissions-BwiMEoTV.js → Permissions-DcCbFMIq.js} +1 -1
  146. package/public/dist/assets/Profile-DUL7-RE_.js +1 -0
  147. package/public/dist/assets/Prompts-C9vY8ivQ.js +1 -0
  148. package/public/dist/assets/SpeechKeys-BJ8V7U5E.js +1 -0
  149. package/public/dist/assets/TelegramHub-DtyjLGFR.js +1 -0
  150. package/public/dist/assets/{TerminalPanel-Bu9i-P2f.js → TerminalPanel-c1xhiy53.js} +1 -1
  151. package/public/dist/assets/app-BjKzqXCv.css +1 -0
  152. package/public/dist/assets/app-CZwx0V6K.js +59 -0
  153. package/public/dist/assets/bgtask-badge-CnVkcp3c.js +1 -0
  154. package/public/dist/assets/{bgtask-badge-DfiHuzxT.js → bgtask-badge-Cp26S8Uq.js} +1 -1
  155. package/public/dist/assets/client-platform-WO8m6kPQ.js +1 -0
  156. package/public/dist/assets/{employees-BQaJNp-u.js → employees-CsvI0_5V.js} +1 -1
  157. package/public/dist/assets/error-normalize-clOi-AAA.js +1 -0
  158. package/public/dist/assets/fields-CicOWY-X.js +1 -0
  159. package/public/dist/assets/iframe-renderer-DWx9v2Iz.js +1 -0
  160. package/public/dist/assets/iframe-renderer-DmHYOI1A.js +142 -0
  161. package/public/dist/assets/{react-C_pPTFsM.js → jsx-runtime-CkEUZM6i.js} +1 -1
  162. package/public/dist/assets/manager-CCXm5Yfe.js +5 -0
  163. package/public/dist/assets/manager-D9rhKFKc.css +1 -0
  164. package/public/dist/assets/manager-shortcuts-Cqmr0mEq.js +1 -0
  165. package/public/dist/assets/{memory-EG1B51up.js → memory-C6qtAMdJ.js} +1 -1
  166. package/public/dist/assets/memory-PPofQPeB.js +1 -0
  167. package/public/dist/assets/message-history-DcjBuubA.js +4 -0
  168. package/public/dist/assets/message-history-bw4qF01Z.js +1 -0
  169. package/public/dist/assets/page-shell-DfinU3mb.js +1 -0
  170. package/public/dist/assets/react-dom-URBLzV3w.js +1 -0
  171. package/public/dist/assets/{render-Dp07lZAJ.js → render-DfYro-fG.js} +1 -1
  172. package/public/dist/assets/{settings-jlI4X-zt.js → settings-CvsLWlJn.js} +38 -30
  173. package/public/dist/assets/settings-DMiQe469.js +1 -0
  174. package/public/dist/assets/settings-DgAlohx9.js +1 -0
  175. package/public/dist/assets/settings-core-BH7J_Rbm.js +1 -0
  176. package/public/dist/assets/{settings-core-B5Uf_lWY.js → settings-core-pnpw-eZv.js} +1 -1
  177. package/public/dist/assets/{settings-embedding-BfWzWKMM.js → settings-embedding-BRW0WZvh.js} +3 -3
  178. package/public/dist/assets/{settings-embedding-DhEdT86W.css → settings-embedding-CUQ8Is3y.css} +1 -1
  179. package/public/dist/assets/settings-types-CYKy0xz4.js +1 -0
  180. package/public/dist/assets/shared-D1begqvi.js +1 -0
  181. package/public/dist/assets/{sidebar-BUemG2ZN.js → sidebar-C_80w4iY.js} +3 -3
  182. package/public/dist/assets/{skills-CKUcEN9m.js → skills-D_2adqge.js} +1 -1
  183. package/public/dist/assets/skills-DeNVAVgt.js +1 -0
  184. package/public/dist/assets/{slash-commands-D34GgHFX.js → slash-commands-B_Hq5RkC.js} +2 -2
  185. package/public/dist/assets/slash-commands-Cj5qoRWc.js +1 -0
  186. package/public/dist/assets/tool-input-DI7uu8Ah.js +2 -0
  187. package/public/dist/assets/{trace-drawer-DBmK-5F_.js → trace-drawer-B6XuPodh.js} +1 -1
  188. package/public/dist/assets/ui-BbR_fFiK.js +1 -0
  189. package/public/dist/assets/{ui-vm2iuLcS.js → ui-D8xzm7DN.js} +1 -1
  190. package/public/dist/index.html +11 -3
  191. package/public/dist/manager/index.html +3 -3
  192. package/public/dist/settings/index.html +2 -2
  193. package/public/index.html +9 -1
  194. package/public/js/features/activity-history.ts +50 -21
  195. package/public/js/features/activity-rows.ts +158 -10
  196. package/public/js/features/activity-view.ts +5 -5
  197. package/public/js/features/chat.ts +2 -0
  198. package/public/js/features/employees.ts +1 -0
  199. package/public/js/features/resize-guard.ts +39 -0
  200. package/public/js/features/settings-cli-status.ts +49 -17
  201. package/public/js/features/settings-types.ts +39 -1
  202. package/public/js/features/skill-mentions.ts +143 -0
  203. package/public/js/main.ts +15 -0
  204. package/public/js/virtual-scroll.ts +67 -1
  205. package/public/locales/en.json +2 -0
  206. package/public/locales/ja.json +2 -0
  207. package/public/locales/ko.json +2 -0
  208. package/public/locales/zh.json +2 -0
  209. package/public/manager/src/AppChrome.tsx +2 -0
  210. package/public/manager/src/InstancePreview.tsx +1 -1
  211. package/public/manager/src/SidebarRailRouter.tsx +3 -1
  212. package/public/manager/src/browser-panel/BrowserPanel.tsx +47 -12
  213. package/public/manager/src/browser-panel/browser-address-state.ts +11 -0
  214. package/public/manager/src/client-platform.ts +18 -0
  215. package/public/manager/src/code/CodeCanvas.tsx +4 -2
  216. package/public/manager/src/code/CodeComposer.tsx +22 -10
  217. package/public/manager/src/code/CodeDraftEmptyState.tsx +64 -0
  218. package/public/manager/src/code/CodeSessionList.tsx +154 -40
  219. package/public/manager/src/code/CodeTranscript.tsx +104 -16
  220. package/public/manager/src/code/CodeWorkbench.tsx +21 -11
  221. package/public/manager/src/code/CodeWorkspaceHeader.tsx +5 -10
  222. package/public/manager/src/code/ComposerFooter.tsx +9 -1
  223. package/public/manager/src/code/code-composer.css +1 -1
  224. package/public/manager/src/code/code-controller-draft-storage.ts +16 -8
  225. package/public/manager/src/code/code-controller-drafts.ts +33 -6
  226. package/public/manager/src/code/code-controller-runtime.ts +189 -17
  227. package/public/manager/src/code/code-controller-types.ts +19 -1
  228. package/public/manager/src/code/code-recent-workspaces.ts +25 -0
  229. package/public/manager/src/code/code-session-client.ts +19 -1
  230. package/public/manager/src/code/code-session-sidebar.css +38 -0
  231. package/public/manager/src/code/code-session-state.ts +2 -0
  232. package/public/manager/src/code/code-types.ts +47 -0
  233. package/public/manager/src/code/code-workbench.css +36 -1
  234. package/public/manager/src/code/code.css +171 -7
  235. package/public/manager/src/code/session-order.ts +80 -0
  236. package/public/manager/src/code/tool-summary.ts +45 -11
  237. package/public/manager/src/folder-panel/folder-shortcuts.ts +5 -9
  238. package/public/manager/src/hooks/useCommandPalette.ts +3 -7
  239. package/public/manager/src/main.tsx +1 -0
  240. package/public/manager/src/manager-components.css +25 -23
  241. package/public/manager/src/manager-dashboard-reminders.css +2 -2
  242. package/public/manager/src/manager-layout.css +1 -1
  243. package/public/manager/src/manager-shortcut-runner.ts +9 -2
  244. package/public/manager/src/manager-shortcuts.ts +83 -21
  245. package/public/manager/src/panels/desktop-bridge.ts +4 -1
  246. package/public/manager/src/panels/panels.css +9 -0
  247. package/public/manager/src/preview.ts +19 -4
  248. package/public/manager/src/settings/pages/AdvancedExport.tsx +28 -30
  249. package/public/manager/src/settings/pages/Browser.tsx +45 -47
  250. package/public/manager/src/settings/pages/ChannelsDiscord.tsx +51 -26
  251. package/public/manager/src/settings/pages/ChannelsSlack.tsx +59 -17
  252. package/public/manager/src/settings/pages/ChannelsTelegram.tsx +51 -26
  253. package/public/manager/src/settings/pages/Display.tsx +2 -1
  254. package/public/manager/src/settings/pages/Employees.tsx +3 -3
  255. package/public/manager/src/settings/pages/Mcp.tsx +220 -200
  256. package/public/manager/src/settings/pages/Memory.tsx +35 -41
  257. package/public/manager/src/settings/pages/ModelProvider.tsx +23 -98
  258. package/public/manager/src/settings/pages/Network.tsx +5 -4
  259. package/public/manager/src/settings/pages/Permissions.tsx +38 -16
  260. package/public/manager/src/settings/pages/Prompts.tsx +12 -9
  261. package/public/manager/src/settings/pages/SpeechKeys.tsx +132 -139
  262. package/public/manager/src/settings/pages/TelegramHub.tsx +67 -20
  263. package/public/manager/src/settings/pages/components/AvatarCard.tsx +9 -8
  264. package/public/manager/src/settings/pages/components/ChannelSetupEntry.tsx +2 -2
  265. package/public/manager/src/settings/pages/components/EmployeeRow.tsx +6 -12
  266. package/public/manager/src/settings/pages/components/HealthBadge.tsx +11 -6
  267. package/public/manager/src/settings/pages/components/HeartbeatJobRow.tsx +35 -16
  268. package/public/manager/src/settings/pages/components/HeartbeatJobsSection.tsx +11 -11
  269. package/public/manager/src/settings/pages/components/HeartbeatMarkdownSection.tsx +7 -7
  270. package/public/manager/src/settings/pages/components/InlineWarn.tsx +4 -9
  271. package/public/manager/src/settings/pages/components/McpServerCard.tsx +39 -27
  272. package/public/manager/src/settings/pages/components/MemoryRow.tsx +21 -16
  273. package/public/manager/src/settings/pages/components/PerCliRow.tsx +122 -121
  274. package/public/manager/src/settings/pages/components/PiProfileDialog.tsx +9 -6
  275. package/public/manager/src/settings/pages/components/SlackSetup.tsx +8 -8
  276. package/public/manager/src/settings/pages/components/TransportStatusChips.tsx +14 -10
  277. package/public/manager/src/settings/pages/components/agent/AgentEmployeesSection.tsx +26 -26
  278. package/public/manager/src/settings/pages/components/agent/PermissionQuickSection.tsx +5 -5
  279. package/public/manager/src/settings/pages/components/agent/RuntimeEmployeeRow.tsx +14 -11
  280. package/public/manager/src/settings/pages/components/agent/RuntimeHeader.tsx +1 -3
  281. package/public/manager/src/settings/pages/components/agent/agent-meta.ts +0 -2
  282. package/public/manager/src/settings/pages/components/runtime-transport-field.tsx +2 -2
  283. package/public/manager/src/settings/pages/manager/Activity.tsx +6 -2
  284. package/public/manager/src/settings/pages/manager/Display.tsx +3 -8
  285. package/public/manager/src/settings/pages/manager/shared.tsx +44 -33
  286. package/public/manager/src/settings/pages/page-shell.tsx +66 -0
  287. package/public/manager/src/settings-agent.css +185 -36
  288. package/public/manager/src/settings-standalone.tsx +1 -0
  289. package/public/manager/src/settings-surface.css +96 -0
  290. package/public/manager/src/types.ts +1 -0
  291. package/scripts/ci/install-ripgrep.sh +35 -0
  292. package/scripts/collect-fresh-install-evidence.sh +2 -2
  293. package/scripts/install-risk-gate.mjs +2 -3
  294. package/scripts/install-wsl.sh +1 -1
  295. package/scripts/install.ps1 +1 -1
  296. package/scripts/install.sh +1 -1
  297. package/scripts/release-1.6.0.sh +1 -1
  298. package/scripts/release-gates.mjs +48 -13
  299. package/scripts/release-preview.sh +2 -2
  300. package/scripts/restack-pr.sh +88 -0
  301. package/scripts/verify-electron-update-metadata.mjs +1 -1
  302. package/scripts/windows-support-contract.json +1 -1
  303. package/public/dist/assets/Activity-BUrp73Re.js +0 -1
  304. package/public/dist/assets/AdvancedExport-B7h_ZvBu.js +0 -1
  305. package/public/dist/assets/Agent-DnbZJP7b.js +0 -1
  306. package/public/dist/assets/Browser-CiBoK5Qx.js +0 -1
  307. package/public/dist/assets/BrowserPanel-SZAUc9T2.js +0 -3
  308. package/public/dist/assets/ChannelEnablementControl-Dl0uYx38.js +0 -85
  309. package/public/dist/assets/ChannelSetupEntry-DxtOrN01.js +0 -1
  310. package/public/dist/assets/ChannelsDiscord-BEGGwd_3.js +0 -1
  311. package/public/dist/assets/ChannelsSlack-BryC2Ahr.js +0 -1
  312. package/public/dist/assets/ChannelsTelegram-CGSpaImJ.js +0 -1
  313. package/public/dist/assets/CodeCanvas-DpkFi5Au.js +0 -2
  314. package/public/dist/assets/DashboardMeta-Dh-tasbY.js +0 -1
  315. package/public/dist/assets/DesignPanel-NLNK9wCo.js +0 -2
  316. package/public/dist/assets/Display-BHGFX3O0.js +0 -1
  317. package/public/dist/assets/Display-BW-_pKRf.js +0 -1
  318. package/public/dist/assets/DocPanel-BM41cYpS.js +0 -1
  319. package/public/dist/assets/Employees-BuFw6-fT.js +0 -1
  320. package/public/dist/assets/FolderPanel-C-eQT3Yq.js +0 -3
  321. package/public/dist/assets/Heartbeat-CIVtKWNc.js +0 -1
  322. package/public/dist/assets/InlineWarn-DIMbcbzk.js +0 -1
  323. package/public/dist/assets/MarkdownRenderer-DyVx6DxM.js +0 -1
  324. package/public/dist/assets/Mcp-uKjor7vh.js +0 -4
  325. package/public/dist/assets/Memory-BSDIXT0B.js +0 -1
  326. package/public/dist/assets/ModelProvider-DMh2tXUx.js +0 -1
  327. package/public/dist/assets/Network-4Pa6JkhK.js +0 -1
  328. package/public/dist/assets/NotesGraphWorkspace-CgdC-fM6.js +0 -1
  329. package/public/dist/assets/PanelLayoutProvider-mn8sI0h-.js +0 -1
  330. package/public/dist/assets/Permissions-CodIW-Yd.js +0 -1
  331. package/public/dist/assets/Profile-DPqrYA44.js +0 -1
  332. package/public/dist/assets/Prompts-CvAx7QqR.js +0 -1
  333. package/public/dist/assets/SpeechKeys-CVBCqoBn.js +0 -1
  334. package/public/dist/assets/TelegramHub-4zKwpk0P.js +0 -1
  335. package/public/dist/assets/app-ByMfeXp-.js +0 -55
  336. package/public/dist/assets/app-DAJWqs33.css +0 -1
  337. package/public/dist/assets/bgtask-badge-Ch88fnhf.js +0 -1
  338. package/public/dist/assets/error-normalize-CL69Bl7z.js +0 -1
  339. package/public/dist/assets/fields-mlGpofqQ.js +0 -1
  340. package/public/dist/assets/iframe-renderer-Bj1JolO8.js +0 -142
  341. package/public/dist/assets/iframe-renderer-DWnvUSrx.js +0 -1
  342. package/public/dist/assets/jsx-runtime-NZYk81nU.js +0 -1
  343. package/public/dist/assets/manager-Bi_xw7TW.js +0 -5
  344. package/public/dist/assets/manager-BnQHAKk6.css +0 -1
  345. package/public/dist/assets/manager-shortcuts-BDOzd8zm.js +0 -1
  346. package/public/dist/assets/memory-Bk_cb3sw.js +0 -1
  347. package/public/dist/assets/message-history-D2vniu04.js +0 -4
  348. package/public/dist/assets/message-history-GAtF_wbZ.js +0 -1
  349. package/public/dist/assets/page-shell-BeGD0rRQ.js +0 -1
  350. package/public/dist/assets/react-dom-DyUOYpVL.js +0 -1
  351. package/public/dist/assets/settings-W4KG9ivu.js +0 -1
  352. package/public/dist/assets/settings-WVGhtneN.js +0 -1
  353. package/public/dist/assets/settings-client-CmwRsVd1.js +0 -1
  354. package/public/dist/assets/settings-core-CgKGnMA5.js +0 -1
  355. package/public/dist/assets/settings-types-D3cd6SWy.js +0 -1
  356. package/public/dist/assets/shared-CiNP20HB.js +0 -1
  357. package/public/dist/assets/skills-Co7Mr-qP.js +0 -1
  358. package/public/dist/assets/slash-commands-BEr-vmIr.js +0 -1
  359. package/public/dist/assets/ui-TUyJsMUf.js +0 -1
  360. package/public/manager/src/settings/pages/components/EngineSubsection.tsx +0 -25
@@ -1,4 +0,0 @@
1
- import{t as e}from"./state-Dl-xxPoS.js";import{a as t,n,t as r}from"./api-CUtiCd2-.js";import{n as i,t as a}from"./bounded-api-DdpT93LB.js";import{E as o,O as s,P as c,_ as l,a as u,c as d,d as f,g as p,i as m,k as h,o as g,r as _,s as v,t as ee,v as y}from"./render-Dp07lZAJ.js";import{a as b}from"./mermaid-preprocess-D8xe5R2A.js";import{a as x,r as te,t as S}from"./icons-CVkqyECl.js";import{t as C}from"./copy-text-DjgetgoZ.js";import{C as w,D as T,E,M as D,N as O,S as k,T as A,_ as j,b as M,d as N,h as P,j as F,m as ne,o as re,s as ie,t as ae,v as oe,x as se,y as I}from"./iframe-renderer-Bj1JolO8.js";import{a as ce,i as le,o as ue,s as de,t as fe}from"./idb-cache-BRpjf_a8.js";var pe=`agentAvatar`,me=`userAvatar`,he=`<img class="avatar-mascot" src="/icons/mascot.png" alt="" aria-hidden="true">`,ge=S.user,_e={agent:{emoji:he,imageUrl:``,updatedAt:null},user:{emoji:ge,imageUrl:``,updatedAt:null}},ve=!1;function L(e){return _e[e]}function ye(e){return e===`agent`?`agentAvatarPreview`:`userAvatarPreview`}function be(e){return e===`agent`?`.agent-icon`:`.user-icon`}function xe(e){let t=document.getElementById(ye(e));if(t){t.innerHTML=Se(e);let n=L(e).imageUrl?`image`:`emoji`;t.setAttribute(`data-avatar-kind`,n)}}function Se(e){let t=L(e);return t.imageUrl?`<img class="avatar-image" src="${s(t.imageUrl)}" alt="" loading="lazy" decoding="async">`:t.emoji}function Ce(e){let t=Se(e),n=L(e).imageUrl?`image`:`emoji`;document.querySelectorAll(be(e)).forEach(e=>{e.innerHTML=t,e.setAttribute(`data-avatar-kind`,n)})}function we(e,t){t?.kind===`image`&&t.imageUrl?(L(e).imageUrl=t.imageUrl,L(e).updatedAt=t.updatedAt??Date.now()):(L(e).imageUrl=``,L(e).updatedAt=t?.updatedAt??null),xe(e),Ce(e)}async function Te(){let e=await n(`/api/avatar`);e&&(we(`agent`,e.agent),we(`user`,e.user))}async function Ee(e,n){let r=await t(),i=new Headers(n.headers||{});return r&&i.set(`Authorization`,`Bearer ${r}`),fetch(e,{...n,headers:i})}async function De(e,t){let n=await Ee(`/api/avatar/${e}/upload`,{method:`POST`,headers:{"Content-Type":t.type||`image/png`,"X-Filename":encodeURIComponent(t.name)},body:t}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`avatar upload failed (${n.status})`);we(e,r?.data||r)}async function Oe(e){let t=await Ee(`/api/avatar/${e}/image`,{method:`DELETE`}),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n?.error||`avatar reset failed (${t.status})`);we(e,n?.data||n)}function ke(e){let t=e===`agent`?`agentAvatarUploadBtn`:`userAvatarUploadBtn`,n=e===`agent`?`agentAvatarResetBtn`:`userAvatarResetBtn`,r=e===`agent`?`agentAvatarFile`:`userAvatarFile`;document.getElementById(t)?.addEventListener(`click`,()=>{document.getElementById(r)?.click()}),document.getElementById(n)?.addEventListener(`click`,async()=>{try{await Oe(e)}catch(e){console.warn(`[avatar:reset]`,e.message)}}),document.getElementById(r)?.addEventListener(`change`,async t=>{let n=t.target,r=n.files?.[0];if(r)try{await De(e,r)}catch(e){console.warn(`[avatar:upload]`,e.message)}finally{n.value=``}})}function Ae(){return Se(`agent`)}function je(){return Se(`user`)}async function Me(){L(`agent`).emoji=localStorage.getItem(pe)||he,L(`user`).emoji=localStorage.getItem(me)||ge,xe(`agent`),xe(`user`),ve||(ve=!0,ke(`agent`),ke(`user`)),await Te(),Ce(`agent`),Ce(`user`)}function Ne(e){e.dataset.toolItemBound!==`1`&&(e.addEventListener(`click`,e=>{let t=e.target;if(!t)return;let n=t.closest(`.tool-item-toggle`);if(!n)return;let r=n.closest(`.tool-item`),i=r?.querySelector(`.tool-item-details`),a=n.querySelector(`.tool-item-chevron`);if(!r||!i)return;let o=i.classList.contains(`collapsed`);i.classList.toggle(`collapsed`,!o),r.classList.toggle(`expanded`,o),n.setAttribute(`aria-expanded`,o?`true`:`false`),a&&(a.innerHTML=o?S.chevronDown:S.chevronRight)}),e.dataset.toolItemBound=`1`)}function Pe(){document.querySelectorAll(`.tool-activity-live`).forEach(e=>e.remove()),document.querySelectorAll(`.msg-system.tool-activity`).forEach(e=>e.remove())}function Fe(){let e=Number(window.location.port);if(Number.isFinite(e)&&e>0)return e;let t=window.location.pathname.match(/^\/i\/(\d+)/);return t?Number(t[1]):null}function Ie(e){let t=e.split(/\r?\n/).map(e=>e.trim()).find(Boolean);return t?t.length>96?`${t.slice(0,93)}...`:t:`Pinned reminder`}function Le(e){let t=e.querySelector(`.msg-content`);return t?.getAttribute(`data-raw`)||t?.innerText||t?.textContent||``}function Re(e){if(!e)return null;let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}function ze(e,t){let n=Fe(),r=e.dataset.messageId||``;return{title:Ie(t),notes:t,priority:`normal`,instanceId:e.dataset.instanceId||(n?`port:${n}`:`browser`),messageId:r,turnIndex:Re(e.dataset.turnIndex),port:n,threadKey:window.location.pathname,sourceText:t}}function Be(e){e.classList.add(`copied`),e.innerHTML=S.checkSimple,setTimeout(()=>{e.classList.remove(`copied`),e.textContent=``},600)}async function Ve(e){let t=e.closest(`.msg`);t&&(await C(Le(t))).ok&&Be(e)}async function He(e,t){let r=e.closest(`.msg`);if(!r)return;let i=Le(r).trim();if(!i){t.onStatus?.(`Cannot pin an empty message as a reminder.`);return}e.setAttribute(`aria-busy`,`true`),e.classList.add(`is-pinning`);try{let a=await n(`/api/dashboard/reminders/from-message`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(ze(r,i))});if(!a?.ok)throw Error(a?.error||`Reminder pin failed`);e.classList.add(`is-pinned`),t.onStatus?.(`Pinned reminder: ${a.item?.title||Ie(i)}`)}catch(e){t.onStatus?.(`Reminder pin failed: ${e.message}`)}finally{e.classList.remove(`is-pinning`),e.removeAttribute(`aria-busy`)}}function Ue(e){let t=e.closest(`.tool-group-summary`);if(!t)return!1;let n=t.closest(`.tool-group`),r=t.nextElementSibling;if(n&&r){let e=!n.classList.contains(`expanded`);n.classList.toggle(`expanded`),r.classList.toggle(`collapsed`),t.setAttribute(`aria-expanded`,e?`true`:`false`)}return!0}function We(e){let t=[`data-message-role="${s(e.role)}"`,`data-message-id="${s(e.messageId)}"`];if(e.turnIndex!==null&&t.push(`data-turn-index="${e.turnIndex}"`),typeof window<`u`){let e=Fe();e&&t.push(`data-instance-id="port:${e}"`)}return t.join(` `)}function Ge(){return`<div class="msg-actions"><button class="msg-pin-reminder" type="button" title="Pin as reminder" aria-label="Pin as reminder"></button><button class="msg-copy" type="button" title="Copy" aria-label="Copy message"></button></div>`}function Ke(e={}){let t=document.getElementById(`chatMessages`);t&&(I(t),Ne(t),t.addEventListener(`click`,t=>{let n=t.target;if(Ue(n))return;let r=n.closest(`.msg-copy`);if(r){Ve(r).catch(t=>{e.onStatus?.(`Copy failed: ${t.message}`)});return}let i=n.closest(`.msg-pin-reminder`);i&&He(i,e)}))}var qe=`agentName`,Je=`CLI-JAW`,Ye=Je;function Xe(){return Ye}function Ze(e){Ye=(e||``).trim()||Je,localStorage.setItem(qe,Ye);let t=document.getElementById(`appNameInput`);t&&(t.value=Ye)}function Qe(){Ye=localStorage.getItem(qe)||Je;let e=document.getElementById(`appNameInput`);e&&(e.value=Ye),document.getElementById(`appNameSave`)?.addEventListener(`click`,()=>{let e=document.getElementById(`appNameInput`);e&&Ze(e.value)}),document.getElementById(`appNameInput`)?.addEventListener(`keydown`,e=>{let t=e;t.key===`Enter`&&(t.preventDefault(),Ze(t.target.value),t.target.blur())})}var $e=`:scope > .process-block, :scope > .tool-group, :scope > .msg-content > .process-block, :scope > .msg-content > .tool-group`;function et(e){return e.querySelector(`.agent-body`)}function tt(e){let t=et(e);return t?Array.from(t.querySelectorAll($e)):[]}function nt(e){let t=e.querySelector(`:scope > .msg-content`);return e.querySelector(`:scope > .process-block`)??e.querySelector(`:scope > .tool-group`)??t?.querySelector(`:scope > .process-block`)??t?.querySelector(`:scope > .tool-group`)??null}function rt(e){let t=et(e);if(!t)return;let n=t.querySelector(`.msg-content`),r=tt(e);if(r.length===0)return;let i=nt(t)??r[0];n&&i.parentElement!==t&&t.insertBefore(i,n);for(let e of r)e!==i&&(T(e),e.remove())}function it(e){return tt(e).length>0}function at(e){return e===`thinking`||e===`search`||e===`subagent`?e:`tool`}function ot(e){return e===`done`||e===`error`?e:`running`}function st(e){let t=e.dataset.stepId||``;if(!t)return null;let n=A(t),r=e.querySelector(`.process-step-label`)?.textContent?.trim()||``,i=e.querySelector(`.process-step-full`),a=i?.dataset.detailLazy===`true`?w(t)||n?.preview||``:i?.textContent||w(t)||n?.preview||``,o=e.querySelector(`.process-step-icon`)?.innerHTML||S.tool,s=Number(e.dataset.startTime||``);return{id:t,type:n?.type||at(e.dataset.type),icon:n?.icon||o,rawIcon:n?.rawIcon,label:n?.label||r,isEmployee:n?.isEmployee===!0||e.dataset.isEmployee===`true`,detail:a,detailPreview:n?.preview,detailLength:n?.detailLength,detailTruncated:n?.detailTruncated,stepRef:n?.stepRef||e.dataset.stepRef||``,traceRunId:n?.traceRunId||e.dataset.traceRunId||``,traceSeq:n?.traceSeq||Number(e.dataset.traceSeq||0)||void 0,detailAvailable:n?.detailAvailable,detailBytes:n?.detailBytes,rawRetentionStatus:n?.rawRetentionStatus,status:n?.status||ot(e.dataset.status),startTime:Number.isFinite(s)&&s>0?s:Date.now()}}function ct(e){let t=et(e)?.querySelector(`:scope > .process-block`);if(!t)return null;let n={element:t,steps:Array.from(t.querySelectorAll(`.process-step`)).map(st).filter(e=>!!e),collapsed:t.classList.contains(`collapsed`)};return E(n),n}function lt(e,t=!1){let n=w(e.id)||e.detail||e.detailPreview||``,r=t&&e.status===`running`?`done`:e.status;return{icon:e.rawIcon||e.icon||S.tool,rawIcon:e.rawIcon||e.icon||``,label:e.label||`tool`,isEmployee:e.isEmployee===!0,detail:n,toolType:e.type,stepRef:e.stepRef||``,status:r,traceRunId:e.traceRunId||``,traceSeq:e.traceSeq,detailAvailable:e.detailAvailable,detailBytes:e.detailBytes,rawRetentionStatus:e.rawRetentionStatus}}function ut(e,t=!1){let n=A(e);if(!n)return null;let r=t&&n.status===`running`?`done`:n.status;return{icon:n.rawIcon||n.icon||S.tool,rawIcon:n.rawIcon||n.icon||``,label:n.label||`tool`,isEmployee:n.isEmployee===!0,detail:w(e)||n.preview||``,toolType:n.type,stepRef:n.stepRef||``,status:r,traceRunId:n.traceRunId||``,traceSeq:n.traceSeq,detailAvailable:n.detailAvailable,detailBytes:n.detailBytes,rawRetentionStatus:n.rawRetentionStatus}}function dt(e,t=!1){if(!e)return[];if(`steps`in e)return e.steps.map(e=>lt(e,t));let n=new Set;e.querySelectorAll(`.process-block[data-process-step-ids]`).forEach(e=>{(e.dataset.processStepIds||``).split(/\s+/).filter(Boolean).forEach(e=>n.add(e))}),e.querySelectorAll(`.process-step[data-step-id]`).forEach(e=>{let t=e.dataset.stepId;t&&n.add(t)});let r=[];return n.forEach(n=>{let i=ut(n,t);if(i){r.push(i);return}let a=e.querySelector(`.process-step[data-step-id="${CSS.escape(n)}"]`),o=a?st(a):null;o&&r.push(lt(o,t))}),r}function ft(e){for(let t of tt(e))T(t),t.remove()}function pt(e){return Ae()}function mt(){let t=document.getElementById(`chatMessages`);if(!t||t.querySelector(`.skeleton-msg`)||e.currentAgentDiv&&e.currentAgentDiv.isConnected)return;gt();let n=document.createElement(`div`);n.className=`skeleton-msg`,n.innerHTML=`<div class="skeleton-line"></div><div class="skeleton-line"></div><div class="skeleton-line"></div>`,t.appendChild(n),ne()}function ht(){document.querySelectorAll(`.skeleton-msg`).forEach(e=>e.remove())}function gt(){document.getElementById(`emptyState`)?.classList.remove(`visible`)}function _t(){let e=document.getElementById(`chatMessages`);e&&e.children.length===0&&document.getElementById(`emptyState`)?.classList.add(`visible`)}function vt(e,t,n){let r=document.getElementById(`chatMessages`);if(!r)return;let i=j();gt();let a=document.createElement(`div`);a.className=`msg msg-system`+(n?` msg-type-${n}`:``)+(t?` `+t:``),a.innerHTML=b(e),i.active?i.appendLiveItem(a):r.appendChild(a),ne()}function yt(e){let t=e.match(/^\[(?:사용자가 파일 (\d+)개를 보냈습니다|User sent (\d+) files)\]/);if(t){let n=t[1]||t[2],r=e.match(/(?:사용자 메시지|User message): (.+)$/s);return`📎 [${n} files]${r?` `+r[1].trim():``}`}let n=e.match(/^\[(?:사용자가 파일을 보냈습니다|사용자가 이미지를 보냈습니다|사용자가 동영상을 보냈습니다|User sent a file|User sent an image|User sent a video|ユーザーがファイルを送信しました|ユーザーが画像を送信しました|ユーザーが動画を送信しました|用户发送了文件|用户发送了图片|用户发送了视频)[::]\s*([^\]]+)\]/);if(n){let t=n[1],i=t.split(`/`).pop()||t,a=e.match(/🎤\s*(.{0,80})/)?`${c(`chat.voice.label`)} `:``,o=e.match(/(?:사용자 메시지|User message): (.+)$/s),s=o?` `+o[1].trim():``,l=(i.split(`.`).pop()||``).toLowerCase(),u=`${r}/media/${encodeURIComponent(i)}`;return[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`].includes(l)?`${a}<img src="${u}" alt="${i}" class="chat-inline-img" loading="lazy" />${s?`<br>${s}`:``}`:[`mp4`,`webm`,`mov`,`ogg`].includes(l)?`${a}<video src="${u}" controls class="chat-inline-video" preload="metadata"></video>${s?`<br>${s}`:``}`:`${a}📎 [${i}]${s}`}return e}function bt(t,n,r,i){let a=document.getElementById(`chatMessages`),l=j();gt(),ht();let f=t===`user`?yt(n):n,p=ee(f),b=s(t===`user`?c(`msg.you`):Xe()),x=document.createElement(`div`),te=a?a.querySelectorAll(`.msg`).length:null,S=O();x.setAttribute(`data-message-role`,t),x.setAttribute(`data-message-id`,S),te!==null&&x.setAttribute(`data-turn-index`,String(te));let C=Number(window.location.port);Number.isFinite(C)&&C>0&&x.setAttribute(`data-instance-id`,`port:${C}`);let w=Ge();t===`agent`?(x.className=`msg msg-agent`,i?.steered===!0&&(x.dataset.steered=`true`),x.innerHTML=`<div class="agent-icon" aria-hidden="true">${pt(r)}</div><div class="agent-body"><div class="msg-content">${p}</div>${w}</div>`):(x.className=`msg msg-${t}${t===`user`&&r===`goal_continuation`?` msg-goal-boundary`:``}`,x.innerHTML=`<div class="user-body"><div class="msg-label">${b}</div><div class="msg-content">${p}</div>${w}</div><div class="user-icon" aria-hidden="true">${je()}</div>`);let T=x.querySelector(`.msg-content`);T&&T.setAttribute(`data-raw`,h(n));let E=t===`agent`&&!n;if(l.active&&!E)x.classList.contains(`msg-agent`)&&rt(x),l.appendLiveItem(x);else if(a?.appendChild(x),ae(x),d(x),v(x),g(x),u(x),m(x),_(x),!l.active&&!E&&a&&a.querySelectorAll(`.msg`).length>=1){let t=e.currentAgentDiv?.parentElement===a?e.currentAgentDiv:null;t?.remove();try{a.querySelectorAll(`.msg`).forEach(e=>{e.classList.contains(`msg-agent`)&&rt(e),l.addItem(O(),e.outerHTML)})}finally{t&&a.appendChild(t)}l.onPostRender=e=>{ae(e),d(e),v(e),g(e),u(e),m(e),_(e),y(e),o(e,{immediate:!0})}}return ne(t===`user`),x}var xt=3e3,St=24e3,Ct=`⚠️`,wt=`Tool log truncated`,Tt=`Inline preview capped.`,Et=/^tr_[A-Za-z0-9_-]{16,80}$/;function R(e,t){if(e==null)return;let n=String(e);if(n)return n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}…`}function Dt(e,t){return`[detail truncated: kept ${e} of ${t} chars]`}function Ot(e){return{icon:Ct,label:R(e>0?`${e} tool event${e===1?``:`s`} omitted`:wt,240)||wt,toolType:`tool`,status:`done`,detail:Tt}}function kt(e){if(!e||typeof e!=`object`)return 0;let t=e;if(t.icon!==Ct)return 0;let n=String(t.label??``);if(n===wt)return 1;let r=/^(\d+) tool events? omitted$/.exec(n);return r?Number(r[1]):0}function At(e,t){let n=Number(e);if(!(!Number.isFinite(n)||n<0))return Math.min(Math.floor(n),t)}function jt(e,t=xt){let n=e.detail==null?``:String(e.detail),r=Math.max(0,Math.min(xt,t)),i=R(n,r);if(i&&n.length>r){let e=Dt(i.length,n.length),t=Math.max(0,r-e.length-1);i=`${n.slice(0,t)}\n${e}`}let a={icon:R(e.icon,240)||`🔧`,label:R(e.label,240)||`tool`},o=R(e.rawIcon,240),s=R(e.toolType,240),c=R(e.stepRef,240),l=R(e.status,240),u=R(e.traceRunId,96),d=At(e.traceSeq,2**53-1),f=At(e.detailBytes,2**53-1),p=R(e.rawRetentionStatus,32);return o&&(a.rawIcon=o),i&&(a.detail=i),s&&(a.toolType=s),c&&(a.stepRef=c),l&&(a.status=l),e.isEmployee===!0&&(a.isEmployee=!0),u&&Et.test(u)&&(a.traceRunId=u),d!=null&&d>0&&(a.traceSeq=d),e.detailAvailable===!0&&(a.detailAvailable=!0),f!=null&&(a.detailBytes=f),p&&(a.rawRetentionStatus=p),a}function Mt(e,t={}){if(!Array.isArray(e))return[];let n=Number.isSafeInteger(t.knownOmitted)&&t.knownOmitted>=0?t.knownOmitted:0;if(e.length===0&&n===0)return[];let r=e,i=kt(e[0]);i>0&&(r=e.slice(1));let a=0;(i>0||n>0||r.length>160)&&(a=Math.max(0,r.length-159),a>0&&(r=r.slice(a)));let o=Math.max(i+a,n),s=r.map(e=>e&&typeof e==`object`?e:{label:e}),c=Array(s.length).fill(0),l=St;for(let e=s.length-1;e>=0;e--){let t=s[e].detail,n=t==null?0:String(t).length,r=Math.min(xt,l);c[e]=r,l=Math.max(0,l-Math.min(n,r))}let u=s.map((e,t)=>jt(e,c[t]));return o>0&&u.unshift(Ot(o)),Pt(u)}function Nt(e){let t={icon:R(e.icon,24)||`🔧`,label:R(e.label,80)||`tool`},n=R(e.toolType,48),r=R(e.stepRef,80),i=R(e.status,24),a=R(e.detail,180),o=R(e.traceRunId,96),s=At(e.traceSeq,2**53-1),c=At(e.detailBytes,2**53-1),l=R(e.rawRetentionStatus,32);return n&&(t.toolType=n),r&&(t.stepRef=r),i&&(t.status=i),a&&(t.detail=a),e.isEmployee===!0&&(t.isEmployee=!0),o&&Et.test(o)&&(t.traceRunId=o),s!=null&&s>0&&(t.traceSeq=s),e.detailAvailable===!0&&(t.detailAvailable=!0),c!=null&&(t.detailBytes=c),l&&(t.rawRetentionStatus=l),t}function Pt(e){if(JSON.stringify(e).length<=64e3)return e;let t=e.map(Nt),n=JSON.stringify(t);for(;n.length>64e3&&t.length>1;){let e=kt(t[0]);t.splice(+(e>0),1);let r=Ot(e+1);e>0?t[0]=r:t.unshift(r),n=JSON.stringify(t)}if(n.length<=64e3)return t;let r=[{icon:Ct,label:wt,toolType:`tool`,status:`done`,detail:Tt}];return JSON.stringify(r).length<=64e3?r:[]}function Ft(e){let t=Mt(e);if(t.length===0)return null;let n=JSON.stringify(t);return n.length<=64e3?n:JSON.stringify(Pt(t))}function It(e){if(!e)return[];if(e.length>18e4)return[Ot(1)];try{return Mt(JSON.parse(e))}catch{return[]}}function Lt(e){return e===`thinking`||e===`search`||e===`subagent`?e:`tool`}function Rt(e){return e===`running`||e===`done`||e===`error`?e:`done`}function zt(e){if(e.label)return e.label;let t=e;return typeof t.name==`string`&&t.name?t.name:`tool`}function Bt(e){let t=zt(e);return e.toolType===`tool`?F(t):t}function Vt(e){return It(e)}function Ht(e){return Ft(Vt(e))}function Ut(e){return e.role!==`assistant`||!e.tool_log?{...e,tool_log:null}:{...e,tool_log:Ht(e.tool_log)}}function Wt(e,t){let n=t&&t>0?t:Date.now();return e.map(e=>({id:O(),icon:e.icon?x(e.icon):S.tool,rawIcon:e.rawIcon||e.icon||``,label:Bt(e),isEmployee:e.isEmployee===!0,type:Lt(e.toolType),detail:e.toolType===`tool`?D(e.detail||``):e.detail||``,stepRef:e.stepRef||``,traceRunId:e.traceRunId||``,traceSeq:e.traceSeq,detailAvailable:e.detailAvailable,detailBytes:e.detailBytes,rawRetentionStatus:e.rawRetentionStatus,status:Rt(e.status),startTime:n}))}function Gt(e,t){let n=String(e.stepRef||``).trim();return n?`ref:${n}`:`ord:${e.toolType||`tool`}:${e.label||`tool`}:${t}`}function Kt(e,t){if(e.length===0)return t;let n=new Map,r=new Map,i=e=>{let t=`${e.toolType||`tool`}:${e.label||`tool`}`,n=(r.get(t)||0)+1;return r.set(t,n),Gt(e,n)};return t.forEach(e=>n.set(i(e),e)),r.clear(),e.forEach(e=>{let t=i(e),r=n.get(t),a=r?.detail||``,o=e.detail||``;n.set(t,{...r||{},...e,detail:o.length>=a.length?o:a,status:e.status||r?.status||`done`})}),Array.from(n.values())}function qt(e){return Mt(e)}function Jt(e){return Ft(e)}function Yt(e){return Ae()}function Xt(e,t){let n=e.role===`assistant`?`agent`:e.role,r=String(e.id??O()),i=We({role:n,messageId:r,turnIndex:t}),a=e.trace_run_id?` data-trace-run-id="${s(e.trace_run_id)}"`:``,o=e.session_id===void 0?``:` data-message-session-id="${s(e.session_id)}"`,l=e.server_message_id===void 0?``:` data-server-message-id="${s(String(e.server_message_id))}" data-activity-saved="true"`,u=h(n===`user`?yt(e.content):e.content),d=s(n===`user`?c(`msg.you`):Xe()),f=e.role===`assistant`&&e.tool_log?Ht(e.tool_log):null,p=f?s(f):``,m=p?` data-tool-log="${p}"`:``,g=`<div class="msg-content lazy-pending" data-raw="${s(u)}"></div>`,_=Ge(),v=n===`user`&&e.cli===`goal_continuation`?` msg-goal-boundary`:``,ee=n===`agent`?`<div class="msg msg-agent" ${i}${a}${o}${l}><div class="agent-icon" aria-hidden="true">${Yt(e.cli)}</div><div class="agent-body"${m}>${g}${_}</div></div>`:`<div class="msg msg-${n}${v}" ${i}${o}${l}><div class="user-body"><div class="msg-label">${d}</div>${g}${_}</div><div class="user-icon" aria-hidden="true">${je()}</div></div>`;return{id:O(),messageId:r,html:ee,height:80,rehydratesProcessDetails:!!p}}function Zt(e,t){if(t.onBeforeVirtualHistoryBootstrap?.(),t.registerCallbacks(),t.setItems(e,{autoActivate:!1}),t.shouldFollowBottom?.()??!0){t.activateIfNeeded(!0),t.scrollToBottom(),t.onAfterVirtualHistoryBottomed?.();return}let n=t.restoreIndex;n!=null&&n>=0?(t.activateIfNeeded(!1),t.scrollToIndex?.(n)):(t.activateIfNeeded(!0),t.scrollToBottom(),t.onAfterVirtualHistoryBottomed?.())}function Qt(t){let n=document.getElementById(`statusBadge`),r=document.getElementById(`btnSend`),i=document.getElementById(`typingIndicator`)?.querySelector(`.label`);e.agentBusy=t===`running`||t===`steering`,r&&(r.setAttribute(`aria-label`,e.agentBusy?c(`btn.stop`):`Send message`),e.agentBusy?r.setAttribute(`data-i18n-aria`,`btn.stop`):r.removeAttribute(`data-i18n-aria`)),document.getElementById(`typingIndicator`)?.classList.toggle(`active`,e.agentBusy),t===`running`?(n&&(n.className=`status-badge status-running`,n.textContent=`running`),r&&(r.innerHTML=S.stop,r.title=c(`btn.stop`),r.classList.add(`stop-mode`)),i&&(i.textContent=c(`status.responding`)),mt()):t===`steering`?(n&&(n.className=`status-badge status-steering`,n.textContent=`steering`),r&&(r.innerHTML=S.stop,r.title=`Steering...`,r.classList.add(`stop-mode`)),i&&(i.textContent=`Steering...`)):(n&&(n.className=`status-badge status-idle`,n.textContent=`idle`),r&&(r.innerHTML=S.send,r.title=`Send`,r.classList.remove(`stop-mode`)),i&&(i.textContent=c(`status.responding`)),ht())}function $t(e){let t=document.getElementById(`queueBadge`);if(!t){t=document.createElement(`span`),t.id=`queueBadge`,t.className=`queue-badge`;let e=document.getElementById(`btnSend`);e?.parentElement&&(e.parentElement.style.position=`relative`),e&&(e.style.position=`relative`,e.appendChild(t))}t.textContent=e>0?String(e):``,t.style.display=e>0?`flex`:`none`}function en(e){let t=document.getElementById(`statMsgs`);t&&(t.textContent=c(`stat.messages`,{count:e}))}async function tn(){let e=await n(p(`/api/messages/count`));e&&en(e.count)}var nn=4096,rn=32768;function z(e){return JSON.stringify([e.sessionId,e.scope,e.runId,e.turnId])}function an(e){return{identity:{runId:e.runId,sessionId:e.sessionId,scope:e.scope,turnId:e.turnId},seq:0,revision:0,entries:new Map,requests:new Map,end:null,usage:null,latestAction:``,omitted:{entries:0,textChars:0,requests:0,finalChars:0,throughSeq:0}}}var on=(e,t)=>Math.min(2**53-1,e+t);function sn(e){return e.kind===`tool`?[e.input,e.output,e.detail].filter(e=>e!==void 0&&e!==``).join(`
2
- `):e.text}function cn(e){return e.kind===`tool`?e.name.length+(e.input?.length??0)+(e.output?.length??0)+(e.detail?.length??0):e.text.length}function ln(e){let t=0;for(let n of e.entries.values())t+=cn(n);return t}function un(e,t){let n={...t},r=[`name`,`input`,`output`,`detail`].filter(e=>t[e]!==void 0).sort((e,n)=>t[e].length-t[n].length),i=nn;for(let a=0;a<r.length;a++){let o=r[a],s=t[o],c=Math.min(s.length,Math.floor(i/(r.length-a)));n[o]=s.slice(0,c),i-=c,e.omitted.textChars=on(e.omitted.textChars,s.length-c)}return n}function dn(e,t){let n=t.kind===`tool`?un(e,t):{...t,text:t.text.slice(0,nn)};for(t.kind!==`tool`&&(e.omitted.textChars=on(e.omitted.textChars,Math.max(0,t.text.length-nn))),e.entries.set(t.itemId,n);e.entries.size>128||ln(e)>65536;){let t=e.entries.entries().next().value;if(!t)break;e.entries.delete(t[0]),e.omitted.entries=on(e.omitted.entries,1),e.omitted.throughSeq=Math.max(e.omitted.throughSeq,t[1].seq)}}function fn(e,t){if(z(e.identity)!==z(t)||t.seq<=e.seq||e.end)return!1;switch(t.kind){case`turn-start`:break;case`message`:case`reasoning`:{let n=e.entries.get(t.itemId);if(n&&n.kind!==t.kind)throw Error(`runtime_item_kind_changed`);let r=t.operation===`append`&&n?n.text:``,i=Math.max(0,nn-r.length),a=r+t.text.slice(0,i);e.omitted.textChars=on(e.omitted.textChars,Math.max(0,t.text.length-i)),!n&&t.operation===`append`&&e.omitted.entries&&(e.omitted.throughSeq=Math.max(e.omitted.throughSeq,t.seq)),dn(e,{...t,text:a,operation:`replace`});break}case`tool`:{let n=e.entries.get(t.itemId);if(n&&n.kind!==`tool`)throw Error(`runtime_item_kind_changed`);dn(e,{...n,...t}),e.latestAction=(t.name+` (`+t.status+`)`).replace(/[\u0000-\u001f\u007f-\u009f]/g,` `).replace(/\s+/g,` `).slice(0,240);break}case`request`:e.requests.has(t.requestId)||e.requests.size<16?e.requests.set(t.requestId,{requestId:t.requestId,requestType:t.requestType,title:t.view.title.slice(0,256)}):e.omitted.requests=on(e.omitted.requests,1);break;case`request-settled`:e.requests.delete(t.requestId);break;case`usage`:e.usage={...e.usage,...t};break;case`turn-end`:e.omitted.finalChars=Math.max(0,(t.finalText?.length??0)-rn),e.end={...t,finalText:t.finalText===null?null:t.finalText.slice(0,rn),...t.error===void 0?{}:{error:t.error.slice(0,500)}},e.requests.clear();break;default:throw Error(String(t))}return e.seq=t.seq,e.revision=on(e.revision,1),!0}function pn(e){return e.end?.status??`running`}function mn(e){return e.kind===`tool`?e.name+` (`+e.status+`)`:e.kind===`reasoning`?`Reasoning`:e.phase===`commentary`?`Commentary`:e.phase===`final`?`Answer draft`:`Output (phase unknown)`}var hn=16,gn=256,_n=1048576;function vn(e,t,n,r){if(e.size<hn)return;let i,a=1/0;for(let[o,s]of e){if(!s.end&&!t.has(o)||!n(s))continue;let e=r(s);(i===void 0||e<a)&&(i=o,a=e)}if(i===void 0)throw Error(`activity_turn_capacity`);e.delete(i),t.delete(i)}var yn=class{changed;canEvict;evictionRank;turns=new Map;settled=new Set;pending=[];pendingBytes=0;controller=null;generation=0;scopeGeneration=0;drainingScope=null;targetRun=null;constructor(e,t=()=>!0,n=()=>0){this.changed=e,this.canEvict=t,this.evictionRank=n}markSettled(e){for(let e of this.settled)this.turns.has(e)||this.settled.delete(e);for(let[t,n]of this.turns)n.identity.runId===e&&this.settled.add(t)}live(e){if(!this.controller&&this.drainingScope!==this.scopeGeneration||this.controller&&this.targetRun&&e.runId!==this.targetRun&&!this.pending.some(t=>z(t)===z(e)))return this.apply(e);this.controller?.signal.throwIfAborted();let t=z(e),n=this.turns.get(t);if(n&&(n.end||e.seq<=n.seq))return!1;for(let n=this.pending.length-1;n>=0;n--){let r=this.pending[n];if(z(r)===t){if(r.kind===`turn-end`||e.seq<=r.seq)return!1;break}}let r=new TextEncoder().encode(JSON.stringify(e)).length;if(this.pending.length>=gn||this.pendingBytes+r>_n){let e=Error(`activity_live_buffer_overflow`);throw this.controller?.abort(e),e}return this.pending.push(e),this.pendingBytes+=r,!0}apply(e){let t=z(e),n=this.turns.get(t);if(n){if(!fn(n,e))return!1}else{if(n=an(e),!fn(n,e))return!1;vn(this.turns,this.settled,this.canEvict,this.evictionRank),this.settled.delete(t),this.turns.set(t,n)}return this.changed(n),!0}fold(e,t){let n=new Map,r=new Set(t);for(let t of e){let e=z(t),i=n.get(e);i||(i=an(t),vn(n,r,this.canEvict,this.evictionRank),n.set(e,i)),fn(i,t)}let i=new Map(this.turns);for(let[e,t]of n){let n=i.get(e);!n||t.seq<n.seq||n.end&&t.seq>n.seq||i.set(e,t)}for(let[e,r]of n)this.turns.has(e)||(vn(i,t,this.canEvict,this.evictionRank),i.set(e,r));return i}publish(e,t,n){let r=[];for(let[t,n]of e){let i=this.turns.get(t);if(i===n)continue;let a=i?Object.assign(i,n):n;e.set(t,a),r.push(a)}this.turns.clear();for(let[t,n]of e)this.turns.set(t,n);for(let n of t)e.has(n)||t.delete(n);this.settled=t;for(let e of r){if(n!==this.generation)break;this.changed(e)}}foldPending(e,t){for(let n of this.pending){let r=z(n),i=e.get(r);i&&(i.end||n.seq<=i.seq)||(i&&i===this.turns.get(r)&&(i=structuredClone(i)),i||(i=an(n),vn(e,t,this.canEvict,this.evictionRank)),fn(i,n),e.set(r,i))}}drain(){let e=this.scopeGeneration,t=[];if(this.drainingScope===e)return t;this.drainingScope=e;try{for(;this.pending.length&&e===this.scopeGeneration&&!this.controller;){let e=this.pending.shift();this.pendingBytes-=new TextEncoder().encode(JSON.stringify(e)).length;try{this.apply(e)}catch(e){t.push(e)}}}finally{this.drainingScope===e&&(this.drainingScope=null)}return t}async restore(e,t){let n=this.controller,r=new AbortController,i=++this.generation;this.controller=r,this.targetRun=t?.runId??null;let a,o=new Promise(e=>{a=()=>e(null),r.signal.addEventListener(`abort`,a,{once:!0})}),s=[],c=()=>r.abort(t?.signal?.reason);t?.signal?.aborted?c():t?.signal?.addEventListener(`abort`,c,{once:!0});try{if(n?.abort(),i!==this.generation)return;r.signal.throwIfAborted();let a=new Promise(t=>t(e(r.signal))),s=await Promise.race([o,a]);if(i!==this.generation)return;if(s===null||r.signal.aborted)throw r.signal.reason;if(t?.runId!==void 0&&s.some(e=>e.runId!==t.runId))throw Error(`activity_restore_target`);let c=new Set(this.settled),l=this.fold(s,c);this.foldPending(l,c),this.pending=[],this.pendingBytes=0,this.publish(l,c,i)}catch(e){if(i!==this.generation)return;s.push(e),r.abort(e)}finally{t?.signal?.removeEventListener(`abort`,c),r.signal.removeEventListener(`abort`,a),i===this.generation&&(this.controller=null,this.targetRun=null,s.push(...this.drain()))}if(s.length===1)throw s[0];if(s.length>1)throw AggregateError(s,`activity_replay_failed`)}reset(){++this.generation,++this.scopeGeneration;let e=this.controller;this.controller=null,this.targetRun=null,this.pending=[],this.pendingBytes=0,this.turns.clear(),this.settled.clear(),e?.abort()}};function bn(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).toLowerCase()}function xn(e){return/(^|[\s_.:/-])(write|edit|apply_patch|patch|create)(?=$|[\s_.:/-])/.test(bn(e))}function Sn(e){if(/__|mcp/i.test(e))return`mcp`;let t=bn(e);return/(^|[\s_.:/-])(bash|shell|exec|run|command|terminal)(?=$|[\s_.:/-])/.test(t)?`command`:/(^|[\s_.:/-])(read|view|cat|write|edit|apply_patch|patch|create)(?=$|[\s_.:/-])/.test(t)?`file`:/(^|[\s_.:/-])(grep|glob|rg|search|find|list)(?=$|[\s_.:/-])/.test(t)?`search`:`other`}function Cn(e){let t=[],n=[],r=`other`,i=()=>{let e=n[0];if(e){if(n.length===1)t.push({type:`row`,entry:e});else{let i=n.length,a=r===`file`?n.filter(e=>xn(e.name)).length:0,o=r===`command`?`Ran ${i} commands`:r===`file`?`${a===0?`Read`:a===i?`Edited`:`Worked on`} ${i} files`:r===`search`?`Searched ${i} times`:`Called ${i} tools`;t.push({type:`group`,key:JSON.stringify([r,e.itemId]),kind:r,label:o,entries:n})}n=[]}};for(let a of e){if(a.kind!==`tool`){i(),t.push({type:`row`,entry:a});continue}let e=Sn(a.name);n.length&&e!==r&&i(),r=e,n.push(a)}return i(),t}var wn={command:`terminal`,file:`file`,search:`search`,mcp:`plug`,other:`tool`};function B(e,t,n){let r=e.createElement(t);return r.className=n,r}function Tn(e,t){e.textContent!==t&&(e.textContent=t)}function En(e,t){e.dataset.icon!==t&&(e.dataset.icon=t,e.setAttribute(`aria-hidden`,`true`),te(e.parentElement))}function Dn(e,t){let n=B(e,`details`,`activity-item activity-row`);n.dataset.activityItemId=t;let r=B(e,`summary`,`activity-item-summary`);r.append(B(e,`span`,`activity-row-icon`),B(e,`span`,`activity-row-label`),B(e,`span`,`activity-row-status`),B(e,`span`,`activity-chevron-sm`));let i=B(e,`pre`,`activity-item-text`);return i.tabIndex=0,i.setAttribute(`aria-label`,`Activity preview`),n.append(r,i),En(r.lastElementChild,`chevronDown`),n}function On(e,t,n){let r=t.kind===`tool`?Sn(t.name):t.kind;e.className=`activity-item activity-row${t.kind===`tool`?``:` activity-row-${t.kind}`}`,e.dataset.kind=r,e.dataset.status=t.kind===`tool`?t.status:``;let i=e.querySelector(`summary`);i.setAttribute(`aria-label`,mn(t)),En(i.querySelector(`.activity-row-icon`),t.kind===`tool`?wn[Sn(t.name)]:t.kind===`reasoning`?`brain`:`thinking`);let a=mn(t),o=``;if(t.kind===`tool`){let e=r===`file`&&xn(t.name),n=r===`command`?`Ran`:r===`file`?e?`Edited`:`Read`:r===`search`?`Searched`:`Called`,i=r===`command`?`Running`:r===`file`?e?`Editing`:`Reading`:r===`search`?`Searching`:`Calling`;a=`${t.status===`done`?n:t.status===`running`?i:t.status===`error`?`Failed`:`Stopped`} ${(t.input??``).split(/\r?\n/,1)[0].trim()||t.name}`,o=t.status===`error`?`failed`:t.status===`done`?``:t.status}Tn(i.querySelector(`.activity-row-label`),a);let s=i.querySelector(`.activity-row-status`);Tn(s,o),s.setAttribute(`aria-label`,o===`failed`?`Tool call failed`:o);let c=sn(t);Tn(e.querySelector(`pre`),c.length>n?`${c.slice(0,n)}\n[Preview limited; some text is omitted]`:c)}function kn(e,t){let n=new Map;function r(e,t,n){e.children[n]!==t&&e.insertBefore(t,e.children[n]??null)}return{render(i,a){let o=new Set;i.forEach((i,s)=>{if(i.type===`row`){r(t,a(i.entry),s);return}o.add(i.key);let c=n.get(i.key);if(!c){let t=B(e,`div`,`activity-group`),r=B(e,`button`,`activity-group-summary`),a=B(e,`div`,`activity-group-body`);r.type=`button`,r.setAttribute(`aria-expanded`,`true`),r.append(B(e,`span`,`activity-row-icon`),B(e,`span`,`activity-row-label`),B(e,`span`,`activity-chevron-sm`)),a.tabIndex=0,a.setAttribute(`role`,`region`),a.setAttribute(`aria-label`,`Tool calls`),t.append(r,a),t.dataset.kind=i.kind,En(r.firstElementChild,wn[i.kind]),En(r.lastElementChild,`chevronDown`),r.onclick=()=>{a.hidden=!a.hidden,r.setAttribute(`aria-expanded`,String(!a.hidden))},c={root:t,head:r,body:a},n.set(i.key,c)}let l=[`error`,`stopped`,`running`].find(e=>i.entries.some(t=>t.status===e)),u=i.kind===`command`?`commands`:i.kind===`file`?`files`:i.kind===`search`?`searches`:`tools`;Tn(c.head.querySelector(`.activity-row-label`),l?`${i.entries.length} ${u} · ${l===`error`?`failed`:l}`:i.label),r(t,c.root,s),i.entries.forEach((e,t)=>r(c.body,a(e),t))});for(let[e,t]of n)o.has(e)||(t.head.onclick=null,t.root.remove(),n.delete(e))},dispose(){for(let e of n.values())e.head.onclick=null;n.clear()}}}var An=128,jn=40,Mn=3e3,Nn=()=>({open:!1,items:new Map,page:null});function Pn(e,t,n,r=!1){return!n&&!r?(e.items.delete(t),!0):!e.items.has(t)&&e.items.size>=An?!1:(e.items.set(t,n),!0)}function Fn(e,t,n){let r=e.ownerDocument;function i(e,t){let n=r.createElement(e);return n.className=t,n}function a(e,t){let n=i(`button`,t);return n.type=`button`,n.textContent=e,n}function o(e,t){e.textContent!==t&&(e.textContent=t)}let s=i(`section`,`activity-turn`);s.setAttribute(`aria-label`,`Turn activity`);let c=i(`p`,`activity-status sr-only`);c.setAttribute(`role`,`status`),c.setAttribute(`aria-live`,`polite`),c.setAttribute(`aria-atomic`,`true`);let l=i(`details`,`activity-disclosure`),u=i(`summary`,`activity-summary`),d=i(`span`,`activity-chevron`);d.dataset.icon=`chevronRight`,d.setAttribute(`aria-hidden`,`true`);let f=i(`span`,`activity-status-label`),p=i(`span`,`activity-summary-text`),m=i(`span`,`activity-steer-pill`);m.hidden=!0;let h=i(`span`,`pending-steer-arrow`);h.textContent=`↳`,h.setAttribute(`aria-hidden`,`true`);let g=i(`span`,`pending-steer-label`);g.textContent=`steered`,m.append(h,r.createTextNode(` `),g);let _=i(`span`,`activity-accessory`);u.append(d,f,p,m,_),te(u);let v=i(`div`,`activity-list`),ee=i(`p`,`activity-empty`);ee.textContent=`No activity recorded`;let y=i(`nav`,`activity-pages`);y.setAttribute(`aria-label`,`Activity pages`);let b=a(`Earlier activity`,`activity-previous`),x=a(`Later activity`,`activity-next`),S=i(`span`,`activity-page-position`);y.append(b,S,x),l.append(u,ee,v,y);let C=i(`p`,`activity-error`),w=i(`p`,`activity-degraded`),T=i(`p`,`activity-connection`);T.hidden=!0;let E=i(`p`,`activity-omitted`),D=i(`p`,`activity-choice-notice`);D.setAttribute(`role`,`status`);let O=i(`p`,`activity-requests`);for(let e of[C,w,E,D,O])e.hidden=!0;l.append(w,T,E,D,O),s.append(c,C,l);let k=n?a(`Open in Trace`,`activity-trace`):null;if(k){k.setAttribute(`aria-label`,`Inspect retained activity in Trace`);let e=i(`footer`,`activity-footer`);e.append(k),l.append(e)}e.insertBefore(s,e.querySelector(`:scope > .msg-content`));let A=null,j={},M=0,N=!1,P=!1,F=new Map,ne=kn(r,v),re=new WeakMap;function ie(){D.hidden=!P,o(D,P?`128 detail choices are remembered. Close a completed open item to free a choice; existing choices are preserved.`:``)}function ae(e,n){if(N||F.get(e)!==n||n.open===re.get(n))return;let r=n.dataset.status===`running`;Pn(t,e,n.open,r)?(P=!1,n.open&&t.page===null&&(t.page=M)):(n.open=re.get(n)??!1,P=!0),re.set(n,n.open),ie()}function oe(){t.open=l.open;for(let[e,t]of F)ae(e,t)}l.open=t.open,l.ontoggle=()=>{N||(t.open=l.open)},k&&(k.onclick=()=>{A&&!N&&n?.(A)});function se(e,n,r){if(!A||N)return;oe();let i=Math.max(0,Math.ceil(A.entries.size/jn)-1);t.page=Math.max(0,Math.min(i,M+e)),I(A,j),(y.hidden||!l.open?u:n.disabled?r.disabled?u:r:n).focus({preventScroll:!0})}b.onclick=()=>se(-1,b,x),x.onclick=()=>se(1,x,b);function I(e,n={}){if(N)return;oe(),A=e,j={...n};let i=j.status??pn(e);s.dataset.status=i,s.dataset.degraded=String(j.degraded===!0);let a=i===`running`?`Working`:i===`finished`?`Finished`:i===`done`?`Complete`:i===`stopped`?`Stopped`:`Failed`;o(c,a);let l=i===`error`&&e.end?.status===`error`?e.end.error??``:``;o(C,l),C.hidden=!l;let d=`${e.entries.size} step${e.entries.size===1?``:`s`}`;o(f,a),o(p,e.latestAction||d),o(_,String(e.entries.size)),_.dataset.unit=e.entries.size===1?` step`:` steps`,_.hidden=!e.latestAction,u.setAttribute(`aria-label`,`${a} · ${e.latestAction?`${e.latestAction} · `:``}${d}${j.steered?` · steered`:``}`),m.hidden=j.steered!==!0,o(w,j.degraded?`Activity is incomplete. Some runtime updates were not received.`:``),w.hidden=!j.degraded,o(T,j.connectionUnavailable?`Live activity updates are unavailable. Retained activity can be refreshed separately.`:``),T.hidden=!j.connectionUnavailable;let h=e.omitted,g=[...e.entries.values()],te=!!(h.entries||h.textChars||h.requests||h.finalChars)||g.some(e=>sn(e).length>Mn);o(E,te?`Preview is limited. Some activity, text or request notices are omitted.`:``),E.hidden=!te;let D=!!(e.requests.size||h.requests);o(O,D?`Request notices recorded; see live Requests controls for current requests.`:``),O.hidden=!D;let k=Math.max(0,Math.ceil(g.length/jn)-1);M=t.page===null?k:Math.max(0,Math.min(k,Math.floor(t.page)));let P=g.slice(M*jn,(M+1)*jn),se=new Set(P.map(e=>e.itemId)),I=r.activeElement,ce=I!==null&&v.contains(I),le=!1;for(let[e,t]of F)se.has(e)||(t.contains(I)&&(le=!0),t.ontoggle=null,t.remove(),F.delete(e));ne.render(Cn(P),e=>{let n=F.get(e.itemId);if(!n){n=Dn(r,e.itemId);let t=n;n.ontoggle=()=>ae(e.itemId,t),F.set(e.itemId,n)}On(n,e,Mn);let i=t.items.get(e.itemId)??(e.kind===`tool`&&e.status===`running`);return re.set(n,i),n.open!==i&&(n.open=i),n});let ue=I?.closest(`.activity-group-body[hidden]`);ce&&ue?ue.previousElementSibling.focus({preventScroll:!0}):ce&&I?.isConnected&&r.activeElement!==I?I.focus({preventScroll:!0}):ce&&!I?.isConnected&&(le=!0),ee.hidden=g.length!==0,b.disabled=M===0,x.disabled=M>=k,o(S,g.length?`${M+1} / ${k+1}`:`0 / 0`),y.hidden=g.length<=jn,ie(),le&&u.focus({preventScroll:!0})}function ce(){if(!N){oe(),N=!0,l.ontoggle=null,b.onclick=x.onclick=null,k&&(k.onclick=null);for(let e of F.values())e.ontoggle=null;ne.dispose(),F.clear(),A=null,s.remove()}}return{element:s,render:I,dispose:ce}}var V;function In(e){V=e}var Ln=class extends Error{constructor(){super(`activity_capacity`)}},Rn=16,H=new Map,zn=new Map,U=new Map,W=new yn(e=>{let t=H.get(z(e.identity));t&&(t.model=e,q(t))},Vn,Hn),G=null,Bn=!0;function Vn(e){let t=H.get(z(e.identity))?.message;return!t?.contains(t.ownerDocument.activeElement)}function Hn(e){return+!!H.get(z(e.identity))?.message.isConnected}function Un(e){Bn=e;for(let e of H.values())q(e)}function Wn(){V.closeTrace?.()}function Gn(e){return V.currentMessage()===e}function Kn(e,t){t.view.dispose(),delete t.message.dataset.activityKey,delete t.message.dataset.activityLive,H.delete(e),W.turns.delete(e),V.evicted?.(t.message)}function qn(){for(let e of H.values())e.view.dispose(),delete e.message.dataset.activityKey,delete e.message.dataset.activityLive;H.clear(),W.reset(),zn.clear(),U.clear(),G=null}function Jn(e){G&&e&&(G.sessionId!==e.sessionId||G.scope!==e.scope)&&qn(),e&&(G={...e})}function K(e){for(let t of H.values())if(t.model.identity.runId===e)return t}function q(e){let t=e.model.end?.status??e.terminalStatus;e.degraded=e.recordingGap||!e.model.end&&!e.canonicalTerminal&&!!e.terminalStatus,e.message.dataset.activityLive=t||e.message.dataset.activitySaved===`true`?`false`:`true`,e.view.render(e.model,{...t?{status:t}:{},degraded:e.degraded,connectionUnavailable:!t&&(!Bn||e.model.identity.scope!==G?.scope),steered:e.message.dataset.steered===`true`})}function Yn(e){let t=K(e.runId);return!t||G?.sessionId!==e.sessionId||t.model.identity.sessionId!==e.sessionId||t.model.identity.scope!==e.scope?!1:(t.message.dataset.steered=`true`,q(t),!0)}function Xn(){if(H.size<Rn)return!0;let e=[...H].filter(([,e])=>(e.model.end||e.terminalStatus)&&Vn(e.model)).sort(([,e],[,t])=>Hn(e.model)-Hn(t.model))[0];return e?(Kn(e[0],e[1]),!0):!1}function Zn(e){let t=zn.get(e);if(t)return t;if(zn.size>=64){let e=[...zn].find(([,e])=>!e.open&&e.items.size===0);if(!e)return null;zn.delete(e[0])}let n=Nn();return zn.set(e,n),n}function Qn(e,t){let n=z(e.identity);if(!H.has(n)&&!Xn())return null;let r=Zn(n);if(!r)return null;t.dataset.activityKey=n,t.dataset.traceRunId=e.identity.runId,t.dataset.activitySession=e.identity.sessionId,t.dataset.messageSessionId=e.identity.sessionId;let i=t.querySelector(`.agent-body`);if(!i)return null;t.querySelector(`.activity-turn`)?.remove();let a={model:e,choices:r,message:t,view:Fn(i,r,e=>{V.inspectTrace(e.identity.runId,e.identity.sessionId)}),degraded:!1,recordingGap:!1,canonicalTerminal:!!e.end,cacheScope:le()};return H.set(n,a),W.turns.set(n,e),q(a),a}function $n(e,t=!0){if(!G||G.sessionId!==e.sessionId||G.scope!==e.scope)return null;let n=z(e),r=K(e.runId);if(r&&z(r.model.identity)!==n)return null;let i=H.get(n);if(!i){let r=W.turns.get(n);if(r&&(r.end||e.seq<=r.seq))return null;if(!Zn(n)||!Xn())throw new Ln;let a=V.currentMessage(),o=t&&a?.isConnected&&(!a.dataset.activityKey||a.dataset.activityKey===n)?a:V.createMessage();if(i=Qn(W.turns.get(n)??an(e),o)??void 0,!i)return null;i.recordingGap=e.kind!==`turn-start`,V.useMessage(o)}try{if(!W.live(e))return null}catch(e){i.recordingGap||console.warn(`[activity] live replay unavailable`,e),i.recordingGap=!0}return e.kind===`turn-end`&&(i.canonicalTerminal=!0,i.terminalStatus=e.status),q(i),i}function er(e,t=`finished`){if(!e)return;W.markSettled(e);let n=K(e);n&&(n.model.end||(n.terminalStatus=t),q(n))}function tr(e){let t=e.message.dataset.messageId;t&&V.currentMessage()===e.message&&!K(e.runId)&&e.message.dataset.traceRunId===e.runId&&e.message.dataset.messageSessionId===e.sessionId&&(U.size>=64&&U.delete(U.keys().next().value),U.set(e.runId,{...e,messageId:t,corrected:!1}),e.message.dataset.activityAnswerPending=`true`)}function nr(e){return U.has(e)}function rr(e){let t=U.get(e.runId);if(!t||t.corrected||t.sessionId!==e.sessionId||t.scope!==e.scope)return!1;let n=!1,r=r=>{r.dataset.messageId===t.messageId&&r.dataset.traceRunId===e.runId&&r.dataset.messageSessionId===e.sessionId&&r.dataset.activityAnswerPending===`true`&&(V.replaceAnswer(r,e.text),delete r.dataset.activityAnswerPending,n=!0)};return!V.reconcileMessage(t.messageId,r)&&t.message.isConnected&&r(t.message),n?(t.corrected=!0,ue(e.runId,e.text,t.cacheScope,e.sessionId),!0):!1}function ir(e,t){let n=K(e);if(!n||n.answerSource!==`canonical`&&n.answerSource!==`unavailable`)return;let r=n.message.dataset.messageId,i=!1,a=r=>{r.dataset.traceRunId===e&&r.dataset.activityKey===z(n.model.identity)&&(sr(e,r),V.replaceAnswer(r,t),i=!0)};(!r||!V.reconcileMessage(r,a))&&a(n.message),i&&(n.answerSource=`compatibility`,ue(e,t,n.cacheScope,n.model.identity.sessionId))}function ar(e,t,n){if(V.currentMessage()===e)return!1;let r=t.trace_run_id,i=!1,a=e=>{if(e.dataset.traceRunId!==r||e.dataset.messageSessionId!==t.session_id||e.dataset.serverMessageId&&e.dataset.serverMessageId!==String(t.id))return;sr(r,e),V.replaceAnswer(e,t.content),e.dataset.serverMessageId=String(t.id),e.dataset.activitySaved=`true`,delete e.dataset.activityAnswerPending;let n=U.get(r);n&&n.messageId===e.dataset.messageId&&n.sessionId===t.session_id&&(n.corrected=!0);let a=K(r);a?.message===e&&(a.answerSource=`saved`,q(a)),i=!0},o=e.dataset.messageId;return(!o||!V.reconcileMessage(o,a))&&a(e),i&&ue(r,t.content,n,t.session_id,t.id),i}function or(e){let t=K(e);t&&(t.recordingGap=!0,q(t))}function sr(e,t){let n=K(e);if(!n||n.message===t&&t.contains(n.view.element))return;n.view.dispose(),t.querySelector(`.activity-turn`)?.remove();let r=t.querySelector(`.agent-body`);r&&(t.dataset.activityKey=z(n.model.identity),t.dataset.traceRunId=e,t.dataset.activitySession=n.model.identity.sessionId,t.dataset.messageSessionId=n.model.identity.sessionId,n.message.dataset.steered===`true`&&(t.dataset.steered=`true`),n.message=t,n.view=Fn(r,n.choices,t=>{V.inspectTrace(e,t.identity.sessionId)}),q(n))}async function cr(e,t){try{await W.restore(e,t)}finally{for(let[e,t]of H)W.turns.has(e)||Kn(e,t)}}function lr(e,t){let n=K(t);if(n)return sr(t,e),n;let r=[...W.turns.values()].find(e=>e.identity.runId===t);return r?Qn(r,e):null}function ur(e){let t=H.get(e.dataset.activityKey??``);t?.message===e&&t.view.dispose()}function dr(e,t){let n=K(e);n&&(n.recordingGap=t,q(n))}function fr(e){for(let t of e.querySelectorAll(`.msg-agent[data-activity-key]`)){if(t.parentElement?.closest(`.msg-agent`))continue;let e=H.get(t.dataset.activityKey);if(!e){t.querySelector(`.activity-turn`)?.remove(),delete t.dataset.activityKey,delete t.dataset.activityLive;continue}t.dataset.traceRunId===e.model.identity.runId&&t.dataset.messageSessionId===e.model.identity.sessionId&&t.dataset.messageId===e.message.dataset.messageId&&sr(e.model.identity.runId,t)}}var pr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),J=e=>typeof e==`string`&&e.length>0&&e.length<=240,mr=e=>typeof e==`string`&&e.length<=2e5,hr=e=>e===`running`||e===`done`||e===`error`||e===`stopped`;function gr(e){if(!pr(e)||typeof e.title!=`string`||e.title.length>500||!Array.isArray(e.fields)||e.fields.length>8)return null;let t=[],n=new Set;for(let r of e.fields){if(!pr(r)||!J(r.id)||typeof r.label!=`string`||r.label.length>500||!Array.isArray(r.options)||r.options.length>20||typeof r.multiSelect!=`boolean`||typeof r.allowFreeform!=`boolean`||n.has(r.id))return null;n.add(r.id);let e=[],i=new Set;for(let t of r.options){if(!pr(t)||!J(t.id)||typeof t.label!=`string`||t.label.length>500||i.has(t.id))return null;i.add(t.id),e.push({id:t.id,label:t.label})}t.push({id:r.id,label:r.label,options:e,multiSelect:r.multiSelect,allowFreeform:r.allowFreeform})}return{title:e.title,fields:t}}function _r(e){if(!pr(e)||e.version!==1||!J(e.runId)||!J(e.sessionId)||!J(e.scope)||!J(e.turnId)||!Number.isSafeInteger(e.seq)||Number(e.seq)<=0)return null;let t={version:1,runId:e.runId,sessionId:e.sessionId,scope:e.scope,turnId:e.turnId,seq:Number(e.seq)};if(e.parentItemId!==void 0){if(!J(e.parentItemId))return null;t.parentItemId=e.parentItemId}let n=e.kind;if(n===`turn-start`&&J(e.provider))return{...t,kind:n,provider:e.provider};if((n===`message`||n===`reasoning`)&&J(e.itemId)&&mr(e.text)&&(e.operation===`append`||e.operation===`replace`)){let r={...t,itemId:e.itemId,text:e.text,operation:e.operation};if(n===`reasoning`)return{...r,kind:n};let i=e.phase;return i===`commentary`||i===`final`||i===`unknown`?{...r,kind:n,phase:i}:null}if(n===`tool`&&J(e.itemId)&&J(e.name)&&hr(e.status)){for(let t of[`input`,`output`,`detail`])if(e[t]!==void 0&&!mr(e[t]))return null;return{...t,kind:n,itemId:e.itemId,name:e.name,status:e.status,...typeof e.input==`string`?{input:e.input}:{},...typeof e.output==`string`?{output:e.output}:{},...typeof e.detail==`string`?{detail:e.detail}:{}}}if(n===`request`&&J(e.requestId)&&(e.requestType===`approval`||e.requestType===`question`)){let r=gr(e.view);return r?{...t,kind:n,requestId:e.requestId,requestType:e.requestType,view:r}:null}if(n===`request-settled`&&J(e.requestId))return{...t,kind:n,requestId:e.requestId};if(n===`turn-end`&&hr(e.status)&&e.status!==`running`&&(e.finalText===null||mr(e.finalText)))return e.error!==void 0&&!mr(e.error)?null:{...t,kind:n,status:e.status,finalText:e.finalText,...typeof e.error==`string`?{error:e.error}:{}};if(n===`usage`){let r={};for(let t of[`inputTokens`,`outputTokens`,`cachedTokens`]){let n=e[t];if(n!==void 0){if(typeof n!=`number`||!Number.isSafeInteger(n)||n<0)return null;r[t]=n}}return{...t,kind:n,...r}}return null}var vr=40,yr=27e4,br=4096,xr=4194304,Sr=4097,Cr=16777216,wr=new TextEncoder,Tr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Er=e=>typeof e==`string`&&e.length>0&&e.length<=240,Dr=e=>typeof e==`number`&&Number.isSafeInteger(e)&&e>=0;async function Or(e,t,n=yr){e.signal.throwIfAborted();let r=await e.read(t,e.signal);e.signal.throwIfAborted();let i=JSON.stringify(r);if(i!==void 0&&wr.encode(i).length>n)throw Error(`activity_page_limit`);if(!Tr(r)||!Object.hasOwn(r,`ok`)&&!Object.hasOwn(r,`data`))return r;if(r.ok!==!0||!Tr(r.data))throw Error(`invalid_activity_envelope`);return r.data}async function kr(e){if(!Er(e.runId)||!Er(e.sessionId))throw Error(`invalid_activity_identity`);if(e.after!==void 0&&!Dr(e.after))throw Error(`invalid_activity_cursor`);let t=[],n=e.after??0,r,i,a,o=!1,s=null,c=0,l=`running`;for(let u=0;u<Sr;u++){let u=new URLSearchParams({session:e.sessionId,after:String(n),limit:String(vr)});r!==void 0&&u.set(`through`,String(r));let d=await Or(e,`/api/traces/${encodeURIComponent(e.runId)}/activity?${u}`);if(!Tr(d)||d.runId!==e.runId||d.sessionId!==e.sessionId||!Er(d.scope)||!Dr(d.through)||!Dr(d.nextAfter)||typeof d.hasMore!=`boolean`||typeof d.incomplete!=`boolean`||d.loss!==null&&typeof d.loss!=`string`||!Array.isArray(d.events)||d.events.length>vr)throw Error(`invalid_activity_page`);if(r!==void 0&&d.through!==r)throw Error(`activity_cursor_changed`);if(i!==void 0&&d.scope!==i)throw Error(`activity_scope_changed`);let f=d.status;if(f!==`running`&&f!==`done`&&f!==`error`&&f!==`interrupted`)throw Error(`invalid_activity_status`);l=f,r=d.through,i=d.scope;let p=d.nextAfter;if(p<n||p>r)throw Error(`invalid_activity_cursor`);for(let r of d.events){let o=_r(r);if(!o||o.runId!==e.runId||o.sessionId!==e.sessionId||o.scope!==i||o.seq<=n||o.seq>p)throw Error(`invalid_activity_identity`);if(a!==void 0&&o.turnId!==a)throw Error(`activity_turn_changed`);a=o.turnId;let s=t[t.length-1];if(s&&o.seq<=s.seq)throw Error(`unordered_activity_page`);if(c+=wr.encode(JSON.stringify(o)).length,t.length>=br||c>xr)throw Error(`activity_run_limit`);t.push(o)}if(o||=d.incomplete||d.loss!==null,s??=d.loss,!d.hasMore)return{events:t,through:r,scope:i,incomplete:o,loss:s,status:l};if(p<=n)throw Error(`activity_cursor_stalled`);n=p}throw Error(`activity_page_count_limit`)}async function Ar(e){if(!Er(e.runId)||!Er(e.sessionId))throw Error(`invalid_activity_identity`);let t=new URLSearchParams({session:e.sessionId}),n=await Or(e,`/api/messages/by-trace/${encodeURIComponent(e.runId)}?${t}`,Cr);if(!Tr(n))throw Error(`invalid_saved_activity_answer`);let r=n.message;if(r===null)return null;if(!Tr(r)||!Dr(r.id)||r.id===0||r.role!==`assistant`||typeof r.content!=`string`||r.trace_run_id!==e.runId||r.session_id!==e.sessionId)throw Error(`invalid_saved_activity_answer`);return{id:r.id,role:`assistant`,content:r.content,trace_run_id:e.runId,session_id:e.sessionId}}var jr=class extends Error{status;constructor(e){super(e===401||e===403?`Activity access is unavailable. Check this instance connection.`:e===404?`Activity is unavailable for this conversation.`:e===409?`More than one saved answer refers to this run. The existing transcript is unchanged.`:e===413?`The saved answer exceeds the inline recovery limit. The existing transcript is unchanged.`:`Activity could not be loaded. Retry when the connection is available.`),this.status=e}};async function Mr(e,t,n=27e4){try{return await i(e,{},t,n)}catch(e){throw e instanceof a?new jr(e.status):e}}var Nr=`.msg-agent[data-trace-run-id]`,Pr=64,Fr=16,Ir=3e4,Y=null,Lr=null,Rr=null,zr=new Set,Br=0,Vr=!1,Hr=!1,Ur=``,X=null,Wr=null,Gr=null,Z=new Map,Kr=new Map,qr=()=>document.documentElement.dataset.presentationMode!==`legacy`,Jr=()=>document.getElementById(`chatMessages`),Yr=()=>`${window.location.pathname}${window.location.search}`;function Xr(e){let t=Jr(),n=e.parentElement;return!!t&&(n===t||n?.classList.contains(`vs-inner`)===!0&&n.parentElement===t)}function Zr(e,t,n){return Xr(e)&&e.dataset.traceRunId===t&&e.dataset.messageSessionId===n&&(Rr===n&&zr.has(t)||K(t)?.message===e||e.dataset.activitySession===n||e.hasAttribute(`data-active-run-hydrated`))}function Qr(e,t,n,r){return Z.get(e.message)===e&&!e.controller.signal.aborted&&e.message.isConnected&&Br===n&&r===Yr()&&Y?.sessionId===t.sessionId&&Y.scope===t.scope&&Zr(e.message,e.runId,t.sessionId)}function $r(e,t){e.querySelectorAll(`.process-step-trace`).forEach(e=>{e.setAttribute(`aria-disabled`,String(!t)),e.tabIndex=t?0:-1,e instanceof window.HTMLButtonElement&&(e.disabled=!t)})}function ei(e){e.retry.disabled=!1,e.pending=!1,e.resolve?.(),e.resolve=null,e.promise=null}function Q(e,t){e.controller.abort(),t?X?.unobserve(e.message):(e.status.textContent=`Activity read cancelled. Retry to inspect.`,e.retry.textContent=`Retry activity`,e.retry.hidden=!1,e.box.hidden=!1),Kr.delete(e.message)&&ei(e),t&&(Z.delete(e.message),e.box.remove())}function ti(){for(let e of Z.values())e.message.isConnected||Q(e,!0);Z.size<Pr&&document.getElementById(`activityHistoryCapacity`)?.remove()}function ni(e,t){let n=Z.get(e);if(n?.runId===t)return n;if(n&&Q(n,!0),ti(),Z.size>=Pr){if(!document.getElementById(`activityHistoryCapacity`)){let e=document.createElement(`p`);e.id=`activityHistoryCapacity`,e.className=`activity-read-capacity`,e.setAttribute(`role`,`status`),e.textContent=`Activity inspection is at its display limit. Existing answers remain available; scroll unused records away before retrying.`,Jr()?.append(e)}return null}e.querySelector(`.activity-read-control`)?.remove();let r=document.createElement(`div`);r.className=`activity-read-control`;let i=document.createElement(`p`);i.setAttribute(`role`,`status`);let a=document.createElement(`button`);a.type=`button`,a.textContent=`Load activity`,r.append(i,a),e.querySelector(`.agent-body`)?.prepend(r);let o={message:e,runId:t,cacheScope:le(),controller:new AbortController,box:r,status:i,retry:a,pending:!1,loaded:!1,promise:null,resolve:null};return a.onclick=()=>{si(e,t,!0)},Z.set(e,o),qr()&&$r(e,!1),o}function ri(e){if(!Y||!Zr(e,e.dataset.traceRunId??``,Y.sessionId))return;let t=ni(e,e.dataset.traceRunId);t&&(t.loaded=!1,t.box.hidden=!1,t.retry.hidden=!1,t.status.textContent=`Activity preview is no longer retained in memory. Load it again to inspect.`)}function ii(e,t){if(e.scope!==t.scope)throw Error(`activity_scope_changed`);let n=[...e.events,...t.events];if(n.length>4096)throw Error(`activity_run_limit`);let r=0,i=new TextEncoder,a=n[0]?.turnId;for(let e of n){if(e.turnId!==a)throw Error(`activity_turn_changed`);if(r+=i.encode(JSON.stringify(e)).length,r>4194304)throw Error(`activity_run_limit`)}return n}async function ai(e){let t=Y;if(!t)return;let n=Br,r=Yr(),i=setTimeout(()=>e.controller.abort(new DOMException(`Activity read deadline`,`TimeoutError`)),Ir),a=e.retry===document.activeElement;Gn(e.message)&&e.message.dataset.activitySaved!==`true`&&(e.message.dataset.activityRecovering=`true`);let o,s;try{if(await cr(async i=>{if(o=await kr({runId:e.runId,sessionId:t.sessionId,signal:i,read:Mr}),!Qr(e,t,n,r)||(s=await kr({runId:e.runId,sessionId:t.sessionId,after:o.through,signal:i,read:Mr}),!Qr(e,t,n,r)))throw new DOMException(`History context changed`,`AbortError`);return ii(o,s)},{runId:e.runId,signal:e.controller.signal}),!Qr(e,t,n,r)||!o||!s)return;e.message.dataset.activitySession=t.sessionId;let i=s,c=K(e.runId),l=[...o.events,...i.events].find(e=>e.kind===`turn-end`),u=c?.model.end?.status??(l?.kind===`turn-end`?l.status:i.status===`interrupted`?`stopped`:i.status),d=o.incomplete||i.incomplete;$r(e.message,!0);let f={kind:`unavailable`},p;if(u!==`running`){try{let n=await Ar({runId:e.runId,sessionId:t.sessionId,signal:e.controller.signal,read:(e,t)=>Mr(e,t,Cr)});f=n?{kind:`saved`,message:n}:{kind:`absent`}}catch(e){p=e}if(!Qr(e,t,n,r))return}if(p instanceof jr&&p.status===409||(c=lr(e.message,e.runId)??c),u!==`running`&&er(e.runId,u),dr(e.runId,d),u!==`running`&&(Lr?.terminal({runId:e.runId,sessionId:t.sessionId,scope:i.scope,...c?{turnId:c.model.identity.turnId}:{},status:u,message:e.message,cacheScope:e.cacheScope,answer:f}),c=K(e.runId),f.kind===`saved`&&(ar(c?.message??e.message,f.message,e.cacheScope)||(p=Error(`saved_message_identity_changed`)))),!Qr(e,t,n,r))return;e.loaded=!0;let m=!c;e.status.textContent=p instanceof jr?p.message:p?`The saved answer could not be recovered. Retry; existing text is unchanged.`:d?`Some recorded activity is unavailable. Existing saved or live answers are unchanged.`:m?`No detailed Activity is retained. The saved transcript and authorized Trace remain available.`:u!==`running`&&f.kind===`absent`?`No saved answer is linked to this run. Inspect retained Activity in Trace.`:``,e.retry.textContent=`Refresh activity`,e.retry.hidden=!d&&!m&&!p&&u!==`running`&&f.kind===`saved`,e.box.hidden=e.retry.hidden,a&&e.box.hidden&&e.message.querySelector(`.activity-summary`)?.focus({preventScroll:!0})}catch(i){if(Z.get(e.message)!==e||Br!==n||r!==Yr()||e.controller.signal.aborted&&e.controller.signal.reason?.name!==`TimeoutError`)return;if(e.status.textContent=i instanceof jr?i.message:`Activity could not be restored. The transcript is unchanged; retry to inspect it.`,e.retry.hidden=!1,e.box.hidden=!1,e.retry.textContent=`Retry activity`,i instanceof jr&&i.status===404)try{await Mr(`/api/traces/${encodeURIComponent(e.runId)}?${new URLSearchParams({session:t.sessionId})}`,e.controller.signal),Qr(e,t,n,r)&&($r(e.message,!0),e.status.textContent=`Detailed Activity was not recorded for this turn. The saved transcript is shown.`,e.retry.hidden=!0)}catch{}}finally{clearTimeout(i),Z.get(e.message)===e&&(!e.controller.signal.aborted||e.controller.signal.reason?.name===`TimeoutError`)&&(e.loaded=!0)}}function oi(){if(Gr)return;let e=Kr.entries().next().value;if(!e)return;Kr.delete(e[0]);let t=e[1];if(!t.message.isConnected||t.controller.signal.aborted||Z.get(t.message)!==t){ei(t),queueMicrotask(oi);return}Gr=t,t.status.textContent=`Loading recorded activity.`,ai(t).catch(e=>console.warn(`[activity] history read failed`,e)).finally(()=>{ei(t),Gr===t&&(Gr=null),oi()})}function si(e,t,n=!1){if(!Y||!Zr(e,t,Y.sessionId)||!e.isConnected||Vr||!n&&(!qr()||!Hr))return Promise.resolve();let r=ni(e,t);if(!r)return Promise.resolve();if(r.pending)return r.promise;let i=K(t);if(!n&&r.loaded)return Promise.resolve();if(!n&&i?.message===e&&!i.degraded&&!e.dataset.activityRecovering)return r.box.hidden=!0,$r(e,!0),Promise.resolve();if(Kr.size>=Fr)return r.status.textContent=`Activity reads are at their limit. Use Load activity to retry.`,r.box.hidden=!1,r.retry.hidden=!1,Promise.resolve();r.controller=new AbortController,r.pending=!0,r.box.hidden=!1,r.status.textContent=`Activity read queued.`,r.retry.disabled=!0,r.promise=new Promise(e=>{r.resolve=e});let a=r.promise;return Kr.set(e,r),oi(),a}function ci(e){for(let t of e.querySelectorAll(`[data-activity-key]`))ur(t);e instanceof HTMLElement&&e.dataset.activityKey&&ur(e);for(let[t,n]of Z)(e===t||e.contains(t))&&(Q(n,!0),ur(t))}function li(e){if(Y&&!Vr){ti(),fr(e),!X&&typeof IntersectionObserver<`u`&&(X=new IntersectionObserver(e=>{for(let t of e){let e=t.target,n=Z.get(e);t.isIntersecting?si(e,e.dataset.traceRunId??``):n?.pending&&!e.contains(document.activeElement)&&Q(n,!1)}},{root:Jr()}));for(let t of e.querySelectorAll(Nr)){let e=t.dataset.traceRunId;if(!Zr(t,e,Y.sessionId))continue;let n=ni(t,e);if(n){if(!qr()){n.box.hidden=!0,$r(t,!0);continue}t.closest(`details:not([open])`)||(X?X.observe(t):si(t,e))}}}}function ui(){Vr=!0,++Br;for(let e of Z.values())e.pending&&Q(e,!1)}function di(e,t){if(Vr=!1,Rr=e,zr=new Set(t),Y&&e&&Y.sessionId!==e&&Lr){let t=`${Yr()}:${e}`;Ur!==t&&(Ur=t,Lr.refreshIdentity().catch(()=>{}))}let n=Jr();n&&li(n)}function fi(e,t){if(Lr=t,Y?.sessionId!==e?.sessionId||Y?.scope!==e?.scope){++Br;for(let e of Z.values())Q(e,!0);X?.disconnect(),X=null,Wn(),Ur=``}Y=e?{...e}:null,Wr||(Wr=new MutationObserver(()=>{if(!qr())for(let e of Z.values())e.pending&&Q(e,!1);let e=Jr();e&&li(e)}),Wr.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-presentation-mode`]}))}function pi(e){if(Hr=e,e){let e=Jr();e&&li(e)}else for(let e of Z.values())e.pending&&Q(e,!1)}function mi(){++Br;for(let e of Z.values())Q(e,!0);X?.disconnect(),X=null,Wr?.disconnect(),Wr=null,Y=null,Rr=null,zr.clear(),Lr=null}var hi={postRender(e){fr(e),li(e)},recycle(e){ci(e),ur(e)}};function gi(e){e.addLifecycleHooks(hi)}function _i(e){return e.map((e,t)=>Xt(Ut(e),t))}var vi=3e3;function yi(){return p(`?limit=${vi}`)}function bi(e){return String(e||``).trim()||`unknown`}function xi(e){let t=bi(e.origin),n=bi(e.pathname||`/`);return`${t}${n.startsWith(`/`)?n:`/${n}`}`}function Si(e){return`${bi(e.locationKey)}::${bi(e.workingDir)}`}function Ci(){return xi(typeof window>`u`?{}:{origin:window.location.origin,pathname:window.location.pathname})}function wi(e){if(!e||e==="default")return null;let t=e.indexOf(`::`);return t>=0?e.slice(t+2):e}function Ti(e){e.onLazyRender??=e=>{for(let t of e){if(!t.classList.contains(`lazy-pending`))continue;let e=t.getAttribute(`data-raw`)||``,n=t.closest(`.msg-agent`),r=n?.querySelector(`.agent-body`),i=r?.dataset.toolLog||``;if(n&&r&&i&&!it(n)){let e=Vt(i);e.length>0&&t.insertAdjacentHTML(`beforebegin`,M(Wt(e),!0)),delete r.dataset.toolLog,rt(n)}t.innerHTML=e?ee(e):``,t.classList.remove(`lazy-pending`),ae(t),d(t),v(t),g(t),u(t),m(t),_(t),o(t,{immediate:!0})}},e.onPostRender??=e=>{ae(e),d(e),v(e),g(e),u(e),m(e),_(e),y(e),o(e,{immediate:!0})},gi(e)}function Ei(e,t={}){return{registerCallbacks:()=>Ti(e),setItems:(t,n)=>e.setItems(t,n),activateIfNeeded:t=>e.activateIfNeeded(t),scrollToBottom:()=>e.scrollToBottom(),scrollToIndex:t=>e.scrollToIndex(t),shouldFollowBottom:t.forceInitialBottom?()=>!0:re,restoreIndex:t.restoreIndex??null,onBeforeVirtualHistoryBootstrap:()=>{ie()},onAfterVirtualHistoryBottomed:()=>{N(),P()}}}function Di(e){e.forEach(e=>{let t=bt(e.role===`assistant`?`agent`:e.role,e.content,e.cli);if(e.id!==void 0&&(t.dataset.messageId=String(e.id)),e.trace_run_id&&(t.dataset.traceRunId=e.trace_run_id),e.session_id!==void 0&&(t.dataset.messageSessionId=e.session_id),e.server_message_id!==void 0&&(t.dataset.serverMessageId=String(e.server_message_id),t.dataset.activitySaved=`true`),e.role===`assistant`&&e.tool_log){let n=Vt(e.tool_log);if(n.length>0){let e=t.querySelector(`.agent-body`);if(e){let t=k(e);for(let e of Wt(n))oe(t,e);se(t)}}}})}function Oi(e){let t=e.message_id??e.id;return{...t===void 0?{}:{id:t},role:e.role,content:e.content,cli:e.cli??null,tool_log:e.tool_log??null,trace_run_id:e.trace_run_id??null,...e.session_id===void 0?{}:{session_id:e.session_id},...typeof e.message_id==`number`&&Number.isSafeInteger(e.message_id)&&e.message_id>0?{server_message_id:e.message_id}:{}}}var ki=``;function Ai(e,t){let n=t.length>0?t[t.length-1]:null;return`${e}|${t.length}|${n?JSON.stringify(n):``}`}var ji=null,Mi=``,Ni=0,Pi=null,Fi=``,$=null,Ii=new Set;async function Li(){let e=f(),t=`${Ci()}:${e??``}`;if(Mi===t&&ji)return ji;Pi?.abort();let n=new AbortController;Pi=n,Mi=t;let r=++Ni,i=`/api/messages${yi()}&withSession=1`;ui();let a=setTimeout(()=>n.abort(new DOMException(`Message history deadline`,`TimeoutError`)),3e4),o=()=>r===Ni&&t===`${Ci()}:${f()??``}`,s=Ui({requestedSession:e,key:t,path:i,signal:n.signal,current:()=>!n.signal.aborted&&o()}).catch(e=>{if(!n.signal.aborted)throw e}).finally(()=>{clearTimeout(a),ji===s&&(ji=null,Pi=null),n.signal.aborted&&o()&&di(Fi===t?$:null,Fi===t?Ii:new Set)});return ji=s,s}function Ri(){return ji!==null}async function zi(e,t){t.throwIfAborted();let n,r=new Promise((e,r)=>{n=()=>r(t.reason),t.addEventListener(`abort`,n,{once:!0})});try{return await Promise.race([e(),r])}finally{t.removeEventListener(`abort`,n)}}function Bi(e,t){let n=t,r;if(Array.isArray(e))r=e;else if(e&&typeof e==`object`&&!Array.isArray(e)){let i=e;if(typeof i.sessionId!=`string`||!i.sessionId||i.sessionId.length>240||t!==null&&i.sessionId!==t)throw Error(`message_session_mismatch`);n=i.sessionId,r=i.messages}if(!Array.isArray(r))throw Error(`invalid_message_snapshot`);let i=r.slice(-3e3).map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid_message_snapshot`);let t=e;if(typeof t.role!=`string`||typeof t.content!=`string`||t.id!==void 0&&!(typeof t.id==`number`&&Number.isSafeInteger(t.id)&&t.id>0)&&!(typeof t.id==`string`&&t.id.length<=240)||t.trace_run_id!=null&&!(typeof t.trace_run_id==`string`&&t.trace_run_id.length<=240)||t.session_id!==void 0&&!(typeof t.session_id==`string`&&t.session_id.length>0&&t.session_id.length<=240)||n&&t.session_id!==void 0&&t.session_id!==n||t.cli!=null&&typeof t.cli!=`string`||t.tool_log!=null&&typeof t.tool_log!=`string`)throw Error(`invalid_message_snapshot`);let r=t,i={...r,...n===null?{}:{session_id:n}};return delete i.server_message_id,typeof r.id==`number`&&(i.server_message_id=r.id),Ut(i)});return{sessionId:n,messages:i}}function Vi(e){if(!e.length)return;let t=document.createElement(`details`);t.className=`activity-legacy-cache`;let n=document.createElement(`summary`);n.textContent=`Unverified legacy cache preview`;let r=document.createElement(`p`);r.textContent=`This limited cache preview has no verified conversation identity. Connect to refresh; it cannot load Activity history.`;let i=document.createElement(`pre`);i.textContent=e.slice(-40).map(e=>e.content.slice(0,1e3)).join(`
3
-
4
- `),t.append(n,r,i),Hi()?.append(t)}var Hi=()=>document.getElementById(`chatMessages`);async function Ui(e){let t=j(),r=document.getElementById(`chatMessages`),i=le(),a=Ci(),o=wi(i);try{let t=await zi(()=>n(`/api/settings`,{signal:e.signal}),e.signal);t?.workingDir&&(o=t.workingDir)}catch{}if(!e.current())return;let s=Si({locationKey:a,workingDir:o});de(s);let u=s!==i,d=null;try{let t=await zi(()=>n(e.path,{signal:e.signal}),e.signal);t!==null&&(d=Bi(t,e.requestedSession))}catch(t){e.current()&&console.warn(`[history] message snapshot unavailable`,t)}if(!e.current())return;if(d){let n=d.messages;l(n);let i=!!r?.querySelector(`.msg`)||t.active,a=Ai(`${s}:${d.sessionId??``}`,n);if(Fi=e.key,$=d.sessionId,Ii=new Set(n.filter(e=>e.role===`assistant`&&e.trace_run_id).map(e=>e.trace_run_id)),i&&!u&&a===ki){en(n.length),di($,Ii);return}ki=a;let o=u||!i,c=!o&&t.active?t.firstVisibleIndex():null;r&&ci(r),t.clear(),r&&(r.innerHTML=``),n.length>=1?Zt(_i(n),Ei(t,{forceInitialBottom:o,restoreIndex:o?null:c})):(Di(n),o&&P()),fe(n.map(e=>({...e.id===void 0?{}:{message_id:e.id},role:e.role,content:e.content,cli:e.cli??null,tool_log:e.tool_log??null,timestamp:Date.now(),trace_run_id:e.trace_run_id??null,...e.session_id===void 0?{}:{session_id:e.session_id}})),s).catch(()=>{}),di($,Ii),en(n.length),_t();return}if(r&&r.children.length>0&&Fi===e.key){di($,Ii),_t();return}r&&Fi!==e.key&&(ci(r),t.clear(),r.replaceChildren());let f=await zi(()=>ce(s),e.signal);if(!e.current())return;let p=(e.requestedSession===null?f:f.filter(t=>t.session_id===e.requestedSession)).slice(-3e3);if(p.length>0){let e=p.map(Oi).map(Ut);l(e),e.length>=1?Zt(_i(e),Ei(t,{forceInitialBottom:!0})):(Di(e),P()),vt(`${S.warning} ${c(`ui.offline.banner`)}`),en(e.length)}e.requestedSession!==null&&Vi(f.filter(e=>e.session_id===void 0)),Fi=e.key,$=e.requestedSession,Ii=new Set(p.filter(e=>e.role===`assistant`&&e.trace_run_id).map(e=>e.trace_run_id)),di($,Ii),_t()}export{Me as $,Un as A,Jt as B,K as C,sr as D,Yn as E,Qt as F,ct as G,bt as H,$t as I,ft as J,it as K,Xt as L,er as M,tr as N,ir as O,tn as P,Pe as Q,Kt as R,or as S,$n as T,vt as U,Wt as V,ht as W,Qe as X,dt as Y,Ke as Z,_r as _,gi as a,qn as b,Ei as c,si as d,ri as f,di as g,pi as h,_i as i,Jn as j,rr as k,Ti as l,fi as m,xi as n,Ri as o,li as p,rt as q,Si as r,Li as s,yi as t,mi as u,gr as v,nr as w,In as x,Ln as y,qt as z};
@@ -1 +0,0 @@
1
- import{o as e,s as t}from"./message-history-D2vniu04.js";export{e as historyReloadInFlight,t as loadMessages};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-C_pPTFsM.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./settings-client-CmwRsVd1.js";var i=e(t(),1),a=n();function o(e,t,n=[]){let[r,a]=(0,i.useState)({kind:`loading`}),[o,c]=(0,i.useState)(0);return(0,i.useEffect)(()=>{let n=!1;return a({kind:`loading`}),e.get(t).then(e=>{n||a({kind:`ready`,data:e})}).catch(e=>{n||a(s(e))}),()=>{n=!0}},[e,t,o,...n]),{state:r,refresh:(0,i.useCallback)(async()=>{c(e=>e+1)},[]),setData:(0,i.useCallback)(e=>{a({kind:`ready`,data:e})},[])}}function s(e){return e instanceof r?e.status===401||e.status===403?{kind:`error`,message:`Instance requires auth. Open its native UI to grant access.`}:e.status>=500||e.status===0?{kind:`offline`}:{kind:`error`,message:e.message}:{kind:`error`,message:e instanceof Error?e.message:String(e)}}function c({title:e,hint:t,children:n}){return(0,a.jsxs)(`section`,{className:`settings-section`,children:[(0,a.jsxs)(`header`,{className:`settings-section-header`,children:[(0,a.jsx)(`h2`,{children:e}),t?(0,a.jsx)(`p`,{className:`settings-section-hint`,children:t}):null]}),(0,a.jsx)(`div`,{className:`settings-section-body`,children:n})]})}function l({label:e=`Loading instance settings…`}){return(0,a.jsx)(`div`,{className:`settings-loading`,children:e})}function u({message:e}){return(0,a.jsx)(`div`,{className:`settings-error`,role:`alert`,children:e})}function d({port:e}){return(0,a.jsxs)(`div`,{className:`settings-error`,role:`alert`,children:[`Instance offline or proxy error. The dashboard could not reach`,(0,a.jsxs)(`code`,{children:[` /i/`,e,`/api/settings`]}),`.`]})}export{o as a,c as i,l as n,d as r,u as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-C_pPTFsM.js";var n=e((e=>{var n=t();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`);function s(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var c=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return s(e,t,null,n)},e.flushSync=function(e){var t=c.T,n=a.p;try{if(c.T=null,a.p=2,e)return e()}finally{c.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=l(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=l(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},e.useFormStatus=function(){return c.H.useHostTransitionStatus()},e.version=`19.2.5`})),r=e(((e,t)=>{function r(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(e){console.error(e)}}r(),t.exports=n()}));export{r as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./api-CUtiCd2-.js";import{n as t,t as n}from"./settings-embedding-BfWzWKMM.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{n as i}from"./settings-client-CmwRsVd1.js";var a=t(),o=r(),s=location.pathname.match(/^\/i\/(\d+)\//),c=s?`/i/${s[1]}`:``,l=document.getElementById(`settings-root`);if(!l)throw Error(`Invalid settings host`);function u(e){if(typeof e!=`number`&&(typeof e!=`string`||!/^\d+$/.test(e)))return null;let t=Number(e);return Number.isInteger(t)&&t>0&&t<=65535?t:null}function d(e){(e===`dark`||e===`light`||e===`auto`)&&(document.documentElement.dataset.theme=e)}if(parent!==window)try{parent.location.origin===location.origin&&d(parent.document.documentElement.dataset.theme)}catch{}window.addEventListener(`message`,e=>{if(e.source===parent&&e.origin===location.origin&&(e.data?.type===`jaw-preview-theme-sync`&&d(e.data.theme),e.data?.type===`settings:request-back`)){let e=l.querySelector(`.settings-back`);e?e.click():parent.postMessage({type:`settings:back`},location.origin)}});var f=i(0,{base:c,getHeaders:async()=>{let t=await e();return t?{Authorization:`Bearer ${t}`}:{}}}),p=null;try{let e=await f.get(`/api/settings`);p=e.data??e}catch{}var m=u(p?.port)??u(location.port);if(m===null)throw l.setAttribute(`role`,`alert`),l.textContent=`Cannot resolve instance settings port`,Error(`Cannot resolve instance settings port`);var h=!1;window.addEventListener(`beforeunload`,e=>{h&&(e.preventDefault(),e.returnValue=``)});var g={scopes:[`instance`],client:f},_=(0,a.createRoot)(l),v=0,y=()=>{(!h||window.confirm(`Discard unsaved changes?`))&&(h&&(v++,b()),parent!==window&&parent.postMessage({type:`settings:back`},location.origin))};function b(){_.render((0,o.jsx)(n,{onBack:y,port:m,instanceUrl:location.origin+c,...g,onDirtyChange:e=>{h=e},onSaved:()=>{parent!==window&&parent.postMessage({type:`jaw-settings-saved`},location.origin)}},v))}b(),parent!==window&&parent.postMessage({type:`jaw-settings-ready`},location.origin);
@@ -1 +0,0 @@
1
- import{c as e,n as t}from"./settings-core-B5Uf_lWY.js";import"./settings-jlI4X-zt.js";export{t as loadSettings,e as updateSettings};
@@ -1 +0,0 @@
1
- var e=class extends Error{method;path;status;detail;constructor(e,t,n,r){super(`${e} ${t} → ${n}: ${r}`),this.name=`SettingsRequestError`,this.method=e,this.path=t,this.status=n,this.detail=r}};function t(e){return`/i/${e}`}function n(n,r={}){let i=r.base??t(n),a={"content-type":`application/json`};async function o(t,n,o,s){let c=new AbortController,l=setTimeout(()=>c.abort(),8e3);try{let l=new Headers(a);for(let[e,t]of Object.entries(await r.getHeaders?.()??{}))l.set(e,t);new Headers(s?.headers).forEach((e,t)=>l.set(t,e));let u={...s,method:t,headers:l,signal:s?.signal||c.signal};o!==void 0&&(u.body=JSON.stringify(o));let d=await fetch(`${i}${n}`,u);if(!d.ok){let r=await d.text().catch(()=>``);throw new e(t,n,d.status,r)}let f=d.headers.get(`content-type`)||``;if(f.includes(`application/json`))return await d.json();let p=await d.text().catch(()=>``);throw new e(t,n,d.status,`expected JSON, received ${f||`unknown content-type`}: ${p.slice(0,120)}`)}finally{clearTimeout(l)}}return{get:(e,t)=>o(`GET`,e,void 0,t),put:(e,t,n)=>o(`PUT`,e,t,n),post:(e,t,n)=>o(`POST`,e,t,n),delete:(e,t)=>o(`DELETE`,e,void 0,t)}}export{n,e as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./settings-core-B5Uf_lWY.js";export{e as refreshHeaderFromSettingsChange};
@@ -1 +0,0 @@
1
- function e(e){if(e.precision===`binary`)return{percent:null,text:e.status===`exhausted`?`Exhausted`:`Available`};let t=Math.max(0,Math.min(100,Math.round(e.percent)));return{percent:t,text:`${t}%`}}function t(e){return e.probeState===`checking`?`checking`:e.probeState===`unknown`?`unknown`:e.probeState===`failing`?`probe-failing`:e.binaryInstalled===!0&&e.capabilityReady===!1?`capability-failed`:e.probeState===`stale`?`stale`:e.available===!0&&e.capabilityReady!==!1?`ready`:`unavailable`}function n(e){return e.probeState===`checking`?{kind:`checking`,message:`Checking status`,allowRemediation:!1}:e.probeState===`unknown`?{kind:`unknown`,message:`Probe unavailable${e.probeError?`: ${e.probeError}`:``}`,allowRemediation:!1}:e.probeState===`failing`?{kind:`failing`,message:`Status check failed (retrying)${e.probeError?`: ${e.probeError}`:``}`,allowRemediation:!1}:{kind:`none`,message:null,allowRemediation:!0}}function r(e){return e>=200&&e<300||e===409}function i(e){let t=e.lastStartFailure?.code;return t?{code:t,message:`Native runtime failed to start: ${t}`}:null}export{r as a,e as i,n,i as r,t};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-NZYk81nU.js";var t=e(),n=[{value:`ko`,label:`한국어 (ko)`},{value:`en`,label:`English (en)`},{value:`zh`,label:`中文 (zh)`},{value:`ja`,label:`日本語 (ja)`}];function r(e){return n.find(t=>t.value===e)?.value??`ko`}var i={ko:{ariaLabel:`대시보드 설정`,eyebrow:`매니저 환경설정`,title:`대시보드 설정`,displayTitle:`인스턴스 목록 표시`,displayDescription:`이 설정은 왼쪽 인스턴스 목록과 저장된 매니저 UI 환경설정에만 적용됩니다.`,activityTitle:`미리보기와 활동`,activityDescription:`최근 작업 제목은 각 인스턴스 서버의 endpoint 버전에 따라 달라집니다.`,embeddingTitle:`임베딩 검색`,embeddingDescription:`벡터 임베딩 provider를 설정하고 메모리 인덱스를 관리합니다.`,fields:{activity:{label:`최근 작업 미리보기`,scope:`왼쪽 인스턴스 목록`,description:`요약 endpoint를 지원하는 인스턴스에서 최신 user 또는 assistant 메시지를 정리한 한 줄을 표시합니다.`},rename:{label:`이름 변경 컨트롤`,scope:`왼쪽 인스턴스 목록`,description:`대시보드 전용 인스턴스 이름을 편집하는 연필 버튼을 표시합니다.`},runtime:{label:`런타임 줄`,scope:`왼쪽 인스턴스 목록`,description:`각 인스턴스 이름 아래에 codex / gpt-5.5 같은 CLI와 모델 정보를 표시합니다.`},actions:{label:`확장 행 액션`,scope:`선택된 인스턴스 행`,description:`선택된 인스턴스 행에 Preview, Open, Start, Stop, Restart 버튼을 표시합니다.`},language:{label:`언어`,scope:`전체 Jaw UI`,description:`i18n을 지원하는 매니저 대시보드 화면에 사용할 언어를 저장합니다.`},shortcuts:{label:`전역 단축키`,scope:`Manager dashboard`,description:`입력창과 에디터 바깥에서만 작동하는 Manager 이동 단축키를 켭니다.`},shortcutFocusInstances:{label:`인스턴스 목록`,scope:`단축키`,description:`Instances workspace로 이동합니다.`},shortcutFocusActiveSession:{label:`활성 세션`,scope:`단축키`,description:`선택된 인스턴스의 Preview 탭으로 이동합니다.`},shortcutFocusNotes:{label:`노트`,scope:`단축키`,description:`Notes workspace로 이동합니다.`},shortcutPreviousInstance:{label:`이전 인스턴스`,scope:`단축키`,description:`현재 필터 목록에서 이전 인스턴스를 선택합니다.`},shortcutToggleInstanceSettings:{label:`인스턴스 설정`,scope:`단축키`,description:`설정 패널을 열거나 닫습니다. 미리보기 iframe 안에서는 작동하지 않습니다.`},shortcutNextInstance:{label:`다음 인스턴스`,scope:`단축키`,description:`현재 필터 목록에서 다음 인스턴스를 선택합니다.`},shortcutResetSidebarWidth:{label:`사이드바 폭 리셋`,scope:`단축키`,description:`기본 300으로 되돌리고 'jaw.sidebarWidth' 키를 지운다.`},shortcutJumpInstance:{label:`인스턴스 점프`,scope:`단축키`,description:`렌더된 사이드바 행 1–9로 이동합니다. Meta+1–3는 탭 전환에 남아 있어 Alt를 씁니다.`},shortcutToggleBottomPanel:{label:`하단 패널`,scope:`단축키`,description:`하단 패널(터미널·활동)을 열거나 닫습니다.`},shortcutToggleRightPanel:{label:`오른쪽 사이드바`,scope:`단축키`,description:`오른쪽 패널을 열거나 닫고, 비어 있으면 파일 패널을 만듭니다.`},shortcutToggleLeftSidebar:{label:`왼쪽 사이드바`,scope:`단축키`,description:`왼쪽 인스턴스 사이드바를 접거나 펼칩니다.`},shortcutFocusTerminal:{label:`터미널 표시`,scope:`단축키`,description:`하단 터미널 탭을 열고 활성 터미널에 포커스합니다.`},shortcutNewTerminalSession:{label:`새 터미널 세션`,scope:`단축키`,description:`터미널 탭을 열고 새 셸 세션을 시작합니다.`},shortcutTerminalNewTab:{label:`새 터미널 탭`,scope:`단축키`,description:`새 터미널 세션을 엽니다.`},shortcutTerminalClear:{label:`터미널 지우기`,scope:`단축키`,description:`포커스된 터미널 버퍼를 지웁니다.`},shortcutOpenDiff:{label:`Diff 패널`,scope:`단축키`,description:`오른쪽 diff 패널을 열거나 포커스합니다.`},shortcutOpenFolderTree:{label:`폴더 패널`,scope:`단축키`,description:`오른쪽 파일 트리 패널을 열거나 포커스합니다.`},shortcutCloseFocusedTab:{label:`포커스된 탭 닫기`,scope:`단축키`,description:`브라우저, 터미널, 패널 중 포커스된 탭을 닫습니다.`},shortcutSwitchTab1:{label:`Overview 탭`,scope:`단축키`,description:`인스턴스 Overview 탭으로 전환합니다.`},shortcutSwitchTab2:{label:`Preview 탭`,scope:`단축키`,description:`인스턴스 Preview 탭으로 전환합니다.`},shortcutSwitchTab3:{label:`Logs 탭`,scope:`단축키`,description:`인스턴스 Logs 탭으로 전환합니다.`},shortcutPreviousTab:{label:`이전 탭`,scope:`단축키`,description:`이전 인스턴스 상세 탭으로 전환합니다.`},shortcutNextTab:{label:`다음 탭`,scope:`단축키`,description:`다음 인스턴스 상세 탭으로 전환합니다.`},shortcutBrowserReload:{label:`새로고침`,scope:`단축키`,description:`포커스 위치에 따라 브라우저, 프리뷰, 앱 창을 새로고침합니다.`},shortcutBrowserHardReload:{label:`강력 새로고침`,scope:`단축키`,description:`캐시를 무시하고 다시 로드합니다.`},shortcutBrowserFocusUrl:{label:`URL 바 포커스`,scope:`단축키`,description:`브라우저 패널의 주소창에 포커스합니다.`},shortcutBrowserBack:{label:`브라우저 뒤로`,scope:`단축키`,description:`브라우저 패널에서 이전 페이지로 이동합니다.`},shortcutBrowserForward:{label:`브라우저 앞으로`,scope:`단축키`,description:`브라우저 패널에서 다음 페이지로 이동합니다.`}},support:{ariaLabel:`작업 제목 출처 준비 상태`,ready:`준비됨`,legacy:`레거시 endpoint`,offline:`오프라인`,empty:`현재 표시할 인스턴스가 없습니다.`,restart:`최근 작업 제목을 사용하려면 레거시 인스턴스를 재시작하세요.`}},en:{ariaLabel:`Dashboard settings`,eyebrow:`Manager preferences`,title:`Dashboard settings`,displayTitle:`Instance list display`,displayDescription:`These controls only affect the left instance list and saved manager UI preferences.`,activityTitle:`Preview & activity`,activityDescription:`Latest activity titles depend on each instance server endpoint version.`,embeddingTitle:`Embedding search`,embeddingDescription:`Configure a vector embedding provider and manage the memory index.`,fields:{activity:{label:`Recent activity preview`,scope:`Left instance list`,description:`Show one cleaned line from the latest user or assistant message when the instance supports the summary endpoint.`},rename:{label:`Rename control`,scope:`Left instance list`,description:`Show the pencil button for editing the dashboard-only instance label.`},runtime:{label:`Runtime line`,scope:`Left instance list`,description:`Show CLI and model text, for example codex / gpt-5.5, under each instance label.`},actions:{label:`Expanded row actions`,scope:`Selected instance row`,description:`Show Preview, Open, Start, Stop, and Restart buttons on the selected instance row.`},language:{label:`Language`,scope:`Global Jaw UI`,description:`Sets the saved manager dashboard locale for i18n-aware surfaces.`},shortcuts:{label:`Global shortcuts`,scope:`Manager dashboard`,description:`Enable Manager navigation shortcuts outside inputs and editors.`},shortcutFocusInstances:{label:`Instance list`,scope:`Shortcut`,description:`Move to the Instances workspace.`},shortcutFocusActiveSession:{label:`Active session`,scope:`Shortcut`,description:`Move to the selected instance Preview tab.`},shortcutFocusNotes:{label:`Notes`,scope:`Shortcut`,description:`Move to the Notes workspace.`},shortcutPreviousInstance:{label:`Previous instance`,scope:`Shortcut`,description:`Select the previous instance in the current filtered list.`},shortcutToggleInstanceSettings:{label:`Instance settings`,scope:`Shortcut`,description:`Open or close the settings panel in the Manager document; unavailable inside the preview iframe.`},shortcutNextInstance:{label:`Next instance`,scope:`Shortcut`,description:`Select the next instance in the current filtered list.`},shortcutResetSidebarWidth:{label:`Reset sidebar width`,scope:`Shortcut`,description:`Restore the default 300px width and delete the 'jaw.sidebarWidth' key.`},shortcutJumpInstance:{label:`Jump to instance`,scope:`Shortcut`,description:`Jump to rendered sidebar rows 1–9. Meta+1–3 stay on tab switching, so these use Alt.`},shortcutToggleBottomPanel:{label:`Bottom panel`,scope:`Shortcut`,description:`Open or close the bottom panel (terminal and activity).`},shortcutToggleRightPanel:{label:`Right sidebar`,scope:`Shortcut`,description:`Open or close the right panel; creates a files panel when empty.`},shortcutToggleLeftSidebar:{label:`Left sidebar`,scope:`Shortcut`,description:`Collapse or expand the left instance sidebar.`},shortcutFocusTerminal:{label:`Reveal terminal`,scope:`Shortcut`,description:`Open the bottom terminal tab and focus the active terminal.`},shortcutNewTerminalSession:{label:`New terminal session`,scope:`Shortcut`,description:`Open the terminal tab and start a new shell session.`},shortcutTerminalNewTab:{label:`New terminal tab`,scope:`Shortcut`,description:`Open a new terminal session.`},shortcutTerminalClear:{label:`Clear terminal`,scope:`Shortcut`,description:`Clear the focused terminal buffer.`},shortcutOpenDiff:{label:`Diff panel`,scope:`Shortcut`,description:`Open or focus the right diff panel.`},shortcutOpenFolderTree:{label:`Folder panel`,scope:`Shortcut`,description:`Open or focus the right file tree panel.`},shortcutCloseFocusedTab:{label:`Close focused tab`,scope:`Shortcut`,description:`Close the focused browser, terminal, or panel tab.`},shortcutSwitchTab1:{label:`Overview tab`,scope:`Shortcut`,description:`Switch to the instance Overview tab.`},shortcutSwitchTab2:{label:`Preview tab`,scope:`Shortcut`,description:`Switch to the instance Preview tab.`},shortcutSwitchTab3:{label:`Logs tab`,scope:`Shortcut`,description:`Switch to the instance Logs tab.`},shortcutPreviousTab:{label:`Previous tab`,scope:`Shortcut`,description:`Switch to the previous instance detail tab.`},shortcutNextTab:{label:`Next tab`,scope:`Shortcut`,description:`Switch to the next instance detail tab.`},shortcutBrowserReload:{label:`Reload`,scope:`Shortcut`,description:`Reload the browser, preview, or app window depending on focus.`},shortcutBrowserHardReload:{label:`Hard reload`,scope:`Shortcut`,description:`Reload bypassing the cache.`},shortcutBrowserFocusUrl:{label:`Focus URL bar`,scope:`Shortcut`,description:`Focus the address field in the browser panel.`},shortcutBrowserBack:{label:`Browser back`,scope:`Shortcut`,description:`Navigate back in the browser panel.`},shortcutBrowserForward:{label:`Browser forward`,scope:`Shortcut`,description:`Navigate forward in the browser panel.`}},support:{ariaLabel:`Activity title source readiness`,ready:`Ready`,legacy:`Legacy endpoint`,offline:`Offline`,empty:`No instances are currently visible.`,restart:`Restart legacy instances to enable latest activity titles.`}},zh:{ariaLabel:`仪表盘设置`,eyebrow:`管理器偏好`,title:`仪表盘设置`,displayTitle:`实例列表显示`,displayDescription:`这些设置只影响左侧实例列表与已保存的管理器界面偏好。`,activityTitle:`预览与活动`,activityDescription:`最近活动标题取决于各实例服务器的 endpoint 版本。`,embeddingTitle:`嵌入搜索`,embeddingDescription:`向量嵌入 Provider 设置与内存索引管理。`,fields:{activity:{label:`最近活动预览`,scope:`左侧实例列表`,description:`当实例支持摘要 endpoint 时,显示最近一条 user 或 assistant 消息整理后的单行内容。`},rename:{label:`重命名控件`,scope:`左侧实例列表`,description:`显示用于编辑仪表盘内实例标签的铅笔按钮。`},runtime:{label:`运行时信息行`,scope:`左侧实例列表`,description:`在每个实例标签下方显示 CLI 与模型信息,例如 codex / gpt-5.5。`},actions:{label:`展开行操作`,scope:`已选中的实例行`,description:`在已选中的实例行上显示 Preview、Open、Start、Stop、Restart 按钮。`},language:{label:`语言`,scope:`整个 Jaw 界面`,description:`为支持 i18n 的管理器仪表盘界面设置已保存的语言。`},shortcuts:{label:`全局快捷键`,scope:`Manager dashboard`,description:`在输入框和编辑器外启用 Manager 导航快捷键。`},shortcutFocusInstances:{label:`实例列表`,scope:`快捷键`,description:`切换到 Instances 工作区。`},shortcutFocusActiveSession:{label:`活动会话`,scope:`快捷键`,description:`切换到已选实例的 Preview 标签。`},shortcutFocusNotes:{label:`Notes`,scope:`快捷键`,description:`切换到 Notes 工作区。`},shortcutPreviousInstance:{label:`上一个实例`,scope:`快捷键`,description:`选择当前筛选列表中的上一个实例。`},shortcutToggleInstanceSettings:{label:`实例设置`,scope:`快捷键`,description:`打开或关闭设置面板;在预览 iframe 内不可用。`},shortcutNextInstance:{label:`下一个实例`,scope:`快捷键`,description:`选择当前筛选列表中的下一个实例。`},shortcutResetSidebarWidth:{label:`重置侧边栏宽度`,scope:`快捷键`,description:`恢复默认 300px 宽度并删除 'jaw.sidebarWidth' 键。`},shortcutJumpInstance:{label:`跳转到实例`,scope:`快捷键`,description:`跳转到已渲染的侧边栏第 1–9 行。Meta+1–3 仍用于切换标签,因此这里使用 Alt。`},shortcutToggleBottomPanel:{label:`底部面板`,scope:`快捷键`,description:`打开或关闭底部面板(终端与活动)。`},shortcutToggleRightPanel:{label:`右侧栏`,scope:`快捷键`,description:`打开或关闭右侧面板;为空时创建文件面板。`},shortcutToggleLeftSidebar:{label:`左侧栏`,scope:`快捷键`,description:`折叠或展开左侧实例侧栏。`},shortcutFocusTerminal:{label:`显示终端`,scope:`快捷键`,description:`打开底部终端标签并聚焦活动终端。`},shortcutNewTerminalSession:{label:`新终端会话`,scope:`快捷键`,description:`打开终端标签并启动新的 Shell 会话。`},shortcutTerminalNewTab:{label:`新终端标签`,scope:`快捷键`,description:`打开新的终端会话。`},shortcutTerminalClear:{label:`清空终端`,scope:`快捷键`,description:`清空当前聚焦的终端缓冲区。`},shortcutOpenDiff:{label:`Diff 面板`,scope:`快捷键`,description:`打开或聚焦右侧 diff 面板。`},shortcutOpenFolderTree:{label:`文件夹面板`,scope:`快捷键`,description:`打开或聚焦右侧文件树面板。`},shortcutCloseFocusedTab:{label:`关闭焦点标签`,scope:`快捷键`,description:`关闭当前聚焦的浏览器、终端或面板标签。`},shortcutSwitchTab1:{label:`Overview 标签`,scope:`快捷键`,description:`切换到实例 Overview 标签。`},shortcutSwitchTab2:{label:`Preview 标签`,scope:`快捷键`,description:`切换到实例 Preview 标签。`},shortcutSwitchTab3:{label:`Logs 标签`,scope:`快捷键`,description:`切换到实例 Logs 标签。`},shortcutPreviousTab:{label:`上一个标签`,scope:`快捷键`,description:`切换到上一个实例详情标签。`},shortcutNextTab:{label:`下一个标签`,scope:`快捷键`,description:`切换到下一个实例详情标签。`},shortcutBrowserReload:{label:`重新加载`,scope:`快捷键`,description:`根据焦点位置重新加载浏览器、预览或应用窗口。`},shortcutBrowserHardReload:{label:`强制重新加载`,scope:`快捷键`,description:`忽略缓存重新加载。`},shortcutBrowserFocusUrl:{label:`聚焦 URL 栏`,scope:`快捷键`,description:`聚焦浏览器面板的地址栏。`},shortcutBrowserBack:{label:`浏览器后退`,scope:`快捷键`,description:`在浏览器面板中后退一页。`},shortcutBrowserForward:{label:`浏览器前进`,scope:`快捷键`,description:`在浏览器面板中前进一页。`}},support:{ariaLabel:`活动标题来源就绪状态`,ready:`就绪`,legacy:`旧版 endpoint`,offline:`离线`,empty:`当前没有可显示的实例。`,restart:`请重启旧版实例以启用最近活动标题。`}},ja:{ariaLabel:`ダッシュボード設定`,eyebrow:`マネージャー環境設定`,title:`ダッシュボード設定`,displayTitle:`インスタンス一覧の表示`,displayDescription:`これらの設定は左側のインスタンス一覧と保存済みのマネージャー UI 設定にのみ反映されます。`,activityTitle:`プレビューとアクティビティ`,activityDescription:`最近のアクティビティタイトルは各インスタンスサーバーの endpoint バージョンによって変わります。`,embeddingTitle:`エンベディング検索`,embeddingDescription:`ベクトルエンベディング Provider の設定とメモリインデックスの管理。`,fields:{activity:{label:`最近のアクティビティのプレビュー`,scope:`左側のインスタンス一覧`,description:`サマリ endpoint をサポートするインスタンスでは、直近の user または assistant メッセージを整形した 1 行を表示します。`},rename:{label:`名前変更コントロール`,scope:`左側のインスタンス一覧`,description:`ダッシュボード専用のインスタンス表示名を編集する鉛筆ボタンを表示します。`},runtime:{label:`ランタイム行`,scope:`左側のインスタンス一覧`,description:`各インスタンス名の下に codex / gpt-5.5 のような CLI とモデル情報を表示します。`},actions:{label:`展開行アクション`,scope:`選択中のインスタンス行`,description:`選択中のインスタンス行に Preview、Open、Start、Stop、Restart のボタンを表示します。`},language:{label:`言語`,scope:`Jaw UI 全体`,description:`i18n 対応のマネージャーダッシュボード画面で使用する言語を保存します。`},shortcuts:{label:`グローバルショートカット`,scope:`Manager dashboard`,description:`入力欄とエディタ外で Manager ナビゲーションショートカットを有効にします。`},shortcutFocusInstances:{label:`インスタンス一覧`,scope:`ショートカット`,description:`Instances ワークスペースへ移動します。`},shortcutFocusActiveSession:{label:`アクティブセッション`,scope:`ショートカット`,description:`選択中インスタンスの Preview タブへ移動します。`},shortcutFocusNotes:{label:`Notes`,scope:`ショートカット`,description:`Notes ワークスペースへ移動します。`},shortcutPreviousInstance:{label:`前のインスタンス`,scope:`ショートカット`,description:`現在のフィルタ一覧で前のインスタンスを選択します。`},shortcutToggleInstanceSettings:{label:`インスタンス設定`,scope:`ショートカット`,description:`設定パネルを開閉します。プレビュー iframe 内では使えません。`},shortcutNextInstance:{label:`次のインスタンス`,scope:`ショートカット`,description:`現在のフィルタ一覧で次のインスタンスを選択します。`},shortcutResetSidebarWidth:{label:`サイドバー幅をリセット`,scope:`ショートカット`,description:`既定の 300px に戻し、'jaw.sidebarWidth' キーを削除します。`},shortcutJumpInstance:{label:`インスタンスへジャンプ`,scope:`ショートカット`,description:`描画済みサイドバー行 1–9 へ移動します。Meta+1–3 はタブ切替のままなので Alt を使います。`},shortcutToggleBottomPanel:{label:`ボトムパネル`,scope:`ショートカット`,description:`ボトムパネル(ターミナル・アクティビティ)を開閉します。`},shortcutToggleRightPanel:{label:`右サイドバー`,scope:`ショートカット`,description:`右パネルを開閉し、空の場合はファイルパネルを作成します。`},shortcutToggleLeftSidebar:{label:`左サイドバー`,scope:`ショートカット`,description:`左のインスタンスサイドバーを折りたたみ/展開します。`},shortcutFocusTerminal:{label:`ターミナルを表示`,scope:`ショートカット`,description:`ボトムのターミナルタブを開き、アクティブなターミナルにフォーカスします。`},shortcutNewTerminalSession:{label:`新しいターミナルセッション`,scope:`ショートカット`,description:`ターミナルタブを開き、新しいシェルセッションを開始します。`},shortcutTerminalNewTab:{label:`新しいターミナルタブ`,scope:`ショートカット`,description:`新しいターミナルセッションを開きます。`},shortcutTerminalClear:{label:`ターミナルをクリア`,scope:`ショートカット`,description:`フォーカス中のターミナルバッファをクリアします。`},shortcutOpenDiff:{label:`Diff パネル`,scope:`ショートカット`,description:`右の diff パネルを開くかフォーカスします。`},shortcutOpenFolderTree:{label:`フォルダーパネル`,scope:`ショートカット`,description:`右のファイルツリーパネルを開くかフォーカスします。`},shortcutCloseFocusedTab:{label:`フォーカス中のタブを閉じる`,scope:`ショートカット`,description:`フォーカスされているブラウザ、ターミナル、パネルのタブを閉じます。`},shortcutSwitchTab1:{label:`Overview タブ`,scope:`ショートカット`,description:`インスタンスの Overview タブに切り替えます。`},shortcutSwitchTab2:{label:`Preview タブ`,scope:`ショートカット`,description:`インスタンスの Preview タブに切り替えます。`},shortcutSwitchTab3:{label:`Logs タブ`,scope:`ショートカット`,description:`インスタンスの Logs タブに切り替えます。`},shortcutPreviousTab:{label:`前のタブ`,scope:`ショートカット`,description:`前のインスタンス詳細タブに切り替えます。`},shortcutNextTab:{label:`次のタブ`,scope:`ショートカット`,description:`次のインスタンス詳細タブに切り替えます。`},shortcutBrowserReload:{label:`再読み込み`,scope:`ショートカット`,description:`フォーカス位置に応じてブラウザ、プレビュー、アプリウィンドウを再読み込みします。`},shortcutBrowserHardReload:{label:`強制再読み込み`,scope:`ショートカット`,description:`キャッシュを無視して再読み込みします。`},shortcutBrowserFocusUrl:{label:`URL バーにフォーカス`,scope:`ショートカット`,description:`ブラウザパネルのアドレスバーにフォーカスします。`},shortcutBrowserBack:{label:`ブラウザの戻る`,scope:`ショートカット`,description:`ブラウザパネルで前のページに戻ります。`},shortcutBrowserForward:{label:`ブラウザの進む`,scope:`ショートカット`,description:`ブラウザパネルで次のページに進みます。`}},support:{ariaLabel:`アクティビティタイトル取得元の準備状態`,ready:`準備完了`,legacy:`旧 endpoint`,offline:`オフライン`,empty:`現在表示できるインスタンスはありません。`,restart:`最新のアクティビティタイトルを使うには、旧バージョンのインスタンスを再起動してください。`}}};function a(e){return(0,t.jsxs)(`div`,{className:`dashboard-settings-row`,children:[(0,t.jsxs)(`div`,{className:`dashboard-settings-row-main`,children:[(0,t.jsxs)(`label`,{className:`dashboard-settings-row-heading`,htmlFor:e.id,children:[(0,t.jsx)(`span`,{children:e.label}),(0,t.jsx)(`span`,{className:`dashboard-settings-row-scope`,children:e.scope})]}),(0,t.jsx)(`p`,{className:`dashboard-settings-row-description`,children:e.description})]}),(0,t.jsx)(`div`,{className:`dashboard-settings-row-control`,children:e.children})]})}function o(e){return(0,t.jsx)(a,{id:e.id,label:e.label,scope:e.scope,description:e.description,children:(0,t.jsx)(`input`,{id:e.id,className:`dashboard-settings-toggle`,type:`checkbox`,checked:e.value,onChange:t=>e.onChange(t.currentTarget.checked)})})}function s(e){return(0,t.jsx)(a,{id:e.id,label:e.label,scope:e.scope,description:e.description,children:(0,t.jsx)(`select`,{id:e.id,className:`dashboard-settings-select`,value:e.value,onChange:t=>e.onChange(r(t.currentTarget.value)),children:e.options.map(e=>(0,t.jsx)(`option`,{value:e.value,children:e.label},e.value))})})}function c(e){return(0,t.jsx)(a,{id:`dashboard-shortcut-${e.action}`,label:e.label,scope:e.scope,description:e.description,children:(0,t.jsx)(`input`,{id:`dashboard-shortcut-${e.action}`,className:`dashboard-settings-shortcut-input`,type:`text`,value:e.value,"aria-label":`${e.label} shortcut`,placeholder:`Alt+I`,onChange:t=>e.onChange(e.action,t.currentTarget.value)})})}var l={toggleInstanceSettings:`shortcutToggleInstanceSettings`,focusInstances:`shortcutFocusInstances`,focusActiveSession:`shortcutFocusActiveSession`,focusNotes:`shortcutFocusNotes`,previousInstance:`shortcutPreviousInstance`,nextInstance:`shortcutNextInstance`,toggleBottomPanel:`shortcutToggleBottomPanel`,toggleRightPanel:`shortcutToggleRightPanel`,toggleLeftSidebar:`shortcutToggleLeftSidebar`,focusTerminal:`shortcutFocusTerminal`,newTerminalSession:`shortcutNewTerminalSession`,terminalNewTab:`shortcutTerminalNewTab`,terminalClear:`shortcutTerminalClear`,openDiff:`shortcutOpenDiff`,openFolderTree:`shortcutOpenFolderTree`,closeFocusedTab:`shortcutCloseFocusedTab`,switchTab1:`shortcutSwitchTab1`,switchTab2:`shortcutSwitchTab2`,switchTab3:`shortcutSwitchTab3`,previousTab:`shortcutPreviousTab`,nextTab:`shortcutNextTab`,browserReload:`shortcutBrowserReload`,browserHardReload:`shortcutBrowserHardReload`,browserFocusUrl:`shortcutBrowserFocusUrl`,browserBack:`shortcutBrowserBack`,browserForward:`shortcutBrowserForward`,resetSidebarWidth:`shortcutResetSidebarWidth`,jumpInstance1:`shortcutJumpInstance`,jumpInstance2:`shortcutJumpInstance`,jumpInstance3:`shortcutJumpInstance`,jumpInstance4:`shortcutJumpInstance`,jumpInstance5:`shortcutJumpInstance`,jumpInstance6:`shortcutJumpInstance`,jumpInstance7:`shortcutJumpInstance`,jumpInstance8:`shortcutJumpInstance`,jumpInstance9:`shortcutJumpInstance`};function u(e){return l[e]}function d({support:e,locale:n}){let r=e.ready+e.legacy+e.offline,a=i[n].support;return(0,t.jsxs)(`div`,{className:`dashboard-settings-status-grid`,"aria-label":a.ariaLabel,children:[(0,t.jsxs)(`div`,{children:[(0,t.jsx)(`span`,{children:a.ready}),(0,t.jsx)(`strong`,{children:e.ready})]}),(0,t.jsxs)(`div`,{children:[(0,t.jsx)(`span`,{children:a.legacy}),(0,t.jsx)(`strong`,{children:e.legacy})]}),(0,t.jsxs)(`div`,{children:[(0,t.jsx)(`span`,{children:a.offline}),(0,t.jsx)(`strong`,{children:e.offline})]}),(0,t.jsx)(`p`,{children:r===0?a.empty:a.restart})]})}export{n as a,u as c,c as i,s as n,d as o,o as r,r as s,i as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./skills-CKUcEN9m.js";export{e as loadSkills};
@@ -1 +0,0 @@
1
- import{a as e}from"./slash-commands-D34GgHFX.js";export{e as loadCommands};
@@ -1 +0,0 @@
1
- import{p as e}from"./iframe-renderer-Bj1JolO8.js";import{I as t,s as n}from"./message-history-D2vniu04.js";import{r}from"./ui-vm2iuLcS.js";export{r as cleanupToolActivity,n as loadMessages,e as reconcileChatBottomAfterRestore,t as updateQueueBadge};
@@ -1,25 +0,0 @@
1
- // Phase 4 — visual wrapper for an STT engine's sub-section.
2
- //
3
- // Used by SpeechKeys to group an engine's fields under a labelled card.
4
- // Pure presentational; no state. Engine selector visibility is decided by
5
- // the parent based on the current engine value.
6
-
7
- import type { ReactNode } from 'react';
8
-
9
- type Props = {
10
- title: string;
11
- hint?: string;
12
- children: ReactNode;
13
- };
14
-
15
- export function EngineSubsection({ title, hint, children }: Props) {
16
- return (
17
- <fieldset className="settings-engine-subsection">
18
- <legend className="settings-engine-subsection-legend">{title}</legend>
19
- {hint ? (
20
- <p className="settings-engine-subsection-hint">{hint}</p>
21
- ) : null}
22
- <div className="settings-engine-subsection-body">{children}</div>
23
- </fieldset>
24
- );
25
- }