@tangle-network/braid 0.1.0 → 0.1.1

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 (174) hide show
  1. package/README.md +10 -0
  2. package/THIRD_PARTY_LICENSES.json +16 -0
  3. package/THIRD_PARTY_NOTICES.md +4 -1
  4. package/dist/adapters/analysis/managed-analysis-runtime.d.ts +19 -0
  5. package/dist/adapters/analysis/managed-analysis-runtime.d.ts.map +1 -0
  6. package/dist/adapters/analysis/managed-analysis-runtime.js +72 -0
  7. package/dist/adapters/analysis/managed-analysis-runtime.js.map +1 -0
  8. package/dist/adapters/analysis/production-analysis-analyst.d.ts +1 -1
  9. package/dist/adapters/analysis/production-analysis-analyst.d.ts.map +1 -1
  10. package/dist/adapters/analysis/production-analysis-analyst.js +12 -2
  11. package/dist/adapters/analysis/production-analysis-analyst.js.map +1 -1
  12. package/dist/adapters/analysis/python-runner.d.ts +3 -1
  13. package/dist/adapters/analysis/python-runner.d.ts.map +1 -1
  14. package/dist/adapters/analysis/python-runner.js +99 -1
  15. package/dist/adapters/analysis/python-runner.js.map +1 -1
  16. package/dist/adapters/analysis/trace-analysis-adapter.d.ts +2 -0
  17. package/dist/adapters/analysis/trace-analysis-adapter.d.ts.map +1 -1
  18. package/dist/adapters/analysis/trace-analysis-adapter.js +6 -0
  19. package/dist/adapters/analysis/trace-analysis-adapter.js.map +1 -1
  20. package/dist/adapters/credentials/headless-key.js +3 -2
  21. package/dist/adapters/credentials/headless-key.js.map +1 -1
  22. package/dist/adapters/persistence/posix-at.d.ts +8 -0
  23. package/dist/adapters/persistence/posix-at.d.ts.map +1 -0
  24. package/dist/adapters/persistence/posix-at.js +96 -0
  25. package/dist/adapters/persistence/posix-at.js.map +1 -0
  26. package/dist/adapters/persistence/safe-file-descriptor.d.ts +1 -1
  27. package/dist/adapters/persistence/safe-file-descriptor.d.ts.map +1 -1
  28. package/dist/adapters/persistence/safe-file-descriptor.js +29 -18
  29. package/dist/adapters/persistence/safe-file-descriptor.js.map +1 -1
  30. package/dist/adapters/persistence/safe-file-io.d.ts.map +1 -1
  31. package/dist/adapters/persistence/safe-file-io.js +9 -9
  32. package/dist/adapters/persistence/safe-file-io.js.map +1 -1
  33. package/dist/adapters/persistence/safe-file.d.ts +1 -1
  34. package/dist/adapters/persistence/safe-file.d.ts.map +1 -1
  35. package/dist/adapters/persistence/safe-file.js +4 -4
  36. package/dist/adapters/persistence/safe-file.js.map +1 -1
  37. package/dist/adapters/storage/sqlite-bound-open.d.ts +4 -4
  38. package/dist/adapters/storage/sqlite-bound-open.d.ts.map +1 -1
  39. package/dist/adapters/storage/sqlite-bound-open.js +49 -19
  40. package/dist/adapters/storage/sqlite-bound-open.js.map +1 -1
  41. package/dist/app/analysis-comparison-request.d.ts +1 -1
  42. package/dist/app/analysis-comparison-request.d.ts.map +1 -1
  43. package/dist/app/analysis-comparison-request.js +9 -5
  44. package/dist/app/analysis-comparison-request.js.map +1 -1
  45. package/dist/app/analysis-comparison.js +2 -2
  46. package/dist/app/analysis-comparison.js.map +1 -1
  47. package/dist/app/analysis-promotion.d.ts.map +1 -1
  48. package/dist/app/analysis-promotion.js +4 -5
  49. package/dist/app/analysis-promotion.js.map +1 -1
  50. package/dist/app/analysis-request.d.ts +1 -1
  51. package/dist/app/analysis-request.d.ts.map +1 -1
  52. package/dist/app/analysis-request.js +3 -7
  53. package/dist/app/analysis-request.js.map +1 -1
  54. package/dist/app/analysis-service.js +1 -1
  55. package/dist/app/analysis-service.js.map +1 -1
  56. package/dist/app/analysis-source.d.ts +4 -1
  57. package/dist/app/analysis-source.d.ts.map +1 -1
  58. package/dist/app/analysis-source.js +18 -0
  59. package/dist/app/analysis-source.js.map +1 -1
  60. package/dist/app/analysis-types.d.ts +1 -0
  61. package/dist/app/analysis-types.d.ts.map +1 -1
  62. package/dist/app/analysis-types.js.map +1 -1
  63. package/dist/app/application-support.d.ts +4 -0
  64. package/dist/app/application-support.d.ts.map +1 -1
  65. package/dist/app/application-support.js.map +1 -1
  66. package/dist/app/application.d.ts.map +1 -1
  67. package/dist/app/application.js +28 -7
  68. package/dist/app/application.js.map +1 -1
  69. package/dist/app/journal.d.ts +4 -0
  70. package/dist/app/journal.d.ts.map +1 -1
  71. package/dist/app/journal.js +6 -0
  72. package/dist/app/journal.js.map +1 -1
  73. package/dist/app/storage-journal.d.ts +4 -1
  74. package/dist/app/storage-journal.d.ts.map +1 -1
  75. package/dist/app/storage-journal.js +5 -0
  76. package/dist/app/storage-journal.js.map +1 -1
  77. package/dist/bin/plain.js +1 -1
  78. package/dist/bin/plain.js.map +1 -1
  79. package/dist/domain/ids-core.d.ts +1 -1
  80. package/dist/domain/ids-core.d.ts.map +1 -1
  81. package/dist/domain/ids-core.js +5 -2
  82. package/dist/domain/ids-core.js.map +1 -1
  83. package/dist/ports/effect-storage.d.ts +5 -0
  84. package/dist/ports/effect-storage.d.ts.map +1 -1
  85. package/dist/startup/durable-runtime.js +2 -344
  86. package/dist/startup/durable-runtime.js.map +1 -6
  87. package/dist/startup/preview-runtime.js +170 -6
  88. package/dist/startup/preview-runtime.js.map +1 -6
  89. package/dist/startup/terminal-runtime.js +5 -13
  90. package/dist/startup/terminal-runtime.js.map +1 -6
  91. package/dist/version.d.ts +1 -1
  92. package/dist/version.d.ts.map +1 -1
  93. package/dist/version.js +21 -1
  94. package/dist/version.js.map +1 -1
  95. package/dist/views/shared/semantic-details.d.ts.map +1 -1
  96. package/dist/views/shared/semantic-details.js +5 -0
  97. package/dist/views/shared/semantic-details.js.map +1 -1
  98. package/package.json +8 -3
  99. package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js +0 -2
  100. package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js.map +0 -6
  101. package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js +0 -2
  102. package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js.map +0 -6
  103. package/dist/startup/chunks/chunk-2B6P3EZQ.js +0 -2
  104. package/dist/startup/chunks/chunk-2B6P3EZQ.js.map +0 -6
  105. package/dist/startup/chunks/chunk-3SLVNOQZ.js +0 -2
  106. package/dist/startup/chunks/chunk-3SLVNOQZ.js.map +0 -6
  107. package/dist/startup/chunks/chunk-5ZIGORCF.js +0 -6
  108. package/dist/startup/chunks/chunk-5ZIGORCF.js.map +0 -6
  109. package/dist/startup/chunks/chunk-6G7QKB6J.js +0 -2
  110. package/dist/startup/chunks/chunk-6G7QKB6J.js.map +0 -6
  111. package/dist/startup/chunks/chunk-AUAERYTD.js +0 -2
  112. package/dist/startup/chunks/chunk-AUAERYTD.js.map +0 -6
  113. package/dist/startup/chunks/chunk-BCT2WD5R.js +0 -2
  114. package/dist/startup/chunks/chunk-BCT2WD5R.js.map +0 -6
  115. package/dist/startup/chunks/chunk-ECYRVU25.js +0 -2
  116. package/dist/startup/chunks/chunk-ECYRVU25.js.map +0 -6
  117. package/dist/startup/chunks/chunk-EQDIVTWX.js +0 -2
  118. package/dist/startup/chunks/chunk-EQDIVTWX.js.map +0 -6
  119. package/dist/startup/chunks/chunk-FRHYXPNB.js +0 -2
  120. package/dist/startup/chunks/chunk-FRHYXPNB.js.map +0 -6
  121. package/dist/startup/chunks/chunk-GZKMBTCI.js +0 -3
  122. package/dist/startup/chunks/chunk-GZKMBTCI.js.map +0 -6
  123. package/dist/startup/chunks/chunk-GZLREBOD.js +0 -2
  124. package/dist/startup/chunks/chunk-GZLREBOD.js.map +0 -6
  125. package/dist/startup/chunks/chunk-HFZ5Q3X5.js +0 -2
  126. package/dist/startup/chunks/chunk-HFZ5Q3X5.js.map +0 -6
  127. package/dist/startup/chunks/chunk-ICFZ5GZR.js +0 -2
  128. package/dist/startup/chunks/chunk-ICFZ5GZR.js.map +0 -6
  129. package/dist/startup/chunks/chunk-JR4A5QXZ.js +0 -2
  130. package/dist/startup/chunks/chunk-JR4A5QXZ.js.map +0 -6
  131. package/dist/startup/chunks/chunk-LUXHNCKY.js +0 -2
  132. package/dist/startup/chunks/chunk-LUXHNCKY.js.map +0 -6
  133. package/dist/startup/chunks/chunk-NDSFD5HI.js +0 -2
  134. package/dist/startup/chunks/chunk-NDSFD5HI.js.map +0 -6
  135. package/dist/startup/chunks/chunk-NWDQFVYZ.js +0 -6
  136. package/dist/startup/chunks/chunk-NWDQFVYZ.js.map +0 -6
  137. package/dist/startup/chunks/chunk-PAPTIOCL.js +0 -2
  138. package/dist/startup/chunks/chunk-PAPTIOCL.js.map +0 -6
  139. package/dist/startup/chunks/chunk-PIJUYQ3B.js +0 -2
  140. package/dist/startup/chunks/chunk-PIJUYQ3B.js.map +0 -6
  141. package/dist/startup/chunks/chunk-PXRVFPRL.js +0 -2
  142. package/dist/startup/chunks/chunk-PXRVFPRL.js.map +0 -6
  143. package/dist/startup/chunks/chunk-RELMHYIG.js +0 -3
  144. package/dist/startup/chunks/chunk-RELMHYIG.js.map +0 -6
  145. package/dist/startup/chunks/chunk-RJAXEI5Z.js +0 -2
  146. package/dist/startup/chunks/chunk-RJAXEI5Z.js.map +0 -6
  147. package/dist/startup/chunks/chunk-RPJ2AWHI.js +0 -2
  148. package/dist/startup/chunks/chunk-RPJ2AWHI.js.map +0 -6
  149. package/dist/startup/chunks/chunk-TW2LBTSL.js +0 -2
  150. package/dist/startup/chunks/chunk-TW2LBTSL.js.map +0 -6
  151. package/dist/startup/chunks/chunk-TYNDYSMP.js +0 -2
  152. package/dist/startup/chunks/chunk-TYNDYSMP.js.map +0 -6
  153. package/dist/startup/chunks/chunk-TZNTMUGF.js +0 -117
  154. package/dist/startup/chunks/chunk-TZNTMUGF.js.map +0 -6
  155. package/dist/startup/chunks/chunk-UT4NB43O.js +0 -2
  156. package/dist/startup/chunks/chunk-UT4NB43O.js.map +0 -6
  157. package/dist/startup/chunks/chunk-VTNLVERY.js +0 -2
  158. package/dist/startup/chunks/chunk-VTNLVERY.js.map +0 -6
  159. package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js +0 -3
  160. package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js.map +0 -6
  161. package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js +0 -2
  162. package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js.map +0 -6
  163. package/dist/startup/chunks/production-connections-27KWJIR6.js +0 -2
  164. package/dist/startup/chunks/production-connections-27KWJIR6.js.map +0 -6
  165. package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js +0 -2
  166. package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js.map +0 -6
  167. package/dist/startup/chunks/supervisor-control-VPVKE7NI.js +0 -2
  168. package/dist/startup/chunks/supervisor-control-VPVKE7NI.js.map +0 -6
  169. package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js +0 -2
  170. package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js.map +0 -6
  171. package/dist/startup/chunks/trace-store-ZIU4S2VR.js +0 -6
  172. package/dist/startup/chunks/trace-store-ZIU4S2VR.js.map +0 -6
  173. package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js +0 -3
  174. package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js.map +0 -6
@@ -1,13 +1,5 @@
1
- import{a as qn,b as Ht,c as Wt,g as Gt,i as Xt,j as Qt,k as Y,l as J,m as Yt,p as Jt,q as Ee,u as Zt,v as ei,w as De,x as ce,y as ni,z as ti}from"./chunks/chunk-NDSFD5HI.js";import{a as k,e as ii,f as ri,g as oi,h as si,i as ai,j as di,k as li,l as ui,m as ci,o as je,p as T,q as B,r as Pe,s as Fe}from"./chunks/chunk-RELMHYIG.js";import"./chunks/chunk-TW2LBTSL.js";import{a as Pt,c as Ft,d as Nt,e as qt,f as Be,g as Lt,h as Nn,i as Ue,j as zt,k as ue,l as Kt,m as _t,n as to}from"./chunks/chunk-5ZIGORCF.js";import{a as $t,b as f,c as $e,d as eo,e as j,f as W,g as x,h as At,i as y,j as no,k as c,m as Bt,n as Ut,o as Et,p as Q,q as Dt,r as O,s as jt,t as w,u as b}from"./chunks/chunk-TZNTMUGF.js";import{a as d,b as ae,c as Ae,d as de,e as Oe,f as Ot,g as le}from"./chunks/chunk-NWDQFVYZ.js";import{a as Re}from"./chunks/chunk-PXRVFPRL.js";import{a as Ve}from"./chunks/chunk-BCT2WD5R.js";import{e as Vt,h as Fn}from"./chunks/chunk-EQDIVTWX.js";import"./chunks/chunk-6G7QKB6J.js";import"./chunks/chunk-ECYRVU25.js";import"./chunks/chunk-RPJ2AWHI.js";import{b as Rt,f as H,g as Me}from"./chunks/chunk-GZKMBTCI.js";import"./chunks/chunk-AUAERYTD.js";import{b as Mt}from"./chunks/chunk-JR4A5QXZ.js";import"./chunks/chunk-HFZ5Q3X5.js";import"./chunks/chunk-2B6P3EZQ.js";function M(n){let e=new WeakSet,t=i=>{if(!(i===null||typeof i!="object")&&!e.has(i)){e.add(i);for(let r of Object.values(i))t(r);Object.freeze(i)}};return t(n),n}function U(n,e){return{input:n.inputTokens,output:n.outputTokens,...n.reasoningTokens===void 0?{}:{reasoning:n.reasoningTokens},tokenStatus:po(n.tokensKnown,n.inputTokens,n.outputTokens,n.llmCalls),...n.costUsd===void 0?{}:{costUsd:n.costUsd},...n.estimatedCostUsd===void 0?{}:{estimatedCostUsd:n.estimatedCostUsd},costStatus:zn(n.usdKnown,n.costUsd,n.estimatedCostUsd),...n.promptCache===void 0?{}:{promptCache:n.promptCache},...n.llmCalls===void 0?{}:{llmCalls:n.llmCalls},...n.llmLatencyMs===void 0?{}:{llmLatencyMs:n.llmLatencyMs},...n.model===void 0?{}:{model:n.model},...e===void 0?{}:{elapsedMs:e}}}function ee(n){let e=n.runs.filter(a=>a.conversationId===n.conversationId),t=n.analyses.filter(a=>a.source.conversationId===n.conversationId),i=new Set(e.map(a=>String(a.id))),r=n.supervisors.filter(a=>a.rootRunId!==void 0&&i.has(String(a.rootRunId))),o=new Set(r.map(a=>String(a.id))),s=n.workers.filter(a=>o.has(String(a.supervisorId)));return{turns:io(e),analyses:ro(t),delegated:co(s),attribution:r.length===0&&t.length===0?"complete":"separate-totals"}}function io(n){return fi(n.map(e=>U(e)))}function ro(n){return fi(n.map(e=>{let t=e.usage,i=e.modelCalls,r=oo(t,i),o=ao(t,e.costUsd,i),s=uo(i,t?.latencyMs);return{input:r.input,output:r.output,...t?.reasoning===void 0?{}:{reasoning:t.reasoning},tokenStatus:r.status,...o.costUsd===void 0?{}:{costUsd:o.costUsd},...o.estimatedCostUsd===void 0?{}:{estimatedCostUsd:o.estimatedCostUsd},costStatus:o.status,...t?.promptCache===void 0?{}:{promptCache:t.promptCache},...i===void 0?{}:{llmCalls:i.length},...s===void 0?{}:{llmLatencyMs:s},...t?.model===void 0?{}:{model:t.model},...e.wallTimeMs===void 0?{}:{elapsedMs:e.wallTimeMs}}}))}function oo(n,e){let t=so(e);if(n===void 0)return t;if(n.tokensKnown!==!1)return{input:n.input,output:n.output,status:"complete",hasKnownTokens:!0};let r=n.input>0||n.output>0||t.hasKnownTokens;return{input:Ln([n.input,t.input])??0,output:Ln([n.output,t.output])??0,status:r?"observed-floor":"unknown",hasKnownTokens:r}}function so(n){if(n===void 0)return{input:0,output:0,status:"unknown",hasKnownTokens:!1};let e=n.filter(o=>o.inputTokens!==void 0),t=n.filter(o=>o.outputTokens!==void 0),i=e.length>0||t.length>0,r=n.length>0&&n.every(o=>o.tokensKnown&&o.inputTokens!==void 0&&o.outputTokens!==void 0);return{input:P(e.map(o=>o.inputTokens)),output:P(t.map(o=>o.outputTokens)),status:i?r?"complete":"observed-floor":"unknown",hasKnownTokens:i}}function ao(n,e,t){let i=lo(n,e);if(n===void 0)return e!==void 0?i:pi(t);if(n.usdKnown!==!1&&(n.costUsd!==void 0||e!==void 0))return i;let r=pi(t);if(n.usdKnown===!1){let o=Ln([i.costUsd,r.costUsd]),s=i.estimatedCostUsd;return{...o===void 0?{}:{costUsd:o},...s===void 0?{}:{estimatedCostUsd:s},status:zn(n.usdKnown,o,s),hasKnownCost:o!==void 0||s!==void 0}}return t!==void 0&&r.hasKnownCost?r:i}function lo(n,e){if(n===void 0)return e===void 0?{status:"unknown",hasKnownCost:!1}:{costUsd:e,status:"reported",hasKnownCost:!0};let t=n.costUsd??e;return{...t===void 0?{}:{costUsd:t},...n.estimatedCostUsd===void 0?{}:{estimatedCostUsd:n.estimatedCostUsd},status:zn(n.usdKnown,t,n.estimatedCostUsd),hasKnownCost:t!==void 0||n.estimatedCostUsd!==void 0}}function pi(n){if(n===void 0)return{status:"unknown",hasKnownCost:!1};let e=n.filter(a=>a.cost?.status==="observed"&&a.cost.usd!==void 0),t=n.filter(a=>a.cost?.status==="estimated"&&a.cost.usd!==void 0),i=Z(e.map(a=>a.cost.usd)),r=e.length+t.length;if(r===0)return{status:"unknown",hasKnownCost:!1};if(n.length-r>0)return{...i===void 0?{}:{costUsd:i},status:i===void 0?"unknown":"observed-floor",hasKnownCost:!0};let s=Z([...e,...t].map(a=>a.cost.usd));return{...i===void 0?{}:{costUsd:i},...t.length===0||s===void 0?{}:{estimatedCostUsd:s},status:t.length>0?"estimated":"reported",hasKnownCost:!0}}function uo(n,e){if(n===void 0)return e;if(!(n.length===0||n.some(t=>t.latencyMs===void 0)))return P(n.map(t=>t.latencyMs))}function fi(n){let e=n.map(u=>u.tokenStatus??"unknown"),t=n.map(u=>u.costStatus??"unknown"),i=Z(n.map(u=>u.reasoning)),r=Z(n.map(u=>u.costUsd)),o=Z(n.map(u=>u.estimatedCostUsd)),s=ho(n.map(u=>u.promptCache)),a=Ne(n.map(u=>u.llmCalls)),l=Ne(n.map(u=>u.llmLatencyMs));return{sourceCount:n.length,input:P(n.map(u=>u.input)),output:P(n.map(u=>u.output)),...i===void 0?{}:{reasoning:i},tokenStatus:fo(e),...r===void 0?{}:{costUsd:r},...o===void 0?{}:{estimatedCostUsd:o},costStatus:mo(t),...s===void 0?{}:{promptCache:s},...a.value===void 0?{}:{llmCalls:a.value},...l.value===void 0?{}:{llmLatencyMs:l.value},unknownTokenSources:e.filter(u=>u!=="complete").length,unknownCostSources:t.filter(u=>u!=="reported").length,callStatus:a.status,latencyStatus:l.status,unknownCallSources:a.unknownSources,unknownLatencySources:l.unknownSources}}function co(n){let e=n.filter(u=>u.inputTokens!==void 0||u.outputTokens!==void 0),t=n.filter(u=>u.spendUsd!==void 0),i=n.length-e.length,r=n.length-t.length,o=n.filter(u=>u.inputTokens===void 0||u.outputTokens===void 0||u.usageCompleteness!=="complete").length,s=n.filter(u=>u.spendUsd===void 0||u.usageCompleteness!=="complete").length,a=Ne(n.map(()=>{})),l=Ne(n.map(u=>u.latencyMs));return{sourceCount:n.length,input:P(e.map(u=>u.inputTokens)),output:P(e.map(u=>u.outputTokens)),tokenStatus:n.length===0||e.length===0?"unknown":o>0?"observed-floor":"complete",...t.length===0?{}:{costUsd:P(t.map(u=>u.spendUsd))},costStatus:n.length===0||t.length===0?"unknown":s>0?"observed-floor":"reported",...l.value===void 0?{}:{llmLatencyMs:l.value},unknownTokenSources:Math.max(i,o),unknownCostSources:Math.max(r,s),callStatus:a.status,latencyStatus:l.status,unknownCallSources:a.unknownSources,unknownLatencySources:l.unknownSources}}function po(n,e,t,i){return n!==!1?"complete":e>0||t>0||(i??0)>0?"observed-floor":"unknown"}function zn(n,e,t){return n!==!1&&e!==void 0?"reported":e!==void 0?"observed-floor":t!==void 0?"estimated":"unknown"}function fo(n){return n.length===0||n.includes("unknown")?"unknown":n.includes("observed-floor")?"observed-floor":"complete"}function mo(n){return n.length===0||n.includes("unknown")?"unknown":n.includes("observed-floor")?"observed-floor":n.every(e=>e==="reported")?"reported":"estimated"}function P(n){return n.reduce((e,t)=>e+(t??0),0)}function Z(n){let e=n.filter(t=>t!==void 0);return e.length===0?void 0:P(e)}function Ln(n){let e=n.filter(t=>t!==void 0);return e.length===0?void 0:Math.max(...e)}function Ne(n){let e=n.filter(i=>i===void 0).length,t=Z(n);return{...t===void 0?{}:{value:t},status:t===void 0?"unknown":e===0?"complete":"partial",unknownSources:e}}function ho(n){let e={};for(let t of n)for(let[i,r]of Object.entries(t??{}))e[i]=(e[i]??0)+r;return Object.keys(e).length===0?void 0:Object.freeze(e)}var Kn=Object.freeze({"conversation.create":"Conversation creation is not exposed by the current application core","conversation.open":"Conversation search is not exposed by the current application core","run.runner":"Runner overrides require the current profile compatibility helpers","run.model":"Model overrides require provider capabilities from the current connection","run.effort":"Effort overrides require provider capabilities from the current connection","conversation.branch":"Branch creation is not exposed by the current application core","conversation.clone":"Conversation cloning is not exposed by the current application core","conversation.fork":"Fork planning requires the current conversation and environment graph","analysis.ask":"Trace analysis requires the current agent-eval adapter","analysis.recipe":"Trace analysis recipes require the current agent-eval adapter","analysis.compare":"Comparisons require the current agent-eval adapter","interaction.respond":"Interaction response is not exposed by the current runtime adapter","interaction.automation":"Interaction automation requires the shared response contract","export.create":"Redacted export is not exposed by the current storage adapter"});function qe(n,e=!0,t,i=!1){let r=n.activeRunId!==null,o=n.profile.model?.default==="fixture/deterministic",s=n.selectedConnectionId!==null,a={};for(let[v,I]of Object.entries(Kn))a[v]={available:!1,source:"application",reason:I};let l=n.runs.filter(v=>v.complete&&(v.status==="completed"||v.status==="failed")),u=n.workspace===null?"Initialize a workspace before analyzing a run":l.length===0?"Complete or fail a run before analyzing it":void 0;a["analysis.ask"]=u?{available:!1,source:"application",reason:u}:{available:!0,source:"application"},a["analysis.recipe"]=u?{available:!1,source:"application",reason:u}:{available:!0,source:"application"},a["analysis.compare"]=l.length<2?{available:!1,source:"application",reason:"Two completed or failed runs are required for comparison"}:{available:!0,source:"application"},a["application.quit"]={available:!0,source:"local"},a["help.read"]={available:!0,source:"local"},a["profile.select"]={available:!0,source:"application"},a["connection.select"]={available:!0,source:"application"},a["settings.open"]={available:!0,source:"application"},a["activity.read"]={available:!0,source:"local"},a["graph.read"]={available:!0,source:"local"},a["details.read"]={available:!0,source:"local"},a["interaction.respond"]=i?{available:!0,source:"runtime"}:{available:!1,source:"runtime",reason:Kn["interaction.respond"]},a["interaction.automation"]=i?{available:!0,source:"application"}:{available:!1,source:"application",reason:Kn["interaction.automation"]},a["draft.write"]=n.workspace===null?{available:!1,source:"application",reason:"Initialize a workspace before editing a draft"}:{available:!0,source:"application"};let p=n.workspace!==null&&!r;for(let v of["conversation.create","conversation.open","conversation.branch","conversation.clone","conversation.fork","export.create"])a[v]=p?{available:!0,source:"application"}:{available:!1,source:"application",reason:n.workspace===null?"Initialize a workspace first":"Finish or cancel the active run first"};a["run.send"]=n.workspace!==null&&!r&&(o||s)?{available:!0,source:"provider"}:{available:!1,source:"application",reason:r?"A run is already active":n.workspace===null?"Initialize a workspace before sending":"Configure a connection before sending"},a["run.cancel"]=r&&e?{available:!0,source:"runtime"}:{available:!1,source:"runtime",reason:r?"The current runtime does not acknowledge provider cancellation":"There is no active run to cancel"};let m=n.activeRunId?n.runs.find(v=>v.id===n.activeRunId):void 0,h=m?void 0:[...n.runs].reverse().find(v=>(v.status==="detached"||v.status==="unknown")&&v.controlRef!==void 0);return a["run.queue"]=m?.capabilities.controls.queue?{available:!0,source:"provider"}:{available:!1,source:"provider",reason:r?"The current runtime does not report queued input support":"There is no active run"},a["run.steer"]=m?.capabilities.controls.steer?{available:!0,source:"provider"}:{available:!1,source:"provider",reason:r?"The current runtime does not report steering support":"There is no active run"},a["run.detach"]=m?.capabilities.streaming.detach?{available:!0,source:"provider"}:{available:!1,source:"provider",reason:r?"The current runtime does not report detach support":"There is no active run"},a["run.reconnect"]=h?.capabilities.streaming.replay&&h.capabilities.controls.recreate?{available:!0,source:"provider"}:{available:!1,source:"provider",reason:r?"Detach the active run before reconnecting it":h?"The detached run cannot be recreated by this provider":"There is no detached run to reconnect"},a["run.reconcile"]=h?.capabilities.controls.status?{available:!0,source:"provider"}:{available:!1,source:"provider",reason:r?"Detach the active run before reconciling it":h?"The detached run does not expose provider status":"There is no detached run to reconcile"},t==="interaction"&&(a["interaction.respond"]={available:!0,source:"provider"}),t==="fork"&&(a["conversation.fork"]={available:!0,source:"provider"}),t==="analysis"&&(a["analysis.ask"]={available:!0,source:"application"}),t==="comparison"&&(a["analysis.compare"]={available:!0,source:"application"}),Object.freeze(a)}function ze(n){let e=n.findings.flatMap(i=>i.citations.map(r=>({id:String(r.id),eventId:String(r.eventId??"unavailable"),text:r.quote??"citation has no quoted text"}))),t=yo(n);return{source:String(n.source.digest),...n.question===void 0?{}:{question:d(n.question)},analyst:String(n.analystProfileId??"configured analyst"),recipe:n.recipe??(n.question===void 0?"analysis":"ask"),status:n.status==="preparing"||n.status==="running"?"running":n.status,findings:n.findings.map(i=>({id:i.id,title:i.text,...i.severity===void 0?{}:{severity:i.severity},...i.confidence===void 0?{}:{confidence:String(i.confidence)},citationIds:i.citations.map(r=>String(r.id))})),citations:e,execution:Gt(n),footer:[{label:"source complete",value:n.source.complete?"yes":"no"},{label:"findings",value:String(n.findings.length)},...n.usage?.model===void 0?[]:[{label:"model",value:d(n.usage.model)}],...n.provenance?.runner===void 0?[]:[{label:"runner",value:d(n.provenance.runner)}],...n.provenance?.agentEvalVersion===void 0?[]:[{label:"agent-eval",value:d(n.provenance.agentEvalVersion)}],...n.usage===void 0?[]:[{label:"tokens",value:`${n.usage.input} in / ${n.usage.output} out`}],...t===void 0?[]:[t],...n.wallTimeMs===void 0?[]:[{label:"analysis time",value:`${n.wallTimeMs}ms`}],...(n.checks??n.provenance?.checks??[]).map(i=>({label:`check ${d(i.id)}`,value:`${i.status}${i.detail===void 0?"":` \xB7 ${d(i.detail)}`}`}))],...n.error===void 0?n.status==="failed"?{error:"analysis source or analyst execution failed"}:{}:{error:n.error}}}function yo(n){if(n.usage?.estimatedCostUsd!==void 0)return{label:"analysis cost estimate",value:`~$${n.usage.estimatedCostUsd.toFixed(4)}`};if(n.usage?.usdKnown===!1&&n.usage.costUsd!==void 0)return{label:"analysis cost minimum",value:`\u2265$${n.usage.costUsd.toFixed(4)}`};if(n.costUsd!==void 0)return{label:"analysis cost",value:`$${n.costUsd.toFixed(4)}`}}function Ke(n){let e=go(n);return[e.heading,...e.context,...e.details]}function go(n){let e=wo(n),t=new Map(n.citations.map(u=>[u.id,u])),i=new Map(n.citations.map((u,p)=>[u.id,p+1])),r=new Set,o=[];n.question!==void 0&&(o.push(pe("question")),o.push(d(n.question))),o.push(pe("findings"));for(let[u,p]of n.findings.entries()){let m=p.severity?` \xB7 ${d(p.severity)}`:"",h=p.confidence?` \xB7 confidence ${d(p.confidence)}`:"",v=p.citationIds.length?`[${p.citationIds.map(I=>i.get(I)??"?").join(",")}] `:"[no citation] ";o.push(`${u+1}. ${v}${d(p.title)}${m}${h}`);for(let I of p.citationIds){r.add(I);let q=t.get(I),K=i.get(I)??"?";o.push(q===void 0?`! evidence [${K}] unavailable \xB7 citation ${Le(I)}`:`\u21B3 [${K}] ${d(q.text)} \xB7 event ${Le(q.eventId)}`)}}n.findings.length===0&&o.push("No findings were returned.");for(let u of n.citations)r.has(u.id)||o.push(`\u21B3 [${i.get(u.id)??"?"}] ${d(u.text)} \xB7 event ${Le(u.eventId)}`);let s=vo(n,e);s!==void 0&&(o.push(pe("next")),o.push(`next: ${s}`)),o.push(pe("model use"));let a=n.execution,l=bo(a);if(a?.modelCalls===void 0)o.push("Model calls were not reported.");else if(a.modelCalls.length===0)o.push("0 model calls reported.");else{o.push(Qt(a.modelCalls));for(let u of a.modelCalls)o.push(`model call ${Xt(u)}`)}if(n.error&&o.push(`! ${d(n.error)}`),n.footer.length>0){o.push(pe("run receipt"));for(let u of n.footer)o.push(`${d(u.label)}: ${d(u.value)}`)}return{heading:`${e.command} \xB7 ${e.label}`,context:[`source: ${Le(n.source)} \xB7 frozen`,`analyst: ${d(n.analyst)} \xB7 ${d(n.status)}`,...l===void 0?[]:[l]],details:o}}function bo(n){if(n?.runner!==void 0&&n.configuredModel!==void 0)return`route: runner ${d(n.runner)} \xB7 configured model ${d(n.configuredModel)}`;if(n?.runner!==void 0)return`route: runner ${d(n.runner)}`;if(n?.configuredModel!==void 0)return`route: configured model ${d(n.configuredModel)}`}function pe(n){return`\u2500\u2500 ${n}`}function vo(n,e){if(n.status==="failed")return"retry /ask with a narrower question, or open /activity to inspect the failed analyst call";if(n.status==="cancelled")return"run /ask again, or open /activity to inspect the cancelled analyst call";if(n.status==="completed")return e.command==="/ask"?"ask a narrower question, or use /compare <left> <right> against another frozen run":e.command==="/compare"?"inspect either frozen run with /ask <question>":"inspect the cited evidence, or use /compare <left> <right> against another frozen run"}function wo(n){let e=d(n.recipe).trim(),t=e.toLocaleLowerCase();return t==="ask"||t==="question"?{command:"/ask",label:"frozen question"}:t.includes("compare")?{command:"/compare",label:"paired sources"}:{command:"/analyze",label:e||"named recipe"}}function Le(n){let e=d(n);return e.length<=24?e:`${e.slice(0,15)}\u2026${e.slice(-8)}`}var mi=240;function fe(n){return!_e(n)||typeof n.baselineSourceDigest!="string"||typeof n.candidateSourceDigest!="string"||typeof n.baselineRunId!="string"||typeof n.candidateRunId!="string"||!Array.isArray(n.fields)||!Array.isArray(n.rows)||!_e(n.paired)||!_e(n.semantic)?!1:Number.isInteger(n.paired.nPairs)&&Number.isInteger(n.paired.nUnpairedBaseline)&&Number.isInteger(n.paired.nUnpairedTreatment)&&n.semantic.status==="unavailable"&&typeof n.semantic.reason=="string"}function me(n){let e=yi(n,"baseline"),t=yi(n,"candidate");return{baseline:e,candidate:t,pairCount:n.paired.nPairs,unpairedBaseline:n.paired.nUnpairedBaseline,unpairedCandidate:n.paired.nUnpairedTreatment,sampleLimit:Co(n.paired.nPairs),fields:n.fields.map(i=>({name:i.name,baseline:He(i,"baseline"),candidate:He(i,"candidate"),asymmetry:i.asymmetry})),pairedFacts:_n("paired",n.paired),semantic:n.semantic,replayed:n.replayed===!0}}function he(n){return["/compare \xB7 frozen runs",...bi(n)]}function bi(n){let e=[...hi(n.baseline),...hi(n.candidate),`sample: ${n.pairCount} paired \xB7 ${n.unpairedBaseline} baseline-only \xB7 ${n.unpairedCandidate} candidate-only`,`! ${n.sampleLimit}`,"captured fields \xB7 baseline | candidate | availability",...n.fields.map(t=>`${t.name}: ${t.baseline} | ${t.candidate} | ${t.asymmetry}`),"paired measurements \xB7 candidate minus baseline where applicable",...n.pairedFacts.map(t=>`${t.label}: ${t.value}`),`semantic review: ${n.semantic.status} \xB7 ${n.semantic.reason}`];return n.replayed&&e.splice(0,0,"saved result: replayed from the local journal"),e.map(t=>d(t))}function hi(n){return[`${n.label} run: ${gi(n.runId)}`,`${n.label} source: ${gi(n.sourceDigest)}`,`${n.label} outcome: ${n.outcome} \xB7 cost: ${n.cost} \xB7 source: ${n.costProvenance}`]}function yi(n,e){let t=n.fields.find(o=>o.name==="run.cost_usd"),i=n.fields.find(o=>o.name==="run.status"),r=e==="baseline"?t?.baselinePresent:t?.candidatePresent;return{label:e,runId:e==="baseline"?n.baselineRunId:n.candidateRunId,sourceDigest:e==="baseline"?n.baselineSourceDigest:n.candidateSourceDigest,outcome:i===void 0?"missing (terminal outcome not captured)":He(i,e),cost:t===void 0?"missing":He(t,e),costProvenance:r===!0?"frozen run field run.cost_usd":"not captured in frozen run"}}function He(n,e){if(!(e==="baseline"?n.baselinePresent:n.candidatePresent))return"missing";let i=e==="baseline"?n.baseline:n.candidate;return i===void 0?"missing (declared present without a value)":vi(i)}function _n(n,e){if(Array.isArray(e))return e.length===0?[{label:n,value:"[]"}]:e.flatMap((t,i)=>_n(`${n}[${i}]`,t));if(_e(e)){let t=Object.entries(e).sort(([i],[r])=>i.localeCompare(r));return t.length===0?[{label:n,value:"{}"}]:t.flatMap(([i,r])=>_n(`${n}.${i}`,r))}return[{label:n,value:vi(e)}]}function vi(n){let e;if(typeof n=="string")e=n;else if(n===void 0)e="missing";else try{e=JSON.stringify(n)??String(n)}catch{e="[unserializable value]"}let t=d(e),i=Array.from(t);return i.length<=mi?t:`${i.slice(0,mi-1).join("")}\u2026`}function Co(n){return n===0?"No matched runs exist, so no paired conclusion is available.":n===1?"One pair is descriptive; it cannot support a reliable general conclusion.":`${n} pairs describe only this measured sample; no semantic conclusion is shown.`}function gi(n){let e=d(n);return e.length<=24?e:`${e.slice(0,15)}\u2026${e.slice(-8)}`}function _e(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}var Io=128,ko=64*1024;function C(n){return Me(n,void 0,{maxDepth:6,maxItems:Io,maxBytes:ko})}function g(n){return typeof n=="string"?ae(n):void 0}function wi(n){return"provider"in n&&n.provider?n.provider:void 0}function V(n,e){let t=wi(n);return t===void 0?e:{...e,source:C(t)}}function Ci(n){let e=n.event,t=wi(e),i=t===void 0?{}:{source:C(t)};switch(e.kind){case"run.text.delta":{let r=g(e.text)??"";return V(e,{...i,text:r,part:{kind:"text",status:"running",text:r}})}case"run.reasoning.delta":{let r=g(e.text)??"";return V(e,{...i,reasoning:r,part:{id:e.partId,kind:"reasoning",status:"running",text:r}})}case"run.part.updated":return V(e,{...i,part:Hn(e.part),...e.delta===void 0?{}:{delta:g(e.delta)??""}});case"run.tool.call":return V(e,{...i,tool:{id:e.partId,callId:e.callId,name:e.toolName,status:"running",...e.input===void 0?{}:{input:C(e.input)}},part:{id:e.partId,kind:"tool",status:"running",text:"",...e.input===void 0?{}:{input:C(e.input)}}});case"run.tool.result":return V(e,{...i,tool:{id:e.partId,callId:e.callId,name:e.toolName,status:e.error===void 0?"complete":"failed",...e.result===void 0?{}:{result:C(e.result)},...e.error===void 0?{}:{error:d(e.error)}},part:{id:e.partId,kind:"result",status:e.error===void 0?"complete":"failed",text:"",...e.result===void 0?{}:{result:C(e.result)},...e.error===void 0?{}:{error:d(e.error)}}});case"run.artifact":return V(e,{...i,artifact:C({id:e.artifactId,name:e.name,mimeType:e.mimeType,uri:e.uri,metadata:e.metadata}),part:{id:e.artifactId,kind:"artifact",status:"complete",text:g(e.name??e.uri)??"",...e.artifactId===void 0?{}:{artifactId:e.artifactId},...e.uri===void 0?{}:{uri:e.uri},...e.mimeType===void 0?{}:{mimeType:e.mimeType},...e.metadata===void 0?{}:{metadata:C(e.metadata)}}});case"run.proposal":return V(e,{...i,proposal:C({id:e.proposalId,title:e.title,status:e.status}),part:{id:e.proposalId,kind:"proposal",status:"complete",text:g(e.title)??""}});case"run.warning":return V(e,{...i,warning:C({code:e.code,message:e.message}),text:g(e.message)??""});case"run.error":return V(e,{...i,error:C({message:e.message,recoverable:e.recoverable}),text:g(e.message)??""});case"run.finished":return V(e,{...i,status:e.status,completeness:e.status==="unknown"?"unknown":"complete",finalText:g(e.finalText)??"",usage:C(e.usage),...e.reason===void 0?{}:{reason:g(e.reason)??"RUNTIME_STATUS"},...e.error===void 0?{}:{error:g(e.error)??"RUNTIME_ERROR"}});case"run.interaction":return V(e,{...i,interaction:So(e.request)});case"run.interaction.cancelled":return V(e,{...i,interaction:C({id:e.interactionId,status:"cancelled",reason:e.reason})});case"run.provider.event":return V(e,{...i,unknown:C(e.envelope.event)});case"run.queue.added":return{...i,queue:{operationId:e.operationId,runId:e.runId,text:g(e.text)??"",position:e.position,status:"queued"}};case"run.queue.removed":return{...i,queue:{operationId:e.operationId,runId:e.runId,status:"removed"}};case"run.control.requested":return{...i,control:C({operationId:e.operationId,runId:e.runId,control:e.control,status:"requested",reason:e.reason,text:e.text})};case"run.cancel.requested":return{...i,control:C({operationId:e.operationId,runId:e.runId,control:"cancel",status:"requested",reason:e.reason})};case"run.control.acknowledged":return{...i,control:C({operationId:e.operationId,runId:e.runId,control:e.control,status:e.outcome,detail:e.detail})};case"run.requested":return{...i,text:g(e.text)??"",admission:C(e.receipt),status:"admitted"};case"run.unknown":return{...i,status:"unknown",completeness:"unknown",error:g(e.detail)??"RUNTIME_UNKNOWN"};case"run.detached":return{...i,status:"detached",completeness:"streaming",...e.cursor===void 0?{}:{cursor:g(e.cursor)??""},...e.detail===void 0?{}:{detail:g(e.detail)??""}};case"run.reconnecting":return{...i,status:"reconnecting",completeness:"streaming",...e.after===void 0?{}:{cursor:g(e.after)??""}};case"run.reconciled":return{...i,status:e.status,completeness:e.status==="unknown"?"unknown":"complete",evidence:e.evidence,...e.detail===void 0?{}:{detail:g(e.detail)??"RUNTIME_STATUS"}};default:return{...i,value:C(e)}}}function So(n){return{id:g(n.id)??"",kind:g(n.kind)??"",title:g(n.title)??"",...n.body===void 0?{}:{body:g(n.body)??""},...n.subject===void 0?{}:{subject:xo(n.subject)},answerSpec:To(n.answerSpec),...n.responseScopes===void 0?{}:{responseScopes:n.responseScopes.map(e=>g(e)??"")},...n.allowedOutcomes===void 0?{}:{allowedOutcomes:n.allowedOutcomes.map(e=>g(e)??"")}}}function xo(n){switch(n.type){case"tool":return{type:"tool",toolName:g(n.toolName)??""};case"command":return{type:"command",command:g(n.command)??""};case"file":return{type:"file",path:g(n.path)??"",...n.preview===void 0?{}:{preview:g(n.preview)??""}};case"resource":return{type:"resource",uri:g(n.uri)??""}}}function To(n){return{fields:n.fields.map(e=>{let t={type:e.type,name:g(e.name)??"",label:g(e.label)??"",...e.required===void 0?{}:{required:e.required}};switch(e.type){case"text":return{...t,...e.multiline===void 0?{}:{multiline:e.multiline},...e.maxLength===void 0?{}:{maxLength:e.maxLength}};case"number":return{...t,...e.min===void 0?{}:{min:e.min},...e.max===void 0?{}:{max:e.max}};case"boolean":return t;case"select":return{...t,options:e.options.map(i=>({value:g(i.value)??"",label:g(i.label)??"",...i.description===void 0?{}:{description:g(i.description)??""}})),...e.multi===void 0?{}:{multi:e.multi},...e.allowCustom===void 0?{}:{allowCustom:e.allowCustom}};case"secret":return{...t,...e.maxLength===void 0?{}:{maxLength:e.maxLength}};default:return t}})}}function Hn(n,e){let t=n.kind==="tool-call"?"tool":n.kind==="tool-result"?"result":n.kind==="proposal"?"analysis":n.kind==="interaction"?"system":n.kind;return{id:n.id,kind:t,text:e??ae(n.text??n.title??""),...n.status&&Mo(n.status)?{status:n.status}:{},...n.title===void 0?{}:{subject:{type:n.kind,title:d(n.title)}},...n.source?.eventId===void 0?{}:{sourceEventId:n.source.eventId},...n.toolName===void 0?{}:{toolName:d(n.toolName)},...n.callId===void 0?{}:{callId:d(n.callId)},...n.input===void 0?{}:{input:C(n.input)},...n.result===void 0?{}:{result:C(n.result)},...n.error===void 0?{}:{error:d(n.error)},...n.artifactId===void 0?{}:{artifactId:d(n.artifactId)},...n.uri===void 0?{}:{uri:d(n.uri)},...n.mimeType===void 0?{}:{mimeType:d(n.mimeType)},...n.metadata===void 0?{}:{metadata:C(n.metadata)}}}function Mo(n){return["queued","running","complete","failed","cancelled","unknown"].includes(n)}var Wn=200,ne=500,Ro=["accepted","declined","cancelled"];function Ii(n){if(n.activeRunId){let t=n.runs.find(i=>i.id===n.activeRunId);return t?.status==="cancelling"?"cancelling":t?.status==="reconnecting"?"reconnecting":t?.status==="starting"?"starting":t?.status==="blocked"?"waiting":"running"}let e=n.runs.at(-1)?.status;if(!e)return n.messages.length===0?"empty":"ready";switch(e){case"completed":return"completed";case"failed":return"failed";case"aborted":return"cancelled";case"blocked":return"waiting";case"starting":return"starting";case"streaming":return"running";case"reconnecting":return"reconnecting";case"cancelling":return"cancelling";case"detached":return"detached";case"cancelled":return"cancelled";case"expired":return"expired";case"unknown":return"unknown";default:return"unknown"}}function Gn(n,e){if(n.activeRunId===e.id)return e.status==="cancelling"?"cancelling":e.status==="reconnecting"?"reconnecting":e.status==="starting"?"starting":e.status==="blocked"?"waiting":"running";switch(e.status){case"completed":return"completed";case"failed":return"failed";case"aborted":return"cancelled";case"blocked":return"waiting";case"starting":return"starting";case"streaming":return"running";case"reconnecting":return"reconnecting";case"cancelling":return"cancelling";case"detached":return"detached";case"cancelled":return"cancelled";case"expired":return"expired";default:return"unknown"}}function Vo(n,e){let t=n.parts.map(i=>Hn(i,i.kind==="text"&&i.text===n.text?e:void 0));return t.length>0?t:e?[{id:`${n.id}:text`,kind:"text",text:e,status:n.status==="streaming"?"running":"complete"}]:[]}function Xn(n,e={}){return(n.branches.some(r=>r.id===n.branchId)?Vt(n,n.branchId):n.messages).slice(-Wn).map(r=>{let o=e.completeText?r.text:ae(r.text);return Object.freeze({id:r.id,role:r.role,text:o,status:r.status==="aborted"?"cancelled":r.status==="incomplete"?"incomplete":r.status,...r.runId?{runId:r.runId}:{},parts:Object.freeze(Vo(r,o)),...r.partsTruncated?{partsTruncated:!0}:{}})})}function ki(n){return n.runs.slice(-ne).map(e=>{let t=e.terminalAt===void 0?void 0:Date.parse(e.terminalAt)-Date.parse(e.startedAt),i=e.receipt.requested.profile,r=Ve(i),o=e.receipt.requested.runner??e.receipt.provider,s=e.model??e.receipt.requested.model,a=e.connectionId===void 0?void 0:String(e.connectionId),l=a===void 0?void 0:n.connections.find(u=>String(u.id)===a);return Object.freeze({id:e.id,turnId:e.turnId,operationId:e.operationId,status:Gn(n,e),...i.name===void 0?{}:{profileName:d(i.name)},profileDigest:d(e.receipt.profileDigest),...s===void 0?{}:{model:d(s)},...r.reasoningEffort===void 0?{}:{effort:d(r.reasoningEffort)},...r.maxOutputTokens===void 0?{}:{maxOutputTokens:r.maxOutputTokens},...e.error?{error:d(e.error)}:{},...e.lastCursor?{cursor:d(e.lastCursor)}:{},...e.providerSessionId?{providerSessionId:d(e.providerSessionId)}:{},...e.receipt.requestedSessionId===void 0?{}:{requestedSessionId:d(e.receipt.requestedSessionId)},usage:U(e,t===void 0||!Number.isFinite(t)||t<0?void 0:t),...o===void 0?{}:{runner:d(o)},...e.receipt.provider===void 0?{}:{provider:d(e.receipt.provider)},...a===void 0?{}:{connectionId:a},...a===void 0?{}:{connection:d(l?.name??a)},...e.environmentId===void 0?{}:{environmentId:String(e.environmentId)},completeness:Si(n,e),...e.contentBytes===void 0?{}:{contentBytes:e.contentBytes},...e.contentTruncated?{contentTruncated:!0}:{},...e.activityTruncated?{activityTruncated:!0}:{},...e.eventDetailsTruncated?{eventDetailsTruncated:!0}:{},...e.interactionsTruncated?{interactionsTruncated:!0}:{}})})}function Si(n,e){return e.status==="unknown"?"unknown":n.missingHistory.some(t=>t.runId===e.id)?"missing-history":e.status==="failed"?"failed":e.complete?!e.capabilities.events.stableIdentity&&!e.capabilities.streaming.replay?"unavailable":"complete":(e.status==="streaming","incomplete")}function Qn(n){let e=[];for(let t of n.runs)for(let i of t.interactions){if(i.status!=="pending")continue;let r=i.request,o=Array.isArray(r.answerSpec?.fields)?r.answerSpec.fields:[],s=$o(o,r.kind),a=r.subject?{type:r.subject.type,title:d(r.subject.type==="tool"?r.subject.toolName:r.subject.type==="file"?r.subject.path:r.subject.type==="command"?r.subject.command:r.subject.uri)}:void 0,l=t.receipt.requested.profile.name??n.profile.name??"unnamed profile",u=t.receipt.requested.runner??t.receipt.requested.profile.harness;e.push({runId:t.id,interactionId:r.id,profileName:d(l),...u===void 0?{}:{runner:d(u)},kind:d(r.kind),prompt:d(r.body??r.title),...a===void 0?{}:{subject:a},answerSpec:s,allowedOutcomes:Ao(r),responseScopes:(r.responseScopes??["interaction"]).map(p=>p==="interaction"?"once":p),...r.timeoutMs===void 0?{}:{remainingMs:r.timeoutMs},queuePosition:e.length,secret:o.some(p=>p.type==="secret"||H(p.name)),...t.providerSessionId===void 0?{}:{providerSession:t.providerSessionId}})}return e}function $o(n,e){let t=n.length===1?n[0]:void 0;if(n.length>1)return{kind:"form",fields:n.slice(0,64).map(i=>({name:d(i.name),label:d(i.label),type:i.type==="text"&&H(i.name)?"secret":i.type,required:i.required??!1,...i.type==="select"?{options:i.options.slice(0,128).map(r=>({value:d(r.value),label:d(r.label)}))}:{},...i.type==="number"&&i.min!==void 0?{minimum:i.min}:{},...i.type==="number"&&i.max!==void 0?{maximum:i.max}:{}}))};if(!t)return{kind:"unknown",label:`${e} response`,safeToCancel:!0};switch(t.type){case"text":return{kind:"text",required:t.required??!1,secret:H(t.name)};case"number":return{kind:"number",required:t.required??!1,...t.min===void 0?{}:{minimum:t.min},...t.max===void 0?{}:{maximum:t.max}};case"boolean":return{kind:"boolean",required:t.required??!1,...t.default===void 0?{}:{defaultValue:t.default}};case"select":return{kind:"select",required:t.required??!1,options:t.options.slice(0,128).map(i=>({value:d(i.value),label:d(i.label)}))};case"secret":return{kind:"secret",required:t.required??!1};default:return{kind:"unknown",label:`${e} response`,safeToCancel:!0}}}function Ao(n){return(n.allowedOutcomes??Ro).map(Oo)}function Oo(n){switch(n){case"accepted":return"accept";case"declined":return"reject";case"cancelled":return"cancel"}}function Yn(n){return n.queuedInputs.map(e=>({operationId:e.operationId,runId:e.runId,text:d(e.text),position:e.position,status:n.runs.find(t=>t.id===e.runId)?.status==="unknown"?"unknown":n.missingHistory.some(t=>t.runId===e.runId)?"blocked":"queued"}))}function xi(n){let e=new Map(n.workers.map(r=>[String(r.id),r])),t=new Map,i=new Map(n.runs.map(r=>[String(r.id),r]));return Jt(n,{limit:ne}).activity.map(r=>{let o=r.runId===void 0?void 0:i.get(r.runId),s=r.entityType==="worker"?e.get(r.entityId??""):void 0,a=s?.parentRuntimeRef!==void 0&&s.parentWorkerId===void 0?void 0:s?.parentWorkerId??s?.supervisorId,l=r.entityType==="supervisor"?0:r.entityType==="worker"&&r.entityId!==void 0?Bo(r.entityId,e,t):void 0;return{id:r.id,kind:r.kind,title:r.title,status:o!==void 0&&r.entityType==="run"?Gn(n,o):Y(r.status),...r.detail===void 0?{}:{detail:r.detail},...r.elapsedMs===void 0?{}:{elapsedMs:r.elapsedMs},...r.startedAt===void 0?{}:{startedAt:r.startedAt},occurredAt:r.occurredAt,...r.sourceEventId===void 0?{}:{sourceEventId:r.sourceEventId},...r.runId===void 0?{}:{runId:r.runId},...r.entityType===void 0?{}:{entityType:r.entityType},...r.entityId===void 0?{}:{entityId:r.entityId},...a===void 0?{}:{parentId:String(a)},...l===void 0?{}:{depth:l}}})}function Bo(n,e,t){let i=t.get(n);if(i!==void 0)return i;let r=[],o=new Set,s=n,a=0;for(;s!==void 0;){let l=t.get(s);if(l!==void 0){a=l;break}if(o.has(s)||r.length>=256)break;o.add(s),r.push(s),s=e.get(s)?.parentWorkerId}for(let l=r.length-1;l>=0;l-=1){a+=1;let u=r[l];u!==void 0&&t.set(u,a)}return t.get(n)??1}function Ti(n,e=Ee(n)){let t=new Map(n.runs.map(a=>[String(a.id),a])),i=new Map(n.graphNodes.map(a=>[`${a.reference.kind}:${a.reference.id}`,a])),r=new Map,o=new Map;for(let a of e.edges)r.set(a.destinationNodeId,a.kind),o.set(`${a.destinationType}:${a.destination}`,a.kind);let s=new Map(n.graphEdges.map(a=>[a.destination,a.kind]));return e.nodes.map(a=>{let l=a.type==="run"?t.get(a.id):void 0,u=i.get(`${a.type}:${a.id}`),p=(u===void 0?o.get(`${a.type}:${a.id}`):s.get(u.id)??r.get(u.id))??void 0;return{id:a.id,type:a.type,title:a.title,status:l?Gn(n,l):Y(a.status),depth:a.depth,...p===void 0?{}:{edgeLabel:p},...a.runner===void 0?{}:{runner:a.runner},...a.elapsedMs===void 0?{}:{elapsedMs:a.elapsedMs},startedAt:a.createdAt,...a.costUsd===void 0?{}:{costUsd:a.costUsd}}})}function Mi(n,e,t){let i=Xn(n);return M({schemaVersion:n.schemaVersion,revision:n.revision,sequence:n.sequence,workspace:n.workspace?d(n.workspace):null,conversationId:n.conversationId,branchId:n.branchId,conversations:n.conversations.filter(r=>r.deletedAt===void 0).map(r=>({id:r.id,title:d(r.title),branchId:r.activeBranchId,archived:r.archived,updatedAt:r.updatedAt})),profile:Me(n.profile,void 0,{maxBytes:16*1024*1024}),draft:d(n.draft),messages:i,runs:n.runs.slice(-ne).map(r=>({id:r.id,turnId:r.turnId,operationId:r.operationId,status:r.status,inputTokens:r.inputTokens,outputTokens:r.outputTokens,tokenStatus:U(r).tokenStatus??"unknown",...r.reasoningTokens===void 0?{}:{reasoningTokens:r.reasoningTokens},...r.costUsd===void 0?{}:{costUsd:r.costUsd},...r.estimatedCostUsd===void 0?{}:{estimatedCostUsd:r.estimatedCostUsd},costStatus:U(r).costStatus??"unknown",...r.promptCache===void 0?{}:{promptCache:r.promptCache},...r.llmCalls===void 0?{}:{llmCalls:r.llmCalls},...r.llmLatencyMs===void 0?{}:{llmLatencyMs:r.llmLatencyMs},...r.model===void 0?{}:{model:d(r.model)},...r.receipt.provider===void 0?{}:{provider:d(r.receipt.provider)},...r.receipt.requested.runner===void 0?{}:{runner:d(r.receipt.requested.runner)},...r.connectionId===void 0?{}:{connectionId:String(r.connectionId)},...r.receipt.requestedSessionId===void 0?{}:{requestedSessionId:d(r.receipt.requestedSessionId)},...r.error===void 0?{}:{error:d(r.error)},completeness:Si(n,r),...r.providerSessionId===void 0?{}:{providerSessionId:r.providerSessionId},...r.environmentId===void 0?{}:{environmentId:r.environmentId},...r.receipt.materializationDigest===void 0?{}:{materializationDigest:r.receipt.materializationDigest},...r.lastCursor===void 0?{}:{cursor:r.lastCursor},...r.contentBytes===void 0?{}:{contentBytes:r.contentBytes},...r.contentTruncated?{contentTruncated:!0}:{},...r.activityTruncated?{activityTruncated:!0}:{},...r.eventDetailsTruncated?{eventDetailsTruncated:!0}:{},...r.interactionsTruncated?{interactionsTruncated:!0}:{}})),sessionUsage:ee(n),environments:Object.freeze(n.environments.map(J)),interactions:Qn(n),queue:Yn(n),activeRunId:n.activeRunId,lastError:n.lastError?d(n.lastError):null,...e===void 0?{}:{storageFailure:d(e)},...t===void 0?{}:{cleanupUncertain:d(t)}})}function Jn(n){let e=Ci(n);return M({sequence:n.sequence,revision:n.revision,kind:n.event.kind,payload:Object.freeze(e)})}function Vi(n,e,t){let i=Do(e,t);if(i!==void 0){let l=ze(i),u=Ke(l);return Ri(n,{id:`analysis:${i.id}`,kind:"analysis",title:u[0]??`analysis ${i.id}`,status:Y(i.status),...i.question===void 0?{}:{detail:d(i.question)},occurredAt:i.updatedAt,...i.source.runId===void 0?{}:{runId:i.source.runId},entityType:"analysis",entityId:String(i.id)},{entityType:"analysis",entityId:String(i.id),title:u[0]??`analysis ${i.id}`,status:i.status,lines:u.slice(1),analysisFindingCount:l.findings.length,...l.execution===void 0?{}:{analysisExecution:l.execution}})}let r=Po(e);if(r===void 0||!fe(e))return n;let o=t.durableAnalyses.find(l=>String(l.id)===r);if(o===void 0&&t.allowUnpersisted!==!0)return n;let s=o===void 0?e:o.comparison===void 0?void 0:Re(o);if(s===void 0)return n;let a=he(me(s));return Ri(n,{id:`analysis:${r}`,kind:"analysis",title:a[0]??"/compare \xB7 frozen runs",status:Y(o?.status??"completed"),...o?.updatedAt===void 0?{}:{occurredAt:o.updatedAt},...o?.source.runId===void 0?{}:{runId:o.source.runId},entityType:"analysis",entityId:r},{entityType:"analysis",entityId:r,title:a[0]??"/compare \xB7 frozen runs",status:o?.status??"completed",lines:a.slice(1)})}function Ri(n,e,t){return M({...n,activity:Object.freeze(Uo(n.activity,Object.freeze(e))),entityDetails:Object.freeze([...(n.entityDetails??[]).filter(i=>i.entityType!==t.entityType||i.entityId!==t.entityId),Object.freeze(t)])})}function Uo(n,e){let t=new Map(n.map((s,a)=>[s.id,a])),o=[...n.some(s=>s.id===e.id)?n.filter(s=>s.id!==e.id).slice(-(ne-1)):n.slice(-(ne-1)),e];return o.sort((s,a)=>Eo(s,a,t,n.length)),o}function Eo(n,e,t,i){let r=n.occurredAt===void 0?Number.NaN:Date.parse(n.occurredAt),o=e.occurredAt===void 0?Number.NaN:Date.parse(e.occurredAt);if(Number.isFinite(r)&&Number.isFinite(o)&&r!==o)return r-o;if(Number.isFinite(r)!==Number.isFinite(o))return Number.isFinite(r)?-1:1;let s=t.get(n.id)??i,a=t.get(e.id)??i;return s!==a?s-a:n.id<e.id?-1:n.id>e.id?1:0}function Do(n,e){let t=jo(n);if(t===void 0)return;let i=e.durableAnalyses.find(r=>String(r.id)===t.id);return i!==void 0?i:e.allowUnpersisted===!0?t:void 0}function jo(n){if(!We(n)||!We(n.analysis))return;let e=n.analysis;if(!(typeof e.id!="string"||typeof e.status!="string"||typeof e.updatedAt!="string"||!Array.isArray(e.findings)||!We(e.source)||typeof e.source.digest!="string"||typeof e.source.complete!="boolean"))return e}function Po(n){return We(n)&&typeof n.analysisId=="string"?n.analysisId:void 0}function We(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}var Fo=new Set(["run.text.delta","run.reasoning.delta","run.part.updated"]);function $i(n){return n.options.delivery!=="frame"?new Zn(n):new et(n)}var Zn=class{#e;#n=!1;constructor(e){this.#e=e}push(e,t){this.#n||this.#e.subscriber(this.#e.project(e),t)}refresh(){this.#n||this.#e.subscriber(this.#e.currentView())}dispose(){this.#n=!0}},et=class{#e;#n;#t=!1;#s=Number.NEGATIVE_INFINITY;#r;#i;#a=0;#o=0;constructor(e){this.#e=e,this.#n=No(e.options.frameIntervalMs)}push(e,t){let i={kind:"state",state:e,event:t};Fo.has(t.kind)?this.#d(i):this.#l(i)}refresh(){this.#l({kind:"current"})}dispose(){this.#t=!0,this.#r=void 0,this.#i!==void 0&&clearTimeout(this.#i),this.#i=void 0,this.#o=0}#d(e){if(this.#t||(this.#r===void 0&&(this.#a=performance.now()),this.#o+=1,this.#r=e,this.#i!==void 0))return;let t=performance.now()-this.#s,i=Number.isFinite(t)?Math.max(0,this.#n-t):0;this.#i=setTimeout(()=>this.#c(),i)}#l(e){this.#t||(this.#r===void 0&&(this.#a=performance.now()),this.#o+=1,this.#r=e,this.#i!==void 0&&clearTimeout(this.#i),this.#i=void 0,this.#c())}#c(){if(this.#i=void 0,this.#t)return;let e=this.#r,t=this.#a,i=this.#o;if(this.#r=void 0,this.#o=0,e===void 0)return;let r=performance.now(),o=r,s=r;try{if(e.kind==="state"){let a=this.#e.project(e.state);o=performance.now(),this.#e.subscriber(a,e.event)}else{let a=this.#e.currentView();o=performance.now(),this.#e.subscriber(a)}}catch{}finally{s=performance.now(),this.#s=s}this.#u({queuedUpdates:i,queueDelayMs:r-t,projectionMs:o-r,subscriberMs:s-o,totalMs:s-t,...e.kind==="state"?{revision:e.state.revision,eventSequence:e.event.sequence}:{}})}#u(e){try{this.#e.options.onFrameTiming?.(Object.freeze(e))}catch{}}};function No(n){return n===void 0||!Number.isFinite(n)?16:Math.max(1,Math.min(1e3,Math.floor(n)))}var Ai=256;function Bi(n,e){let t=new Map(n.analyses.map(l=>[String(l.id),l])),i=new Map(n.supervisors.map(l=>[String(l.id),l])),r=new Map(n.workers.map(l=>[String(l.id),l])),o=new Map(n.environments.map(l=>[String(l.id),l])),s=new Set,a=[];for(let l of e){if(l.entityType===void 0||l.entityId===void 0)continue;let u=`${l.entityType}:${l.entityId}`;if(s.has(u))continue;s.add(u);let p=l.entityType==="analysis"?Lo(t.get(l.entityId)):l.entityType==="supervisor"?zo(i.get(l.entityId)):l.entityType==="worker"?Ko(r.get(l.entityId)):l.entityType==="environment"?qo(o.get(l.entityId)):void 0;p!==void 0&&a.push(p)}return a}function qo(n){if(n===void 0)return;let e=J(n);return{entityType:"environment",entityId:String(n.id),title:`${e.provider} execution`,status:n.lifecycle,lines:nt(Yt(e))}}function Lo(n){if(n===void 0)return;let e=ze(n),t=n.kind==="comparison"&&n.comparison!==void 0?he(me(Re(n))):Ke(e);return{entityType:"analysis",entityId:String(n.id),title:t[0]??`analysis ${n.id}`,status:n.status,lines:nt(t.slice(1)),analysisFindingCount:e.findings.length,...e.execution===void 0?{}:{analysisExecution:e.execution}}}function zo(n){if(n!==void 0)return{entityType:"supervisor",entityId:String(n.id),title:S(n.title??`supervisor ${n.id}`),status:n.status,lines:[`id: ${S(n.id)}`,`runtime id: ${S(n.runtimeId)}`,`run: ${n.rootRunId===void 0?"unbound workspace activity":S(n.rootRunId)}`,`status: ${S(n.status)}`,...n.driverModel===void 0?[]:[`driver model: ${S(n.driverModel)}`],...n.workerModel===void 0?[]:[`worker model: ${S(n.workerModel)}`],...n.totalUsage===void 0?[]:[`tree usage: ${Oi(n.totalUsage.inputTokens,n.totalUsage.outputTokens,n.totalUsage.spendUsd,n.totalUsage.completeness)}`,`tree latency: ${n.totalUsage.latencyMs}ms \xB7 workers ${n.workerCount??"unknown"}`],...n.driverUsage===void 0?[]:[`driver usage: ${Oi(n.driverUsage.inputTokens,n.driverUsage.outputTokens,n.driverUsage.spendUsd,n.driverUsage.completeness)}`],`started: ${S(n.createdAt)}`,`updated: ${S(n.updatedAt)}`]}}function Ko(n){if(n===void 0)return;let e=[`id: ${S(n.id)}`,`runtime id: ${S(n.runtimeId)}`,`status: ${S(n.status)}`,`supervisor: ${S(n.supervisorId)}`,...n.parentRuntimeRef===void 0?[]:[`runtime parent: ${S(n.parentRuntimeRef)}${n.parentWorkerId===void 0?" (unresolved)":""}`],...n.parentWorkerId===void 0?[]:[`parent worker: ${S(n.parentWorkerId)}`],...n.runId===void 0?[]:[`run: ${S(n.runId)}`],...n.runner===void 0?[]:[`runner: ${S(n.runner)}`],...n.spendUsd===void 0?[]:[`cost: ${n.usageCompleteness==="observed-floor"?"\u2265":""}$${n.spendUsd.toFixed(4)}`],...n.inputTokens===void 0?[]:[`input tokens: ${n.usageCompleteness==="observed-floor"?"\u2265":""}${n.inputTokens}`],...n.outputTokens===void 0?[]:[`output tokens: ${n.usageCompleteness==="observed-floor"?"\u2265":""}${n.outputTokens}`],...n.usageCompleteness===void 0?[]:[`measurement: ${n.usageCompleteness}`],...n.logTail===void 0?[]:n.logTail.split(`
2
- `).map((t,i)=>`${i===0?"latest: ":" "}${S(t)}`)];return{entityType:"worker",entityId:String(n.id),title:S(n.title??`worker ${n.id}`),status:n.status,lines:nt(e)}}function Oi(n,e,t,i){let r=i==="observed-floor"?"\u2265":i==="unknown"?"?":"";return`${r}${n} in \xB7 ${r}${e} out \xB7 ${r}$${t.toFixed(4)} \xB7 ${i}`}function nt(n){return n.length<=Ai?n:[...n.slice(0,Ai-1),"\u2026 additional details not shown"]}function S(n){return d(n)}function Ei(n){if(n.workers.length<=2048&&n.supervisors.length<=512)return{state:n,hiddenNodeCount:0};let e=new Map(n.workers.map(m=>[String(m.id),m])),t=Ui(n.workers),i=new Set;Ge(t,i,m=>m.status==="pending"||m.status==="running"||m.status==="waiting",2048),Ge(t,i,()=>!0,2048);for(let m of[...i]){let h=e.get(m)?.parentWorkerId,v=new Set;for(;h!==void 0&&i.size<4096;){let I=String(h);if(v.has(I))break;v.add(I),i.add(I),h=e.get(I)?.parentWorkerId}}let r=new Set;for(let m of i){let h=e.get(m)?.supervisorId;h!==void 0&&r.add(String(h))}let o=Ui(n.supervisors);Ge(o,r,m=>m.status==="starting"||m.status==="running",512),Ge(o,r,()=>!0,512);let s=n.workers.filter(m=>i.has(String(m.id))),a=n.supervisors.filter(m=>r.has(String(m.id))),l=n.graphNodes.filter(m=>m.reference.kind==="worker"?i.has(String(m.reference.id)):m.reference.kind==="supervisor"?r.has(String(m.reference.id)):!0),u=new Set(l.map(m=>String(m.id))),p=n.graphEdges.filter(m=>u.has(String(m.source))&&u.has(String(m.destination)));return{state:{...n,supervisors:a,workers:s,graphNodes:l,graphEdges:p},hiddenNodeCount:n.workers.length-s.length+n.supervisors.length-a.length}}function Ui(n){return[...n].sort((e,t)=>{let i=Date.parse(e.updatedAt)-Date.parse(t.updatedAt);if(i!==0)return i;let r=Date.parse(e.createdAt)-Date.parse(t.createdAt);if(r!==0)return r;let o=String(e.id),s=String(t.id);return o<s?-1:o>s?1:0})}function Ge(n,e,t,i){for(let r=n.length-1;r>=0&&e.size<i;r-=1){let o=n[r];o===void 0||!t(o)||e.add(String(o.id))}}var Di=new WeakMap;function _o(n){let e=Di.get(n);if(e!==void 0)return e;let t=Object.freeze(xi(n)),i=Ei(n),r=Ee(i.state),o=Object.freeze({activity:t,graph:Object.freeze(Ti(i.state,r)),entityDetails:Object.freeze(Bi(n,t)),hiddenGraphNodeCount:i.hiddenNodeCount});return Di.set(n,o),o}function ji(n,e="transcript",t={},i=!0,r,o,s=!1){let a=r?"storage-failure":Ii(n),l=n.runs.at(-1),u=n.profile,p=Ve(u),m=u.model?.default==="fixture/deterministic",h=Mt(u),v=n.connections.find($=>$.id===n.selectedConnectionId),I=n.conversations.find($=>$.id===n.conversationId),q=r?`storage failure: ${d(r)}`:o?`cleanup uncertain: ${d(o)}`:n.lastError?d(n.lastError):a==="empty"?"ready for a message":a==="running"?"streaming":a==="completed"?"completed":a==="cancelled"?"cancelled":a,K=u.model?.default??"automatic",Tt=t.color===void 0?"truecolor":_t(t.color),_=_o(n);return M({revision:n.revision,workspace:n.workspace?d(n.workspace):null,profileName:d(u.name??"Unnamed profile"),profileDigest:h,runner:d(u.harness??"automatic"),model:d(K),...u.model?.reasoningEffort?{effort:d(u.model.reasoningEffort)}:{},...p.maxOutputTokens===void 0?{}:{maxOutputTokens:p.maxOutputTokens},connection:m?"deterministic fixture":d(v?.name??"not connected"),conversationId:n.conversationId,conversationTitle:d(I?.title??"New conversation"),conversations:Object.freeze(n.conversations.filter($=>$.deletedAt===void 0).map($=>({id:$.id,title:d($.title),branchId:$.activeBranchId,archived:$.archived,active:$.id===n.conversationId,updatedAt:$.updatedAt}))),branch:d(n.branchId),status:a,statusText:q,queueCount:n.queuedInputs.length,queue:Object.freeze(Yn(n)),...r===void 0?{}:{storageFailure:d(r)},...o===void 0?{}:{cleanupUncertain:d(o)},messages:Object.freeze(Xn(n,{completeText:!0})),hiddenMessageCount:Math.max(0,n.messages.length-Wn),runs:Object.freeze(ki(n)),sessionUsage:ee(n),environments:Object.freeze(n.environments.map(J)),...n.activeRunId?{activeRunId:n.activeRunId}:{},interactions:Object.freeze(Qn(n)),activity:_.activity,graph:_.graph,entityDetails:_.entityDetails,..._.hiddenGraphNodeCount===0?{}:{hiddenGraphNodeCount:_.hiddenGraphNodeCount},...l?{details:Object.freeze({title:`run ${l.id}`,fields:Object.freeze([{label:"status",value:l.status},{label:"input tokens",value:String(l.inputTokens)},{label:"output tokens",value:String(l.outputTokens)},{label:"token measurement",value:U(l).tokenStatus??"unknown"},{label:"cost measurement",value:U(l).costStatus??"unknown"},...l.model?[{label:"model",value:d(l.model)}]:[]])})}:{},capabilities:qe(n,i,void 0,s),draft:d(n.draft),selectedSurface:e,appearance:Object.freeze({color:Tt,highContrast:t.highContrast??!1,reducedMotion:t.reducedMotion??!1})})}var tt=class{#e;#n=new Set;#t=new Map;#s;#r;#i;#a;#o;#d="transcript";#l=!1;#c;#u;#p;#f;constructor(e,t={},i,r={}){this.#e=e,this.#s=Object.freeze({...t}),this.#r=i,this.#o=r}view(){let e=this.#e,t=e.revision();return(this.#f===void 0||this.#f.app!==e||this.#f.revision!==t)&&(this.#f={app:e,revision:t,state:e.state()}),this.#m(this.#f.state,e)}#m(e,t){let i=Ho(ji(e,this.#d,this.#s,t.canCancel(),t.storageFailure(),t.cleanupUncertain(),t.canRespondToInteractions()),e),r=M({...i,...this.#c===void 0?{}:{notice:this.#c,statusText:this.#c},...this.#u===void 0?{}:{forkPreview:this.#u}}),o=this.#r===void 0?r:M({...r,capabilities:qe(e,t.canCancel(),this.#r,t.canRespondToInteractions())}),s=this.#p===void 0?o:Vi(o,this.#p,{durableAnalyses:e.analyses,allowUnpersisted:this.#r==="analysis"||this.#r==="comparison"||this.#r==="product-demo"});return this.#r==="interaction"&&!this.#l?M({...s,interactions:Object.freeze([Ht])}):this.#r==="fork"?M({...s,forkPreview:Wt}):s}state(){return Mi(this.#e.state(),this.#e.storageFailure(),this.#e.cleanupUncertain())}events(){return M(this.#e.events().map(Jn))}subscribe(e,t={}){this.#t.get(e)?.active.unsubscribe(),this.#n.add(e);let i=Object.freeze({...t}),r={options:i,active:this.#v(e,i)};return this.#t.set(e,r),()=>{this.#t.get(e)===r&&(r.active.unsubscribe(),this.#t.delete(e),this.#n.delete(e))}}async replaceApplication(e,t){if(e===this.#e)return;e.initialize(t),await e.whenDurable();let i=new Map;try{for(let r of this.#n){let o=this.#t.get(r);o!==void 0&&i.set(r,this.#v(r,o.options,e))}}catch(r){for(let o of i.values())o.unsubscribe();throw r}for(let r of this.#t.values())r.active.unsubscribe();this.#e=e,this.#i=void 0,this.#f=void 0,this.#p=void 0;for(let[r,o]of i){let s=this.#t.get(r);s!==void 0&&(s.active=o)}this.#g()}async initialize(e){try{return this.#e.initialize(e),await this.#e.whenDurable(),{kind:"accepted",revision:this.#e.state().revision}}catch(t){return qn(t)}}async dispatch(e){let t=this.#e;e.type==="run-command"&&(e.command==="ask"||e.command==="analyze"||e.command==="compare")&&(this.#p=void 0,this.#g());try{let[i,r]=await Promise.all([this.#h(),this.#b()]);if(t!==this.#e)return this.dispatch(e);let o=await i(e,{app:t,profileConnections:r,fixture:this.#r,subscribers:this.#n,view:()=>this.view(),notify:()=>this.#g(),interactionResolved:()=>this.#l,markInteractionResolved:()=>{this.#l=!0},setSelectedSurface:a=>{this.#d=a},setNotice:a=>{this.#c=a},setForkPreview:a=>{this.#u=a}}),s=!1;return o.kind==="accepted"&&o.notice!==void 0&&(this.#c=o.notice,s=!0),o.kind==="accepted"&&o.data!==void 0&&e.type==="run-command"&&(e.command==="ask"||e.command==="analyze"||e.command==="compare")&&(this.#p=o.data,s=!0),s&&this.#g(),o}catch(i){return qn(i)}}#h(){return this.#a??=import("./chunks/ui-dispatch-NV3XTZDR.js").then(e=>e.dispatchIntent),this.#a}#b(){let e=this.#e;if(this.#i?.app===e)return this.#i.value;let t=import("./chunks/profile-connection-dispatch-HFTWSEIR.js").then(i=>i.createProfileConnectionDispatchServices(e,this.#o));return this.#i={app:e,value:t},t}async waitForIdle(){return await this.#e.waitForIdle(),this.view()}close(){return this.#e.close()}#g(){for(let e of this.#t.values())try{e.active.delivery.refresh()}catch{}}#v(e,t,i=this.#e){let r=$i({subscriber:e,options:t,currentView:()=>this.view(),project:s=>this.#m(s,i)}),o=i.subscribe((s,a)=>{r.push(s,Jn(a))});return{options:t,delivery:r,unsubscribe:()=>{o(),r.dispose()}}}};function Ho(n,e){let t=new Map(e.runs.map(r=>[r.id,r])),i=n.runs.map(r=>{let o=t.get(r.id);return o===void 0?r:{...r,usage:Object.freeze(U(o,r.usage?.elapsedMs))}});return M({...n,runs:Object.freeze(i),sessionUsage:ee(e)})}function Wo(n,e={},t,i={}){return new tt(n,e,t,i)}var Pi=Symbol("braid-completion-snapshot"),Xe=class{#e;#n=0;constructor(e){this.#e=e}get triggerCharacters(){return this.#e.triggerCharacters??[]}inputChanged(){this.#n+=1}async getSuggestions(e,t,i,r){let o=this.#n,s=e.join(`
3
- `),a=await this.#e.getSuggestions(e,t,i,r);if(!a)return null;let l={generation:o,text:s,cursorLine:t,cursorCol:i,prefix:a.prefix};return{prefix:a.prefix,items:a.items.map(u=>Object.assign({},u,{[Pi]:l}))}}applyCompletion(e,t,i,r,o){let s=r[Pi],a=e.join(`
4
- `);return!s||s.generation!==this.#n||s.text!==a||s.cursorLine!==t||s.cursorCol!==i||s.prefix!==o?{lines:[...e],cursorLine:t,cursorCol:i}:this.#e.applyCompletion(e,t,i,r,o)}shouldTriggerFileCompletion(e,t,i){return this.#e.shouldTriggerFileCompletion?.(e,t,i)??!0}};var Qe=class{#e;#n="";#t;constructor(e){this.#e=e}getSuggestions(e,t,i,r){return this.#s().getSuggestions(e,t,i,r)}applyCompletion(e,t,i,r,o){return this.#s().applyCompletion(e,t,i,r,o)}shouldTriggerFileCompletion(e,t,i){return this.#s().shouldTriggerFileCompletion(e,t,i)}#s(){let e=this.#e.commands().map(i=>({...i})),t=JSON.stringify(e);return(this.#t===void 0||t!==this.#n)&&(this.#n=t,this.#t=new Bt(e,this.#e.basePath,this.#e.fdPath??null)),this.#t}};var Go=Object.freeze({close:"closeOverlay",closeOverlay:"closeOverlay","close-overlay":"closeOverlay",palette:"commandPalette",commandPalette:"commandPalette","command-palette":"commandPalette",conversations:"conversationSelector",conversationSelector:"conversationSelector","conversation-selector":"conversationSelector",graph:"graph",switcher:"switcher",activity:"activity",toggleDetails:"toggleDetails","toggle-details":"toggleDetails",help:"help",previousBranch:"previousBranch","previous-branch":"previousBranch",nextBranch:"nextBranch","next-branch":"nextBranch",exit:"exit",clearCancelQuit:"clearCancelQuit","clear-cancel-quit":"clearCancelQuit"}),Ye=Object.freeze({closeOverlay:Object.freeze(["escape"]),commandPalette:Object.freeze(["ctrl+p"]),conversationSelector:Object.freeze(["ctrl+o"]),graph:Object.freeze(["ctrl+g"]),switcher:Object.freeze(["ctrl+k"]),activity:Object.freeze(["f2"]),toggleDetails:Object.freeze(["ctrl+e"]),help:Object.freeze(["?"]),previousBranch:Object.freeze(["alt+up"]),nextBranch:Object.freeze(["alt+down"]),exit:Object.freeze(["ctrl+d"]),clearCancelQuit:Object.freeze(["ctrl+c"])}),Xo=new Set(["ctrl","shift","alt","super"]),Qo=new Set([..."abcdefghijklmnopqrstuvwxyz0123456789".split(""),"`","-","=","[","]","\\",";","'",",",".","/","!","@","#","$","%","^","&","*","(",")","_","+","|","~","{","}",":","<",">","?","escape","enter","return","tab","space","backspace","delete","insert","clear","home","end","pageup","pagedown","up","down","left","right",...Array.from({length:12},(n,e)=>`f${e+1}`)]),Fi=Object.keys(Ye);function Ni(n=process.env.BRAID_KEYMAP){if(n===void 0||n.trim()==="")return Object.freeze({keymap:Ye,valid:!0,diagnostics:Object.freeze([])});let e=[],t=Yo(n,e),i={...Ye},r=new Set;for(let[s,a]of t){let l=Go[s];if(l===void 0){e.push(`Unknown key mapping action '${s}'`);continue}if(r.has(l)){e.push(`Key mapping action '${s}' is configured more than once`);continue}r.add(l);let p=(Array.isArray(a)?a:[a]).map(m=>Jo(m,e,l));p.length>0&&p.every(m=>m!==void 0)&&(i[l]=Object.freeze(p))}let o=new Map;for(let s of Fi)for(let a of i[s]){let l=Zo(a),u=o.get(l);u!==void 0&&u!==s?e.push(`Key '${a}' is assigned to both ${u} and ${s}; the mapping was rejected`):o.set(l,s)}return e.length>0?Object.freeze({keymap:Ye,valid:!1,diagnostics:Object.freeze(e)}):Object.freeze({keymap:es(i),valid:!0,diagnostics:Object.freeze([])})}function R(n,e,t){return $t(n)?!1:e[t].some(i=>f(n,i))}function qi(n){return n.includes("\x1B[200~")||n.includes("\x1B[201~")||$e(n)!==void 0}function Yo(n,e){let t=n.trim();if(t.startsWith("{"))try{let i=JSON.parse(t);if(i===null||typeof i!="object"||Array.isArray(i))throw new Error;let r=[];for(let[o,s]of Object.entries(i)){if(typeof s=="string"){r.push([o,s]);continue}if(Array.isArray(s)&&s.every(a=>typeof a=="string")){r.push([o,s]);continue}e.push(`Key mapping '${o}' must be a key or an array of keys`)}return r}catch{return e.push("BRAID_KEYMAP must be a mapping object or action=key entries"),[]}return t.split(",").flatMap(i=>{let r=i.indexOf("=");if(r<=0||r===i.length-1)return e.push(`Invalid key mapping '${i}'`),[];let o=i.slice(0,r).trim(),s=i.slice(r+1).split("|").map(a=>a.trim()).filter(Boolean);return s.length===0?(e.push(`Key mapping '${o}' has no keys`),[]):[[o,s]]})}function Jo(n,e,t){let r=n.trim().toLowerCase().split("+"),o=r.pop();if(!o||!Qo.has(o)||r.some(s=>!Xo.has(s))){e.push(`Invalid key '${n}' for ${t}`);return}if(new Set(r).size!==r.length){e.push(`Key '${n}' repeats a modifier for ${t}`);return}return[...r.sort(),o].join("+")}function Zo(n){let e=n.split("+"),t=e.pop()??"";return[...e.sort(),t].join("+")}function es(n){return Object.freeze(Object.fromEntries(Fi.map(e=>[e,Object.freeze([...n[e]])])))}var Je=class{#e;#n;#t=[];#s=!1;constructor(e,t){this.#e=e,this.#n=t}open(e,t={},i=!0){i&&this.closeTop();let{fullScreenBelow:r=80,onClose:o,...s}=t,a=Be(this.#e.terminal.columns,this.#e.terminal.rows),l=this.#e.showOverlay(e,{...s,...a.columns<r?{width:"100%",maxHeight:"100%",anchor:"top-left",margin:0}:{}});return this.#t.push({component:e,handle:l,...o===void 0?{}:{onClose:o}}),this.#a(),l}closeTop(){let e=this.#t.pop();e!==void 0&&(e.handle.hide(),e.onClose?.(),this.#a())}backOrClose(){let e=this.#r();if(e!==void 0&&ns(e.component)&&e.component.goBack()){this.#e.requestRender();return}this.closeTop()}closeAll(){for(;this.#t.length>0;)this.closeTop()}hasOpen(){return this.#i(),this.#t.length>0}focusTop(){this.#r()?.handle.focus()}handleInput(e){let t=this.#r();return t===void 0?!1:(t.component.handleInput?.(e),!0)}#r(){return this.#i(),this.#t.at(-1)}#i(){for(;this.#t.at(-1)?.handle.isHidden();)this.#t.pop()?.onClose?.();this.#a()}#a(){let e=this.#t.length>0;e!==this.#s&&(this.#s=e,this.#n?.(e))}};function ns(n){return typeof n.goBack=="function"}function E(n,e=n.activeRunId){let t=e===void 0?void 0:n.runs.find(i=>i.id===e);return t===void 0?ts(n):is(n,t)}function ts(n){return Object.freeze({source:"profile",profileName:n.profileName,...n.profileDigest===void 0?{}:{profileDigest:n.profileDigest},runner:n.runner,model:n.model,...n.effort===void 0?{}:{effort:n.effort},...n.maxOutputTokens===void 0?{}:{maxOutputTokens:n.maxOutputTokens},connection:n.connection})}function is(n,e){let t=e.environmentId===void 0?void 0:n.environments.find(i=>i.id===e.environmentId);return Object.freeze({source:"run",runId:e.id,profileName:e.profileName??n.profileName,...e.profileDigest===void 0?{}:{profileDigest:e.profileDigest},runner:e.runner??n.runner,model:e.model??e.usage?.model??n.model,...e.effort===void 0?{}:{effort:e.effort},...e.maxOutputTokens===void 0?{}:{maxOutputTokens:e.maxOutputTokens},connection:e.connection??e.connectionId??"not connected",...e.connectionId===void 0?{}:{connectionId:e.connectionId},...t===void 0?{}:{environment:t}})}var en=class{#e;#n;#t;#s;#r;#i;#a;#o;constructor(e){this.#e=e.controller,this.#n=e.editor,this.#t=e.drafts,this.#s=e.overlays,this.#r=e.nextOperationId,this.#i=e.dispatch,this.#a=e.isStopped,this.#o=e.stop}submit(e){this.#d(e)}dispatchCommand(e,t){this.#l(e,t)}async#d(e){if(!e.trim())return;let t=ni(e);if(t.kind==="unknown"){this.#s.openCorrection(t.name,t.suggestions);return}if(t.kind==="invalid"){this.#s.openUnavailable("Invalid command",t.message);return}if(t.kind==="command"){this.#n.addToHistory(e),this.#t.setText(""),await this.#t.flush(""),this.dispatchCommand(t.name,t.args);return}let i=this.#e.view(),r=i.activeRunId!==void 0,o=i.capabilities["run.queue"],s=i.capabilities["run.steer"],a=r&&o?.available===!0,l=r?a?o:s:i.capabilities["run.send"];if(!l?.available){this.#n.setText(e),this.#s.openUnavailable(r&&!a?"Steering unavailable":r?"Queue unavailable":"Send unavailable",l?.reason??"The current connection cannot accept this message");return}this.#n.addToHistory(e),await this.#t.flush(e),this.#t.setText("");let u=this.#r(),p=r?a?{type:"queue",operationId:u,text:t.text}:Li(u,t.text):{type:"send",operationId:u,text:t.text};this.#i(p,e)}async#l(e,t){if(e==="profile"&&t.length===0){this.#s.openProfile();return}if(e==="connection"&&t.length===0){this.#s.openConnection();return}if(e==="connection"&&t[0]==="create"){this.#s.openConnectionEditor();return}if(e==="automate"&&(t.length===0||t.length===1&&t[0]==="list")){this.#s.openAutomation();return}if(e!=="approve"&&e!=="reject"){let s=De(e,this.#e.view().capabilities);if(!s.available){this.#s.openUnavailable(`/${e}`,s.reason??"Capability is unavailable");return}}if(["new","open","branch","clone","fork"].includes(e)&&await this.#t.flush(),e==="open"){this.#s.openConversationSelector(t.join(" ").trim());return}if(e==="ask"&&t.length>0&&!rs(t[0])){let s=this.#e.view().activity.filter(a=>a.kind==="run"&&(a.status==="completed"||a.status==="failed"));if(s.length>1){this.#s.openAnalysisSource(t,s);return}}let i=ti(e)?this.#r():void 0;if(e==="steer"){if(i===void 0){this.#s.openUnavailable("/steer","Steering requires an operation identifier");return}this.#i(Li(i,t.join(" ")));return}let r=ei(e,t,i);if(r.type==="open-surface"){this.#i(r).then(s=>{s.kind!=="accepted"||this.#a()||(r.surface==="help"?this.#s.openHelp(r.query??""):this.#s.openSurface(r.surface))});return}if(r.type==="shutdown"){this.#i(r).then(s=>{s.kind==="accepted"&&this.#o()});return}let o=e==="ask"||e==="analyze"||e==="compare"?this.#s.openIntelligenceProgress(e,os(e,t,this.#e.view())):void 0;this.#i(r).then(s=>{s.kind!=="accepted"||this.#a()||(e==="fork"?this.#s.openSurface("fork"):(e==="ask"||e==="analyze"||e==="compare")&&o?.complete(s.data))})}};function Li(n,e){return{type:"steer",operationId:n,text:e}}function rs(n){return n===void 0?!1:Fn(n)!==void 0}function os(n,e,t){if(n==="compare"){let o=it(e[0],t),s=it(e[1],t);return o===void 0||s===void 0?void 0:`sources ${Ze(o)} \u2194 ${Ze(s)}`}let i=it(e[0],t)??ss(t);if(i===void 0)return;if(i.kind==="branch")return`source ${Ze(i)}`;let r=E(t,i.id);return`source ${Ze(i)} \xB7 ${r.profileName} \xB7 ${r.runner} \xB7 ${r.model} \xB7 ${r.connection}`}function Ze(n){let e=n.id.length<=24?n.id:`${n.id.slice(0,12)}\u2026${n.id.slice(-6)}`;return`${n.kind} ${e}`}function it(n,e){if(n===void 0)return;let t=Fn(n);if(t!==void 0)return t;if(e.runs.some(i=>i.id===n))return{kind:"run",id:n};if(e.branch===n||e.graph.some(i=>i.type==="branch"&&i.id===n))return{kind:"branch",id:n}}function ss(n){let e=n.runs.slice().reverse().find(t=>t.status==="completed"||t.status==="failed")?.id;return e===void 0?void 0:{kind:"run",id:e}}var nn=class{#e;#n;#t;#s;#r;#i;#a=Promise.resolve();#o;#d;#l="";#c=!1;constructor(e){this.#e=e.editor,this.#n=e.dispatch,this.#t=e.nextOperationId,this.#s=e.requestRender,this.#r=e.debounceMs??150}changed(e){if(this.#s(),this.#c||!this.#o||!this.#d)return;this.#i&&clearTimeout(this.#i);let t=this.#o,i=this.#d;this.#i=setTimeout(()=>{this.#i=void 0,this.#u(t,i,e)},this.#r)}restore(e){if(this.#o===e.conversationId&&this.#d===e.branch){this.#e.getText()===this.#l&&e.draft!==this.#l&&(this.#l=e.draft,this.setText(e.draft));return}if(this.#i&&(clearTimeout(this.#i),this.#i=void 0),this.#o&&this.#d){let t=this.#e.getText();t!==this.#l&&this.#u(this.#o,this.#d,t)}this.#o=e.conversationId,this.#d=e.branch,this.#l=e.draft,this.setText(e.draft)}setText(e){this.#c=!0;try{this.#e.setText(e)}finally{this.#c=!1}}async flush(e=this.#e.getText()){this.#i&&(clearTimeout(this.#i),this.#i=void 0),!(!this.#o||!this.#d)&&await this.#u(this.#o,this.#d,e)}close(){this.#i&&clearTimeout(this.#i),this.#i=void 0}#u(e,t,i){if(e===this.#o&&t===this.#d&&i===this.#l)return this.#a;let r=this.#a.then(async()=>{(await this.#n({type:"set-draft",operationId:this.#t(),conversationId:e,branchId:t,text:i})).kind==="accepted"&&e===this.#o&&t===this.#d&&(this.#l=i)});return this.#a=r.catch(()=>{}),r}};function as(n,e){return e==="visible"?!0:e==="hidden"?!1:n.activeRunId!==void 0}var tn=class{#e;#n;#t;#s;#r;#i;#a;#o;#d;#l;#c;#u;#p;#f=!1;#m="auto";constructor(e){this.#e=e.tui,this.#n=e.keymap,this.#t=e.controller,this.#s=e.shell,this.#r=e.drafts,this.#i=e.overlays,this.#a=e.modals,this.#o=e.nextOperationId,this.#d=e.dispatch,this.#l=e.interactionOpen,this.#c=e.stop,this.#u=e.stateChanged}get quitArmed(){return this.#f}get activityVisible(){return as(this.#t.view(),this.#m)}close(){this.#p&&clearTimeout(this.#p),this.#p=void 0}handle(e){if(!qi(e)){if(R(e,this.#n,"closeOverlay")&&this.#e.hasOverlay())return this.#l()?void 0:(this.#a.backOrClose(),{consume:!0});if(!this.#l()&&!this.#e.hasOverlay()){if(!this.#e.hasOverlay()&&this.#s.handleTranscriptInput(e))return this.#e.requestRender(),{consume:!0};if(R(e,this.#n,"clearCancelQuit")||this.#g(),R(e,this.#n,"commandPalette"))return this.#i.openCommandPalette(),{consume:!0};if(R(e,this.#n,"conversationSelector")){let t=De("open",this.#t.view().capabilities);return t.available?this.#r.flush().then(()=>this.#i.openSelector("conversation")):this.#i.openUnavailable("/open",t.reason??"Conversation search is unavailable"),{consume:!0}}if(!this.#e.hasOverlay()&&R(e,this.#n,"previousBranch"))return this.#r.flush().then(()=>this.#i.openAdjacentBranch(-1)),{consume:!0};if(!this.#e.hasOverlay()&&R(e,this.#n,"nextBranch"))return this.#r.flush().then(()=>this.#i.openAdjacentBranch(1)),{consume:!0};if(R(e,this.#n,"graph"))return this.#i.openSurface("graph"),{consume:!0};if(R(e,this.#n,"switcher"))return this.#i.openSelector("profile"),{consume:!0};if(R(e,this.#n,"activity"))return this.#m=this.activityVisible?"hidden":"visible",this.#u(),{consume:!0};if(!this.#e.hasOverlay()&&R(e,this.#n,"toggleDetails")&&this.#s.toggleDetails())return{consume:!0};if(R(e,this.#n,"help")&&!this.#s.editor.focused)return this.#i.openHelp(""),{consume:!0};if(R(e,this.#n,"exit")&&!this.#e.hasOverlay()&&!this.#s.editor.getText()&&!this.#t.view().activeRunId)return this.#h(),{consume:!0};if(R(e,this.#n,"clearCancelQuit")&&!this.#e.hasOverlay())return this.#s.editor.getText()?(this.#s.editor.setText(""),{consume:!0}):this.#t.view().activeRunId?(this.#d({type:"cancel-run",operationId:this.#o()}),{consume:!0}):(this.#f?this.#h():this.#b(),{consume:!0})}}}#h(){this.#r.flush().then(()=>this.#d({type:"shutdown",operationId:this.#o()}).then(e=>{e.kind==="accepted"&&this.#c()}))}#b(){this.#f=!0,this.#p&&clearTimeout(this.#p),this.#p=setTimeout(()=>{this.#p=void 0,this.#f=!1,this.#u()},2e3),this.#u()}#g(){this.#f&&(this.#f=!1,this.#p&&clearTimeout(this.#p),this.#p=void 0,this.#u())}};var zi=["alt+1","alt+2","alt+3","alt+4","alt+5","alt+6","alt+7","alt+8","alt+9"],rn=class extends O{render(e){let t=Array.from(this.getValue(),()=>"\u2022").join(""),i=this.focused?At:"";return new b(`${t}${i}`,1,0).render(e)}},ye=class{#e;#n;#t;constructor(e,t,i){this.#e=e,this.#n=t,this.#t=i}invalidate(){}render(e){let t=Math.max(1,Math.floor(e)),i=[],r="";for(let[o,s]of this.#e.entries()){let a=zi[o];if(a===void 0)break;let l=s===this.#t?.(),u=`${l?"\u203A ":""}${a} ${ds(s)}`,p=l?this.#n.accent(u):u,h=`${r}${r===""?"":" \xB7 "}${p}`;r!==""&&j(h)>t?(i.push(r),r=p):r=h}return(r!==""||i.length===0)&&i.push(r),i.flatMap(o=>new b(this.#n.muted(o),1,0).render(e))}};function rt(n,e){for(let[t,i]of e.entries()){let r=zi[t];if(r!==void 0&&f(n,r))return i}}function ot(n){return n.allowedOutcomes.find(e=>e==="cancel")}function L(n){return n.secret||n.answerSpec.kind==="secret"||n.answerSpec.kind==="text"&&n.answerSpec.secret}function Ki(n){let e=d(n.kind).toLocaleLowerCase()||"interaction";return e==="plan"?"plan review":e}function _i(n){let e=n.remainingMs===void 0?"timeout unknown":`timeout ${Math.max(0,Math.ceil(n.remainingMs/1e3))}s`;return[[n.profileName,n.runner].map(i=>i===void 0?"":d(i)).filter(i=>i.length>0).join(" @ "),`run ${ls(n.runId)}`,...n.queuePosition>0?[`request ${n.queuePosition+1}`]:[],e].filter(Boolean).join(" \xB7 ")}function Hi(n,e,t){let i=n.subject;if(i===void 0)return[];if(L(n))return[new b(e.muted("Secret details stay hidden."),1,0)];let r=d(i.title),o=i.target?` \xB7 ${d(i.target)}`:"";return[new b(`${e.accent(r)}${e.muted(o)}`,1,0),...t||i.detail===void 0?[]:[new b(e.muted(d(i.detail)),1,0)],...t||i.preview?.[0]===void 0?[]:[new b(Oe(i.preview[0]),1,0)]]}function F(n){return["accept","once","session","persistent"].includes(n)}function Wi(n){return n.allowedOutcomes.find(e=>["reject","deny","revise"].includes(e))}function ge(n){return n.allowedOutcomes.find(F)??Wi(n)}function Gi(n){let e=n.answerSpec;if(e.kind==="number")return`answer: number${e.minimum===void 0?"":` \u2265 ${e.minimum}`}${e.maximum===void 0?"":` \u2264 ${e.maximum}`}`;if(e.kind==="boolean"){let t=n.allowedOutcomes.some(F),i=Wi(n);return t&&i?"answer: y approve \xB7 n reject":t?"answer: y yes":i?"answer: n reject":"answer: esc cancel"}return e.kind==="unknown"?`answer: ${d(e.label)}`:e.kind==="form"?`answer: JSON \xB7 ${e.fields.length} field(s)`:e.kind==="secret"||e.kind==="text"&&e.secret?"answer: secret hidden":"answer: response"}function Xi(n,e){let t=n.answerSpec.kind==="boolean"?["\u2191\u2193 move","enter confirm",...n.allowedOutcomes.length>1?[`1-${n.allowedOutcomes.length} quick select`]:[]]:n.answerSpec.kind==="select"?["\u2191\u2193 move","enter choose"]:["enter submit"];return ot(n)!==void 0&&t.push("esc cancel"),e&&!L(n)&&t.push("alt+a automate"),t.join(" \xB7 ")}function ds(n){return n==="once"?"once":n==="session"?"run":n==="persistent"?"save":n==="accept"?"approve":n==="reject"?"reject":n==="deny"?"deny":n==="revise"?"revise":"cancel"}function ls(n){let e=d(n);return e.length<=20?e:`${e.slice(0,12)}\u2026${e.slice(-6)}`}function Qi(n){let{interaction:e,outcome:t}=n;if(t===void 0||!F(t))return;let i=e.answerSpec;if(i.kind==="select")return n.selectedValue===void 0?{outcome:t}:{outcome:t,value:n.selectedValue};if(i.kind==="text")return{outcome:t,...n.inputValue.length===0?{}:{value:n.inputValue}};if(i.kind==="number"){let r=Number(n.inputValue);return Number.isFinite(r)&&n.inputValue.trim().length>0?{outcome:t,value:r}:{outcome:t}}if(i.kind==="boolean")return n.inputValue==="true"||n.inputValue==="false"?{outcome:t,value:n.inputValue==="true"}:{outcome:t,value:i.defaultValue??!0};if(i.kind==="form")return{outcome:t}}var on=class{#e;#n;#t;#s;#r;constructor(e){this.#e=e.outcomes.map(us),this.#n=e.theme,this.#t=e.onSelectionChange,this.#s=e.onConfirm;let t=this.#e.findIndex(i=>i.outcome===e.selected);this.#r=t<0?0:t}invalidate(){}selectedOutcome(){return this.#e[this.#r]?.outcome}handleInput(e){if(this.#e.length===0)return!1;if(f(e,"up"))return this.#i(-1),!0;if(f(e,"down"))return this.#i(1),!0;if(f(e,"enter")||f(e,"return"))return this.#a(this.#r),!0;let t=cs(e,this.#e.length);if(t!==void 0){let i=this.#e[t];return i===void 0?!1:(this.#r=t,this.#t(i.outcome),this.#a(t),!0)}return!1}render(e){let t=Math.max(1,Math.floor(e));return this.#e.flatMap((i,r)=>{let o=r===this.#r,s=o?this.#n.accent("\u203A"):" ",a=o?this.#n.accent(i.label):this.#n.text(i.label),l=x(` ${s} ${r+1}. ${a}`,t,"\u2026",!0);if(!o)return[l];let u=W(this.#n.muted(i.description),Math.max(1,t-6)).map(p=>x(` ${p}`,t,"\u2026",!0));return[l,...u]})}#i(e){this.#r=(this.#r+e+this.#e.length)%this.#e.length;let t=this.#e[this.#r];t!==void 0&&this.#t(t.outcome)}#a(e){let t=this.#e[e];t!==void 0&&this.#s(t.outcome)}};function Yi(n,e){let t=e.find(ps),i=e.find(r=>["reject","deny","revise"].includes(r));if((n==="y"||n==="Y")&&t!==void 0)return{outcome:t,value:!0};if((n==="n"||n==="N")&&(i!==void 0||t!==void 0)){if(i!==void 0)return{outcome:i};if(t!==void 0)return{outcome:t,value:!1}}}function us(n){switch(n){case"once":return{outcome:n,label:"Allow once",description:"Only this request"};case"session":return{outcome:n,label:"Allow for this run",description:"Reuse until the run ends"};case"persistent":return{outcome:n,label:"Always allow",description:"Reuse for future matching requests"};case"accept":return{outcome:n,label:"Approve",description:"Continue this request"};case"revise":return{outcome:n,label:"Request changes",description:"Return the request for revision"};case"reject":return{outcome:n,label:"Reject",description:"Continue without approval"};case"deny":return{outcome:n,label:"Deny",description:"Do not allow this request"};case"cancel":return{outcome:n,label:"Cancel",description:"Stop this request"}}}function cs(n,e){let t=$e(n)??n;for(let i=0;i<Math.min(9,e);i+=1)if(t===String(i+1)||f(n,`alt+${i+1}`))return i}function ps(n){return["accept","once","session","persistent"].includes(n)}function sn(n){let e=Math.max(1,Math.floor(n.width)),i=Math.max(4,Math.floor(n.rows))-4,r=n.theme.muted("\u2500".repeat(e)),o=ms(n.body,i,e,n.theme,n.preserveTailRows??0);return[N(fs(n,e),e),r,...o,...Array.from({length:i-o.length},()=>""),r,N(` ${n.theme.muted(n.footer)}`,e)]}function fs(n,e){let t=` ${n.theme.brand(n.title)}`,i=n.context===void 0?"":n.theme.muted(n.context),r=e-j(t)-j(i)-1;return i&&r>=2?`${t}${" ".repeat(r)}${i} `:t}function ms(n,e,t,i,r){if(e<=0)return[];if(n.length<=e)return n.map(s=>N(s,t));if(e===1)return[N(` ${i.muted("\u2026 more details")}`,t)];let o=Math.max(0,Math.min(Math.floor(r),e-2));if(o>0){let s=e-o-1,a=n.length-s-o;return[...n.slice(0,s).map(l=>N(l,t)),N(` ${i.muted(`\u2026 ${a} hidden lines`)}`,t),...n.slice(-o).map(l=>N(l,t))]}return[...n.slice(0,e-1).map(s=>N(s,t)),N(` ${i.muted(`\u2026 ${n.length-e+1} more lines`)}`,t)]}function N(n,e){return x(n,e,"\u2026",!0)}function Ji(n,e,t){if(e===void 0)return{error:"No allowed response is available."};let i=n.answerSpec;if(i.kind==="number"){let r=Number(t);return!Number.isFinite(r)||i.minimum!==void 0&&r<i.minimum||i.maximum!==void 0&&r>i.maximum?{error:"Enter a number in the allowed range."}:{response:{outcome:e,value:r}}}if(i.kind==="unknown")return{response:{outcome:"cancel"}};if(i.kind==="form")try{let r=JSON.parse(t);if(r===null||typeof r!="object"||Array.isArray(r))throw new Error;return{response:{outcome:e,data:r}}}catch{return{error:"Enter a JSON object with the requested fields"}}return i.required&&t.length===0?{error:"A response is required."}:i.kind==="boolean"&&t!=="true"&&t!=="false"?{error:"Enter true or false, or use y/n."}:{response:{outcome:e,value:i.kind==="boolean"?t==="true":t}}}var an=class extends y{#e;#n;#t;#s;#r;#i;#a;#o;#d=new c("",1,0);#l=!1;#c=!1;#u;constructor(e,t,i,r,o=()=>12){super(),this.#n=e,this.#e=t,this.#t=i,this.#s=r,this.#o=o,this.#r=L(e)?new rn:new O,this.#u=ge(e),this.#r.onSubmit=a=>{let l=Ji(this.#n,this.#u??ge(this.#n),a);"error"in l?this.#p(l.error):this.#m(l.response)},this.#r.onEscape=()=>this.#h();let s=e.answerSpec.kind==="select";this.addChild(this.#b(L(e)?"Secret response requested; value stays hidden.":d(e.prompt)));for(let a of Hi(e,t,s))this.addChild(a);if(e.answerSpec.kind==="boolean"){this.addChild(new w(1));let a=new on({outcomes:e.allowedOutcomes,...this.#u===void 0?{}:{selected:this.#u},theme:t,onSelectionChange:l=>this.#f(l),onConfirm:l=>this.#m({outcome:l,...F(l)?{value:!0}:{}})});this.#a=a,this.addChild(a)}else if(e.answerSpec.kind==="select"){let a=new k({title:"response",items:e.answerSpec.options.map(l=>({value:l.value,label:l.label})),theme:t,maxVisible:Math.min(6,Math.max(2,e.answerSpec.options.length)),embedded:!0,onSelect:l=>{let u=this.#u??ge(this.#n);u?this.#m({outcome:u,value:l.value}):this.#h()},onCancel:()=>this.#h()});this.#i=a,this.addChild(a),e.allowedOutcomes.length>0&&this.addChild(new ye(e.allowedOutcomes,t,()=>this.#u))}else this.addChild(this.#b(Gi(e))),this.addChild(this.#r),e.allowedOutcomes.length>0&&this.addChild(new ye(e.allowedOutcomes,t,()=>this.#u))}get focused(){return this.#l}set focused(e){this.#l=e,this.#r.focused=e&&!this.#i&&!this.#a,this.#i&&(this.#i.focused=e)}handleInput(e){if(f(e,"alt+a")&&this.#s!==void 0){if(L(this.#n)){this.#p("Secret responses remain manual.");return}let i=this.#i?.selectedItem()?.value,r=Qi({interaction:this.#n,outcome:this.#u??ge(this.#n),inputValue:this.#r.getValue(),...i===void 0?{}:{selectedValue:i}});if(r===void 0){this.#p("Choose an accepted response before automating it.");return}this.#s(r);return}if(f(e,"escape")||f(e,"ctrl+c")){this.#h();return}if(this.#a){let i=Yi(e,this.#n.allowedOutcomes);if(i!==void 0){this.#m(i);return}this.#a.handleInput(e)&&this.invalidate();return}if(this.#i){let i=rt(e,this.#n.allowedOutcomes);if(i!==void 0){F(i)?this.#f(i):this.#m({outcome:i});return}this.#i.handleInput(e);return}let t=rt(e,this.#n.allowedOutcomes);if(t!==void 0){if(this.#n.answerSpec.kind==="boolean"){this.#m({outcome:t,...F(t)?{value:!0}:{}});return}if(["text","secret","number","form"].includes(this.#n.answerSpec.kind)&&F(t)){this.#f(t);return}this.#m({outcome:t});return}this.#r.handleInput(e)}render(e){return sn({theme:this.#e,title:Ki(this.#n),context:_i(this.#n),body:super.render(e),footer:Xi(this.#n,this.#s!==void 0),width:e,rows:this.#o(),preserveTailRows:4})}#p(e){this.#d.setText(this.#e.danger(e)),this.children.includes(this.#d)||this.addChild(this.#d),this.invalidate()}#f(e){this.#u=e,this.invalidate()}#m(e){if(!this.#c){if(!this.#n.allowedOutcomes.some(t=>t===e.outcome)){this.#p("That response is not allowed for this request.");return}this.#c=!0,this.#t(e)}}#h(){let e=ot(this.#n);if(e===void 0){this.#p("Cancellation is not allowed for this request.");return}this.#m({outcome:e})}#b(e){return new b(e,1,0)}};var dn=class{#e;#n;#t;#s;#r;#i;#a;#o;#d=!1;#l;#c;constructor(e){this.#e=e.theme,this.#n=e.modals,this.#t=e.nextOperationId,this.#s=e.dispatch,this.#r=e.currentView,this.#i=e.isStopped,this.#a=e.rows,this.#o=e.openAutomation}get isOpen(){return this.#d}sync(e){let t=e.interactions[0],i=t?be(t):void 0;if(!t){this.#c=void 0,this.#d&&(this.#d=!1,this.#l=void 0,this.#n.closeTop());return}i!==this.#c&&(!this.#d||i!==this.#l)&&this.#u(t)}#u(e){this.#d=!0,this.#l=be(e);let t=new an(e,this.#e,i=>{this.#d=!1,this.#c=this.#l,this.#l=void 0,this.#n.closeTop();let r=this.#c;this.#s({type:"respond-interaction",operationId:this.#t(),runId:e.runId,interactionId:e.interactionId,response:i}).then(o=>{if(this.#i())return;let s=this.#r().interactions[0];o.kind!=="accepted"&&s&&be(s)===r&&(this.#c=void 0,this.#u(s))})},i=>this.#o({interaction:e,proposedResponse:i,onClose:()=>this.#p(e)}),this.#a);this.#n.open(t,{anchor:"top-left",width:"100%",maxHeight:"100%",margin:0})}#p(e){if(this.#i())return;this.#d=!1,this.#l=void 0,this.#c=void 0;let t=this.#r().interactions[0];t!==void 0&&be(t)===be(e)&&this.#u(t)}};function be(n){return`${n.runId}:${n.interactionId}`}var Zi=["once","session","persistent"];function er(n){let e=n.enabled?"on":"off",t=String(n.uses)+(n.maximumUses===void 0?"":`/${n.maximumUses}`);return{value:n.id,label:e+" "+d(n.id)+" \xB7 "+d(n.responseScope)+" \xB7 "+t,description:[hs(n.answer),ys(n.matcher)].filter(i=>i.length>0).join(" \xB7 ")}}function nr(n){return{value:n,label:n,description:n==="once"?"this interaction only":n==="session"?"this provider session":"future matching interactions"}}function we(n){let e=d(n.kind)||"interaction",t=d(n.prompt).replace(/[\r\n]+/gu," ");return t.length===0?e:`${e} \xB7 ${t}`}function Ce(n){if(bs(n))return"manual only \xB7 secret responses are never automated";if(!n.allowedOutcomes.some(ve))return"manual only \xB7 no accepted response is available";if(st(n).length===0)return"manual only \xB7 this interaction offers no reusable response scope";if(!vs(n.answerSpec))return"manual only \xB7 this response shape is not supported"}function st(n){let e=new Set(n.responseScopes);return Zi.filter(t=>e.has(t))}function tr(n){return ws(n)?n:void 0}function at(n,e){return ve(e.outcome)?e.outcome:n.allowedOutcomes.find(ve)??"accept"}function ir(n,e){let t=at(n,e??{outcome:n.allowedOutcomes.find(ve)??"accept"});if(e!==void 0&&ve(e.outcome))return ln(e);let i=n.answerSpec;return i.kind==="boolean"?{outcome:t,value:i.defaultValue??!0}:i.kind==="select"?{outcome:t,value:d(i.options[0]?.value??"")}:{outcome:t}}function ln(n){let e=n.data,t={};if(e!==void 0)for(let[r,o]of Object.entries(e))t[d(r)]=Cs(o);let i=te(n);return{outcome:d(n.outcome),...i===void 0?{}:{value:typeof i=="string"?d(i):i},...e===void 0?{}:{data:t}}}function rr(n,e,t){let i=ln(e);return n.kind==="permission"?{...i,outcome:t}:i}function te(n){return"value"in n?n.value:void 0}function ve(n){return["accept","once","session","persistent"].includes(n)}function hs(n){return n===void 0?"answer unavailable":Object.entries(n).map(([e,t])=>`${d(e)}=${gs(t)}`).join(", ")}function ys(n){if(n===void 0)return"match: interaction";let e=[n.interactionKind===void 0?"":`kind ${n.interactionKind}`,n.subjectType===void 0?"":`subject ${n.subjectType}`,n.subjectValue===void 0?"":n.subjectValue,n.runner===void 0?"":`runner ${n.runner}`,n.connectionId===void 0?"":`connection ${n.connectionId}`,n.workspaceId===void 0?"":`workspace ${n.workspaceId}`].filter(t=>t.length>0).map(d);return e.length===0?"match: interaction":`match: ${e.join(" \xB7 ")}`}function gs(n){return Array.isArray(n)?n.map(d).join(","):d(String(n))}function bs(n){if(L(n))return!0;let e=n.answerSpec;return e.kind==="form"&&e.fields.some(t=>t.type==="secret")}function vs(n){return n.kind==="unknown"||n.kind==="secret"||n.kind==="form"?!1:n.kind!=="select"||n.options.length>0}function ws(n){return Zi.includes(n)}function Cs(n){return Array.isArray(n)?n.map(d):n}var un=class extends y{#e;#n;#t;#s;#r;#i=new c("",0,0);#a;#o;#d=!1;constructor(e){super(),this.#e=e.interaction,this.#n=e.theme,this.#t=e.onResponse,this.#s=e.onCancel,this.#r=at(e.interaction,e.proposedResponse);let t=e.interaction.answerSpec;t.kind==="form"?this.#c():this.#l(t,e.proposedResponse)}get focused(){return this.#d}set focused(e){this.#d=e,this.#a&&(this.#a.focused=e)}handleInput(e){if(f(e,"escape")||f(e,"ctrl+c")){this.#s();return}if(this.#a!==void 0){this.#a.handleInput(e);return}this.#o?.handleInput(e)}#l(e,t){switch(this.#h(),e.kind){case"text":{let i=new O,r=te(t);i.setValue(typeof r=="string"?r:""),i.onSubmit=o=>this.#p(o,e.required,e.maxLength),i.onEscape=()=>this.#s(),this.#a=i,this.addChild(new b("response",0,0)),this.addChild(i);break}case"number":{let i=new O,r=te(t);i.setValue(typeof r=="number"?String(r):""),i.onSubmit=o=>this.#f(o,e.required,e.minimum,e.maximum),i.onEscape=()=>this.#s(),this.#a=i,this.addChild(new b("response \xB7 number",0,0)),this.addChild(i);break}case"boolean":{let i=te(t),r=typeof i=="boolean"?i:e.defaultValue??!0;this.#o=this.#u([{value:"true",label:"yes"},{value:"false",label:"no"}],String(r),o=>this.#m(o.value==="true")),this.addChild(new b("response \xB7 choose",0,0)),this.addChild(this.#o);break}case"select":{let i=te(t),r=typeof i=="string"?i:d(e.options[0]?.value??""),o=e.options.map(s=>({value:d(s.value),label:d(s.label)}));this.#o=this.#u(o,r,s=>this.#m(s.value)),this.addChild(new b("response \xB7 choose",0,0)),this.addChild(this.#o);break}case"secret":case"unknown":this.#c();return}this.#b(),this.#a&&(this.#a.focused=this.#d)}#c(){this.#h(),this.addChild(new b(this.#n.warning("manual response only"),0,0)),this.#b()}#u(e,t,i){let r=new Q([...e],Math.min(4,Math.max(1,e.length)),this.#n.select),o=e.findIndex(s=>s.value===t);return o>=0&&r.setSelectedIndex(o),r.onSelect=i,r.onCancel=()=>this.#s(),r}#p(e,t,i){let r=d(e);if(t&&r.length===0){this.#g("a response is required");return}if(i!==void 0&&[...r].length>i){this.#g(`response is limited to ${i} characters`);return}this.#m(r)}#f(e,t,i,r){let o=d(e).trim();if(o.length===0&&!t){this.#m();return}let s=Number(o);if(!Number.isFinite(s)||i!==void 0&&s<i||r!==void 0&&s>r){this.#g("enter a number in the allowed range");return}this.#m(s)}#m(e){this.#t(ln({outcome:this.#r,...e===void 0?{}:{value:e}}))}#h(){this.clear(),this.#a=void 0,this.#o=void 0,this.addChild(new b(this.#n.brand("new automation rule"),0,0)),this.addChild(new b(`on: ${we(this.#e)}`,0,0))}#b(){this.addChild(this.#i),this.addChild(new b("enter continue \xB7 esc cancel",0,0))}#g(e){this.#i.setText(this.#n.danger(d(e))),this.invalidate()}};var D=class extends y{#e;#n;#t;#s;#r;#i;#a;#o=!1;#d=!1;constructor(e){super(),this.#e=e.theme,this.#n=new b(this.#e.brand(d(e.title)),1,0),this.#t=new b(`target: ${d(e.target)}`,1,0),this.#s=new c(this.#e.muted(`will ${d(e.confirmLabel??"confirm")}: ${d(e.detail)}`),1,0),this.#r=new c("",1,0),this.#i=e.onConfirm,this.#a=e.onCancel,this.addChild(this.#n),this.addChild(new w(1)),this.addChild(this.#t),this.addChild(this.#s),this.addChild(this.#r),this.addChild(new w(1)),this.addChild(new b(this.#e.muted("enter/y confirm \xB7 n/esc cancel"),1,0))}get focused(){return this.#o}set focused(e){this.#o=e}setError(e){this.#d=!1,this.#r.setText(this.#e.danger(d(e))),this.invalidate()}handleInput(e){if(!this.#d){if(f(e,"escape")||f(e,"ctrl+c")||f(e,"n")){this.#a();return}(f(e,"enter")||f(e,"y"))&&(this.#d=!0,this.#r.setText(this.#e.muted("working\u2026")),this.invalidate(),this.#i())}}},cn=class extends y{#e;#n=new O;#t;#s;#r;#i=!1;#a=!1;constructor(e){super(),this.#e=e.theme,this.#s=e.onSubmit,this.#r=e.onCancel,this.#n.setValue(""),this.#t=new c("",1,0),this.addChild(new c(this.#e.brand("rename conversation"),1,0)),this.addChild(new w(1)),this.addChild(new c(`current: ${d(e.currentTitle)}`,1,0)),this.addChild(new c(this.#e.muted("title"),1,0)),this.addChild(this.#n),this.addChild(this.#t),this.addChild(new w(1)),this.addChild(new c(this.#e.muted("enter save \xB7 esc cancel"),1,0))}get focused(){return this.#i}set focused(e){this.#i=e,this.#n.focused=e}setError(e){this.#a=!1,this.#t.setText(this.#e.danger(d(e))),this.invalidate()}handleInput(e){if(f(e,"escape")||f(e,"ctrl+c")){this.#r();return}if(!this.#a){if(f(e,"enter")){let t=this.#n.getValue().trim();if(!t){this.setError("A conversation title is required");return}this.#a=!0,this.#t.setText(this.#e.muted("saving\u2026")),this.invalidate(),this.#s(t);return}this.#n.handleInput(e)}}};var pn=class extends y{#e;#n;#t;#s;#r;#i;#a;#o;#d;#l;#c=!1;#u=!1;constructor(e){super(),this.#e=e.theme,this.#a=[...e.rules],this.#o=e.interaction,this.#d=e.proposedResponse,this.#n=e.onSelect,this.#t=e.onCreate,this.#s=e.onDisable,this.#r=e.onDelete,this.#i=e.onCancel,this.#p(e.notice),e.startCreate&&this.#m()}get focused(){return this.#c}set focused(e){this.#c=e,this.#l&&(this.#l.focused=e)}handleInput(e){this.#u||this.#l?.handleInput(e)}#p(e){let t=[],i=this.#o;if(i!==void 0){t.push(new b(`current: ${we(i)}`,0,0));let o=e??Ce(i);o!==void 0&&t.push(new b(this.#e.warning(o),0,0))}else e!==void 0&&t.push(new b(this.#e.warning(e),0,0));let r=new k({title:"automation rules",items:this.#a.map(er),theme:this.#e,maxVisible:3,emptyText:"No saved automation rules",noMatchText:"No matching automation rules",hideInputWhenEmpty:!0,footer:this.#f(),onAction:(o,s)=>{if(o==="new"){this.#m();return}if((o==="archive"||o==="delete")&&s!==null){let a=this.#a.find(l=>l.id===s.value);a!==void 0&&this.#v(o==="archive"?"disable":"delete",a)}},onSelect:o=>this.#n?.(o.value),onCancel:()=>this.#C()});this.#y(t,r)}#f(){let e=this.#o!==void 0&&Ce(this.#o)===void 0;return this.#a.length===0&&!e?this.#o===void 0?"create from a pending request with Alt+A \xB7 esc close":"this request stays manual \xB7 esc close":["type to filter",...this.#n===void 0?[]:["enter select"],...e?["ctrl+n new"]:[],...this.#a.length===0?[]:["ctrl+a off","ctrl+d del"],"esc close"].join(" \xB7 ")}#m(){let e=this.#o;if(e===void 0){this.#p("create requires a current interaction");return}let t=Ce(e);if(t!==void 0){this.#p(t);return}this.#h(ir(e,this.#d))}#h(e){let t=this.#o;if(t===void 0)return;let i=new un({interaction:t,proposedResponse:e,theme:this.#e,onResponse:r=>{this.#d=r,this.#b(r)},onCancel:()=>this.#C()});this.#y([],i)}#b(e){let t=this.#o;if(t===void 0)return;let i=st(t);if(i.length===0){this.#p("this interaction offers no reusable response scope");return}let r=new k({title:"rule scope",items:i.map(nr),theme:this.#e,maxVisible:3,footer:"type to filter \xB7 enter choose \xB7 esc back",onSelect:o=>{let s=tr(o.value);if(s!==void 0){if(s==="persistent"){this.#g(e);return}this.#w(e,s,!1)}},onCancel:()=>this.#h(e)});this.#y([],r)}#g(e){let t=this.#o;if(t===void 0)return;let i=new D({theme:this.#e,title:"save persistent rule?",target:we(t),detail:"future matching interactions will use this response",confirmLabel:"save persistent rule",onConfirm:()=>this.#w(e,"persistent",!0),onCancel:()=>this.#b(e)});this.#y([],i)}#v(e,t){let i=new D({theme:this.#e,title:`${e} automation rule?`,target:t.id,detail:e==="disable"?"matching responses will stop using this rule":"this rule and its future matches will be removed",confirmLabel:e,onConfirm:()=>{e==="disable"?this.#s?.(t.id):this.#r?.(t.id),this.#p()},onCancel:()=>this.#p()});this.#y([],i)}#w(e,t,i){let r=this.#o;r===void 0||Ce(r)!==void 0||(this.#u=!0,this.#t?.({interaction:r,response:rr(r,e,t),responseScope:t,confirmPersistent:i}))}#C(){this.#u||(this.#u=!0,this.#i())}#y(e,t){this.clear();for(let i of e)this.addChild(i);this.#l=t,this.addChild(t),t.focused=this.#c}};var fn=class{#e;#n=0;constructor(e){this.#e=e}open(e={}){let t=++this.#n;this.#t().then(i=>{if(t!==this.#n||i===void 0)return;let r=new pn({theme:this.#e.theme,rules:i,...e.interaction===void 0?{}:{interaction:e.interaction},...e.proposedResponse===void 0?{}:{proposedResponse:e.proposedResponse},...e.notice===void 0?{}:{notice:e.notice},startCreate:e.interaction!==void 0,onCreate:o=>{this.#s(o,e)},onDisable:o=>{this.#r("automation_disable",o,e)},onDelete:o=>{this.#r("automation_delete",o,e)},onCancel:()=>this.#i(e)});this.#e.modals.open(r,{anchor:"center",width:"88%",minWidth:40,maxHeight:"90%"}),this.#e.requestRender()})}async#t(){let e=await this.#e.controller.dispatch({type:"headless-command",command:"automation_list",params:{}});if(e.kind!=="accepted"){this.#a("Automation unavailable",e);return}let t=ks(e.data);if(t===void 0){this.#e.showError("Automation unavailable","The rule list returned invalid data");return}return t}async#s(e,t){let i=this.#e.nextOperationId(),r=await this.#e.controller.dispatch({type:"create-interaction-automation",operationId:i,ruleId:Is(i),runId:e.interaction.runId,interactionId:e.interaction.interactionId,response:e.response,responseScope:e.responseScope,confirmPersistent:e.confirmPersistent});if(r.kind!=="accepted"){this.open({...t,notice:or(r)});return}this.#i(t)}async#r(e,t,i){let r=await this.#e.controller.dispatch({type:"headless-command",command:e,operationId:this.#e.nextOperationId(),params:{ruleId:t}});if(r.kind!=="accepted"){this.open({...i,notice:or(r)});return}this.open(i)}#i(e){this.#n+=1,this.#e.modals.closeTop(),e.onClose?.(),this.#e.requestRender()}#a(e,t){this.#e.showError(e,t.kind==="unavailable"?t.reason:t.message)}};function or(n){return n.kind==="unavailable"?n.reason:n.message}function Is(n){return`rule-${n.replace(/^operation-/u,"").replace(/[^A-Za-z0-9._-]/gu,"-").slice(0,48)||"automation"}`}function ks(n){if(!Array.isArray(n))return;let e=[];for(let t of n){if(t===null||typeof t!="object")return;let i=t;if(typeof i.id!="string"||typeof i.enabled!="boolean"||!Ss(i.responseScope)||typeof i.uses!="number"||i.maximumUses!==void 0&&typeof i.maximumUses!="number")return;e.push({id:i.id,enabled:i.enabled,responseScope:i.responseScope,uses:i.uses,...i.maximumUses===void 0?{}:{maximumUses:i.maximumUses},...sr(i.matcher)?{matcher:i.matcher}:{},...sr(i.answer)?{answer:i.answer}:{}})}return e}function Ss(n){return n==="once"||n==="session"||n==="persistent"}function sr(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}var dt="apply-draft",lt="back-to-fields",ut="back-to-kind",ct="cancel-draft",pt="close-editor";function ar(n){let e=n.applied?[{value:pt,label:"Close",description:"esc close"}]:[{value:dt,label:n.busy?"Saving\u2026":"Continue",description:"save these details"},{value:lt,label:"\u2190 edit fields",description:"return to metadata"},{value:ut,label:"\u2190 change kind",description:"choose another connection"},{value:ct,label:"Cancel",description:"discard this draft"}],t=new Q([...e],Math.min(4,e.length),n.theme.select);return t.onSelect=i=>n.onSelect(i.value),t.onCancel=n.onCancel,t}function dr(n,e,t,i){try{Promise.resolve(e(n)).then(t,i)}catch(r){i(r)}}var xs=Object.freeze({"cli-bridge":"http://127.0.0.1:3344","tangle-inference":"https://router.tangle.tools","tangle-sandbox":"https://sandbox.tangle.tools"}),Ts=Object.freeze({"cli-bridge":"Local CLI Bridge","tangle-inference":"Tangle Inference","tangle-sandbox":"Tangle Sandbox"}),lr=Object.freeze([{value:"cli-bridge",label:"CLI Bridge",description:"local runner endpoint"},{value:"tangle-inference",label:"Tangle inference",description:"remote model routing endpoint"},{value:"tangle-sandbox",label:"Tangle sandbox",description:"remote workspace execution endpoint"}]);function hn(){return lr}function yn(n){return lr.find(e=>e.value===n)?.label??n}function ft(n){return Object.freeze({kind:n,name:Ts[n],endpoint:xs[n],region:"",account:""})}function ur(n){let e=Ms(n?.kind)?n.kind:"cli-bridge",t=ft(e);return Object.freeze({kind:e,name:mn(n?.name,t.name),endpoint:mn(n?.endpoint,t.endpoint),region:mn(n?.region,t.region),account:mn(n?.account,t.account)})}function A(n){return n==="cli-bridge"?["name","endpoint"]:["name","endpoint","account","region"]}function cr(n){switch(n){case"name":return"display name";case"endpoint":return"HTTP(S) endpoint";case"account":return"account / team (optional)";case"region":return"region (optional)"}}function pr(n){return[`kind ${yn(n.kind)}`,`name ${n.name}`,`endpoint ${n.endpoint}`,...n.account===void 0?[]:[`account ${n.account}`],...n.region===void 0?[]:[`region ${n.region}`],"credentials entered separately \xB7 values never accepted here"]}function Ms(n){return n==="cli-bridge"||n==="tangle-inference"||n==="tangle-sandbox"}function mn(n,e){return typeof n=="string"?d(n):e}function fr(n,e){let t=Et();if(t.matches(n,"tui.select.cancel")){e.onAction("cancel");return}if(f(n,"shift+tab")){e.onAction("back");return}if(t.matches(n,"tui.input.tab")||t.matches(n,"tui.input.submit")){e.onAction("next");return}let i=A(e.kind)[e.fieldIndex],r=i===void 0?void 0:e.inputs.get(i);if(i===void 0||r===void 0)return;r.handleInput(n);let o=d(r.getValue());o!==r.getValue()&&r.setValue(o),e.onValue(i,o)}function mr(n,e){e.clear();for(let t of A(n.kind)){let i=new O;i.setValue(n[t]),e.set(t,i)}}function hr(n,e,t){let i=A(n.kind)[t],r=i===void 0?void 0:e.get(i);if(i===void 0||r===void 0)return n;let o=d(r.getValue());return o!==r.getValue()&&r.setValue(o),Object.freeze({...n,[i]:o})}function yr(n,e,t,i,r){for(let s of n.values())s.focused=!1;if(!i||!r)return;let o=A(e)[t];if(o!==void 0){let s=n.get(o);s!==void 0&&(s.focused=!0)}}var Rs=new Set(["kind","name","endpoint","region","account"]),Cr=/\[redacted (?:secret|credential|bearer|link)\]/u;function gn(n){return n==="cli-bridge"||n==="tangle-inference"||n==="tangle-sandbox"}function mt(n,e={}){return Vs({kind:n.kind,name:n.name,endpoint:n.endpoint,...n.kind==="cli-bridge"?{}:{...n.region.trim()===""?{}:{region:n.region},...n.account.trim()===""?{}:{account:n.account}}},e)}function Vs(n,e={}){let t=[];if(!Os(n))return{ok:!1,issues:[{field:"metadata",message:"Connection metadata must be an object"}]};for(let p of Object.keys(n))Rs.has(p)||t.push({field:H(p)?"credentials":"metadata",message:H(p)?"Credential values are not accepted here; use the masked credential component":"Only connection metadata is accepted here"});let i=n.kind;gn(i)||t.push({field:"kind",message:"Choose a supported connection kind"});let r=gr(n.name,"name",t,120),o=gr(n.endpoint,"endpoint",t,2048),s=br(n.region,"region",t,128),a=br(n.account,"account",t,256);if(!gn(i))return wr(t);i==="cli-bridge"&&(s!==void 0||a!==void 0)&&t.push({field:s!==void 0?"region":"account",message:"Region and account are only available for Tangle connections"});let l;return o!==void 0&&(l=$s(o,i,e.trustedTransportPolicy,t)),t.length>0||r===void 0||l===void 0?wr(t):{ok:!0,draft:Object.freeze({kind:i,name:r,endpoint:l,...i==="cli-bridge"?{}:{...s===void 0?{}:{region:s},...a===void 0?{}:{account:a}}})}}function ht(n){return n.map(e=>`${e.field}: ${e.message}`).join(" \xB7 ")}function gr(n,e,t,i){if(typeof n!="string"){t.push({field:e,message:"Enter a value"});return}let r=Ir(n);if(Cr.test(r)){t.push({field:"credentials",message:"Credential values are not accepted here; use the masked credential component"});return}if(r.length===0){t.push({field:e,message:"Enter a value"});return}if(r.length>i){t.push({field:e,message:`Use at most ${i} characters`});return}return r}function br(n,e,t,i){if(n===void 0)return;if(typeof n!="string"){t.push({field:e,message:"Enter text or leave this field empty"});return}let r=Ir(n);if(r.length!==0){if(Cr.test(r)){t.push({field:"credentials",message:"Credential values are not accepted here; use the masked credential component"});return}if(r.length>i){t.push({field:e,message:`Use at most ${i} characters`});return}return r}}function Ir(n){return d(n).replace(/[\r\n\t]+/gu," ").trim()}function $s(n,e,t,i){let r;try{r=new URL(n)}catch{i.push({field:"endpoint",message:"Enter a valid HTTP(S) endpoint"});return}if(!["http:","https:"].includes(r.protocol)){i.push({field:"endpoint",message:"Endpoint must use HTTP or HTTPS"});return}if(r.username||r.password){i.push({field:"endpoint",message:"Endpoint credentials are not accepted here"});return}if(n.includes("?")||n.includes("#")){i.push({field:"endpoint",message:"Endpoint cannot contain a query or fragment"});return}if(r.protocol==="http:"&&!As(r.hostname)){let o=vr(r),s=!1;try{s=t?.({kind:e,endpoint:o})===!0}catch{s=!1}if(!s){i.push({field:"endpoint",message:"Remote HTTP requires an explicit trusted transport policy"});return}}return vr(r)}function vr(n){let e=n.toString();return n.pathname==="/"&&n.search===""&&n.hash===""?e.slice(0,-1):e}function As(n){let e=n.toLowerCase().replace(/^\[|\]$/gu,"");if(e==="localhost"||e==="::1")return!0;let t=e.split(".");return t.length===4&&t[0]==="127"&&t.slice(1).every(i=>/^\d+$/u.test(i)&&Number(i)<=255)}function wr(n){return{ok:!1,issues:n.length>0?Object.freeze([...n]):Object.freeze([{field:"metadata",message:"Complete the connection metadata"}])}}function Os(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function kr(n){return n.stage==="kind"?Bs(n):n.stage==="fields"?Us(n):Es(n)}function Bs(n){return[new c(n.theme.brand("connection metadata"),1,0),new c(n.theme.muted("Choose where requests go. This editor collects metadata only; credentials are entered separately."),1,0),new w(1),new c(n.theme.accent("connection kind"),1,0),n.kindList,new w(1),new c(n.theme.muted("\u2191\u2193 choose \xB7 enter next \xB7 esc cancel"),1,0)]}function Us(n){let e=[new c(n.theme.brand(`${yn(n.form.kind)} metadata`),1,0),new c(n.theme.muted("Metadata only \xB7 credential values are never accepted here"),1,0)];n.error!==void 0&&e.push(new c(n.theme.danger(d(n.error)),1,0)),e.push(new w(1));for(let t of A(n.form.kind)){e.push(new c(n.theme.accent(cr(t)),1,0));let i=n.inputs.get(t);i!==void 0&&e.push(i)}return e.push(new w(1),new c(n.theme.muted("tab / enter next \xB7 shift+tab back \xB7 esc cancel"),1,0)),e}function Es(n){let e=[new c(n.theme.brand(n.applied?"connection saved":"review connection"),1,0)];return n.error!==void 0&&e.push(new c(n.theme.danger(d(n.error)),1,0)),n.reviewDraft!==void 0&&e.push(new yt(n.theme,n.reviewDraft)),n.reviewList!==void 0&&e.push(n.reviewList),e.push(new c(n.theme.muted(n.applied?"enter close \xB7 esc close":n.busy?"saving\u2026":"\u2191\u2193 choose \xB7 enter continue / back \xB7 esc cancel"),1,0)),e}var yt=class{#e;#n;#t;constructor(e,t){this.#e=e;let i=pr(t).map(d);this.#n=new c(e.muted(i.join(`
5
- `)),1,0),this.#t=[`${yn(t.kind)} \xB7 ${d(t.name)}`,`endpoint ${d(t.endpoint)}`,...t.account===void 0?[]:[`account ${d(t.account)}`],...t.region===void 0?[]:[`region ${d(t.region)}`],"credentials separate \xB7 no values accepted"]}invalidate(){this.#n.invalidate()}render(e){return e>44?this.#n.render(e):this.#t.map(t=>this.#e.muted(x(d(t),Math.max(1,e-2),"\u2026")))}};var bn=class extends y{#e;#n;#t;#s;#r;#i;#a=new Map;#o;#d="kind";#l=0;#c;#u;#p;#f=!1;#m=!1;#h=!1;#b=!1;constructor(e){super(),this.#e=e.theme,this.#n=e.onApply,this.#t=e.onCancel,this.#s=e.requestRender,this.#r=e.trustedTransportPolicy,this.#o=ur(e.initialDraft),this.#i=new Q([...hn()],hn().length,e.theme.select),this.#i.setSelectedIndex(this.#O(this.#o.kind)),this.#i.onSelect=t=>this.#v(t.value),this.#i.onCancel=()=>this.#$(),this.#B()}get focused(){return this.#f}set focused(e){this.#f=e,this.#M()}handleInput(e){if(!(this.#b||this.#m)){if(this.#d==="kind"){this.#i.handleInput(e);return}if(this.#d==="review"){this.#u?.handleInput(e);return}this.#g(e)}}#g(e){fr(e,{kind:this.#o.kind,fieldIndex:this.#l,inputs:this.#a,onAction:t=>{t==="cancel"?this.#$():t==="back"?this.#y():this.#C()},onValue:(t,i)=>{this.#o=Object.freeze({...this.#o,[t]:i}),this.#p=void 0,this.invalidate(),this.#s?.()}})}#v(e){gn(e)&&(e!==this.#o.kind&&(this.#o=ft(e)),this.#d="fields",this.#l=0,this.#p=void 0,this.#c=void 0,this.#u=void 0,this.#w(),this.#S())}#w(){mr(this.#o,this.#a),this.#M()}#C(){this.#R();let e=A(this.#o.kind);if(this.#l<e.length-1){this.#l+=1,this.#M(),this.#S();return}this.#I()}#y(){if(this.#R(),this.#l>0){this.#l-=1,this.#M(),this.#S();return}this.#d="kind",this.#i.setSelectedIndex(this.#O(this.#o.kind)),this.#S()}#I(){let e=mt(this.#o,{...this.#r===void 0?{}:{trustedTransportPolicy:this.#r}});if(!e.ok){this.#p=ht(e.issues);let t=e.issues.find(i=>A(this.#o.kind).includes(i.field));if(t!==void 0){let i=A(this.#o.kind).indexOf(t.field);i>=0&&(this.#l=i)}this.#M(),this.#S();return}this.#c=e.draft,this.#d="review",this.#u=this.#k(),this.#S()}#k(){return ar({theme:this.#e,busy:this.#m,applied:this.#h,onSelect:e=>this.#x(e),onCancel:()=>this.#$()})}#x(e){if(e===pt||e===ct){this.#$();return}if(e===lt){this.#d="fields",this.#l=Math.max(0,A(this.#o.kind).length-1),this.#p=void 0,this.#w(),this.#S();return}if(e===ut){this.#d="kind",this.#p=void 0,this.#i.setSelectedIndex(this.#O(this.#o.kind)),this.#S();return}e===dt&&this.#A()}#A(){if(this.#m||this.#c===void 0)return;let e=mt(this.#o,{...this.#r===void 0?{}:{trustedTransportPolicy:this.#r}});if(!e.ok){this.#d="fields",this.#p=ht(e.issues),this.#w(),this.#S();return}this.#c=e.draft,this.#m=!0,this.#p=void 0,this.#u=this.#k(),this.#S(),dr(e.draft,this.#n,()=>this.#V(),t=>this.#T(t))}#V(){this.#m=!1,this.#h=!0,this.#u=this.#k(),this.#S()}#T(e){this.#m=!1,this.#p=d(e instanceof Error?e.message:"The connection draft could not be applied"),this.#u=this.#k(),this.#S()}#R(){this.#o=hr(this.#o,this.#a,this.#l)}#M(){yr(this.#a,this.#o.kind,this.#l,this.#f,this.#d==="fields")}#O(e){return hn().findIndex(t=>t.value===e)}#S(){this.#B(),this.#s?.()}#B(){this.#M(),this.clear();for(let e of kr({theme:this.#e,stage:this.#d,form:this.#o,kindList:this.#i,inputs:this.#a,...this.#c===void 0?{}:{reviewDraft:this.#c},...this.#u===void 0?{}:{reviewList:this.#u},...this.#p===void 0?{}:{error:this.#p},busy:this.#m,applied:this.#h}))this.addChild(e);this.invalidate()}#$(){this.#m||this.#b||(this.#b=!0,this.#f=!1,this.#M(),this.#t())}};var vn=class{#e;constructor(e){this.#e=e}openEditor(e){let t={theme:this.#e.theme,...e===void 0?{}:{initialDraft:e},onApply:i=>this.#n(i),onCancel:this.#e.openPicker,requestRender:this.#e.requestRender};this.#e.modals.open(new bn(t),{anchor:"center",width:"82%",minWidth:36,maxHeight:"90%"})}openRemoval(e){let t;try{t=this.#e.lifecycle.previewRemoval(e.id)}catch(r){this.#e.showBlocked("connection removal unavailable",r instanceof Error?r.message:"The connection could not be inspected");return}if(t.blockers.length>0){this.#e.showBlocked("connection removal blocked",t.blockers.map(r=>`${r.kind} ${r.id}: ${r.action}`).join(" \xB7 "));return}let i;i=new D({theme:this.#e.theme,title:"remove connection",target:t.name,detail:Ds(t),confirmLabel:"remove metadata",onConfirm:()=>{this.#e.lifecycle.remove({operationId:this.#e.nextOperationId(),connectionId:t.connectionId,expectedRevision:this.#e.revision()}).then(this.#e.openPicker,r=>{i.setError(r instanceof Error?r.message:"Connection removal failed"),this.#e.requestRender()})},onCancel:this.#e.openPicker}),this.#e.modals.open(i,{anchor:"center",width:"72%",minWidth:36,maxHeight:12})}#n(e){let t=this.#e.nextOperationId();return this.#e.lifecycle.requiresCredential(e)?new Promise((i,r)=>{this.#t(t,e,i,r)}):this.#s(t,e)}#t(e,t,i,r,o){let s=new ii({theme:this.#e.theme,connectionName:t.name,...o===void 0?{}:{error:o},onSubmit:a=>{this.#s(e,t,a).then(i,l=>{a.fill(0),this.#t(e,t,i,r,l instanceof Error?l.message:"Connection creation failed")})},onCancel:()=>{r(new Error("Credential entry cancelled")),this.openEditor(t)}});this.#e.modals.open(s,{anchor:"center",width:"72%",minWidth:36,maxHeight:10})}async#s(e,t,i){try{await this.#e.lifecycle.create({operationId:e,draft:t,...i===void 0?{}:{credential:i},expectedRevision:this.#e.revision()}),this.#e.openPicker()}finally{i?.fill(0)}}};function Ds(n){return`${n.credential==="unique"?"its unshared secure credential will be deleted":n.credential==="shared"?`its credential stays because ${n.sharedCredentialConnectionIds.length} other connection(s) use it`:"no credential is attached"}; historical records stay; cloud resources are never destroyed`}var z=class{#e;#n;#t;#s="";constructor(e,t=1,i=0,r=e){this.#e=new c(e,t,i),this.#n=t,this.#t=i,this.#s=r}invalidate(){this.#e.invalidate()}setText(e,t=e){this.#e.setText(e),this.#s=t,this.invalidate()}render(e){return e>44?this.#e.render(e):new b(this.#s,this.#n,this.#t).render(e)}};function bt(n){return n.label.replace(/^✓\s/u,"")}function Sr(n,e,t){return{type:"headless-command",command:"select_connection",operationId:e,params:{connectionId:n.value,expectedRevision:t}}}function xr(n,e){return{type:"headless-command",command:"test_connection",operationId:e,params:{connectionId:n.value}}}function Ie(n,e){return d(n instanceof Error?n.message:e)}function Tr(n){if(!gt(n)||!("connection"in n))return;let e=n.connection;if(!(!gt(e)||typeof e.id!="string"||typeof e.name!="string"||typeof e.kind!="string"||typeof e.credentialConfigured!="boolean"||typeof e.ready!="boolean"||!js(e.health)||!Array.isArray(e.capabilityHints)))return e}function js(n){return gt(n)&&"status"in n&&typeof n.status=="string"}function gt(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function Mr(n,e){let t=[new c(n.brand("connection"),1,0),new w(1)],i=e.connectionSetup;if(i===void 0)return t.push(new c(n.muted("No connection details loaded."),1,0)),t.push(new c(n.warning("Use /connection to list, test, or select connections."),1,0)),t;t.push(new c(n.muted(`kind ${d(i.kind)} \xB7 health ${d(i.health)}`),1,0));for(let r of i.fields){let o=je(r.label,r.value,r.secret);t.push(new c(`${d(r.label)}: ${o}`,1,0))}return i.capabilities.length>0&&t.push(new c(`capabilities: ${i.capabilities.map(d).join(", ")}`,1,0)),i.error!==void 0&&t.push(new c(n.danger(d(i.error)),1,0)),t}var Ps=2e3,wn=class extends y{#e;#n;#t;#s;#r;#i;#a=new z("",1,0);#o=new z("",1,0);#d;#l=[];#c=!1;#u=!1;#p=0;#f;constructor(e,t={}){super(),this.#e=e,this.#n=t.controller,this.#t=t.nextOperationId,this.#s=t.onCancel,this.#r=t.onCreate,this.#i=t.onRemove,this.#n!==void 0&&(this.#m(t.query??""),this.#h().catch(i=>{this.#I(this.#l.length>0?`Refresh unavailable \xB7 showing the last connection list \xB7 ${Ie(i,"refresh failed")}`:`Connections unavailable \xB7 refresh failed \xB7 ${Ie(i,"try again")}`)}))}get focused(){return this.#c}set focused(e){this.#c=e,this.#d&&(this.#d.focused=e)}handleInput(e){this.#d?.handleInput(e)}setView(e){if(this.#n===void 0){this.clear();for(let t of Mr(this.#e,e))this.addChild(t);this.invalidate()}}#m(e){this.#n!==void 0&&(this.#d=new k({title:"connections",items:[],query:e,maxVisible:5,footer:this.#r===void 0?"enter select \xB7 ^T test \xB7 esc close":"enter select \xB7 ^N new \xB7 ^T test \xB7 ^D remove \xB7 esc close",theme:this.#e,onSelect:t=>{this.#b(t)},onAction:(t,i)=>{if(i!==null&&t==="test"&&!this.#u&&this.#g(i),t==="new"&&!this.#u&&this.#r?.(),i!==null&&t==="delete"&&!this.#u){let r=this.#l.find(o=>o.id===i.value);r!==void 0&&this.#i?.(r)}},onCancel:()=>this.#s?.()}),this.#d.focused=this.#c,this.#C("Loading connections\u2026"))}async#h(e,t){let i=++this.#p,r=await Fe(this.#v({type:"headless-command",command:"list_connections",params:{}}),Ps);if(i!==this.#p)return;if(r===Pe){this.#I(this.#l.length>0?"Refresh unavailable \xB7 showing the last connection list":"Connections unavailable \xB7 refresh timed out");return}if(r.kind!=="accepted"){this.#I(this.#l.length>0?`Refresh unavailable \xB7 showing the last connection list \xB7 ${B(r,"")}`:B(r,"Connections unavailable"));return}this.#l=[...oi(r.data)];let o=this.#n?.view().connection,s=this.#l.find(u=>u.id===this.#f),a=s?.name===o?s:this.#l.filter(u=>u.name===o).length===1?this.#l.find(u=>u.name===o):void 0;this.#f=a?.id,this.#d?.setItems(ai(this.#l,o,this.#f));let l=t??a;this.#y(ui(l).join(`
6
- `),ci(l)),this.#I(e??(this.#l.length===0?"No connections found":a===void 0?"Connections ready \xB7 choose one":`Active connection \xB7 ${T(a.name)}`))}async#b(e){if(this.#u)return;this.#u=!0;let t=bt(e);this.#I(`Selecting ${T(t)}\u2026`);try{let i=await this.#v(Sr(e,this.#w(),this.#n?.view().revision??0));i.kind==="accepted"?(this.#f=e.value,await this.#h(`Selected ${T(t)} \xB7 next runs use it`)):this.#I(B(i,"Connection selection failed"))}catch(i){this.#I(Ie(i,"Connection selection failed"))}finally{this.#u=!1}}async#g(e){if(this.#u)return;this.#u=!0;let t=bt(e);this.#I(`Testing ${T(t)}\u2026`);try{let i=await this.#v(xr(e,this.#w()));if(i.kind!=="accepted"){this.#I(B(i,"Connection test failed"));return}let r=Tr(i.data),o=r?.health.status??"unknown",s=r?.modelVerification?.status??"unverified";await this.#h(`Tested ${T(t)} \xB7 health ${T(o)} \xB7 model ${T(s)}`,r)}catch(i){this.#I(Ie(i,"Connection test failed"))}finally{this.#u=!1}}#v(e){return this.#n===void 0?Promise.resolve({kind:"error",code:"UI_NOT_CONNECTED",message:"Connection actions require an application controller",retryable:!1}):this.#n.dispatch(e)}#w(){return this.#t?.()??`connection-ui-${Date.now()}`}#C(e){e!==void 0&&this.#a.setText(d(e)),this.clear(),this.addChild(this.#a),this.addChild(this.#o),this.#d&&this.addChild(this.#d),this.invalidate()}#y(e,t=e){this.#o.setText(this.#e.muted(d(e)),this.#e.muted(d(t))),this.#C()}#I(e){this.#a.setText(d(e)),this.#C()}};function Vr(n){return[...n.conversations].sort((e,t)=>e.active!==t.active?e.active?-1:1:t.updatedAt.localeCompare(e.updatedAt)).map(e=>({value:e.id,label:e.title,description:`${e.archived?"archived":"active"} ${Fs(e.updatedAt)} branch ws:${Ns(n.workspace)} ${e.branchId} ${n.workspace??""}`}))}function vt(n){let e=new Set,t=n.graph.filter(i=>i.type==="branch").filter(i=>e.has(i.id)?!1:(e.add(i.id),!0)).map(i=>({value:i.id,label:i.title,description:`${i.id===n.branch?"current \xB7 ":""}${i.status} \xB7 ${i.id}`}));return e.has(n.branch)||t.unshift({value:n.branch,label:"current branch",description:`current \xB7 ${n.branch}`}),t}function $r(n,e){let t=n.conversations.find(i=>i.id===e);return t===void 0?void 0:{id:t.id,title:t.title,branchId:t.branchId,archived:t.archived}}function Rr(n,e){return n?.fields.find(t=>t.label===e)?.source}function Ar(n){if(!n?.allowed)return;let e=Rr(n,"operation id"),t=Rr(n,"plan digest");return e===void 0||t===void 0?void 0:{operationId:e,planDigest:t}}function ie(n,e){return n.kind==="accepted"?n.notice??e:n.kind==="unavailable"?n.reason:n.message}function Or(n){return[...new Set(n)]}function Fs(n){let e=Date.parse(n);return Number.isNaN(e)?d(n):new Date(e).toISOString().slice(0,10)}function Ns(n){return(n??"unavailable").replace(/^\//u,"")}var Cn=class extends y{#e;#n;#t;#s;#r=new c("",1,0);#i="fork preview";#a;#o="\u2190/esc cancel";#d=!1;#l=!1;#c=!1;constructor(e,t={}){super(),this.#e=e,this.#n=t.onConfirm,this.#t=t.onCancel,this.#s=t.rows??(()=>12)}get focused(){return this.#d}set focused(e){this.#d=e}setView(e){this.clear(),this.#l=!1,this.#c=!1,this.#r.setText("");let t=e.forkPreview;if(!t)this.#i="fork preview \xB7 unavailable",this.#a=void 0,this.#o="\u2190/esc cancel",this.addChild(this.#u(this.#e.muted("No fork plan is available."))),this.addChild(this.#u(this.#e.warning("Checkpoint and fork capabilities were not reported by the core.")));else{this.#c=Ar(t)!==void 0,this.#i="fork preview",this.#a=d(t.kind),this.addChild(this.#u(this.#e.muted(`will create a new ${d(t.kind)} from this source`))),this.addChild(this.#u(`source: ${d(t.source)}`)),this.addChild(this.#u(`destination: ${d(t.destination)}`));let i=t.fields.find(o=>qs(o.label));this.addChild(this.#u(i?`boundary: ${d(i.source)} \u2192 ${d(i.destination)}`:this.#e.warning("boundary: not reported by the fork plan")));let r=t.fields.filter(o=>o!==i&&!Ls(o.label));for(let o of r.slice(0,3))this.addChild(this.#u(`${d(o.label)}: ${d(o.source)} \u2192 ${d(o.destination)}`));r.length>3&&this.addChild(this.#u(this.#e.muted(`+${r.length-3} fields not shown`))),this.addChild(this.#r),this.#c?this.#o="enter/y create fork \xB7 \u2190/esc cancel":(this.addChild(this.#u(this.#e.warning(d(t.allowed?"The fork plan is missing execution data; create a fresh preview":t.unavailableReason??"Fork is unavailable")))),this.#o="\u2190/esc cancel")}this.invalidate()}setError(e){this.#l=!1,this.#r.setText(this.#e.danger(d(e))),this.invalidate()}handleInput(e){if(f(e,"escape")||f(e,"left")||f(e,"ctrl+c")){this.#t?.();return}this.#l||!this.#c||this.#n===void 0||(f(e,"enter")||f(e,"y"))&&(this.#l=!0,this.#n())}render(e){return sn({theme:this.#e,title:this.#i,...this.#a===void 0?{}:{context:this.#a},body:super.render(e),footer:this.#o,width:e,rows:this.#s()})}#u(e){return new b(e,1,0)}};function qs(n){return/boundary|context|through|message|turn/iu.test(d(n))}function Ls(n){return n==="operation id"||n==="plan digest"}function In(n){let e=new Map,t=new Map;for(let o of n.messages)for(let s of o.parts)s.sourceEventId!==void 0&&s.status!==void 0&&(o.runId===void 0?t.set(s.sourceEventId,s.status):e.set(Br(o.runId,s.sourceEventId),s.status));let i=new Map(n.runs.map(o=>[o.id,o])),r=n.activity.map(o=>{let s=o.sourceEventId,a=s===void 0?void 0:e.get(Br(o.runId,s))??t.get(s),l=o.runId===void 0?void 0:i.get(o.runId),u=o.elapsedMs??(o.kind==="run"?l?.usage?.elapsedMs:void 0),p=zs(o);return Object.freeze({id:o.id,kind:o.kind,title:o.title,status:a??o.status,summary:Ks(o),...o.detail===void 0?{}:{detail:o.detail},...u===void 0?{}:{durationMs:u},...o.startedAt===void 0?{}:{startedAt:o.startedAt},...o.occurredAt===void 0?{}:{occurredAt:o.occurredAt},...p===void 0?{}:{source:p},...o.runId===void 0?{}:{runId:o.runId},...o.parentId===void 0?{}:{parentId:o.parentId},...o.depth===void 0?{}:{depth:o.depth},...o.kind==="run"&&l?.usage!==void 0?{usage:l.usage}:{}})});return Object.freeze({items:Object.freeze(r)})}function zs(n){if(!(n.sourceEventId===void 0&&n.entityType===void 0&&n.entityId===void 0))return Object.freeze({...n.sourceEventId===void 0?{}:{eventId:n.sourceEventId},...n.entityType===void 0?{}:{entityType:n.entityType},...n.entityId===void 0?{}:{entityId:n.entityId}})}function Ks(n){let e=n.detail?.split(`
7
- `)[0]?.trim();return e&&e.length>0?e:n.title}function Br(n,e){return`${n??""}:${e}`}var kn=class extends y{#e;constructor(e){super(),this.#e=e}setView(e){let t=In(e);if(this.clear(),this.addChild(new c(this.#e.brand("activity"),1,0)),t.items.length===0)this.addChild(new w(1)),this.addChild(new c(this.#e.muted("No recorded activity."),1,0));else{this.addChild(new w(1));for(let i of t.items)this.addChild(this.#n(i))}this.invalidate()}#n(e){let t=d(e.status),i=e.summary!==e.title?` \xB7 ${d(e.summary)}`:"",r=d(e.title),o=e.status==="failed"||e.status==="storage-failure"?this.#e.danger:e.status==="running"?this.#e.warning:e.status==="complete"||e.status==="completed"?this.#e.success:this.#e.muted,s=e.status==="failed"||e.status==="storage-failure"?"x":e.status==="running"?">":e.status==="complete"||e.status==="completed"?"ok":"\xB7",a=e.durationMs===void 0?"":` ${Math.round(e.durationMs)}ms`;return new b(`${o(`${s} ${t}`)} ${r}${a}${i}`,1,0)}};function Er(n){let e=n.sessionUsage.turns;return Hs(n.sessionUsage)?[wt("turns",e),wt("analysis",n.sessionUsage.analyses),wt("workers",n.sessionUsage.delegated)].filter(t=>t!==void 0):e.sourceCount===0?[]:_s(n)}function _s(n){let e=n.sessionUsage.turns,t=e.input,i=e.output,r=e.costUsd,o=e.tokenStatus==="complete"?"":"\u2265",s=[],a=(t??0)===0&&(i??0)===0,l=e.tokenStatus!=="complete"&&a;l&&s.push("usage unknown"),t!==void 0&&!l&&s.push(`in ${o}${ue(t)}`),i!==void 0&&!l&&s.push(`out ${o}${ue(i)}`),e.costStatus==="reported"&&r!==void 0&&Number.isFinite(r)?s.push(`$${r.toFixed(4)}`):e.costStatus==="estimated"&&e.estimatedCostUsd!==void 0&&Number.isFinite(e.estimatedCostUsd)&&e.estimatedCostUsd>=0?s.push(`~$${e.estimatedCostUsd.toFixed(4)}`):r!==void 0&&r>0&&Number.isFinite(r)?s.push(`\u2265$${r.toFixed(4)}`):e.estimatedCostUsd!==void 0&&Number.isFinite(e.estimatedCostUsd)&&e.estimatedCostUsd>=0?s.push(`~$${e.estimatedCostUsd.toFixed(4)}`):l||s.push("cost unknown"),(e.llmCalls??0)>0&&s.push(`${e.llmCalls} calls`),(e.llmLatencyMs??0)>0&&s.push(`${Math.round(e.llmLatencyMs??0)}ms model`);let u=n.sessionUsage.analyses;if(u.sourceCount>0){let m=u.costStatus==="reported";s.push(u.costUsd===void 0||!m&&u.costUsd===0?"analysis $unknown":`analysis ${m?"":"\u2265"}$${u.costUsd.toFixed(4)}`)}let p=n.sessionUsage.delegated;return p.sourceCount>0&&s.push(p.costUsd===void 0||p.costUsd===0?"workers $unknown":`workers \u2265$${p.costUsd.toFixed(4)}`),s}function Hs(n){return[n.turns,n.analyses,n.delegated].some(Ws)}function Ws(n){return n.callStatus!==void 0||n.latencyStatus!==void 0||n.unknownCallSources!==void 0||n.unknownLatencySources!==void 0}function wt(n,e){if(e.sourceCount===0)return;let t=[...Gs(e),Xs(e)].filter(o=>o!==void 0),i=Ur("calls",e.llmCalls,e.callStatus,e.unknownCallSources,o=>String(Math.round(o))),r=Ur("latency",e.llmLatencyMs,e.latencyStatus,e.unknownLatencySources,o=>`${Math.round(o)}ms`);return i!==void 0&&t.push(i),r!==void 0&&t.push(r),t.length===0?void 0:`${n} ${t.join(" \xB7 ")}`}function Gs(n){let e=n.tokenStatus==="complete"?"":"\u2265",t=(n.input??0)===0&&(n.output??0)===0;return n.tokenStatus!=="complete"&&t?["usage unknown"]:[...n.input===void 0?[]:[`in ${e}${ue(n.input)}`],...n.output===void 0?[]:[`out ${e}${ue(n.output)}`]]}function Xs(n){if(n.costStatus===void 0&&n.costUsd===void 0&&n.estimatedCostUsd===void 0)return;let e=n.costUsd;return n.costStatus==="reported"&&e!==void 0&&Number.isFinite(e)?`$${e.toFixed(4)}`:n.costStatus==="estimated"&&n.estimatedCostUsd!==void 0&&Number.isFinite(n.estimatedCostUsd)&&n.estimatedCostUsd>=0?`~$${n.estimatedCostUsd.toFixed(4)}`:e!==void 0&&e>0&&Number.isFinite(e)?`\u2265$${e.toFixed(4)}`:n.estimatedCostUsd!==void 0&&Number.isFinite(n.estimatedCostUsd)&&n.estimatedCostUsd>=0?`~$${n.estimatedCostUsd.toFixed(4)}`:n.costStatus===void 0?void 0:"cost unknown"}function Ur(n,e,t,i,r){if(t===void 0&&e===void 0&&i===void 0)return;let o=Math.max(0,i??(e===void 0?1:0));if(e===void 0||t==="unknown")return`${n} unknown${o>0?` (${o} missing)`:""}`;let s=t==="partial"?"\u2265":"",a=t==="partial"&&o>0?` (+${o} missing)`:"";return`${n} ${s}${r(e)}${a}`}var Sn=class{#e;#n;constructor(e){this.#e=e}setState(e){this.#n=e}invalidate(){}render(e){return[...this.renderTop(e),...this.renderBottom(e)]}renderTop(e){let t=this.#n;if(!t)return[];let{view:i}=t,r=E(i);return Lt(this.#e,{workspace:i.workspace,conversationTitle:i.conversationTitle,branch:i.branch,profileName:r.profileName,runner:r.runner,model:r.model,connection:r.connection,...r.effort===void 0?{}:{effort:r.effort},...r.maxOutputTokens===void 0?{}:{maxOutputTokens:r.maxOutputTokens},execution:Dr(r)},e)}renderBottom(e){let t=this.#n;if(!t)return[];let i=Math.max(1,Math.floor(e)),{view:r}=t,o=qt(i),s=Ue(this.#e,Dr(E(r))),a=zt(Qs(this.#e,r,Ys(r,t.quitArmed)),i),l=Ue(this.#e,Js(r,t.navigationHint)),u=o==="wide"?Er(r).map(p=>Ue(this.#e,p)):[];return[Kt([a,s],[l,...u],i)]}};function Dr(n){let e=n.environment;if(e===void 0)return"";let t=e.location==="local"?"local":e.location,i=e.kind==="sandbox"?"sandbox":e.provider==="cli-bridge"?"CLI":e.provider;return`exec ${t??"unknown"} ${i} \xB7 ${e.lifecycle}`}function Qs(n,e,t){let i=le(t);return e.status==="failed"||e.status==="storage-failure"?n.danger(i):e.status==="running"||e.status==="waiting"||e.status==="cancelling"||e.status==="cancelled"||e.status==="expired"?n.warning(i):n.success(i)}function Ys(n,e){if(e)return"ctrl+c again to quit";let t=le(n.notice??n.statusText);if(n.activeRunId!==void 0&&(n.status==="starting"||n.status==="streaming"||n.status==="running"||n.status==="waiting"))return`${t||n.status} \xB7 Ctrl+C cancel`;if(n.status==="failed"||n.status==="unknown"){let i=n.runs.at(-1);if(i!==void 0)return`${i.completeness==="unknown"?"outcome unknown":"outcome failed"} \xB7 operation ${Zs(i.operationId??i.id)}`}return t.length>0?t:Nn(n.status)||"unknown"}function Js(n,e){return n.activeRunId!==void 0?"Enter queues input":n.status==="failed"||n.status==="unknown"?"/export preserve \xB7 /new continue":e}function Zs(n){let e=Nn(n);return e.length<=18?e:`${e.slice(0,10)}\u2026${e.slice(-6)}`}var jr=new RegExp(String.raw`\u001b\]8;[^;\u0007\u001b]*;([^\u0007\u001b]*)(?:\u0007|\u001b\\)`,"gu");function ea(n){return{...n,linkUrl:e=>{let t=/^\s*\((.*)\)\s*$/su.exec(e),i=t?.[1]?Ae(t[1]):void 0;return i?n.linkUrl(` (${i})`):n.linkUrl(" ([link removed])")}}}function na(n){let e=n.replace(jr,(t,i)=>{if(!i)return t;let r=Ae(i);return r?`\x1B]8;;${r}\x1B\\`:""});return Rt(e)}function ta(n){let e;return n.replace(jr,(t,i)=>{if(i)return e=Ae(i),"";let r=e===void 0?"":` (${e})`;return e=void 0,r})}var re=class{#e;#n;constructor(e,t,i,r,o,s,a={}){this.#n=a.allowHyperlinks??!0,this.#e=new jt(e,t,i,ea(r),o,s)}setText(e){this.#e.setText(e)}invalidate(){this.#e.invalidate()}render(e){return this.#e.render(e).map(t=>{let i=na(t);return this.#n?i:ta(i)})}};var Ct=new Set(["reasoning","tool","result","artifact","analysis"]),Fr=32*1024,It=`\u2026
8
- `,ia=Fr-Buffer.byteLength(It,"utf8"),ra=new Intl.Segmenter(void 0,{granularity:"grapheme"}),Tn=class extends y{#e;#n;#t=Number.MAX_SAFE_INTEGER;#s=0;#r=!0;#i;#a=[];#o=new Set;#d;constructor(e){super(),this.#e=e}setView(e){this.#n=e,this.clear(),e.hiddenMessageCount>0&&this.addChild(new c(this.#e.muted(`${e.hiddenMessageCount} earlier messages hidden`),1,0));for(let i of e.queue??[])this.addChild(this.#p(i));for(let i of e.messages)this.addChild(this.#f(i));e.messages.length===0&&(this.addChild(new w(1)),this.addChild(new c(this.#e.muted(`Send a task to ${d(e.profileName)}, or press Ctrl+P for commands.`),1,0)));let t=new Set(e.messages.flatMap(i=>i.parts.filter(r=>Ct.has(r.kind)).map(r=>r.id)));for(let i of this.#o)t.has(i)||this.#o.delete(i);this.#d!==void 0&&!t.has(this.#d)&&(this.#d=void 0),this.invalidate()}setViewportRows(e){this.#t=Math.max(1,Math.floor(e)),this.invalidate()}get followTail(){return this.#r}get canScroll(){return this.#u()>0}navigationHint(){if(this.canScroll&&!this.#r)return"PgUp/PgDn history \xB7 End follow";let e=this.#v().length;return e>1?`Ctrl+E next detail (${this.#d?this.#v().findIndex(i=>i.id===this.#d)+1:e}/${e})`:e===1?"Ctrl+E detail":this.canScroll?"PgUp/PgDn history":"Ctrl+P commands"}hasCollapsibleDetails(){return this.#v().length>0}toggleDetails(){let e=this.#n;if(e===void 0)return!1;let t=this.#v();if(t.length===0)return!1;let i=this.#d?t.findIndex(s=>s.id===this.#d):-1,r=i<0?t.length-1:(i+1)%t.length,o=t[r];if(o===void 0)return!1;this.#d=o.id;for(let s of this.#o)this.#o.delete(s);return this.#o.add(o.id),this.setView(e),!0}handleInput(e){let t=Math.max(1,this.#t-2);return f(e,"pageUp")||f(e,"alt+pageUp")?this.#r?(this.#c({tailOffsetRows:t}),!0):(this.#l(this.#s-t),!0):f(e,"pageDown")||f(e,"alt+pageDown")?(this.#l(this.#s+t),!0):f(e,"home")||f(e,"alt+home")?this.#r?(this.#c("start"),!0):(this.#l(0),!0):f(e,"end")||f(e,"alt+end")?(this.#l(this.#u()),!0):!1}render(e){let t=super.render(Math.max(1,Math.floor(e)));this.#a=t;let i=Math.max(0,t.length-this.#t);return this.#i==="start"?(this.#s=0,this.#i=void 0):this.#i!==void 0?(this.#s=Math.max(0,i-this.#i.tailOffsetRows),this.#i=void 0):this.#r?this.#s=i:this.#s=Math.max(0,Math.min(this.#s,i)),t.slice(this.#s,this.#s+this.#t)}#l(e){let t=this.#u();this.#s=Math.max(0,Math.min(Math.trunc(e),t));let i=this.#s>=t;i&&!this.#r?(this.#r=!0,this.#n!==void 0&&this.setView(this.#n)):this.#r=i,this.invalidate()}#c(e){this.#r=!1,this.#i=e,this.#n!==void 0&&this.setView(this.#n)}#u(){return Math.max(0,this.#a.length-this.#t)}#p(e){let t=e.status==="blocked"?this.#e.danger("blocked"):this.#e.warning("queued");return new c(`${t} ${e.position}. ${d(e.text)}`,1,0)}#f(e){let t=new y;if(this.#e.highContrast&&t.addChild(new c(this.#e.accent(`${e.role}:`),1,0)),e.role==="user"){let r=new Ut(1,0,this.#e.userBackground);return r.addChild(new re(de(e.text),0,0,this.#e.markdown,void 0,void 0,{allowHyperlinks:this.#e.terminalMetadata})),t.addChild(r),t}t.addChild(new w(1));let i=e.status==="streaming"&&this.#r;for(let r of e.parts)t.addChild(this.#m(r,i));return e.parts.length===0&&e.text&&t.addChild(this.#g(Pr(e.text,i))),e.status==="failed"||e.status==="blocked"?t.addChild(new c(this.#e.danger(e.status),1,0)):e.status==="cancelled"||e.status==="aborted"?t.addChild(new c(this.#e.warning("cancelled"),1,0)):e.status==="redacted"?t.addChild(new c(this.#e.muted("content removed"),1,0)):e.status==="streaming"&&t.addChild(new c(this.#e.warning(this.#e.progress("working")),1,0)),t}#m(e,t){let i=e.kind==="text"?Pr(e.text,t):e.text;if(e.kind==="text"&&e.input===void 0&&e.result===void 0&&e.error===void 0)return this.#g(i);if(Ct.has(e.kind))return this.#b(e);let r=e.kind==="artifact"?Oe(i):de(i);return this.#h(e,r)}#h(e,t){let i=new y,r=e.kind==="text"?"":`${e.kind} \xB7 `;return(r.length>0||e.status!==void 0)&&i.addChild(new c(this.#e.muted(`${r}${e.status??"unknown"}`),1,0)),t&&i.addChild(this.#g(t)),e.error&&i.addChild(new c(this.#e.danger(d(e.error)),1,0)),i}#b(e){let t=new y,i=e.status,r=oa(e),o=i==="failed"?this.#e.danger:i==="running"||i==="queued"?this.#e.warning:i==="complete"?this.#e.success:this.#e.muted,s=i==="failed"?"x":i==="complete"?"ok":i==="running"?">":"\xB7",a=e.collapsed===!1||this.#o.has(e.id),l=Nr(e),u=this.#v(),p=u.findIndex(v=>v.id===e.id),m=this.#d===e.id?this.#e.accent("\u25C6 "):"",h=u.length>1&&p>=0?` ${p+1}/${u.length}`:"";return t.addChild(new c(`${m}${o(`${s} ${d(r)}${i===void 0?"":` \xB7 ${i}`}`)}${h}${l?this.#e.muted(a?" \xB7 details open":" \xB7 Ctrl+E details"):""}`,1,0)),a&&l&&(e.kind==="reasoning"?t.addChild(new re(de(l),2,0,this.#e.markdown,{color:this.#e.muted,italic:!0},void 0,{allowHyperlinks:this.#e.terminalMetadata})):t.addChild(this.#g(l,2))),e.error&&t.addChild(new c(this.#e.danger(d(e.error)),2,0)),t}#g(e,t=1){return new re(de(e),t,0,this.#e.markdown,void 0,void 0,{allowHyperlinks:this.#e.terminalMetadata})}#v(){return this.#n?.messages.flatMap(e=>e.parts).filter(e=>Ct.has(e.kind)&&sa(e))??[]}};function oa(n){if(n.kind==="reasoning")return"thought";if(n.toolName!==void 0)return n.toolName;let e=n.subject?.title;return e&&/(?:agent[-_ ]?)?turn[-_ ]result/iu.test(e)?"run result":e??n.kind}function Pr(n,e){if(!e)return n;let t=Buffer.byteLength(n,"utf8");if(t<=Fr)return n;let i=0;for(let r of ra.segment(n)){if(t-i<=ia)return`${It}${n.slice(r.index)}`;i+=Buffer.byteLength(r.segment,"utf8")}return It}function sa(n){return Nr(n).length>0||n.error!==void 0}function Nr(n){return n.kind==="reasoning"||n.kind==="text"||n.kind==="warning"||n.kind==="error"||n.text?n.text:n.input!==void 0&&n.result!==void 0?`input: ${xn(n.input)}
9
- result: ${xn(n.result)}`:n.input!==void 0?`input: ${xn(n.input)}`:n.result!==void 0?`result: ${xn(n.result)}`:""}function xn(n){if(typeof n=="string")return d(n);try{return d(JSON.stringify(n,null,2)??String(n))}catch{return"[structured value unavailable]"}}var Mn=class extends y{#e;#n;#t;#s;#r;#i;#a;#o=!1;#d=!1;#l=!1;constructor(e,t,i,r,o){super(),this.#r=t,this.#i=i,this.#e=new Tn(t),this.#n=new kn(t),this.#t=new Sn(t);let s=new Dt(e,t.editor,{paddingX:1});s.onSubmit=r,s.onChange=o,this.#s=new Pt({editor:s,rows:i,theme:t}),this.addChild(this.#e),this.addChild(this.#n),this.addChild(this.#s)}get editor(){return this.#s.editor}setActivityVisible(e){this.#o=e,this.invalidate()}setModalVisible(e){this.#d=e,this.invalidate()}setView(e,t){this.#a=e,this.#l=t,this.#e.setView(e),this.#n.setView(e),this.#s.setView(e),this.#t.setState({view:e,quitArmed:t,activityVisible:this.#o,navigationHint:this.#e.navigationHint()}),this.#s.editor.disableSubmit=!1,this.#s.editor.borderColor=e.status==="running"?this.#r.warning:this.#r.accent,this.invalidate()}handleTranscriptInput(e){if(!(f(e,"alt+home")||f(e,"alt+end")||f(e,"pageUp")||f(e,"pageDown")||f(e,"alt+pageUp")||f(e,"alt+pageDown"))&&this.#s.editor.getText().length>0)return!1;let i=this.#e.handleInput(e);return i&&this.#c(),i}toggleDetails(){let e=this.#e.toggleDetails();return e&&this.#c(),e}navigationHint(){return this.#e.navigationHint()}hasCollapsibleDetails(){return this.#e.hasCollapsibleDetails()}render(e){if(!this.#a)return super.render(e);let i=Be(e,this.#i(),this.#o),r=this.#d?[]:this.#s.render(e),o=this.#t.renderTop(e),s=this.#t.renderBottom(e),a=o.length+s.length+r.length,l=Math.max(1,i.rows-a);this.#e.setViewportRows(l);let u=this.#e.render(i.transcriptWidth);this.#c();let p=i.mode==="wide"&&this.#o?aa(this.#n.render(i.activityWidth),l):[],m=[];for(let h=0;h<l;h+=1){let v=u[h]??"";if(p.length===0)m.push(x(v,e,"\u2026",!0));else{let I=p[h]??"";m.push(`${x(v,i.transcriptWidth,"\u2026",!0)}${this.#r.muted("\u2502")}${x(I,i.activityWidth,"\u2026",!0)}`)}}return[...o,...m,...r,...this.#t.renderBottom(e)].slice(0,i.rows)}#c(){let e=this.#a;e&&(this.#t.setState({view:e,quitArmed:this.#l,activityVisible:this.#o,navigationHint:this.#e.navigationHint()}),this.invalidate())}};function aa(n,e){if(n.length<=e)return[...n];let t=n[0];return t===void 0||e<=1?n.slice(-e):[t,...n.slice(-(e-1))]}var G=class extends y{constructor(e,t,i){super(),this.addChild(new c(e.warning(d(t)),1,0)),this.addChild(new c(d(i),1,0)),this.addChild(new c(e.muted("This action is unavailable with the selected connection."),1,0)),this.addChild(new c(e.muted("esc close"),1,0))}};var Rn=class{#e;#n;#t;#s;#r;constructor(e){this.#e=e.theme,this.#n=e.controller,this.#t=e.modals,this.#s=e.nextOperationId,this.#r=e.rows}conversationAction(e,t,i){if(i===void 0){e.setFooter("select a conversation first \xB7 esc close");return}let r=this.#f(i);if(r===void 0){e.setFooter("selected conversation disappeared \xB7 refresh with esc and ctrl+o");return}t==="rename"?this.#i(e,r):t==="archive"?this.#o(e,r):t==="delete"&&this.#l(e,r)}async openConversation(e,t){let i=this.#f(t);if(i===void 0){e.setFooter("conversation is no longer available \xB7 esc close");return}e.setFooter("opening conversation\u2026");let r=await this.#m("open_conversation",{conversationId:i.id,branchId:i.branchId});r.kind==="accepted"?this.#t.closeTop():(e.setFooter("open failed \xB7 query and selection preserved \xB7 esc close"),this.#h("Open failed",r,!1))}async openBranch(e,t){let i=await this.#m("open_conversation",{conversationId:this.#n.view().conversationId,branchId:t});i.kind==="accepted"?e!==void 0&&this.#t.closeTop():this.#h("Branch switch failed",i,e===void 0)}openForkPreview(e){let t;t=new Cn(this.#e,{onConfirm:()=>{this.#u(t,e)},onCancel:()=>this.#t.closeTop(),rows:this.#r}),t.setView(e),this.#t.open(t,{anchor:"top-left",width:"100%",maxHeight:"100%",margin:0})}get theme(){return this.#e}#i(e,t){let i;i=new cn({theme:this.#e,currentTitle:t.title,onSubmit:r=>{this.#a(e,i,t,r)},onCancel:()=>this.#t.closeTop()}),this.#t.open(i,{anchor:"center",width:"80%",minWidth:32,maxHeight:12},!1)}async#a(e,t,i,r){let o=await this.#m("rename_conversation",{conversationId:i.id,title:r});if(o.kind==="accepted"){this.#p(e);return}t.setError(ie(o,"Rename failed"))}#o(e,t){let i=!t.archived,r;r=new D({theme:this.#e,title:i?"archive conversation":"restore conversation",target:t.title,detail:i?"Runs remain untouched. The conversation will stay available through the archived filter.":"The conversation will return to the active list.",confirmLabel:i?"archive":"restore",onConfirm:()=>{this.#d(e,r,t,i)},onCancel:()=>this.#t.closeTop()}),this.#t.open(r,{anchor:"center",width:"84%",minWidth:32,maxHeight:12},!1)}async#d(e,t,i,r){let o=await this.#m("archive_conversation",{conversationId:i.id,archived:r});if(o.kind==="accepted"){this.#p(e);return}t.setError(ie(o,r?"Archive failed":"Restore failed"))}#l(e,t){let i=Or(this.#n.view().runs.map(s=>s.environmentId).filter(s=>s!==void 0)),r=i.length===0?"This removes the local conversation history. No external environment reference is visible here.":`External environment references remain: ${i.join(", ")}`,o;o=new D({theme:this.#e,title:"delete conversation",target:t.title,detail:r,confirmLabel:"delete permanently",onConfirm:()=>{this.#c(e,o,t)},onCancel:()=>this.#t.closeTop()}),this.#t.open(o,{anchor:"center",width:"88%",minWidth:32,maxHeight:12},!1)}async#c(e,t,i){let r=await this.#m("delete_conversation",{conversationId:i.id});if(r.kind==="accepted"){this.#p(e);return}t.setError(ie(r,"Delete failed"))}async#u(e,t){let i=t.forkPreview,r=i?.plan;if(!i?.allowed||r===void 0||!r.allowed){e.setError("The fork plan is not executable; create a fresh preview");return}let o=await this.#n.dispatch({type:"headless-command",command:"execute_fork",operationId:r.operationId,params:{planDigest:r.digest,conversationId:r.sourceConversationId,branchId:r.sourceBranchId,...r.throughMessageId===void 0?{}:{messageId:r.throughMessageId},workspace:r.kind==="workspace",...r.context.destinationRunner===void 0?{}:{runner:r.context.destinationRunner}}});o.kind==="accepted"?this.#t.closeTop():e.setError(ie(o,"Fork failed; review the plan and retry"))}#p(e){this.#t.closeTop(),this.#t.hasOpen()&&this.#t.closeTop(),e.setFooter("conversation list updated")}#f(e){return $r(this.#n.view(),e)}#m(e,t){return this.#n.dispatch({type:"headless-command",command:e,operationId:this.#s(),params:t})}#h(e,t,i){this.showUnavailable(e,ie(t,"The operation failed"),i)}showUnavailable(e,t,i=!0){this.#t.open(new G(this.#e,d(e),d(t)),{anchor:"center",width:"82%",maxHeight:8},i)}};var Vn=class{#e;#n;#t;constructor(e){this.#e=e.controller,this.#n=e.modals,this.#t=new Rn(e)}openConversationSelector(e=""){let t=this.#e.view(),i;i=new k({title:"conversations",query:e,items:Vr(t),theme:this.#t.theme,maxVisible:8,footer:"type to filter \xB7 enter to choose \xB7 esc to close \xB7 ^R rename \xB7 ^A archive \xB7 ^D delete",onSelect:r=>{this.#t.openConversation(i,r.value)},onAction:(r,o)=>this.#t.conversationAction(i,r,o?.value),onCancel:()=>this.#n.closeTop()}),this.#n.open(i,{anchor:"center",width:"92%",minWidth:32,maxHeight:"90%"})}openBranchSelector(){let e=this.#e.view(),t=vt(e);if(t.length===0){this.#t.showUnavailable("branches","No branches are available in this conversation");return}let i;i=new k({title:"branches",items:t,theme:this.#t.theme,maxVisible:8,footer:"filter \xB7 enter switch branch \xB7 esc close",onSelect:r=>{this.#t.openBranch(i,r.value)},onCancel:()=>this.#n.closeTop()}),this.#n.open(i,{anchor:"center",width:"86%",minWidth:32,maxHeight:"90%"})}openAdjacentBranch(e){let t=this.#e.view(),i=vt(t),r=i.findIndex(s=>s.value===t.branch),o=r<0?void 0:i[r+e];if(o===void 0){this.openBranchSelector();return}this.#t.openBranch(void 0,o.value)}openForkPreview(){this.#t.openForkPreview(this.#e.view())}};function $n(n){return n.label.replace(/^✓\s/u,"")}function qr(n,e,t){return{type:"headless-command",command:"select_profile",operationId:e,params:{ref:n.value,expectedRevision:t}}}function Lr(n){return{type:"headless-command",command:"validate_profile",params:{ref:n.value}}}function zr(n,e){return{type:"run-command",command:"profile",operationId:e,args:["save",n.value]}}function oe(n,e){return d(n instanceof Error?n.message:e)}function Kr(n){if(!ke(n)||!("report"in n))return;let e=n.report;if(!(!ke(e)||typeof e.ok!="boolean")&&Array.isArray(e.issues))return{ok:e.ok,issues:e.issues.filter(da)}}function _r(n){if(!(!ke(n)||!ke(n.effective)))return n.effective}function da(n){return ke(n)?typeof n.level=="string"&&typeof n.code=="string"&&typeof n.message=="string"&&(n.path===void 0||typeof n.path=="string"):!1}function ke(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function Hr(n,e){let t=[new c(n.brand("profile"),1,0),new w(1)],i=e.profileEditor;if(i===void 0)return t.push(new c(n.muted("No profile details loaded."),1,0)),t.push(new c(n.warning("Use /profile to list, validate, select, or save profiles."),1,0)),t;t.push(new c(n.muted(`source ${d(i.source)} \xB7 ${i.readOnly?"read-only":"writable"}`),1,0),new c(n.muted(`digest ${d(i.digest)}`),1,0),new c(n.muted(`validation ${d(i.validation)}`),1,0));for(let r of i.fields){let o=je(r.path,r.value,r.secret);t.push(new c(`${d(r.path)}: ${o}`,1,0))}return i.error!==void 0&&t.push(new c(n.danger(d(i.error)),1,0)),t}var la=256;function Gr(n,e=80){let t=ma(e),i=ua(n);return(i===void 0?fa():i.kind==="supported"?ca(i):pa(i)).flatMap(o=>W(o,t))}function ua(n){if(!n||typeof n!="object")return;let e=Wr(n.authoredProfile),t=Wr(n.compatibility);if(!e||!t)return;let i=Se(n.runner),r=Se(n.model);if(!i||!r)return;let o=Se(e.name)??"unnamed";if(t.modelSupported===!0)return{kind:"supported",profileName:o,runner:i,model:r};if(t.modelSupported!==!1)return;let s=Se(t.suggestedRunner),a=Se(t.suggestedModel);if(!(!s||!a)&&!(s===i||a===r))return{kind:"unsupported",profileName:o,runner:i,model:r,suggestedRunner:s,suggestedModel:a}}function ca(n){return["profile compatibility",`supported pair: harness=${n.runner} \xB7 model=${n.model}`,`authored profile "${n.profileName}" remains unchanged`]}function pa(n){return["profile compatibility",`unsupported pair: harness=${n.runner} \xB7 model=${n.model}`,`authored profile "${n.profileName}" remains unchanged`,"choose one explicit change:",`1. change runner to ${n.suggestedRunner} to keep model ${n.model}`,`2. change model to ${n.suggestedModel} to keep runner ${n.runner}`]}function fa(){return["profile compatibility unavailable","runner/model compatibility data is incomplete; no automatic change was made.","authored profile remains unchanged."]}function Se(n){if(typeof n!="string")return;let e=d(n).replace(/[\t\r\n]+/gu," ").trim();return e.length>0&&e.length<=la?e:void 0}function Wr(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)?n:void 0}function ma(n){return Number.isFinite(n)?Math.max(1,Math.floor(n)):80}var ha=2e3,An=class extends y{#e;#n;#t;#s;#r=new z("",1,0);#i=new z("",1,0);#a;#o=[];#d=!1;#l=!1;#c=0;#u;constructor(e,t={}){super(),this.#e=e,this.#n=t.controller,this.#t=t.nextOperationId,this.#s=t.onCancel,this.#n!==void 0&&(this.#p(t.query??""),this.#f().catch(i=>{this.#y(this.#o.length>0?`Refresh unavailable \xB7 showing the last profile list \xB7 ${oe(i,"refresh failed")}`:`Profiles unavailable \xB7 refresh failed \xB7 ${oe(i,"try again")}`)}))}get focused(){return this.#d}set focused(e){this.#d=e,this.#a&&(this.#a.focused=e)}handleInput(e){this.#a?.handleInput(e)}setView(e){if(this.#n===void 0){this.clear();for(let t of Hr(this.#e,e))this.addChild(t);this.invalidate()}}#p(e){this.#n!==void 0&&(this.#a=new k({title:"profiles",items:[],query:e,maxVisible:5,footer:"enter \xB7 ^V valid \xB7 ^S save \xB7 esc",theme:this.#e,onSelect:t=>{this.#m(t)},onAction:(t,i)=>{i===null||this.#l||(t==="validate"&&this.#h(i),t==="save"&&this.#b(i))},onCancel:()=>this.#s?.()}),this.#a.focused=this.#d,this.#w("Loading profiles\u2026"))}async#f(e){let t=++this.#c,i=await Fe(this.#g({type:"headless-command",command:"list_profiles",params:{}}),ha);if(t!==this.#c)return;if(i===Pe){this.#y(this.#o.length>0?"Refresh unavailable \xB7 showing the last profile list":"Profiles unavailable \xB7 refresh timed out");return}if(i.kind!=="accepted"){this.#y(this.#o.length>0?`Refresh unavailable \xB7 showing the last profile list \xB7 ${B(i,"")}`:B(i,"Profiles unavailable"));return}this.#o=[...ri(i.data)];let r=this.#n?.view().profileName,o=this.#o.find(a=>a.id===this.#u),s=o?.name===r?o:this.#o.filter(a=>a.name===r).length===1?this.#o.find(a=>a.name===r):void 0;this.#u=s?.id,this.#a?.setItems(si(this.#o,r,this.#u)),this.#C(di(s).join(`
10
- `),li(s)),this.#y(e??(this.#o.length===0?"No profiles found":s===void 0?"Profiles ready \xB7 choose one":`Active profile \xB7 ${T(s.name)}`))}async#m(e){if(!this.#l){this.#l=!0,this.#y(`Selecting ${T($n(e))}\u2026`);try{let t=await this.#g(qr(e,this.#v(),this.#n?.view().revision??0));t.kind==="accepted"?(this.#u=e.value,await this.#f(`Selected ${T($n(e))} \xB7 next runs use it`)):this.#y(B(t,"Profile selection failed"))}catch(t){this.#y(oe(t,"Profile selection failed"))}finally{this.#l=!1}}}async#h(e){if(!this.#l){this.#l=!0,this.#y(`Validating ${T($n(e))}\u2026`);try{let t=await this.#g(Lr(e));if(t.kind!=="accepted"){this.#y(B(t,"Profile validation failed"));return}let i=Kr(t.data);if(i===void 0){this.#y("Profile validation returned no report");return}let r=i.issues.slice(0,4).map(l=>`${l.level} \xB7 ${l.path===void 0?l.code:l.path} \xB7 ${l.message}`),o=_r(t.data),s=Gr(o,120),a=o?.compatibility?.modelSupported===!1;this.#C([i.ok?"valid \xB7 this profile can be used":"invalid \xB7 fix the reported fields",...r,...s].map(d).join(`
11
- `),i.ok?a?"valid profile \xB7 choose a compatible runner or model":"valid \xB7 this profile can be used":"invalid \xB7 fix the reported fields"),this.#y(i.ok?a?"Profile valid \xB7 runner/model choice required":"Profile valid":"Profile needs attention")}catch(t){this.#y(oe(t,"Profile validation failed"))}finally{this.#l=!1}}}async#b(e){if(this.#l)return;let t=this.#o.find(i=>i.id===e.value);if(t===void 0||t.id!==this.#u){this.#y("Select the exact profile before saving it");return}if(!t.source.writable){this.#y("This profile source is read-only");return}this.#l=!0,this.#y(`Saving ${T(t.name)}\u2026`);try{let i=await this.#g(zr(e,this.#v()));this.#y(B(i,"Profile saved")),i.kind==="accepted"&&await this.#f("Profile saved \xB7 active selection preserved")}catch(i){this.#y(oe(i,"Profile save failed"))}finally{this.#l=!1}}#g(e){return this.#n===void 0?Promise.resolve({kind:"error",code:"UI_NOT_CONNECTED",message:"Profile actions require an application controller",retryable:!1}):this.#n.dispatch(e)}#v(){return this.#t?.()??`profile-ui-${Date.now()}`}#w(e){e!==void 0&&this.#r.setText(d(e)),this.clear(),this.addChild(this.#r),this.addChild(this.#i),this.#a&&this.addChild(this.#a),this.invalidate()}#C(e,t=e){this.#i.setText(this.#e.muted(d(e)),this.#e.muted(d(t))),this.#w()}#y(e){this.#r.setText(d(e)),this.#w()}};function ya(n,e=Date.now()){let t=Date.parse(n),i=e-t;return Number.isFinite(i)&&i>=0?i:void 0}function On(n,e,t,i=Date.now()){return(n==="running"||n==="starting"||n==="reconnecting")&&e!==void 0?ya(e,i):t}function se(n){let e=Math.max(0,n);if(e<1e3)return`${Math.round(e)}ms`;if(e<6e4)return`${(e/1e3).toFixed(e<1e4?1:0)}s`;if(e<36e5){let r=Math.floor(e/6e4),o=Math.floor(e%6e4/1e3);return`${r}m ${o}s`}if(e<864e5){let r=Math.floor(e/36e5),o=Math.floor(e%36e5/6e4);return`${r}h ${o}m`}let t=Math.floor(e/864e5),i=Math.floor(e%864e5/36e5);return`${t}d ${i}h`}var X=class extends y{#e;#n;#t;#s;#r;#i=0;#a=0;#o;#d=!1;#l=80;constructor(e,t){super(),this.#e=e,this.#n=t.document,this.#t=t.rows,this.#s=t.onClose,this.#r=t.selectedId,this.#o=t.openSelected===!0?"detail":"list"}get focused(){return this.#d}set focused(e){this.#d=e}get mode(){return this.#o}get selectedId(){return this.#r}selectId(e,t=!1){this.#r=e,this.#o=t?"detail":"list",this.#a=0,this.invalidate()}goBack(){let e=this.#c();return this.#T(e,this.#l)||this.#o==="list"?!1:(this.#o="list",this.#a=0,this.invalidate(),!0)}handleInput(e){let t=this.#c(),i=this.#R(t,this.#l),r=this.#T(t,this.#l),o=i||r&&t.rows.length===1||this.#o==="detail";if(f(e,"escape")||f(e,"left")){this.goBack()||this.#s();return}if(t.rows.length!==0){if(f(e,"enter")||f(e,"return")||f(e,"right")){!r&&this.#o==="list"&&(this.#o="detail",this.#a=0,this.invalidate());return}if(f(e,"up")){this.#u(t,-1);return}if(f(e,"down")){this.#u(t,1);return}if(f(e,"home")){i||!o?this.#p(t,0):this.#f(0,t);return}if(f(e,"end")){i||!o?this.#p(t,t.rows.length-1):this.#f(Number.MAX_SAFE_INTEGER,t);return}f(e,"pageUp")&&this.#f(this.#a-1,t),f(e,"pageDown")&&this.#f(this.#a+1,t)}}render(e){let t=this.#c(),i=Math.max(1,e);this.#l=i;let r=this.#R(t,i),o=this.#T(t,i)&&t.rows.length===1,s=this.#w(),a=this.#e.muted("\u2500".repeat(i)),l=t.notice===void 0?[]:[this.#k(this.#e.warning(`! ${t.notice}`),i)],u=this.#y(t,i),p=Math.max(0,s-l.length-u.length),m=p===0?[]:r?this.#b(t,i,p):o?this.#h(t,i,p):this.#o==="detail"?this.#h(t,i,p):this.#m(t,i,p),h=[...l,...u,...m],v=[...h,...Array.from({length:s-h.length},()=>"")];return[this.#g(t,i,r||o),a,...v,a,this.#v(t,i)]}#c(){let e=this.#n();if(e.rows.length===0)return this.#r=void 0,this.#i=0,this.#o="list",this.#a=0,e;let t=this.#r===void 0?-1:e.rows.findIndex(i=>i.id===this.#r);return t<0&&this.#r!==void 0&&this.#o==="detail"&&(this.#o="list",this.#a=0),this.#i=t>=0?t:Math.min(this.#i,e.rows.length-1),this.#r=e.rows[this.#i]?.id,e}#u(e,t){this.#p(e,this.#i+t),this.#a=0}#p(e,t){let i=Math.max(0,Math.min(t,e.rows.length-1));i!==this.#i&&(this.#i=i,this.#r=e.rows[i]?.id,this.invalidate())}#f(e,t){if(this.#o!=="detail"&&!this.#T(t,this.#l))return;let i=this.#C(t,this.#l),r=Math.max(0,Math.min(e,i-1));r!==this.#a&&(this.#a=r,this.invalidate())}#m(e,t,i){if(e.rows.length===0)return[this.#k(this.#e.muted(e.emptyMessage),t)];let r=ba(this.#i,e.rows.length,i);return e.rows.slice(r,r+i).map((o,s)=>{let a=r+s===this.#i,l=a?this.#e.accent("\u203A"):" ",u=o.depth&&o.depth>0?this.#e.muted(`${" ".repeat(Math.min(4,o.depth))}\u2514 `):"",p=this.#x(o.status),m=d(o.kind),h=d(o.title),v=a?this.#e.accent(h):this.#e.text(h),I=d(o.status),q=o.meta===void 0?"":` \xB7 ${d(o.meta)}`,K=o.current===!0?" \xB7 current":"",_=t<56?`${this.#e.muted(` \xB7 ${m}${K}${q}`)}`:`${this.#e.muted(` \xB7 ${m} \xB7 ${I}${K}${q}`)}`;return this.#k(`${l} ${u}${p} ${v}${_}`,t)})}#h(e,t,i){let r=e.rows[this.#i];if(r===void 0)return[this.#k(this.#e.muted(e.emptyMessage),t)];let o=this.#I(r,t),s=Xr(o.length,i);this.#a=Math.max(0,Math.min(this.#a,s-1));let a=this.#a*i,l=o.slice(a,a+i);return l.length===0&&l.push("No additional details were reported."),l.map(u=>this.#k(u,t))}#b(e,t,i){let r=Yr(t),o=Qr(t),s=this.#m(e,r,i),a=this.#h(e,o,i),l=this.#e.muted("\u2502");return Array.from({length:i},(u,p)=>{let m=va(s[p]??"",r),h=x(a[p]??"",o,"\u2026",!0);return`${m}${l}${h}`})}#g(e,t,i){let r=e.rows[this.#i],o=d(e.title),s=!i&&this.#o==="list"||r===void 0?this.#e.brand(`${o} \xB7 ${e.rows.length}`):`${this.#e.brand(o)} ${this.#e.muted("\u203A")} ${this.#e.accent(d(r.title))} ${this.#e.muted(`\xB7 ${r.status} \xB7 ${this.#i+1}/${e.rows.length}`)}`,a=e.context===void 0?void 0:this.#e.muted(d(e.context));return this.#k(this.#A(s,a,t),t)}#v(e,t){let i=e.filterHint===void 0?"":` \xB7 ${d(e.filterHint)}`;if(this.#T(e,t)){let a=this.#C(e,t),l=a>1?` \xB7 page ${this.#a+1}/${a}`:"",u=e.rows.length===1?"PgUp/PgDn detail \xB7 \u2190/esc close":t<120?"\u2191\u2193 select \xB7 PgUp/PgDn detail \xB7 \u2190/esc close":"\u2191\u2193 select \xB7 PgUp/PgDn detail \xB7 home/end jump \xB7 \u2190/esc close";return this.#k(this.#e.muted(`${u}${l}${i}`),t)}if(this.#o==="list"){let a=e.rows.length>this.#w()?` \xB7 ${this.#i+1}/${e.rows.length}`:"",l=t<52?"\u2191\u2193 move \xB7 \u2192 open \xB7 \u2190/esc close":"\u2191\u2193 move \xB7 enter/\u2192 open \xB7 \u2190/esc close";return this.#k(this.#e.muted(`${l}${a}${i}`),t)}let r=this.#C(e,t),o=`page ${this.#a+1}/${r}`,s=t<52?r>1?`${o} \xB7 Pg \xB7 \u2191\u2193 item \xB7 \u2190/esc back`:"\u2191\u2193 item \xB7 \u2190/esc back":t<64?r>1?`${o} \xB7 PgUp/PgDn \xB7 \u2191\u2193 item \xB7 \u2190/esc back`:"\u2191\u2193 previous/next \xB7 \u2190/esc back":`\u2191\u2193 previous/next \xB7 PgUp/PgDn page \xB7 \u2190/esc back${r>1?` \xB7 ${o}`:""}`;return this.#k(this.#e.muted(`${s}${i}`),t)}#w(){return Math.max(1,this.#t()-4)}#C(e,t){let i=e.rows[this.#i],r=this.#R(e,t)?Qr(t):t,o=i===void 0?0:this.#I(i,r).length,s=e.notice===void 0?0:1,a=this.#y(e,t).length;return Xr(o,Math.max(1,this.#w()-s-a))}#y(e,t){return e.pinned===void 0?[]:W(this.#e.muted(d(e.pinned)),Math.max(1,t-1)).slice(0,2).map(i=>this.#k(i,t))}#I(e,t){let i=Math.max(1,t-1);return e.detailLines.flatMap(r=>{let o=d(r),s=o.startsWith("\u2500\u2500 ")?this.#e.accent(o):o.startsWith("! ")?this.#e.warning(o):o.startsWith("\u21B3 ")?this.#e.muted(o):o;return W(s,i)})}#k(e,t){return x(` ${e}`,Math.max(1,t),"\u2026",!0)}#x(e){let t=ga(e);return e==="completed"||e==="complete"?this.#e.success(t):e==="failed"||e==="storage-failure"?this.#e.danger(t):e==="running"||e==="streaming"||e==="starting"?this.#e.warning(t):this.#e.muted(t)}#A(e,t,i){if(t===void 0)return e;let o=Math.max(1,i-1)-j(e)-j(t);return o>=3?`${e}${" ".repeat(o)}${t}`:e}#V(e){return e>=100&&this.#t()>=16}#T(e,t){return this.#V(t)&&e.rows.length>0}#R(e,t){return this.#V(t)&&e.rows.length>1}};function ga(n){switch(n){case"completed":case"complete":return"\u2713";case"failed":case"storage-failure":return"\xD7";case"running":case"streaming":case"starting":return"\u25CF";case"waiting":return"?";case"cancelled":case"cancelling":return"\u25A0";default:return"\xB7"}}function ba(n,e,t){return e<=t?0:Math.max(0,Math.min(n-Math.floor(t/2),e-t))}function Xr(n,e){return Math.max(1,Math.ceil(n/Math.max(1,e)))}function va(n,e){let t=x(n,e,"\u2026",!0);return`${t}${" ".repeat(Math.max(0,e-j(t)))}`}function Yr(n){return Math.max(30,Math.min(52,Math.floor(n*.34)))}function Qr(n){return Math.max(1,n-Yr(n)-1)}var kt=["all","runs","analyses","workers"],Bn=class extends X{#e;constructor(e,t){let i={scope:t.scope??"all"};super(e,{document:()=>wa(t.view(),i.scope,t.notice?.(),t.emptyMessage,t.pinned),rows:t.rows,onClose:t.onClose,...t.selectedId===void 0?{}:{selectedId:t.selectedId},...t.openSelected===void 0?{}:{openSelected:t.openSelected}}),this.#e=i}handleInput(e){if(f(e,"tab")){let t=kt.indexOf(this.#e.scope);this.#e.scope=kt[(t+1)%kt.length]??"all",this.invalidate();return}super.handleInput(e)}};function wa(n,e="all",t,i,r){let o=new Map((n.entityDetails??[]).map(u=>[$a(u),u])),s=new Map(n.runs.map(u=>[u.id,u])),a=In(n).items.filter(u=>Va(u,e)).slice().reverse(),l=E(n);return{title:e==="all"?"activity":`activity \xB7 ${e}`,context:`${l.profileName} \xB7 ${l.runner} \xB7 ${l.model} \xB7 ${ka(n)}`,filterHint:`tab filter: ${e}`,...r===void 0?{}:{pinned:r},...t===void 0?{}:{notice:t},emptyMessage:i??(e==="analyses"?"No trace analyses have been recorded.":e==="workers"?"No runtime workers have been reported.":"No activity has been recorded."),rows:a.map(u=>Ca(u,o,s,n))}}function Ca(n,e,t,i){let r=n.source?.entityType,o=n.source?.entityId,s=r===void 0||o===void 0?void 0:e.get(`${r}:${o}`),a=On(n.status,n.startedAt,n.durationMs),l=Ma(n,a,s?.entityType!=="analysis"),u=s?.entityType==="analysis"?[...s.lines,...l.length===0?[]:["\u2500\u2500 activity record",...l]]:[...l,...s?.lines??[]];n.kind==="run"&&u.push(...Ia(n,t,i));let p=Ra(n,a);return{id:n.id,kind:n.kind,title:s?.title??n.title,status:n.status,...p===void 0?{}:{meta:p},...n.depth===void 0?{}:{depth:Math.max(0,n.depth)},detailLines:u}}function Ia(n,e,t){if(n.runId===void 0)return[];let i=e.get(n.runId);if(i===void 0)return[];let r=E(t,i.id),o=n.usage,s=o?.tokenStatus==="complete"?"":"\u2265",a=(o?.input??0)===0&&(o?.output??0)===0,l=o?.tokenStatus!=="complete"&&a,u=xe(o),p=Object.values(o?.promptCache??{}).reduce((h,v)=>h+v,0),m=[...l?["tokens unknown"]:[],...o?.input===void 0||l?[]:[`${s}${o.input} in`],...o?.output===void 0||l?[]:[`${s}${o.output} out`],...o?.reasoning===void 0?[]:[`${o.reasoning} reasoning`],...p===0?[]:[`${p} cached`],...u===void 0?[]:[u],...o?.elapsedMs===void 0?[]:[`${Math.round(o.elapsedMs)}ms`]];return[...i.provider===void 0?[]:[`provider: ${d(i.provider)}`],`AgentProfile: ${d(r.profileName)}`,...r.profileDigest===void 0?[]:[`profile digest: ${d(r.profileDigest)}`],`runner: ${d(r.runner)}`,`connection: ${d(r.connection)}`,...r.connectionId===void 0||r.connectionId===r.connection?[]:[`connection id: ${d(r.connectionId)}`],...i.environmentId===void 0?[]:[`execution environment: ${d(i.environmentId)}`],...i.providerSessionId===void 0?[]:[`provider session: ${d(i.providerSessionId)}`],`model: ${d(r.model)}`,...r.effort===void 0?[]:[`thinking: ${d(r.effort)}`],...r.maxOutputTokens===void 0?[]:[`max output tokens: ${r.maxOutputTokens}`],...m.length===0?[]:[`usage: ${m.join(" \xB7 ")}`],...o===void 0?[]:[`model calls: ${o.llmCalls===void 0?"unknown":o.llmCalls}`],...o===void 0?[]:[`model latency: ${o.llmLatencyMs===void 0?"unknown":`${Math.round(o.llmLatencyMs)}ms`}`],...o?.tokenStatus===void 0?[]:[`token measurement: ${o.tokenStatus}`],...o?.costStatus===void 0?[]:[`cost measurement: ${o.costStatus}`],`history: ${d(i.completeness)}`,...i.error===void 0?[]:[`! ${d(i.error)}`]]}function xe(n){if(n!==void 0)return n.costStatus==="reported"&&n.costUsd!==void 0?`$${n.costUsd.toFixed(4)}`:n.costStatus==="observed-floor"&&n.costUsd!==void 0?n.costUsd>0?`\u2265$${n.costUsd.toFixed(4)}`:"cost unknown":n.estimatedCostUsd!==void 0&&n.estimatedCostUsd>0?`~$${n.estimatedCostUsd.toFixed(4)}`:n.costStatus==="unknown"?"cost unknown":void 0}function ka(n){let e=n.sessionUsage.turns;if(Sa(n.sessionUsage))return[St("turns",e,!0),St("analysis",n.sessionUsage.analyses,!1),St("workers",n.sessionUsage.delegated,!1)].filter(u=>u!==void 0).join(" \xB7 ");let t=e.tokenStatus==="complete"?"":"\u2265",i=e.tokenStatus!=="complete"&&(e.input??0)===0&&(e.output??0)===0?"tokens unknown":`${t}${e.input??0}/${t}${e.output??0} tok`,r=xe(e),o=n.sessionUsage.delegated,s=xe(o),a=n.sessionUsage.analyses,l=xe(a);return[i,...r===void 0?[]:[r],...(e.llmCalls??0)===0?[]:[`${e.llmCalls} calls`],...(e.llmLatencyMs??0)===0?[]:[`${Math.round(e.llmLatencyMs??0)}ms model`],...o.sourceCount===0?[]:[`workers ${s??"cost unknown"}`],...a.sourceCount===0?[]:[`analysis ${l??"cost unknown"}`]].join(" \xB7 ")}function Sa(n){return[n.turns,n.analyses,n.delegated].some(xa)}function xa(n){return n.callStatus!==void 0||n.latencyStatus!==void 0||n.unknownCallSources!==void 0||n.unknownLatencySources!==void 0}function St(n,e,t){if(!t&&e.sourceCount===0)return;let i=Ta(e),r=xe(e);r!==void 0&&i.push(r);let o=Jr("calls",e.llmCalls,e.callStatus,e.unknownCallSources,e.sourceCount,a=>String(Math.round(a))),s=Jr("latency",e.llmLatencyMs,e.latencyStatus,e.unknownLatencySources,e.sourceCount,a=>`${Math.round(a)}ms`);return o!==void 0&&i.push(o),s!==void 0&&i.push(s),i.length===0?void 0:`${n} ${i.join(" \xB7 ")}`}function Ta(n){let e=n.tokenStatus==="complete"?"":"\u2265",t=(n.input??0)===0&&(n.output??0)===0;return n.tokenStatus!=="complete"&&t?["usage unknown"]:[...n.input===void 0?[]:[`in ${e}${Zr(n.input)}`],...n.output===void 0?[]:[`out ${e}${Zr(n.output)}`]]}function Jr(n,e,t,i,r,o){if(t===void 0&&e===void 0&&i===void 0||r===0&&e===void 0&&(i??0)===0)return;let s=Math.max(0,i??(e===void 0?1:0));if(e===void 0||t==="unknown")return`${n} unknown${s>0?` (${s} missing)`:""}`;let a=t==="partial"?"\u2265":"",l=t==="partial"&&s>0?` (+${s} missing)`:"";return`${n} ${a}${o(e)}${l}`}function Zr(n){return n<1e3?String(Math.round(n)):n<1e6?`${(n/1e3).toFixed(n<1e4?1:0)}k`:`${(n/1e6).toFixed(n<1e7?1:0)}m`}function Ma(n,e,t){let i=[];return n.occurredAt!==void 0&&i.push(`time: ${d(n.occurredAt)}`),e!==void 0&&i.push(`elapsed: ${se(e)}`),n.runId!==void 0&&i.push(`run: ${d(n.runId)}`),n.parentId!==void 0&&i.push(`parent: ${d(n.parentId)}`),n.source?.eventId!==void 0&&i.push(`source event: ${d(n.source.eventId)}`),t&&n.detail!==void 0&&n.detail.trim().length>0&&i.push(...n.detail.split(`
12
- `).map(r=>d(r))),i}function Ra(n,e){return e!==void 0?se(e):n.summary===n.title?void 0:d(n.summary)}function Va(n,e){return e==="all"?!0:e==="analyses"?n.kind==="analysis":e==="workers"?n.kind==="supervisor"||n.kind==="worker":n.kind!=="analysis"&&n.kind!=="supervisor"&&n.kind!=="worker"}function $a(n){return`${n.entityType}:${n.entityId}`}var Un=class extends y{#e;constructor(e){super(),this.#e=e}setView(e){this.clear();let t=e.details;if(this.addChild(new c(this.#e.brand(t?.title??"details"),1,0)),this.addChild(new w(1)),!t)this.addChild(new c(this.#e.muted("Select a run or node for details."),1,0));else for(let i of t.fields)this.addChild(this.#n(i.label,i.value));this.invalidate()}#n(e,t){return new c(`${this.#e.muted(`${d(e)}:`)} ${d(t)}`,1,0)}};var En=class extends X{#e;constructor(e,t={}){let i;super(e,{document:()=>{let r=t.view?.()??i;return r===void 0?Da():Aa(r,t.notice?.())},rows:t.rows??(()=>12),onClose:t.onClose??(()=>{}),...t.selectedId===void 0?{}:{selectedId:t.selectedId}}),this.#e=r=>{i=r}}setView(e){this.#e(e),this.selectId(`branch:${e.branch}`)}};function Aa(n,e){let t=new Map((n.entityDetails??[]).map(o=>[Ea(o),o])),i=n.hiddenGraphNodeCount===void 0?void 0:`${n.hiddenGraphNodeCount} older graph nodes omitted; use get_graph for complete history`,r=[e,i].filter(o=>o!==void 0);return{title:"conversation graph",context:`${n.profileName} \xB7 ${n.runner} \xB7 ${n.model}`,...r.length===0?{}:{notice:r.join(" \xB7 ")},emptyMessage:"The first run creates the first graph node.",rows:n.graph.map(o=>Oa(o,n.branch,t))}}function Oa(n,e,t){let i=t.get(`${n.type}:${n.id}`),r=Ua(n),o=On(n.status,n.startedAt,n.elapsedMs),s=[r===void 0?void 0:`\u2500${r}\u2192`,o===void 0?void 0:se(o)].filter(a=>a!==void 0).join(" \xB7 ");return{id:`${n.type}:${n.id}`,kind:n.type,title:Ba(n),status:n.status,depth:n.depth,current:n.type==="branch"&&n.id===e,...s.length===0?{}:{meta:s},detailLines:[...o===void 0?[]:[`elapsed: ${se(o)}`],...i?.lines??[`id: ${d(n.id)}`,`type: ${d(n.type)}`,`status: ${d(n.status)}`,...n.runner===void 0?[]:[`runner: ${d(n.runner)}`],...n.costUsd===void 0?[]:[`cost: $${n.costUsd.toFixed(4)}`],...r===void 0?[]:[`relation: ${d(r)}`]]]}}function Ba(n){let e=d(n.title),t=`${n.type} ${n.id}`;return e.toLocaleLowerCase()===t.toLocaleLowerCase()?d(n.id):e}function Ua(n){if(!n.edgeLabel)return;let e=d(n.edgeLabel).replace(/[_-]+/gu," ").trim();return e==="attached"&&n.type==="analysis"?"attached analysis":e}function Ea(n){return`${n.entityType}:${n.entityId}`}function Da(){return{title:"conversation graph",emptyMessage:"The first run creates the first graph node.",rows:[]}}var Te=class extends y{#e;#n;constructor(e,t={}){super(),this.#e=e,this.#n=t}setQuery(e){this.clear(),this.addChild(new c(this.#e.brand("help"),1,0)),this.addChild(new c(this.#e.muted(`search: ${d(e)||"all commands"}`),1,0)),this.addChild(new w(1)),this.#n.keyboardDiagnostic&&this.addChild(new c(this.#e.muted(d(this.#n.keyboardDiagnostic)),1,0)),this.#n.keymapDiagnostic&&this.addChild(new c(this.#e.warning(d(this.#n.keymapDiagnostic)),1,0)),(this.#n.keyboardDiagnostic||this.#n.keymapDiagnostic)&&this.addChild(new w(1));let t=e.trim().toLowerCase(),i=Zt.filter(r=>!t||`${r.name} ${r.description}`.toLowerCase().includes(t));for(let r of i)this.addChild(new c(`${this.#e.accent(r.usage)} \u2014 ${d(r.description)}`,1,0));this.addChild(new w(1)),this.addChild(new c(this.#e.muted("Ctrl+P commands \xB7 Ctrl+O conversations \xB7 Ctrl+K profiles \xB7 Ctrl+G graph"),1,0)),this.addChild(new c(this.#e.muted("Ctrl+C clear/cancel/quit \xB7 Ctrl+D quit \xB7 Alt+\u2191/\u2193 branches \xB7 F2 activity"),1,0)),this.addChild(new c(this.#e.muted("PgUp/PgDn history \xB7 Home/End bounds \xB7 Ctrl+E next detail"),1,0)),this.invalidate()}};var jn=class{#e;#n;#t=0;#s;#r;#i=!1;constructor(e){this.#e=e}dispose(){this.#i||(this.#i=!0,this.#u(!1))}openHelp(e){let t=new Te(this.#e.theme,this.#h());t.setQuery(e),this.#e.modals.open(t,{anchor:"center",width:"86%",maxHeight:"90%"})}openIntelligenceResult(e,t,i){if(e==="compare"){if(!fe(t)){this.openUnavailable("/compare","The saved comparison result could not be rendered");return}let s=Pa(t);if(s===void 0){this.openUnavailable("/compare","The saved comparison has no stable analysis id");return}if(!this.#d(s)){this.openUnavailable("/compare","The saved comparison is missing from activity");return}this.#a("analyses",s,!0,i);return}let r=ja(t);if(r===void 0){this.openUnavailable(`/${e}`,"The saved analysis result could not be rendered");return}let o=`analysis:${String(r.id)}`;if(!this.#d(o)){this.openUnavailable(`/${e}`,"The saved analysis is missing from activity");return}this.#a("analyses",o,!0,i)}openIntelligenceProgress(e,t){let i=!0,r=this.#o("analyses",void 0,!1,`Starting /${e}\u2026`,t);return this.#l(r,!1,()=>{i=!1}),{complete:o=>{i&&this.openIntelligenceResult(e,o,t)}}}openSurface(e){let t=this.#e.controller.view(),i;if(e==="activity")i=this.#o("all");else if(e==="graph")i=new En(this.#e.theme,{view:()=>this.#e.controller.view(),rows:this.#e.rows,onClose:()=>this.#e.modals.closeTop(),selectedId:`branch:${t.branch}`,notice:()=>this.#r});else if(e==="details"){let r=new Un(this.#e.theme);r.setView(t),i=r}else if(e==="settings")i=this.#m();else if(e==="help"){let r=new Te(this.#e.theme,this.#h());r.setQuery(""),i=r}else i=new G(this.#e.theme,"surface unavailable",e==="fork"?"Open the fork command to preview a branch boundary":"This surface is not available");if(e==="activity"||e==="graph"){this.#l(i,!0);return}this.#e.modals.open(i,{anchor:"center",width:"90%",maxHeight:"90%"})}#a(e,t,i=!1,r){let o=this.#o(e,t,i,void 0,r);this.#l(o)}#o(e,t,i=!1,r,o){return new Bn(this.#e.theme,{view:()=>this.#e.controller.view(),rows:this.#e.rows,onClose:()=>this.#e.modals.closeTop(),scope:e,...e==="analyses"?{}:{notice:()=>this.#r},...t===void 0?{}:{selectedId:t},...r===void 0?{}:{emptyMessage:r},...o===void 0?{}:{pinned:o},openSelected:i})}#d(e){return this.#e.controller.view().activity.some(t=>t.id===e)}#l(e,t=!1,i){let r=t||i!==void 0?()=>{t&&this.#u(),i?.()}:void 0;this.#e.modals.open(e,{anchor:"top-left",width:"100%",maxHeight:"100%",margin:0,fullScreenBelow:Number.MAX_SAFE_INTEGER,...r===void 0?{}:{onClose:r}}),t&&this.#c()}#c(){if(this.#i)return;this.#u();let e=++this.#t;this.#p(e),this.#n=setInterval(()=>{e===this.#t&&this.#p(e)},250),this.#n.unref?.()}#u(e=!0){this.#t+=1,this.#n!==void 0&&clearInterval(this.#n),this.#n=void 0,this.#s=void 0,e?this.#f(void 0):this.#r=void 0}async#p(e){if(e===this.#t&&this.#s!==e){this.#s=e;try{let t=await this.#e.controller.dispatch({type:"refresh-supervision"});if(e!==this.#t)return;t.kind==="accepted"&&this.#e.controller.view().activity.some(i=>(i.kind==="worker"||i.kind==="supervisor")&&(i.status==="running"||i.status==="starting"))&&this.#e.requestRender(),this.#f(t.kind==="accepted"?void 0:t.kind==="unavailable"?`runtime activity unavailable; showing last saved state: ${t.reason}`:`runtime activity refresh failed; showing last saved state: ${t.message}`)}catch(t){if(e!==this.#t)return;this.#f(`runtime activity refresh failed; showing last saved state: ${t instanceof Error?t.message:"unknown error"}`)}finally{this.#s===e&&(this.#s=void 0)}}}#f(e){let t=e===void 0?void 0:le(e);t!==this.#r&&(this.#r=t,this.#e.requestRender())}openUnavailable(e,t){this.#e.modals.open(new G(this.#e.theme,e,t),{anchor:"center",width:"80%",maxHeight:8})}#m(){return new k({title:"settings",items:[{value:"profile",label:"Profiles",description:"list, validate, select, and save"},{value:"connection",label:"Connections",description:"create, test, select, and remove"}],theme:this.#e.theme,footer:"enter open \xB7 esc close",onSelect:e=>{this.#e.modals.closeTop(),e.value==="profile"&&this.#e.openProfile(),e.value==="connection"&&this.#e.openConnection()},onCancel:()=>this.#e.modals.closeTop()})}#h(){let e=this.#e.keyboardDiagnostic?.(),t=this.#e.keymapDiagnostic?.();return{...e===void 0?{}:{keyboardDiagnostic:e},...t===void 0?{}:{keymapDiagnostic:t}}}};function ja(n){if(!Dn(n)||!Dn(n.analysis))return;let e=n.analysis;if(!(typeof e.id!="string"||typeof e.status!="string"||!Array.isArray(e.findings)||!Dn(e.source)||typeof e.source.digest!="string"||typeof e.source.complete!="boolean"))return e}function Dn(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Pa(n){return Dn(n)&&typeof n.analysisId=="string"?`analysis:${n.analysisId}`:void 0}var Pn=class{#e;#n;#t;#s;#r;#i;#a;#o;#d;#l;#c;#u;constructor(e){this.#e=e.theme,this.#n=e.controller,this.#t=e.modals,this.#s=e.editor,this.#r=e.nextOperationId,this.#d=new Vn({theme:this.#e,controller:this.#n,modals:this.#t,nextOperationId:e.nextOperationId,rows:e.rows}),this.#i=e.dispatchCommand,this.#a=e.configuration,this.#o=e.requestRender,this.#l=e.connectionLifecycle===void 0?void 0:new vn({theme:this.#e,modals:this.#t,lifecycle:e.connectionLifecycle,nextOperationId:this.#r,revision:()=>this.#n.view().revision,openPicker:()=>this.openConnection(),showBlocked:(t,i)=>this.openUnavailable(t,i),requestRender:this.#o}),this.#c=new jn({theme:this.#e,controller:this.#n,modals:this.#t,rows:e.rows,requestRender:e.requestRender,...e.keyboardDiagnostic===void 0?{}:{keyboardDiagnostic:e.keyboardDiagnostic},...e.keymapDiagnostic===void 0?{}:{keymapDiagnostic:e.keymapDiagnostic},openProfile:()=>this.openProfile(),openConnection:()=>this.openConnection()}),this.#u=new fn({theme:this.#e,controller:this.#n,modals:this.#t,nextOperationId:this.#r,requestRender:this.#o,showError:(t,i)=>this.openUnavailable(t,i)})}hasConfiguration(){return this.#a!==void 0}openProfile(e=""){let t=new An(this.#e,{controller:this.#n,nextOperationId:this.#r,query:e,onCancel:()=>this.#t.closeTop()});this.#t.open(t,{anchor:"center",width:"88%",minWidth:44,maxHeight:"90%"})}openConnectionEditor(){if(this.#l===void 0){this.openUnavailable("connection creation unavailable","Production connection storage is not configured");return}this.#l.openEditor()}openConnection(e=""){let t=new wn(this.#e,{controller:this.#n,nextOperationId:this.#r,query:e,...this.#l===void 0?{}:{onCreate:()=>this.#l?.openEditor(),onRemove:i=>this.#l?.openRemoval(i)},onCancel:()=>this.#t.closeTop()});this.#t.open(t,{anchor:"center",width:"88%",minWidth:44,maxHeight:"90%"})}openConfiguration(){this.#p().catch(e=>{this.openUnavailable("configuration unavailable",e instanceof Error?e.message:"The configuration view could not be loaded")})}async#p(){let e=this.#a;if(e===void 0){this.openUnavailable("configuration unavailable","No profile and connection catalog was provided by the product integration");return}let{ConfigurationWizard:t}=await import("./chunks/configuration-wizard-G5VQFNBR.js"),{confirmation:i,requiresCredential:r,...o}=e,s=new t({...o,...i===void 0?{}:{confirmation:i},...r===void 0?{}:{requiresCredential:r},theme:this.#e,requestRender:this.#o,onComplete:()=>{},onCancel:()=>this.#t.closeTop()});this.#t.open(s,{anchor:"center",width:"82%",minWidth:36,maxHeight:"90%"})}openCommandPalette(){let e=this.#n.view(),t=new k({title:"Commands",items:ce(e.capabilities),theme:this.#e,onSelect:i=>{this.#t.closeTop(),this.#i(i.value,[])},onCancel:()=>this.#t.closeTop()});this.#t.open(t,{anchor:"center",width:"70%",minWidth:32,maxHeight:14})}openAnalysisSource(e,t){let i=this.#n.view(),r=new k({title:"Ask about a run",items:[...t].reverse().map(o=>{let s=o.entityId??o.runId??o.id,a=E(i,s);return{value:s,label:o.title,description:[o.status,a.runner,a.model,a.connection,o.occurredAt].filter(l=>l!==void 0&&l.length>0).join(" \xB7 ")}}),theme:this.#e,onSelect:o=>{this.#t.closeTop(),this.#i("ask",[`run:${o.value}`,...e])},onCancel:()=>this.#t.closeTop()});this.#t.open(r,{anchor:"center",width:"78%",minWidth:36,maxHeight:"80%"})}openAutomation(e={}){this.#u.open(e)}openCorrection(e,t){let i=t.map(o=>({value:o,label:`/${o}`,description:"choose to edit the draft; nothing executes yet"})),r=new k({title:`unknown command /${d(e)}`,items:i,theme:this.#e,onSelect:o=>{this.#s.setText(`/${o.value} `),this.#t.closeTop()},onCancel:()=>this.#t.closeTop()});this.#t.open(r,{anchor:"center",width:"70%",minWidth:32,maxHeight:12})}openSelector(e){if(e==="profile"){this.openProfile();return}if(e==="connection"){this.openConnection();return}if(e==="conversation"){this.#d.openConversationSelector();return}if(e==="branch"){this.#d.openBranchSelector();return}let t=this.#n.view(),i=e==="graph"?t.graph.map(o=>({value:o.id,label:o.title,description:o.type})):e==="runner"?[{value:t.runner,label:t.runner,description:"active runner"}]:e==="model"?[{value:t.model,label:t.model,description:"active model"}]:e==="effort"?[{value:t.effort??"default",label:t.effort??"default",description:"active effort"}]:ce(t.capabilities),r=new k({title:e,items:i,theme:this.#e,onSelect:o=>{this.#t.closeTop(),e==="graph"?this.openSurface("graph"):e==="help"?this.openHelp(o.value):(e==="runner"||e==="model"||e==="effort")&&this.#i(e,[o.value])},onCancel:()=>this.#t.closeTop()});this.#t.open(r,{anchor:"center",width:"70%",minWidth:32,maxHeight:14})}openConversationSelector(e=""){this.#d.openConversationSelector(e)}openAdjacentBranch(e){this.#d.openAdjacentBranch(e)}openHelp(e){this.#c.openHelp(e)}dispose(){this.#c.dispose()}openIntelligenceResult(e,t){this.#c.openIntelligenceResult(e,t)}openIntelligenceProgress(e,t){return this.#c.openIntelligenceProgress(e,t)}openSurface(e){if(e==="fork"){this.#d.openForkPreview();return}this.#c.openSurface(e)}openUnavailable(e,t){this.#c.openUnavailable(e,t)}};var xt=class{#e;#n;#t;#s;#r;#i;#a;#o;#d;#l;#c;#u;#p;#f;#m;#h;#b=!1;#g=!1;#v=!1;#w;#C;constructor(e){this.#e=e.controller,this.#n=e.tui,this.#t=e.theme,this.#s=e.workspace,this.#r=e.nextOperationId,this.#C=e.tuiStarted??!1,e.preinstalledOutputPolicyCleanup!==void 0?(e.theme.terminalMetadata&&e.preinstalledOutputPolicyCleanup(),this.#w=e.theme.terminalMetadata?()=>{}:e.preinstalledOutputPolicyCleanup):this.#w=Ft(e.tui.terminal,!e.theme.terminalMetadata);let t=e.keymap?{keymap:e.keymap,valid:!0,diagnostics:Object.freeze([])}:Ni(),i=t.valid?void 0:t.diagnostics.join("; ");this.#v=e.configuration?.openOnStart===!0;let r=()=>{};this.#p=new Promise(s=>{r=s}),this.#f=r;let o=new Xe(new Qe({commands:()=>ce(this.#e.view().capabilities).map(s=>({name:s.value,description:s.description??""})),basePath:e.workspace}));this.#i=new Mn(e.tui,e.theme,()=>e.tui.terminal.rows,s=>this.#I(s),s=>{o.inputChanged(),this.#a.changed(s)}),this.#c=new Je(e.tui,s=>this.#i.setModalVisible(s)),this.#a=new nn({editor:this.#i.editor,dispatch:s=>this.#x(s),nextOperationId:this.#r,requestRender:()=>this.#n.requestRender()}),this.#u=new Pn({theme:e.theme,controller:e.controller,modals:this.#c,editor:this.#i.editor,nextOperationId:this.#r,keyboardDiagnostic:()=>Nt(e.tui.terminal).message,keymapDiagnostic:()=>i,...e.configuration===void 0?{}:{configuration:e.configuration},...e.connectionLifecycle===void 0?{}:{connectionLifecycle:e.connectionLifecycle},dispatchCommand:(s,a)=>this.#o.dispatchCommand(s,a),requestRender:()=>this.#n.requestRender(),rows:()=>this.#n.terminal.rows}),this.#l=new dn({theme:this.#t,modals:this.#c,nextOperationId:this.#r,dispatch:s=>this.#x(s),currentView:()=>this.#e.view(),isStopped:()=>this.#b,rows:()=>this.#n.terminal.rows,openAutomation:s=>this.#u.openAutomation(s)}),this.#d=new tn({tui:this.#n,keymap:t.keymap,controller:this.#e,shell:this.#i,drafts:this.#a,overlays:this.#u,modals:this.#c,nextOperationId:this.#r,dispatch:s=>this.#x(s),interactionOpen:()=>this.#l.isOpen,stop:()=>this.stop(),stateChanged:()=>this.#y(this.#e.view())}),this.#o=new en({controller:this.#e,editor:this.#i.editor,drafts:this.#a,overlays:this.#u,nextOperationId:this.#r,dispatch:(s,a)=>this.#x(s,a),isStopped:()=>this.#b,stop:()=>this.stop()}),this.#i.editor.setAutocompleteProvider(o),e.tui.addChild(this.#i),this.#m=this.#e.subscribe(s=>this.#y(s),{delivery:"frame",...e.onFrameTiming===void 0?{}:{onFrameTiming:e.onFrameTiming}}),this.#y(this.#e.view()),i&&this.#u.openUnavailable("key mappings unavailable",i);for(let s of e.startupMessages??[])this.#u.openUnavailable(s.title,s.reason)}get editor(){return this.#i.editor}start(e=[]){if(this.#g)return this.#p;this.#g=!0,this.#h=this.#n.addInputListener(t=>this.#d.handle(t)),this.#t.terminalMetadata&&this.#n.terminal.setTitle(Ot(`Braid \u2014 ${this.#s}`)),this.#C||this.#n.start(),this.#c.hasOpen()?this.#c.focusTop():this.#n.setFocus(this.#i.editor),this.#v&&(this.#v=!1,this.#u.openConfiguration());for(let t of e)this.#k(t);return this.#p}stop(){this.#b||(this.#b=!0,this.#u.dispose(),this.#d.close(),this.#a.close(),this.#c.closeAll(),this.#h?.(),this.#h=void 0,this.#m(),this.#n.stop(),this.#w(),this.#f())}#y(e){this.#a.restore(e),this.#i.setView(e,this.#d.quitArmed),this.#i.setActivityVisible(this.#d.activityVisible),this.#l.sync(e),this.#n.requestRender()}#I(e){this.#o.submit(e)}#k(e){this.#d.handle(e)?.consume||(this.#c.handleInput(e)||this.#i.editor.handleInput(e),this.#n.requestRender())}#x(e,t){return this.#e.dispatch(e).then(i=>(this.#b||(i.kind==="unavailable"?(this.#u.openUnavailable("Unavailable",i.reason),t&&this.#i.editor.setText(t)):i.kind==="error"&&(this.#u.openUnavailable(i.code,i.message),t&&this.#i.editor.setText(t)),this.#n.requestRender()),i))}};export{xt as BraidTerminalApp,eo as ProcessTerminal,no as TuiMainScreen,Wo as createApplicationUiController,to as createBraidTheme};
13
- //# sourceMappingURL=terminal-runtime.js.map
1
+ export { ProcessTerminal, TuiMainScreen } from '@earendil-works/pi-tui';
2
+ export { createApplicationUiController } from '../adapters/tui/application-ui-controller.js';
3
+ export { BraidTerminalApp } from '../views/tui/terminal-app.js';
4
+ export { createBraidTheme } from '../views/tui/theme.js';
5
+ //# sourceMappingURL=terminal-runtime.js.map