cli-jaw 2.17.43 → 2.17.44

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 (223) hide show
  1. package/README.md +13 -2
  2. package/dist/bin/commands/slack.js +73 -7
  3. package/dist/bin/commands/slack.js.map +1 -1
  4. package/dist/server.js +46 -1
  5. package/dist/server.js.map +1 -1
  6. package/dist/src/agent/calendar-context.js +23 -0
  7. package/dist/src/agent/calendar-context.js.map +1 -0
  8. package/dist/src/agent/claude-runtime-run.js +10 -1
  9. package/dist/src/agent/claude-runtime-run.js.map +1 -1
  10. package/dist/src/agent/cursor-acp-models.js +139 -0
  11. package/dist/src/agent/cursor-acp-models.js.map +1 -0
  12. package/dist/src/agent/events/cursor.js +28 -4
  13. package/dist/src/agent/events/cursor.js.map +1 -1
  14. package/dist/src/agent/lifecycle-handler.js +8 -2
  15. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  16. package/dist/src/agent/native-runtime-run.js +22 -1
  17. package/dist/src/agent/native-runtime-run.js.map +1 -1
  18. package/dist/src/agent/runtime/acp/config.js +76 -11
  19. package/dist/src/agent/runtime/acp/config.js.map +1 -1
  20. package/dist/src/agent/runtime/acp/cursor-session.js +6 -1
  21. package/dist/src/agent/runtime/acp/cursor-session.js.map +1 -1
  22. package/dist/src/agent/runtime/liveness.js +24 -0
  23. package/dist/src/agent/runtime/liveness.js.map +1 -0
  24. package/dist/src/agent/runtime/start-failure.js +61 -0
  25. package/dist/src/agent/runtime/start-failure.js.map +1 -0
  26. package/dist/src/agent/spawn/queue.js +11 -6
  27. package/dist/src/agent/spawn/queue.js.map +1 -1
  28. package/dist/src/agent/spawn.js +59 -17
  29. package/dist/src/agent/spawn.js.map +1 -1
  30. package/dist/src/cli/api-auth.js +6 -0
  31. package/dist/src/cli/api-auth.js.map +1 -1
  32. package/dist/src/manager/design/watcher.js +10 -2
  33. package/dist/src/manager/design/watcher.js.map +1 -1
  34. package/dist/src/memory/heartbeat.js +6 -0
  35. package/dist/src/memory/heartbeat.js.map +1 -1
  36. package/dist/src/messaging/channel-validate.js +5 -3
  37. package/dist/src/messaging/channel-validate.js.map +1 -1
  38. package/dist/src/messaging/redact.js +30 -8
  39. package/dist/src/messaging/redact.js.map +1 -1
  40. package/dist/src/messaging/send.js +7 -0
  41. package/dist/src/messaging/send.js.map +1 -1
  42. package/dist/src/orchestrator/collect.js +5 -3
  43. package/dist/src/orchestrator/collect.js.map +1 -1
  44. package/dist/src/orchestrator/gateway.js +10 -3
  45. package/dist/src/orchestrator/gateway.js.map +1 -1
  46. package/dist/src/orchestrator/pipeline.js +21 -9
  47. package/dist/src/orchestrator/pipeline.js.map +1 -1
  48. package/dist/src/orchestrator/request-registry.js +2 -0
  49. package/dist/src/orchestrator/request-registry.js.map +1 -1
  50. package/dist/src/prompt/builder.js +74 -6
  51. package/dist/src/prompt/builder.js.map +1 -1
  52. package/dist/src/prompt/templates/a1-system.md +22 -5
  53. package/dist/src/routes/messaging.js +105 -27
  54. package/dist/src/routes/messaging.js.map +1 -1
  55. package/dist/src/routes/settings.js +20 -8
  56. package/dist/src/routes/settings.js.map +1 -1
  57. package/dist/src/routes/slack-tools.js +176 -0
  58. package/dist/src/routes/slack-tools.js.map +1 -0
  59. package/dist/src/slack/action-rate.js +43 -0
  60. package/dist/src/slack/action-rate.js.map +1 -0
  61. package/dist/src/slack/action-runtime.js +243 -0
  62. package/dist/src/slack/action-runtime.js.map +1 -0
  63. package/dist/src/slack/action-store.js +84 -0
  64. package/dist/src/slack/action-store.js.map +1 -0
  65. package/dist/src/slack/action-types.js +6 -0
  66. package/dist/src/slack/action-types.js.map +1 -0
  67. package/dist/src/slack/actions-canvas.js +108 -0
  68. package/dist/src/slack/actions-canvas.js.map +1 -0
  69. package/dist/src/slack/actions-channel.js +88 -0
  70. package/dist/src/slack/actions-channel.js.map +1 -0
  71. package/dist/src/slack/actions-interactions.js +204 -0
  72. package/dist/src/slack/actions-interactions.js.map +1 -0
  73. package/dist/src/slack/actions-lists.js +308 -0
  74. package/dist/src/slack/actions-lists.js.map +1 -0
  75. package/dist/src/slack/actions-message.js +117 -0
  76. package/dist/src/slack/actions-message.js.map +1 -0
  77. package/dist/src/slack/actions-resources.js +62 -0
  78. package/dist/src/slack/actions-resources.js.map +1 -0
  79. package/dist/src/slack/actions-rts.js +88 -0
  80. package/dist/src/slack/actions-rts.js.map +1 -0
  81. package/dist/src/slack/actions-schedule.js +214 -0
  82. package/dist/src/slack/actions-schedule.js.map +1 -0
  83. package/dist/src/slack/actions.js +17 -0
  84. package/dist/src/slack/actions.js.map +1 -0
  85. package/dist/src/slack/api.js +56 -9
  86. package/dist/src/slack/api.js.map +1 -1
  87. package/dist/src/slack/blocks.js +162 -0
  88. package/dist/src/slack/blocks.js.map +1 -0
  89. package/dist/src/slack/bot.js +562 -378
  90. package/dist/src/slack/bot.js.map +1 -1
  91. package/dist/src/slack/commands.js +24 -5
  92. package/dist/src/slack/commands.js.map +1 -1
  93. package/dist/src/slack/context.js +15 -4
  94. package/dist/src/slack/context.js.map +1 -1
  95. package/dist/src/slack/conversation.js +135 -33
  96. package/dist/src/slack/conversation.js.map +1 -1
  97. package/dist/src/slack/events.js +41 -17
  98. package/dist/src/slack/events.js.map +1 -1
  99. package/dist/src/slack/format.js +181 -0
  100. package/dist/src/slack/format.js.map +1 -1
  101. package/dist/src/slack/history.js +133 -8
  102. package/dist/src/slack/history.js.map +1 -1
  103. package/dist/src/slack/ingress.js +26 -9
  104. package/dist/src/slack/ingress.js.map +1 -1
  105. package/dist/src/slack/interaction-store.js +56 -0
  106. package/dist/src/slack/interaction-store.js.map +1 -0
  107. package/dist/src/slack/manifest.js +3 -0
  108. package/dist/src/slack/manifest.js.map +1 -1
  109. package/dist/src/slack/message-content.js +132 -0
  110. package/dist/src/slack/message-content.js.map +1 -0
  111. package/dist/src/slack/message.js +58 -0
  112. package/dist/src/slack/message.js.map +1 -0
  113. package/dist/src/slack/notice-transport.js +49 -19
  114. package/dist/src/slack/notice-transport.js.map +1 -1
  115. package/dist/src/slack/operator-auth.js +62 -0
  116. package/dist/src/slack/operator-auth.js.map +1 -0
  117. package/dist/src/slack/progress-activity.js +210 -0
  118. package/dist/src/slack/progress-activity.js.map +1 -0
  119. package/dist/src/slack/progress-detail.js +473 -0
  120. package/dist/src/slack/progress-detail.js.map +1 -0
  121. package/dist/src/slack/progress-files.js +70 -0
  122. package/dist/src/slack/progress-files.js.map +1 -0
  123. package/dist/src/slack/progress-lifecycle.js +223 -0
  124. package/dist/src/slack/progress-lifecycle.js.map +1 -0
  125. package/dist/src/slack/progress-restore.js +81 -0
  126. package/dist/src/slack/progress-restore.js.map +1 -0
  127. package/dist/src/slack/progress.js +325 -143
  128. package/dist/src/slack/progress.js.map +1 -1
  129. package/dist/src/slack/quote.js +227 -0
  130. package/dist/src/slack/quote.js.map +1 -0
  131. package/dist/src/slack/render-features.js +105 -0
  132. package/dist/src/slack/render-features.js.map +1 -0
  133. package/dist/src/slack/reply-delivery.js +110 -0
  134. package/dist/src/slack/reply-delivery.js.map +1 -0
  135. package/dist/src/slack/rts-output-store.js +143 -0
  136. package/dist/src/slack/rts-output-store.js.map +1 -0
  137. package/dist/src/slack/scope-status.js +17 -3
  138. package/dist/src/slack/scope-status.js.map +1 -1
  139. package/dist/src/slack/search-quote.js +70 -0
  140. package/dist/src/slack/search-quote.js.map +1 -0
  141. package/dist/src/slack/search.js +54 -0
  142. package/dist/src/slack/search.js.map +1 -0
  143. package/dist/src/slack/send-handler.js +11 -7
  144. package/dist/src/slack/send-handler.js.map +1 -1
  145. package/dist/src/slack/send-only-client.js +116 -79
  146. package/dist/src/slack/send-only-client.js.map +1 -1
  147. package/dist/src/slack/table-content.js +253 -0
  148. package/dist/src/slack/table-content.js.map +1 -0
  149. package/dist/src/slack/table-verification.js +64 -0
  150. package/dist/src/slack/table-verification.js.map +1 -0
  151. package/dist/src/slack/task-input.js +55 -0
  152. package/dist/src/slack/task-input.js.map +1 -0
  153. package/dist/src/slack/tool-access.js +127 -0
  154. package/dist/src/slack/tool-access.js.map +1 -0
  155. package/dist/src/slack/tool-capabilities.js +47 -0
  156. package/dist/src/slack/tool-capabilities.js.map +1 -0
  157. package/dist/src/slack/tool-context.js +91 -0
  158. package/dist/src/slack/tool-context.js.map +1 -0
  159. package/dist/src/slack/verified-workspace.js +17 -6
  160. package/dist/src/slack/verified-workspace.js.map +1 -1
  161. package/dist/src/trace/redact.js +2 -1
  162. package/dist/src/trace/redact.js.map +1 -1
  163. package/package.json +1 -1
  164. package/public/dist/.vite/manifest.json +102 -102
  165. package/public/dist/assets/{Agent-CQ4EBgY8.js → Agent-CNad_A6t.js} +1 -1
  166. package/public/dist/assets/{ChannelEnablementControl-JsYvNMlM.js → ChannelEnablementControl-DwUDKjX9.js} +4 -4
  167. package/public/dist/assets/{ChannelSetupEntry-BpyRWEUE.js → ChannelSetupEntry-DH0AuNNX.js} +1 -1
  168. package/public/dist/assets/{ChannelsDiscord-DNfvz1jn.js → ChannelsDiscord-7NmoTjR7.js} +1 -1
  169. package/public/dist/assets/{ChannelsSlack-DzpxIdgW.js → ChannelsSlack-Ba0ax6iT.js} +1 -1
  170. package/public/dist/assets/{ChannelsTelegram-CUhFc5s6.js → ChannelsTelegram-DKA9atf2.js} +1 -1
  171. package/public/dist/assets/{app-Q0prKOFx.js → app-9OQNfmqw.js} +4 -4
  172. package/public/dist/assets/{bgtask-badge-DAcWaUfS.js → bgtask-badge-BvxHqMGi.js} +1 -1
  173. package/public/dist/assets/bgtask-badge-DeSZJGNN.js +1 -0
  174. package/public/dist/assets/{employees-CWS3Juca.js → employees-CkUqN4oh.js} +1 -1
  175. package/public/dist/assets/{iframe-renderer-DCDKBMb7.js → iframe-renderer-C2gchtOj.js} +2 -2
  176. package/public/dist/assets/iframe-renderer-DfvACXIn.js +1 -0
  177. package/public/dist/assets/{manager-v6GYfoPB.js → manager-rb5X-4DJ.js} +1 -1
  178. package/public/dist/assets/{memory-DhNdKZLO.js → memory-BiWzpoBq.js} +1 -1
  179. package/public/dist/assets/memory-Ckp1Eq5a.js +1 -0
  180. package/public/dist/assets/message-history-Bv0l_t7O.js +1 -0
  181. package/public/dist/assets/{message-history-DbRTl1P0.js → message-history-CuFefS02.js} +1 -1
  182. package/public/dist/assets/{render-DP8SJtdZ.js → render-DUGqq9Mu.js} +1 -1
  183. package/public/dist/assets/{settings-85n9NjvX.js → settings-BqUHavbH.js} +1 -1
  184. package/public/dist/assets/settings-C81Kf9uX.js +1 -0
  185. package/public/dist/assets/{settings-C9_D-pn0.js → settings-DQ1fLygB.js} +31 -30
  186. package/public/dist/assets/{settings-core-BcVD2FgV.js → settings-core-CzdXfoOK.js} +1 -1
  187. package/public/dist/assets/settings-core-DO_5M7Lv.js +1 -0
  188. package/public/dist/assets/{settings-embedding-BSpq785l.js → settings-embedding-BAKFrVLV.js} +1 -1
  189. package/public/dist/assets/{settings-types-B09BmpYe.js → settings-types-D3cd6SWy.js} +1 -1
  190. package/public/dist/assets/{sidebar-BVhLb5Ft.js → sidebar-CvGbp9x5.js} +3 -3
  191. package/public/dist/assets/skills-DFpPmMUR.js +1 -0
  192. package/public/dist/assets/{skills-X7qxmHka.js → skills-abLMqY5_.js} +1 -1
  193. package/public/dist/assets/slash-commands-BU58xYih.js +1 -0
  194. package/public/dist/assets/{slash-commands-BnDH4IU_.js → slash-commands-D8o9pqOS.js} +1 -1
  195. package/public/dist/assets/{trace-drawer-DasaS1z4.js → trace-drawer-C6RvkUAd.js} +1 -1
  196. package/public/dist/assets/{ui-BtiBTXng.js → ui-Bxapl_Eu.js} +1 -1
  197. package/public/dist/assets/ui-CUB4iwz3.js +1 -0
  198. package/public/dist/index.html +1 -1
  199. package/public/dist/manager/index.html +1 -1
  200. package/public/dist/settings/index.html +1 -1
  201. package/public/js/features/settings-cli-status.ts +11 -1
  202. package/public/js/features/settings-types.ts +21 -0
  203. package/public/locales/en.json +34 -1
  204. package/public/locales/ja.json +34 -1
  205. package/public/locales/ko.json +34 -1
  206. package/public/locales/zh.json +34 -1
  207. package/scripts/check-native-load.cjs +17 -4
  208. package/scripts/release-gates.mjs +84 -3
  209. package/scripts/service-artifact.mjs +157 -0
  210. package/scripts/service-shell/zsh/.zlogin +23 -0
  211. package/scripts/service-shell/zsh/.zlogout +23 -0
  212. package/scripts/service-shell/zsh/.zprofile +23 -0
  213. package/scripts/service-shell/zsh/.zshenv +23 -0
  214. package/scripts/service-shell/zsh/.zshrc +23 -0
  215. package/public/dist/assets/bgtask-badge-DHA2OQm8.js +0 -1
  216. package/public/dist/assets/iframe-renderer-RpvBly2x.js +0 -1
  217. package/public/dist/assets/memory-4YH8sz0L.js +0 -1
  218. package/public/dist/assets/message-history-lVcLpAw8.js +0 -1
  219. package/public/dist/assets/settings--EGy3_B9.js +0 -1
  220. package/public/dist/assets/settings-core-8wBl1mg-.js +0 -1
  221. package/public/dist/assets/skills-6GFkHTlQ.js +0 -1
  222. package/public/dist/assets/slash-commands-qu8fPAZ3.js +0 -1
  223. package/public/dist/assets/ui-BucJ1zMA.js +0 -1
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-render-DSSkXCir.css"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-.js";import{n as r,t as i}from"./bounded-api-DdpT93LB.js";import{t as a}from"./preload-helper-CfbQpVni.js";import{O as o,P as s,f as c,g as l,j as u,n as d}from"./render-DP8SJtdZ.js";import{t as f}from"./icons-CVkqyECl.js";import{t as p}from"./copy-text-DjgetgoZ.js";import{_ as m,g as h,p as g}from"./iframe-renderer-DCDKBMb7.js";import{A as _,C as v,D as y,E as b,F as x,H as S,I as C,M as w,N as T,O as ee,S as E,T as te,U as D,_ as ne,b as re,d as O,f as ie,g as k,h as A,j as ae,k as oe,m as se,p as ce,u as j,v as le,w as M,x as N,y as ue}from"./message-history-DbRTl1P0.js";import{n as P}from"./presentation-DWHWElFr.js";import{a as de,d as fe,f as F,i as pe,l as me,n as he,r as ge,s as _e,t as ve,u as ye}from"./ui-BtiBTXng.js";var I=null,be=0,xe=[],Se=2e3,Ce=3e4,we=1.5,Te=null,Ee=4e4,De=1e4,Oe=0,ke=!1,Ae=null,je=null;function Me(e){je=e}function Ne(){let e=null;try{e=je?.()??null}catch{e=null}return e?`&scope=${encodeURIComponent(e)}`:``}function Pe(){Ae||=setInterval(()=>{I&&Ie&&ke&&(Date.now()-Oe<=Ee||(console.warn(`[sse] stalled channel (no ping in`,Ee,`ms) — forcing reconnect`),I.close(),I=null,Ie=!1,He?.(),Xe(Fe)))},De)}var Fe=``,Ie=!1,Le=!1,Re=!1,ze=!1,Be=!1,Ve=null,He=null,Ue=null;function We(e){Ve=e}function Ge(e){He=e}function Ke(e){Ue=e}function qe(e,t,n){let r={topic:e,event:t,handler:n};return xe.push(r),()=>{let e=xe.indexOf(r);e>=0&&xe.splice(e,1)}}function Je(e,t,n){for(let r of xe)if((r.topic===`*`||r.topic===e)&&(r.event===null||r.event===t))try{r.handler(n)}catch(e){console.warn(`[sse] handler error:`,e.message)}}function Ye(){Le||Te||(Te=setTimeout(()=>{Te=null,Xe(Fe)},Se),Se=Math.min(Se*we,Ce))}function Xe(e){Fe=e,Le=!1,Te&&=(clearTimeout(Te),null),I&&I.close();let t=`${n}/api/events?lang=${encodeURIComponent(e)}`+Ne()+(be?`&lastEventId=${be}`:``);ze=!1,Be=!1,I=new EventSource(t),Pe(),I.onopen=()=>{Se=2e3,Ie=!0,Re=!0,ze=!0,Oe=Date.now(),Ve?.()},I.onerror=()=>{if(I?.close(),I=null,!ze&&!Re&&Ue){Be||(Be=!0,Ue());return}Ie&&(Ie=!1,He?.()),Ye()},I.onmessage=e=>{be=parseInt(e.lastEventId||`0`,10)||be;let t;try{t=JSON.parse(e.data)}catch{console.warn(`[sse] malformed message:`,e.data);return}if(!t||typeof t!=`object`||typeof t.topic!=`string`||typeof t.event!=`string`){console.warn(`[sse] invalid message shape:`,t);return}if(Oe=Date.now(),t.topic===`system`&&t.event===`ping`){ke=!0;return}Je(t.topic,t.event,t)}}var Ze=3e3,L=new Map,R=[],Qe=(e,t)=>`${e}:${t}`;function $e(e=[]){let t=document.getElementById(`pendingQueue`);if(t){if(R=e.slice(),!e.length){at(new Set),t.classList.remove(`visible`),t.innerHTML=``;return}t.classList.add(`visible`),t.innerHTML=`
2
+ import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-.js";import{n as r,t as i}from"./bounded-api-DdpT93LB.js";import{t as a}from"./preload-helper-CfbQpVni.js";import{O as o,P as s,f as c,g as l,j as u,n as d}from"./render-DUGqq9Mu.js";import{t as f}from"./icons-CVkqyECl.js";import{t as p}from"./copy-text-DjgetgoZ.js";import{_ as m,g as h,p as g}from"./iframe-renderer-C2gchtOj.js";import{A as _,C as v,D as y,E as b,F as x,H as S,I as C,M as w,N as T,O as ee,S as E,T as te,U as D,_ as ne,b as re,d as O,f as ie,g as k,h as A,j as ae,k as oe,m as se,p as ce,u as j,v as le,w as M,x as N,y as ue}from"./message-history-CuFefS02.js";import{n as P}from"./presentation-DWHWElFr.js";import{a as de,d as fe,f as F,i as pe,l as me,n as he,r as ge,s as _e,t as ve,u as ye}from"./ui-Bxapl_Eu.js";var I=null,be=0,xe=[],Se=2e3,Ce=3e4,we=1.5,Te=null,Ee=4e4,De=1e4,Oe=0,ke=!1,Ae=null,je=null;function Me(e){je=e}function Ne(){let e=null;try{e=je?.()??null}catch{e=null}return e?`&scope=${encodeURIComponent(e)}`:``}function Pe(){Ae||=setInterval(()=>{I&&Ie&&ke&&(Date.now()-Oe<=Ee||(console.warn(`[sse] stalled channel (no ping in`,Ee,`ms) — forcing reconnect`),I.close(),I=null,Ie=!1,He?.(),Xe(Fe)))},De)}var Fe=``,Ie=!1,Le=!1,Re=!1,ze=!1,Be=!1,Ve=null,He=null,Ue=null;function We(e){Ve=e}function Ge(e){He=e}function Ke(e){Ue=e}function qe(e,t,n){let r={topic:e,event:t,handler:n};return xe.push(r),()=>{let e=xe.indexOf(r);e>=0&&xe.splice(e,1)}}function Je(e,t,n){for(let r of xe)if((r.topic===`*`||r.topic===e)&&(r.event===null||r.event===t))try{r.handler(n)}catch(e){console.warn(`[sse] handler error:`,e.message)}}function Ye(){Le||Te||(Te=setTimeout(()=>{Te=null,Xe(Fe)},Se),Se=Math.min(Se*we,Ce))}function Xe(e){Fe=e,Le=!1,Te&&=(clearTimeout(Te),null),I&&I.close();let t=`${n}/api/events?lang=${encodeURIComponent(e)}`+Ne()+(be?`&lastEventId=${be}`:``);ze=!1,Be=!1,I=new EventSource(t),Pe(),I.onopen=()=>{Se=2e3,Ie=!0,Re=!0,ze=!0,Oe=Date.now(),Ve?.()},I.onerror=()=>{if(I?.close(),I=null,!ze&&!Re&&Ue){Be||(Be=!0,Ue());return}Ie&&(Ie=!1,He?.()),Ye()},I.onmessage=e=>{be=parseInt(e.lastEventId||`0`,10)||be;let t;try{t=JSON.parse(e.data)}catch{console.warn(`[sse] malformed message:`,e.data);return}if(!t||typeof t!=`object`||typeof t.topic!=`string`||typeof t.event!=`string`){console.warn(`[sse] invalid message shape:`,t);return}if(Oe=Date.now(),t.topic===`system`&&t.event===`ping`){ke=!0;return}Je(t.topic,t.event,t)}}var Ze=3e3,L=new Map,R=[],Qe=(e,t)=>`${e}:${t}`;function $e(e=[]){let t=document.getElementById(`pendingQueue`);if(t){if(R=e.slice(),!e.length){at(new Set),t.classList.remove(`visible`),t.innerHTML=``;return}t.classList.add(`visible`),t.innerHTML=`
3
3
  <div class="pending-queue-header">
4
4
  <span class="pending-queue-title">${f.hourglass} <span data-i18n="queue.pendingTitle">${o(s(`queue.pendingTitle`))}</span> <span class="pending-queue-count">${e.length}</span></span>
5
5
  </div>
@@ -12,7 +12,7 @@ import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-
12
12
  <button class="pending-row-btn pending-row-copy" data-pending-action="copy" title="${i}" aria-label="${i}"><span class="pending-btn-content">${f.copy}</span></button>
13
13
  <button class="pending-row-btn pending-row-steer" data-pending-action="steer" data-i18n-title="queue.steer" title="${a}" aria-label="${a}"><span class="pending-arm-fill" aria-hidden="true"></span><span class="pending-btn-content"><span class="pending-steer-arrow" aria-hidden="true">↳</span><span class="pending-steer-label">${a}</span></span></button>
14
14
  <button class="pending-row-btn pending-row-delete" data-pending-action="delete" data-i18n-title="queue.delete" title="${c}" aria-label="${c}"><span class="pending-arm-fill" aria-hidden="true"></span><span class="pending-btn-content">${f.trash}</span></button>
15
- </div>`}function tt(e,t){let n=document.querySelector(`.pending-row[data-pending-id="${CSS.escape(e)}"]`);return n?n.querySelector(`[data-pending-action="${t}"]`):null}function nt(e,t){let n=tt(e,t);if(!n)return;n.classList.add(`armed`),n.setAttribute(`title`,s(`queue.cancelArm`));let r=n.querySelector(`.pending-arm-fill`);r&&(r.style.animation=`none`,r.offsetWidth,r.style.animation=``)}function rt(e,t){let n=tt(e,t);n&&(n.classList.remove(`armed`),n.setAttribute(`title`,s(t===`steer`?`queue.steer`:`queue.delete`)))}function it(){for(let e of L.values()){let t=tt(e.id,e.action);t&&(t.classList.add(`armed`),t.setAttribute(`title`,s(`queue.cancelArm`)))}}function at(e){for(let[t,n]of L)e.has(n.id)||(clearTimeout(n.timerId),L.delete(t))}function ot(e,n){let r=Qe(e,n),i=setTimeout(()=>ct(e,n),Ze);L.set(r,{id:e,action:n,timerId:i}),nt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`POST`,{}).catch(()=>{})}function st(e,n){let r=Qe(e,n),i=L.get(r);i&&(clearTimeout(i.timerId),L.delete(r),rt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`DELETE`,{}).catch(()=>{}))}async function ct(e,n){L.delete(Qe(e,n));let r=n===`steer`?`/api/orchestrate/queue/${encodeURIComponent(e)}/steer`:`/api/orchestrate/queue/${encodeURIComponent(e)}`,i=n===`steer`?`POST`:`DELETE`;if(n===`steer`&&x(`running`),await t(r,i,{})==null){R=R.filter(t=>t.id!==e),$e(R),n===`steer`&&Z(`steer-fire-miss`).catch(()=>{});return}R=R.filter(t=>t.id!==e),$e(R)}function lt(e,t){if(L.has(Qe(e,t))){st(e,t);return}ot(e,t)}function ut(){let e=document.getElementById(`pendingQueue`);e&&e.addEventListener(`click`,async e=>{let t=e.target?.closest(`[data-pending-action]`);if(!t)return;let n=t.closest(`.pending-row`)?.dataset.pendingId;if(!n)return;let r=t.dataset.pendingAction;if(r===`copy`){let e=R.find(e=>e.id===n);if(e?.prompt&&(await p(e.prompt)).ok){let e=t.querySelector(`.pending-btn-content`);e&&(e.innerHTML=f.checkSimple,setTimeout(()=>{e.innerHTML=f.copy},600))}return}lt(n,r===`steer`?`steer`:`delete`)})}var dt=800,ft=64,pt=`CLI-JAW`,mt=!1,z=0,ht=pt,B=null,gt=``,_t=!1,vt=0;function yt(){return navigator}function bt(){return document.visibilityState!==`visible`||!document.hasFocus()}function xt(e){return e-vt<dt}function St(){if(B)return B;let e=document.querySelector(`link[rel~="icon"]`);if(e)return B=e,gt=e.href||e.getAttribute(`href`)||``,e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.appendChild(t),B=t,_t=!0,t}function Ct(e){let t=document.createElement(`canvas`);t.width=ft,t.height=ft;let n=t.getContext(`2d`);return n?(n.clearRect(0,0,ft,ft),n.font=`44px "Apple Color Emoji", "Segoe UI Emoji", sans-serif`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(`🦈`,28,36),n.beginPath(),n.arc(50,15,e>1?12:9,0,Math.PI*2),n.fillStyle=`#ff335f`,n.fill(),n.lineWidth=4,n.strokeStyle=`#ffffff`,n.stroke(),e>1&&(n.fillStyle=`#ffffff`,n.font=`bold 15px sans-serif`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(String(Math.min(e,9)),50,16)),t.toDataURL(`image/png`)):gt}async function wt(e){let t=yt();if(typeof t.setAppBadge==`function`)try{await t.setAppBadge(e)}catch{}}async function Tt(){let e=yt();if(typeof e.clearAppBadge==`function`)try{await e.clearAppBadge()}catch{}}function Et(){document.title=`(${z}) ${ht}`;let e=St();e&&(e.href=Ct(z)),wt(z)}function Dt(){document.title=ht}function Ot(){if(B){if(_t){B.remove(),B=null,_t=!1;return}B.href=gt}}function kt(){mt||(mt=!0,ht=document.title||pt,St(),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&jt()}),window.addEventListener(`focus`,()=>jt()))}function At(){if(!mt||!bt())return;let e=Date.now();xt(e)||(vt=e,z+=1,Et())}function jt(){mt&&z!==0&&(z=0,vt=0,Dt(),Ot(),Tt())}function Mt(e,t){return!e||!t||e===`all`||e===t}function Nt(e){let t=P(e);return!t||e.version!==1?null:{version:1,...t}}var Pt=6291456,Ft=e=>typeof e==`object`&&!!e&&!Array.isArray(e),V=e=>typeof e==`string`&&e.length>0&&e.length<=240;function It(e){let{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s}=e;if(!V(t)||!V(n)||!V(r)||!V(i)||!V(a)||o!==`approval`&&o!==`question`||typeof s!=`number`||!Number.isSafeInteger(s))return null;let c=le(e.view);return c?{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s,view:c}:null}function Lt(e){return JSON.stringify([e.runId,e.sessionId,e.scope,e.turnId,e.requestId,e.requestType,e.view])}function Rt(e){let t=e.view.fields;return t.length>0&&(e.requestType===`approval`?t.length===1&&!t[0].multiSelect&&!t[0].allowFreeform&&t[0].options.length>0:t.every(e=>e.options.length>0||e.allowFreeform))}function zt(e,t,n={}){let a={...t},o=e.ownerDocument,s=o.createElement(`section`);s.className=`native-requests`,s.hidden=!0,s.setAttribute(`aria-label`,`Live runtime requests`);let c=o.createElement(`p`);c.className=`native-request-status`;let l=o.createElement(`p`);l.className=`native-request-announcer`,l.setAttribute(`role`,`status`),l.setAttribute(`aria-live`,`polite`),l.setAttribute(`aria-atomic`,`true`);let u=o.createElement(`h2`);u.className=`native-request-title`;let d=o.createElement(`p`);d.className=`native-request-context`;let f=o.createElement(`div`);f.className=`native-request-controls`;let p=le(`Refresh requests`,()=>{n.onRefresh?n.onRefresh():F()});s.append(u,d,c,f,p);let m=[...e.children].find(e=>e.classList.contains(`chat-input-area`));e.insertBefore(l,m??null),e.insertBefore(s,m??null);let h=null,g=null,_=null,v,y=0,b=0,x=!1,S=!1,C=!1,w=!1,T=n.health??`healthy`,ee=0,E=!1,te=!1,D=()=>!x&&(n.isCurrent?.()??!0),ne=0,re=null,O=null,ie=!1,k=null,A=o.defaultView,ae=()=>{ie=!0,++ne,O=null},oe=()=>{ie=!1},se=e=>{s.contains(e.target)||(++ne,O=null)};o.addEventListener(`focusin`,se),A?.addEventListener(`blur`,ae),A?.addEventListener(`focus`,oe);function ce(){return ie?null:s.contains(o.activeElement)?ne:C&&o.activeElement===o.body?re:null}function j(t=!0){if(O===null)return;if(ie||O!==ne){O=null;return}let n=s.isConnected&&!s.hidden?f.querySelector(`input:not(:disabled), textarea:not(:disabled), button:not(:disabled)[aria-disabled="false"]`)??p:e.querySelector(`#chatInput`)??o.getElementById(`chatInput`);n?.isConnected&&!n.hasAttribute(`disabled`)&&n.focus({preventScroll:!0}),t&&!C&&(O=null)}function le(e,t){let n=o.createElement(`button`);return n.type=`button`,n.textContent=e,n.addEventListener(`click`,t),n}function M(e,t=!1){t&&(k=e);let n=(T===`healthy`?``:T===`unknown`?`Live request updates not connected. `:`Connection lost. Live request updates unavailable. `)+(E&&T!==`healthy`?`Manually refreshed; updates remain unavailable. `:``)+e;c.textContent!==n&&(c.textContent=n);let r=T===`healthy`&&e===`No pending runtime requests.`?k??e:n;l.textContent!==r&&(l.textContent=r)}function N(){f.querySelectorAll(`button`).forEach(e=>{let t=w||C||!S;e.disabled=w||C||!S&&o.activeElement!==e,e.setAttribute(`aria-disabled`,String(t))}),f.querySelectorAll(`input, textarea`).forEach(e=>{e.disabled=C}),s.setAttribute(`aria-busy`,String(C))}function ue(e=ce()){O=e,clearTimeout(v),v=void 0,h=null,S=!1,b++,u.textContent=``,d.textContent=``,f.replaceChildren(),j(!1)}function P(){clearTimeout(v),h&&!w&&(v=setTimeout(()=>{if(D()){if(h&&h.expiresAt>Date.now()){P();return}ue(),M(T===`healthy`?`Request expired. Checking pending requests.`:`Request expired. Refresh requests to check what is pending.`,!0),F(`auto`)}},Math.min(2147483647,Math.max(0,h.expiresAt-Date.now()))))}function de(e){u.textContent=e.view.title,d.textContent=`Execution scope: ${e.scope} · Run: ${e.runId}`;let t=e.view.fields;if(!Rt(e))return;let n=b,r=e=>{b===n&&fe(e)},i=o.createElement(`form`);i.noValidate=!0;let a=[];for(let[n,s]of t.entries()){let t=o.createElement(`fieldset`),c=o.createElement(`legend`);c.textContent=s.label,t.append(c);let l=[];for(let i of s.options)if(e.requestType===`approval`)t.append(le(i.label,()=>r({optionId:i.id})));else{let e=o.createElement(`label`),r=o.createElement(`input`);r.type=s.multiSelect?`checkbox`:`radio`,r.name=`native-question-${n}`,r.value=i.id,e.append(r,o.createTextNode(i.label)),t.append(e),l.push({id:i.id,input:r})}let u=null;if(e.requestType===`question`&&s.allowFreeform){!s.multiSelect&&l.length&&t.append(le(`Clear selection`,()=>{l.forEach(e=>{e.input.checked=!1})}));let e=o.createElement(`label`);e.append(o.createTextNode(`Other answer`)),u=o.createElement(`textarea`),u.maxLength=2e3,e.append(u),t.append(e)}if(e.requestType===`question`){let e=o.createElement(`p`);e.textContent=s.multiSelect?`Choose at least one answer.`:`Choose exactly one answer.`,t.append(e)}a.push({field:s,choices:l,text:u}),i.append(t)}if(e.requestType===`question`){let e=o.createElement(`button`);e.type=`submit`,e.textContent=`Submit answers`,i.append(e)}i.addEventListener(`submit`,t=>{if(t.preventDefault(),e.requestType!==`question`||!D()||w||C||!S||b!==n)return;let i=0,o=[];for(let{field:e,choices:t,text:n}of a){let r=t.filter(e=>e.input.checked).map(e=>e.id),a=n?.value??``,s=a.length>0,c=r.length+(s&&a.trim()?1:0);if(s&&(!e.allowFreeform||!a.trim()||a.length>2e3)||(e.multiSelect?c<1||r.length>e.options.length:c!==1)){M(`Answer every question. Choose one answer for single-choice questions; other answers must be nonblank and at most 2,000 characters.`);return}i+=a.length,o.push([e.id,{selected:r,...s?{text:a}:{}}])}if(i>8e3){M(`Keep all other answers within 8,000 characters in total.`);return}r({answers:Object.fromEntries(o)})}),i.append(le(`Cancel request`,()=>r({optionId:null}))),f.append(i)}async function fe(e){let t=h;if(!D()||w||C||!S||!t)return;if(t.expiresAt<=Date.now()){ue(),M(`Request expired.`,!0),await F(`auto`);return}re=ce();let n=re;C=!0,S=!1;let a=b,o=ee;++y,g?.abort();let s=new AbortController;_=s,k=null,N(),M(`Sending response.`);let c=`optionId`in e&&e.optionId===null?`Request cancelled.`:`Response accepted.`,l=!1;try{let n=await r(`/api/runtime/requests/`+encodeURIComponent(t.requestId),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({runId:t.runId,sessionId:t.sessionId,scope:t.scope,turnId:t.turnId,response:e})},s.signal,65536);if(!Ft(n)||n.ok!==!0||!Ft(n.data)||n.data.accepted!==!0)throw Error(`unconfirmed`);l=!0}catch(e){c=e instanceof i&&e.status===409?`Request expired or was already answered. Pending requests refreshed.`:`Response could not be confirmed. Check pending requests before trying again.`}finally{_===s&&(_=null),C=!1}if(!D())return;if(w||o!==ee){N();return}if(b!==a){N(),j();return}l?ue(n):S=!1,N(),M(c,!0);let u=y+1;await F(`auto`),!x&&!w&&S&&y===u&&!l&&h&&Lt(h)===Lt(t)&&M(c)}async function F(e=`manual`){if(!D()||e===`auto`&&T!==`healthy`)return;let t=++y;g?.abort();let n=new AbortController;g=n,S=!1,N(),!h&&!te&&(s.hidden=!1,M(`Loading pending requests.`));try{if(!V(a.sessionId)||!V(a.scope))throw Error(`invalid_identity`);let i=await r(`/api/runtime/requests?sessionId=`+encodeURIComponent(a.sessionId),{method:`GET`},n.signal,Pt);if(!D()||t!==y||n.signal.aborted)return;if(!Ft(i)||i.ok!==!0||!Ft(i.data))throw Error(`invalid_list`);let o=i.data.requests;if(!Array.isArray(o)||o.length>128)throw Error(`invalid_list`);let c=new Set,l=null,u=null,d=!1;for(let e of o){if(!Ft(e)){d=!0;continue}if(V(e.requestId)){if(c.has(e.requestId))throw Error(`duplicate_request`);c.add(e.requestId)}if(e.sessionId!==a.sessionId)continue;let t=It(e);if(!t){d=!0;continue}t.expiresAt<=Date.now()||(l??=t,h&&Lt(h)===Lt(t)&&(u=t))}let f=u??l;h&&!u&&M(h.expiresAt<=Date.now()?`Request expired.`:`Request is no longer pending.`,!0),u||ue(),h=f,S=!0,w=!1,te=!0,E=e===`manual`,s.hidden=!h&&!d&&T===`healthy`,h?(u||(k=null),M(Rt(h)?(k?k+` `:``)+`Runtime is waiting for your response.`:`This request cannot be answered here. Refresh requests or use Stop.`),u||de(h),P()):M(d?`This request cannot be displayed safely. Refresh requests or use Stop.`:`No pending runtime requests.`),N(),j()}catch{if(!D()||t!==y||n.signal.aborted)return;s.hidden=!1,N(),M(`Pending requests could not be loaded. Refresh requests to retry.`)}finally{g===n&&(g=null)}}function pe(e){x||(T=e,E=!1,++ee,w=!0,S=!1,++y,g?.abort(),g=null,clearTimeout(v),v=void 0,s.hidden=!1,N(),M(`Your draft is kept. Refresh requests to check what is pending.`))}return T!==`healthy`&&pe(T),n.autoStart!==!1&&F(`auto`),{refresh:F,setStreamHealth:pe,suspend(){pe(`unavailable`)},dispose(){x||(x=!0,++y,g?.abort(),_?.abort(),ue(),s.remove(),l.remove(),j(),o.removeEventListener(`focusin`,se),A?.removeEventListener(`blur`,ae),A?.removeEventListener(`focus`,oe))}}}function Bt(t){let n=`unknown`,r=0,i=0,a=null,o=``,s=null,c=null,u=!1,d=null,f=()=>l(`/api/orchestrate/snapshot`),p=e=>a?.sessionId===e.sessionId&&a.scope===e.scope;function m(e){let n=t.host();if(n&&!s){if(!c){let e=n.ownerDocument;c=e.createElement(`section`),c.className=`native-requests`,c.setAttribute(`aria-label`,`Live runtime requests`);let t=e.createElement(`p`);t.className=`native-request-status`,t.setAttribute(`role`,`status`);let r=e.createElement(`button`);r.type=`button`,r.textContent=`Refresh requests`,r.addEventListener(`click`,()=>{_()}),c.append(t,r);let i=[...n.children].find(e=>e.classList.contains(`chat-input-area`));n.insertBefore(c,i??null)}c.querySelector(`p`).textContent=e}}function h(){s?.dispose(),s=null,a=null,e.activityIdentity=null}function g(){if(u||n!==`healthy`||!s||d?.epoch===r&&d.path===o&&(!d.panel||d.panel===s))return;u=!0;let e=r;queueMicrotask(()=>{u=!1,e===r&&n===`healthy`&&o===f()&&s?.refresh(`auto`)})}async function _(){if(d?.epoch===r&&d.path===f()&&d.panel===s)return;let e={epoch:r,path:f(),panel:s};d=e;try{(!s||o!==f())&&await t.refreshSnapshot(),e.epoch===r&&e.path===f()&&o===e.path&&(!e.panel||e.panel===s)&&await s?.refresh(`manual`)}catch{m(`Request identity could not be loaded. Refresh requests to retry.`)}finally{d===e&&(d=null)}}function v(e){n=e,++r,s?.setStreamHealth(e),m(e===`healthy`?`Loading request identity.`:`Live request updates unavailable. Refresh requests to check pending requests manually.`)}return{channelChanged(){v(`unknown`)},unavailable(){v(`unavailable`)},sseOpened(){v(`healthy`)},invalidateIdentity(){++r,++i,h(),m(`Request identity changed. Refresh requests to check this conversation.`)},beginSnapshot(){let l=f();o&&o!==l&&h();let u=r,d=++i,v=()=>u===r&&d===i&&l===f();return{path:l,isCurrent:v,accept(r){if(!v())return;let i=P(r);if(!i){h(),m(`Request identity unavailable. Refresh requests to retry.`);return}if(!p(i)){h(),a=i,o=l;let e=t.host();e&&(c?.remove(),c=null,s=zt(e,i,{health:n,autoStart:!1,onRefresh:()=>{_()},isCurrent:()=>a===i&&o===f()}))}e.activityIdentity=i,g()},fail(){v()&&(h(),m(`Request identity could not be loaded. Refresh requests to retry.`))}}},event(e,t){if(n!==`healthy`||!a||o!==f())return;let r=e===`agent_runtime_requests_changed`?Nt(t):null,i=e===`agent_runtime`?ne(t):null,s=typeof t==`object`&&!!t&&t.sseReplay===!0;(r&&p(r)||i&&p(i)&&(i.kind===`request`||i.kind===`request-settled`||i.kind===`turn-end`&&!s))&&g()},dispose(){++r,++i,h(),c?.remove(),c=null}}}N({currentMessage:()=>e.currentAgentDiv,useMessage:t=>{e.currentAgentDiv=t},createMessage:Vt,reconcileMessage:(e,t)=>m().reconcileMessage(e,t),replaceAnswer:fe,evicted:ie,closeTrace:()=>{a(()=>import(`./trace-drawer-DasaS1z4.js`).then(e=>e.closeTraceDrawer()),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace close unavailable`,e))},inspectTrace:(e,t)=>{a(()=>import(`./trace-drawer-DasaS1z4.js`).then(n=>n.openTraceDrawer(e,void 0,t)),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace unavailable`,e))}});function Vt(){return ge(),S(`agent`,``)}var H=Bt({host:()=>document.querySelector(`.chat-area`),refreshSnapshot:()=>Z(`native-request-retry`,{hydrateRun:!0})}),U=[`I`,`P`,`A`,`B`,`C`],W=null;function Ht(e,t,n){let r=U.indexOf(n);if(r<0)return;let i=e.getBoundingClientRect(),a=t.offsetWidth||36,o=document.getElementById(`dot-${n}`);if(!o)return;let s=U[r+1],c=s?document.getElementById(`dot-${s}`):null;if(c){let e=o.getBoundingClientRect(),n=c.getBoundingClientRect(),r=(e.right+n.left)/2;t.style.transform=`translateX(${r-i.left-a/2}px)`}else{let e=o.getBoundingClientRect();t.style.transform=`translateX(${e.left-i.left+e.width/2-a/2}px)`}}var Ut={},Wt=8,Gt=64,G=null,K=0,Kt=[],qt=new Map;function Jt(e){return e!==null&&(Kt.includes(e)||M(e)||!!v(e)?.answerSource)}function Yt(e){let t=Number(e);return Number.isFinite(t)&&t>0?Math.floor(t):null}function Xt(e,t){if(e&&t!=null)for(t>(qt.get(e)||0)&&qt.set(e,t);qt.size>Gt;){let e=null;for(let t of qt.keys())if(t!==G){e=t;break}if(!e)break;qt.delete(e)}}function Zt(e){let t=new Map;for(let n of e?.toolLog||[]){let e=typeof n?.traceRunId==`string`&&n.traceRunId?n.traceRunId:null,r=Yt(n?.traceSeq);e&&r!=null&&r>(t.get(e)||0)&&t.set(e,r)}return t}function Qt(e,t,n){return!n||!e||t==null?!1:t<=(qt.get(e)||0)}function $t(e){++q;let t=e??G;G=null,K=0,t&&!Kt.includes(t)&&(Kt.push(t),Kt.length>Wt&&Kt.shift())}function en(e){e&&e!==G&&(++q,G=e,K=0)}function tn(e){if(e?.running){typeof e.traceRunId==`string`&&e.traceRunId&&(G=e.traceRunId),K=typeof e.textLen==`number`?e.textLen:(e.text||``).length;for(let[t,n]of Zt(e))Xt(t,n)}}var nn=``,q=0,J=!1,rn=!1,an=0,on=[],sn=!1;function Y(){J=!1,_(!1),A(!1),G&&E(G)}function cn(){re(),on=[],an=0,sn=!1}function ln(t,n=`Activity preview is unavailable at its retention limit. The final answer will still appear here.`){let r=e.currentAgentDiv;if((!r||r.dataset.traceRunId!==t)&&(r=Vt(),e.currentAgentDiv=r,r.dataset.traceRunId=t),!r.querySelector(`.activity-unavailable`)){let e=r.ownerDocument.createElement(`p`);e.className=`activity-unavailable`,e.setAttribute(`role`,`status`),e.textContent=n,r.querySelector(`.agent-body`)?.prepend(e)}en(t)}function un(e){let t=new TextEncoder().encode(JSON.stringify(e)).length;if(on.length>=256||an+t>1048576){on=[],an=0,sn=!0;return}on.push(e),an+=t}function dn(t){let n=e.activityIdentity;if(!J||!n){un({gap:t});return}t.sessionId===n.sessionId&&t.scope===n.scope&&(v(t.runId)?E(t.runId):G===t.runId&&e.currentAgentDiv&&ln(t.runId,`Activity is incomplete. Runtime updates were not recorded; the final answer remains available separately.`))}function fn(t,n=!1){let r=e.activityIdentity;if(!J||!r){un({event:t,replay:n});return}if(t.sessionId!==r.sessionId||t.scope!==r.scope)return;let i=v(t.runId);if(i&&i.model.identity.turnId!==t.turnId)return;let a=Jt(t.runId);if(a&&!i||!i&&G&&G!==t.runId&&(t.kind!==`turn-start`||n))return;let o;try{o=te(t,!G||G===t.runId)??(t.kind===`turn-end`&&i?.model.end?.seq===t.seq?i:null)}catch(e){if(!(e instanceof ue))throw e;!n&&(!G||G===t.runId||t.kind===`turn-start`)&&ln(t.runId);return}if(o){if(++q,sn&&E(t.runId),t.kind!==`turn-end`){!a&&!n&&en(t.runId);return}a||G&&G!==t.runId||e.currentAgentDiv!==o.message||(o.answerSource=`canonical`,$t(t.runId),de(t.finalText,void 0,t.finalText===null?`absent`:`present`,t.runId,o.cacheScope,t.sessionId),At())}}function pn(t){if(t.isEmployee===!0)return;let n=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,r=t.runtimeFinality===`present`||t.runtimeFinality===`absent`?t.runtimeFinality:void 0;if(!n&&!r&&(t.error===!0||G&&v(G))){typeof t.text==`string`&&t.text&&D(o(t.text),`tool-activity`);return}let i=n?v(n):void 0,a=!!i&&r!==`absent`&&typeof t.text==`string`;if(Jt(n)){if(a&&n)ee(n,t.text);else if(!i&&n&&r!==`absent`&&typeof t.text==`string`){let r=P(t);r&&r.sessionId===e.activityIdentity?.sessionId&&oe({...r,runId:n,text:t.text})}return}if(n&&G&&n!==G)return;w(n,t.runtimeStatus??(t.error===!0?`error`:void 0)),i&&(i.answerSource=`compatibility`),$t(n);let s=t.type===`agent_done`?t.toolLog:void 0;i&&n?(de(r===`absent`?null:t.text||``,s,r??(a?`present`:void 0),n,i.cacheScope,i.model.identity.sessionId),r===`absent`&&typeof t.text==`string`&&t.text&&D(o(t.text.slice(0,500)),`activity-diagnostic`)):de(t.text||``,s,r),At()}function mn(t){let n=e.currentAgentDiv,r=v(t.runId);if(n&&G===t.runId&&e.activityIdentity?.sessionId===t.sessionId&&n===t.message&&n.dataset.traceRunId===t.runId&&!Jt(t.runId)&&!(r&&(r.model.identity.sessionId!==t.sessionId||r.model.identity.scope!==t.scope||t.turnId!==void 0&&r.model.identity.turnId!==t.turnId))){if(w(t.runId,t.status),$t(t.runId),n.dataset.activitySaved===`true`){r&&(r.answerSource=`saved`),delete n.dataset.activityRecovering,ge(),x(`idle`);return}r?r.answerSource=t.answer.kind===`saved`?`saved`:`unavailable`:t.answer.kind!==`saved`&&e.activityIdentity&&T({runId:t.runId,sessionId:t.sessionId,scope:e.activityIdentity.scope,message:n,cacheScope:t.cacheScope}),de(t.answer.kind===`saved`?t.answer.message.content:null,void 0,t.answer.kind===`saved`?`present`:`absent`,t.runId,t.cacheScope,t.sessionId),At()}}function hn(){se(e.activityIdentity,{terminal:mn,refreshIdentity:()=>Z(`history-identity`,{hydrateRun:!0})}),A(J)}function gn(){let t=on;on=[],an=0;for(let e of t)`event`in e?fn(e.event,e.replay):dn(e.gap);sn&&G&&e.currentAgentDiv&&!v(G)&&ln(G,`Activity is incomplete. Updates were dropped while reconnecting; the final answer remains available separately.`),sn=!1}var X=0,_n=null,vn=0,yn=!1,bn=0,xn=750,Sn=750;async function Cn(t={}){let n=H.beginSnapshot(),i=q,o;try{o=await r(n.path,{method:`GET`},new AbortController().signal,16777216)}catch(e){throw n.isCurrent()&&Y(),n.fail(),e}if(!n.isCurrent())return;n.accept(o?.activityIdentity),J=rn&&e.activityIdentity!==null,ae(e.activityIdentity),_(J),hn(),nn=String(o.orc.scope||``),zn(o.orc.state),jn(o.orc.ctx||null),An(o.heartbeat||{pending:0,deferredPending:0}),kn(o.workers),C(o.runtime.queuePending),he(o.queued||[]),$e(o.queued||[]);let s=Jt(o.activeRun?.traceRunId??null),c=i===q;t.hydrateRun&&c&&!s&&(_e(o.activeRun),tn(o.activeRun),o.activeRun?.running&&o.activeRun.traceRunId&&e.currentAgentDiv&&(e.currentAgentDiv.dataset.traceRunId=o.activeRun.traceRunId,e.activityIdentity&&(e.currentAgentDiv.dataset.messageSessionId=e.activityIdentity.sessionId),y(o.activeRun.traceRunId,e.currentAgentDiv))),Ln(),c&&(o.runtime.busy&&!s?x(`running`):me()||x(`idle`)),J&&gn();let l=document.getElementById(`chatMessages`);l&&ce(l),J&&t.hydrateRun&&e.currentAgentDiv&&G&&(c||v(G)?.degraded)&&O(e.currentAgentDiv,G,!0),a(()=>import(`./employees-CWS3Juca.js`).then(e=>{typeof e.renderEmployees==`function`&&e.renderEmployees()}),__vite__mapDeps([0]))}function Z(e=`manual`,t={}){let n=Date.now();return t.hydrateRun?Cn(t):_n||(n-vn<xn?Promise.resolve():(vn=n,_n=Cn(t).catch(t=>{throw console.warn(`[ws] orchestrate snapshot sync failed (${e})`,t),t}).finally(()=>{_n=null}),_n))}function wn(e){return e===`iframe-visible`||e===`pageshow`||e===`discard`||e===`visibilitychange`}function Tn(e){h(e),a(()=>import(`./ui-BucJ1zMA.js`).then(async t=>{if(wn(e)&&X>0)try{await t.loadMessages(),X=Date.now()}catch(t){console.warn(`[ws] restore loadMessages failed (${e})`,t)}await Z(e,{hydrateRun:!0})}),__vite__mapDeps([0])).catch(()=>{}).finally(()=>{g(e)})}function En(e){let t=Date.now();!wn(e)&&t-bn<Sn||(bn=t,Tn(e))}function Dn(e){let t=Array.isArray(e.changedKeys)?e.changedKeys:[];if(t.includes(`presentation`)&&a(()=>import(`./presentation-preference-BYEPPRPg.js`).then(e=>e.refreshPresentationSettings()),[]).catch(e=>console.warn(`[ws] presentation refresh failed`,e)),t.includes(`multiSession`)){window.location.reload();return}t.includes(`workingDir`)||t.includes(`projectDirs`)?a(()=>import(`./ui-BucJ1zMA.js`).then(async e=>{try{await e.loadMessages(),X=Date.now()}catch(e){console.warn(`[ws] settings scope loadMessages failed`,e)}await Z(`settings_change`).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`settings_change`))}),__vite__mapDeps([0])):Z(`settings_change`).catch(()=>{}),a(()=>import(`./settings-core-8wBl1mg-.js`).then(t=>t.refreshHeaderFromSettingsChange(e)),__vite__mapDeps([0])).catch(()=>{})}function On(){yn||(yn=!0,window.addEventListener(`focus`,()=>{En(`focus`)}),window.addEventListener(`pageshow`,e=>{e.persisted&&En(`pageshow`)}),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&En(`visibilitychange`)}),document.addEventListener(`resume`,()=>{En(`resume`)}),`wasDiscarded`in document&&document.wasDiscarded&&En(`discard`),window.addEventListener(`message`,e=>{e.data?.type===`jaw-preview-visibility`&&e.data.visible&&En(`iframe-visible`)}))}function kn(e){for(let e of Object.keys(Ut))delete Ut[e];for(let t of e)t.state===`running`&&t.phase&&(Ut[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``})}function An(t){let n={pending:Number(t?.pending||0),deferredPending:Number(t?.deferredPending||0),...t?.reason?{reason:t.reason}:{},...t?.policy?{policy:t.policy}:{},...t?.jobId?{jobId:t.jobId}:{},...t?.jobName?{jobName:t.jobName}:{}};e.heartbeatRuntime=n;let r=document.getElementById(`pabcHeartbeatStatus`);if(r){if(n.reason===`pabcd_active`&&n.deferredPending>0){let e=n.jobName?`: ${n.jobName}`:``;r.textContent=`heartbeat deferred (${n.deferredPending})${e}`,r.hidden=!1}else r.textContent=``,r.hidden=!0}}function jn(t){e.orcTaskAnchor=String(t?.taskAnchor||``).trim(),e.orcResolvedSelection=t?.resolvedSelection||null;let n=document.getElementById(`pabcTaskAnchor`);n&&(e.orcTaskAnchor?(n.textContent=`anchor: ${e.orcResolvedSelection?.index?`${e.orcResolvedSelection.index}. `:``}${e.orcTaskAnchor}`,n.hidden=!1):(n.textContent=``,n.hidden=!0),Fn(t?.interview||null))}var Mn=(()=>{try{return localStorage.getItem(`jaw:interviewCollapsed`)===`1`}catch{return!1}})();function Nn(e){Mn=e;try{localStorage.setItem(`jaw:interviewCollapsed`,e?`1`:`0`)}catch{}let t=document.getElementById(`interviewPanel`);if(!t)return;t.classList.toggle(`collapsed`,e);let n=t.querySelector(`.iv-toggle`);n&&n.setAttribute(`aria-expanded`,String(!e))}function Pn(e){let t=e=>{switch(e){case`max`:return 1;case`xhigh`:return .8;case`high`:return .6;case`medium`:return .4;default:return .2}},n=e=>{switch(e){case`max`:return`#2196f3`;case`xhigh`:return`#4caf50`;case`high`:return`#8bc34a`;case`medium`:return`#ff9800`;default:return`#f44336`}},r=[t(e.goal),t(e.constraint),t(e.success),t(e.ontology)],i=1-r.reduce((e,t)=>e+t,0)/r.length,a=Object.values(e).every(e=>e===`max`)||i<=.2?`🟢 Ready`:i<=.4?`🟡 Almost`:`🔴 Needs work`,o=(e,r)=>{let i=t(r);return`<div style="display:flex;align-items:center;gap:6px;font-size:12px">
15
+ </div>`}function tt(e,t){let n=document.querySelector(`.pending-row[data-pending-id="${CSS.escape(e)}"]`);return n?n.querySelector(`[data-pending-action="${t}"]`):null}function nt(e,t){let n=tt(e,t);if(!n)return;n.classList.add(`armed`),n.setAttribute(`title`,s(`queue.cancelArm`));let r=n.querySelector(`.pending-arm-fill`);r&&(r.style.animation=`none`,r.offsetWidth,r.style.animation=``)}function rt(e,t){let n=tt(e,t);n&&(n.classList.remove(`armed`),n.setAttribute(`title`,s(t===`steer`?`queue.steer`:`queue.delete`)))}function it(){for(let e of L.values()){let t=tt(e.id,e.action);t&&(t.classList.add(`armed`),t.setAttribute(`title`,s(`queue.cancelArm`)))}}function at(e){for(let[t,n]of L)e.has(n.id)||(clearTimeout(n.timerId),L.delete(t))}function ot(e,n){let r=Qe(e,n),i=setTimeout(()=>ct(e,n),Ze);L.set(r,{id:e,action:n,timerId:i}),nt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`POST`,{}).catch(()=>{})}function st(e,n){let r=Qe(e,n),i=L.get(r);i&&(clearTimeout(i.timerId),L.delete(r),rt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`DELETE`,{}).catch(()=>{}))}async function ct(e,n){L.delete(Qe(e,n));let r=n===`steer`?`/api/orchestrate/queue/${encodeURIComponent(e)}/steer`:`/api/orchestrate/queue/${encodeURIComponent(e)}`,i=n===`steer`?`POST`:`DELETE`;if(n===`steer`&&x(`running`),await t(r,i,{})==null){R=R.filter(t=>t.id!==e),$e(R),n===`steer`&&Z(`steer-fire-miss`).catch(()=>{});return}R=R.filter(t=>t.id!==e),$e(R)}function lt(e,t){if(L.has(Qe(e,t))){st(e,t);return}ot(e,t)}function ut(){let e=document.getElementById(`pendingQueue`);e&&e.addEventListener(`click`,async e=>{let t=e.target?.closest(`[data-pending-action]`);if(!t)return;let n=t.closest(`.pending-row`)?.dataset.pendingId;if(!n)return;let r=t.dataset.pendingAction;if(r===`copy`){let e=R.find(e=>e.id===n);if(e?.prompt&&(await p(e.prompt)).ok){let e=t.querySelector(`.pending-btn-content`);e&&(e.innerHTML=f.checkSimple,setTimeout(()=>{e.innerHTML=f.copy},600))}return}lt(n,r===`steer`?`steer`:`delete`)})}var dt=800,ft=64,pt=`CLI-JAW`,mt=!1,z=0,ht=pt,B=null,gt=``,_t=!1,vt=0;function yt(){return navigator}function bt(){return document.visibilityState!==`visible`||!document.hasFocus()}function xt(e){return e-vt<dt}function St(){if(B)return B;let e=document.querySelector(`link[rel~="icon"]`);if(e)return B=e,gt=e.href||e.getAttribute(`href`)||``,e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.appendChild(t),B=t,_t=!0,t}function Ct(e){let t=document.createElement(`canvas`);t.width=ft,t.height=ft;let n=t.getContext(`2d`);return n?(n.clearRect(0,0,ft,ft),n.font=`44px "Apple Color Emoji", "Segoe UI Emoji", sans-serif`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(`🦈`,28,36),n.beginPath(),n.arc(50,15,e>1?12:9,0,Math.PI*2),n.fillStyle=`#ff335f`,n.fill(),n.lineWidth=4,n.strokeStyle=`#ffffff`,n.stroke(),e>1&&(n.fillStyle=`#ffffff`,n.font=`bold 15px sans-serif`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(String(Math.min(e,9)),50,16)),t.toDataURL(`image/png`)):gt}async function wt(e){let t=yt();if(typeof t.setAppBadge==`function`)try{await t.setAppBadge(e)}catch{}}async function Tt(){let e=yt();if(typeof e.clearAppBadge==`function`)try{await e.clearAppBadge()}catch{}}function Et(){document.title=`(${z}) ${ht}`;let e=St();e&&(e.href=Ct(z)),wt(z)}function Dt(){document.title=ht}function Ot(){if(B){if(_t){B.remove(),B=null,_t=!1;return}B.href=gt}}function kt(){mt||(mt=!0,ht=document.title||pt,St(),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&jt()}),window.addEventListener(`focus`,()=>jt()))}function At(){if(!mt||!bt())return;let e=Date.now();xt(e)||(vt=e,z+=1,Et())}function jt(){mt&&z!==0&&(z=0,vt=0,Dt(),Ot(),Tt())}function Mt(e,t){return!e||!t||e===`all`||e===t}function Nt(e){let t=P(e);return!t||e.version!==1?null:{version:1,...t}}var Pt=6291456,Ft=e=>typeof e==`object`&&!!e&&!Array.isArray(e),V=e=>typeof e==`string`&&e.length>0&&e.length<=240;function It(e){let{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s}=e;if(!V(t)||!V(n)||!V(r)||!V(i)||!V(a)||o!==`approval`&&o!==`question`||typeof s!=`number`||!Number.isSafeInteger(s))return null;let c=le(e.view);return c?{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s,view:c}:null}function Lt(e){return JSON.stringify([e.runId,e.sessionId,e.scope,e.turnId,e.requestId,e.requestType,e.view])}function Rt(e){let t=e.view.fields;return t.length>0&&(e.requestType===`approval`?t.length===1&&!t[0].multiSelect&&!t[0].allowFreeform&&t[0].options.length>0:t.every(e=>e.options.length>0||e.allowFreeform))}function zt(e,t,n={}){let a={...t},o=e.ownerDocument,s=o.createElement(`section`);s.className=`native-requests`,s.hidden=!0,s.setAttribute(`aria-label`,`Live runtime requests`);let c=o.createElement(`p`);c.className=`native-request-status`;let l=o.createElement(`p`);l.className=`native-request-announcer`,l.setAttribute(`role`,`status`),l.setAttribute(`aria-live`,`polite`),l.setAttribute(`aria-atomic`,`true`);let u=o.createElement(`h2`);u.className=`native-request-title`;let d=o.createElement(`p`);d.className=`native-request-context`;let f=o.createElement(`div`);f.className=`native-request-controls`;let p=le(`Refresh requests`,()=>{n.onRefresh?n.onRefresh():F()});s.append(u,d,c,f,p);let m=[...e.children].find(e=>e.classList.contains(`chat-input-area`));e.insertBefore(l,m??null),e.insertBefore(s,m??null);let h=null,g=null,_=null,v,y=0,b=0,x=!1,S=!1,C=!1,w=!1,T=n.health??`healthy`,ee=0,E=!1,te=!1,D=()=>!x&&(n.isCurrent?.()??!0),ne=0,re=null,O=null,ie=!1,k=null,A=o.defaultView,ae=()=>{ie=!0,++ne,O=null},oe=()=>{ie=!1},se=e=>{s.contains(e.target)||(++ne,O=null)};o.addEventListener(`focusin`,se),A?.addEventListener(`blur`,ae),A?.addEventListener(`focus`,oe);function ce(){return ie?null:s.contains(o.activeElement)?ne:C&&o.activeElement===o.body?re:null}function j(t=!0){if(O===null)return;if(ie||O!==ne){O=null;return}let n=s.isConnected&&!s.hidden?f.querySelector(`input:not(:disabled), textarea:not(:disabled), button:not(:disabled)[aria-disabled="false"]`)??p:e.querySelector(`#chatInput`)??o.getElementById(`chatInput`);n?.isConnected&&!n.hasAttribute(`disabled`)&&n.focus({preventScroll:!0}),t&&!C&&(O=null)}function le(e,t){let n=o.createElement(`button`);return n.type=`button`,n.textContent=e,n.addEventListener(`click`,t),n}function M(e,t=!1){t&&(k=e);let n=(T===`healthy`?``:T===`unknown`?`Live request updates not connected. `:`Connection lost. Live request updates unavailable. `)+(E&&T!==`healthy`?`Manually refreshed; updates remain unavailable. `:``)+e;c.textContent!==n&&(c.textContent=n);let r=T===`healthy`&&e===`No pending runtime requests.`?k??e:n;l.textContent!==r&&(l.textContent=r)}function N(){f.querySelectorAll(`button`).forEach(e=>{let t=w||C||!S;e.disabled=w||C||!S&&o.activeElement!==e,e.setAttribute(`aria-disabled`,String(t))}),f.querySelectorAll(`input, textarea`).forEach(e=>{e.disabled=C}),s.setAttribute(`aria-busy`,String(C))}function ue(e=ce()){O=e,clearTimeout(v),v=void 0,h=null,S=!1,b++,u.textContent=``,d.textContent=``,f.replaceChildren(),j(!1)}function P(){clearTimeout(v),h&&!w&&(v=setTimeout(()=>{if(D()){if(h&&h.expiresAt>Date.now()){P();return}ue(),M(T===`healthy`?`Request expired. Checking pending requests.`:`Request expired. Refresh requests to check what is pending.`,!0),F(`auto`)}},Math.min(2147483647,Math.max(0,h.expiresAt-Date.now()))))}function de(e){u.textContent=e.view.title,d.textContent=`Execution scope: ${e.scope} · Run: ${e.runId}`;let t=e.view.fields;if(!Rt(e))return;let n=b,r=e=>{b===n&&fe(e)},i=o.createElement(`form`);i.noValidate=!0;let a=[];for(let[n,s]of t.entries()){let t=o.createElement(`fieldset`),c=o.createElement(`legend`);c.textContent=s.label,t.append(c);let l=[];for(let i of s.options)if(e.requestType===`approval`)t.append(le(i.label,()=>r({optionId:i.id})));else{let e=o.createElement(`label`),r=o.createElement(`input`);r.type=s.multiSelect?`checkbox`:`radio`,r.name=`native-question-${n}`,r.value=i.id,e.append(r,o.createTextNode(i.label)),t.append(e),l.push({id:i.id,input:r})}let u=null;if(e.requestType===`question`&&s.allowFreeform){!s.multiSelect&&l.length&&t.append(le(`Clear selection`,()=>{l.forEach(e=>{e.input.checked=!1})}));let e=o.createElement(`label`);e.append(o.createTextNode(`Other answer`)),u=o.createElement(`textarea`),u.maxLength=2e3,e.append(u),t.append(e)}if(e.requestType===`question`){let e=o.createElement(`p`);e.textContent=s.multiSelect?`Choose at least one answer.`:`Choose exactly one answer.`,t.append(e)}a.push({field:s,choices:l,text:u}),i.append(t)}if(e.requestType===`question`){let e=o.createElement(`button`);e.type=`submit`,e.textContent=`Submit answers`,i.append(e)}i.addEventListener(`submit`,t=>{if(t.preventDefault(),e.requestType!==`question`||!D()||w||C||!S||b!==n)return;let i=0,o=[];for(let{field:e,choices:t,text:n}of a){let r=t.filter(e=>e.input.checked).map(e=>e.id),a=n?.value??``,s=a.length>0,c=r.length+(s&&a.trim()?1:0);if(s&&(!e.allowFreeform||!a.trim()||a.length>2e3)||(e.multiSelect?c<1||r.length>e.options.length:c!==1)){M(`Answer every question. Choose one answer for single-choice questions; other answers must be nonblank and at most 2,000 characters.`);return}i+=a.length,o.push([e.id,{selected:r,...s?{text:a}:{}}])}if(i>8e3){M(`Keep all other answers within 8,000 characters in total.`);return}r({answers:Object.fromEntries(o)})}),i.append(le(`Cancel request`,()=>r({optionId:null}))),f.append(i)}async function fe(e){let t=h;if(!D()||w||C||!S||!t)return;if(t.expiresAt<=Date.now()){ue(),M(`Request expired.`,!0),await F(`auto`);return}re=ce();let n=re;C=!0,S=!1;let a=b,o=ee;++y,g?.abort();let s=new AbortController;_=s,k=null,N(),M(`Sending response.`);let c=`optionId`in e&&e.optionId===null?`Request cancelled.`:`Response accepted.`,l=!1;try{let n=await r(`/api/runtime/requests/`+encodeURIComponent(t.requestId),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({runId:t.runId,sessionId:t.sessionId,scope:t.scope,turnId:t.turnId,response:e})},s.signal,65536);if(!Ft(n)||n.ok!==!0||!Ft(n.data)||n.data.accepted!==!0)throw Error(`unconfirmed`);l=!0}catch(e){c=e instanceof i&&e.status===409?`Request expired or was already answered. Pending requests refreshed.`:`Response could not be confirmed. Check pending requests before trying again.`}finally{_===s&&(_=null),C=!1}if(!D())return;if(w||o!==ee){N();return}if(b!==a){N(),j();return}l?ue(n):S=!1,N(),M(c,!0);let u=y+1;await F(`auto`),!x&&!w&&S&&y===u&&!l&&h&&Lt(h)===Lt(t)&&M(c)}async function F(e=`manual`){if(!D()||e===`auto`&&T!==`healthy`)return;let t=++y;g?.abort();let n=new AbortController;g=n,S=!1,N(),!h&&!te&&(s.hidden=!1,M(`Loading pending requests.`));try{if(!V(a.sessionId)||!V(a.scope))throw Error(`invalid_identity`);let i=await r(`/api/runtime/requests?sessionId=`+encodeURIComponent(a.sessionId),{method:`GET`},n.signal,Pt);if(!D()||t!==y||n.signal.aborted)return;if(!Ft(i)||i.ok!==!0||!Ft(i.data))throw Error(`invalid_list`);let o=i.data.requests;if(!Array.isArray(o)||o.length>128)throw Error(`invalid_list`);let c=new Set,l=null,u=null,d=!1;for(let e of o){if(!Ft(e)){d=!0;continue}if(V(e.requestId)){if(c.has(e.requestId))throw Error(`duplicate_request`);c.add(e.requestId)}if(e.sessionId!==a.sessionId)continue;let t=It(e);if(!t){d=!0;continue}t.expiresAt<=Date.now()||(l??=t,h&&Lt(h)===Lt(t)&&(u=t))}let f=u??l;h&&!u&&M(h.expiresAt<=Date.now()?`Request expired.`:`Request is no longer pending.`,!0),u||ue(),h=f,S=!0,w=!1,te=!0,E=e===`manual`,s.hidden=!h&&!d&&T===`healthy`,h?(u||(k=null),M(Rt(h)?(k?k+` `:``)+`Runtime is waiting for your response.`:`This request cannot be answered here. Refresh requests or use Stop.`),u||de(h),P()):M(d?`This request cannot be displayed safely. Refresh requests or use Stop.`:`No pending runtime requests.`),N(),j()}catch{if(!D()||t!==y||n.signal.aborted)return;s.hidden=!1,N(),M(`Pending requests could not be loaded. Refresh requests to retry.`)}finally{g===n&&(g=null)}}function pe(e){x||(T=e,E=!1,++ee,w=!0,S=!1,++y,g?.abort(),g=null,clearTimeout(v),v=void 0,s.hidden=!1,N(),M(`Your draft is kept. Refresh requests to check what is pending.`))}return T!==`healthy`&&pe(T),n.autoStart!==!1&&F(`auto`),{refresh:F,setStreamHealth:pe,suspend(){pe(`unavailable`)},dispose(){x||(x=!0,++y,g?.abort(),_?.abort(),ue(),s.remove(),l.remove(),j(),o.removeEventListener(`focusin`,se),A?.removeEventListener(`blur`,ae),A?.removeEventListener(`focus`,oe))}}}function Bt(t){let n=`unknown`,r=0,i=0,a=null,o=``,s=null,c=null,u=!1,d=null,f=()=>l(`/api/orchestrate/snapshot`),p=e=>a?.sessionId===e.sessionId&&a.scope===e.scope;function m(e){let n=t.host();if(n&&!s){if(!c){let e=n.ownerDocument;c=e.createElement(`section`),c.className=`native-requests`,c.setAttribute(`aria-label`,`Live runtime requests`);let t=e.createElement(`p`);t.className=`native-request-status`,t.setAttribute(`role`,`status`);let r=e.createElement(`button`);r.type=`button`,r.textContent=`Refresh requests`,r.addEventListener(`click`,()=>{_()}),c.append(t,r);let i=[...n.children].find(e=>e.classList.contains(`chat-input-area`));n.insertBefore(c,i??null)}c.querySelector(`p`).textContent=e}}function h(){s?.dispose(),s=null,a=null,e.activityIdentity=null}function g(){if(u||n!==`healthy`||!s||d?.epoch===r&&d.path===o&&(!d.panel||d.panel===s))return;u=!0;let e=r;queueMicrotask(()=>{u=!1,e===r&&n===`healthy`&&o===f()&&s?.refresh(`auto`)})}async function _(){if(d?.epoch===r&&d.path===f()&&d.panel===s)return;let e={epoch:r,path:f(),panel:s};d=e;try{(!s||o!==f())&&await t.refreshSnapshot(),e.epoch===r&&e.path===f()&&o===e.path&&(!e.panel||e.panel===s)&&await s?.refresh(`manual`)}catch{m(`Request identity could not be loaded. Refresh requests to retry.`)}finally{d===e&&(d=null)}}function v(e){n=e,++r,s?.setStreamHealth(e),m(e===`healthy`?`Loading request identity.`:`Live request updates unavailable. Refresh requests to check pending requests manually.`)}return{channelChanged(){v(`unknown`)},unavailable(){v(`unavailable`)},sseOpened(){v(`healthy`)},invalidateIdentity(){++r,++i,h(),m(`Request identity changed. Refresh requests to check this conversation.`)},beginSnapshot(){let l=f();o&&o!==l&&h();let u=r,d=++i,v=()=>u===r&&d===i&&l===f();return{path:l,isCurrent:v,accept(r){if(!v())return;let i=P(r);if(!i){h(),m(`Request identity unavailable. Refresh requests to retry.`);return}if(!p(i)){h(),a=i,o=l;let e=t.host();e&&(c?.remove(),c=null,s=zt(e,i,{health:n,autoStart:!1,onRefresh:()=>{_()},isCurrent:()=>a===i&&o===f()}))}e.activityIdentity=i,g()},fail(){v()&&(h(),m(`Request identity could not be loaded. Refresh requests to retry.`))}}},event(e,t){if(n!==`healthy`||!a||o!==f())return;let r=e===`agent_runtime_requests_changed`?Nt(t):null,i=e===`agent_runtime`?ne(t):null,s=typeof t==`object`&&!!t&&t.sseReplay===!0;(r&&p(r)||i&&p(i)&&(i.kind===`request`||i.kind===`request-settled`||i.kind===`turn-end`&&!s))&&g()},dispose(){++r,++i,h(),c?.remove(),c=null}}}N({currentMessage:()=>e.currentAgentDiv,useMessage:t=>{e.currentAgentDiv=t},createMessage:Vt,reconcileMessage:(e,t)=>m().reconcileMessage(e,t),replaceAnswer:fe,evicted:ie,closeTrace:()=>{a(()=>import(`./trace-drawer-C6RvkUAd.js`).then(e=>e.closeTraceDrawer()),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace close unavailable`,e))},inspectTrace:(e,t)=>{a(()=>import(`./trace-drawer-C6RvkUAd.js`).then(n=>n.openTraceDrawer(e,void 0,t)),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace unavailable`,e))}});function Vt(){return ge(),S(`agent`,``)}var H=Bt({host:()=>document.querySelector(`.chat-area`),refreshSnapshot:()=>Z(`native-request-retry`,{hydrateRun:!0})}),U=[`I`,`P`,`A`,`B`,`C`],W=null;function Ht(e,t,n){let r=U.indexOf(n);if(r<0)return;let i=e.getBoundingClientRect(),a=t.offsetWidth||36,o=document.getElementById(`dot-${n}`);if(!o)return;let s=U[r+1],c=s?document.getElementById(`dot-${s}`):null;if(c){let e=o.getBoundingClientRect(),n=c.getBoundingClientRect(),r=(e.right+n.left)/2;t.style.transform=`translateX(${r-i.left-a/2}px)`}else{let e=o.getBoundingClientRect();t.style.transform=`translateX(${e.left-i.left+e.width/2-a/2}px)`}}var Ut={},Wt=8,Gt=64,G=null,K=0,Kt=[],qt=new Map;function Jt(e){return e!==null&&(Kt.includes(e)||M(e)||!!v(e)?.answerSource)}function Yt(e){let t=Number(e);return Number.isFinite(t)&&t>0?Math.floor(t):null}function Xt(e,t){if(e&&t!=null)for(t>(qt.get(e)||0)&&qt.set(e,t);qt.size>Gt;){let e=null;for(let t of qt.keys())if(t!==G){e=t;break}if(!e)break;qt.delete(e)}}function Zt(e){let t=new Map;for(let n of e?.toolLog||[]){let e=typeof n?.traceRunId==`string`&&n.traceRunId?n.traceRunId:null,r=Yt(n?.traceSeq);e&&r!=null&&r>(t.get(e)||0)&&t.set(e,r)}return t}function Qt(e,t,n){return!n||!e||t==null?!1:t<=(qt.get(e)||0)}function $t(e){++q;let t=e??G;G=null,K=0,t&&!Kt.includes(t)&&(Kt.push(t),Kt.length>Wt&&Kt.shift())}function en(e){e&&e!==G&&(++q,G=e,K=0)}function tn(e){if(e?.running){typeof e.traceRunId==`string`&&e.traceRunId&&(G=e.traceRunId),K=typeof e.textLen==`number`?e.textLen:(e.text||``).length;for(let[t,n]of Zt(e))Xt(t,n)}}var nn=``,q=0,J=!1,rn=!1,an=0,on=[],sn=!1;function Y(){J=!1,_(!1),A(!1),G&&E(G)}function cn(){re(),on=[],an=0,sn=!1}function ln(t,n=`Activity preview is unavailable at its retention limit. The final answer will still appear here.`){let r=e.currentAgentDiv;if((!r||r.dataset.traceRunId!==t)&&(r=Vt(),e.currentAgentDiv=r,r.dataset.traceRunId=t),!r.querySelector(`.activity-unavailable`)){let e=r.ownerDocument.createElement(`p`);e.className=`activity-unavailable`,e.setAttribute(`role`,`status`),e.textContent=n,r.querySelector(`.agent-body`)?.prepend(e)}en(t)}function un(e){let t=new TextEncoder().encode(JSON.stringify(e)).length;if(on.length>=256||an+t>1048576){on=[],an=0,sn=!0;return}on.push(e),an+=t}function dn(t){let n=e.activityIdentity;if(!J||!n){un({gap:t});return}t.sessionId===n.sessionId&&t.scope===n.scope&&(v(t.runId)?E(t.runId):G===t.runId&&e.currentAgentDiv&&ln(t.runId,`Activity is incomplete. Runtime updates were not recorded; the final answer remains available separately.`))}function fn(t,n=!1){let r=e.activityIdentity;if(!J||!r){un({event:t,replay:n});return}if(t.sessionId!==r.sessionId||t.scope!==r.scope)return;let i=v(t.runId);if(i&&i.model.identity.turnId!==t.turnId)return;let a=Jt(t.runId);if(a&&!i||!i&&G&&G!==t.runId&&(t.kind!==`turn-start`||n))return;let o;try{o=te(t,!G||G===t.runId)??(t.kind===`turn-end`&&i?.model.end?.seq===t.seq?i:null)}catch(e){if(!(e instanceof ue))throw e;!n&&(!G||G===t.runId||t.kind===`turn-start`)&&ln(t.runId);return}if(o){if(++q,sn&&E(t.runId),t.kind!==`turn-end`){!a&&!n&&en(t.runId);return}a||G&&G!==t.runId||e.currentAgentDiv!==o.message||(o.answerSource=`canonical`,$t(t.runId),de(t.finalText,void 0,t.finalText===null?`absent`:`present`,t.runId,o.cacheScope,t.sessionId),At())}}function pn(t){if(t.isEmployee===!0)return;let n=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,r=t.runtimeFinality===`present`||t.runtimeFinality===`absent`?t.runtimeFinality:void 0;if(!n&&!r&&(t.error===!0||G&&v(G))){typeof t.text==`string`&&t.text&&D(o(t.text),`tool-activity`);return}let i=n?v(n):void 0,a=!!i&&r!==`absent`&&typeof t.text==`string`;if(Jt(n)){if(a&&n)ee(n,t.text);else if(!i&&n&&r!==`absent`&&typeof t.text==`string`){let r=P(t);r&&r.sessionId===e.activityIdentity?.sessionId&&oe({...r,runId:n,text:t.text})}return}if(n&&G&&n!==G)return;w(n,t.runtimeStatus??(t.error===!0?`error`:void 0)),i&&(i.answerSource=`compatibility`),$t(n);let s=t.type===`agent_done`?t.toolLog:void 0;i&&n?(de(r===`absent`?null:t.text||``,s,r??(a?`present`:void 0),n,i.cacheScope,i.model.identity.sessionId),r===`absent`&&typeof t.text==`string`&&t.text&&D(o(t.text.slice(0,500)),`activity-diagnostic`)):de(t.text||``,s,r),At()}function mn(t){let n=e.currentAgentDiv,r=v(t.runId);if(n&&G===t.runId&&e.activityIdentity?.sessionId===t.sessionId&&n===t.message&&n.dataset.traceRunId===t.runId&&!Jt(t.runId)&&!(r&&(r.model.identity.sessionId!==t.sessionId||r.model.identity.scope!==t.scope||t.turnId!==void 0&&r.model.identity.turnId!==t.turnId))){if(w(t.runId,t.status),$t(t.runId),n.dataset.activitySaved===`true`){r&&(r.answerSource=`saved`),delete n.dataset.activityRecovering,ge(),x(`idle`);return}r?r.answerSource=t.answer.kind===`saved`?`saved`:`unavailable`:t.answer.kind!==`saved`&&e.activityIdentity&&T({runId:t.runId,sessionId:t.sessionId,scope:e.activityIdentity.scope,message:n,cacheScope:t.cacheScope}),de(t.answer.kind===`saved`?t.answer.message.content:null,void 0,t.answer.kind===`saved`?`present`:`absent`,t.runId,t.cacheScope,t.sessionId),At()}}function hn(){se(e.activityIdentity,{terminal:mn,refreshIdentity:()=>Z(`history-identity`,{hydrateRun:!0})}),A(J)}function gn(){let t=on;on=[],an=0;for(let e of t)`event`in e?fn(e.event,e.replay):dn(e.gap);sn&&G&&e.currentAgentDiv&&!v(G)&&ln(G,`Activity is incomplete. Updates were dropped while reconnecting; the final answer remains available separately.`),sn=!1}var X=0,_n=null,vn=0,yn=!1,bn=0,xn=750,Sn=750;async function Cn(t={}){let n=H.beginSnapshot(),i=q,o;try{o=await r(n.path,{method:`GET`},new AbortController().signal,16777216)}catch(e){throw n.isCurrent()&&Y(),n.fail(),e}if(!n.isCurrent())return;n.accept(o?.activityIdentity),J=rn&&e.activityIdentity!==null,ae(e.activityIdentity),_(J),hn(),nn=String(o.orc.scope||``),zn(o.orc.state),jn(o.orc.ctx||null),An(o.heartbeat||{pending:0,deferredPending:0}),kn(o.workers),C(o.runtime.queuePending),he(o.queued||[]),$e(o.queued||[]);let s=Jt(o.activeRun?.traceRunId??null),c=i===q;t.hydrateRun&&c&&!s&&(_e(o.activeRun),tn(o.activeRun),o.activeRun?.running&&o.activeRun.traceRunId&&e.currentAgentDiv&&(e.currentAgentDiv.dataset.traceRunId=o.activeRun.traceRunId,e.activityIdentity&&(e.currentAgentDiv.dataset.messageSessionId=e.activityIdentity.sessionId),y(o.activeRun.traceRunId,e.currentAgentDiv))),Ln(),c&&(o.runtime.busy&&!s?x(`running`):me()||x(`idle`)),J&&gn();let l=document.getElementById(`chatMessages`);l&&ce(l),J&&t.hydrateRun&&e.currentAgentDiv&&G&&(c||v(G)?.degraded)&&O(e.currentAgentDiv,G,!0),a(()=>import(`./employees-CkUqN4oh.js`).then(e=>{typeof e.renderEmployees==`function`&&e.renderEmployees()}),__vite__mapDeps([0]))}function Z(e=`manual`,t={}){let n=Date.now();return t.hydrateRun?Cn(t):_n||(n-vn<xn?Promise.resolve():(vn=n,_n=Cn(t).catch(t=>{throw console.warn(`[ws] orchestrate snapshot sync failed (${e})`,t),t}).finally(()=>{_n=null}),_n))}function wn(e){return e===`iframe-visible`||e===`pageshow`||e===`discard`||e===`visibilitychange`}function Tn(e){h(e),a(()=>import(`./ui-CUB4iwz3.js`).then(async t=>{if(wn(e)&&X>0)try{await t.loadMessages(),X=Date.now()}catch(t){console.warn(`[ws] restore loadMessages failed (${e})`,t)}await Z(e,{hydrateRun:!0})}),__vite__mapDeps([0])).catch(()=>{}).finally(()=>{g(e)})}function En(e){let t=Date.now();!wn(e)&&t-bn<Sn||(bn=t,Tn(e))}function Dn(e){let t=Array.isArray(e.changedKeys)?e.changedKeys:[];if(t.includes(`presentation`)&&a(()=>import(`./presentation-preference-BYEPPRPg.js`).then(e=>e.refreshPresentationSettings()),[]).catch(e=>console.warn(`[ws] presentation refresh failed`,e)),t.includes(`multiSession`)){window.location.reload();return}t.includes(`workingDir`)||t.includes(`projectDirs`)?a(()=>import(`./ui-CUB4iwz3.js`).then(async e=>{try{await e.loadMessages(),X=Date.now()}catch(e){console.warn(`[ws] settings scope loadMessages failed`,e)}await Z(`settings_change`).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`settings_change`))}),__vite__mapDeps([0])):Z(`settings_change`).catch(()=>{}),a(()=>import(`./settings-core-DO_5M7Lv.js`).then(t=>t.refreshHeaderFromSettingsChange(e)),__vite__mapDeps([0])).catch(()=>{})}function On(){yn||(yn=!0,window.addEventListener(`focus`,()=>{En(`focus`)}),window.addEventListener(`pageshow`,e=>{e.persisted&&En(`pageshow`)}),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&En(`visibilitychange`)}),document.addEventListener(`resume`,()=>{En(`resume`)}),`wasDiscarded`in document&&document.wasDiscarded&&En(`discard`),window.addEventListener(`message`,e=>{e.data?.type===`jaw-preview-visibility`&&e.data.visible&&En(`iframe-visible`)}))}function kn(e){for(let e of Object.keys(Ut))delete Ut[e];for(let t of e)t.state===`running`&&t.phase&&(Ut[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``})}function An(t){let n={pending:Number(t?.pending||0),deferredPending:Number(t?.deferredPending||0),...t?.reason?{reason:t.reason}:{},...t?.policy?{policy:t.policy}:{},...t?.jobId?{jobId:t.jobId}:{},...t?.jobName?{jobName:t.jobName}:{}};e.heartbeatRuntime=n;let r=document.getElementById(`pabcHeartbeatStatus`);if(r){if(n.reason===`pabcd_active`&&n.deferredPending>0){let e=n.jobName?`: ${n.jobName}`:``;r.textContent=`heartbeat deferred (${n.deferredPending})${e}`,r.hidden=!1}else r.textContent=``,r.hidden=!0}}function jn(t){e.orcTaskAnchor=String(t?.taskAnchor||``).trim(),e.orcResolvedSelection=t?.resolvedSelection||null;let n=document.getElementById(`pabcTaskAnchor`);n&&(e.orcTaskAnchor?(n.textContent=`anchor: ${e.orcResolvedSelection?.index?`${e.orcResolvedSelection.index}. `:``}${e.orcTaskAnchor}`,n.hidden=!1):(n.textContent=``,n.hidden=!0),Fn(t?.interview||null))}var Mn=(()=>{try{return localStorage.getItem(`jaw:interviewCollapsed`)===`1`}catch{return!1}})();function Nn(e){Mn=e;try{localStorage.setItem(`jaw:interviewCollapsed`,e?`1`:`0`)}catch{}let t=document.getElementById(`interviewPanel`);if(!t)return;t.classList.toggle(`collapsed`,e);let n=t.querySelector(`.iv-toggle`);n&&n.setAttribute(`aria-expanded`,String(!e))}function Pn(e){let t=e=>{switch(e){case`max`:return 1;case`xhigh`:return .8;case`high`:return .6;case`medium`:return .4;default:return .2}},n=e=>{switch(e){case`max`:return`#2196f3`;case`xhigh`:return`#4caf50`;case`high`:return`#8bc34a`;case`medium`:return`#ff9800`;default:return`#f44336`}},r=[t(e.goal),t(e.constraint),t(e.success),t(e.ontology)],i=1-r.reduce((e,t)=>e+t,0)/r.length,a=Object.values(e).every(e=>e===`max`)||i<=.2?`🟢 Ready`:i<=.4?`🟡 Almost`:`🔴 Needs work`,o=(e,r)=>{let i=t(r);return`<div style="display:flex;align-items:center;gap:6px;font-size:12px">
16
16
  <span style="width:70px;color:var(--text-secondary)">${e}</span>
17
17
  <div style="flex:1;height:5px;background:var(--bg-tertiary);border-radius:3px">
18
18
  <div style="width:${i*100}%;height:100%;background:${n(r)};border-radius:3px;transition:width .3s"></div>
@@ -46,4 +46,4 @@ import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-
46
46
  </div>`};n.innerHTML=`<div style="font-size:11px;font-weight:600;margin-bottom:4px;color:var(--text-secondary)">Build Budget</div>
47
47
  ${r(`Workers`,e.spent.workerDispatches,e.maxWorkerDispatches)}
48
48
  ${r(`Self-heal`,e.spent.selfHealRetries,e.maxSelfHealRetries)}
49
- ${r(`Verify`,e.spent.verificationRounds,e.maxVerificationRounds)}`}async function Ln(){try{let t=await fetch(`${n}/api/goal`);if(!t.ok)return;let r=await t.json();r.goal?e.activeGoal={id:r.goal.id,objective:r.goal.objective,status:r.goal.status,createdAt:r.goal.createdAt,updatedAt:r.goal.updatedAt,lastCheckpointSummary:r.goal.lastCheckpoint?.summary,nextAction:r.goal.lastCheckpoint?.nextAction}:e.activeGoal=null,Rn()}catch{}}function Rn(){let t=document.getElementById(`goalCockpit`);if(!t)return;let n=e.activeGoal;if(!n||n.status===`complete`||n.status===`cancelled`){t.hidden=!0,t.innerHTML=``;return}t.hidden=!1,t.replaceChildren();let r=n.status===`paused`?`paused`:n.status===`blocked`?`blocked`:`active`,i=document.createElement(`span`);i.className=`goal-objective`,i.title=n.objective,i.textContent=n.objective;let a=document.createElement(`span`);if(a.className=`goal-status goal-status--${r}`,a.textContent=n.status,t.append(i,a),n.nextAction){let e=document.createElement(`span`);e.className=`goal-next`,e.textContent=n.nextAction,t.append(e)}}function zn(t,n){let r=new Set([`IDLE`,`I`,`P`,`A`,`B`,`C`,`D`]).has(t)?t:`IDLE`;if(e.orcState=r,r===`IDLE`||r===`D`)document.body.removeAttribute(`data-orc-state`),document.body.style.removeProperty(`--orc-glow`);else{document.body.setAttribute(`data-orc-state`,r);let e=`--orc-glow-${r}`,t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();document.body.style.setProperty(`--orc-glow`,t)}document.body.classList.add(`orc-pulse`),setTimeout(()=>document.body.classList.remove(`orc-pulse`),700);let i=document.getElementById(`orcStateBadge`);i&&(i.textContent={IDLE:``,I:`INTERVIEW`,P:`PLAN`,A:`AUDIT`,B:`BUILD`,C:`CHECK`,D:`DONE`}[r],i.style.display=r===`IDLE`?`none`:`inline-block`);let a=document.getElementById(`pabcRoadmap`),o=document.getElementById(`sharkRunner`),s=document.getElementById(`pabcBrand`);if(a&&o){if(!a.dataset.resizeObserved){a.dataset.resizeObserved=`1`,new ResizeObserver(()=>{W&&o.classList.contains(`running`)&&Ht(a,o,W)}).observe(a);let e=0;window.addEventListener(`resize`,()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>{W&&o.classList.contains(`running`)&&Ht(a,o,W)})})}if(r===`IDLE`)a.classList.remove(`visible`,`shimmer-out`),o.classList.remove(`running`),W=null;else if(r===`D`){U.forEach(e=>{let t=document.getElementById(`dot-${e}`);t&&(t.className=`pabc-dot done`,t.setAttribute(`data-phase`,e))});for(let e=0;e<U.length;e++){let t=document.getElementById(`pabc-conn-${e}`);t&&(t.className=`pabc-connector done`)}o.classList.remove(`running`),W=null,a.classList.add(`shimmer-out`),setTimeout(()=>a.classList.remove(`visible`,`shimmer-out`),1e3)}else{a.classList.remove(`shimmer-out`),a.classList.add(`visible`),o.classList.add(`running`);let e=U.indexOf(r);U.forEach((t,n)=>{let r=document.getElementById(`dot-${t}`);r&&(r.className=`pabc-dot ${n<e?`done`:n===e?`active`:`future`}`,r.setAttribute(`data-phase`,t))});for(let t=0;t<U.length;t++){let n=document.getElementById(`pabc-conn-${t}`);n&&(n.className=`pabc-connector ${t<e?`done`:``}`)}W=r,requestAnimationFrame(()=>Ht(a,o,r))}s&&n&&(s.textContent=n)}}var Bn=!1,Vn=Promise.resolve(),Hn=0;function Un(){rn=!1,Y(),H.channelChanged(),On(),Bn||(Bn=!0,tr()),$n(),Xe(u())}var Wn=Un;function Gn(e){rn=e===`sse`,Y(),e===`sse`&&H.sseOpened(),console.log(`[${e}] connected`),Zn=2e3,Jn();let t=Date.now()-X<1e4;Vn=a(()=>import(`./ui-BucJ1zMA.js`).then(async n=>{if(n.cleanupToolActivity(),!t)try{await n.loadMessages(),X=Date.now()}catch(t){console.error(`[${e}] loadMessages failed`,t)}await Z(`reconnect`,{hydrateRun:!0}).catch(()=>{}).finally(()=>n.reconcileChatBottomAfterRestore(`reconnect`)),a(()=>import(`./memory-4YH8sz0L.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0])).catch(()=>{}),a(()=>import(`./bgtask-badge-DHA2OQm8.js`).then(e=>e.refreshBgtaskBadge()),__vite__mapDeps([0])).catch(()=>{})}),__vite__mapDeps([0]))}function Kn(){Y(),sn=!0,h(`replay_gap`),Vn=a(()=>import(`./ui-BucJ1zMA.js`).then(async e=>{try{await e.loadMessages(),X=Date.now()}catch(e){console.error(`[sse] replay gap loadMessages failed`,e)}await Z(`replay_gap`,{hydrateRun:!0}).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`replay_gap`))}),__vite__mapDeps([0]))}var qn=8e3,Q=null;function Jn(){Q!==null&&(window.clearTimeout(Q),Q=null)}function Yn(){rn=!1,Y(),H.unavailable(),console.log(`[channel] disconnected`),ge(),Q===null&&(Q=window.setTimeout(()=>{Q=null,x(`idle`),D(`${f.exec} ${s(`ws.disconnected`)}`,`tool-activity`)},qn))}var $=null,Xn=!1,Zn=2e3,Qn=3e4;function $n(){if($){Xn=!0;try{$.close()}catch{}$=null}}function er(){if($)return;console.warn(`[channel] /api/events unavailable — falling back to legacy WebSocket`);let e=`ws://${location.host}`,t=new WebSocket(`${e}${n}/?lang=${u()}`);$=t,Xn=!1,t.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{console.warn(`[ws] malformed message:`,e.data);return}if(!t||typeof t!=`object`||typeof t.type!=`string`){console.warn(`[ws] invalid message shape:`,t);return}nr(t)};let r=!1;t.onopen=()=>{r=!0,Zn=2e3,Gn(`ws`)},t.onclose=()=>{if($===t&&($=null),Xn){Xn=!1;return}if(r){Yn(),setTimeout(Un,2e3);return}Zn=Math.min(Zn*2,Qn),setTimeout(Un,Zn)}}function tr(){qe(`widget`,`widget_updated`,e=>{let t=e.chatId,n=e.widgetId;typeof t==`string`&&typeof n==`string`&&a(()=>import(`./iframe-renderer-RpvBly2x.js`).then(e=>e.refreshFileWidget(t,n)),__vite__mapDeps([0])).catch(e=>console.warn(`[widget] refresh failed:`,e.message))}),qe(`*`,null,e=>{H.event(String(e.event),e),nr({...e,type:e.event})}),We(()=>Gn(`sse`)),Ge(()=>Yn()),Ke(()=>{rn=!1,Y(),H.unavailable(),er()})}function nr(t){if(t.type===`agent_runtime`){let e=ne(t);e&&fn(e,t.sseReplay===!0);return}if(t.type===`agent_runtime_gap`){let e=t,n=P(e);n&&typeof e.runId==`string`&&e.runId.length>0&&e.runId.length<=240&&dn({...n,runId:e.runId});return}if(t.type===`agent_tool`){if(me())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,n=Yt(t.traceSeq);if(Jt(e)||Qt(e,n,t.sseReplay===!0))return;++q,t.isEmployee!==!0&&en(e);let r=t.toolType===`thinking`?`thinking`:t.toolType===`search`?`search`:t.toolType===`subagent`?`subagent`:`tool`;F({id:`step-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:r,icon:t.icon||f.tool,rawIcon:t.rawIcon||t.icon||``,label:t.label||``,isEmployee:t.isEmployee===!0,detail:t.detail||``,stepRef:t.stepRef||``,traceRunId:t.traceRunId||``,traceSeq:t.traceSeq,detailAvailable:t.detailAvailable,detailBytes:t.detailBytes,rawRetentionStatus:t.rawRetentionStatus,status:t.status||`running`,startTime:typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:Date.now()},typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:void 0),Xt(e,n)}else if(t.type===`agent_output`||t.type===`agent_chunk`){if(me())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null;if(Jt(e))return;en(e);let n=t.text||``;if(e&&typeof t.textLen==`number`){if(t.textLen<=K){t.sseReplay!==!0&&t.textLen<K&&(console.warn(`[ws] live agent_output behind applied cursor — resync (${t.textLen} < ${K})`),K=t.textLen);return}let e=t.textLen-K;e<n.length&&(n=n.slice(-e)),K=t.textLen}++q,ve(n)}else if(t.type===`agent_status`){if(!t.running&&me())return;t.running&&me()&&pe(),++q,t.running===void 0?x(t.status||`idle`):x(t.running?`running`:`idle`),t.agentId&&t.phase&&(Ut[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``},a(()=>import(`./employees-CWS3Juca.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0])))}else if(t.type===`bgtask_update`)a(()=>import(`./bgtask-badge-DHA2OQm8.js`).then(e=>e.applyBgtaskUpdate(t)),__vite__mapDeps([0])).catch(()=>{});else if(t.type===`queue_update`)C(t.pending||0),Array.isArray(t.queued)&&$e(t.queued),Z(`queue_update`).catch(()=>{});else if(t.type===`agent_retry`){let e=Number(t.delay??0),n=t.reason,r=o(String(n||`429`));D(s(e>0?`ws.retry`:`ws.retryNow`,{cli:o(t.cli||``),reason:r,delay:e}),`tool-activity`)}else if(t.type===`agent_fallback`)D(s(`ws.fallback`,{from:o(t.from||``),to:o(t.to||``)}),`tool-activity`);else if(t.type===`agent_smoke`)D(`${f.warning} ${o(t.cli||`agent`)}: smoke response detected — auto-continuing`,`tool-activity`);else if(t.type===`goal_done`)e.activeGoal=null,Rn(),D(`🎯 Goal completed${t.source===`ai_output`?` (detected from AI output)`:``}`,`tool-activity`);else if(t.type===`goal_cancel`)e.activeGoal=null,Rn(),D(`🎯 Goal cancelled`,`tool-activity`);else if(t.type===`schedule_wakeup`)D(`⏰ Wakeup scheduled in ${t.delaySeconds}s — ${o(String(t.reason||``))}`,`tool-activity`);else if(t.type===`goal_continuation_limit`)D(`⚠️ Goal continuation limit reached (${t.attempts} attempts)`,`tool-activity`);else if(t.type===`goal_continuation`)D(`🎯 Active goal — auto-continuing`,`tool-activity`);else if(t.type===`agent_done`){if(t.steered===!0){let e=P(t);e&&t.traceRunId&&b({...e,runId:t.traceRunId})}t.steered||me()||pn(t)}else if(t.type===`orchestrate_done`)pn(t);else if(t.type===`clear`){++q,j(),cn(),ae(e.activityIdentity),d(),ge(),m().clear();let t=document.getElementById(`chatMessages`);t&&(t.innerHTML=``),hn(),k(e.activityIdentity?.sessionId??null,new Set),a(()=>import(`./idb-cache-CFBnPfHz.js`).then(e=>e.clearScopedCache()),[]).catch(()=>{})}else if(t.type===`session_reset`)D(`${f.refresh} Session reset — history preserved`,`tool-activity`);else if(t.type===`agent_added`||t.type===`agent_updated`||t.type===`agent_deleted`)a(()=>import(`./employees-CWS3Juca.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0]));else if(t.type===`heartbeat_pending`){let e={pending:t.pending||0,deferredPending:t.deferredPending||0};t.reason!==void 0&&(e.reason=t.reason),t.policy!==void 0&&(e.policy=t.policy),t.jobId!==void 0&&(e.jobId=t.jobId),t.jobName!==void 0&&(e.jobName=t.jobName),An(e)}else if(t.type===`orc_state`)rr(t);else if(t.type===`memory_status`)a(()=>import(`./memory-4YH8sz0L.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0]));else if(t.type===`steer_started`){let e=P(t);if(e&&t.traceRunId&&b({...e,runId:t.traceRunId}),t.mode===`native-input`||t.mode===`cancel-reprompt`||G&&v(G))return;ye(),$t(null),de(``),x(`steering`)}else if(t.type===`new_message`&&(t.source===`telegram`||t.source===`discord`||t.source===`slack`||t.source===`bgtask`||t.source===`cli`||t.source===`goal`||t.external===!0||t.fromQueue===!0)){let e=t.role===`assistant`?`agent`:t.role||`user`,n=t.content||``,r=t.cli;a(()=>import(`./message-history-lVcLpAw8.js`).then(i=>{if(i.historyReloadInFlight()){i.loadMessages().then(()=>i.loadMessages()).catch(e=>console.warn(`[ws] new_message reload after in-flight failed`,e));return}S(e,n,r,{...t.steered===void 0?{}:{steered:t.steered}})}),__vite__mapDeps([0]))}else t.type===`system_notice`?D(`ℹ️ ${o(t.text||``)}`,`tool-activity`):t.type===`replay_gap`?Kn():t.type===`worker_stalled`?D(`⚠️ Worker stalled: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`steer_context_lost`?D(`⚠️ 이전 턴의 진행 내용을 살리지 못했습니다 — 새 턴은 그 맥락 없이 시작합니다.`,`tool-activity`):t.type===`worker_disconnected`?D(`🔌 Worker disconnected: ${o(t.agentId||``)} (exit ${o(String(t.exitCode??`?`))})`,`tool-activity`):t.type===`worker_timeout`?D(`⏱️ Worker timed out: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`alert_escalation`?D(o(t.message||``),`tool-activity`):t.type===`schedule_wakeup_failed`?D(`⚠️ Wakeup failed — ${o(String(t.reason||``))}: ${o(String(t.error||``))}`,`tool-activity`):t.type===`goal_continuation_failed`?D(`⚠️ Goal continuation failed: ${o(String(t.error||``))}`,`tool-activity`):t.type===`settings_change`?Dn(t):t.type===`session_list`?c(t):(t.type===`session_switched`||t.type===`session_created`)&&(j(),Y(),cn(),H.invalidateIdentity(),window.location.reload())}function rr(e){let t=++Hn;Vn.then(()=>{t===Hn&&Mt(e.scope,nn)&&(zn(typeof e.state==`string`?e.state:`IDLE`,e.title),jn({taskAnchor:e.taskAnchor||null,resolvedSelection:e.resolvedSelection||null,interview:e.interview||null}),In(e.buildBudget||null,typeof e.state==`string`?e.state:`IDLE`))})}function ir(e){return Ut[e]||null}var ar=`sidebarState`,or=900,sr=768;function cr(){return window.innerWidth<=sr}function lr(){document.body.classList.remove(`left-expanded`,`right-expanded`)}function ur(e){let t=`${e}-expanded`,n=e===`left`?`right-expanded`:`left-expanded`,r=!document.body.classList.contains(t);document.body.classList.remove(n),document.body.classList.toggle(t,r)}function dr(){let e={};try{e=JSON.parse(localStorage.getItem(ar)||`{}`)}catch{}e.left&&document.body.classList.add(`left-collapsed`),e.right&&document.body.classList.add(`right-collapsed`);let t=cr();document.getElementById(`toggleLeft`)?.addEventListener(`click`,pr),document.getElementById(`toggleRight`)?.addEventListener(`click`,mr),window.addEventListener(`resize`,()=>{let e=cr();if(window.innerWidth>or){lr();let e={};try{e=JSON.parse(localStorage.getItem(ar)||`{}`)}catch{}document.body.classList.toggle(`left-collapsed`,!!e.left),document.body.classList.toggle(`right-collapsed`,!!e.right)}else document.body.classList.remove(`left-collapsed`,`right-collapsed`),e!==t&&lr();t=e,_r()}),window.innerWidth<=or&&(document.body.classList.remove(`left-collapsed`,`right-collapsed`),cr()&&lr()),_r()}function fr(){return window.innerWidth<=or}function pr(){fr()?ur(`left`):document.body.classList.toggle(`left-collapsed`),vr(),_r()}function mr(){fr()?ur(`right`):document.body.classList.toggle(`right-collapsed`),gr()&&document.getElementById(`tabAgents`)?.classList.contains(`active`)&&a(()=>import(`./employees-CWS3Juca.js`).then(e=>e.loadEmployees(!0)),__vite__mapDeps([0])),vr(),_r()}function hr(){return fr()?document.body.classList.contains(`left-expanded`):!document.body.classList.contains(`left-collapsed`)}function gr(){return fr()?document.body.classList.contains(`right-expanded`):!document.body.classList.contains(`right-collapsed`)}function _r(){let e=document.getElementById(`toggleLeft`),t=document.getElementById(`toggleRight`);e&&(e.innerHTML=hr()?f.chevronLeft:f.chevronRight),t&&(t.innerHTML=gr()?f.chevronRight:f.chevronLeft)}function vr(){localStorage.setItem(ar,JSON.stringify({left:document.body.classList.contains(`left-collapsed`),right:document.body.classList.contains(`right-collapsed`)}))}export{Un as a,Z as c,ut as d,Me as f,mr as i,jt as l,gr as n,ir as o,pr as r,Wn as s,dr as t,kt as u};
49
+ ${r(`Verify`,e.spent.verificationRounds,e.maxVerificationRounds)}`}async function Ln(){try{let t=await fetch(`${n}/api/goal`);if(!t.ok)return;let r=await t.json();r.goal?e.activeGoal={id:r.goal.id,objective:r.goal.objective,status:r.goal.status,createdAt:r.goal.createdAt,updatedAt:r.goal.updatedAt,lastCheckpointSummary:r.goal.lastCheckpoint?.summary,nextAction:r.goal.lastCheckpoint?.nextAction}:e.activeGoal=null,Rn()}catch{}}function Rn(){let t=document.getElementById(`goalCockpit`);if(!t)return;let n=e.activeGoal;if(!n||n.status===`complete`||n.status===`cancelled`){t.hidden=!0,t.innerHTML=``;return}t.hidden=!1,t.replaceChildren();let r=n.status===`paused`?`paused`:n.status===`blocked`?`blocked`:`active`,i=document.createElement(`span`);i.className=`goal-objective`,i.title=n.objective,i.textContent=n.objective;let a=document.createElement(`span`);if(a.className=`goal-status goal-status--${r}`,a.textContent=n.status,t.append(i,a),n.nextAction){let e=document.createElement(`span`);e.className=`goal-next`,e.textContent=n.nextAction,t.append(e)}}function zn(t,n){let r=new Set([`IDLE`,`I`,`P`,`A`,`B`,`C`,`D`]).has(t)?t:`IDLE`;if(e.orcState=r,r===`IDLE`||r===`D`)document.body.removeAttribute(`data-orc-state`),document.body.style.removeProperty(`--orc-glow`);else{document.body.setAttribute(`data-orc-state`,r);let e=`--orc-glow-${r}`,t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();document.body.style.setProperty(`--orc-glow`,t)}document.body.classList.add(`orc-pulse`),setTimeout(()=>document.body.classList.remove(`orc-pulse`),700);let i=document.getElementById(`orcStateBadge`);i&&(i.textContent={IDLE:``,I:`INTERVIEW`,P:`PLAN`,A:`AUDIT`,B:`BUILD`,C:`CHECK`,D:`DONE`}[r],i.style.display=r===`IDLE`?`none`:`inline-block`);let a=document.getElementById(`pabcRoadmap`),o=document.getElementById(`sharkRunner`),s=document.getElementById(`pabcBrand`);if(a&&o){if(!a.dataset.resizeObserved){a.dataset.resizeObserved=`1`,new ResizeObserver(()=>{W&&o.classList.contains(`running`)&&Ht(a,o,W)}).observe(a);let e=0;window.addEventListener(`resize`,()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>{W&&o.classList.contains(`running`)&&Ht(a,o,W)})})}if(r===`IDLE`)a.classList.remove(`visible`,`shimmer-out`),o.classList.remove(`running`),W=null;else if(r===`D`){U.forEach(e=>{let t=document.getElementById(`dot-${e}`);t&&(t.className=`pabc-dot done`,t.setAttribute(`data-phase`,e))});for(let e=0;e<U.length;e++){let t=document.getElementById(`pabc-conn-${e}`);t&&(t.className=`pabc-connector done`)}o.classList.remove(`running`),W=null,a.classList.add(`shimmer-out`),setTimeout(()=>a.classList.remove(`visible`,`shimmer-out`),1e3)}else{a.classList.remove(`shimmer-out`),a.classList.add(`visible`),o.classList.add(`running`);let e=U.indexOf(r);U.forEach((t,n)=>{let r=document.getElementById(`dot-${t}`);r&&(r.className=`pabc-dot ${n<e?`done`:n===e?`active`:`future`}`,r.setAttribute(`data-phase`,t))});for(let t=0;t<U.length;t++){let n=document.getElementById(`pabc-conn-${t}`);n&&(n.className=`pabc-connector ${t<e?`done`:``}`)}W=r,requestAnimationFrame(()=>Ht(a,o,r))}s&&n&&(s.textContent=n)}}var Bn=!1,Vn=Promise.resolve(),Hn=0;function Un(){rn=!1,Y(),H.channelChanged(),On(),Bn||(Bn=!0,tr()),$n(),Xe(u())}var Wn=Un;function Gn(e){rn=e===`sse`,Y(),e===`sse`&&H.sseOpened(),console.log(`[${e}] connected`),Zn=2e3,Jn();let t=Date.now()-X<1e4;Vn=a(()=>import(`./ui-CUB4iwz3.js`).then(async n=>{if(n.cleanupToolActivity(),!t)try{await n.loadMessages(),X=Date.now()}catch(t){console.error(`[${e}] loadMessages failed`,t)}await Z(`reconnect`,{hydrateRun:!0}).catch(()=>{}).finally(()=>n.reconcileChatBottomAfterRestore(`reconnect`)),a(()=>import(`./memory-Ckp1Eq5a.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0])).catch(()=>{}),a(()=>import(`./bgtask-badge-DeSZJGNN.js`).then(e=>e.refreshBgtaskBadge()),__vite__mapDeps([0])).catch(()=>{})}),__vite__mapDeps([0]))}function Kn(){Y(),sn=!0,h(`replay_gap`),Vn=a(()=>import(`./ui-CUB4iwz3.js`).then(async e=>{try{await e.loadMessages(),X=Date.now()}catch(e){console.error(`[sse] replay gap loadMessages failed`,e)}await Z(`replay_gap`,{hydrateRun:!0}).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`replay_gap`))}),__vite__mapDeps([0]))}var qn=8e3,Q=null;function Jn(){Q!==null&&(window.clearTimeout(Q),Q=null)}function Yn(){rn=!1,Y(),H.unavailable(),console.log(`[channel] disconnected`),ge(),Q===null&&(Q=window.setTimeout(()=>{Q=null,x(`idle`),D(`${f.exec} ${s(`ws.disconnected`)}`,`tool-activity`)},qn))}var $=null,Xn=!1,Zn=2e3,Qn=3e4;function $n(){if($){Xn=!0;try{$.close()}catch{}$=null}}function er(){if($)return;console.warn(`[channel] /api/events unavailable — falling back to legacy WebSocket`);let e=`ws://${location.host}`,t=new WebSocket(`${e}${n}/?lang=${u()}`);$=t,Xn=!1,t.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{console.warn(`[ws] malformed message:`,e.data);return}if(!t||typeof t!=`object`||typeof t.type!=`string`){console.warn(`[ws] invalid message shape:`,t);return}nr(t)};let r=!1;t.onopen=()=>{r=!0,Zn=2e3,Gn(`ws`)},t.onclose=()=>{if($===t&&($=null),Xn){Xn=!1;return}if(r){Yn(),setTimeout(Un,2e3);return}Zn=Math.min(Zn*2,Qn),setTimeout(Un,Zn)}}function tr(){qe(`widget`,`widget_updated`,e=>{let t=e.chatId,n=e.widgetId;typeof t==`string`&&typeof n==`string`&&a(()=>import(`./iframe-renderer-DfvACXIn.js`).then(e=>e.refreshFileWidget(t,n)),__vite__mapDeps([0])).catch(e=>console.warn(`[widget] refresh failed:`,e.message))}),qe(`*`,null,e=>{H.event(String(e.event),e),nr({...e,type:e.event})}),We(()=>Gn(`sse`)),Ge(()=>Yn()),Ke(()=>{rn=!1,Y(),H.unavailable(),er()})}function nr(t){if(t.type===`agent_runtime`){let e=ne(t);e&&fn(e,t.sseReplay===!0);return}if(t.type===`agent_runtime_gap`){let e=t,n=P(e);n&&typeof e.runId==`string`&&e.runId.length>0&&e.runId.length<=240&&dn({...n,runId:e.runId});return}if(t.type===`agent_tool`){if(me())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,n=Yt(t.traceSeq);if(Jt(e)||Qt(e,n,t.sseReplay===!0))return;++q,t.isEmployee!==!0&&en(e);let r=t.toolType===`thinking`?`thinking`:t.toolType===`search`?`search`:t.toolType===`subagent`?`subagent`:`tool`;F({id:`step-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:r,icon:t.icon||f.tool,rawIcon:t.rawIcon||t.icon||``,label:t.label||``,isEmployee:t.isEmployee===!0,detail:t.detail||``,stepRef:t.stepRef||``,traceRunId:t.traceRunId||``,traceSeq:t.traceSeq,detailAvailable:t.detailAvailable,detailBytes:t.detailBytes,rawRetentionStatus:t.rawRetentionStatus,status:t.status||`running`,startTime:typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:Date.now()},typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:void 0),Xt(e,n)}else if(t.type===`agent_output`||t.type===`agent_chunk`){if(me())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null;if(Jt(e))return;en(e);let n=t.text||``;if(e&&typeof t.textLen==`number`){if(t.textLen<=K){t.sseReplay!==!0&&t.textLen<K&&(console.warn(`[ws] live agent_output behind applied cursor — resync (${t.textLen} < ${K})`),K=t.textLen);return}let e=t.textLen-K;e<n.length&&(n=n.slice(-e)),K=t.textLen}++q,ve(n)}else if(t.type===`agent_status`){if(!t.running&&me())return;t.running&&me()&&pe(),++q,t.running===void 0?x(t.status||`idle`):x(t.running?`running`:`idle`),t.agentId&&t.phase&&(Ut[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``},a(()=>import(`./employees-CkUqN4oh.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0])))}else if(t.type===`bgtask_update`)a(()=>import(`./bgtask-badge-DeSZJGNN.js`).then(e=>e.applyBgtaskUpdate(t)),__vite__mapDeps([0])).catch(()=>{});else if(t.type===`queue_update`)C(t.pending||0),Array.isArray(t.queued)&&$e(t.queued),Z(`queue_update`).catch(()=>{});else if(t.type===`agent_retry`){let e=Number(t.delay??0),n=t.reason,r=o(String(n||`429`));D(s(e>0?`ws.retry`:`ws.retryNow`,{cli:o(t.cli||``),reason:r,delay:e}),`tool-activity`)}else if(t.type===`agent_fallback`)D(s(`ws.fallback`,{from:o(t.from||``),to:o(t.to||``)}),`tool-activity`);else if(t.type===`agent_smoke`)D(`${f.warning} ${o(t.cli||`agent`)}: smoke response detected — auto-continuing`,`tool-activity`);else if(t.type===`goal_done`)e.activeGoal=null,Rn(),D(`🎯 Goal completed${t.source===`ai_output`?` (detected from AI output)`:``}`,`tool-activity`);else if(t.type===`goal_cancel`)e.activeGoal=null,Rn(),D(`🎯 Goal cancelled`,`tool-activity`);else if(t.type===`schedule_wakeup`)D(`⏰ Wakeup scheduled in ${t.delaySeconds}s — ${o(String(t.reason||``))}`,`tool-activity`);else if(t.type===`goal_continuation_limit`)D(`⚠️ Goal continuation limit reached (${t.attempts} attempts)`,`tool-activity`);else if(t.type===`goal_continuation`)D(`🎯 Active goal — auto-continuing`,`tool-activity`);else if(t.type===`agent_done`){if(t.steered===!0){let e=P(t);e&&t.traceRunId&&b({...e,runId:t.traceRunId})}t.steered||me()||pn(t)}else if(t.type===`orchestrate_done`)pn(t);else if(t.type===`clear`){++q,j(),cn(),ae(e.activityIdentity),d(),ge(),m().clear();let t=document.getElementById(`chatMessages`);t&&(t.innerHTML=``),hn(),k(e.activityIdentity?.sessionId??null,new Set),a(()=>import(`./idb-cache-CFBnPfHz.js`).then(e=>e.clearScopedCache()),[]).catch(()=>{})}else if(t.type===`session_reset`)D(`${f.refresh} Session reset — history preserved`,`tool-activity`);else if(t.type===`agent_added`||t.type===`agent_updated`||t.type===`agent_deleted`)a(()=>import(`./employees-CkUqN4oh.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0]));else if(t.type===`heartbeat_pending`){let e={pending:t.pending||0,deferredPending:t.deferredPending||0};t.reason!==void 0&&(e.reason=t.reason),t.policy!==void 0&&(e.policy=t.policy),t.jobId!==void 0&&(e.jobId=t.jobId),t.jobName!==void 0&&(e.jobName=t.jobName),An(e)}else if(t.type===`orc_state`)rr(t);else if(t.type===`memory_status`)a(()=>import(`./memory-Ckp1Eq5a.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0]));else if(t.type===`steer_started`){let e=P(t);if(e&&t.traceRunId&&b({...e,runId:t.traceRunId}),t.mode===`native-input`||t.mode===`cancel-reprompt`||G&&v(G))return;ye(),$t(null),de(``),x(`steering`)}else if(t.type===`new_message`&&(t.source===`telegram`||t.source===`discord`||t.source===`slack`||t.source===`bgtask`||t.source===`cli`||t.source===`goal`||t.external===!0||t.fromQueue===!0)){let e=t.role===`assistant`?`agent`:t.role||`user`,n=t.content||``,r=t.cli;a(()=>import(`./message-history-Bv0l_t7O.js`).then(i=>{if(i.historyReloadInFlight()){i.loadMessages().then(()=>i.loadMessages()).catch(e=>console.warn(`[ws] new_message reload after in-flight failed`,e));return}S(e,n,r,{...t.steered===void 0?{}:{steered:t.steered}})}),__vite__mapDeps([0]))}else t.type===`system_notice`?D(`ℹ️ ${o(t.text||``)}`,`tool-activity`):t.type===`replay_gap`?Kn():t.type===`worker_stalled`?D(`⚠️ Worker stalled: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`steer_context_lost`?D(`⚠️ 이전 턴의 진행 내용을 살리지 못했습니다 — 새 턴은 그 맥락 없이 시작합니다.`,`tool-activity`):t.type===`worker_disconnected`?D(`🔌 Worker disconnected: ${o(t.agentId||``)} (exit ${o(String(t.exitCode??`?`))})`,`tool-activity`):t.type===`worker_timeout`?D(`⏱️ Worker timed out: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`alert_escalation`?D(o(t.message||``),`tool-activity`):t.type===`schedule_wakeup_failed`?D(`⚠️ Wakeup failed — ${o(String(t.reason||``))}: ${o(String(t.error||``))}`,`tool-activity`):t.type===`goal_continuation_failed`?D(`⚠️ Goal continuation failed: ${o(String(t.error||``))}`,`tool-activity`):t.type===`settings_change`?Dn(t):t.type===`session_list`?c(t):(t.type===`session_switched`||t.type===`session_created`)&&(j(),Y(),cn(),H.invalidateIdentity(),window.location.reload())}function rr(e){let t=++Hn;Vn.then(()=>{t===Hn&&Mt(e.scope,nn)&&(zn(typeof e.state==`string`?e.state:`IDLE`,e.title),jn({taskAnchor:e.taskAnchor||null,resolvedSelection:e.resolvedSelection||null,interview:e.interview||null}),In(e.buildBudget||null,typeof e.state==`string`?e.state:`IDLE`))})}function ir(e){return Ut[e]||null}var ar=`sidebarState`,or=900,sr=768;function cr(){return window.innerWidth<=sr}function lr(){document.body.classList.remove(`left-expanded`,`right-expanded`)}function ur(e){let t=`${e}-expanded`,n=e===`left`?`right-expanded`:`left-expanded`,r=!document.body.classList.contains(t);document.body.classList.remove(n),document.body.classList.toggle(t,r)}function dr(){let e={};try{e=JSON.parse(localStorage.getItem(ar)||`{}`)}catch{}e.left&&document.body.classList.add(`left-collapsed`),e.right&&document.body.classList.add(`right-collapsed`);let t=cr();document.getElementById(`toggleLeft`)?.addEventListener(`click`,pr),document.getElementById(`toggleRight`)?.addEventListener(`click`,mr),window.addEventListener(`resize`,()=>{let e=cr();if(window.innerWidth>or){lr();let e={};try{e=JSON.parse(localStorage.getItem(ar)||`{}`)}catch{}document.body.classList.toggle(`left-collapsed`,!!e.left),document.body.classList.toggle(`right-collapsed`,!!e.right)}else document.body.classList.remove(`left-collapsed`,`right-collapsed`),e!==t&&lr();t=e,_r()}),window.innerWidth<=or&&(document.body.classList.remove(`left-collapsed`,`right-collapsed`),cr()&&lr()),_r()}function fr(){return window.innerWidth<=or}function pr(){fr()?ur(`left`):document.body.classList.toggle(`left-collapsed`),vr(),_r()}function mr(){fr()?ur(`right`):document.body.classList.toggle(`right-collapsed`),gr()&&document.getElementById(`tabAgents`)?.classList.contains(`active`)&&a(()=>import(`./employees-CkUqN4oh.js`).then(e=>e.loadEmployees(!0)),__vite__mapDeps([0])),vr(),_r()}function hr(){return fr()?document.body.classList.contains(`left-expanded`):!document.body.classList.contains(`left-collapsed`)}function gr(){return fr()?document.body.classList.contains(`right-expanded`):!document.body.classList.contains(`right-collapsed`)}function _r(){let e=document.getElementById(`toggleLeft`),t=document.getElementById(`toggleRight`);e&&(e.innerHTML=hr()?f.chevronLeft:f.chevronRight),t&&(t.innerHTML=gr()?f.chevronRight:f.chevronLeft)}function vr(){localStorage.setItem(ar,JSON.stringify({left:document.body.classList.contains(`left-collapsed`),right:document.body.classList.contains(`right-collapsed`)}))}export{Un as a,Z as c,ut as d,Me as f,mr as i,jt as l,gr as n,ir as o,pr as r,Wn as s,dr as t,kt as u};
@@ -0,0 +1 @@
1
+ import{n as e}from"./skills-abLMqY5_.js";export{e as loadSkills};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./state-Dl-xxPoS.js";import{i as t}from"./api-CUtiCd2-.js";import{A as n,O as r,P as i}from"./render-DP8SJtdZ.js";import{a,t as o}from"./icons-CVkqyECl.js";var s=[`productivity`,`communication`,`devtools`,`ai-media`,`utility`,`smarthome`,`automation`];function c(e,t){return!t||[e.id,e.name,e.description,e.category,e.requires?.env?.join(` `),e.requires?.bins?.join(` `),e.install].filter(Boolean).join(` `).toLowerCase().includes(t)}async function l(){try{let t=await n(`/api/skills`);e.allSkills=await t.json(),u()}catch{let e=document.getElementById(`skillsList`);e&&(e.innerHTML=`<div style="color:var(--text-dim);font-size:11px">${i(`skill.loadFail`)}</div>`)}}function u(){let t=document.getElementById(`skillsList`),n=document.getElementById(`skillsCount`);if(!t||!n)return;let l=e.allSkills,u=l;e.currentSkillFilter===`installed`?u=l.filter(e=>e.enabled):e.currentSkillFilter===`other`?u=l.filter(e=>!s.includes(e.category||``)):e.currentSkillFilter!==`all`&&(u=l.filter(t=>t.category===e.currentSkillFilter));let d=e.currentSkillSearch.trim().toLowerCase();u=u.filter(e=>c(e,d));let f=l.filter(e=>e.enabled).length;if(n.textContent=d?i(`skill.countFiltered`,{shown:u.length,active:f,total:l.length}):i(`skill.count`,{active:f,total:l.length}),!u.length){t.innerHTML=`<div class="skill-empty">${r(i(`skill.search.empty`))}</div>`;return}t.innerHTML=u.map(e=>{let t=[];return e.requires?.env&&t.push(`${o.key} `+e.requires.env.map(e=>r(e)).join(`, `)),e.requires?.bins&&t.push(`${o.settings} `+e.requires.bins.map(e=>r(e)).join(`, `)),e.install&&t.push(r(e.install)),`
1
+ import{t as e}from"./state-Dl-xxPoS.js";import{i as t}from"./api-CUtiCd2-.js";import{A as n,O as r,P as i}from"./render-DUGqq9Mu.js";import{a,t as o}from"./icons-CVkqyECl.js";var s=[`productivity`,`communication`,`devtools`,`ai-media`,`utility`,`smarthome`,`automation`];function c(e,t){return!t||[e.id,e.name,e.description,e.category,e.requires?.env?.join(` `),e.requires?.bins?.join(` `),e.install].filter(Boolean).join(` `).toLowerCase().includes(t)}async function l(){try{let t=await n(`/api/skills`);e.allSkills=await t.json(),u()}catch{let e=document.getElementById(`skillsList`);e&&(e.innerHTML=`<div style="color:var(--text-dim);font-size:11px">${i(`skill.loadFail`)}</div>`)}}function u(){let t=document.getElementById(`skillsList`),n=document.getElementById(`skillsCount`);if(!t||!n)return;let l=e.allSkills,u=l;e.currentSkillFilter===`installed`?u=l.filter(e=>e.enabled):e.currentSkillFilter===`other`?u=l.filter(e=>!s.includes(e.category||``)):e.currentSkillFilter!==`all`&&(u=l.filter(t=>t.category===e.currentSkillFilter));let d=e.currentSkillSearch.trim().toLowerCase();u=u.filter(e=>c(e,d));let f=l.filter(e=>e.enabled).length;if(n.textContent=d?i(`skill.countFiltered`,{shown:u.length,active:f,total:l.length}):i(`skill.count`,{active:f,total:l.length}),!u.length){t.innerHTML=`<div class="skill-empty">${r(i(`skill.search.empty`))}</div>`;return}t.innerHTML=u.map(e=>{let t=[];return e.requires?.env&&t.push(`${o.key} `+e.requires.env.map(e=>r(e)).join(`, `)),e.requires?.bins&&t.push(`${o.settings} `+e.requires.bins.map(e=>r(e)).join(`, `)),e.install&&t.push(r(e.install)),`
2
2
  <div class="skill-card ${e.enabled?`enabled`:``}">
3
3
  <div class="skill-card-header">
4
4
  <span class="skill-emoji">${e.emoji?a(e.emoji):o.tool}</span>
@@ -0,0 +1 @@
1
+ import{a as e}from"./slash-commands-D8o9pqOS.js";export{e as loadCommands};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./api-CUtiCd2-.js";import{O as t,P as n}from"./render-DP8SJtdZ.js";import{t as r}from"./locale-B9w_kUtW.js";var i={activeCli:o(`activeCli`,2,1,2,2,1,3),model:o(`model`,2,1,1,2,1,2),effort:o(`effort`,2,1,1),permissions:o(`permissions`,2,1,1),flushAgent:o(`flushAgent`,2,1,1,2,1,3),employees:o(`employees`,3,3,2,4,1,2),skills:o(`skills`,2,1,1,4,1,3),activeChannel:o(`activeChannel`,2,1,1),telegram:{...o(`telegram`,2,1,2,8),docLinks:[{url:`https://t.me/BotFather`,labelKey:`help.telegram.link.botfather`},{url:`https://core.telegram.org/bots/tutorial`,labelKey:`help.telegram.link.docs`}]},discord:{...o(`discord`,2,1,2,9),docLinks:[{url:`https://discord.com/developers/applications`,labelKey:`help.discord.link.portal`},{url:`https://discord.com/developers/docs/getting-started`,labelKey:`help.discord.link.docs`}]},slack:{...o(`slack`,2,1,2,9),docLinks:[{url:`https://api.slack.com/apps`,labelKey:`help.slack.link.portal`},{url:`https://docs.slack.dev/apis/events-api/using-socket-mode/`,labelKey:`help.slack.link.docs`}]},fallbackOrder:o(`fallbackOrder`,2,1,1,2,1,3),mcp:o(`mcp`,2,1,1,4,1,5),memory:o(`memory`,2,1,2,4,1,2),stt:o(`stt`,2,1,1),promptTemplates:o(`promptTemplates`,2,1,1),chatInput:o(`chatInput`,3,2,2),orchestration:o(`orchestration`,3,2,2,8,1,8),attachments:o(`attachments`,3,2,2),diagrams:o(`diagrams`,3,2,2),keyboardShortcuts:o(`keyboardShortcuts`,3,2,2,3,2,3),session:o(`session`,3,1,2,8,1,9),cliTools:o(`cliTools`,3,1,2,6,1,9),agentControl:o(`agentControl`,3,1,2,6,1,6),goals:o(`goals`,3,1,2,10,1,25)};function a(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(i,e)}function o(e,t,n,r,i=2,a=1,o=0){return{titleKey:`help.${e}.title`,introKey:`help.${e}.intro`,effectKey:`help.${e}.effect`,useWhenKeys:s(`help.${e}.use`,t),howToKeys:s(`help.${e}.howTo`,i),exampleKeys:s(`help.${e}.example`,a),avoidWhenKeys:s(`help.${e}.avoid`,n),relatedKeys:s(`help.${e}.related`,r),...o>0?{subcmdKeys:s(`help.${e}.subcmd`,o)}:{}}}function s(e,t){return Array.from({length:t},(t,n)=>`${e}.${n+1}`)}var c=!1,l=null,u=null,d=null,f=null,p=null,m=!1;function h(){c||(c=!0,document.addEventListener(`click`,v),document.addEventListener(`keydown`,y,!0))}function g(e,t=null,n=[e]){if(!i[e]){console.warn(`[help-dialog] unknown topic:`,e);return}b(),p=t,x(e,T(n,e)),l?.classList.add(`open`),l?.setAttribute(`aria-hidden`,`false`),m=!0,requestAnimationFrame(()=>f?.focus())}function _(){if(!m)return;l?.classList.remove(`open`),l?.setAttribute(`aria-hidden`,`true`),m=!1;let e=p;p=null,e?.focus()}function v(e){let t=e.target?.closest(`[data-help-topic]`);if(!t)return;let n=t.getAttribute(`data-help-topic`);if(!a(n)){console.warn(`[help-dialog] invalid topic:`,n);return}e.preventDefault(),g(n,t,w(t.getAttribute(`data-help-topics`),n))}function y(e){m&&e.key===`Escape`&&(e.preventDefault(),e.stopImmediatePropagation(),_())}function b(){if(l&&u&&d&&f)return;l=document.createElement(`div`),l.id=`helpDialog`,l.className=`modal-overlay help-dialog-overlay`,l.setAttribute(`role`,`presentation`),l.setAttribute(`aria-hidden`,`true`),l.addEventListener(`click`,e=>{e.target===l&&_()});let e=document.createElement(`div`);e.className=`modal-box help-dialog-box`,e.setAttribute(`role`,`dialog`),e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-labelledby`,`helpDialogTitle`),e.addEventListener(`click`,e=>e.stopPropagation());let t=document.createElement(`div`);t.className=`modal-header help-dialog-header`,u=document.createElement(`span`),u.id=`helpDialogTitle`,f=document.createElement(`button`),f.type=`button`,f.className=`btn-modal-close help-dialog-close`,f.setAttribute(`aria-label`,n(`help.close`)),f.textContent=`x`,f.addEventListener(`click`,()=>_()),d=document.createElement(`div`),d.className=`help-dialog-body`;let r=document.createElement(`div`);r.className=`modal-footer help-dialog-footer`;let i=document.createElement(`button`);i.type=`button`,i.className=`btn-save help-dialog-done`,i.textContent=n(`help.close`),i.addEventListener(`click`,()=>_()),t.append(u,f),r.append(i),e.append(t,d,r),l.append(e),document.body.append(l)}function x(e,t=[e]){if(!u||!d||!f)return;let r=i[e];u.textContent=n(r.titleKey),f.setAttribute(`aria-label`,n(`help.close`)),d.replaceChildren();let a=document.createElement(`div`);if(a.className=`help-dialog-content`,S(a,r),t.length<=1){d.append(a);return}let o=document.createElement(`div`);o.className=`help-dialog-layout`,o.append(C(t,e),a),d.append(o)}function S(e,t){t.docLinks?.length&&E(e,t.docLinks),D(e,n(`help.section.what`),n(t.introKey)),D(e,n(`help.section.effect`),n(t.effectKey),`help-effect-text`),O(e,n(`help.section.useWhen`),t.useWhenKeys),A(e,n(`help.section.howTo`),t.howToKeys),O(e,n(`help.section.example`),t.exampleKeys,!1,`help-example-list`),t.avoidWhenKeys?.length&&O(e,n(`help.section.avoidWhen`),t.avoidWhenKeys),t.subcmdKeys?.length&&j(e,n(`help.section.commands`),t.subcmdKeys),t.relatedKeys?.length&&O(e,n(`help.section.related`),t.relatedKeys,!0)}function C(e,t){let r=document.createElement(`nav`);r.className=`help-dialog-nav`,r.setAttribute(`aria-label`,n(`help.section.related`));for(let a of e){let o=i[a],s=document.createElement(`button`);s.type=`button`,s.className=`help-dialog-nav-item`,s.textContent=n(o.titleKey),a===t&&(s.classList.add(`active`),s.setAttribute(`aria-current`,`page`)),s.addEventListener(`click`,()=>x(a,e)),r.append(s)}return r}function w(e,t){return T(e?.split(/[\s,]+/).filter(Boolean)??[],t)}function T(e,t){let n=[];for(let t of e)a(t)&&!n.includes(t)&&n.push(t);return n.includes(t)||n.unshift(t),n}function E(e,t){let r=document.createElement(`section`);r.className=`help-dialog-section help-doc-links`;let i=document.createElement(`nav`);i.className=`help-doc-links-nav`;for(let e of t){let t=document.createElement(`a`);t.href=e.url,t.target=`_blank`,t.rel=`noopener noreferrer`,t.className=`help-doc-link`,t.textContent=n(e.labelKey);let r=document.createElement(`span`);r.className=`help-doc-link-icon`,r.textContent=`↗`,t.append(r),i.append(t)}r.append(i),e.append(r)}function D(e,t,n,r){let i=k(t),a=document.createElement(`p`);r&&(a.className=r),a.textContent=n,i.append(a),e.append(i)}function O(e,t,r,i=!1,a){let o=k(t),s=document.createElement(`ul`);s.className=a??(i?`help-related-list`:`help-dialog-list`);for(let e of r){let t=document.createElement(`li`);t.textContent=n(e),s.append(t)}o.append(s),e.append(o)}function k(e){let t=document.createElement(`section`);t.className=`help-dialog-section`;let n=document.createElement(`h3`);return n.textContent=e,t.append(n),t}function A(e,t,r){let i=k(t),a=document.createElement(`ol`);a.className=`help-dialog-list help-howto-list`;for(let e of r){let t=document.createElement(`li`);t.textContent=n(e),a.append(t)}i.append(a),e.append(i)}function j(e,t,r){let i=k(t),a=document.createElement(`dl`);a.className=`help-subcmd-list`;for(let e of r){let t=n(e),r=t.indexOf(` — `),i=r>=0?t.slice(0,r):t,o=r>=0?t.slice(r+3):``,s=document.createElement(`dt`);s.className=`help-subcmd-cmd`;let c=document.createElement(`code`);c.textContent=i,s.append(c);let l=document.createElement(`dd`);l.className=`help-subcmd-desc`,l.textContent=o,a.append(s,l)}i.append(a),e.append(i)}var M={mcp:`mcp`,memory:`memory`,model:`model`,effort:`effort`,cli:`activeCli`,skill:`skills`,employee:`employees`,orchestrate:`orchestration`,pabcd:`orchestration`,flush:`flushAgent`,fallback:`fallbackOrder`,prompt:`promptTemplates`,browser:`mcp`,status:`activeCli`,steer:`chatInput`,clear:`session`,compact:`session`,reset:`session`,purge:`session`,new:`session`,switch:`session`,sw:`session`,sessions:`session`,ss:`session`,version:`cliTools`,project:`cliTools`,proj:`cliTools`,ide:`cliTools`,file:`cliTools`,forward:`agentControl`,thought:`agentControl`,goal:`goals`,goalplan:`goals`,gd:`goals`,plan:`goals`,interview:`goals`,deliberate:`goals`,planaudit:`goals`,review:`goals`,search:`mcp`,team:`goals`,task:`goals`,help:`keyboardShortcuts`,h:`keyboardShortcuts`,commands:`keyboardShortcuts`,cmd:`keyboardShortcuts`,fork:`session`,quit:`session`,q:`session`,exit:`session`,telegram:`telegram`,discord:`discord`,slack:`slack`,stt:`stt`,attachments:`attachments`,diagrams:`diagrams`};function N(e){let t=e.replace(/^\//,``).trim().split(/\s+/);if(t.length<2||t[t.length-1].toLowerCase()!==`info`)return!1;let n=M[t[0].toLowerCase()];return n?(g(n),!0):!1}var P=[],F=[],I=-1,L=!1,R=null;function z(e){let t=String(e||``).slice(1).trim().split(/\s+/)[0]||``;return t.includes(`/`)||t.includes(`\\`)}var B=()=>document.getElementById(`cmdDropdown`),V=()=>document.getElementById(`chatInput`);function H(e){let t=String(e||``).toLowerCase();return P.filter(e=>`/${e.name}`.startsWith(t))}function U(e){let t=e.workflow?.workflowArgs||[];return t.length?t.map(e=>e.required?`<${e.name}>`:`[${e.name}]`).join(` `):e.args||``}function W(e){let n=e.workflow;return n?`<span class="cmd-meta">
1
+ import{n as e}from"./api-CUtiCd2-.js";import{O as t,P as n}from"./render-DUGqq9Mu.js";import{t as r}from"./locale-B9w_kUtW.js";var i={activeCli:o(`activeCli`,2,1,2,2,1,3),model:o(`model`,2,1,1,2,1,2),effort:o(`effort`,2,1,1),permissions:o(`permissions`,2,1,1),flushAgent:o(`flushAgent`,2,1,1,2,1,3),employees:o(`employees`,3,3,2,4,1,2),skills:o(`skills`,2,1,1,4,1,3),activeChannel:o(`activeChannel`,2,1,1),telegram:{...o(`telegram`,2,1,2,8),docLinks:[{url:`https://t.me/BotFather`,labelKey:`help.telegram.link.botfather`},{url:`https://core.telegram.org/bots/tutorial`,labelKey:`help.telegram.link.docs`}]},discord:{...o(`discord`,2,1,2,9),docLinks:[{url:`https://discord.com/developers/applications`,labelKey:`help.discord.link.portal`},{url:`https://discord.com/developers/docs/getting-started`,labelKey:`help.discord.link.docs`}]},slack:{...o(`slack`,2,1,2,9),docLinks:[{url:`https://api.slack.com/apps`,labelKey:`help.slack.link.portal`},{url:`https://docs.slack.dev/apis/events-api/using-socket-mode/`,labelKey:`help.slack.link.docs`}]},fallbackOrder:o(`fallbackOrder`,2,1,1,2,1,3),mcp:o(`mcp`,2,1,1,4,1,5),memory:o(`memory`,2,1,2,4,1,2),stt:o(`stt`,2,1,1),promptTemplates:o(`promptTemplates`,2,1,1),chatInput:o(`chatInput`,3,2,2),orchestration:o(`orchestration`,3,2,2,8,1,8),attachments:o(`attachments`,3,2,2),diagrams:o(`diagrams`,3,2,2),keyboardShortcuts:o(`keyboardShortcuts`,3,2,2,3,2,3),session:o(`session`,3,1,2,8,1,9),cliTools:o(`cliTools`,3,1,2,6,1,9),agentControl:o(`agentControl`,3,1,2,6,1,6),goals:o(`goals`,3,1,2,10,1,25)};function a(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(i,e)}function o(e,t,n,r,i=2,a=1,o=0){return{titleKey:`help.${e}.title`,introKey:`help.${e}.intro`,effectKey:`help.${e}.effect`,useWhenKeys:s(`help.${e}.use`,t),howToKeys:s(`help.${e}.howTo`,i),exampleKeys:s(`help.${e}.example`,a),avoidWhenKeys:s(`help.${e}.avoid`,n),relatedKeys:s(`help.${e}.related`,r),...o>0?{subcmdKeys:s(`help.${e}.subcmd`,o)}:{}}}function s(e,t){return Array.from({length:t},(t,n)=>`${e}.${n+1}`)}var c=!1,l=null,u=null,d=null,f=null,p=null,m=!1;function h(){c||(c=!0,document.addEventListener(`click`,v),document.addEventListener(`keydown`,y,!0))}function g(e,t=null,n=[e]){if(!i[e]){console.warn(`[help-dialog] unknown topic:`,e);return}b(),p=t,x(e,T(n,e)),l?.classList.add(`open`),l?.setAttribute(`aria-hidden`,`false`),m=!0,requestAnimationFrame(()=>f?.focus())}function _(){if(!m)return;l?.classList.remove(`open`),l?.setAttribute(`aria-hidden`,`true`),m=!1;let e=p;p=null,e?.focus()}function v(e){let t=e.target?.closest(`[data-help-topic]`);if(!t)return;let n=t.getAttribute(`data-help-topic`);if(!a(n)){console.warn(`[help-dialog] invalid topic:`,n);return}e.preventDefault(),g(n,t,w(t.getAttribute(`data-help-topics`),n))}function y(e){m&&e.key===`Escape`&&(e.preventDefault(),e.stopImmediatePropagation(),_())}function b(){if(l&&u&&d&&f)return;l=document.createElement(`div`),l.id=`helpDialog`,l.className=`modal-overlay help-dialog-overlay`,l.setAttribute(`role`,`presentation`),l.setAttribute(`aria-hidden`,`true`),l.addEventListener(`click`,e=>{e.target===l&&_()});let e=document.createElement(`div`);e.className=`modal-box help-dialog-box`,e.setAttribute(`role`,`dialog`),e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-labelledby`,`helpDialogTitle`),e.addEventListener(`click`,e=>e.stopPropagation());let t=document.createElement(`div`);t.className=`modal-header help-dialog-header`,u=document.createElement(`span`),u.id=`helpDialogTitle`,f=document.createElement(`button`),f.type=`button`,f.className=`btn-modal-close help-dialog-close`,f.setAttribute(`aria-label`,n(`help.close`)),f.textContent=`x`,f.addEventListener(`click`,()=>_()),d=document.createElement(`div`),d.className=`help-dialog-body`;let r=document.createElement(`div`);r.className=`modal-footer help-dialog-footer`;let i=document.createElement(`button`);i.type=`button`,i.className=`btn-save help-dialog-done`,i.textContent=n(`help.close`),i.addEventListener(`click`,()=>_()),t.append(u,f),r.append(i),e.append(t,d,r),l.append(e),document.body.append(l)}function x(e,t=[e]){if(!u||!d||!f)return;let r=i[e];u.textContent=n(r.titleKey),f.setAttribute(`aria-label`,n(`help.close`)),d.replaceChildren();let a=document.createElement(`div`);if(a.className=`help-dialog-content`,S(a,r),t.length<=1){d.append(a);return}let o=document.createElement(`div`);o.className=`help-dialog-layout`,o.append(C(t,e),a),d.append(o)}function S(e,t){t.docLinks?.length&&E(e,t.docLinks),D(e,n(`help.section.what`),n(t.introKey)),D(e,n(`help.section.effect`),n(t.effectKey),`help-effect-text`),O(e,n(`help.section.useWhen`),t.useWhenKeys),A(e,n(`help.section.howTo`),t.howToKeys),O(e,n(`help.section.example`),t.exampleKeys,!1,`help-example-list`),t.avoidWhenKeys?.length&&O(e,n(`help.section.avoidWhen`),t.avoidWhenKeys),t.subcmdKeys?.length&&j(e,n(`help.section.commands`),t.subcmdKeys),t.relatedKeys?.length&&O(e,n(`help.section.related`),t.relatedKeys,!0)}function C(e,t){let r=document.createElement(`nav`);r.className=`help-dialog-nav`,r.setAttribute(`aria-label`,n(`help.section.related`));for(let a of e){let o=i[a],s=document.createElement(`button`);s.type=`button`,s.className=`help-dialog-nav-item`,s.textContent=n(o.titleKey),a===t&&(s.classList.add(`active`),s.setAttribute(`aria-current`,`page`)),s.addEventListener(`click`,()=>x(a,e)),r.append(s)}return r}function w(e,t){return T(e?.split(/[\s,]+/).filter(Boolean)??[],t)}function T(e,t){let n=[];for(let t of e)a(t)&&!n.includes(t)&&n.push(t);return n.includes(t)||n.unshift(t),n}function E(e,t){let r=document.createElement(`section`);r.className=`help-dialog-section help-doc-links`;let i=document.createElement(`nav`);i.className=`help-doc-links-nav`;for(let e of t){let t=document.createElement(`a`);t.href=e.url,t.target=`_blank`,t.rel=`noopener noreferrer`,t.className=`help-doc-link`,t.textContent=n(e.labelKey);let r=document.createElement(`span`);r.className=`help-doc-link-icon`,r.textContent=`↗`,t.append(r),i.append(t)}r.append(i),e.append(r)}function D(e,t,n,r){let i=k(t),a=document.createElement(`p`);r&&(a.className=r),a.textContent=n,i.append(a),e.append(i)}function O(e,t,r,i=!1,a){let o=k(t),s=document.createElement(`ul`);s.className=a??(i?`help-related-list`:`help-dialog-list`);for(let e of r){let t=document.createElement(`li`);t.textContent=n(e),s.append(t)}o.append(s),e.append(o)}function k(e){let t=document.createElement(`section`);t.className=`help-dialog-section`;let n=document.createElement(`h3`);return n.textContent=e,t.append(n),t}function A(e,t,r){let i=k(t),a=document.createElement(`ol`);a.className=`help-dialog-list help-howto-list`;for(let e of r){let t=document.createElement(`li`);t.textContent=n(e),a.append(t)}i.append(a),e.append(i)}function j(e,t,r){let i=k(t),a=document.createElement(`dl`);a.className=`help-subcmd-list`;for(let e of r){let t=n(e),r=t.indexOf(` — `),i=r>=0?t.slice(0,r):t,o=r>=0?t.slice(r+3):``,s=document.createElement(`dt`);s.className=`help-subcmd-cmd`;let c=document.createElement(`code`);c.textContent=i,s.append(c);let l=document.createElement(`dd`);l.className=`help-subcmd-desc`,l.textContent=o,a.append(s,l)}i.append(a),e.append(i)}var M={mcp:`mcp`,memory:`memory`,model:`model`,effort:`effort`,cli:`activeCli`,skill:`skills`,employee:`employees`,orchestrate:`orchestration`,pabcd:`orchestration`,flush:`flushAgent`,fallback:`fallbackOrder`,prompt:`promptTemplates`,browser:`mcp`,status:`activeCli`,steer:`chatInput`,clear:`session`,compact:`session`,reset:`session`,purge:`session`,new:`session`,switch:`session`,sw:`session`,sessions:`session`,ss:`session`,version:`cliTools`,project:`cliTools`,proj:`cliTools`,ide:`cliTools`,file:`cliTools`,forward:`agentControl`,thought:`agentControl`,goal:`goals`,goalplan:`goals`,gd:`goals`,plan:`goals`,interview:`goals`,deliberate:`goals`,planaudit:`goals`,review:`goals`,search:`mcp`,team:`goals`,task:`goals`,help:`keyboardShortcuts`,h:`keyboardShortcuts`,commands:`keyboardShortcuts`,cmd:`keyboardShortcuts`,fork:`session`,quit:`session`,q:`session`,exit:`session`,telegram:`telegram`,discord:`discord`,slack:`slack`,stt:`stt`,attachments:`attachments`,diagrams:`diagrams`};function N(e){let t=e.replace(/^\//,``).trim().split(/\s+/);if(t.length<2||t[t.length-1].toLowerCase()!==`info`)return!1;let n=M[t[0].toLowerCase()];return n?(g(n),!0):!1}var P=[],F=[],I=-1,L=!1,R=null;function z(e){let t=String(e||``).slice(1).trim().split(/\s+/)[0]||``;return t.includes(`/`)||t.includes(`\\`)}var B=()=>document.getElementById(`cmdDropdown`),V=()=>document.getElementById(`chatInput`);function H(e){let t=String(e||``).toLowerCase();return P.filter(e=>`/${e.name}`.startsWith(t))}function U(e){let t=e.workflow?.workflowArgs||[];return t.length?t.map(e=>e.required?`<${e.name}>`:`[${e.name}]`).join(` `):e.args||``}function W(e){let n=e.workflow;return n?`<span class="cmd-meta">
2
2
  <span class="cmd-chip">${t(n.phase)}</span>
3
3
  <span class="cmd-chip cmd-risk-${t(n.risk)}">${t(n.risk)}</span>
4
4
  <span class="cmd-chip">${t(n.output)}</span>
@@ -1,4 +1,4 @@
1
- import{n as e}from"./bounded-api-DdpT93LB.js";import{O as t}from"./render-DP8SJtdZ.js";import{r as n}from"./provider-icons-Det0fC-4.js";var r=80,i=16777216,a=``,o=0,s=0,c=!1,l=null,u=0,d=!1,f=0,p=null,m=null,h=null,g=null,_=null;function v(e){return e.eventType||e.event_type||`event`}function y(e,t=a){return e===f&&t===a}function b(e){return m?e+(e.includes(`?`)?`&`:`?`)+new URLSearchParams({session:m}):e}async function x(t,n){let r=await e(t,{method:`GET`},n,i);if(r&&typeof r==`object`&&`ok`in r){if(r.ok!==!0||!(`data`in r))throw Error(`trace_unavailable`);return r.data}if(!r||typeof r!=`object`)throw Error(`trace_unavailable`);return r}function S(){let e=document.getElementById(`traceDrawerOverlay`);return e||(e=document.createElement(`div`),e.id=`traceDrawerOverlay`,e.className=`trace-drawer-overlay`,e.innerHTML=`<aside class="trace-drawer" role="dialog" aria-modal="true" aria-labelledby="traceDrawerTitle">
1
+ import{n as e}from"./bounded-api-DdpT93LB.js";import{O as t}from"./render-DUGqq9Mu.js";import{r as n}from"./provider-icons-Det0fC-4.js";var r=80,i=16777216,a=``,o=0,s=0,c=!1,l=null,u=0,d=!1,f=0,p=null,m=null,h=null,g=null,_=null;function v(e){return e.eventType||e.event_type||`event`}function y(e,t=a){return e===f&&t===a}function b(e){return m?e+(e.includes(`?`)?`&`:`?`)+new URLSearchParams({session:m}):e}async function x(t,n){let r=await e(t,{method:`GET`},n,i);if(r&&typeof r==`object`&&`ok`in r){if(r.ok!==!0||!(`data`in r))throw Error(`trace_unavailable`);return r.data}if(!r||typeof r!=`object`)throw Error(`trace_unavailable`);return r}function S(){let e=document.getElementById(`traceDrawerOverlay`);return e||(e=document.createElement(`div`),e.id=`traceDrawerOverlay`,e.className=`trace-drawer-overlay`,e.innerHTML=`<aside class="trace-drawer" role="dialog" aria-modal="true" aria-labelledby="traceDrawerTitle">
2
2
  <header class="trace-drawer-header">
3
3
  <div><p class="trace-drawer-kicker">Raw trace</p><h2 id="traceDrawerTitle">Trace</h2></div>
4
4
  <button class="trace-drawer-close" type="button" aria-label="Close trace drawer">×</button>
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-render-DSSkXCir.css"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./state-Dl-xxPoS.js";import{t}from"./preload-helper-CfbQpVni.js";import{E as n,T as r,k as i,t as a}from"./render-DP8SJtdZ.js";import{a as o,n as s}from"./icons-CVkqyECl.js";import{A as c,C as l,D as u,N as d,O as f,S as p,_ as ee,b as m,k as h,m as g,t as _,v,w as y,x as b}from"./iframe-renderer-DCDKBMb7.js";import{B as x,F as S,G as C,H as w,J as T,K as E,L as te,P as ne,Q as D,R as re,U as ie,V as O,W as k,Y as A,Z as j,a as ae,l as oe,q as M,z as N}from"./message-history-DbRTl1P0.js";import{c as se}from"./idb-cache-BRpjf_a8.js";var P=2e3,F=80,ce=400;function le(e){if(e<=P)return F;let t=e/P*F;return Math.min(ce,Math.round(t))}function I(e){return{chunks:[],fullText:``,textDirty:!1,element:e,pendingRAF:null,isFinalized:!1,lastRenderTime:0}}function ue(e,t=``){let n=I(e);return t?(n.chunks=[t],n.fullText=t,n.textDirty=!1,n.element.innerHTML=a(t,!0)+`<span class="stream-cursor" aria-hidden="true"></span>`):n.element.innerHTML=`<span class="stream-cursor" aria-hidden="true"></span>`,n}function L(e){return e.textDirty&&=(e.fullText=e.chunks.join(``),!1),e.fullText}function R(e,t){e.chunks.push(t),e.textDirty=!0,!e.pendingRAF&&!e.isFinalized&&(e.pendingRAF=requestAnimationFrame(()=>{if(e.pendingRAF=null,e.isFinalized)return;let t=performance.now(),n=L(e);n.length<P||t-e.lastRenderTime>le(n.length)?(e.element.innerHTML=a(n,!0)+`<span class="stream-cursor" aria-hidden="true"></span>`,e.lastRenderTime=t):e.pendingRAF=requestAnimationFrame(()=>{e.pendingRAF=null,!e.isFinalized&&(e.element.innerHTML=a(L(e),!0)+`<span class="stream-cursor" aria-hidden="true"></span>`,e.lastRenderTime=performance.now())})}))}function z(e,t=!1){e.isFinalized=!0,e.pendingRAF&&=(cancelAnimationFrame(e.pendingRAF),null);let n=L(e);return t||(e.element.innerHTML=a(n)),n}function B(e){return typeof e.traceSeq==`number`&&Number.isFinite(e.traceSeq)&&e.traceSeq>0}function V(e,t){return!!t.traceRunId&&!!e.traceRunId&&t.traceRunId===e.traceRunId&&B(t)&&B(e)&&t.traceSeq===e.traceSeq&&t.type===e.type&&t.label===e.label&&!!t.isEmployee==!!e.isEmployee}function H(e,t){return t.stepRef&&e.stepRef===t.stepRef?!0:V(e,t)}function U(e,t,n={}){return[...e].reverse().filter(e=>n.includeDone||e.status===`running`).find(e=>H(e,t))??null}function de(e,t){let n=e.filter(e=>e.status===`running`&&!e.stepRef&&e.label===t.label&&e.type===t.type&&!!e.isEmployee==!!t.isEmployee);return n.length===1?n[0]:null}function fe(e,t){let n=[...e].reverse().filter(e=>e.status===`running`);return U(n,t)||de(n,t)}function pe(){e.currentProcessBlock&&u(e.currentProcessBlock),e.currentAgentDiv instanceof HTMLElement&&u(e.currentAgentDiv),D(),c(),e.currentAgentDiv=null,e.currentProcessBlock=null,q=null}var W=0;function me(){W=Date.now()}function he(){W=0}function ge(){return Date.now()-W<8e3}function G(e){for(let t of document.querySelectorAll(`.msg-user`))if(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING)return!0;return!1}function K(){let t=e.currentAgentDiv&&e.currentAgentDiv.isConnected?e.currentAgentDiv:null;return t?G(t)?(e.currentAgentDiv=null,e.currentProcessBlock=null,q=null,null):t:null}function _e(){let e=Array.from(document.querySelectorAll(`.msg-agent`)).at(-1)??null;return!e||G(e)?null:e}function ve(t,n){k();let r=K();if(r||(r=w(`agent`,``),e.currentAgentDiv=r,e.currentProcessBlock=null),M(r),!e.currentProcessBlock){let t=r.querySelector(`.agent-body`);t&&(e.currentProcessBlock=C(r)),!e.currentProcessBlock&&t&&(T(r),e.currentProcessBlock=p(t))}if(n&&e.currentProcessBlock&&!e.currentProcessBlock.startedAt&&(e.currentProcessBlock.startedAt=n),e.currentProcessBlock){let n=t.rawIcon||t.icon,r=t.status||s(t.icon)||`running`;if(r===`done`||r===`error`){let i=fe(e.currentProcessBlock.steps,t);if(i){t.icon=o(t.icon);let a=t.type===`thinking`?h(i.id,t.detail):y(i.id,t.detail);f(e.currentProcessBlock,i.id,{...i,...t,id:i.id,rawIcon:n,detail:a,detailPreview:a,label:t.label||i.label,status:r,startTime:i.startTime}),g();return}if(t.stepRef&&(r===`done`||r===`error`)){let i=[...e.currentProcessBlock.steps].reverse().find(e=>e.stepRef===t.stepRef&&(e.status===`done`||e.status===`error`));if(i){t.icon=o(t.icon);let a=t.type===`thinking`?h(i.id,t.detail):y(i.id,t.detail);f(e.currentProcessBlock,i.id,{...i,...t,id:i.id,rawIcon:n,status:r,detail:a,detailPreview:a,startTime:i.startTime}),g();return}}}if(t.stepRef&&r===`running`){let r=[...e.currentProcessBlock.steps].reverse().find(e=>e.stepRef===t.stepRef&&e.status===`running`);if(r){t.rawIcon=n,t.icon=o(t.icon);let i=h(r.id,t.detail);f(e.currentProcessBlock,r.id,{...r,...t,id:r.id,rawIcon:n,status:`running`,detail:i,detailPreview:i,label:t.label||r.label,startTime:r.startTime}),g();return}}let i=U(e.currentProcessBlock.steps,t,{includeDone:!0});if(i){t.rawIcon=n,t.icon=o(t.icon);let a=t.detail||``,s=l(i.id)||i.detail||i.detailPreview||``,c=a.length>=s.length?a:s,u=h(i.id,c),d=(i.status===`done`||i.status===`error`)&&r===`running`?i.status:r;f(e.currentProcessBlock,i.id,{...i,...t,id:i.id,rawIcon:n,status:d,detail:u,detailPreview:u,label:t.label||i.label,startTime:i.startTime}),g();return}if(t.detail){let n=[...e.currentProcessBlock.steps].reverse().find(e=>e.status===`running`&&e.label===t.label&&e.type===t.type&&!!e.isEmployee==!!t.isEmployee&&!e.detail);if(n){f(e.currentProcessBlock,n.id,t),g();return}}t.rawIcon=n,t.icon=o(t.icon),v(e.currentProcessBlock,t)}g()}var q=null,J=`data-active-run-hydrated`;function Y(e){document.querySelectorAll(`[${J}="true"]`).forEach(t=>{e&&t===e||t.remove()})}function ye(e){let t=K()??_e();Y(t);let n=t||w(`agent`,``,e||null);return n.setAttribute(J,`true`),n}function be(e,t){let n=l(e.id)||e.detail||e.detailPreview||``,r=t.detail||t.detailPreview||``;return r.length>=n.length?r:n}function X(e){return e.stepRef?!0:!!e.traceRunId&&typeof e.traceSeq==`number`&&Number.isFinite(e.traceSeq)&&e.traceSeq>0}function xe(e,t){let n=e.steps.filter(e=>!X(e)),r=0,i=!0;for(let a of t){let t=e.steps.find(e=>H(e,a))??null;if(!t&&!X(a)&&i){let e=n[r]??null;e?e.type===a.type&&!!e.isEmployee==!!a.isEmployee?(t=e,r++):i=!1:r++}if(!t){let n=e.steps.filter(e=>e.label===a.label&&e.type===a.type&&!!e.isEmployee==!!a.isEmployee);t=n.length===1?n[0]:null}if(!t){if(v(e,a),!X(a)&&i){let t=e.steps[e.steps.length-1];t&&n.push(t)}continue}let o=h(t.id,be(t,a));f(e,t.id,{...t,...a,id:t.id,detail:o,detailPreview:o,label:a.label||t.label})}}function Se(e=[]){document.querySelectorAll(`[data-queued-overlay="true"]`).forEach(e=>e.remove())}var Z=``;function Ce(e){let t=Array.isArray(e.toolLog)?e.toolLog:[],n=t.map(e=>`${e.stepRef||``}~${e.traceRunId||``}~${e.traceSeq??``}~${e.status||``}~${e.label||``}~${(e.detail||``).length}`).join(`|`);return`${e.traceRunId||``}:${e.cli||``}:${(e.text||``).length}:${t.length}:${n}`}function we(t){if(!t?.running){Z=``,Y();return}let n=Ce(t);if(n===Z&&K())return;D(),k(),e.currentAgentDiv=ye(t.cli||null);let r=e.currentAgentDiv.querySelector(`.agent-body`),i=N(t.toolLog||[]);M(e.currentAgentDiv),e.currentProcessBlock=C(e.currentAgentDiv),r&&i.length?(e.currentProcessBlock||(T(e.currentAgentDiv),e.currentProcessBlock=p(r)),t.startedAt&&(e.currentProcessBlock.startedAt=t.startedAt),xe(e.currentProcessBlock,O(i,t.startedAt))):e.currentProcessBlock=C(e.currentAgentDiv);let a=e.currentAgentDiv.querySelector(`.msg-content`);a&&(q=ue(a,t.text||``)),Z=n}function Q(t){if(!t)return;k(),K()||(e.currentAgentDiv=w(`agent`,``),q=null);let n=e.currentAgentDiv?.querySelector(`.msg-content`);n&&(q||=I(n),R(q,t)),g()}var $=0;function Te(e){e.querySelectorAll(`.mermaid-pending`).forEach(e=>{delete e.dataset.mermaidQueued,delete e.dataset.mermaidQueuedAt})}function Ee(e,t){let o=e.querySelector(`.msg-content`);if(!o)return;let s=i(t);(o.getAttribute(`data-raw`)!==s||!s&&o.childNodes.length!==0)&&(r(o),o.innerHTML=s?a(t):``,o.setAttribute(`data-raw`,s),o.classList.remove(`lazy-pending`),_(o),n(o,{immediate:!0}))}function De(t,r,o,s,c,l){let f=o===`present`||o===`absent`,p=Date.now();if(!e.currentAgentDiv&&p-$<500)return;Z=``,D(),k(),e.currentAgentDiv&&M(e.currentAgentDiv);let h=A(e.currentProcessBlock??e.currentAgentDiv,!0),g=N(re(Array.isArray(r)?r:[],h)),v=x(g),y=!!e.currentProcessBlock||!!(e.currentAgentDiv&&E(e.currentAgentDiv));e.currentProcessBlock&&(b(e.currentProcessBlock),e.currentProcessBlock=null);let C=g.length>0;if(t||C||f){(!e.currentAgentDiv||!e.currentAgentDiv.isConnected)&&(e.currentAgentDiv=w(`agent`,``));let r=!!(e.currentAgentDiv.dataset.activityKey||e.currentAgentDiv.dataset.activityAnswerPending||s&&l&&e.currentAgentDiv.dataset.traceRunId===s&&e.currentAgentDiv.dataset.messageSessionId===l);s&&(e.currentAgentDiv.dataset.traceRunId=s),delete e.currentAgentDiv.dataset.activityRecovering,e.currentAgentDiv.removeAttribute(J);let o=e.currentAgentDiv?.querySelector(`.msg-content`),p=q?z(q,!0):``,h=f?t??``:t||p;if(q=null,o&&(o.innerHTML=f&&!h?``:a(h)),C&&e.currentAgentDiv&&!y&&!E(e.currentAgentDiv)){let t=e.currentAgentDiv.querySelector(`.msg-content`);t&&t.insertAdjacentHTML(`beforebegin`,m(O(g),!0))}e.currentAgentDiv&&M(e.currentAgentDiv),o&&o.setAttribute(`data-raw`,i(h)),o&&_(o);let b=ee(),x=!!(b.active&&e.currentAgentDiv&&e.currentAgentDiv.isConnected);if(o&&!x&&n(o,{immediate:!0}),x){let t=e.currentAgentDiv;Te(t),t.querySelectorAll(`.diagram-widget`).forEach(e=>{let t=e,n=t.dataset.widgetHtml,r=t.dataset.widgetId;if(!n&&!r)return;let i=document.createElement(`div`);i.className=`diagram-widget-pending`,r?i.dataset.widgetId=r:n&&(i.dataset.diagramHtml=n),e.replaceWith(i)}),v&&!r?(b.onLazyRender||oe(b),b.appendItem(te({role:`assistant`,content:h,cli:null,tool_log:v,trace_run_id:t.dataset.traceRunId??null},b.count)),u(t),b.scrollToBottom()):(t.dataset.turnIndex=String(b.count),t.dataset.messageId||(t.dataset.messageId=d()),r&&ae(b),b.appendLiveItem(t)),t.remove()}(h||s&&r)&&se({role:`assistant`,content:h,tool_log:v,trace_run_id:e.currentAgentDiv?.dataset.traceRunId??null,timestamp:Date.now(),...c===void 0?{}:{scope:c},...l===void 0?{}:{session_id:l}}).catch(()=>{})}q=null,e.currentAgentDiv=null,$=Date.now(),S(`idle`),ne()}function Oe(e,n){document.querySelectorAll(`.tab-btn`).forEach(e=>{e.classList.remove(`active`),e.setAttribute(`aria-selected`,`false`)}),document.querySelectorAll(`.tab-content`).forEach(e=>e.classList.remove(`active`)),document.getElementById({agents:`tabAgents`,settings:`tabSettings`,skills:`tabSkills`}[e])?.classList.add(`active`),n&&(n.classList.add(`active`),n.setAttribute(`aria-selected`,`true`)),e===`agents`&&t(()=>import(`./employees-CWS3Juca.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0])),e===`skills`&&t(()=>import(`./skills-6GFkHTlQ.js`).then(e=>e.loadSkills()),__vite__mapDeps([0]))}function ke(){document.getElementById(`tabSettings`)?.classList.contains(`active`)||t(()=>import(`./settings--EGy3_B9.js`).then(e=>e.updateSettings()),__vite__mapDeps([0]))}function Ae(){j({onStatus:ie})}export{De as a,Ae as c,Ee as d,ve as f,he as i,ge as l,Se as n,ke as o,Oe as p,pe as r,we as s,Q as t,me as u};
2
+ import{t as e}from"./state-Dl-xxPoS.js";import{t}from"./preload-helper-CfbQpVni.js";import{E as n,T as r,k as i,t as a}from"./render-DUGqq9Mu.js";import{a as o,n as s}from"./icons-CVkqyECl.js";import{A as c,C as l,D as u,N as d,O as f,S as p,_ as ee,b as m,k as h,m as g,t as _,v,w as y,x as b}from"./iframe-renderer-C2gchtOj.js";import{B as x,F as S,G as C,H as w,J as T,K as E,L as te,P as ne,Q as D,R as re,U as ie,V as O,W as k,Y as A,Z as j,a as ae,l as oe,q as M,z as N}from"./message-history-CuFefS02.js";import{c as se}from"./idb-cache-BRpjf_a8.js";var P=2e3,F=80,ce=400;function le(e){if(e<=P)return F;let t=e/P*F;return Math.min(ce,Math.round(t))}function I(e){return{chunks:[],fullText:``,textDirty:!1,element:e,pendingRAF:null,isFinalized:!1,lastRenderTime:0}}function ue(e,t=``){let n=I(e);return t?(n.chunks=[t],n.fullText=t,n.textDirty=!1,n.element.innerHTML=a(t,!0)+`<span class="stream-cursor" aria-hidden="true"></span>`):n.element.innerHTML=`<span class="stream-cursor" aria-hidden="true"></span>`,n}function L(e){return e.textDirty&&=(e.fullText=e.chunks.join(``),!1),e.fullText}function R(e,t){e.chunks.push(t),e.textDirty=!0,!e.pendingRAF&&!e.isFinalized&&(e.pendingRAF=requestAnimationFrame(()=>{if(e.pendingRAF=null,e.isFinalized)return;let t=performance.now(),n=L(e);n.length<P||t-e.lastRenderTime>le(n.length)?(e.element.innerHTML=a(n,!0)+`<span class="stream-cursor" aria-hidden="true"></span>`,e.lastRenderTime=t):e.pendingRAF=requestAnimationFrame(()=>{e.pendingRAF=null,!e.isFinalized&&(e.element.innerHTML=a(L(e),!0)+`<span class="stream-cursor" aria-hidden="true"></span>`,e.lastRenderTime=performance.now())})}))}function z(e,t=!1){e.isFinalized=!0,e.pendingRAF&&=(cancelAnimationFrame(e.pendingRAF),null);let n=L(e);return t||(e.element.innerHTML=a(n)),n}function B(e){return typeof e.traceSeq==`number`&&Number.isFinite(e.traceSeq)&&e.traceSeq>0}function V(e,t){return!!t.traceRunId&&!!e.traceRunId&&t.traceRunId===e.traceRunId&&B(t)&&B(e)&&t.traceSeq===e.traceSeq&&t.type===e.type&&t.label===e.label&&!!t.isEmployee==!!e.isEmployee}function H(e,t){return t.stepRef&&e.stepRef===t.stepRef?!0:V(e,t)}function U(e,t,n={}){return[...e].reverse().filter(e=>n.includeDone||e.status===`running`).find(e=>H(e,t))??null}function de(e,t){let n=e.filter(e=>e.status===`running`&&!e.stepRef&&e.label===t.label&&e.type===t.type&&!!e.isEmployee==!!t.isEmployee);return n.length===1?n[0]:null}function fe(e,t){let n=[...e].reverse().filter(e=>e.status===`running`);return U(n,t)||de(n,t)}function pe(){e.currentProcessBlock&&u(e.currentProcessBlock),e.currentAgentDiv instanceof HTMLElement&&u(e.currentAgentDiv),D(),c(),e.currentAgentDiv=null,e.currentProcessBlock=null,q=null}var W=0;function me(){W=Date.now()}function he(){W=0}function ge(){return Date.now()-W<8e3}function G(e){for(let t of document.querySelectorAll(`.msg-user`))if(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING)return!0;return!1}function K(){let t=e.currentAgentDiv&&e.currentAgentDiv.isConnected?e.currentAgentDiv:null;return t?G(t)?(e.currentAgentDiv=null,e.currentProcessBlock=null,q=null,null):t:null}function _e(){let e=Array.from(document.querySelectorAll(`.msg-agent`)).at(-1)??null;return!e||G(e)?null:e}function ve(t,n){k();let r=K();if(r||(r=w(`agent`,``),e.currentAgentDiv=r,e.currentProcessBlock=null),M(r),!e.currentProcessBlock){let t=r.querySelector(`.agent-body`);t&&(e.currentProcessBlock=C(r)),!e.currentProcessBlock&&t&&(T(r),e.currentProcessBlock=p(t))}if(n&&e.currentProcessBlock&&!e.currentProcessBlock.startedAt&&(e.currentProcessBlock.startedAt=n),e.currentProcessBlock){let n=t.rawIcon||t.icon,r=t.status||s(t.icon)||`running`;if(r===`done`||r===`error`){let i=fe(e.currentProcessBlock.steps,t);if(i){t.icon=o(t.icon);let a=t.type===`thinking`?h(i.id,t.detail):y(i.id,t.detail);f(e.currentProcessBlock,i.id,{...i,...t,id:i.id,rawIcon:n,detail:a,detailPreview:a,label:t.label||i.label,status:r,startTime:i.startTime}),g();return}if(t.stepRef&&(r===`done`||r===`error`)){let i=[...e.currentProcessBlock.steps].reverse().find(e=>e.stepRef===t.stepRef&&(e.status===`done`||e.status===`error`));if(i){t.icon=o(t.icon);let a=t.type===`thinking`?h(i.id,t.detail):y(i.id,t.detail);f(e.currentProcessBlock,i.id,{...i,...t,id:i.id,rawIcon:n,status:r,detail:a,detailPreview:a,startTime:i.startTime}),g();return}}}if(t.stepRef&&r===`running`){let r=[...e.currentProcessBlock.steps].reverse().find(e=>e.stepRef===t.stepRef&&e.status===`running`);if(r){t.rawIcon=n,t.icon=o(t.icon);let i=h(r.id,t.detail);f(e.currentProcessBlock,r.id,{...r,...t,id:r.id,rawIcon:n,status:`running`,detail:i,detailPreview:i,label:t.label||r.label,startTime:r.startTime}),g();return}}let i=U(e.currentProcessBlock.steps,t,{includeDone:!0});if(i){t.rawIcon=n,t.icon=o(t.icon);let a=t.detail||``,s=l(i.id)||i.detail||i.detailPreview||``,c=a.length>=s.length?a:s,u=h(i.id,c),d=(i.status===`done`||i.status===`error`)&&r===`running`?i.status:r;f(e.currentProcessBlock,i.id,{...i,...t,id:i.id,rawIcon:n,status:d,detail:u,detailPreview:u,label:t.label||i.label,startTime:i.startTime}),g();return}if(t.detail){let n=[...e.currentProcessBlock.steps].reverse().find(e=>e.status===`running`&&e.label===t.label&&e.type===t.type&&!!e.isEmployee==!!t.isEmployee&&!e.detail);if(n){f(e.currentProcessBlock,n.id,t),g();return}}t.rawIcon=n,t.icon=o(t.icon),v(e.currentProcessBlock,t)}g()}var q=null,J=`data-active-run-hydrated`;function Y(e){document.querySelectorAll(`[${J}="true"]`).forEach(t=>{e&&t===e||t.remove()})}function ye(e){let t=K()??_e();Y(t);let n=t||w(`agent`,``,e||null);return n.setAttribute(J,`true`),n}function be(e,t){let n=l(e.id)||e.detail||e.detailPreview||``,r=t.detail||t.detailPreview||``;return r.length>=n.length?r:n}function X(e){return e.stepRef?!0:!!e.traceRunId&&typeof e.traceSeq==`number`&&Number.isFinite(e.traceSeq)&&e.traceSeq>0}function xe(e,t){let n=e.steps.filter(e=>!X(e)),r=0,i=!0;for(let a of t){let t=e.steps.find(e=>H(e,a))??null;if(!t&&!X(a)&&i){let e=n[r]??null;e?e.type===a.type&&!!e.isEmployee==!!a.isEmployee?(t=e,r++):i=!1:r++}if(!t){let n=e.steps.filter(e=>e.label===a.label&&e.type===a.type&&!!e.isEmployee==!!a.isEmployee);t=n.length===1?n[0]:null}if(!t){if(v(e,a),!X(a)&&i){let t=e.steps[e.steps.length-1];t&&n.push(t)}continue}let o=h(t.id,be(t,a));f(e,t.id,{...t,...a,id:t.id,detail:o,detailPreview:o,label:a.label||t.label})}}function Se(e=[]){document.querySelectorAll(`[data-queued-overlay="true"]`).forEach(e=>e.remove())}var Z=``;function Ce(e){let t=Array.isArray(e.toolLog)?e.toolLog:[],n=t.map(e=>`${e.stepRef||``}~${e.traceRunId||``}~${e.traceSeq??``}~${e.status||``}~${e.label||``}~${(e.detail||``).length}`).join(`|`);return`${e.traceRunId||``}:${e.cli||``}:${(e.text||``).length}:${t.length}:${n}`}function we(t){if(!t?.running){Z=``,Y();return}let n=Ce(t);if(n===Z&&K())return;D(),k(),e.currentAgentDiv=ye(t.cli||null);let r=e.currentAgentDiv.querySelector(`.agent-body`),i=N(t.toolLog||[]);M(e.currentAgentDiv),e.currentProcessBlock=C(e.currentAgentDiv),r&&i.length?(e.currentProcessBlock||(T(e.currentAgentDiv),e.currentProcessBlock=p(r)),t.startedAt&&(e.currentProcessBlock.startedAt=t.startedAt),xe(e.currentProcessBlock,O(i,t.startedAt))):e.currentProcessBlock=C(e.currentAgentDiv);let a=e.currentAgentDiv.querySelector(`.msg-content`);a&&(q=ue(a,t.text||``)),Z=n}function Q(t){if(!t)return;k(),K()||(e.currentAgentDiv=w(`agent`,``),q=null);let n=e.currentAgentDiv?.querySelector(`.msg-content`);n&&(q||=I(n),R(q,t)),g()}var $=0;function Te(e){e.querySelectorAll(`.mermaid-pending`).forEach(e=>{delete e.dataset.mermaidQueued,delete e.dataset.mermaidQueuedAt})}function Ee(e,t){let o=e.querySelector(`.msg-content`);if(!o)return;let s=i(t);(o.getAttribute(`data-raw`)!==s||!s&&o.childNodes.length!==0)&&(r(o),o.innerHTML=s?a(t):``,o.setAttribute(`data-raw`,s),o.classList.remove(`lazy-pending`),_(o),n(o,{immediate:!0}))}function De(t,r,o,s,c,l){let f=o===`present`||o===`absent`,p=Date.now();if(!e.currentAgentDiv&&p-$<500)return;Z=``,D(),k(),e.currentAgentDiv&&M(e.currentAgentDiv);let h=A(e.currentProcessBlock??e.currentAgentDiv,!0),g=N(re(Array.isArray(r)?r:[],h)),v=x(g),y=!!e.currentProcessBlock||!!(e.currentAgentDiv&&E(e.currentAgentDiv));e.currentProcessBlock&&(b(e.currentProcessBlock),e.currentProcessBlock=null);let C=g.length>0;if(t||C||f){(!e.currentAgentDiv||!e.currentAgentDiv.isConnected)&&(e.currentAgentDiv=w(`agent`,``));let r=!!(e.currentAgentDiv.dataset.activityKey||e.currentAgentDiv.dataset.activityAnswerPending||s&&l&&e.currentAgentDiv.dataset.traceRunId===s&&e.currentAgentDiv.dataset.messageSessionId===l);s&&(e.currentAgentDiv.dataset.traceRunId=s),delete e.currentAgentDiv.dataset.activityRecovering,e.currentAgentDiv.removeAttribute(J);let o=e.currentAgentDiv?.querySelector(`.msg-content`),p=q?z(q,!0):``,h=f?t??``:t||p;if(q=null,o&&(o.innerHTML=f&&!h?``:a(h)),C&&e.currentAgentDiv&&!y&&!E(e.currentAgentDiv)){let t=e.currentAgentDiv.querySelector(`.msg-content`);t&&t.insertAdjacentHTML(`beforebegin`,m(O(g),!0))}e.currentAgentDiv&&M(e.currentAgentDiv),o&&o.setAttribute(`data-raw`,i(h)),o&&_(o);let b=ee(),x=!!(b.active&&e.currentAgentDiv&&e.currentAgentDiv.isConnected);if(o&&!x&&n(o,{immediate:!0}),x){let t=e.currentAgentDiv;Te(t),t.querySelectorAll(`.diagram-widget`).forEach(e=>{let t=e,n=t.dataset.widgetHtml,r=t.dataset.widgetId;if(!n&&!r)return;let i=document.createElement(`div`);i.className=`diagram-widget-pending`,r?i.dataset.widgetId=r:n&&(i.dataset.diagramHtml=n),e.replaceWith(i)}),v&&!r?(b.onLazyRender||oe(b),b.appendItem(te({role:`assistant`,content:h,cli:null,tool_log:v,trace_run_id:t.dataset.traceRunId??null},b.count)),u(t),b.scrollToBottom()):(t.dataset.turnIndex=String(b.count),t.dataset.messageId||(t.dataset.messageId=d()),r&&ae(b),b.appendLiveItem(t)),t.remove()}(h||s&&r)&&se({role:`assistant`,content:h,tool_log:v,trace_run_id:e.currentAgentDiv?.dataset.traceRunId??null,timestamp:Date.now(),...c===void 0?{}:{scope:c},...l===void 0?{}:{session_id:l}}).catch(()=>{})}q=null,e.currentAgentDiv=null,$=Date.now(),S(`idle`),ne()}function Oe(e,n){document.querySelectorAll(`.tab-btn`).forEach(e=>{e.classList.remove(`active`),e.setAttribute(`aria-selected`,`false`)}),document.querySelectorAll(`.tab-content`).forEach(e=>e.classList.remove(`active`)),document.getElementById({agents:`tabAgents`,settings:`tabSettings`,skills:`tabSkills`}[e])?.classList.add(`active`),n&&(n.classList.add(`active`),n.setAttribute(`aria-selected`,`true`)),e===`agents`&&t(()=>import(`./employees-CkUqN4oh.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0])),e===`skills`&&t(()=>import(`./skills-DFpPmMUR.js`).then(e=>e.loadSkills()),__vite__mapDeps([0]))}function ke(){document.getElementById(`tabSettings`)?.classList.contains(`active`)||t(()=>import(`./settings-C81Kf9uX.js`).then(e=>e.updateSettings()),__vite__mapDeps([0]))}function Ae(){j({onStatus:ie})}export{De as a,Ae as c,Ee as d,ve as f,he as i,ge as l,Se as n,ke as o,Oe as p,pe as r,we as s,Q as t,me as u};
@@ -0,0 +1 @@
1
+ import{p as e}from"./iframe-renderer-C2gchtOj.js";import{I as t,s as n}from"./message-history-CuFefS02.js";import{r}from"./ui-Bxapl_Eu.js";export{r as cleanupToolActivity,n as loadMessages,e as reconcileChatBottomAfterRestore,t as updateQueueBadge};
@@ -31,7 +31,7 @@
31
31
  href="https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap"
32
32
  rel="stylesheet">
33
33
  <!-- Vite handles module bundling in dev (HMR) and production (build) -->
34
- <script type="module" crossorigin src="/dist/assets/app-Q0prKOFx.js"></script>
34
+ <script type="module" crossorigin src="/dist/assets/app-9OQNfmqw.js"></script>
35
35
  <link rel="stylesheet" crossorigin href="/dist/assets/vendor-render-DSSkXCir.css">
36
36
  <link rel="stylesheet" crossorigin href="/dist/assets/app-BCBnxiGr.css">
37
37
  </head>
@@ -6,7 +6,7 @@
6
6
  <link rel="icon" type="image/png" href="/dist/assets/icon-192-CwXPIYF5.png">
7
7
  <title>Jaw Manager</title>
8
8
  <script src="/manager/theme-boot.js"></script>
9
- <script type="module" crossorigin src="/dist/assets/manager-v6GYfoPB.js"></script>
9
+ <script type="module" crossorigin src="/dist/assets/manager-rb5X-4DJ.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/dist/assets/vendor-render-DSSkXCir.css">
11
11
  <link rel="stylesheet" crossorigin href="/dist/assets/settings-embedding-LIMq5ebM.css">
12
12
  <link rel="stylesheet" crossorigin href="/dist/assets/manager-Nk7-RYPs.css">
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Settings</title>
7
7
  <script src="/manager/theme-boot.js"></script>
8
- <script type="module" crossorigin src="/dist/assets/settings-85n9NjvX.js"></script>
8
+ <script type="module" crossorigin src="/dist/assets/settings-BqUHavbH.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/dist/assets/settings-embedding-LIMq5ebM.css">
10
10
  </head>
11
11
  <body>
@@ -5,7 +5,7 @@ import { t } from './i18n.js';
5
5
  import { state } from '../state.js';
6
6
  import { ICONS } from '../icons.js';
7
7
  import { providerIcon, providerLabel } from '../provider-icons.js';
8
- import { describeCliProbe, resolveQuotaWindowDisplay, type CliStatusInfo, type QuotaEntry } from './settings-types.js';
8
+ import { describeCliProbe, describeNativeStartFailure, resolveQuotaWindowDisplay, type CliStatusInfo, type QuotaEntry } from './settings-types.js';
9
9
  import {
10
10
  buildAccountParts,
11
11
  normalizeQuotaWindowLabel,
@@ -424,6 +424,15 @@ function renderCliStatus(data: { cliStatus: Record<string, CliStatusInfo> | null
424
424
  ? '<div role="status" style="font-size:10px;color:var(--text-dim);margin:2px 0 0 16px">이전 상태 표시 중 · 새로 확인 중</div>'
425
425
  : '';
426
426
 
427
+ // Independent of the probe line above: a runtime can be installed,
428
+ // authenticated and probing fresh while every native turn dies before it
429
+ // starts. Showing the code here is what makes that visible without the
430
+ // server log (#658).
431
+ const startFailure = describeNativeStartFailure(info);
432
+ const startFailureLine = startFailure
433
+ ? `<div role="alert" style="font-size:10px;color:var(--warning);margin:2px 0 0 16px">${escapeHtml(startFailure.message)}</div>`
434
+ : '';
435
+
427
436
  html += `
428
437
  <div class="settings-group" style="margin-bottom:6px;padding:8px 10px">
429
438
  <div class="cli-status-row" style="display:flex;align-items:center">
@@ -433,6 +442,7 @@ function renderCliStatus(data: { cliStatus: Record<string, CliStatusInfo> | null
433
442
  </div>
434
443
  ${accountLine}
435
444
  ${probeLine}
445
+ ${startFailureLine}
436
446
  ${authHint}
437
447
  ${windowsHtml}
438
448
  </div>
@@ -73,6 +73,13 @@ export interface CliStatusInfo {
73
73
  probeError?: string;
74
74
  probeFailures?: number;
75
75
  nextRetryAt?: number;
76
+ /**
77
+ * Last native runtime that failed before acquiring a lease, present only
78
+ * while the row's transport is still native. Deliberately separate from
79
+ * `probeError`: that is cached binary/auth/probe evidence with its own
80
+ * backoff, this is a live per-turn start failure.
81
+ */
82
+ lastStartFailure?: { code: string; at: number };
76
83
  }
77
84
  export function describeCliProbe(info: CliStatusInfo): 'checking' | 'unknown' | 'probe-failing' | 'capability-failed' | 'stale' | 'ready' | 'unavailable' {
78
85
  if (info.probeState === 'checking') return 'checking';
@@ -118,6 +125,20 @@ export function describeCliProbeAvailability(
118
125
  export function shouldHydrateRuntimeMigrationResponse(status: number): boolean {
119
126
  return status >= 200 && status < 300 || status === 409;
120
127
  }
128
+
129
+ /**
130
+ * A selected transport that cannot start looks identical to one that works, so
131
+ * the code the runtime raised is shown as-is (#658). It is one
132
+ * provider-independent identifier by construction, never provider text, and it
133
+ * says nothing about probe readiness, so it never sets `allowRemediation`.
134
+ */
135
+ export function describeNativeStartFailure(
136
+ info: Pick<CliStatusInfo, 'lastStartFailure'>,
137
+ ): { code: string; message: string } | null {
138
+ const code = info.lastStartFailure?.code;
139
+ if (!code) return null;
140
+ return { code, message: `Native runtime failed to start: ${code}` };
141
+ }
121
142
  export interface MessagingConfig {
122
143
  enabledChannels?: ('telegram' | 'discord' | 'slack')[];
123
144
  homeChannel?: 'telegram' | 'discord' | 'slack';
@@ -938,5 +938,38 @@
938
938
  "onboarding.hint.discord.guildId": "Enable Developer Mode, right-click the server, copy ID.",
939
939
  "onboarding.hint.slack.botToken": "Bot User OAuth Token from OAuth & Permissions (starts with xoxb-).",
940
940
  "onboarding.hint.slack.appToken": "Basic Information, App-Level Tokens (xapp-, connections:write).",
941
- "onboarding.progressLabel": "Step {step} of {total}"
941
+ "onboarding.progressLabel": "Step {step} of {total}",
942
+ "slack.progress.title": "Request progress",
943
+ "slack.progress.activityTitle": "Recent activity",
944
+ "slack.progress.deliveryTitle": "Answer delivery",
945
+ "slack.progress.queued": "Queued",
946
+ "slack.progress.running": "Observing activity",
947
+ "slack.progress.waiting": "Waiting for the next update",
948
+ "slack.progress.delivering": "Delivering the answer",
949
+ "slack.progress.complete": "Work observation ended",
950
+ "slack.progress.error": "Request failed",
951
+ "slack.progress.cancelled": "Request cancelled",
952
+ "slack.progress.expired": "Progress tracking ended. Execution may continue.",
953
+ "slack.progress.merged": "Request combined with another request",
954
+ "slack.progress.removed": "Request removed",
955
+ "slack.progress.restored": "Previous progress tracking ended. The execution result is unconfirmed.",
956
+ "slack.progress.failure": "Could not complete the response.",
957
+ "slack.progress.elapsed": "Elapsed: {seconds}s",
958
+ "slack.progress.lastActivity": "Last activity: {seconds}s ago",
959
+ "slack.progress.category.read": "File reading",
960
+ "slack.progress.category.write": "File editing",
961
+ "slack.progress.category.search": "Search",
962
+ "slack.progress.category.web": "Webpage reading",
963
+ "slack.progress.category.command": "Command execution",
964
+ "slack.progress.category.external": "External tool",
965
+ "slack.progress.category.tool": "Tool activity",
966
+ "slack.progress.status.observed": "Observed",
967
+ "slack.progress.status.in_progress": "Running",
968
+ "slack.progress.status.complete": "Done",
969
+ "slack.progress.status.error": "Error",
970
+ "slack.progress.status.stopped": "Stopped",
971
+ "slack.progress.status.unconfirmed": "Unconfirmed",
972
+ "slack.progress.deliveryComplete": "Answer delivered",
973
+ "slack.progress.deliveryFailed": "Answer delivery could not be confirmed",
974
+ "slack.progress.deliveryUnconfirmed": "Answer delivery unconfirmed"
942
975
  }
@@ -938,5 +938,38 @@
938
938
  "settings.channel.testSend": "テスト送信",
939
939
  "settings.channel.testSendFail": "送信失敗: {error}",
940
940
  "settings.channel.testSendOk": "送信成功",
941
- "onboarding.progressLabel": "{total} ステップ中 {step} ステップ目"
941
+ "onboarding.progressLabel": "{total} ステップ中 {step} ステップ目",
942
+ "slack.progress.title": "リクエストの進捗",
943
+ "slack.progress.activityTitle": "最近の作業",
944
+ "slack.progress.deliveryTitle": "回答の送信",
945
+ "slack.progress.queued": "キューで待機中",
946
+ "slack.progress.running": "作業を観測中",
947
+ "slack.progress.waiting": "次の更新を待機中",
948
+ "slack.progress.delivering": "回答を送信中",
949
+ "slack.progress.complete": "作業の観測終了",
950
+ "slack.progress.error": "リクエスト失敗",
951
+ "slack.progress.cancelled": "リクエスト取消済み",
952
+ "slack.progress.expired": "進捗表示が終了しました。実行は続いている可能性があります。",
953
+ "slack.progress.merged": "別のリクエストと統合済み",
954
+ "slack.progress.removed": "リクエスト削除済み",
955
+ "slack.progress.restored": "以前の進捗表示が終了しました。実行結果は確認されていません。",
956
+ "slack.progress.failure": "応答を完了できませんでした。",
957
+ "slack.progress.elapsed": "経過: {seconds}秒",
958
+ "slack.progress.lastActivity": "最後の活動: {seconds}秒前",
959
+ "slack.progress.category.read": "ファイル読取",
960
+ "slack.progress.category.write": "ファイル編集",
961
+ "slack.progress.category.search": "検索",
962
+ "slack.progress.category.web": "ウェブページ読取",
963
+ "slack.progress.category.command": "コマンド実行",
964
+ "slack.progress.category.external": "外部ツール",
965
+ "slack.progress.category.tool": "ツール活動",
966
+ "slack.progress.status.observed": "観測済み",
967
+ "slack.progress.status.in_progress": "実行中",
968
+ "slack.progress.status.complete": "完了",
969
+ "slack.progress.status.error": "エラー",
970
+ "slack.progress.status.stopped": "停止",
971
+ "slack.progress.status.unconfirmed": "完了未確認",
972
+ "slack.progress.deliveryComplete": "回答を送信しました",
973
+ "slack.progress.deliveryFailed": "回答の送信を確認できませんでした",
974
+ "slack.progress.deliveryUnconfirmed": "回答の送信は未確認"
942
975
  }