@wrongstack/webui 0.295.0 → 0.295.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 (153) hide show
  1. package/dist/App.d.ts.map +1 -1
  2. package/dist/assets/AgentRosterView-C7u9H5Jp.js +11 -0
  3. package/dist/assets/{AnalyticsDashboard-tGlXeqV5.js → AnalyticsDashboard-CZ8KAg7h.js} +1 -1
  4. package/dist/assets/{AudienceMemoryPanel-D45M-Fr6.js → AudienceMemoryPanel-N6ErXDAb.js} +2 -2
  5. package/dist/assets/{ChangesView-Otr6kwYr.js → ChangesView-fVxtWQ07.js} +1 -1
  6. package/dist/assets/ChronicleDashboard-C-NQsArq.js +1 -0
  7. package/dist/assets/CodeEditor-B9k1HwTM.js +1 -0
  8. package/dist/assets/CodeMap-CZ7wFa8f.js +1 -0
  9. package/dist/assets/{ConfirmModal-C7H16wDN.js → ConfirmModal-BvW6_eIc.js} +1 -1
  10. package/dist/assets/{CronJobsPanel-CT6XRgmQ.js → CronJobsPanel-C4zvyecc.js} +1 -1
  11. package/dist/assets/{DebugDashboard-DZy3VUpn.js → DebugDashboard-Z7ZFkSFX.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-CQkuFsfj.js → DesignGalleryView-DIsg05FX.js} +1 -1
  13. package/dist/assets/{GoalView-CTqdYc-z.js → GoalView-pBKJcLBt.js} +1 -1
  14. package/dist/assets/KanbanView-qzKvGeMx.js +3 -0
  15. package/dist/assets/{LazyMarkdown-DWlQpo_8.js → LazyMarkdown-Cpjlf6IL.js} +3 -3
  16. package/dist/assets/MailboxDetailView-BKxA4wf_.js +1 -0
  17. package/dist/assets/MemoryManager-DO_Z8Scl.js +1 -0
  18. package/dist/assets/{ModelPicker-fGNsJUXK.js → ModelPicker-DOXb0iz4.js} +1 -1
  19. package/dist/assets/OfficeMapPanel-BVDeIWuD.js +4 -0
  20. package/dist/assets/{ProcessMonitor-BtgVvQgx.js → ProcessMonitor-Ci000o1n.js} +1 -1
  21. package/dist/assets/{QueuePanel-BGSxmdqf.js → QueuePanel-63vvbJOy.js} +1 -1
  22. package/dist/assets/{RefreshDebugView-B_wCBpFb.js → RefreshDebugView-8Sivo34V.js} +1 -1
  23. package/dist/assets/SddHub-DW97GpcS.js +2 -0
  24. package/dist/assets/{SessionsDashboard-DLOhC9JZ.js → SessionsDashboard-DhNaepDJ.js} +1 -1
  25. package/dist/assets/SetupScreen-BewutFxF.js +1 -0
  26. package/dist/assets/SkillDetailView-d39kknmg.js +3 -0
  27. package/dist/assets/{SpecsView-Dh9YG8Id.js → SpecsView-BOp0sUME.js} +1 -1
  28. package/dist/assets/TechStackView-DfFfTJVR.js +1 -0
  29. package/dist/assets/{TerminalPanel-3rZfmUfb.js → TerminalPanel-663hC2Jc.js} +1 -1
  30. package/dist/assets/Toaster-YMBi0Ssd.js +1 -0
  31. package/dist/assets/activity-3HtRx2SK.js +5 -0
  32. package/dist/assets/activity-BGlYr63p.js +5 -0
  33. package/dist/assets/activity-BolwRvqr.js +5 -0
  34. package/dist/assets/activity-C8BMSvRx.js +5 -0
  35. package/dist/assets/activity-CM8z-okz.js +5 -0
  36. package/dist/assets/activity-HfL12UVp.js +5 -0
  37. package/dist/assets/activity-Xd77MZv_.js +5 -0
  38. package/dist/assets/{button-GVbauxIJ.js → button-5TIs9T5p.js} +1 -1
  39. package/dist/assets/{chat-store-BEcTB7SD.js → chat-store-fBghgjNK.js} +2 -2
  40. package/dist/assets/{codemap-activity-store-DrrI6G7M.js → codemap-activity-store-C5DyqUoZ.js} +1 -1
  41. package/dist/assets/codemap-index-store-p2tz1Laz.js +1 -0
  42. package/dist/assets/{dialog-BjPQYovj.js → dialog-BkCs93Vo.js} +1 -1
  43. package/dist/assets/{empty-state-DJc37Wg1.js → empty-state-DrJ4uVh8.js} +1 -1
  44. package/dist/assets/{i18n-c37VNlP9.js → i18n-Cjk0Ya0G.js} +2 -2
  45. package/dist/assets/index-D0zt9ziw.css +1 -0
  46. package/dist/assets/index-HYvJnpTs.js +126 -0
  47. package/dist/assets/{input-BVi5hYQz.js → input-dEFwkTqb.js} +1 -1
  48. package/dist/assets/{mailbox-store-DSvN5ZEo.js → mailbox-store-DC7x_eml.js} +1 -1
  49. package/dist/assets/progress-ring-CGN0o9DE.js +1 -0
  50. package/dist/assets/{roster-ws-BD-ATeja.js → roster-ws-GsDcHg-w.js} +1 -1
  51. package/dist/assets/{session-store-K_ozfq0o.js → session-store-DGtTSpPv.js} +1 -1
  52. package/dist/assets/{shared-BQ9yQXDx.js → shared-C_yjayIp.js} +1 -1
  53. package/dist/assets/stores-BSWgxKNz.js +6 -0
  54. package/dist/assets/{ui-store-DxFtiYFb.js → ui-store-DPNSalc-.js} +1 -1
  55. package/dist/assets/useWebSocket-BBOEYTRy.js +28 -0
  56. package/dist/assets/{utils-DvgvNCoT.js → utils-YTsIExHc.js} +1 -1
  57. package/dist/assets/{vendor-BmsAdDhb.js → vendor-B8C0AAAG.js} +27 -27
  58. package/dist/assets/{view-navigation-D8lN47bJ.js → view-navigation-CV5XT76I.js} +1 -1
  59. package/dist/assets/ws-client-Cc6w_0zh.js +1 -0
  60. package/dist/components/AgentRosterView.d.ts.map +1 -1
  61. package/dist/components/ChatInput.d.ts.map +1 -1
  62. package/dist/components/ChronicleDashboard.d.ts.map +1 -1
  63. package/dist/components/CodeMap.d.ts +6 -0
  64. package/dist/components/CodeMap.d.ts.map +1 -1
  65. package/dist/components/ContextDashboard.d.ts.map +1 -1
  66. package/dist/components/CronTrigger.d.ts +1 -1
  67. package/dist/components/CronTrigger.d.ts.map +1 -1
  68. package/dist/components/FileActivityDrawer.d.ts +14 -0
  69. package/dist/components/FileActivityDrawer.d.ts.map +1 -1
  70. package/dist/components/FleetMonitor.d.ts.map +1 -1
  71. package/dist/components/KanbanDecompositionPanel.d.ts +28 -0
  72. package/dist/components/KanbanDecompositionPanel.d.ts.map +1 -0
  73. package/dist/components/KanbanTaskTree.d.ts +13 -0
  74. package/dist/components/KanbanTaskTree.d.ts.map +1 -0
  75. package/dist/components/KanbanVerificationDashboard.d.ts +12 -0
  76. package/dist/components/KanbanVerificationDashboard.d.ts.map +1 -0
  77. package/dist/components/KanbanView.d.ts +17 -1
  78. package/dist/components/KanbanView.d.ts.map +1 -1
  79. package/dist/components/OfficeMapCanvas.d.ts.map +1 -1
  80. package/dist/components/QueuePanel.d.ts.map +1 -1
  81. package/dist/components/RefinePanel.d.ts +10 -3
  82. package/dist/components/RefinePanel.d.ts.map +1 -1
  83. package/dist/components/SddBoardView.d.ts.map +1 -1
  84. package/dist/components/SddTaskDrawer.d.ts.map +1 -1
  85. package/dist/components/SearchOverlay.d.ts.map +1 -1
  86. package/dist/components/SettingsPanel/BrainSection.d.ts.map +1 -1
  87. package/dist/components/SettingsPanel/ChimeraSettingsPanel.d.ts.map +1 -1
  88. package/dist/components/SettingsPanel/index.d.ts.map +1 -1
  89. package/dist/components/SidePanel/AgentsPanel.d.ts.map +1 -1
  90. package/dist/components/SidePanel/SessionPanel.d.ts.map +1 -1
  91. package/dist/components/TaskVerificationSection.d.ts +15 -0
  92. package/dist/components/TaskVerificationSection.d.ts.map +1 -0
  93. package/dist/components/TechStackView/DependencyDetail.d.ts +2 -1
  94. package/dist/components/TechStackView/DependencyDetail.d.ts.map +1 -1
  95. package/dist/components/TechStackView/DependencyTable.d.ts +2 -1
  96. package/dist/components/TechStackView/DependencyTable.d.ts.map +1 -1
  97. package/dist/components/TechStackView/index.d.ts.map +1 -1
  98. package/dist/components/TechStackView/shared.d.ts +37 -4
  99. package/dist/components/TechStackView/shared.d.ts.map +1 -1
  100. package/dist/components/activity-bar/index.d.ts.map +1 -1
  101. package/dist/components/agents/AgentDetailSection.d.ts.map +1 -1
  102. package/dist/components/agents/AgentRosterCard.d.ts.map +1 -1
  103. package/dist/components/agents/FleetSummaryBar.d.ts.map +1 -1
  104. package/dist/components/codemap-model.d.ts +9 -0
  105. package/dist/components/codemap-model.d.ts.map +1 -1
  106. package/dist/components/ui/progress-ring.d.ts +10 -0
  107. package/dist/components/ui/progress-ring.d.ts.map +1 -0
  108. package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -1
  109. package/dist/hooks/ws-handlers.d.ts.map +1 -1
  110. package/dist/index.css +7 -7
  111. package/dist/index.css.map +1 -1
  112. package/dist/index.html +23 -22
  113. package/dist/index.js +6176 -4279
  114. package/dist/index.js.map +4 -4
  115. package/dist/lib/kanban-verification.d.ts +52 -0
  116. package/dist/lib/kanban-verification.d.ts.map +1 -0
  117. package/dist/stores/codemap-index-store.d.ts +9 -0
  118. package/dist/stores/codemap-index-store.d.ts.map +1 -0
  119. package/dist/stores/kanban-store.d.ts +4 -0
  120. package/dist/stores/kanban-store.d.ts.map +1 -1
  121. package/dist/stores/local-prefs.d.ts.map +1 -1
  122. package/dist/stores/specs-store.d.ts +4 -0
  123. package/dist/stores/specs-store.d.ts.map +1 -1
  124. package/dist/stores/ui-store.d.ts +3 -1
  125. package/dist/stores/ui-store.d.ts.map +1 -1
  126. package/dist/types.d.ts +120 -1
  127. package/dist/types.d.ts.map +1 -1
  128. package/package.json +7 -7
  129. package/dist/assets/AgentRosterView-y-MCHghy.js +0 -7
  130. package/dist/assets/ChronicleDashboard-BvsfI25e.js +0 -1
  131. package/dist/assets/CodeEditor-DtD0-wwy.js +0 -1
  132. package/dist/assets/CodeMap-CVmu16Ec.js +0 -1
  133. package/dist/assets/KanbanView-DryFcAzY.js +0 -3
  134. package/dist/assets/MailboxDetailView-CsI_6HsE.js +0 -1
  135. package/dist/assets/MemoryManager-D_bjR09v.js +0 -1
  136. package/dist/assets/OfficeMapPanel-KRrwpmvi.js +0 -4
  137. package/dist/assets/SddHub-BryXNdFd.js +0 -2
  138. package/dist/assets/SetupScreen-DsXgzxA1.js +0 -1
  139. package/dist/assets/SkillDetailView-ChyQLtrl.js +0 -3
  140. package/dist/assets/TechStackView-RJGVF44_.js +0 -1
  141. package/dist/assets/Toaster-BzC_AdG5.js +0 -1
  142. package/dist/assets/activity-7VmgGy-T.js +0 -5
  143. package/dist/assets/activity-BzwApar4.js +0 -5
  144. package/dist/assets/activity-CCUWlVKh.js +0 -5
  145. package/dist/assets/activity-DAHFiOfU.js +0 -5
  146. package/dist/assets/activity-DkkpH2Tf.js +0 -5
  147. package/dist/assets/activity-DqsX-GMs.js +0 -5
  148. package/dist/assets/activity-t0PmZ94i.js +0 -5
  149. package/dist/assets/index-196U0qsu.js +0 -125
  150. package/dist/assets/index-n_-BWskP.css +0 -1
  151. package/dist/assets/stores-DVhvmaer.js +0 -6
  152. package/dist/assets/useWebSocket-kb2VPjLc.js +0 -28
  153. package/dist/assets/ws-client-BydCS6yi.js +0 -1
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{Fi as t,Ft as n,Gr as r,N as i,Vn as a,Xr as o,Yi as s,ot as c,qt as l,rn as u,tt as d,ua as f,yr as p}from"./vendor-BmsAdDhb.js";import{t as m}from"./utils-DvgvNCoT.js";import{n as h}from"./stores-DVhvmaer.js";import{t as g}from"./button-GVbauxIJ.js";import{t as _}from"./input-BVi5hYQz.js";import{d as v,f as y}from"./index-196U0qsu.js";var b=e(f(),1),x=d(),S={current:{label:`Current`,badge:`border-success/35 bg-success/10 text-success`,dot:`bg-success`,weight:0},update_available_safe:{label:`Update available`,badge:`border-info/35 bg-info/10 text-info`,dot:`bg-info`,weight:30},update_available_breaking:{label:`Major update`,badge:`border-warning/35 bg-warning/10 text-warning`,dot:`bg-warning`,weight:50},vulnerable:{label:`Vulnerable`,badge:`border-destructive/45 bg-destructive/15 text-destructive`,dot:`bg-destructive`,weight:100},deprecated:{label:`Deprecated`,badge:`border-destructive/35 bg-destructive/10 text-destructive`,dot:`bg-destructive`,weight:70},yanked:{label:`Yanked`,badge:`border-destructive/45 bg-destructive/15 text-destructive`,dot:`bg-destructive`,weight:80},unmaintained_suspected:{label:`Unmaintained?`,badge:`border-warning/35 bg-warning/10 text-warning`,dot:`bg-warning`,weight:60},blocked_by_constraints:{label:`Blocked`,badge:`border-warning/30 bg-warning/5 text-warning`,dot:`bg-warning`,weight:40},private_or_unresolved:{label:`Private`,badge:`border-border/70 bg-muted text-muted-foreground`,dot:`bg-muted-foreground`,weight:10},local_path:{label:`Local path`,badge:`border-border/70 bg-muted text-muted-foreground`,dot:`bg-muted-foreground`,weight:5},git_dependency:{label:`Git`,badge:`border-border/70 bg-muted text-muted-foreground`,dot:`bg-muted-foreground`,weight:5},unsupported:{label:`Unsupported`,badge:`border-border/70 bg-muted text-muted-foreground`,dot:`bg-muted-foreground`,weight:5},unknown:{label:`Unknown`,badge:`border-border/70 bg-muted text-muted-foreground`,dot:`bg-muted-foreground`,weight:20}},C={label:`Unknown`,badge:`border-border/70 bg-muted text-muted-foreground`,dot:`bg-muted-foreground`,weight:0};function w(e){return S[e]??C}function ee(e){return w(e.status).weight>=50}var T=[`critical`,`high`,`medium`,`low`,`info`],E={critical:{label:`Critical`,badge:`border-destructive/45 bg-destructive/15 text-destructive`},high:{label:`High`,badge:`border-destructive/35 bg-destructive/10 text-destructive`},medium:{label:`Medium`,badge:`border-warning/35 bg-warning/10 text-warning`},low:{label:`Low`,badge:`border-info/35 bg-info/10 text-info`},info:{label:`Info`,badge:`border-border/70 bg-muted text-muted-foreground`}},D={none:`No action`,upgrade_patch:`Patch upgrade`,upgrade_minor:`Minor upgrade`,upgrade_major:`Major upgrade`,replace:`Replace`,remove:`Remove`,investigate:`Investigate`},O={full:{label:`Full`,badge:`border-success/35 bg-success/10 text-success`},partial:{label:`Partial`,badge:`border-warning/35 bg-warning/10 text-warning`},unsupported:{label:`Unsupported`,badge:`border-border/70 bg-muted text-muted-foreground`}};function k(e){if(!e)return null;let t=/^\D*(\d+)/.exec(e);if(!t?.[1])return null;let n=Number(t[1]);return Number.isFinite(n)?n:null}function A(e){let t=k(e.locked??e.installed??e.requested),n=k(e.latestStable);if(t===null||n===null||n<=t)return{majorsBehind:0,label:null};let r=n-t;return{majorsBehind:r,label:`${r} major${r===1?``:`s`} behind`}}function j(e){return e.locked??e.installed??e.requested??null}function M(e){return e.confidence<1}function N({className:e,children:t}){return(0,x.jsx)(`span`,{className:m(`inline-flex shrink-0 items-center gap-1 border px-1.5 py-0.5 text-[10px] font-medium`,e),children:t})}function P({label:e,value:t,hint:n,tone:r=`default`}){let i={default:`text-foreground`,success:`text-success`,warning:`text-warning`,info:`text-info`,destructive:`text-destructive`}[r];return(0,x.jsxs)(`div`,{className:`border border-border/70 bg-card/55 px-3 py-2.5 shadow-[inset_0_1px_0_hsl(var(--foreground)/0.035)]`,children:[(0,x.jsx)(`p`,{className:`text-[9px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:e}),(0,x.jsxs)(`div`,{className:`mt-1 flex items-end justify-between gap-2`,children:[(0,x.jsx)(`p`,{className:m(`font-mono text-xl font-bold tabular-nums`,i),children:t}),(0,x.jsx)(`p`,{className:`truncate text-[9px] text-muted-foreground`,children:n})]})]})}function te({dependency:e,findings:t,deepDive:i,onDeepDive:o,onBack:c}){let l=w(e.status),u=j(e),d=A(e);return(0,x.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,x.jsxs)(`header`,{className:`shrink-0 border-b border-border/70 bg-card/45 p-3`,children:[(0,x.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,x.jsx)(g,{variant:`ghost`,size:`icon`,onClick:c,"aria-label":`Back to dependency list`,className:`shrink-0 md:hidden`,children:(0,x.jsx)(s,{className:`size-4`})}),(0,x.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,x.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,x.jsx)(`h2`,{className:`min-w-0 truncate font-mono text-sm font-bold text-foreground`,children:e.name}),(0,x.jsx)(N,{className:l.badge,children:l.label})]}),(0,x.jsxs)(`p`,{className:`mt-0.5 truncate text-[10px] text-muted-foreground`,children:[e.ecosystem,` · `,e.direct?`direct`:`transitive`,` ·`,` `,e.scope,` · `,e.sourceType]})]})]}),(0,x.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-baseline gap-2 font-mono text-xs`,children:[(0,x.jsx)(`span`,{className:`text-foreground`,children:u??`—`}),e.latestStable&&e.latestStable!==u&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`span`,{className:`text-muted-foreground`,children:`→`}),(0,x.jsx)(`span`,{className:`text-info`,children:e.latestStable})]}),d.label&&(0,x.jsxs)(`span`,{className:`text-[10px] text-warning`,children:[`(`,d.label,`)`]})]})]}),(0,x.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:[(0,x.jsxs)(`dl`,{className:`grid grid-cols-2 gap-px border border-border/70 bg-border/60`,children:[(0,x.jsx)(F,{label:`Constraint`,value:e.requested??`—`,mono:!0}),(0,x.jsx)(F,{label:`Locked`,value:e.locked??`—`,mono:!0}),(0,x.jsx)(F,{label:`Latest stable`,value:e.latestStable??`—`,mono:!0}),(0,x.jsx)(F,{label:`License`,value:e.license??`—`}),e.wanted&&(0,x.jsx)(F,{label:`Wanted`,value:e.wanted,mono:!0}),e.resolvable&&(0,x.jsx)(F,{label:`Resolvable`,value:e.resolvable,mono:!0}),e.purl&&(0,x.jsx)(F,{label:`PURL`,value:e.purl,mono:!0}),(0,x.jsx)(F,{label:`Registry flags`,value:[e.deprecated&&`deprecated`,e.yanked&&`yanked`].filter(Boolean).join(`, `)||`none`})]}),(0,x.jsxs)(`section`,{className:`mt-4`,children:[(0,x.jsxs)(`div`,{className:`mb-1.5 flex flex-wrap items-center justify-between gap-2`,children:[(0,x.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:`Findings`}),(0,x.jsxs)(g,{variant:`outline`,size:`sm`,onClick:()=>o(e),disabled:i.status===`loading`,className:`h-7 text-[10px]`,children:[i.status===`loading`?(0,x.jsx)(a,{className:`size-3 animate-spin`}):(0,x.jsx)(n,{className:`size-3`}),i.status===`loading`?`Researching…`:`Deep dive`]})]}),i.status===`error`&&i.error&&(0,x.jsx)(`p`,{role:`alert`,className:`mb-1.5 text-[10px] text-destructive`,children:i.error}),t.length===0?(0,x.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Nothing flagged. Run a deep dive to have the model research this package against the web.`}):(0,x.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:t.map(e=>(0,x.jsxs)(`div`,{className:`border border-border/70 bg-card/40 p-2`,children:[(0,x.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,x.jsx)(N,{className:E[e.severity].badge,children:E[e.severity].label}),(0,x.jsx)(N,{className:`border-border/70 bg-muted text-muted-foreground`,children:D[e.action]??e.action}),M(e)&&(0,x.jsxs)(N,{className:`border-info/35 bg-info/10 text-info`,children:[(0,x.jsx)(n,{className:`size-2.5`}),`AI · `,Math.round(e.confidence*100),`%`]})]}),(0,x.jsx)(`p`,{className:`mt-1 text-[11px] leading-relaxed text-muted-foreground`,children:e.rationale}),e.breakingRisk&&(0,x.jsx)(`p`,{className:`mt-1 border-l-2 border-warning/40 pl-2 text-[10px] leading-relaxed text-warning`,children:e.breakingRisk})]},e.id))})]}),(0,x.jsxs)(`section`,{className:`mt-4`,children:[(0,x.jsx)(`h3`,{className:`mb-1.5 text-[9px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:`Evidence`}),e.evidence.length===0?(0,x.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`No evidence recorded.`}):(0,x.jsx)(`ul`,{className:`flex flex-col gap-1`,children:e.evidence.map((t,n)=>(0,x.jsxs)(`li`,{className:`border border-border/70 bg-card/40 p-2`,children:[(0,x.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,x.jsx)(N,{className:`border-border/70 bg-muted text-muted-foreground`,children:t.kind}),(0,x.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:new Date(t.retrievedAt).toLocaleString()})]}),t.source.startsWith(`http`)?(0,x.jsxs)(`a`,{href:t.source,target:`_blank`,rel:`noreferrer noopener`,className:`mt-1 flex min-w-0 items-center gap-1 truncate text-[10px] text-info underline-offset-2 hover:underline`,children:[(0,x.jsx)(`span`,{className:`truncate`,children:t.source}),(0,x.jsx)(r,{className:`size-2.5 shrink-0`})]}):(0,x.jsx)(`p`,{className:`mt-1 truncate font-mono text-[10px] text-muted-foreground`,children:t.source}),t.detail&&(0,x.jsx)(`p`,{className:`mt-0.5 text-[10px] leading-relaxed text-muted-foreground`,children:t.detail})]},`${e.id}-evidence-${n}`))})]})]})]})}function F({label:e,value:t,mono:n}){return(0,x.jsxs)(`div`,{className:`bg-card/55 px-2.5 py-1.5`,children:[(0,x.jsx)(`dt`,{className:`text-[9px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:e}),(0,x.jsx)(`dd`,{className:m(`mt-0.5 truncate text-[11px] text-foreground`,n&&`font-mono`),children:t})]})}var I=`grid grid-cols-[minmax(0,2.2fr)_minmax(0,1.6fr)_minmax(0,1.1fr)] gap-2`;function ne({dependencies:e,selectedId:t,hasDependencies:n,onSelect:r}){let a=y(e,30);return e.length===0?(0,x.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8 text-center`,children:(0,x.jsx)(`p`,{className:`max-w-xs text-xs text-muted-foreground`,children:n?`No dependencies match the current filters.`:`No dependencies inventoried yet. Run a scan to populate the inventory.`})}):(0,x.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,x.jsxs)(`div`,{className:m(I,`shrink-0 border-b border-border/70 bg-card/45 px-3 py-1.5 text-[9px] font-bold uppercase tracking-[0.14em] text-muted-foreground`),children:[(0,x.jsx)(`span`,{children:`Package`}),(0,x.jsx)(`span`,{children:`Installed → Latest`}),(0,x.jsx)(`span`,{children:`Status`})]}),(0,x.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,x.jsx)(i,{className:`h-full`,"aria-label":`Dependencies`,children:a.pageItems.map(e=>(0,x.jsx)(L,{dependency:e,selected:e.id===t,onSelect:r},e.id))})}),(0,x.jsx)(v,{page:a.page,pageSize:a.pageSize,totalItems:a.totalItems,onPageChange:a.setPage,itemLabel:`dependencies`})]})}function L({dependency:e,selected:t,onSelect:n}){let r=w(e.status),i=j(e),a=A(e);return(0,x.jsxs)(`button`,{type:`button`,onClick:()=>n(e),"aria-current":t,className:m(I,`w-full items-center border-b border-border/40 px-3 py-2 text-left transition-colors hover:bg-accent/40`,t&&`bg-accent/60`),children:[(0,x.jsxs)(`div`,{className:`min-w-0`,children:[(0,x.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,x.jsx)(`span`,{className:m(`size-1.5 shrink-0`,r.dot),"aria-hidden":`true`}),(0,x.jsx)(`span`,{className:`truncate font-mono text-xs text-foreground`,children:e.name})]}),(0,x.jsxs)(`p`,{className:`mt-0.5 truncate text-[10px] text-muted-foreground`,children:[e.ecosystem,` · `,e.direct?`direct`:`transitive`,` · `,e.scope]})]}),(0,x.jsxs)(`div`,{className:`min-w-0`,children:[(0,x.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-1.5 font-mono text-[11px]`,children:[(0,x.jsx)(`span`,{className:`truncate text-foreground`,children:i??`—`}),e.latestStable&&e.latestStable!==i&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`→`}),(0,x.jsx)(`span`,{className:`truncate text-info`,children:e.latestStable})]})]}),a.label?(0,x.jsx)(`p`,{className:`mt-0.5 truncate text-[10px] text-warning`,children:a.label}):e.requested&&(0,x.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-[10px] text-muted-foreground`,children:e.requested})]}),(0,x.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-1`,children:[(0,x.jsx)(N,{className:r.badge,children:r.label}),e.deprecated&&(0,x.jsx)(N,{className:`border-destructive/35 bg-destructive/10 text-destructive`,children:`dep`}),e.yanked&&(0,x.jsx)(N,{className:`border-destructive/45 bg-destructive/15 text-destructive`,children:`yank`})]})]})}function re({findings:e,dependenciesById:t,onSelectDependency:n}){let r=y(e,20);return e.length===0?(0,x.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8 text-center`,children:(0,x.jsxs)(`p`,{className:`max-w-sm text-xs text-muted-foreground`,children:[`No findings. Run `,(0,x.jsx)(`span`,{className:`font-mono text-foreground`,children:`Analyze`}),` to check versions and advisories against upstream registries, then interpret the results.`]})}):(0,x.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,x.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:(0,x.jsx)(`div`,{className:`flex flex-col gap-4`,children:T.map(e=>[e,r.pageItems.filter(t=>t.severity===e)]).filter(([,e])=>e.length>0).map(([e,r])=>(0,x.jsxs)(`section`,{children:[(0,x.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-2`,children:[(0,x.jsx)(N,{className:E[e].badge,children:E[e].label}),(0,x.jsx)(`span`,{className:`font-mono text-[10px] tabular-nums text-muted-foreground`,children:r.length})]}),(0,x.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:r.map(e=>(0,x.jsx)(R,{finding:e,dependency:t.get(e.dependencyId),onSelectDependency:n},e.id))})]},e))})}),(0,x.jsx)(v,{page:r.page,pageSize:r.pageSize,totalItems:r.totalItems,onPageChange:r.setPage,itemLabel:`findings`})]})}function R({finding:e,dependency:t,onSelectDependency:r}){let i=M(e);return(0,x.jsxs)(`div`,{className:`border border-border/70 bg-card/40 p-2.5`,children:[(0,x.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,x.jsx)(`button`,{type:`button`,onClick:()=>r(e.dependencyId),className:`min-w-0 truncate font-mono text-xs text-foreground underline-offset-2 hover:underline`,children:t?.name??e.dependencyId}),(0,x.jsx)(N,{className:`border-border/70 bg-muted text-muted-foreground`,children:D[e.action]??e.action}),i&&(0,x.jsxs)(N,{className:`border-info/35 bg-info/10 text-info`,children:[(0,x.jsx)(n,{className:`size-2.5`}),`AI · `,Math.round(e.confidence*100),`%`]})]}),(0,x.jsx)(`p`,{className:`mt-1.5 text-[11px] leading-relaxed text-muted-foreground`,children:e.rationale}),e.breakingRisk&&(0,x.jsx)(`p`,{className:`mt-1 border-l-2 border-warning/40 pl-2 text-[10px] leading-relaxed text-warning`,children:e.breakingRisk}),e.evidence.length>0&&(0,x.jsx)(`ul`,{className:m(`mt-1.5 flex flex-col gap-0.5`),children:e.evidence.slice(0,4).map((t,n)=>(0,x.jsx)(`li`,{className:`min-w-0 truncate text-[10px]`,children:t.source.startsWith(`http`)?(0,x.jsx)(`a`,{href:t.source,target:`_blank`,rel:`noreferrer noopener`,className:`text-info underline-offset-2 hover:underline`,children:t.detail??t.source}):(0,x.jsx)(`span`,{className:`text-muted-foreground`,children:t.detail??t.source})},`${e.id}-${n}`))})]})}function ie({searchQuery:e,ecosystemFilter:t,statusFilter:n,directOnly:r,sort:i,hasFilters:a,ecosystems:o,statuses:s,visibleCount:u,totalCount:d,onSearchChange:f,onEcosystemFilterChange:h,onStatusFilterChange:v,onToggleDirectOnly:y,onSortChange:b,onClearFilters:S}){return(0,x.jsxs)(`div`,{className:`shrink-0 space-y-2 border-b border-border/70 bg-card/45 p-3`,children:[(0,x.jsxs)(`div`,{className:`flex gap-2`,children:[(0,x.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,x.jsx)(l,{className:`pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground`}),(0,x.jsx)(_,{"aria-label":`Search dependencies`,value:e,onChange:e=>f(e.target.value),placeholder:`Search by package name…`,className:`h-10 min-w-0 bg-background pl-9 pr-8 text-xs`}),e&&(0,x.jsx)(`button`,{type:`button`,"aria-label":`Clear search`,onClick:()=>f(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground`,children:(0,x.jsx)(c,{className:`size-3.5`})})]}),(0,x.jsx)(g,{variant:r?`default`:`outline`,size:`sm`,onClick:y,"aria-pressed":r,title:`Show only dependencies this project declares itself`,className:`shrink-0`,children:`Direct only`}),a&&(0,x.jsx)(g,{variant:`ghost`,size:`icon`,onClick:S,"aria-label":`Clear all filters`,title:`Clear all filters`,className:`shrink-0`,children:(0,x.jsx)(p,{className:`size-4`})})]}),(0,x.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-3`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`label`,{className:`sr-only`,htmlFor:`techstack-ecosystem-filter`,children:`Filter by ecosystem`}),(0,x.jsxs)(`select`,{id:`techstack-ecosystem-filter`,value:t,onChange:e=>h(e.target.value),className:`h-9 w-full min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,x.jsx)(`option`,{value:`all`,children:`All ecosystems`}),o.map(([e,t])=>(0,x.jsxs)(`option`,{value:e,children:[e,` · `,t]},e))]})]}),(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`label`,{className:`sr-only`,htmlFor:`techstack-status-filter`,children:`Filter by status`}),(0,x.jsxs)(`select`,{id:`techstack-status-filter`,value:n,onChange:e=>v(e.target.value),className:`h-9 w-full min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,x.jsx)(`option`,{value:`all`,children:`All statuses`}),s.map(([e,t])=>(0,x.jsxs)(`option`,{value:e,children:[w(e).label,` · `,t]},e))]})]}),(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`label`,{className:`sr-only`,htmlFor:`techstack-sort`,children:`Sort dependencies`}),(0,x.jsxs)(`select`,{id:`techstack-sort`,value:i,onChange:e=>b(e.target.value),className:`h-9 w-full min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,x.jsx)(`option`,{value:`attention`,children:`Sort: needs attention`}),(0,x.jsx)(`option`,{value:`drift`,children:`Sort: most out of date`}),(0,x.jsx)(`option`,{value:`name`,children:`Sort: name`})]})]})]}),(0,x.jsx)(`p`,{className:m(`text-[10px] text-muted-foreground`,a&&`text-info`),children:u===d?`${d} dependencies`:`${u} of ${d} dependencies`})]})}var ae=[{id:`dependencies`,label:`Dependencies`},{id:`findings`,label:`Findings`},{id:`workspaces`,label:`Workspaces`},{id:`trends`,label:`Trends`},{id:`remediation`,label:`Remediation`}],z=new Set([`npm`,`python`,`rust`,`go`,`php`,`dotnet`]);function B(){let e=h(e=>e.snapshot),t=h(e=>e.stale),r=h(e=>e.loading),i=h(e=>e.error),s=h(e=>e.activeJob),[l,d]=(0,b.useState)(`dependencies`),[f,p]=(0,b.useState)(``),[_,v]=(0,b.useState)(`all`),[y,S]=(0,b.useState)(`all`),[C,T]=(0,b.useState)(!1),[E,D]=(0,b.useState)(`attention`),[O,k]=(0,b.useState)(null),[j,M]=(0,b.useState)([]),[N,F]=(0,b.useState)({status:`idle`,error:null}),[I,L]=(0,b.useState)(null),[R,z]=(0,b.useState)(null),[B,U]=(0,b.useState)(new Set),[de,W]=(0,b.useState)(!1),G=(0,b.useCallback)(async()=>{let e=h.getState();e.setLoading(!0),e.setError(null);try{let t=await fetch(`/api/techstack/snapshot`);if(t.status===404){e.setSnapshot(null,!1);return}if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.json();e.setSnapshot(n.snapshot,n.stale)}catch(t){e.setError(t instanceof Error?t.message:String(t))}},[]),K=(0,b.useCallback)(async e=>{let t=h.getState();t.setLoading(!0),t.setError(null);try{let n=await fetch(`/api/techstack/${e}`,{method:`POST`}),r=await n.json();if(!n.ok||!r.jobId)throw Error(r.error??`HTTP ${n.status}: ${n.statusText}`);t.jobStarted(r.jobId,e)}catch(e){t.setError(e instanceof Error?e.message:String(e))}},[]),fe=(0,b.useCallback)(async()=>{let e=h.getState().activeJob;if(e)try{let t=await fetch(`/api/techstack/jobs/${encodeURIComponent(e.id)}/cancel`,{method:`POST`});if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);h.getState().jobCancelled(e.id)}catch(e){h.getState().setError(e instanceof Error?e.message:String(e))}},[]),pe=(0,b.useCallback)(async e=>{F({status:`loading`,error:null});try{let t=await fetch(`/api/techstack/deps/${encodeURIComponent(e.id)}/research`,{method:`POST`}),n=await t.json();if(!t.ok)throw Error(n.error??`HTTP ${t.status}`);M(n.findings??[]),F({status:`idle`,error:null})}catch(e){F({status:`error`,error:e instanceof Error?e.message:String(e)})}},[]);(0,b.useEffect)(()=>{G()},[G]),(0,b.useEffect)(()=>{l!==`trends`&&l!==`remediation`||fetch(`/api/techstack/${l===`trends`?`trends`:`remediation`}`).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);t.trend&&L(t.trend),t.plan&&z(t.plan)}).catch(e=>h.getState().setError(e instanceof Error?e.message:String(e)))},[l,e?.id]);let me=(0,b.useCallback)(async()=>{if(B.size!==0){W(!0);try{let e=await fetch(`/api/techstack/remediation/apply`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({approvedItems:[...B]})}),t=await e.json();if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);U(new Set),await K(`inventory`)}catch(e){h.getState().setError(e instanceof Error?e.message:String(e))}finally{W(!1)}}},[B,K]);(0,b.useEffect)(()=>{M([]),F({status:`idle`,error:null})},[e?.id]);let q=(0,b.useMemo)(()=>e?.dependencies??[],[e]),J=(0,b.useMemo)(()=>e?.findings??[],[e]),Y=(0,b.useMemo)(()=>new Map(q.map(e=>[e.id,e])),[q]),he=(0,b.useMemo)(()=>H(q.map(e=>e.ecosystem)),[q]),ge=(0,b.useMemo)(()=>H(q.map(e=>e.status)),[q]),X=(0,b.useMemo)(()=>{let e=f.trim().toLowerCase(),t=[...q.filter(t=>!(e&&!t.name.toLowerCase().includes(e)||_!==`all`&&t.ecosystem!==_||y!==`all`&&t.status!==y||C&&!t.direct))];return E===`name`?t.sort((e,t)=>e.name.localeCompare(t.name)):E===`drift`?t.sort((e,t)=>A(t).majorsBehind-A(e).majorsBehind||e.name.localeCompare(t.name)):t.sort((e,t)=>w(t.status).weight-w(e.status).weight||Number(t.direct)-Number(e.direct)||e.name.localeCompare(t.name)),t},[q,f,_,y,C,E]),Z=O?Y.get(O):void 0,_e=(0,b.useMemo)(()=>Z?[...J.filter(e=>e.dependencyId===Z.id),...j.filter(e=>e.dependencyId===Z.id)]:[],[J,j,Z]),ve=(0,b.useMemo)(()=>q.filter(ee).length,[q]),Q=(0,b.useMemo)(()=>q.filter(e=>A(e).majorsBehind>0).length,[q]),ye=(0,b.useMemo)(()=>q.filter(e=>e.status===`vulnerable`).length,[q]),be=f.trim()!==``||_!==`all`||y!==`all`||C,xe=(0,b.useCallback)(()=>{p(``),v(`all`),S(`all`),T(!1)},[]),$=!!(s&&![`completed`,`failed`,`cancelled`].includes(s.status)),Se=(0,b.useCallback)(e=>{k(e),d(`dependencies`)},[]);return(0,x.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,x.jsx)(`header`,{className:`shrink-0 border-b border-border/70 px-4 py-3`,children:(0,x.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,x.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,x.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,x.jsx)(`h1`,{className:`text-base font-bold sm:text-lg`,children:`TechStack`}),(0,x.jsx)(`span`,{className:`border border-info/35 bg-info/10 px-2 py-0.5 font-mono text-[9px] font-bold uppercase text-info`,children:e?`${e.workspaces.length} workspaces`:`no scan yet`}),t&&(0,x.jsx)(`span`,{className:`border border-warning/35 bg-warning/10 px-2 py-0.5 font-mono text-[9px] font-bold uppercase text-warning`,children:`stale >24h`})]}),(0,x.jsx)(`p`,{className:`mt-0.5 truncate text-[10px] text-muted-foreground sm:text-xs`,children:e?`${e.targetRoot} · scanned ${new Date(e.createdAt).toLocaleString()}`:`Scan the open project to inventory its dependencies.`})]}),(0,x.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,x.jsxs)(g,{variant:`outline`,size:`sm`,onClick:()=>void K(`inventory`),disabled:$,title:`Offline: re-read manifests and lockfiles`,children:[(0,x.jsx)(u,{className:m(`size-3.5`,$&&`animate-spin`)}),(0,x.jsx)(`span`,{className:`hidden sm:inline`,children:`Refresh`})]}),(0,x.jsxs)(g,{size:`sm`,onClick:()=>void K(`analyze`),disabled:$,title:`Check registries and advisories, then interpret the results with the model`,children:[(0,x.jsx)(n,{className:`size-3.5`}),`Analyze`]}),$&&(0,x.jsx)(g,{variant:`ghost`,size:`icon`,onClick:()=>void fe(),"aria-label":`Cancel job`,children:(0,x.jsx)(c,{className:`size-4`})}),(0,x.jsx)(g,{variant:`ghost`,size:`icon`,onClick:()=>e&&ue(e),disabled:!e,"aria-label":`Export snapshot as JSON`,title:`Export snapshot as JSON`,children:(0,x.jsx)(o,{className:`size-4`})})]})]})}),e&&(0,x.jsxs)(`div`,{className:`grid shrink-0 grid-cols-2 gap-px border-b border-border/70 bg-border/60 sm:grid-cols-4`,children:[(0,x.jsx)(P,{label:`Dependencies`,value:q.length,hint:`${X.length} visible`}),(0,x.jsx)(P,{label:`Outdated`,value:Q,hint:`majors behind`,tone:Q>0?`warning`:`success`}),(0,x.jsx)(P,{label:`Vulnerable`,value:ye,hint:`known advisories`,tone:ye>0?`destructive`:`success`}),(0,x.jsx)(P,{label:`Findings`,value:J.length,hint:`${ve} need attention`,tone:J.length>0?`info`:`default`})]}),($||i)&&(0,x.jsxs)(`div`,{className:`shrink-0 border-b border-border/70 px-4 py-2`,"aria-live":`polite`,children:[$&&s&&(0,x.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-xs text-info`,children:[(0,x.jsx)(a,{className:`size-3.5 animate-spin`}),(0,x.jsx)(`span`,{className:`font-mono`,children:s.status}),s.progress&&(0,x.jsxs)(`span`,{className:`text-muted-foreground`,children:[s.progress.completed,`/`,s.progress.total]})]}),i&&(0,x.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 text-xs text-destructive`,children:[(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:i}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>void G(),className:`underline`,children:`Retry`})]})]}),r&&!e?(0,x.jsx)(V,{}):e?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`nav`,{className:`flex shrink-0 gap-1 border-b border-border/70 px-2`,children:ae.map(e=>(0,x.jsxs)(`button`,{type:`button`,onClick:()=>d(e.id),"aria-current":l===e.id,className:m(`border-b-2 px-3 py-2 text-xs font-medium transition-colors`,l===e.id?`border-primary text-foreground`:`border-transparent text-muted-foreground hover:text-foreground`),children:[e.label,e.id===`findings`&&J.length>0&&(0,x.jsx)(`span`,{className:`ml-1.5 font-mono text-[10px] tabular-nums text-muted-foreground`,children:J.length})]},e.id))}),l===`dependencies`&&(0,x.jsxs)(`div`,{className:`grid min-h-0 flex-1 md:grid-cols-[minmax(340px,1fr)_minmax(0,1.15fr)]`,children:[(0,x.jsxs)(`section`,{className:m(`min-h-0 border-r border-border/70`,Z?`hidden md:flex md:flex-col`:`flex flex-col`),"aria-label":`Dependency list`,children:[(0,x.jsx)(ie,{searchQuery:f,ecosystemFilter:_,statusFilter:y,directOnly:C,sort:E,hasFilters:be,ecosystems:he,statuses:ge,visibleCount:X.length,totalCount:q.length,onSearchChange:p,onEcosystemFilterChange:v,onStatusFilterChange:S,onToggleDirectOnly:()=>T(e=>!e),onSortChange:D,onClearFilters:xe}),(0,x.jsx)(ne,{dependencies:X,selectedId:O,hasDependencies:q.length>0,onSelect:e=>k(e.id)})]}),(0,x.jsx)(`section`,{className:m(`min-h-0`,Z?`flex flex-col`:`hidden md:flex md:flex-col`),"aria-label":`Dependency detail`,children:Z?(0,x.jsx)(te,{dependency:Z,findings:_e,deepDive:N,onDeepDive:pe,onBack:()=>k(null)}):(0,x.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8 text-center`,children:(0,x.jsx)(`p`,{className:`max-w-xs text-xs text-muted-foreground`,children:`Select a dependency to see its versions, evidence, and findings.`})})})]}),l===`findings`&&(0,x.jsx)(re,{findings:J,dependenciesById:Y,onSelectDependency:Se}),l===`workspaces`&&(0,x.jsx)(ce,{snapshot:e}),l===`trends`&&(0,x.jsx)(oe,{trend:I}),l===`remediation`&&(0,x.jsx)(se,{plan:R,approved:B,applying:de,onToggle:e=>U(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),onApply:()=>void me()})]}):(0,x.jsx)(le,{onScan:()=>void K(`inventory`),disabled:$})]})}function oe({trend:e}){return e?(0,x.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:[(0,x.jsxs)(`p`,{className:`mb-3 text-xs text-muted-foreground`,children:[e.snapshots,` snapshots`,e.vulnerabilityHalfLifeMs===void 0?``:` · vulnerability half-life ${(e.vulnerabilityHalfLifeMs/864e5).toFixed(1)} days`]}),(0,x.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.points.map(e=>(0,x.jsxs)(`div`,{className:`grid grid-cols-4 border border-border/70 bg-card/40 p-2 text-xs`,children:[(0,x.jsx)(`span`,{children:new Date(e.createdAt).toLocaleDateString()}),(0,x.jsxs)(`span`,{children:[e.dependencies,` deps`]}),(0,x.jsxs)(`span`,{className:`text-warning`,children:[e.outdated,` outdated`]}),(0,x.jsxs)(`span`,{className:`text-destructive`,children:[e.vulnerable,` vulnerable`]})]},e.snapshotId))})]}):(0,x.jsx)(V,{})}function se({plan:e,approved:t,applying:n,onToggle:r,onApply:i}){return e?(0,x.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:[(0,x.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.warning}),(0,x.jsxs)(g,{size:`sm`,disabled:t.size===0||n,onClick:i,children:[n&&(0,x.jsx)(a,{className:`size-3.5 animate-spin`}),`Apply `,t.size>0?t.size:``]})]}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e.items.map(e=>{let n=`${e.workspaceId}:${e.ecosystem}:${e.dependencyName}:${e.action}`,i=e.action===`replace`||e.action===`investigate`||!z.has(e.ecosystem);return(0,x.jsxs)(`label`,{className:m(`flex gap-3 border border-border/70 bg-card/40 p-2.5`,i?`cursor-not-allowed opacity-65`:`cursor-pointer`),children:[(0,x.jsx)(`input`,{type:`checkbox`,disabled:i,checked:t.has(n),onChange:()=>r(n)}),(0,x.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,x.jsxs)(`span`,{className:`block font-mono text-xs`,children:[e.dependencyName,` · `,e.action]}),(0,x.jsxs)(`span`,{className:`block text-[10px] text-muted-foreground`,children:[e.currentVersion??`?`,` → `,e.targetVersion??`latest`,` · `,e.rationale]}),i&&(0,x.jsx)(`span`,{className:`block text-[10px] text-warning`,children:`Requires a manual package choice.`})]})]},n)}),e.items.length===0&&(0,x.jsx)(`p`,{className:`p-8 text-center text-xs text-muted-foreground`,children:`No remediation needed.`})]})]}):(0,x.jsx)(V,{})}function ce({snapshot:e}){let t=(0,b.useMemo)(()=>{let t=new Map;for(let n of e.dependencies)t.set(n.workspaceId,(t.get(n.workspaceId)??0)+1);return t},[e]);return e.workspaces.length===0?(0,x.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No workspaces detected.`})}):(0,x.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:(0,x.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.workspaces.map(e=>{let n=O[e.coverage];return(0,x.jsxs)(`div`,{className:`border border-border/70 bg-card/40 p-2.5`,children:[(0,x.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,x.jsxs)(`div`,{className:`min-w-0`,children:[(0,x.jsx)(`p`,{className:`truncate font-mono text-xs text-foreground`,children:e.relativeRoot}),(0,x.jsxs)(`p`,{className:`mt-0.5 truncate text-[10px] text-muted-foreground`,children:[e.ecosystem,e.packageManager?` · ${e.packageManager}`:``,` · ${t.get(e.id)??0} deps`]})]}),(0,x.jsx)(`span`,{className:m(`shrink-0 border px-1.5 py-0.5 text-[10px] font-medium`,n.badge),children:n.label})]}),e.manifests.length>0&&(0,x.jsx)(`div`,{className:`mt-1.5 flex flex-wrap gap-1`,children:e.manifests.map(e=>(0,x.jsx)(`span`,{className:`border border-border/70 bg-background/45 px-1.5 py-0.5 font-mono text-[9px] text-muted-foreground`,children:e.split(/[/\\]/).pop()},e))})]},e.id)})})})}function V(){return(0,x.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,x.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,x.jsx)(a,{className:`size-5 animate-spin text-muted-foreground`}),(0,x.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Loading snapshot…`})]})})}function le({onScan:e,disabled:n}){return(0,x.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,x.jsxs)(`div`,{className:`flex max-w-md flex-col items-center gap-3 text-center`,children:[(0,x.jsx)(`div`,{className:`flex size-14 items-center justify-center border border-info/25 bg-info/5 text-info`,children:(0,x.jsx)(t,{className:`size-6`})}),(0,x.jsx)(`h2`,{className:`text-sm font-semibold`,children:`No inventory yet`}),(0,x.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:`TechStack reads every manifest and lockfile in the open project — npm, Python, Rust, Go, .NET, PHP, Dart, Maven, Ruby, Elixir — and compares what you have against the upstream registries.`}),(0,x.jsxs)(g,{size:`sm`,onClick:e,disabled:n,children:[(0,x.jsx)(u,{className:m(`size-3.5`,n&&`animate-spin`)}),`Scan this project`]})]})})}function H(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0]))}function ue(e){let t=new Blob([JSON.stringify(e,null,2)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`techstack.json`,r.click(),URL.revokeObjectURL(n)}export{B as TechStackView};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{aa as t,bi as n,bt as r,ca as i,ia as a,ot as o,pi as s,rr as c,tt as l,ua as u}from"./vendor-BmsAdDhb.js";import"./i18n-c37VNlP9.js";import{n as d,t as f}from"./utils-DvgvNCoT.js";var p=e(u(),1),m=l();function h(){return`toast_${d()}`}var g=8e3,_=a(e=>({toasts:[],push:t=>{let n=h();return e(e=>({toasts:[...e.toasts,{...t,id:n}]})),n},dismiss:t=>e(e=>({toasts:e.toasts.filter(e=>e.id!==t)}))})),v={success:(e,t=3500)=>_.getState().push({message:e,variant:`success`,ttl:t}),error:(e,t=6e3)=>_.getState().push({message:e,variant:`error`,ttl:t}),warn:(e,t=4500)=>_.getState().push({message:e,variant:`warn`,ttl:t}),info:(e,t=3500)=>_.getState().push({message:e,variant:`info`,ttl:t}),undoable:(e,t,n=i.t(`common:action.undo`),r=g)=>_.getState().push({message:e,variant:`info`,ttl:r,action:{label:n,onClick:t}}),dismiss:e=>_.getState().dismiss(e)};function y({variant:e}){return e===`success`?(0,m.jsx)(n,{className:`h-4 w-4 text-success`}):e===`error`?(0,m.jsx)(s,{className:`h-4 w-4 text-destructive`}):e===`warn`?(0,m.jsx)(r,{className:`h-4 w-4 text-warning`}):(0,m.jsx)(c,{className:`h-4 w-4 text-info`})}function b({entry:e}){let{t:n}=t(),r=_(e=>e.dismiss);return(0,p.useEffect)(()=>{let t=setTimeout(()=>r(e.id),e.ttl);return()=>clearTimeout(t)},[e.id,e.ttl,r]),(0,m.jsxs)(`div`,{className:f(`flex items-start gap-2 rounded-lg border bg-popover shadow-lg px-3 py-2 text-sm max-w-sm`,`animate-message`,e.variant===`error`&&`border-destructive/40`,e.variant===`warn`&&`border-warning/40`,e.variant===`success`&&`border-success/40`),children:[(0,m.jsx)(y,{variant:e.variant}),(0,m.jsx)(`div`,{className:`flex-1 min-w-0 whitespace-pre-wrap break-words leading-snug`,children:e.message}),e.action&&(0,m.jsx)(`button`,{type:`button`,onClick:()=>{e.action?.onClick(),r(e.id)},className:`shrink-0 font-medium text-primary hover:underline`,children:e.action.label}),(0,m.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),className:`text-muted-foreground hover:text-foreground`,title:n(`activity:toast.dismiss`),"aria-label":n(`activity:toast.dismiss`),children:(0,m.jsx)(o,{className:`h-3.5 w-3.5`})})]})}function x(){let e=_(e=>e.toasts);return e.length===0?null:(0,m.jsx)(`section`,{className:`fixed bottom-4 right-4 z-[60] flex flex-col gap-2 pointer-events-auto`,"aria-label":`Notifications`,"aria-live":`polite`,children:e.map(e=>(0,m.jsx)(b,{entry:e},e.id))})}export{v as n,x as t};
@@ -1,5 +0,0 @@
1
- var e={chat:`Sesión`,agents:`Agentes`,history:`Historial`,files:`Archivos`,changes:`Cambios`,mailbox:`Buzón`,skills:`Habilidades`,worktrees:`Worktrees`,design:`Estudio de diseño`,officemap:`Mapa de oficinas`,settings:`Ajustes`,sddhub:`SDD`,goal:`Goal`,memory:`Memoria`,fleet:`Flota`,inspector:`Inspector`,prompts:`Prompts`},t={returnToChat:`{{name}} — volver al chat`,returnToChatDefault:`WrongStack — volver al chat`},n={connected:`Conectado`,disconnected:`Desconectado`,idle:`Inactivo`,thinking:`Pensando`,running:`En ejecución`,waiting:`En espera`,done:`Completado`,stopped:`Detenido`},r={moreWithHidden:`Más, {{count}} elementos ocultos`,moreOptions:`Más opciones`,moreCompactHidden:`Más — {{count}} paneles/vistas ocultos, paleta, tema, monitores`,moreCompact:`Más — paleta, tema, monitores`,moreFull:`Más — paleta, tema, atajos, monitores`,commandPalette:`Paleta de comandos`,keyboardShortcuts:`Atajos de teclado`,panels:`Paneles`,views:`Vistas`,theme:`Tema`,monitors:`Monitores`,fleetMonitor:`Monitor de flota`,agentsMonitor:`Monitor de agentes`},i={dragHint:`Arrastra para cambiar el tamaño · doble clic para restablecer`,collapse:`Contraer panel (Ctrl+\\)`},a={openDashboard:`Abrir panel de sesiones`},o={pending:`pendiente…`,empty:`Aún no hay agentes`,emptyHint:`Los subagentes aparecen aquí cuando la flota está activa.`,runningCount:`{{count}} en ejecución`,totalCount:`{{count}} en total`,openFull:`Abrir vista completa de agentes`,agentsLive:`AGENTES · LIVE`,doneCount:`{{count}} hechos`,failedCount:`{{count}} fallidos`,modelsLabel:`modelos`,shownLabel:`mostrados`,totalLabel:`total`,leaderFleetTotals:`(líder {{leader}} · flota {{fleet}})`,navHintJk:`j/k o ↑↓ para navegar`,escCloseDetail:`· Esc para cerrar el detalle`,noAgentsRunning:`Sin agentes en ejecución.`,contextUsage:`Uso de contexto`,lastToolLabel:`último:`,unknownSession:`Sesión desconocida`,sessionCopyTitle:`Sesión: {{sid}} — clic para copiar`,sessionWord:`sesión`,agentsCountSuffix_one:`{{count}} agente`,agentsCountSuffix_other:`{{count}} agentes`,sessionTitle:`Sesión: {{sid}}`,projectSuffix:` · Proyecto: {{name}}`,statusIdle:`inactivo`,filterAll:`Todos`,filterRunning:`En ejecución`,filterDone:`Completados`,filterCompleted:`Completados`,filterFailed:`Fallidos`,clearFinished:`Limpiar`,clearFinishedTitle:`Eliminar agentes finalizados`,rosterHint:`Flechas para navegar · Intro para expandir`,itSuffix:`it`,tcSuffix:`llam.`,toolLog:`Registro de herramientas`,showAll:`Mostrar todos`,showFewer:`Mostrar menos`,streaming:`En directo`,failure:`Fallo`,timeout:`Tiempo agotado`,reRun:`Volver a ejecutar`,reRunTitle:`Volver a ejecutar este agente (aún no implementado)`,lastToolCalls:`Última {{count}} llamada a herramienta`,lastToolCalls_plural:`Últimas {{count}} llamadas a herramientas`,config:`Configuración`,configProvider:`Proveedor`,configModel:`Modelo`,configDescription:`Descripción`,configTaskId:`ID de tarea`,transcript:`Transcripción`,openInspector:`Abrir en el inspector de flota`,emptyFilteredTitle:`Ningún agente coincide con el filtro`,emptyFilteredHint:`Cambia o borra el filtro para ver todos los agentes.`,emptyFilteredClear:`Mostrar todos`,emptyFinishedTitle:`Todas las tareas están completas`,emptyFinishedHint:`Todos los agentes han finalizado; limpia los finalizados o crea tareas nuevas para ver actividad aquí.`,emptyFinishedStats:`{{completed}} completados · {{failed}} fallidos`},s={fileCount_one:`{{count}} archivo`,fileCount_other:`{{count}} archivos`,refreshTitle:`Actualizar cambios`,loading:`Cargando cambios…`,clean:`Sin cambios — el árbol de trabajo está limpio.`,selectPrompt:`Selecciona un archivo modificado para ver su diff.`,unified:`Unificado`,unifiedTitle:`Diff unificado`,edit:`Editar`,editTitle:`Diff lado a lado editable`,loadingDiff:`Cargando diff…`,diffTimeout:`El diff no llegó. Puede que el archivo haya cambiado o que se perdiera la conexión.`,binary:`Archivo binario — diff no mostrado.`,tooLarge:`Archivo demasiado grande para diff.`},c={showPanel:`Mostrar panel Inspector (Flota / Agentes / Auditoría)`,hidePanel:`Ocultar panel Inspector`,label:`Inspector`,openAudit:`Abrir pestaña Auditoría`,tabFleet:`Flota`,tabAgents:`Agentes`,tabAudit:`Auditoría`,collapseAria:`Contraer panel Inspector`,collapseTitle:`Contraer (Esc)`,noAgentsActive:`Ningún agente activo`,agentsAppearHint:`Los agentes aparecen aquí cuando la flota está activa.`,selected:`{{name}} (seleccionado)`},l={header:`Próximos pasos`,autoSubmitting:`envío automático en`,clickToFill:`clic para rellenar`,clickToFillTitle:`Clic para rellenar: {{text}}`,auto:`auto`,willAutoSubmit:`Envio automático tras la cuenta atrás`},u={onlineCount:`{{count}} en línea`,messages:`Mensajes`,compose:`Redactar mensaje`,recipient:`Destinatario`,messageType:`Tipo`,audience:`Audiencia`,audienceAll:`Todos los agentes`,audienceLeaders:`Solo líderes`,priority:`Prioridad`,priorityLow:`Baja`,priorityNormal:`Normal`,priorityHigh:`Alta`,subjectPlaceholder:`Asunto (opcional)`,bodyPlaceholder:`Mensaje`,leadersOnlyHint:`Solo los agentes y las interfaces líderes pueden recibir este mensaje.`,leadersLabel:`líderes`,send:`Enviar`,sending:`Enviando…`,sent:`Enviado`,sendFailed:`No se pudo enviar el mensaje.`,defaultSubject:`Mensaje de WebUI`,deleteAllTitle:`Eliminar todos los mensajes`,deleteAll:`Eliminar todo`,deleting:`Eliminando…`,purgeTitle:`Purgar mensajes obsoletos/huérfanos`,purge:`Purgar`,purging:`Purgando…`,compact:`Compactar`,compacting:`Compactando…`,compactTitle:`Compactación automática: eliminar caducados, leídos por todos y obsoletos`,compactRemoved:`{{count}} eliminados`,compactExpired:`{{count}} caducados`,compactReadByAll:`{{count}} leídos por todos`,compactStale:`{{count}} obsoletos`,compactRemaining:`{{count}} restantes`,newLabel:`NUEVO`,empty:`Aún no hay mensajes.`,offlineCount:`+{{count}} sin conexión`,timeNow:`ahora`,deleteAllConfirmTitle_one:`¿Eliminar {{count}} mensaje?`,deleteAllConfirmTitle_other:`¿Eliminar todos los {{count}} mensajes?`,deleteAllConfirmBody:`El archivo del buzón se trunca para cada agente. Esto no se puede deshacer.`,purgeConfirmTitle:`¿Purgar mensajes obsoletos?`,purgeConfirmBody:`Elimina los mensajes completados de más de 1 día y los incompletos de más de 7 días. Los mensajes activos se conservan.`,type:{note:`Nota`,ask:`Pregunta`,assign:`Asignación`,steer:`Dirigir`,btw:`Por cierto`,broadcast:`Difusión`,status:`Estado`,result:`Resultado`,review:`Revisión`},emptyDetail:`Ningún mensaje seleccionado`,emptyDetailHint:`Haz clic en un mensaje del panel Buzón para verlo aquí.`,readBy:`Leído por`,backToChat:`Volver al chat`,completed:`Completado`,everyone:`todos`,closeTitle:`Cerrar (Esc)`,replyTo:`En respuesta a: {{id}}`,completedBy:`Completado por {{name}}`,completedByAt:`Completado por {{name}} el {{time}}`,outcome:`Resultado:`,task:`Tarea:`,messageNotFound:`Mensaje no encontrado`,messageNotFoundHint:`Este mensaje puede haber sido eliminado o purgado.`,sessionLabel:`Sesión`,sessionScope:`Sesión {{sid}}`,sessionScopeTitle:`Solo entregado a agentes en la sesión {{sid}}`,projectLabel:`Proyecto`,projectScope:`Proyecto (cada agente)`,directScope:`Directo`,scopeLabel:`Ámbito`},d={recentSessions:`Sesiones recientes`,deleteEmptyTitle_one:`¿Eliminar {{count}} sesión vacía?`,deleteEmptyTitle_other:`¿Eliminar {{count}} sesiones vacías?`,deleteEmptyConfirmBody:`Las sesiones sin uso de tokens se eliminan del disco.`,filterPlaceholder:`Filtrar por título, modelo, proveedor…`,clearFilter:`Borrar filtro`,noHistory:`Aún no hay historial`,noHistoryHint:`Tus conversaciones aparecerán aquí`,noMatches:`Sin resultados`,noMatchesHint:`Prueba un filtro distinto`,group:{favorites:`Favoritos`,today:`Hoy`,yesterday:`Ayer`,thisWeek:`Esta semana`,earlier:`Anteriores`},nicknamePlaceholder:`Apodo`,empty:`(vacío)`,resuming:`reanudando…`,active:`activa`,renameTitleNickname:`{{nickname}} — original: {{title}}`,renameTitle:`{{title}}
2
-
3
- Doble clic para renombrar`,unfavorite:`Quitar de favoritos`,markFavorite:`Marcar como favorito`,deleteSessionConfirmTitle:`¿Eliminar la sesión?`,deleteSessionConfirmBody:`"{{name}}" se eliminará del disco. Esto no se puede deshacer.`,deleteSessionTitle:`Eliminar sesión`,rename:`Renombrar sesión`,renameAction:`Renombrar`,resume:`Reanudar sesión`,resumeShort:`Reanudar`,workspaceEyebrow:`Control de sesión`,workspaceTitle:`Sesiones`,workspaceHint:`Busca, inspecciona, fija y reanuda todas las conversaciones del proyecto.`,tabs:{history:`Historial`,live:`Sesiones activas`},filters:{all:`Todas`,favorites:`Favoritas`,active:`Activas`,completed:`Completadas`,issues:`Problemas`},status:{active:`Activa`,completed:`Completada`,error:`Error`,timeout:`Tiempo agotado`,aborted:`Abortada`,saved:`Sesión guardada`},sort:{label:`Ordenar sesiones`,recent:`Más recientes`,tokens:`Más tokens`,activity:`Más actividad`},stats:{sessions:`Sesiones`,tokens:`Tokens`,tools:`Llamadas a herramientas`,files:`Archivos modificados`,errors:`Errores`}},f={actions:{abort:`Detener`,newSession:`Nueva sesión`,export:`Exportar`,compact:`Comprimir`,newSessionConfirm:`¿Está seguro?`,newSessionConfirmMessage:`Todavía hay un trabajo en curso. ¿Iniciar una nueva sesión de todos modos?`,newSessionTitle:`Iniciar una nueva sesión (Ctrl+N)`,exportTitle:`Exportar el chat como markdown (Ctrl+E)`,compactTitle:`Comprimir la ventana de contexto`,clearTitle:`Borrar el contexto (Ctrl+L)`},model:`Modelo`,modelTitle:`Cambiar de modelo (Ctrl+M)`,context:`Contexto`,contextTitle:`Haz clic para un desglose del contexto`,sessionLabel:`Sesión`,stats:{messages:`Mensajes`,elapsed:`Transcurrido`,tokens:`Tokens`,cost:`Coste`,iteration:`Iteración`,agents:`Agentes`,tokensSub:`{{in}} entra / {{out}} sale`,iterationOf:`de {{max}}`,agentsRunning:`{{count}} en ejecución`},plan:`Plan`,planComplete:`{{pct}}% completado`,pinned:`Fijados`,quickSettings:`Ajustes rápidos`,autonomy:`Autonomía`,autonomyOptions:{off:`Desactivado`,suggest:`Sugerir`,auto:`Auto`,eternal:`Perpetuo`,"eternal-parallel":`Perpetuo Paralelo`},yolo:`Modo YOLO`,yoloTitle:`Omitir los diálogos de confirmación de herramientas`,refine:`Refinar prompts`,refineTitle:`Reescribir los prompts antes de enviar`,sound:`Sonido al completar`,soundTitle:`Reproducir un suave tono al terminar una ejecución`,sessionId:`sesión {{id}}`},p={status:{running:`en ejecución`,done:`hecho`,failed:`fallido`,timeout:`tiempo agotado`,stopped:`detenido`},leader:`líder`,providerModel:`Proveedor / Modelo`,elapsed:`Transcurrido`,running:`en ejecución…`,iterations:`Iteraciones`,toolCalls:`Llamadas`,cost:`Coste`,budgetExtensions:`Ampliaciones de presupuesto`,activity:`Actividad`,budgetWarning:`aviso de presupuesto`,contextWindow:`Ventana de contexto`,tokensUsed:`{{used}} / {{max}} tokens`,toolRunning:`en ejecución…`,lastTool:`última herramienta`,error:`Error`,finalOutput:`Salida final`,copyOutput:`Copiar salida`,liveOutput:`Salida en vivo`,waitingOutput:`Esperando salida…`,outputHint:`La salida aparece aquí a medida que el agente transmite texto.`,toolLog:`Registro de herramientas ({{count}} llamadas)`,fail:`fallo`,moreTools:`+{{count}} herramientas más`,cardRunning:`en ejecución {{tool}}`,cardLastTool:`última: {{tool}}`,contextPercent:`Contexto {{pct}}%`,doneCount:`{{count}} hechos`,errCount:`{{count}} err`,statusRunning:`en ejecución`,statusDone:`completado`,statusFailed:`fallido`,statusTimeout:`tiempo agotado`,statusStopped:`detenido`,sessionPrefix:`sesión:`,currentTask:`Tarea actual`,performance:`Rendimiento`,uniqueTools:`Herramientas únicas`,avgPerTool:`media {{ms}}ms por herramienta`,context:`Contexto`,tokens:`Tokens`,ctxUsed:`{{pct}}% usado`,completed:`completado`,budgetWarningTitle:`⚡ Aviso de presupuesto`,hittingLimit:`Alcanza el límite {{kind}} ({{used}}/{{limit}})`,hittingLimitTitle:`⚡ alcanza el límite {{kind}} ({{used}}/{{limit}})`,budgetExt_one:`{{count}} extensión de presupuesto`,budgetExt_other:`{{count}} extensiones de presupuesto`,extendedTimes_one:`El agente amplió su presupuesto {{count}} vez por tareas largas`,extendedTimes_other:`El agente amplió su presupuesto {{count}} veces por tareas largas`,errorLabel:`Error`,failureReason:`Motivo de fallo`,failed:`Fallido`,fleetMonitor:`MONITOR DE FLOTA`,runningCount:`{{count}} en ejecución`,totalAgents_one:`{{count}} agente en total`,totalAgents_other:`{{count}} agentes en total`,noLeader:`sin líder`,closeFleet:`Cerrar monitor de flota`,colName:`Nombre`,colStatus:`Estado`,colActivity:`Actividad`,colIters:`Iter.`,colTools:`Herram.`,colCost:`Coste`,colCtx:`CTX`,colExt:`Ext.`,colReason:`Motivo`,noAgentsActive:`Sin agentes activos`,agentsAppear:`Los agentes aparecen aquí cuando la flota está activa.`,agentTimeline:`Cronología de agentes`,noAgentEvents:`Aún no hay eventos de conversación de agentes.`,navHint:`↑↓ navegar`,selectDetailHint:`↵ seleccionar detalle`,escHint:`Esc deseleccionar / cerrar`,detailedView:`vista detallada`,closeBtn:`✕ cerrar`,selectAgentDetail:`Selecciona un agente para información detallada`,selectAgentBody:`Haz clic en un agente de la lista para métricas detalladas, registros, salida en streaming y más — similar a la vista detallada del historial.`,navigateWord:`navegar`,selectWord:`seleccionar`,deselectWord:`deseleccionar`},m={wsNotConnected:`WebSocket no conectado`,noData:`No se recibieron datos de depuración. El servidor podría no admitir depuración de contexto.`,title:`Desglose del contexto`,windowUsage:`Uso de ventana`,contextMode:`Modo de contexto`,fetching:`Obteniendo el desglose del contexto…`,systemPrompt:`Prompt del sistema`,tools:`Herramientas`,messages:`Mensajes`,tokenAllocation:`Asignación de tokens`,systemTitle:`Sistema: {{tokens}}`,toolsTitle:`Herramientas: {{tokens}}`,messagesTitle:`Mensajes: {{tokens}}`,system:`Sistema`,toolBreakdown:`Desglose de herramientas`,messagesSummary:`Mensajes ({{count}}) — {{total}} tok`,barWithTokens:`Ventana de contexto: {{tokens}} / {{max}} tokens ({{pct}})`,barPct:`Ventana de contexto: {{pct}}`,barClick:` — clic para el desglose`},h={header:`✨ Refinar prompt`,autoSend:`envío automático en {{count}} s`,cancelTitle:`Cancelar (Esc)`,editLabel:`Editar el prompt refinado:`,editPlaceholder:`Editar el prompt refinado...`,useEdit:`Usar edición`,original:`Original`,refined:`Refinado`,yourLanguage:`(tu idioma)`,refinedTitle:`Haz clic o pulsa Intro para usar esta versión`,english:`Inglés`,englishTitle:`Pulsa e para la versión en inglés`,hintRefined:`refinado`,hintEnglish:`Inglés`,hintOriginal:`original`,hintEdit:`editar`,hintRetry:`reintentar`,edit:`Editar`,useRefined:`Usar refinado`,langOriginal:`Original`,langEnglish:`English`,languageTitle:`Switch default refine language — Original vs English`,yolo:`YOLO`,yoloTitle:`Bypass tool confirmation prompts`,refining:`Refining…`,sendAsIs:`Send as-is`,failedHeader:`Refinement failed`,retry:`Retry (more time)`,retryBetter:`Intentar mejor`,retryFallback:`Retry with {{model}}`,pickModel:`Another model…`,pickModelTitle:`Retry refinement with another model`,pickModelHint:`Pick a provider/model to re-run this refinement on. Your session model stays unchanged.`},g={heading:`Especificaciones`,subtitle:`Ver y gestionar el desarrollo guiado por especificaciones`,empty:`No se encontraron specs. Usa {{command}} para crear una.`,tasks:`Tareas ({{count}})`,doneCount:`{{count}} hechas`,runningCount:`{{count}} en ejecución`,pendingCount:`{{count}} pendientes`,runTitle:`Ejecutar esta spec como un tablero Goal en vivo`,run:`Ejecutar`,list:`Lista`,graph:`Grafo`,loadingTasks:`Cargando tareas…`},_={heading:`Verificador de resiliencia F5`,subtitle:`Confirma que la última sesión activa, la transcripción y el estado de la UI sobreviven a una recarga de página. Abre esta vista y pulsa F5 — cada fila verde debe seguir verde.`,recordProbe:`Registrar sonda`,latestSession:`Última sesión activa`,restoredLocal:`Restaurado desde localStorage`,sessionIdExtra:`id de sesión: {{id}}`,noSessionYet:`todavía no se ha iniciado ninguna sesión`,activePointer:`Puntero de sesión activa`,lastVisited:`marca de tiempo lastVisitedAt`,never:`nunca`,persistedEnv:`Entorno persistido`,transcriptRehydrate:`Rehidratación de transcripción`,localTranscript:`Transcripción local recuperada`,messagesExtra:`{{count}} mensajes, {{queued}} en cola`,noMessages:`0 mensajes`,noBleed:`Sin fuga entre sesiones`,bleedExtra:`ligado={{bound}} vs activo={{active}}`,transcriptBinds:`la transcripción se liga a la sesión activa`,uiWorkspace:`Espacio de trabajo UI`,noneValue:`(ninguno)`,payloadSize:`Carga de localStorage (4 claves): {{count}} caracteres`,probeLog:`Registro de sondas`,noProbes:`Aún no hay sondas — pulsa el botón "Registrar sonda" arriba, o F5 en esta vista, para registrar una comprobación de rehidratación.`,simulatedF5:`F5 simulado: reejecutar persist rehydrate`},v={status:{pending:`Pendiente`,in_progress:`En progreso`,review:`Revisión`,failed:`Fallido`,completed:`Hecho`,queued:`En cola`,blocked:`Bloqueado`,cancelled:`Cancelado`},newTaskTitle:`Nueva tarea`,newTaskPlaceholder:`Título de tarea…`,addTask:`Añadir tarea`,empty:`Aún no hay fases — inicia una ejecución Goal para rellenar el tablero.`,summary:`{{phases}} fases · {{tasks}} tareas`,phases:`Fases`,statusTab:`Estado`,dropHere:`Suelta las tareas aquí`,emptySpec:`Aún no hay tareas en esta spec.`,depGraphHeading:`Grafo de dependencias`,worktreePrefix:`worktree: {{branch}}`},y={trendUp:`Aumentando`,trendDown:`Disminuyendo`,trendStable:`Estable`,heading:`Panel de depuración`,subtitle:`Monitorización en tiempo real para WrongStack WebUI`,refreshLabel:`Actualizar:`,lastUpdated:`Última actualización: {{time}}`,fetchFailed:`Error al obtener las métricas`,fileWatcher:`Observador de archivos`,watcherStatus:`Estado del observador`,running:`En ejecución`,stopped:`Detenido`,activeProjects:`Proyectos activos`,projectsWatched:`Proyectos observados`,fileChanges:`Cambios de archivos`,totalDetected:`Total detectado`,filesProcessed:`Archivos procesados`,afterHash:`Tras filtro hash`,broadcastsSent:`Difusiones enviadas`,toClients:`A clientes WebUI`,debounceResets:`Reinicios de antirrebote`,rapidWrites:`Escrituras rápidas sucesivas`,avgDebounce:`Retardo antirrebote medio`,actualDelay:`Retardo real aplicado`,totalDelay:`Retardo total`,sumDelays:`Suma de todos los retardos`,browserPerf:`Rendimiento del navegador`,heapUsed:`Memoria usada`,jsHeap:`Memoria JavaScript`,heapTotal:`Memoria total`,totalHeap:`Tamaño total de memoria`,pageUptime:`Tiempo de actividad`,sinceLoad:`Desde la carga`,rawData:`Datos sin procesar`},b={allowlistTitle:`Lista de modelos permitidos`,modelCount_one:`{{count}} modelo`,modelCount_other:`{{count}} modelos`,using:`En uso`,noModelPicked:`(ningún modelo elegido)`,clearAllowlist:`Borrar lista permitida`,clearAllowlistAria:`Borrar la lista permitida guardada para {{provider}}`,refresh:`Actualizar del servidor`,refreshAria:`Actualizar la lista de modelos para {{provider}}`,probing:`Comprobando…`,searchPlaceholder:`Buscar modelos…`,use:`Usar`,useModelAria:`Usar el modelo {{model}} para {{provider}}`,differsHint:`La lista comprobada difiere de la lista guardada — vuelve a ejecutar {{command}} para persistir.`},x={expandChip:`Expandir {{label}}`,collapseChip:`Contraer {{label}}`,ahead:`{{count}} por delante`,behind:`{{count}} por detrás`,linesAdded:`{{count}} líneas añadidas`,linesDeleted:`{{count}} líneas eliminadas`,untrackedFiles:`{{count}} archivos sin rastrear`,customizeTitle:`Personalizar chips del dock`,dockChips:`Chips del dock`,noActiveGoal:`Ningún objetivo activo`,noActiveGoalDetail:`Inicia un objetivo desde el chat o el comando goal.`},S={leaderBadge:`LÍDER`,iters:`Iter.`,tools:`Herramientas`,activityBins:`Actividad (12 contenedores)`,streamingOutput:`Salida en streaming`,recentTools:`Herramientas recientes`,finalOutput:`Salida final`,heading:`Monitor de agentes`,prevAgent:`Agente anterior`,nextAgent:`Agente siguiente`,closeAria:`Cerrar monitor de agentes`,hintPage:`←→ página`,hintNavigate:`↑↓ navegar lista`,hintEsc:`Esc cerrar`},C={resize:`Cambiar tamaño de terminales`,labelSingular:`Terminal`,labelPlural:`Terminales`,projectShell:`Shell del proyecto`,maxTerminals:`Máximo {{count}} terminales`,newTerminal:`Nuevo terminal`,restart:`Reiniciar terminal activo`,closeAll:`Cerrar todos los terminales`,closeDock:"Cerrar el dock de terminal (Ctrl+`)",closeTab:`Cerrar {{name}}`,processExited:`[proceso terminado con código {{code}}]`},w={liveStream:`Transmisión en vivo`,events_one:`{{count}} evento`,events_other:`{{count}} eventos`,interruptTitle:`Detener cooperativamente a este agente en su próximo paso (no es un kill)`,interrupt:`⏸ Interrumpir`,interrupting:`…`,loading:`Cargando sesión…`,done:`✓✓ hecho`,read:`✓ leído`,delivered:`⏳ entregado`,agent:`Agente`,you:`Tú`,working:`{{name}} · trabajando`,claude:`Claude`,priority:`Prioridad`,placeholder:`{{label}} → esta sesión…`,send:`Enviar`,sendHint:`⌘/Ctrl+Enter para enviar · visible en la próxima iteración del agente`,msgType:{steerLabel:`🔄 Dirigir`,steerHint:`Ajustar el comportamiento durante la tarea`,askLabel:`❓ Preguntar`,askHint:`Pregunta — espera respuesta`,assignLabel:`📋 Asignar`,assignHint:`Una tarea en la que actuar`,noteLabel:`💬 Nota`,noteHint:`Para tu información, no urgente`},sentRunning:`Entregado — el agente en ejecución lo verá en su próximo paso`,sentIdle:`Entregado — el objetivo está inactivo; aparece en su buzón, leído en su próxima ejecución`,sentFailed:`Falló: {{error}}`,interruptReason:`El operador solicitó la detención desde Fleet HQ`,interruptSent:`Interrupción enviada — el agente se detiene en su próximo paso (no es un kill)`,interruptFailed:`Interrupción fallida: {{error}}`},T={empty:`Aún no se han registrado efectos secundarios.`,emptyHint:`Los comandos bash, las instalaciones de paquetes y las solicitudes de red aparecerán aquí.`,heading:`Efectos secundarios`,exportTitle:`Exportar los efectos secundarios filtrados como CSV`,all:`Todos`,colTime:`Hora`,colTool:`Herramienta`,colRisk:`Riesgo`,colDetail:`Detalle`,colOutcome:`Resultado`},E={elapsedHm:`hace {{h}}h {{m}}m`,elapsedMs:`hace {{m}}m {{s}}s`,elapsedS:`hace {{s}}s`,heading:`Monitor de flota`,clientsHeading:`Clientes conectados`,terminal:`Terminal`,webui:`IU Web`,repl:`REPL`,totalConnected:`conectados en total`,mailQueue:`Cola de correo`,total:`Total`,open:`Abiertos`,unread:`No leídos`,agents:`Agentes`,messagesSub:`mensajes`,uncompletedSub:`sin completar`,waitingSub:`en espera`,ofTotal:`de {{count}} en total`,agentRoster:`Lista de agentes`,liveMailActivity:`Actividad de correo en vivo`,noActivity:`Sin actividad reciente`,mailboxAgents:`Agentes del buzón`,noMailboxAgents:`Ningún agente registrado`,moreCount:`+{{count}} más`,agentFallback:`agente`,fleetAgents:`Agentes de la flota`,noFleetAgents:`Ningún agente de flota en ejecución`,iter:`iter.`,mailType:{sent:`Enviado`,delivered:`Entregado`,read:`Leído`,completed:`Completado`}},D={status:{pending:`pendiente`,queued:`en cola`,in_progress:`en ejecución`,blocked:`bloqueado`,review:`revisión`,failed:`fallido`,completed:`hecho`,cancelled:`cancelado`},activityHeading:`Actividad`,feedEmpty:`Aún nada — los eventos aparecen aquí a medida que los agentes toman y completan tareas.`,destroyTitle:`¿Destruir el proyecto SDD?`,destroyDesc:`Esto borra el run y su trabajo. No se puede deshacer (el revert opcional preserva el historial).`,stopRun:`Detener el run`,stopRunAgents_one:`Detener el run ({{count}} agente activo)`,stopRunAgents_other:`Detener el run ({{count}} agentes activos)`,removeWorktreesAll:`Eliminar todos los worktrees git + ramas wstack/ap/* — incluido el trabajo sin mergear`,removeWorktreesCount_one:`Eliminar {{count}} worktree git + ramas wstack/ap/* — incluido el trabajo sin mergear`,removeWorktreesCount_other:`Eliminar {{count}} worktrees git + ramas wstack/ap/* — incluido el trabajo sin mergear`,deleteArtifacts:`Eliminar todos los artefactos SDD (specs, grafo de tareas, board, sesión)`,revertMerged_one:`Revertir también {{count}} commit mergeado`,revertMerged_other:`Revertir también {{count}} commits mergeados`,revertHint:`Añade commits de revert (historial preservado). Se rechaza si el árbol de trabajo está sucio.`,baseBranchFallback:`la rama base`,noteLeaveMerged:`Los commits mergeados quedarán en la rama base. Marca la casilla de arriba para deshacerlos también.`,noteAbandon:`Asegúrate de que realmente quieres abandonar este run.`,destroying:`Destruyendo…`,destroyAll:`Destruir todo`,kanbanBacklog:`Backlog`,kanbanReady:`Listo`,kanbanRunning:`En ejecución`,kanbanReview:`Revisión`,kanbanFailed:`Fallido`,kanbanDone:`Completado`,kanbanEmpty:`vacío`},O={collapseToLines:`Contraer a las primeras {{count}} líneas`,showAllLines:`Mostrar las {{total}} líneas ({{more}} más)`,exitCode:`código de salida:`,jsonLines:`JSON · {{count}} líneas`,collapse:`contraer`,expand:`expandir`},k={heading:`Design Studio — Galería`,kitsCount:`{{count}} kits`,searchPlaceholder:`Buscar kits…`,stackTitle:`Stack para Use + Materialize`,wrote:`Escrito {{path}}`,materializeFailed:`Materialize falló: {{error}}`,verifyError:`Verificar: {{error}}`,verifyOffPalette:`Verificar: {{pct}}% en paleta — {{count}} fuera de paleta en {{files}} archivo(s)`,verifyClean:`Verificar: limpio ✓ ({{files}} archivo(s) en paleta)`,writing:`Escribiendo archivo de tema…`,scanning:`Escaneando archivos de UI…`,active:`Activo`,reapply:`Reaplicar`,use:`Usar`,materializeTitle:`Escribir tokens en un archivo de tema {{stack}}`,materialize:`Materializar`,verifyTitle:`Escanear archivos de UI en busca de colores fuera de paleta`,verify:`Verificar`,colors:`Colores`},A={summary_one:`{{count}} fase · {{pct}}% completado`,summary_other:`{{count}} fases · {{pct}}% completado`,switchBoard:`Cambiar tablero`,boardsCount_one:`{{count}} tablero…`,boardsCount_other:`{{count}} tableros…`,toggleAutonomousTitle:`Activar/desactivar modo autónomo`,autonomous:`Autónomo`,manual:`Manual`,resumeTitle:`Reanudar la ejecución`,pauseTitle:`Pausar la ejecución`,resume:`Reanudar`,pause:`Pausar`,stopTitle:`Detener la ejecución — aborta los agentes en vuelo inmediatamente`,stop:`Detener`,newTitle:`Limpiar este tablero e iniciar una nueva ejecución Goal`,newLabel:`Nuevo`,revertConfirm:`¿Revertir los commits de la ejecución?`,revertTitle:`Deshacer esta ejecución — git-revert de los commits y eliminar sus worktrees`,revert:`Revertir`,goal:`Objetivo`,planning:`Planificando fases…`,planningBody:`Tu objetivo fue recibido. WrongStack lo desglosa en fases y tareas — el tablero aparece aquí en cuanto el plan está listo.`,startHeading:`Iniciar un plan de fases`,startBody:`Describe lo que quieres construir. WrongStack planificará fases y tareas, luego las ejecutará — observa y dirige la ejecución en el tablero.`,startPlaceholder:`p.ej. Crea una API REST de gestión de usuarios con Express y SQLite...`,isolateLabel:`Aislar cada fase en su propio worktree de git`,startButton:`Iniciar Goal`,ctrlHint:`Ctrl+Enter para iniciar`,isolateOn:`las fases se ejecutan en worktrees aislados, fusionados con squash`,isolateOff:`las fases se ejecutan directamente en la rama actual`,lanes:`Carriles`,graph:`Grafo`,planningAck:`🚀 **Goal** — entendido. Planificando fases para tu objetivo…`},j={noObservers:`Sin observadores en vivo`,observerTitle:`Unirse como observador de solo lectura (Fase 1)`,observerRole:`observador`,annotatorTitle:`Unirse como anotador — deja notas en las llamadas (Fase 2)`,annotatorRole:`anotador`,controllerTitle:`Unirse como controlador — puede pausar el agente (Fase 3)`,controllerRole:`controlador`,errorPrefix:`Collab: {{error}}`,dismiss:`cerrar`,observers_one:`{{count}} observador`,observers_other:`{{count}} observadores`,annotationsTitle:`{{count}} anotación(es) abierta(s) — anotadores revisando`,notes_one:`{{count}} nota`,notes_other:`{{count}} notas`,pausedTitle:`El agente está en pausa — un controlador está revisando`,paused:`en pausa`,joinedTitle:`Se unió {{time}}`,grantTitle:`Ceder control — promocionar a este participante a controlador`,injectTitle:`Inyectar un resultado sintético para una llamada en curso`,inject:`Inyectar`,resumeTitle:`Reanudar el agente`,resume:`Reanudar`,pauseTitle:`Pausar el agente antes de la próxima llamada`,pauseAgent:`Pausar agente`,leaveTitle:`Salir de la sesión de observación`,leave:`Salir`,injectToolResult:`Inyectar resultado`,close:`cerrar`,targetTool:`id tool_use objetivo`,targetPlaceholder:`elige una llamada en curso o escribe un id tool_use`,toolFallback:`herramienta`,noPendingTools:`Sin llamadas en curso — escribe un id tool_use o pausa el agente primero.`,resultContent:`Contenido del resultado`,resultPlaceholder:`Resultado sintético dado al agente en lugar de ejecutar la herramienta`,markError:`marcar como error`,reasonPlaceholder:`razón (registro de auditoría)`,queueInjection:`Encolar inyección`,controllerInjection:`inyección controlador`},M={reconnecting:`Reconectando al backend (intento {{attempt}}) — reintentando en {{remaining}} s`,disconnected:`Desconectado del backend`,retry:`Reintentar ahora`,retryTitle:`Reintentar conexión ahora`,dismissTitle:`Cerrar (el chip de la barra superior sigue mostrando el estado)`},N={modePrefix:`modo:`,activeTitle:`Modo activo`,heading:`Modo`,defaultName:`Predeterminado`,defaultDesc:`Comportamiento estándar del agente`},P={clickTitle:`Haz clic para el desglose de costes por turno`,heading:`Desglose de costes`,noPricing:`Sin tarifa para el modelo actual — los valores de coste son cero.`,noTurns:`Aún no hay turnos completados. Ejecuta un prompt para ver el coste por turno aquí.`,topExpensive_one:`Turno más caro`,topExpensive_other:`Los {{count}} turnos más caros`},F={runDefault:`Predeterminado del run`,useRunDefault:`Usar predeterminado del run`,filterPlaceholder:`Filtrar modelos…`,loading:`Cargando modelos…`,noMatch:`Sin coincidencias`},I={heading:`Cambiar modelo`,filterPlaceholder:`Filtrar proveedores y modelos…`,noSavedProviders:`Sin proveedores guardados — registra primero una clave en Ajustes.`,active:`activo`},L={todos:`Por hacer`,tasks:`Tareas`,plan:`Plan`},R={toggleAria:`Alternar: {{content}}`,removeTitle:`Eliminar tarea`,removeAria:`Eliminar "{{content}}"`,completedCount_one:`{{count}} completada`,completedCount_other:`{{count}} completadas`},z={start:`Iniciar`,complete:`Completar`,retry:`Reintentar`,assign:`Asignar`,assignTitle:`Asignar agente`,unassigned:`Sin asignar`,statusPending:`Pendiente`,statusInProgress:`En curso`,statusBlocked:`Bloqueado`,statusFailed:`Fallido`,statusReview:`Revisión`,statusDone:`Completado`,startTitle:`Iniciar`,completeTitle:`Completar`,fail:`Fallar`,failTitle:`Marcar como fallido`,boardCount:`{{total}} tareas · {{done}} completadas`},B={toolCalls_one:`{{count}} llamada`,toolCalls_other:`{{count}} llamadas`},V={removeTitle:`Eliminar referencia`,linesCount_one:`{{count}} línea`,linesCount_other:`{{count}} líneas`},H={statusOpen:`Abierto`,statusInProgress:`En curso`,statusDone:`Completado`,startTitle:`Iniciar`,doneTitle:`Marcar como completado`,reopenTitle:`Reabrir`,reopen:`Reabrir`},U={heading:`@ Archivos`,noMatch:`Ningún archivo coincide con "{{query}}"`,searching:`Buscando en el proyecto…`},W={dismiss:`Cerrar`},G={placeholder:`Buscar en el chat…`,prevHit:`Coincidencia anterior`,nextHit:`Coincidencia siguiente`,close:`Cerrar (Esc)`},K={statusPending:`Pendiente`,statusReady:`Listo`,statusRunning:`En ejecución`,statusPaused:`En pausa`,statusCompleted:`Completado`,statusFailed:`Fallido`,statusSkipped:`Omitido`,heading:`Fases`,autonomousOn:`● Autónomo`,autonomousOff:`○ Manual`,autonomousOnTitle:`Modo autónomo activo — clic para pausar`,autonomousOffTitle:`Modo manual — clic para activar el autónomo`,overallProgress:`Progreso general`,tasksSuffix:`{{done}}/{{total}} tareas`,agentsSuffix_one:`{{count}} agente`,agentsSuffix_other:`{{count}} agentes`},q={triggerTitle:`Modo de ventana de contexto`,ctxPrefix:`ctx:`,opsHeading:`Operaciones de contexto`,compactNow:`Compactar ahora`,compactNowDesc:`Elidir salida de herramienta antigua`,compactAggressive:`Compactación agresiva`,compactAggressiveDesc:`Elisión máxima ahora`,repairContext:`Reparar contexto`,repairDesc:`Corregir bloques tool-use huérfanos`,debugContext:`Depurar contexto`,debugDesc:`Desglose de tamaño por sección`,windowHeading:`Ventana de contexto`,keepElide:`mantener {{k}} recientes · elidir {{t}}+ tokens`,fallbackName:`Equilibrado`,fallbackDesc:`Compacción rolling por defecto`},J={kindAssistant:`Asistente`,kindThinking:`Pensando`,kindToolCall:`Llamada de herramienta`,kindToolResult:`Resultado de herramienta`,kindError:`Error`,kindStatus:`Estado`,kindSystem:`Sistema`,title:`Historial del chat`,copyTitle:`Copiar historial de chat del agente`,empty:`Aún no hay historial de chat para este agente.`},Y={heading:`Modo de autonomía`,titlePrefix:`Autonomía: {{label}}`,descOff:`Control manual total — el agente espera tu entrada.`,descSuggest:`El agente sugiere los siguientes pasos pero espera aprobación.`,descAuto:`El agente continúa automáticamente tras una breve espera de confirmación.`,descEternal:`El agente funciona de forma autónoma hasta completar el objetivo.`,descEternalParallel:`Ejecución autónoma multi-agente — modo flota.`},X={heading:`Cola de mensajes`,subtitle:`{{count}} en cola · mensajes enviados antes de que el agente termine`,btwTitle:`Por cierto — enviado como seguimiento sin interrumpir el agente en ejecución`,steerTitle:`Guiar — interrumpe el agente en ejecución y lo redirige con este mensaje`,queueTitle:`En cola — retenido hasta que termine el run del agente, luego enviado en orden`,sortNewestTitle:`Ordenado del más reciente — clic para ordenar del más antiguo`,sortOldestTitle:`Ordenado del más antiguo — clic para ordenar del más reciente`,newest:`Más reciente`,oldest:`Más antiguo`,clear:`Vaciar`,clearTitle:`Borrar todos los mensajes en cola`,closeTitle:`Cerrar`,emptyTitle:`La cola está vacía`,emptyBody:`Usa los botones btw / steer / añadir a cola junto a la entrada para añadir mensajes. Los elementos en cola se envían en orden cuando termina el run del agente.`,removeTitle:`Quitar de la cola`,footer:`Los mensajes se envían en orden de llegada cuando termina el run del agente. Usa el orden para ver los más recientes primero.`},Z={heading:`Puntos de control de sesión`,countSuffix_one:`{{count}} punto de control`,countSuffix_other:`{{count}} puntos de control`,description:`Rebobina la sesión a cualquier punto de control. Los mensajes y cambios de archivos revierten a ese punto — el LLM continúa desde allí como si nada hubiera pasado después.`,emptyTitle:`Aún no hay puntos de control`,emptyBody:`Los puntos de control se crean automáticamente cada vez que envías un mensaje. Envía algunos mensajes y vuelve.`,latest:`reciente`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msgs`,footerPre:`Clic en cualquier punto de control para rebobinar`,footerPost:`para cerrar`},Q={statusActive:`Activo`,statusPaused:`En pausa`,statusDone:`Completado`,statusFailed:`Fallido`,statusAbandoned:`Abandonado`,heading:`Objetivo`,refined:`Refinado`,progress:`Progreso`,iterations:`iteraciones`,deliverables:`Entregables`,recentActivity:`Actividad reciente`},$={cleanTitle_one:`¿Limpiar {{count}} worktree huérfano?`,cleanTitle_other:`¿Limpiar {{count}} worktrees huérfanos?`,cleanMessage:`Elimina a la fuerza cada worktree git + rama wstack/ap sobrante de runs anteriores. El trabajo sin mergear en ellos se pierde.`,cleanConfirm:`Limpiar huérfanos`,orphanCount_one:`{{count}} worktree huérfano de runs anteriores`,orphanCount_other:`{{count}} worktrees huérfanos de runs anteriores`,andMore:`…y {{count}} más`,cleanButtonTitle:`Eliminar a la fuerza todos los worktrees + ramas huérfanos`,removed_one:`✓ {{count}} worktree huérfano eliminado.`,removed_other:`✓ {{count}} worktrees huérfanos eliminados.`,cleanupFailed:`limpieza fallida`,lanesHeading:`Worktrees`,base:`base`,isolatedCount_one:`{{count}} aislado`,isolatedCount_other:`{{count}} aislados`,statusAllocating:`asignando`,statusActive:`activo`,statusCommitting:`commitiendo`,statusMerging:`mergeando`,statusMerged:`mergeado`,statusConflict:`conflicto`,statusFailed:`fallido`,conflictBadge:`CONFLICTO`,graphAria:`Grafo de ramas worktree desde {{base}}`,mergedLabel:`✓ mergeado → {{base}}`},ee={heading:`Procesos en ejecución`,subtitle:`{{active}} activos · {{total}} total`,killAll:`Matar todos`,emptyTitle:`Sin procesos rastreados`,emptyBody:`Los procesos aparecen aquí cuando el agente ejecuta herramientas bash o exec. Los procesos activos muestran un LED pulsante.`,pidLabel:`PID {{pid}}`,protected:`protegido`,protectedTitle:`Protegido — sobrevive a kill/killAll`,background:`en segundo plano`,backgroundTitle:`Tarea desvinculada — continúa tras cerrar la CLI/WebUI`,confirmKillBackground:`¿Terminar el proceso desvinculado en segundo plano {{pid}}?`,confirmKillAll:`¿Terminar los {{count}} procesos en ejecución?`,killTitle:`Matar PID {{pid}}`},te={tooLarge:`Diff omitido (archivo demasiado grande para mostrar en línea).`},ne={placeholder:`Añadir modelo de respaldo…`,emptyHint:`Se prueban en orden cuando el modelo principal limita o se atasca.`,moveUp:`Subir`,moveDown:`Bajar`},re={loading:`Cargando sesiones...`,apiUnavailable:`API de sesión no disponible:`,empty:`Sin sesiones en vivo. Abre otra instancia wstack para verla aquí.`,heading:`Sesiones en vivo ({{count}})`,autoRefresh:`actualización cada 5 s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} iter · {{tools}} herramientas · {{ago}}`,andMore:`... y {{count}} más`,noAgents:`Sin agentes`},ie={applyTitle:`Escribir la versión editada al disco`,applying:`Aplicando…`,applied:`Aplicado`,apply:`Aplicar`},ae={showStack_one:`Mostrar rastreo de pila ({{count}} marco)`,showStack_other:`Mostrar rastreo de pila ({{count}} marcos)`,hideStack_one:`Ocultar rastreo de pila ({{count}} marco)`,hideStack_other:`Ocultar rastreo de pila ({{count}} marcos)`},oe={liveHeading:`Live`,clients:`Clientes`,agents:`Agentes`,model:`Modelo`,mode:`Modo`,toolCalls:`Llamadas`,displayHeading:`Visualización`,statsHud:`HUD de stats`,legends:`Leyendas`,minimap:`Minimapa`,zoomControls:`Controles de zoom`,animateWires:`Animar cables`,backgroundHeading:`Fondo`,bgDots:`Puntos`,bgLines:`Líneas`,bgCross:`Cruz`,bgNone:`Ninguno`},se={noParams:`(sin parámetros)`,itemCount_one:`{{count}} elemento`,itemCount_other:`{{count}} elementos`,keyCount_one:`{{count}} clave`,keyCount_other:`{{count}} claves`},ce={roleYou:`Tú`,roleTool:`Herramienta`,roleThinking:`Pensando`,roleAssistant:`Asistente`,inputLabel:`Entrada`,downloadTitle:`Descargar como archivo`,empty:`(vacío)`,hideDetails:`Ocultar detalles`,showDetails:`Mostrar detalles`,showDetailsLines_one:`Mostrar detalles ({{count}} línea)`,showDetailsLines_other:`Mostrar detalles ({{count}} líneas)`,editHint:`⌘/Ctrl+Enter para guardar · Esc para cancelar`,saveResend:`Guardar y reenviar`,thinkingProcess:`Proceso de pensamiento`,thinkingMeta:`iter {{iter}} · {{dur}} · {{lines}}`,replay:`repetición`,linesSuffix_one:`{{count}} línea`,linesSuffix_other:`{{count}} líneas`,copyLog:`Copiar registro`,showFullLog:`Mostrar registro completo`,typing:`Escribiendo…`,noContent:`Sin contenido`,imageNotRetained:`La vista previa de la imagen no se conserva tras recargar`,failedToSend:`⚠ Error al enviar`,autoPaused:`⚠️ _Avance automático en pausa — alcanzado el máximo de turnos automáticos consecutivos. Escribe algo para continuar (la autonomía permanece activa)._`,autoLoopHalted:`⚠️ _Envío automático detenido porque se repitió el mismo mensaje. La autonomía sigue activa; escribe un mensaje nuevo para reiniciar la protección contra bucles._`,rsIterations:`Iteraciones: {{n}}`,rsTools:`Llamadas: {{n}}`,rsElapsed:`Transcurrido: {{s}}`,rsCost:`Coste: {{c}}`,useInput:`Entrada: {{n}}`,useOutput:`Salida: {{n}}`,useCacheRead:`Lectura cache: {{n}}`,useCost:`Coste: {{c}}`,renderedLabel:`Renderizado`,rawLabel:`Raw`,showRenderedTitle:`Mostrar markdown renderizado`,showRawTitle:`Mostrar fuente markdown pura`,editTitle:`Editar y reenviar este prompt`,editLabel:`Editar`,unpinTitle:`Desfijar`,pinTitle:`Fijar esta respuesta`,pinnedLabel:`Fijado`,pinLabel:`Fijar`,regenerateTitle:`Regenerar esta respuesta`,retryLabel:`Reintentar`},le={toolFallback:`herramienta`,toolFailed:`Herramienta fallida`},ue={heading:`Atajos de teclado`,footerPre:`Pulsa`,footerPost:`en cualquier momento para reabrir esta lista.`,sectionGlobal:`Global`,sectionTuiParity:`Paridad de panel TUI`,sectionFleet:`Flota y agentes`,sectionChatInput:`Entrada del chat`,sectionChat:`Chat`,sectionChatNav:`Navegación del chat (al no escribir)`,dCommandPalette:`Abrir paleta de comandos`,dShowOverlay:`Mostrar este overlay de atajos`,dToggleSidebar:`Alternar barra lateral`,dOpenPanel:`Abrir panel lateral (Sesión, Agentes, Historial, Archivos, Cambios, Buzón, Skills, Office Map)`,dDesignStudio:`Abrir panel de Design Studio`,dWorktrees:`Abrir panel de Worktrees`,dSettings:`Abrir Configuración`,dMemory:`Abrir Memory`,dFocusInput:`Focalizar la entrada de mensajes`,dSessionPanel:`Panel de sesión`,dFleetOverlay:`Overlay del monitor de flota`,dAgentsOverlay:`Overlay del monitor de agentes`,dWorktreeMonitor:`Monitor de worktrees`,dPlanPanel:`Panel de plan`,dTodosPanel:`Panel de tareas`,dQueuePanel:`Panel de cola`,dProcessMonitor:`Monitor de procesos`,dGoalPanel:`Panel de objetivo`,dSessionsDashboard:`Panel de sesiones`,dOfficeMap:`Office map del coordinador`,dDockPicker:`Selector de chips del dock`,dOpenFleet:`Abrir overlay del monitor de flota`,dOpenAgents:`Abrir overlay del monitor de agentes`,dNavigateAgents:`Navegar agentes en el monitor`,dSelectAgent:`Seleccionar agente focalizado`,dCloseOverlay:`Cerrar overlay activo`,dSendMessage:`Enviar mensaje`,dNewline:`Insertar salto de línea`,dRecallPrev:`Recuperar prompt anterior (entrada vacía)`,dRecallNext:`Recuperar prompt siguiente`,dSlashPopup:`Abrir popup de comandos slash`,dAutocomplete:`Autocompletar comando resaltado`,dDismissPopup:`Cerrar popup / limpiar entrada`,dSearchChat:`Buscar en el chat actual`,dClearContext:`Limpiar contexto (igual que /clear)`,dNewSession:`Iniciar nueva sesión (igual que /new)`,dExportMarkdown:`Exportar chat como markdown`,dModelSwitcher:`Overlay selector rápido de modelo`,dCompactDensity:`Alternar densidad UI compacta`,dAbortRun:`Abortar el run actual (durante ejecución)`,dFocusNext:`Focalizar mensaje siguiente (alias: ↓)`,dFocusPrev:`Focalizar mensaje anterior (alias: ↑)`,dJumpFirst:`Ir al primer mensaje`,dJumpLast:`Ir al último mensaje`,dCopyFocused:`Copiar texto del mensaje focalizado`,dClearFocused:`Borrar mensaje focalizado`},de={titleFallback:`Board SDD en vivo`,defaultModelTitle:`Modelo worker por defecto del run (los overrides por tarea tienen prioridad)`,graphLabel:`Grafo`,kanbanLabel:`Kanban`,retryAllTitle:`Volver a poner cada tarea fallida en pending`,retryFailed:`Reintentar fallidas ({{count}})`,resume:`Reanudar`,pause:`Pausar`,stop:`Detener`,cleanTitle:`Eliminar los worktrees git + ramas wstack/ap del run`,cleanWorktrees:`Limpiar worktrees`,rollbackTitle:`Revertir {{count}} commit(s) mergeado(s) en {{base}}`,rollback:`Rollback ({{count}})`,stopping:`Deteniendo…`,destroying:`Destruyendo…`,destroyTitle:`Detener, eliminar todos los worktrees, revertir opcionalmente los commits mergeados y borrar el proyecto SDD`,destroy:`Destruir`,statDone:`hechos`,statRunning:`en curso`,statFailed:`fallidos`,statWave:`oleada`,statElapsed:`transcurrido`,noActiveWorkers:`sin workers activos`,deadlock:`Interbloqueo — tareas bloqueadas por trabajo fallido:`,noRunTitle:`Sin run SDD activo.`,noRunBody:`Inicia uno desde el asistente New SDD Project o vía /sdd execute en la CLI — los agentes aparecen aquí en vivo, cada uno en un worktree aislado.`,clickTaskHint:`clic en una tarea para detalles`,lcClean:`Limpieza`,lcRollback:`Rollback`,lcDestroy:`Destrucción`,lcFailed:`{{op}} falló: {{reason}}`,lcUnknownError:`error desconocido`,lcWorktrees_one:`{{count}} worktree eliminado`,lcWorktrees_other:`{{count}} worktrees eliminados`,lcCommits_one:`{{count}} commit revertido`,lcCommits_other:`{{count}} commits revertidos`,lcDeleted:`borrado {{items}}`,lcNothing:`nada que hacer`,lcNote:`{{op}}: {{body}} — nota: {{reason}}`,lcOk:`{{op}}: {{body}}`},fe={backTitle:`Volver a la actividad`,expandTitle:`Ampliar detalles de la tarea`,collapseTitle:`Contraer detalles de la tarea`,eventLog:`Registro de eventos de la tarea`,newestFirst:`más reciente primero`,noEvents:`Aún no se ha registrado actividad para esta tarea.`,workingOn:`trabajando en esta tarea`,assigned:`asignado`,metaPriority:`Prioridad`,metaType:`Tipo`,metaDuration:`Duración`,metaElapsed:`Transcurrido`,metaRetries:`Reintentos`,metaWorktree:`Worktree`,workerModel:`Modelo worker`,runDefault:`predeterminado del run: {{model}}`,runDefaultPlaceholder:`Predeterminado del run`,runDefaultPlaceholderModel:`Predeterminado del run ({{model}})`,verificationCmd:`Comando de verificación`,gatesCompletion:`valida la finalización (exit 0)`,verifyPlaceholder:`ej. pnpm vitest run path/to/file`,addVerify:`+ Añadir comando de verificación`,description:`Descripción`,timeline:`Cronología`,dependsOn:`Depende de`,blocks:`Bloquea`,newWorkerPlaceholder:`Nombre del nuevo worker…`,confirmStop:`¿Detener esta tarea en ejecución?`,confirmDelete:`¿Eliminar esta tarea del run?`,retryTitle:`Volver a poner esta tarea en pending`,reassign:`Reasignar`,stopTitle:`Abortar el worker en esta tarea`,splitTitle:`Dividir esta tarea en subtareas delegadas a workers separados`,split:`Dividir`,splitHint:`Una subtarea por línea — Título :: descripción (descripción opcional)`,splitPlaceholder:`Escribe la capa de datos :: añade el repositorio
4
- Conecta la UI`,splitInto:`Dividir en subtareas`,deleteTitle:`Quitar esta tarea no iniciada del run`},pe={phaseStart:`Iniciar`,phaseInterview:`Entrevista`,phaseSpecReview:`Revisión spec`,phasePlanning:`Planificación`,phaseTaskReview:`Revisión tareas`,phaseRunning:`En ejecución`,phaseDone:`Completado`,titleFallback:`Nuevo proyecto SDD`,questionsSuffix:`{{cur}}/{{max}} preguntas`,tasksSuffix:`{{count}} tareas`,runCfgTitle:`Config del run — modelo por defecto + cadena de respaldo`,modelsLabel:`Modelos`,startRun:`Iniciar run`,defaultWorkerModel:`Modelo worker por defecto`,leaderDefaultPlaceholder:`Leader / defecto de sesión`,useSessionDefault:`Usar defecto de sesión`,fallbackChain:`Cadena de respaldo`,appliesToAll:`Se aplica a cada tarea. Override por tarea desde el board live tras iniciar.`,parallelAgents:`Agentes paralelos`,isolateWorktrees:`Aislar en worktrees git`,worktreeOn:`Cada tarea corre en su propio worktree, squash-mergeado al completar.`,worktreeOff:`Las tareas corren directamente en la rama actual (sin aislamiento).`,goalPrompt:`¿Qué quieres construir?`,goalPlaceholder:`ej. Añadir login OAuth (Google + GitHub) con gestión de sesión`,startingInterview:`Iniciando entrevista…`,startInterview:`Iniciar entrevista`,introBody:`Un agente aislado te entrevista para construir una spec, la descompone en un grafo de tareas ordenado por dependencias, luego una flota multi-agente real lo ejecuta — síguelo en vivo en el board.`,taskGraphSummary:`Grafo de tareas · {{count}} tareas, ordenadas por dependencias`,dragToExplore:`arrastra para explorar`,show:`mostrar`,goalLabel:`Objetivo`,implementationPlan:`Plan de implementación`,approveSpec:`Aprobar spec → planificar implementación`,approveTasks:`Aprobar tareas`,approvePlan:`Aprobar plan`,answerPlaceholder:`Responde a la pregunta…`,changePlaceholder:`Pedir un cambio…`},me={emptyDir:`vacío`,loadFailed:`Error al cargar archivos: {{error}}`,expandAllTitle:`Expandir todas las carpetas`,expandAll:`Expandir todo`,collapseAllTitle:`Contraer todas las carpetas`,collapse:`Contraer`,folders_one:`{{count}} carpeta`,folders_other:`{{count}} carpetas`,currentDirTitle:`Directorio actual: {{path}}`,navigateToTitle:`Navegar a {{path}}`,filesSuffix_one:`{{count}} archivo`,filesSuffix_other:`{{count}} archivos`,goToDir:`ir al directorio`,navigateParentTitle:`Navegar al directorio padre de {{path}}`,parentDirectory:`directorio padre`,noFiles:`No se encontraron archivos`,copyAbsPath:`Copiar ruta absoluta`,copyRelPath:`Copiar ruta relativa`,openInTerminal:`Abrir en terminal`,openInFileManager:`Abrir en gestor de archivos`,mentionInChat:`Mencionar en el chat`,copyPath:`Copiar ruta`},he={sendSelectionAction:`Enviar selección al chat`,noFilesOpen:`Sin archivos abiertos`,selectToEdit:`Selecciona un archivo del explorador para editar`,sendSelectedTitle:`Enviar líneas seleccionadas al chat`,mentionFileTitle:`Mencionar este archivo en el chat`,sendToChat:`Enviar al chat`,mentionFile:`Mencionar archivo`,loadingEditor:`Cargando editor…`,selectTab:`Selecciona una pestaña para ver su contenido`},ge={title:`Actividad del archivo`,overview:`Resumen`,changes:`Cambios`,context:`Contexto`,logs:`Registros`,lines:`líneas`,resizeHint:`Arrastra para redimensionar · doble clic para restablecer`,refresh:`Actualizar evidencia del archivo`,evidenceCount_one:`{{count}} evento`,evidenceCount_other:`{{count}} eventos`,mutations30m:`Ediciones · 30 min`,sessions:`Sesiones`,actors:`Actores`,linkedWork:`Trabajo vinculado`,workLinks:`Kanban / tarea`,recentActivity:`Actividad reciente del archivo`,events:`eventos`,noEvidence:`Aún no hay actividad atribuida a este archivo.`,noSessions:`Aún no hay atribución de sesión.`,noActors:`Aún no hay atribución de actor.`,noWorkLinks:`No hay vínculo Kanban, SDD o tarea registrado.`,taskOrTodo:`Task / tarea`,loadingEvidence:`Cargando evidencia del archivo…`,gitToBuffer:`Git HEAD → búfer actual de Monaco`,savedToBuffer:`Última versión guardada → búfer actual de Monaco`,unsaved:`búfer sin guardar`,level:{quiet:`estable`,active:`activo`,churn:`alta rotación`},analysisTitle:{quiet:`Sin rotación reciente`,active:`Este archivo está cambiando`,churn:`Cambios repetidos detectados`},analysisBody:{quiet:`No se registraron cambios atribuidos en los últimos 30 minutos.`,active:`{{mutations}} cambios de {{actors}} actores en {{sessions}} sesiones durante los últimos 30 minutos.`,churn:`Alta rotación: {{mutations}} cambios de {{actors}} actores en {{sessions}} sesiones. Revisa el trabajo solapado antes de la siguiente edición.`}},_e={loading:`Cargando analíticas…`,heading:`Panel de analíticas`,autoRefresh:`actualización cada 10 s`,liveSessions:`Sesiones en vivo`,agents:`Agentes`,agentsActive:`{{count}} activos`,totalEvents:`Eventos totales`,categoriesSub:`{{count}} categorías`,toolCalls:`Llamadas`,iterationsSub:`{{count}} iteraciones`,sessionCost:`Coste de sesión`,tokensSub:`{{input}} entrada / {{output}} salida`,sessionDuration:`Duración de sesión`,messagesSub:`{{count}} mensajes`,eventsByCategory:`Eventos por categoría`,noEvents:`Aún no hay eventos registrados.`,topEvents:`Eventos principales`,activeSessionUsage:`Uso de sesión activa`,provider:`Proveedor`,model:`Modelo`,inputTokens:`Tokens de entrada`,outputTokens:`Tokens de salida`,cacheRatio:`Ratio de caché`,filesRead:`Archivos leídos`,noSession:`Sin sesión activa o esperando datos…`,healthErrors:`Salud y errores`,errorEvents:`Eventos de error`,warningEvents:`Eventos de aviso`,cacheHitRate:`Tasa de aciertos de caché`,totalCategories:`Categorías totales`,waitingData:`Esperando datos…`,recentEvents:`Eventos recientes`,noRecentEvents:`Sin eventos recientes. Interactúa con la UI para generar eventos.`},ve={heading:`Biblioteca de prompts`,searchPlaceholder:`Buscar prompts…`,newPrompt:`+ Nuevo prompt`,all:`Todos`,recent:`🕘 Recientes`,favorites:`★ Favoritos`,noMatch:`Ningún prompt coincide.`,newPromptHeading:`Nuevo prompt`,titlePlaceholder:`Título *`,descPlaceholder:`Descripción de una línea`,categoryPlaceholder:`Categoría`,tagsPlaceholder:`etiquetas, separadas, por coma`,contentPlaceholder:`Contenido del prompt * — usa {{name}} para variables`,variables:`Variables`,addVar:`+ var`,varNamePlaceholder:`nombre`,varDescPlaceholder:`descripción`,removeVarTitle:`Eliminar variable`,required:`obligatorio`,multiline:`multilínea`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Guardar prompt`,saveFailed:`No se pudo guardar el prompt.`,titleContentRequired:`El título y el contenido son obligatorios.`,toggleFavoriteTitle:`Alternar favorito`,selectOption:`— elegir —`,fillMissing:`Rellenar: {{missing}}`,insertIntoChat:`Insertar en el chat`,selectPromptHint:`Selecciona un prompt para previsualizar e insertar.`},ye={scopeProject:`Proyecto`,scopeGlobal:`Global`,scopeBundled:`Integrado`,timeoutError:`Tiempo de espera agotado. Inténtalo de nuevo.`,updateFailed:`Actualización fallida`,saveFailed:`Guardado fallido`,uninstallFailed:`Desinstalación fallida`,noSkillSelected:`Ninguna habilidad seleccionada`,selectSkillHint:`Selecciona una habilidad de la barra lateral para ver su documentación`,goToChat:`Ir al chat`,openSourceRepo:`Abrir repo de origen`,copySourceUrl:`Copiar URL de origen`,updatedLabel:`↑ Actualizado: {{list}}`,upToDateLabel:`— Actualizado: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Buscar actualizaciones`,exportTitle:`Exportar habilidad como .md`,editTitle:`Editar habilidad`,uninstallTitle:`Desinstalar habilidad`,closeTitle:`Cerrar e ir al chat`,backTitle:`Atrás`,forwardTitle:`Adelante`,relatedFiles:`Archivos relacionados`,references:`Referencias`,goToSkillTitle:`Ir a {{name}}`,loadingContent:`Cargando contenido…`,editingLabel:`Editando {{name}}`,editStats:`{{lines}} líneas · {{words}} palabras · {{chars}} caracteres`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Borrador guardado`,draftRestored:`Borrador restaurado`,discardDraft:`Descartar borrador`,splitViewTitle:`Vista dividida`,hidePreviewTitle:`Ocultar vista previa`,contentPlaceholder:`Contenido de la habilidad (markdown)...`,loadFailed:`Error al cargar el contenido`,noContent:`Sin contenido disponible`,uninstallSkillHeading:`Desinstalar habilidad`,uninstallConfirm:`¿Desinstalar {{name}}?`,uninstallRemovePath:`Esto eliminará la habilidad de {{path}} y no se puede deshacer.`,uninstallAction:`Desinstalar`},be={sessionStats:`Estadísticas de sesión`,clients:`Clientes`,input:`Entrada`,output:`Salida`,cost:`Coste`,agentsSuffix:`agentes`,upPrefix:`activo {{time}}`,webuiClient:`Cliente WebUI`,disconnected:`Desconectado`,connected:`Conectado`,tuiClient:`Cliente TUI`,terminal:`Terminal`,repl:`REPL`,coordinator:`COORDINADOR`,fleetSummary:`Resumen de flota`,toolCallsLabel:`Llamadas`,tokensLabel:`Tokens`,coordinatingFleet:`Coordinando flota`,donePrefix:`✓ hecho ·`,failedPrefix:`✕ fallido ·`,seenPrefix:`visto hace {{time}}`,availableDesk:`Escritorio disponible`,mailboxHub:`Centro de correo`,unreadSuffix_one:`{{count}} sin leer`,unreadSuffix_other:`{{count}} sin leer`,allClear:`Todo leído`,total:`Total`,unreadLabel:`Sin leer`,liveActivity:`Actividad en vivo`,waitingActivity:`Esperando actividad…`,now:`ahora`,fleetHq:`Cuartel General de Flota WrongStack`,live:`EN VIVO`,legendStatus:`Estado`,legendActive:`Activo`,legendIdle:`Inactivo`,legendError:`Error`,legendConnections:`Conexiones`,legendMail:`Correo`,legendTask:`Tarea`,legendStatusConn:`Estado`,arrange:`Organizar`,arrangeTitle:`Organizar los nodos para ajustarlos al lienzo disponible`,feed:`Feed`,feedTitle:`Alternar el feed de actividad en vivo`,broadcast:`Difundir`,broadcastTitle:`Difundir un mensaje a cada sesión en vivo del proyecto`,broadcastToAll:`Difundir a todas las sesiones`,broadcastPlaceholder:`Mensaje a cada agente en vivo del proyecto…`,broadcastSendHint:`⌘/Ctrl+Enter para enviar`,openFullView:`Abrir vista completa de operaciones`,rowStatus:`Estado`,rowModel:`Modelo`,rowTool:`Herramienta`,rowIterations:`Iteraciones`,rowToolCalls:`Llamadas`,rowTokensIn:`Tokens entrada`,rowTokensOut:`Tokens salida`,rowTokensTotal:`Tokens totales`,rowContext:`Contexto`,rowCost:`Coste`,rowLastSeen:`Visto por última vez`,rowSurface:`Superficie`,rowBranch:`Rama`,rowPid:`PID`,rowDir:`Dir.`,rowAgents:`Agentes`,rowUptime:`Tiempo activo`,rowConnections:`Conexiones`,rowTotalMessages:`Mensajes totales`,rowUnread:`Sin leer`,recent:`Recientes`,noSubject:`(sin asunto)`,fullOperationStream:`Flujo completo de operaciones`,closeEsc:`Cerrar (Esc)`,idleDesk:`Escritorio inactivo`,fleetHqLabel:`Cuartel General de Flota`,clientsSuffix_one:`{{count}} cliente`,clientsSuffix_other:`{{count}} clientes`,taskFallback:`tarea`,controlLabel:`control`},xe={installTitle:`Instalar habilidad`,createTitle:`Crear habilidad`,exportTitle:`Exportar todas las habilidades como .zip`,checkUpdatesTitle:`Buscar actualizaciones (todas)`,searchPlaceholder:`Buscar habilidades…`,loading:`Cargando…`,noSkills:`Sin habilidades instaladas`,noMatch:`Ninguna habilidad coincide con el filtro`,noDescription:`Sin descripción`,scopeForeign:`Externa`,installHeading:`Instalar Habilidad`,installHint:`Introduce una referencia de repo GitHub (owner/repo) o URL completa.`,installPlaceholder:`ej. wrongstack/skill-name o https://github.com/owner/repo`,installScope:`Ámbito de instalación:`,installBtn:`Instalar`,installedMsg:`Instalada: {{names}}`,installFailed:`Instalación fallida`,createHeading:`Crear Habilidad`,createHint:`Scaffold una nueva habilidad. La primera línea es el trigger.`,nameLabel:`Nombre`,namePlaceholder:`ej. mi-nueva-habilidad`,descLabel:`Descripción / Trigger`,descPlaceholder:`Usa esta habilidad cuando <situación>.
5
- Triggers: el usuario dice "palabra clave", "otra".`,saveIn:`Guardar en:`,createBtn:`Crear Habilidad`,createdMsg:`Creada: {{name}}`,createFailed:`Creación fallida`},Se={noEvents:`Sin eventos.`},Ce={pickHint:`Elige un kit — el agente se ceñirá a él.`,gallery:`Galería`,galleryTitle:`Abrir galería de vista previa en vivo`,stackTitle:`Stack objetivo`,loading:`Cargando kits…`,notFound:`No se encontraron kits de diseño.`,bestFor:`Ideal para:`,light:`Claro`,dark:`Oscuro`},we={detached:`(separado)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Limpiar huérfanos`,cleanOrphansTitle:`Eliminar todos los worktrees huérfanos`,liveBusyTitle:`Un run está activo — deténlo primero`,rescanTitle:`Re-escanear`,removed_one:`Eliminado {{count}} worktree.`,removed_other:`Eliminados {{count}} worktrees.`,failed:`Falló`,mergedIntoBase:`{{branch}} fusionado en la base.`,conflictMerge:`Conflicto al fusionar {{branch}}: {{files}}`,seeGit:`ver git`,mergeFailed:`Fusión fallida: {{reason}}`,unknownReason:`desconocido`,mergeConfirmTitle:`¿Fusionar {{branch}} en {{base}}?`,mergeConfirmMsg:`Squash-fusiona este branch al branch base. Se cancela limpiamente si hay conflicto.`,mergeAction:`Fusionar`,removeConfirmTitle:`¿Eliminar {{branch}}?`,removeConfirmMsg:`Elimina forzosamente el checkout del worktree y borra su branch. El trabajo sin fusionar se descarta.`,empty:`Sin worktrees.`,emptyHint:`Los runs SDD / Goal crean worktrees aislados aquí. Los huérfanos de runs caídos también aparecen.`,actOpenTerm:`Abrir en terminal`,actOpenFolder:`Abrir carpeta`,actViewChanges:`Ver cambios`,actMerge:`Fusionar a la base`,actRemove:`Eliminar / descartar`,live:`activo`,noUncommitted:`Sin cambios sin confirmar`,commitsAhead_one:`{{count}} commit adelante`,commitsAhead_other:`{{count}} commits adelante`,more:`…{{count}} más`},Te={heading:`Mapa de Oficina`,headingHint:`Visualiza tu flota como un plano de oficina con el estado de los agentes en vivo.`,statAgents:`Agentes`,statMail:`Correo`,unreadSuffix:` sin leer`,sectionView:`Vista`,sectionDisplay:`Visualización`,sectionBackground:`Fondo`,sectionRecent:`Actividad Reciente`,eventsTrackedSuffix:` eventos rastreados`,recentHint:`Envíos de correo, spawns de agentes y cambios de estado aparecen aquí.`,sectionShortcuts:`Atajos`,sectionLegend:`Leyenda`,hudLabel:`HUD`,hudDesc:`Mostrar overlay de estadísticas de sesión en tiempo real`,hudToggle:`Activar HUD`,minimapLabel:`Minimapa`,minimapDesc:`Mostrar el minimapa de resumen`,minimapToggle:`Activar minimapa`,controlsLabel:`Controles`,controlsDesc:`Mostrar controles de zoom y ajuste`,controlsToggle:`Activar controles`,animateLabel:`Animar aristas`,animateDesc:`Animar el flujo en conexiones activas`,animateToggle:`Activar animación de aristas`,legendLabel:`Mostrar leyenda`,legendDesc:`Mostrar leyenda de estado y conexión`,legendToggle:`Activar leyenda`,feedLabel:`Feed en vivo`,feedDesc:`Banda inferior de actividad reciente entre procesos`,feedToggle:`Activar feed en vivo`,fitView:`Ajustar`,zoomIn:`Acercar`,zoomOut:`Alejar`,resetZoom:`Reiniciar zoom`,legendActive:`Activo (en ejecución)`,legendIdle:`Inactivo`,legendError:`Error`,legendOffline:`Desconectado`,bg:{dots:`Puntos`,lines:`Líneas`,cross:`Cruz`,none:`Ninguno`}},Ee={liveProjectOffice:`Oficina del proyecto en vivo`,agents:`agentes`,working:`trabajando`,toolCalls:`llamadas de herramientas`,office:`Oficina`,topology:`Topología`,officeDescription:`Mesas y trabajo de agentes en vivo`,topologyDescription:`Clientes, agentes y conexiones`,team:`Equipo`,liveDesk:`Escritorio en vivo y trabajo entrante`,lastActions:`Trabajos recientes`,leadAgent:`Agente principal`,agent:`Agente`,callsCount:`{{count}} llamadas`,recent:`Recientes`,noCalls:`Aún no hay llamadas completadas`,telemetryReconnect:`Reconecta este terminal para iniciar el historial de herramientas`,thinking:`Pensando`,waiting:`Esperando trabajo`,preparing:`Preparando la siguiente acción…`,deskReady:`El escritorio está listo`,toolCall:`Llamada de herramienta`,execution:`Ejecución`,started:`Inicio`,duration:`Duración`,session:`Sesión`,target:`Objetivo`,resultSize:`Tamaño del resultado`,lines:`líneas`,bytes:`bytes`,tokens:`tokens`,input:`Entrada`,outputPreview:`Vista previa de salida`,readyTitle:`La oficina está lista`,readyBody:`Los agentes ocuparán un escritorio en cuanto se unan a este proyecto.`,liveEvent:`flujo de eventos en vivo`,connectedSessions_one:`{{count}} sesión conectada`,connectedSessions_other:`{{count}} sesiones conectadas`,detailHint:`haz clic en una acción para ver la entrada y el resultado exactos`,officeBriefing:`Resumen de la oficina`,leaderPrompt:`Último prompt del líder`,activeInstruction:`Instrucción activa`,telemetryWaiting:`Reconecta este terminal para recibir instrucciones en vivo`,syncWaiting:`esperando sincronización`,todoTelemetryWaiting:`Reconecta este terminal para recibir la lista de tareas en vivo`,taskNotReported:`El agente trabaja, pero no informó una descripción de la tarea`,noPrompt:`Aún no se recibió ningún prompt en esta sesión`,activeTodos:`Tareas activas`,todoProgress:`{{done}}/{{total}} completadas`,allTodosDone:`Todas las tareas completadas`,noActiveTodos:`Aún no hay tareas activas`,moreTodos:`+{{count}} más`,currentTask:`Tarea actual`,task:`Tarea`,promptReceived:`Recibido`,todos:`Tareas`,todoStatus:{pending:`Pendiente`,in_progress:`En curso`,completed:`Completada`},breakRoom:`Sala de descanso`,onBreak:`{{count}} en descanso`,desksEmpty:`Todos están en descanso — los escritorios están listos para la próxima tarea`},De={tabProject:`Proyecto SDD`,tabBoard:`Tablero SDD en vivo`,tabSpecs:`Especificaciones`},Oe={nav:e,brand:t,status:n,menu:r,sidePanel:i,history:a,agents:o,changes:s,inspector:c,nextSteps:l,mailbox:u,sessions:d,sessionPanel:f,fleet:p,context:m,refine:h,specs:g,refresh:_,board:v,debug:y,providerModels:b,dock:x,agentsMonitor:S,terminal:C,sessionWatch:w,sideEffects:T,monitor:E,sdd:D,toolResult:O,design:k,goalRun:A,collab:j,connection:M,mode:N,cost:P,model:F,modelSwitcher:I,work:L,todos:R,task:z,toolGroup:B,fileRef:V,plan:H,filePicker:U,toast:W,search:G,phase:K,ctxMode:q,transcript:J,autonomy:Y,queue:X,checkpoint:Z,goal:Q,worktree:$,process:ee,diff:te,fallback:ne,liveSessions:re,monacoDiff:ie,errorBody:ae,officeMap:oe,toolInput:se,message:ce,watch:le,shortcuts:ue,sddBoard:de,sddTask:fe,sddWizard:pe,fileExplorer:me,codeEditor:he,fileActivity:ge,analytics:_e,promptLib:ve,skillDetail:ye,office:be,skillsList:xe,timeline:Se,designStudio:Ce,worktrees:we,officeSettings:Te,agentOffice:Ee,sddhub:De};export{Ee as agentOffice,o as agents,S as agentsMonitor,_e as analytics,Y as autonomy,v as board,t as brand,s as changes,Z as checkpoint,he as codeEditor,j as collab,M as connection,m as context,P as cost,q as ctxMode,y as debug,Oe as default,k as design,Ce as designStudio,te as diff,x as dock,ae as errorBody,ne as fallback,ge as fileActivity,me as fileExplorer,U as filePicker,V as fileRef,p as fleet,Q as goal,A as goalRun,a as history,c as inspector,re as liveSessions,u as mailbox,r as menu,ce as message,N as mode,F as model,I as modelSwitcher,ie as monacoDiff,E as monitor,e as nav,l as nextSteps,be as office,oe as officeMap,Te as officeSettings,K as phase,H as plan,ee as process,ve as promptLib,b as providerModels,X as queue,h as refine,_ as refresh,D as sdd,de as sddBoard,fe as sddTask,pe as sddWizard,De as sddhub,G as search,f as sessionPanel,w as sessionWatch,d as sessions,ue as shortcuts,T as sideEffects,i as sidePanel,ye as skillDetail,xe as skillsList,g as specs,n as status,z as task,C as terminal,Se as timeline,W as toast,R as todos,B as toolGroup,se as toolInput,O as toolResult,J as transcript,le as watch,L as work,$ as worktree,we as worktrees};
@@ -1,5 +0,0 @@
1
- var e={chat:`Oturum`,agents:`Vekiller`,history:`Geçmiş`,files:`Dosyalar`,changes:`Değişiklikler`,mailbox:`Posta Kutusu`,skills:`Beceriler`,worktrees:`Çalışma Ağaçları`,design:`Tasarım Stüdyosu`,officemap:`Ofis Haritası`,settings:`Ayarlar`,sddhub:`SDD`,goal:`Goal`,memory:`Bellek`,fleet:`Filo`,inspector:`Denetçi`,prompts:`Promptlar`},t={returnToChat:`{{name}} — sohbete dön`,returnToChatDefault:`WrongStack — sohbete dön`},n={connected:`Bağlı`,disconnected:`Bağlı değil`,idle:`Boşta`,thinking:`Düşünüyor`,running:`Çalışıyor`,waiting:`Bekliyor`,done:`Bitti`,stopped:`Durduruldu`},r={moreWithHidden:`Daha fazla, {{count}} gizli öğe`,moreOptions:`Daha fazla seçenek`,moreCompactHidden:`Daha fazla — {{count}} gizli panel/görünüm, palet, tema, izleyiciler`,moreCompact:`Daha fazla — palet, tema, izleyiciler`,moreFull:`Daha fazla — palet, tema, kısayollar, izleyiciler`,commandPalette:`Komut Paleti`,keyboardShortcuts:`Klavye Kısayolları`,panels:`Paneller`,views:`Görünümler`,theme:`Tema`,monitors:`İzleyiciler`,fleetMonitor:`Filo İzleyici`,agentsMonitor:`Vekil İzleyici`},i={dragHint:`Yeniden boyutlandırmak için sürükle · sıfırlamak için çift tıkla`,collapse:`Paneli daralt (Ctrl+\\)`},a={openDashboard:`Oturum panosunu aç`},o={pending:`bekliyor…`,empty:`Henüz vekil yok`,emptyHint:`Filo etkinken alt vekiller burada görünür.`,runningCount:`{{count}} çalışıyor`,totalCount:`toplam {{count}}`,openFull:`Tam vekil görünümünü aç`,agentsLive:`ARACILAR · CANLI`,doneCount:`{{count}} tamam`,failedCount:`{{count}} başarısız`,modelsLabel:`modeller`,shownLabel:`gösterilen`,totalLabel:`toplam`,leaderFleetTotals:`(lider {{leader}} · filo {{fleet}})`,navHintJk:`gezinmek için j/k veya ↑↓`,escCloseDetail:`· detayı kapatmak için Esc`,noAgentsRunning:`Çalışan aracı yok.`,contextUsage:`Bağlam kullanımı`,lastToolLabel:`son:`,unknownSession:`Bilinmeyen oturum`,sessionCopyTitle:`Oturum: {{sid}} — kimliği kopyalamak için tıklayın`,sessionWord:`oturum`,agentsCountSuffix_one:`{{count}} aracı`,agentsCountSuffix_other:`{{count}} aracı`,sessionTitle:`Oturum: {{sid}}`,projectSuffix:` · Proje: {{name}}`,statusIdle:`boşta`,filterAll:`Tümü`,filterRunning:`Çalışan`,filterDone:`Tamamlanan`,filterCompleted:`Tamamlanan`,filterFailed:`Başarısız`,clearFinished:`Temizle`,clearFinishedTitle:`Tamamlanan aracıları kaldır`,rosterHint:`Gezinmek için ok tuşları · Genişletmek için Enter`,itSuffix:`it.`,tcSuffix:`araç`,toolLog:`Araç Günlüğü`,showAll:`Tümünü göster`,showFewer:`Daha az göster`,streaming:`Canlı akış`,failure:`Başarısızlık`,timeout:`Zaman aşımı`,reRun:`Yeniden çalıştır`,reRunTitle:`Bu aracıyı yeniden çalıştır (henüz uygulanmadı)`,lastToolCalls:`Son {{count}} araç çağrısı`,lastToolCalls_plural:`Son {{count}} araç çağrısı`,config:`Yapılandırma`,configProvider:`Sağlayıcı`,configModel:`Model`,configDescription:`Açıklama`,configTaskId:`Görev kimliği`,transcript:`Döküm`,openInspector:`Filo Denetçisi’nde aç`,emptyFilteredTitle:`Filtreyle eşleşen aracı yok`,emptyFilteredHint:`Tüm aracıları görmek için filtreyi değiştirin veya temizleyin.`,emptyFilteredClear:`Tümünü göster`,emptyFinishedTitle:`Tüm görevler tamamlandı`,emptyFinishedHint:`Tüm aracılar işi bitirdi — buradaki etkinliği görmek için tamamlananları temizleyin veya yeni görevler oluşturun.`,emptyFinishedStats:`{{completed}} tamamlandı · {{failed}} başarısız`},s={fileCount_one:`{{count}} dosya`,fileCount_other:`{{count}} dosya`,refreshTitle:`Değişiklikleri yenile`,loading:`Değişiklikler yükleniyor…`,clean:`Değişiklik yok — çalışma ağacı temiz.`,selectPrompt:`Farkı görüntülemek için değiştirilmiş bir dosya seçin.`,unified:`Birleşik`,unifiedTitle:`Birleşik diff`,edit:`Düzenle`,editTitle:`Yan yana düzenlenebilir diff`,loadingDiff:`Diff yükleniyor…`,diffTimeout:`Diff gelmedi. Dosya değişmiş veya bağlantı kopmuş olabilir.`,binary:`İkili dosya — diff gösterilmiyor.`,tooLarge:`Dosya diff için çok büyük.`},c={showPanel:`Denetçi panelini göster (Filo / Vekiller / Denetim)`,hidePanel:`Denetçi panelini gizle`,label:`Denetçi`,openAudit:`Denetim sekmesini aç`,tabFleet:`Filo`,tabAgents:`Vekiller`,tabAudit:`Denetim`,collapseAria:`Denetçi panelini daralt`,collapseTitle:`Daralt (Esc)`,noAgentsActive:`Etkin vekil yok`,agentsAppearHint:`Filo etkinken vekiller burada görünür.`,selected:`{{name}} (seçili)`},l={header:`Sonraki adımlar`,autoSubmitting:`otomatik gönderiliyor`,clickToFill:`doldurmak için tıkla`,clickToFillTitle:`Doldurmak için tıkla: {{text}}`,auto:`otomatik`,willAutoSubmit:`Geri sayımdan sonra otomatik gönderilecek`},u={onlineCount:`{{count}} çevrimiçi`,messages:`Mesajlar`,compose:`Mesaj oluştur`,recipient:`Alıcı`,messageType:`Tür`,audience:`Kitle`,audienceAll:`Tüm ajanlar`,audienceLeaders:`Yalnızca liderler`,priority:`Öncelik`,priorityLow:`Düşük`,priorityNormal:`Normal`,priorityHigh:`Yüksek`,subjectPlaceholder:`Konu (isteğe bağlı)`,bodyPlaceholder:`Mesaj içeriği`,leadersOnlyHint:`Bu mesajı yalnızca lider ajanlar ve lider arayüzleri tüketebilir.`,leadersLabel:`liderler`,send:`Gönder`,sending:`Gönderiliyor…`,sent:`Gönderildi`,sendFailed:`Posta gönderilemedi.`,defaultSubject:`WebUI mesajı`,deleteAllTitle:`Tüm mesajları sil`,deleteAll:`Tümünü sil`,deleting:`Siliniyor…`,purgeTitle:`Eski/yetim mesajları temizle`,purge:`Temizle`,purging:`Temizleniyor…`,compact:`Sıkıştır`,compacting:`Sıkıştırılıyor…`,compactTitle:`Otomatik sıkıştırma: süresi dolmuş, tüm çevrimiçi ajanlar tarafından okunmuş ve eski mesajları sil`,compactRemoved:`{{count}} mesaj silindi`,compactExpired:`{{count}} süresi dolmuş`,compactReadByAll:`{{count}} tüm ajanlar tarafından okundu`,compactStale:`{{count}} eski`,compactRemaining:`{{count}} kaldı`,newLabel:`YENİ`,empty:`Henüz mesaj yok.`,offlineCount:`+{{count}} çevrimdışı`,timeNow:`şimdi`,deleteAllConfirmTitle_one:`{{count}} mesaj silinsin mi?`,deleteAllConfirmTitle_other:`Tüm {{count}} mesaj silinsin mi?`,deleteAllConfirmBody:`Posta kutusu dosyası her vekil için kısaltılır. Bu geri alınamaz.`,purgeConfirmTitle:`Eski mesajlar temizlensin mi?`,purgeConfirmBody:`1 günden eski tamamlanmış ve 7 günden eski tamamlanmamış mesajları kaldırır. Etkin mesajlar korunur.`,type:{note:`Not`,ask:`Soru`,assign:`Atama`,steer:`Yönlendir`,btw:`Bu arada`,broadcast:`Yayın`,status:`Durum`,result:`Sonuç`,review:`İnceleme`},emptyDetail:`Mesaj seçilmedi`,emptyDetailHint:`Burada görüntülemek için Posta Kutusu panelinden bir mesaja tıklayın.`,readBy:`Okuyanlar`,backToChat:`Sohbete dön`,completed:`Tamamlandı`,everyone:`herkes`,closeTitle:`Kapat (Esc)`,replyTo:`Yanıt olarak: {{id}}`,completedBy:`{{name}} tarafından tamamlandı`,completedByAt:`{{name}} tarafından {{time}} tarihinde tamamlandı`,outcome:`Sonuç:`,task:`Görev:`,messageNotFound:`Mesaj bulunamadı`,messageNotFoundHint:`Bu mesaj silinmiş veya temizlenmiş olabilir.`,sessionLabel:`Oturum`,sessionScope:`Oturum {{sid}}`,sessionScopeTitle:`Yalnızca {{sid}} oturumundaki vekillere teslim edildi`,projectLabel:`Proje`,projectScope:`Proje (her vekil)`,directScope:`Doğrudan`,scopeLabel:`Kapsam`},d={recentSessions:`Son oturumlar`,deleteEmptyTitle_one:`{{count}} boş oturum silinsin mi?`,deleteEmptyTitle_other:`{{count}} boş oturum silinsin mi?`,deleteEmptyConfirmBody:`Hiç token kullanımı olmayan oturumlar diskten kaldırılır.`,filterPlaceholder:`Başlık, model, sağlayıcı filtrele…`,clearFilter:`Filtreyi temizle`,noHistory:`Henüz geçmiş yok`,noHistoryHint:`Konuşmalarınız burada görünür`,noMatches:`Eşleşme yok`,noMatchesHint:`Farklı bir filtre deneyin`,group:{favorites:`Favoriler`,today:`Bugün`,yesterday:`Dün`,thisWeek:`Bu hafta`,earlier:`Daha önce`},nicknamePlaceholder:`Takma ad`,empty:`(boş)`,resuming:`devam ediliyor…`,active:`etkin`,renameTitleNickname:`{{nickname}} — özgün: {{title}}`,renameTitle:`{{title}}
2
-
3
- Yeniden adlandırmak için çift tıklayın`,unfavorite:`Favoriden çıkar`,markFavorite:`Favori olarak işaretle`,deleteSessionConfirmTitle:`Oturum silinsin mi?`,deleteSessionConfirmBody:`"{{name}}" diskten kaldırılacak. Bu geri alınamaz.`,deleteSessionTitle:`Oturumu sil`,rename:`Oturum adı`,renameAction:`Yeniden adlandır`,resume:`Oturumu sürdür`,resumeShort:`Sürdür`,workspaceEyebrow:`Konuşma kontrolü`,workspaceTitle:`Oturumlar`,workspaceHint:`Projeye ait tüm konuşmaları ara, incele, sabitle ve kaldığın yerden sürdür.`,tabs:{history:`Geçmiş`,live:`Canlı oturumlar`},filters:{all:`Tümü`,favorites:`Sabitlenen`,active:`Aktif`,completed:`Tamamlanan`,issues:`Sorunlu`},status:{active:`Aktif`,completed:`Tamamlandı`,error:`Hata`,timeout:`Zaman aşımı`,aborted:`Durduruldu`,saved:`Kayıtlı oturum`},sort:{label:`Oturumları sırala`,recent:`En yeni`,tokens:`En çok token`,activity:`En hareketli`},stats:{sessions:`Oturum`,tokens:`Token`,tools:`Araç çağrısı`,files:`Değişen dosya`,errors:`Hata`}},f={actions:{abort:`Durdur`,newSession:`Yeni oturum`,export:`Dışa aktar`,compact:`Sıkıştır`,newSessionConfirm:`Emin misiniz?`,newSessionConfirmMessage:`Bir iş hâlâ devam ediyor. Yine de yeni bir oturum başlatılsın mı?`,newSessionTitle:`Yeni oturum başlat (Ctrl+N)`,exportTitle:`Sohbeti markdown olarak dışa aktar (Ctrl+E)`,compactTitle:`Bağlam penceresini sıkıştır`,clearTitle:`Bağlamı temizle (Ctrl+L)`},model:`Model`,modelTitle:`Modeli değiştir (Ctrl+M)`,context:`Bağlam`,contextTitle:`Bağlam dökümü için tıklayın`,sessionLabel:`Oturum`,stats:{messages:`Mesajlar`,elapsed:`Geçen`,tokens:`Token`,cost:`Maliyet`,iteration:`Yineleme`,agents:`Vekiller`,tokensSub:`{{in}} giriş / {{out}} çıkış`,iterationOf:`/ {{max}}`,agentsRunning:`{{count}} çalışıyor`},plan:`Plan`,planComplete:`%{{pct}} tamamlandı`,pinned:`Sabitlenen`,quickSettings:`Hızlı ayarlar`,autonomy:`Otonomi`,autonomyOptions:{off:`Kapalı`,suggest:`Öner`,auto:`Otomatik`,eternal:`Sürekli`,"eternal-parallel":`Sürekli Paralel`},yolo:`YOLO modu`,yoloTitle:`Araç onay istemlerini atla`,refine:`Promptları iyileştir`,refineTitle:`Göndermeden önce promptları yeniden yaz`,sound:`Tamamlanınca ses`,soundTitle:`Bir çalışma bitince hafif bir çal sesi çıkar`,sessionId:`oturum {{id}}`},p={status:{running:`çalışıyor`,done:`bitti`,failed:`başarısız`,timeout:`zaman aşımı`,stopped:`durduruldu`},leader:`lider`,providerModel:`Sağlayıcı / Model`,elapsed:`Geçen`,running:`çalışıyor…`,iterations:`Yinelemeler`,toolCalls:`Araç çağrıları`,cost:`Maliyet`,budgetExtensions:`Bütçe Uzatması`,activity:`Etkinlik`,budgetWarning:`bütçe uyarısı`,contextWindow:`Bağlam penceresi`,tokensUsed:`{{used}} / {{max}} token`,toolRunning:`çalışıyor…`,lastTool:`son araç`,error:`Hata`,finalOutput:`Son çıktı`,copyOutput:`Çıktıyı kopyala`,liveOutput:`Canlı çıktı`,waitingOutput:`Çıktı bekleniyor…`,outputHint:`Vekil metin aktardıkça çıktı burada görünür.`,toolLog:`Araç günlüğü ({{count}} çağrı)`,fail:`başarısız`,moreTools:`+{{count}} araç daha`,cardRunning:`çalışıyor {{tool}}`,cardLastTool:`son: {{tool}}`,contextPercent:`Bağlam %{{pct}}`,doneCount:`{{count}} bitti`,errCount:`{{count}} hata`,statusRunning:`çalışıyor`,statusDone:`tamamlandı`,statusFailed:`başarısız`,statusTimeout:`zaman aşımı`,statusStopped:`durduruldu`,sessionPrefix:`oturum:`,currentTask:`Mevcut görev`,performance:`Performans`,uniqueTools:`Benzersiz araçlar`,avgPerTool:`araç başına ortalama {{ms}}ms`,context:`Bağlam`,tokens:`Tokenler`,ctxUsed:`%{{pct}} kullanıldı`,completed:`tamamlandı`,budgetWarningTitle:`⚡ Bütçe uyarısı`,hittingLimit:`{{kind}} sınırına ulaşılıyor ({{used}}/{{limit}})`,hittingLimitTitle:`⚡ {{kind}} sınırına ulaşılıyor ({{used}}/{{limit}})`,budgetExt_one:`{{count}} bütçe uzantısı`,budgetExt_other:`{{count}} bütçe uzantısı`,extendedTimes_one:`Aracı uzun süren görevler nedeniyle bütçesini {{count}} kez uzattı`,extendedTimes_other:`Aracı uzun süren görevler nedeniyle bütçesini {{count}} kez uzattı`,errorLabel:`Hata`,failureReason:`Başarısızlık nedeni`,failed:`Başarısız`,fleetMonitor:`FİLO İZLEYİCİ`,runningCount:`{{count}} çalışıyor`,totalAgents_one:`toplam {{count}} aracı`,totalAgents_other:`toplam {{count}} aracı`,noLeader:`lider yok`,closeFleet:`Filo izleyiciyi kapat`,colName:`Ad`,colStatus:`Durum`,colActivity:`Etkinlik`,colIters:`Yine.`,colTools:`Araçlar`,colCost:`Maliyet`,colCtx:`BĞM`,colExt:`Uzat.`,colReason:`Neden`,noAgentsActive:`Etkin aracı yok`,agentsAppear:`Filo etkin olduğunda aracılar burada görünür.`,agentTimeline:`Aracı zaman çizelgesi`,noAgentEvents:`Henüz aracı konuşma olayı yok.`,navHint:`↑↓ gezin`,selectDetailHint:`↵ detay seç`,escHint:`Esc seçimi kaldır / kapat`,detailedView:`detay görünümü`,closeBtn:`✕ kapat`,selectAgentDetail:`Detaylı bilgi görmek için bir aracı seçin`,selectAgentBody:`Detaylı metrikler, araç günlükleri, akan çıktı ve fazlasını görmek için listedeki herhangi bir aracı tıklayın — sohbet geçmişi detay görünümüne benzer.`,navigateWord:`gezin`,selectWord:`seç`,deselectWord:`seçimi kaldır`},m={wsNotConnected:`WebSocket bağlı değil`,noData:`Hata ayıklama verisi alınamadı. Sunucu bağlam hata ayıklamayı desteklemiyor olabilir.`,title:`Bağlam Dökümü`,windowUsage:`Pencere Kullanımı`,contextMode:`Bağlam Modu`,fetching:`Bağlam dökümü getiriliyor…`,systemPrompt:`Sistem Promptu`,tools:`Araçlar`,messages:`Mesajlar`,tokenAllocation:`Token Dağılımı`,systemTitle:`Sistem: {{tokens}}`,toolsTitle:`Araçlar: {{tokens}}`,messagesTitle:`Mesajlar: {{tokens}}`,system:`Sistem`,toolBreakdown:`Araç Dökümü`,messagesSummary:`Mesajlar ({{count}}) — {{total}} tok`,barWithTokens:`Bağlam penceresi: {{tokens}} / {{max}} token ({{pct}})`,barPct:`Bağlam penceresi: {{pct}}`,barClick:` — döküm için tıklayın`},h={header:`✨ Promptu İyileştir`,autoSend:`{{count}} sn içinde otomatik gönder`,cancelTitle:`İptal (Esc)`,editLabel:`İyileştirilmiş promptu düzenle:`,editPlaceholder:`İyileştirilmiş promptu düzenle...`,useEdit:`Düzenlemeyi Kullan`,original:`Orijinal`,refined:`İyileştirilmiş`,yourLanguage:`(dilinizde)`,refinedTitle:`Bu sürümü kullanmak için tıklayın veya Enter'a basın`,english:`İngilizce`,englishTitle:`İngilizce sürümü kullanmak için e'ye basın`,hintRefined:`iyileştirilmiş`,hintEnglish:`İngilizce`,hintOriginal:`orijinal`,hintEdit:`düzenle`,hintRetry:`yeniden dene`,edit:`Düzenle`,useRefined:`İyileştirilmişi Kullan`,langOriginal:`Original`,langEnglish:`English`,languageTitle:`Switch default refine language — Original vs English`,yolo:`YOLO`,yoloTitle:`Bypass tool confirmation prompts`,refining:`İyileştiriliyor…`,sendAsIs:`Olduğu gibi gönder`,failedHeader:`İyileştirme başarısız`,retry:`Yeniden dene (ek süre)`,retryBetter:`Daha iyisini dene`,retryFallback:`{{model}} ile yeniden dene`,pickModel:`Başka model…`,pickModelTitle:`İyileştirmeyi başka bir modelle yeniden dene`,pickModelHint:`Bu iyileştirmenin yeniden çalıştırılacağı sağlayıcı/modeli seçin. Oturum modeliniz değişmez.`},g={heading:`Spesifikasyonlar`,subtitle:`Spesifikasyon güdümlü geliştirmeyi görüntüle ve yönet`,empty:`Spesifikasyon bulunamadı. Oluşturmak için {{command}} kullanın.`,tasks:`Görevler ({{count}})`,doneCount:`{{count}} tamamlandı`,runningCount:`{{count}} çalışıyor`,pendingCount:`{{count}} bekliyor`,runTitle:`Bu spesifikasyonu canlı bir Goal panosu olarak çalıştır`,run:`Çalıştır`,list:`Liste`,graph:`Graf`,loadingTasks:`Görevler yükleniyor…`},_={heading:`F5 Dayanıklılık Doğrulayıcı`,subtitle:`En son etkin oturumun, transkriptin ve UI durumunun bir sayfa yenilemesinde kaldığını doğrular. Bu görünümü açın, sonra F5'e basın — her yeşil satır yeşil kalmalıdır.`,recordProbe:`Sonda kaydet`,latestSession:`En son etkin oturum`,restoredLocal:`localStorage'tan geri yüklendi`,sessionIdExtra:`oturum kimliği: {{id}}`,noSessionYet:`henüz oturum başlatılmadı`,activePointer:`Etkin oturum işaretçisi`,lastVisited:`lastVisitedAt zaman damgası`,never:`hiçbir zaman`,persistedEnv:`Kalıcı ortam`,transcriptRehydrate:`Sohbet transkripti yeniden doldurma`,localTranscript:`Yerel transkript kurtarıldı`,messagesExtra:`{{count}} mesaj, {{queued}} sıralı`,noMessages:`0 mesaj`,noBleed:`Oturumlar arası sızıntı yok`,bleedExtra:`bağlı={{bound}} vs etkin={{active}}`,transcriptBinds:`transkript etkin oturuma bağlanır`,uiWorkspace:`UI çalışma alanı`,noneValue:`(yok)`,payloadSize:`localStorage yükü (4 anahtar): {{count}} karakter`,probeLog:`Sonda günlüğü`,noProbes:`Henüz sonda yok — yeniden doldurma kontrolü kaydetmek için üstteki "Sonda kaydet" düğmesine basın veya bu görünümde F5'e basın.`,simulatedF5:`simüle F5: persist rehydrate yeniden çalıştırılıyor`},v={status:{pending:`Bekliyor`,in_progress:`Devam Ediyor`,review:`İnceleme`,failed:`Başarısız`,completed:`Bitti`,queued:`Sırada`,blocked:`Engelli`,cancelled:`İptal edildi`},newTaskTitle:`Yeni görev`,newTaskPlaceholder:`Görev başlığı…`,addTask:`Görev ekle`,empty:`Henüz aşama yok — panoyu doldurmak için bir Goal çalıştırması başlatın.`,summary:`{{phases}} aşama · {{tasks}} görev`,phases:`Aşamalar`,statusTab:`Durum`,dropHere:`Görevleri buraya bırakın`,emptySpec:`Bu spec'te henüz görev yok.`,depGraphHeading:`Bağımlılık grafiği`,worktreePrefix:`worktree: {{branch}}`},y={trendUp:`Artıyor`,trendDown:`Azalıyor`,trendStable:`Sabit`,heading:`Hata Ayıklama Panosu`,subtitle:`WrongStack WebUI için gerçek zamanlı izleme`,refreshLabel:`Yenile:`,lastUpdated:`Son güncelleme: {{time}}`,fetchFailed:`Metrikler alınamadı`,fileWatcher:`Dosya İzleyici`,watcherStatus:`İzleyici Durumu`,running:`Çalışıyor`,stopped:`Durduruldu`,activeProjects:`Etkin Projeler`,projectsWatched:`İzlenen projeler`,fileChanges:`Dosya Değişiklikleri`,totalDetected:`Toplam tespit edilen`,filesProcessed:`İşlenen Dosyalar`,afterHash:`Hash süzgecinden sonra`,broadcastsSent:`Gönderilen Yayınlar`,toClients:`WebUI istemcilerine`,debounceResets:`Debounce Sıfırlamaları`,rapidWrites:`Ardışık hızlı yazmalar`,avgDebounce:`Ort. Debounce Gecikmesi`,actualDelay:`Uygulanan gerçek gecikme`,totalDelay:`Toplam Gecikme`,sumDelays:`Tüm gecikmelerin toplamı`,browserPerf:`Tarayıcı Performansı`,heapUsed:`Kullanılan Yığın`,jsHeap:`JavaScript yığını`,heapTotal:`Toplam Yığın`,totalHeap:`Toplam yığın boyutu`,pageUptime:`Sayfa Çalışma Süresi`,sinceLoad:`Sayfa yüklenmesinden beri`,rawData:`Ham Veri`},b={allowlistTitle:`Model izin listesi`,modelCount_one:`{{count}} model`,modelCount_other:`{{count}} model`,using:`Kullanılan`,noModelPicked:`(model seçilmedi)`,clearAllowlist:`İzin listesini temizle`,clearAllowlistAria:`{{provider}} için kayıtlı izin listesini temizle`,refresh:`Sunucudan yenile`,refreshAria:`{{provider}} için model listesini yenile`,probing:`Sorgulanıyor…`,searchPlaceholder:`Modelleri ara…`,use:`Kullan`,useModelAria:`{{provider}} için {{model}} modelini kullan`,differsHint:`Sorgulanan liste kayıtlı izin listesinden farklı — kalıcı yapmak için {{command}} komutunu yeniden çalıştırın.`},x={expandChip:`{{label}} öğesini genişlet`,collapseChip:`{{label}} öğesini daralt`,ahead:`{{count}} ileri`,behind:`{{count}} geri`,linesAdded:`{{count}} satır eklendi`,linesDeleted:`{{count}} satır silindi`,untrackedFiles:`{{count}} izlenmeyen dosya`,customizeTitle:`Dock çiplerini özelleştir`,dockChips:`Dock çipleri`,noActiveGoal:`Etkin hedef yok`,noActiveGoalDetail:`Sohbetten veya hedef komutundan bir hedef başlatın.`},S={leaderBadge:`LİDER`,iters:`Yineleme`,tools:`Araçlar`,activityBins:`Etkinlik (12 kutu)`,streamingOutput:`Akış çıktısı`,recentTools:`Son araçlar`,finalOutput:`Son çıktı`,heading:`Vekil İzleyici`,prevAgent:`Önceki vekil`,nextAgent:`Sonraki vekil`,closeAria:`Vekil izleyiciyi kapat`,hintPage:`←→ sayfa`,hintNavigate:`↑↓ listede gezin`,hintEsc:`Esc kapat`},C={resize:`Terminalleri yeniden boyutlandır`,labelSingular:`Terminal`,labelPlural:`Terminaller`,projectShell:`Proje kabuğu`,maxTerminals:`En fazla {{count}} terminal`,newTerminal:`Yeni terminal`,restart:`Etkin terminali yeniden başlat`,closeAll:`Tüm terminalleri kapat`,closeDock:"Terminal dock'unu kapat (Ctrl+`)",closeTab:`{{name}} öğesini kapat`,processExited:`[işlem {{code}} koduyla çıktı]`},w={liveStream:`Canlı akış`,events_one:`{{count}} olay`,events_other:`{{count}} olay`,interruptTitle:`Bu vekili bir sonraki adımında kooperatif biçimde durdur (süreç öldürme değil)`,interrupt:`⏸ Böl`,interrupting:`…`,loading:`Oturum yükleniyor…`,done:`✓✓ bitti`,read:`✓ okundu`,delivered:`⏳ teslim edildi`,agent:`Vekil`,you:`Sen`,working:`{{name}} · çalışıyor`,claude:`Claude`,priority:`Öncelik`,placeholder:`{{label}} → bu oturuma…`,send:`Gönder`,sendHint:`⌘/Ctrl+Enter ile gönder · vekilin bir sonraki yinelemesinde görülür`,msgType:{steerLabel:`🔄 Yönlendir`,steerHint:`Görev sırasında davranışı ayarla`,askLabel:`❓ Sor`,askHint:`Soru — yanıt bekler`,assignLabel:`📋 Ata`,assignHint:`Üzerinde işlem yapılacak görev`,noteLabel:`💬 Not`,noteHint:`Bilgi için, acil değil`},sentRunning:`Teslim edildi — çalışan vekil bir sonraki adımda görür`,sentIdle:`Teslim edildi — hedef boşta; posta kutusunda görünür, bir sonraki çalıştığında okunur`,sentFailed:`Başarısız: {{error}}`,interruptReason:`Operatör Fleet HQ'dan durdurma istedi`,interruptSent:`Kesme gönderildi — vekil bir sonraki adımda durur (öldürme değil)`,interruptFailed:`Kesme başarısız: {{error}}`},T={empty:`Henüz kayıtlı yan etki yok.`,emptyHint:`Bash komutları, paket kurulumları ve ağ istekleri burada görünür.`,heading:`Yan Etkiler`,exportTitle:`Filtrelenmiş yan etkileri CSV olarak dışa aktar`,all:`Tümü`,colTime:`Zaman`,colTool:`Araç`,colRisk:`Risk`,colDetail:`Detay`,colOutcome:`Sonuç`},E={elapsedHm:`{{h}} sa {{m}} dk önce`,elapsedMs:`{{m}} dk {{s}} sn önce`,elapsedS:`{{s}} sn önce`,heading:`Filo İzleyici`,clientsHeading:`Bağlı İstemciler`,terminal:`Terminal`,webui:`Web Arayüzü`,repl:`REPL`,totalConnected:`toplam bağlı`,mailQueue:`Posta Kuyruğu`,total:`Toplam`,open:`Açık`,unread:`Okunmamış`,agents:`Vekiller`,messagesSub:`mesaj`,uncompletedSub:`tamamlanmamış`,waitingSub:`bekliyor`,ofTotal:`/ {{count}} toplam`,agentRoster:`Vekil Çizelgesi`,liveMailActivity:`Canlı Posta Etkinliği`,noActivity:`Son etkinlik yok`,mailboxAgents:`Posta Kutusu Vekilleri`,noMailboxAgents:`Kayıtlı vekil yok`,moreCount:`+{{count}} daha`,agentFallback:`vekil`,fleetAgents:`Filo Vekilleri`,noFleetAgents:`Çalışan filo vekili yok`,iter:`yineleme`,mailType:{sent:`Gönderildi`,delivered:`Teslim edildi`,read:`Okundu`,completed:`Tamamlandı`}},D={status:{pending:`bekliyor`,queued:`sırada`,in_progress:`çalışıyor`,blocked:`engellendi`,review:`inceleme`,failed:`başarısız`,completed:`bitti`,cancelled:`iptal edildi`},activityHeading:`Etkinlik`,feedEmpty:`Henüz bir şey yok — aracılar görevleri alıp bitirdikçe olaylar burada görünür.`,destroyTitle:`SDD projesi yok edilsin mi?`,destroyDesc:`Bu, çalışmayı ve işini siler. Geri alınamaz (isteğe bağlı commit geri alma geçmiş korur).`,stopRun:`Çalışmayı durdur`,stopRunAgents_one:`Çalışmayı durdur ({{count}} aracı çalışıyor)`,stopRunAgents_other:`Çalışmayı durdur ({{count}} aracı çalışıyor)`,removeWorktreesAll:`Tüm git worktree'leri + wstack/ap/* dallarını kaldır — birleştirilmemiş iş dahil`,removeWorktreesCount_one:`{{count}} git worktree + wstack/ap/* dallarını kaldır — birleştirilmemiş iş dahil`,removeWorktreesCount_other:`{{count}} git worktree + wstack/ap/* dallarını kaldır — birleştirilmemiş iş dahil`,deleteArtifacts:`Tüm SDD yapılarını sil (spec'ler, görev grafiği, pano, oturum)`,revertMerged_one:`Ayrıca {{count}} birleştirilmiş commit'i geri al`,revertMerged_other:`Ayrıca {{count}} birleştirilmiş commit'i geri al`,revertHint:`Geri alma commit'leri ekler (geçmiş korunur). Çalışma ağacı kirliyse reddedilir.`,baseBranchFallback:`taban dal`,noteLeaveMerged:`Birleştirilmiş commit'ler taban dalda bırakılır. Onları da geri almak için yukarıdaki kutuyu işaretleyin.`,noteAbandon:`Bu çalışmayı gerçekten terk etmek istediğinizden emin olun.`,destroying:`Yok ediliyor…`,destroyAll:`Her şeyi yok et`,kanbanBacklog:`Bekleme`,kanbanReady:`Hazır`,kanbanRunning:`Çalışıyor`,kanbanReview:`İnceleme`,kanbanFailed:`Başarısız`,kanbanDone:`Tamamlandı`,kanbanEmpty:`boş`},O={collapseToLines:`İlk {{count}} satıra daralt`,showAllLines:`Tümünü göster: {{total}} satır ({{more}} satır daha)`,exitCode:`çıkış kodu:`,jsonLines:`JSON · {{count}} satır`,collapse:`daralt`,expand:`genişlet`},k={heading:`Tasarım Stüdyosu — Galeri`,kitsCount:`{{count}} kit`,searchPlaceholder:`Kit ara…`,stackTitle:`Use + Materialize için yığın`,wrote:`{{path}} yazıldı`,materializeFailed:`Materialize başarısız: {{error}}`,verifyError:`Doğrula: {{error}}`,verifyOffPalette:`Doğrula: %{{pct}} palet üzerinde — {{files}} dosyada {{count}} palet dışı`,verifyClean:`Doğrula: temiz ✓ ({{files}} dosya palet üzerinde)`,writing:`Tema dosyası yazılıyor…`,scanning:`Arayüz dosyaları taranıyor…`,active:`Etkin`,reapply:`Yeniden uygula`,use:`Kullan`,materializeTitle:`Token'ları bir {{stack}} tema dosyasına yaz`,materialize:`Materialize`,verifyTitle:`Palet dışı renkler için arayüz dosyalarını tara`,verify:`Doğrula`,colors:`Renkler`},A={summary_one:`{{count}} aşama · %{{pct}} tamamlandı`,summary_other:`{{count}} aşama · %{{pct}} tamamlandı`,switchBoard:`Panoyu değiştir`,boardsCount_one:`{{count}} pano…`,boardsCount_other:`{{count}} pano…`,toggleAutonomousTitle:`Otonom modu aç/kapat`,autonomous:`Otonom`,manual:`Manuel`,resumeTitle:`Çalıştırmayı sürdür`,pauseTitle:`Çalıştırmayı duraklat`,resume:`Sürdür`,pause:`Duraklat`,stopTitle:`Çalıştırmayı durdur — devam eden vekilleri hemen iptal eder`,stop:`Durdur`,newTitle:`Bu panoyu temizle ve yeni bir Goal çalıştırması başlat`,newLabel:`Yeni`,revertConfirm:`Çalıştırmanın commit'leri geri alınsın mı?`,revertTitle:`Bu çalıştırmayı geri al — işlediği commit'leri git-revert yap ve worktree'lerini kaldır`,revert:`Geri al`,goal:`Hedef`,planning:`Aşamalar planlanıyor…`,planningBody:`Hedefiniz alındı. WrongStack onu aşamalara ve görevlere bölüyor — plan hazır olduğunda pano burada görünür.`,startHeading:`Aşama Planı Başlat`,startBody:`Ne inşa etmek istediğinizi açıklayın. WrongStack aşamaları ve görevleri planlar, sonra uygular — çalıştırmayı panoda izleyin ve yönlendirin.`,startPlaceholder:`örn. Express ve SQLite ile kullanıcı yönetimi için bir REST API oluştur...`,isolateLabel:`Her aşamayı kendi git worktree'sinde izole et`,startButton:`Goal Başlat`,ctrlHint:`Başlatmak için Ctrl+Enter`,isolateOn:`aşamalar izole worktree'lerde çalışır, squash-merge edilir`,isolateOff:`aşamalar doğrudan mevcut dalda çalışır`,lanes:`Şeritler`,graph:`Graf`,planningAck:`🚀 **Goal** — anlaşıldı. Hedefiniz için aşamalar planlanıyor…`},j={noObservers:`Canlı izleyici yok`,observerTitle:`Salt okunur izleyici olarak katıl (Aşama 1)`,observerRole:`izleyici`,annotatorTitle:`Açıklayıcı olarak katıl — araç çağrılarına satır içi not bırak (Aşama 2)`,annotatorRole:`açıklayıcı`,controllerTitle:`Kontrolör olarak katıl — vekil döngüsünü duraklatabilir (Aşama 3)`,controllerRole:`kontrolör`,errorPrefix:`Collab: {{error}}`,dismiss:`kapat`,observers_one:`{{count}} izleyici`,observers_other:`{{count}} izleyici`,annotationsTitle:`{{count}} açık not — açıklayıcılar bu oturumu inceliyor`,notes_one:`{{count}} not`,notes_other:`{{count}} not`,pausedTitle:`Vekil döngüsü duraklatıldı — bir kontrolör inceliyor`,paused:`duraklatıldı`,joinedTitle:`Katıldı {{time}}`,grantTitle:`Kontrol ver — bu katılımcıyı kontrolöre yükselt`,injectTitle:`Bekleyen bir araç çağrısı için sentetik sonuç enjekte et`,inject:`Enjekte et`,resumeTitle:`Vekil döngüsünü sürdür`,resume:`Sürdür`,pauseTitle:`Bir sonraki araç çağrısından önce vekili duraklat`,pauseAgent:`Vekili duraklat`,leaveTitle:`İzleyici oturumundan ayrıl`,leave:`Ayrıl`,injectToolResult:`Araç sonucu enjekte et`,close:`kapat`,targetTool:`Hedef tool_use kimliği`,targetPlaceholder:`bekleyen bir çağrı seç veya bir tool_use kimliği yaz`,toolFallback:`araç`,noPendingTools:`Bekleyen araç çağrısı yok — ön sıraya almak için bir tool_use kimliği yazın veya önce vekili duraklatın.`,resultContent:`Sonuç içeriği`,resultPlaceholder:`Aracı çalıştırmak yerine vekile beslenen sentetik araç sonucu`,markError:`hata olarak işaretle`,reasonPlaceholder:`neden (denetim günlüğü)`,queueInjection:`Enjeksiyonu sıraya al`,controllerInjection:`kontrolör enjeksiyonu`},M={reconnecting:`Arka uca yeniden bağlanılıyor (deneme {{attempt}}) — {{remaining}} sn içinde yeniden denenecek`,disconnected:`Arka uçtan bağlantı kesildi`,retry:`Şimdi yeniden dene`,retryTitle:`Bağlantıyı şimdi yeniden dene`,dismissTitle:`Kapat (üst çubuktaki chip durumu hâlâ gösterir)`},N={modePrefix:`kip:`,activeTitle:`Etkin kip`,heading:`Kip`,defaultName:`Varsayılan`,defaultDesc:`Standart vekil davranışı`},P={clickTitle:`Tur başına maliyet dökümü için tıklayın`,heading:`Maliyet dökümü`,noPricing:`Geçerli model için fiyatlandırma yok — maliyet değerleri sıfır.`,noTurns:`Henüz tamamlanmış tur yok. Tur başına maliyeti burada görmek için bir komut çalıştırın.`,topExpensive_one:`En pahalı {{count}} tur`,topExpensive_other:`En pahalı {{count}} tur`},F={runDefault:`Çalıştırma varsayılanı`,useRunDefault:`Çalıştırma varsayılanını kullan`,filterPlaceholder:`Modelleri filtrele…`,loading:`Modeller yükleniyor…`,noMatch:`Eşleşme yok`},I={heading:`Modeli değiştir`,filterPlaceholder:`Sağlayıcıları ve modelleri filtrele…`,noSavedProviders:`Kayıtlı sağlayıcı yok — önce Ayarlar'da bir anahtar kaydedin.`,active:`etkin`},L={todos:`Yapılacaklar`,tasks:`Görevler`,plan:`Plan`},R={toggleAria:`Durumu değiştir: {{content}}`,removeTitle:`Todo'yu kaldır`,removeAria:`"{{content}}" kaldır`,completedCount_one:`{{count}} tamamlandı`,completedCount_other:`{{count}} tamamlandı`},z={start:`Başlat`,complete:`Tamamla`,retry:`Yeniden dene`,assign:`Ata`,assignTitle:`Aracı ata`,unassigned:`Atanmamış`,statusPending:`Bekliyor`,statusInProgress:`Devam ediyor`,statusBlocked:`Engelli`,statusFailed:`Başarısız`,statusReview:`İnceleme`,statusDone:`Tamamlandı`,startTitle:`Başlat`,completeTitle:`Tamamla`,fail:`Başarısız`,failTitle:`Başarısız olarak işaretle`,boardCount:`{{total}} görev · {{done}} tamamlandı`},B={toolCalls_one:`{{count}} araç çağrısı`,toolCalls_other:`{{count}} araç çağrısı`},V={removeTitle:`Referansı kaldır`,linesCount_one:`{{count}} satır`,linesCount_other:`{{count}} satır`},H={statusOpen:`Açık`,statusInProgress:`Devam ediyor`,statusDone:`Tamamlandı`,startTitle:`Başlat`,doneTitle:`Tamamlandı olarak işaretle`,reopenTitle:`Yeniden aç`,reopen:`Yeniden aç`},U={heading:`@ Dosyalar`,noMatch:`"{{query}}" ile eşleşen dosya yok`,searching:`Proje aranıyor…`},W={dismiss:`Kapat`},G={placeholder:`Sohbette ara…`,prevHit:`Önceki eşleşme`,nextHit:`Sonraki eşleşme`,close:`Kapat (Esc)`},K={statusPending:`Bekliyor`,statusReady:`Hazır`,statusRunning:`Çalışıyor`,statusPaused:`Duraklatıldı`,statusCompleted:`Tamamlandı`,statusFailed:`Başarısız`,statusSkipped:`Atlandı`,heading:`Aşamalar`,autonomousOn:`● Otonom`,autonomousOff:`○ Manuel`,autonomousOnTitle:`Otonom mod etkin — duraklatmak için tıklayın`,autonomousOffTitle:`Manuel mod — otonomu etkinleştirmek için tıklayın`,overallProgress:`Genel ilerleme`,tasksSuffix:`{{done}}/{{total}} görev`,agentsSuffix_one:`{{count}} aracı`,agentsSuffix_other:`{{count}} aracı`},q={triggerTitle:`Bağlam penceresi kipi`,ctxPrefix:`ctx:`,opsHeading:`Bağlam işlemleri`,compactNow:`Şimdi sıkıştır`,compactNowDesc:`Eski araç çıktısını ele`,compactAggressive:`Agresif sıkıştır`,compactAggressiveDesc:`Şimdi maksimum eleme`,repairContext:`Bağlamı onar`,repairDesc:`Yetim tool-use bloklarını düzelt`,debugContext:`Bağlamı hata ayıkla`,debugDesc:`Bölüm başına boyut dökümü`,windowHeading:`Bağlam penceresi`,keepElide:`{{k}} yakınını tut · {{t}}+ tokeni ele`,fallbackName:`Dengeli`,fallbackDesc:`Varsayılan rolling sıkıştırma`},J={kindAssistant:`Asistan`,kindThinking:`Düşünme`,kindToolCall:`Araç çağrısı`,kindToolResult:`Araç sonucu`,kindError:`Hata`,kindStatus:`Durum`,kindSystem:`Sistem`,title:`Sohbet geçmişi`,copyTitle:`Aracı sohbet geçmişini kopyala`,empty:`Bu aracı için henüz sohbet geçmişi yok.`},Y={heading:`Otonomi modu`,titlePrefix:`Otonomi: {{label}}`,descOff:`Tam manuel kontrol — vekil girdinizi bekler.`,descSuggest:`Vekil sonraki adımları önerir ama onay bekler.`,descAuto:`Vekil kısa onay gecikmesinden sonra otomatik ilerler.`,descEternal:`Vekil hedef tamamlanana kadar otonom çalışır.`,descEternalParallel:`Çok aracılı otonom yürütme — filo modu.`},X={heading:`Mesaj kuyruğu`,subtitle:`{{count}} kuyrukta · vekil bitirmeden önce gönderilen mesajlar`,btwTitle:`Bu arada — çalışan vekili bölmeyen takip mesajı olarak gönderilir`,steerTitle:`Yönlendir — çalışan vekili böler ve bu mesajla yeniden yönlendirir`,queueTitle:`Kuyrukta — mevcut vekil çalışması bitene kadar tutulur, sonra sırayla gönderilir`,sortNewestTitle:`En yeni önce sıralandı — en eski önce sıralamak için tıklayın`,sortOldestTitle:`En eski önce sıralandı — en yeni önce sıralamak için tıklayın`,newest:`En yeni`,oldest:`En eski`,clear:`Temizle`,clearTitle:`Tüm kuyruktaki mesajları temizle`,closeTitle:`Kapat`,emptyTitle:`Kuyruk boş`,emptyBody:`Mesaj eklemek için girdinin yanındaki btw / steer / kuyruğa ekle düğmelerini kullanın. Kuyruktaki öğeler mevcut vekil çalışması bitince sırayla gönderilir.`,removeTitle:`Kuyruktan kaldır`,footer:`Mesajlar, mevcut vekil çalışması bitince varış sırasına göre gönderilir. En yeni önce görmek için sıralama düğmesini kullanın.`},Z={heading:`Oturum kontrol noktaları`,countSuffix_one:`{{count}} kontrol noktası`,countSuffix_other:`{{count}} kontrol noktası`,description:`Oturumu herhangi bir kontrol noktasına geri sarın. Mesajlar ve dosya değişiklikleri o noktaya geri döner — LLM oradan hiçbir şey olmamış gibi devam eder.`,emptyTitle:`Henüz kontrol noktası yok`,emptyBody:`Her mesaj gönderdiğinizde kontrol noktaları otomatik oluşturulur. Birkaç mesaj gönderip geri dönün.`,latest:`en son`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msg`,footerPre:`Geri sarmak için herhangi bir kontrol noktasına tıklayın`,footerPost:`kapatmak için`},Q={statusActive:`Etkin`,statusPaused:`Duraklatıldı`,statusDone:`Tamamlandı`,statusFailed:`Başarısız`,statusAbandoned:`Terk edildi`,heading:`Hedef`,refined:`Arıtılmış`,progress:`İlerleme`,iterations:`yineleme`,deliverables:`Teslimatlar`,recentActivity:`Son etkinlik`},$={cleanTitle_one:`{{count}} yetim worktree temizlensin mi?`,cleanTitle_other:`{{count}} yetim worktree temizlensin mi?`,cleanMessage:`Önceki çalışmalardan kalan tüm git worktree + wstack/ap dalını zorla kaldırır. İçlerindeki birleştirilmemiş çalışma kaybolur.`,cleanConfirm:`Yetimleri temizle`,orphanCount_one:`Önceki çalışmalardan {{count}} yetim worktree`,orphanCount_other:`Önceki çalışmalardan {{count}} yetim worktree`,andMore:`…ve {{count}} daha`,cleanButtonTitle:`Tüm yetim worktree + dalları zorla kaldır`,removed_one:`✓ {{count}} yetim worktree kaldırıldı.`,removed_other:`✓ {{count}} yetim worktree kaldırıldı.`,cleanupFailed:`temizlik başarısız`,lanesHeading:`Worktree'ler`,base:`taban`,isolatedCount_one:`{{count}} yalıtılmış`,isolatedCount_other:`{{count}} yalıtılmış`,statusAllocating:`ayrılıyor`,statusActive:`etkin`,statusCommitting:`işleniyor`,statusMerging:`birleştiriliyor`,statusMerged:`birleştirildi`,statusConflict:`çakışma`,statusFailed:`başarısız`,conflictBadge:`ÇAKIŞMA`,graphAria:`{{base}} dışında worktree dal grafiği`,mergedLabel:`✓ {{base}} ile birleştirildi`},ee={heading:`Çalışan süreçler`,subtitle:`{{active}} etkin · {{total}} toplam`,killAll:`Tümünü sonlandır`,emptyTitle:`İzlenen süreç yok`,emptyBody:`Vekil bash veya exec araçlarını çalıştırdığında süreçler burada görünür. Etkin süreçler nabız atan LED gösterir.`,pidLabel:`PID {{pid}}`,protected:`korumalı`,protectedTitle:`Korumalı — kill/killAll'dan sağ kalır`,background:`arka plan`,backgroundTitle:`Bağımsız iş — CLI/WebUI kapansa da çalışmaya devam eder`,confirmKillBackground:`Bağımsız arka plan süreci {{pid}} sonlandırılsın mı?`,confirmKillAll:`Çalışan {{count}} sürecin tamamı sonlandırılsın mı?`,killTitle:`PID {{pid}} sonlandır`},te={tooLarge:`Diff atlandı (dosya satır içi göstermek için çok büyük).`},ne={placeholder:`Yedek model ekle…`,emptyHint:`Birincil model hız sınırladığında veya takıldığında sırayla denenir.`,moveUp:`Yukarı taşı`,moveDown:`Aşağı taşı`},re={loading:`Oturumler yükleniyor...`,apiUnavailable:`Oturum API'si kullanılamıyor:`,empty:`Canlı oturum yok. Burada görmek için başka bir wstack örneği açın.`,heading:`Canlı oturumlar ({{count}})`,autoRefresh:`5 sn'de bir otomatik yenile`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} yineleme · {{tools}} araç · {{ago}}`,andMore:`... ve {{count}} daha`,noAgents:`Aracı yok`},ie={applyTitle:`Düzenlenen sürümü diske yaz`,applying:`Uygulanıyor…`,applied:`Uygulandı`,apply:`Uygula`},ae={showStack_one:`Yığın izini göster ({{count}} kare)`,showStack_other:`Yığın izini göster ({{count}} kare)`,hideStack_one:`Yığın izini gizle ({{count}} kare)`,hideStack_other:`Yığın izini gizle ({{count}} kare)`},oe={liveHeading:`Canlı`,clients:`İstemciler`,agents:`Aracılar`,model:`Model`,mode:`Kip`,toolCalls:`Araç çağrıları`,displayHeading:`Görünüm`,statsHud:`İstatistik HUD`,legends:`Açıklamalar`,minimap:`Mini harita`,zoomControls:`Yakınlaştırma kontrolleri`,animateWires:`Bağlantıları animasyonla`,backgroundHeading:`Arka plan`,bgDots:`Noktalar`,bgLines:`Çizgiler`,bgCross:`Çapraz`,bgNone:`Yok`},se={noParams:`(parametre yok)`,itemCount_one:`{{count}} öğe`,itemCount_other:`{{count}} öğe`,keyCount_one:`{{count}} anahtar`,keyCount_other:`{{count}} anahtar`},ce={roleYou:`Sen`,roleTool:`Araç`,roleThinking:`Düşünme`,roleAssistant:`Asistan`,inputLabel:`Girdi`,downloadTitle:`Dosya olarak indir`,empty:`(boş)`,hideDetails:`Detayları gizle`,showDetails:`Detayları göster`,showDetailsLines_one:`Detayları göster ({{count}} satır)`,showDetailsLines_other:`Detayları göster ({{count}} satır)`,editHint:`⌘/Ctrl+Enter ile kaydet · Esc ile iptal`,saveResend:`Kaydet ve yeniden gönder`,thinkingProcess:`Düşünme süreci`,thinkingMeta:`yineleme {{iter}} · {{dur}} · {{lines}}`,replay:`tekrar`,linesSuffix_one:`{{count}} satır`,linesSuffix_other:`{{count}} satır`,copyLog:`Günlüğü kopyala`,showFullLog:`Tüm günlüğü göster`,typing:`Yazıyor…`,noContent:`İçerik yok`,imageNotRetained:`Görsel önizlemesi yenilemeden sonra saklanmaz`,failedToSend:`⚠ Gönderilemedi`,autoPaused:`⚠️ _Otomatik ilerleme duraklatıldı — maksimum ardışık otomatik tur sayısına ulaşıldı. Devam etmek için bir şey yazın (otonomi açık kalır)._`,autoLoopHalted:`⚠️ _Aynı istem tekrarlandığı için otomatik gönderim durduruldu. Otonomi açık kalır; döngü korumasını sıfırlamak için yeni bir istem girin._`,rsIterations:`Yineleme: {{n}}`,rsTools:`Araç çağrısı: {{n}}`,rsElapsed:`Geçen: {{s}}`,rsCost:`Maliyet: {{c}}`,useInput:`Girdi: {{n}}`,useOutput:`Çıktı: {{n}}`,useCacheRead:`Önbellek okuma: {{n}}`,useCost:`Maliyet: {{c}}`,renderedLabel:`Gösterilen`,rawLabel:`Ham`,showRenderedTitle:`İşaretlenmiş markdown göster`,showRawTitle:`Ham markdown kaynağını göster`,editTitle:`Bu komutu düzenle ve yeniden gönder`,editLabel:`Düzenle`,unpinTitle:`Sabitlemeyi kaldır`,pinTitle:`Bu yanıtı sabitle`,pinnedLabel:`Sabitlendi`,pinLabel:`Sabitle`,regenerateTitle:`Bu yanıtı yeniden üret`,retryLabel:`Yeniden dene`},le={toolFallback:`araç`,toolFailed:`Araç başarısız`},ue={heading:`Klavye kısayolları`,footerPre:`İstediğiniz zaman`,footerPost:`bu listeyi yeniden açmak için basın.`,sectionGlobal:`Genel`,sectionTuiParity:`TUI panel eşliği`,sectionFleet:`Filo & Aracılar`,sectionChatInput:`Sohbet girişi`,sectionChat:`Sohbet`,sectionChatNav:`Sohbet gezinmesi (yazarken değil)`,dCommandPalette:`Komut paletini aç`,dShowOverlay:`Bu kısayol katmanını göster`,dToggleSidebar:`Kenar çubuğunu aç/kapat`,dOpenPanel:`Yan paneli aç (Oturum, Aracılar, Geçmiş, Dosyalar, Değişiklikler, Posta, Beceriler, Ofis Haritası)`,dDesignStudio:`Tasarım Stüdyosu yan panelini aç`,dWorktrees:`Worktree yan panelini aç`,dSettings:`Ayarları aç`,dMemory:`Hafızayı aç`,dFocusInput:`Mesaj girişine odaklan`,dSessionPanel:`Oturum paneli`,dFleetOverlay:`Filo izleyici katmanı`,dAgentsOverlay:`Aracı izleyici katmanı`,dWorktreeMonitor:`Worktree izleyici`,dPlanPanel:`Plan paneli`,dTodosPanel:`Yapılacaklar paneli`,dQueuePanel:`Kuyruk paneli`,dProcessMonitor:`Süreç izleyici`,dGoalPanel:`Hedef paneli`,dSessionsDashboard:`Oturum panosu`,dOfficeMap:`Koordinatör ofis haritası`,dDockPicker:`Rıhtım çip seçici`,dOpenFleet:`Filo izleyici katmanını aç`,dOpenAgents:`Aracı izleyici katmanını aç`,dNavigateAgents:`İzleyicide aracılar arasında gezin`,dSelectAgent:`Odaklanan aracıyı seç`,dCloseOverlay:`Etkin katmanı kapat`,dSendMessage:`Mesaj gönder`,dNewline:`Yeni satır ekle`,dRecallPrev:`Önceki komutu geri çağır (boş girişte)`,dRecallNext:`Sonraki komutu geri çağır`,dSlashPopup:`Slash komut açılır penceresini aç`,dAutocomplete:`Vurgulanan komutu otomatik tamamla`,dDismissPopup:`Açılır pencereyi kapat / girişi temizle`,dSearchChat:`Mevcut sohbette ara`,dClearContext:`Bağlamı temizle (/clear ile aynı)`,dNewSession:`Yeni oturum başlat (/new ile aynı)`,dExportMarkdown:`Sohbeti markdown olarak dışa aktar`,dModelSwitcher:`Hızlı model değiştirici katmanı`,dCompactDensity:`Sıkışık UI yoğunluğunu aç/kapat`,dAbortRun:`Mevcut çalışmayı durdur (çalışırken)`,dFocusNext:`Sonraki mesaja odaklan (diğer ad: ↓)`,dFocusPrev:`Önceki mesaja odaklan (diğer ad: ↑)`,dJumpFirst:`İlk mesaja atla`,dJumpLast:`Son mesaja atla`,dCopyFocused:`Odaklanan mesaj metnini kopyala`,dClearFocused:`Odaklanan mesajı temizle`},de={titleFallback:`Canlı SDD Panosu`,defaultModelTitle:`Çalışma düzeyinde varsayılan işçi modeli (görev başına geçersiz kılmalar önceliklidir)`,graphLabel:`Graf`,kanbanLabel:`Kanban`,retryAllTitle:`Başarısız her görevi beklemede olacak şekilde yeniden kuyruğa al`,retryFailed:`Başarısız olanları yeniden dene ({{count}})`,resume:`Sürdür`,pause:`Duraklat`,stop:`Durdur`,cleanTitle:`Çalışmanın git worktree'lerini + wstack/ap dallarını kaldır`,cleanWorktrees:`Worktree'leri temizle`,rollbackTitle:`{{base}} üzerinde {{count}} birleştirilmiş commit'i geri al`,rollback:`Geri al ({{count}})`,stopping:`Durduruluyor…`,destroying:`Yok ediliyor…`,destroyTitle:`Durdur, tüm worktree'leri kaldır, isteğe bağlı olarak birleştirilmiş commit'leri geri al ve SDD projesini sil`,destroy:`Yok et`,statDone:`tamamlanan`,statRunning:`çalışan`,statFailed:`başarısız`,statWave:`dalga`,statElapsed:`geçen`,noActiveWorkers:`etkin işçi yok`,deadlock:`Kilitlenme — görevler başarısız iş tarafından engellendi:`,noRunTitle:`Etkin SDD çalışması yok.`,noRunBody:`Yeni SDD Projesi sihirbazından bir tane başlatın veya CLI'da /sdd execute ile — aracılar burada canlı görünür, her biri yalıtılmış bir worktree'de çalışır.`,clickTaskHint:`detaylar için bir göreve tıklayın`,lcClean:`Temizle`,lcRollback:`Geri al`,lcDestroy:`Yok et`,lcFailed:`{{op}} başarısız: {{reason}}`,lcUnknownError:`bilinmeyen hata`,lcWorktrees_one:`{{count}} worktree kaldırıldı`,lcWorktrees_other:`{{count}} worktree kaldırıldı`,lcCommits_one:`{{count}} commit geri alındı`,lcCommits_other:`{{count}} commit geri alındı`,lcDeleted:`silindi {{items}}`,lcNothing:`yapacak bir şey yok`,lcNote:`{{op}}: {{body}} — not: {{reason}}`,lcOk:`{{op}}: {{body}}`},fe={backTitle:`Etkinliğe dön`,expandTitle:`Görev detaylarını genişlet`,collapseTitle:`Görev detaylarını daralt`,eventLog:`Görev olay günlüğü`,newestFirst:`en yeni önce`,noEvents:`Bu görev için henüz bir etkinlik kaydedilmedi.`,workingOn:`bu görev üzerinde çalışıyor`,assigned:`atanmış`,metaPriority:`Öncelik`,metaType:`Tür`,metaDuration:`Süre`,metaElapsed:`Geçen`,metaRetries:`Yeniden deneme`,metaWorktree:`Worktree`,workerModel:`İşçi modeli`,runDefault:`çalışma varsayılanı: {{model}}`,runDefaultPlaceholder:`Çalıştırma varsayılanı`,runDefaultPlaceholderModel:`Çalıştırma varsayılanı ({{model}})`,verificationCmd:`Doğrulama komutu`,gatesCompletion:`tamamlamayı geçitler (exit 0)`,verifyPlaceholder:`örn. pnpm vitest run path/to/file`,addVerify:`+ Doğrulama komutu ekle`,description:`Açıklama`,timeline:`Zaman çizelgesi`,dependsOn:`Bağımlı olduğu`,blocks:`Engellediği`,newWorkerPlaceholder:`Yeni işçi adı…`,confirmStop:`Bu çalışan görev durdurulsun mu?`,confirmDelete:`Bu görev çalışmadan silinsin mi?`,retryTitle:`Bu görevi beklemeye yeniden kuyruğa al`,reassign:`Yeniden ata`,stopTitle:`Bu görevdeki işçiyi iptal et`,splitTitle:`Bu görevi ayrı işçilere devredilen alt görevlere böl`,split:`Böl`,splitHint:`Satır başına bir alt görev — Başlık :: açıklama (açıklama isteğe bağlı)`,splitPlaceholder:`Veri katmanını yaz :: depoyu ekle
4
- Arayüzü bağla`,splitInto:`Alt görevlere böl`,deleteTitle:`Bu başlatılmamış görevi çalışmadan kaldır`},pe={phaseStart:`Başlat`,phaseInterview:`Görüşme`,phaseSpecReview:`Spec İncelemesi`,phasePlanning:`Planlama`,phaseTaskReview:`Görev İncelemesi`,phaseRunning:`Çalışıyor`,phaseDone:`Tamamlandı`,titleFallback:`Yeni SDD Projesi`,questionsSuffix:`{{cur}}/{{max}} soru`,tasksSuffix:`{{count}} görev`,runCfgTitle:`Çalıştırma yapılandırması — varsayılan model + yedek zinciri`,modelsLabel:`Modeller`,startRun:`Çalışmayı Başlat`,defaultWorkerModel:`Varsayılan işçi modeli`,leaderDefaultPlaceholder:`Lider / oturum varsayılanı`,useSessionDefault:`Oturum varsayılanını kullan`,fallbackChain:`Yedek zinciri`,appliesToAll:`Her göreve uygulanır. Çalışma başladıktan sonra canlı panodan görev başına geçersiz kılın.`,parallelAgents:`Paralel aracılar`,isolateWorktrees:`Git worktree'lerinde yalıt`,worktreeOn:`Her görev kendi worktree'sinde çalışır, tamamlandığında squash-merge edilir.`,worktreeOff:`Görevler doğrudan mevcut dalda çalışır (yalıtım yok).`,goalPrompt:`Ne inşa etmek istiyorsunuz?`,goalPlaceholder:`örn. Oturum yönetimiyle OAuth girişi (Google + GitHub) ekle`,startingInterview:`Görüşme başlatılıyor…`,startInterview:`Görüşmeyi Başlat`,introBody:`Yalıtılmış bir aracı, bir spec oluşturmak için sizinle görüşme yapar, bunu bağımlılık sıralı bir görev grafiğine ayırır, ardından gerçek bir çok aracılı filo yürütür — panoda canlı izleyin.`,taskGraphSummary:`Görev grafiği · {{count}} görev, bağımlılık sıralı`,dragToExplore:`keşfetmek için sürükle`,show:`göster`,goalLabel:`Hedef`,implementationPlan:`Uygulama planı`,approveSpec:`Spec'i onayla → uygulamayı planla`,approveTasks:`Görevleri onayla`,approvePlan:`Planı onayla`,answerPlaceholder:`Soruyu cevapla…`,changePlaceholder:`Değişiklik iste…`},me={emptyDir:`boş`,loadFailed:`Dosyalar yüklenemedi: {{error}}`,expandAllTitle:`Tüm dizinleri genişlet`,expandAll:`Tümünü genişlet`,collapseAllTitle:`Tüm dizinleri daralt`,collapse:`Daralt`,folders_one:`{{count}} klasör`,folders_other:`{{count}} klasör`,currentDirTitle:`Mevcut dizin: {{path}}`,navigateToTitle:`{{path}} konumuna git`,filesSuffix_one:`{{count}} dosya`,filesSuffix_other:`{{count}} dosya`,goToDir:`dizine git`,navigateParentTitle:`{{path}} dosyasının üst dizinine git`,parentDirectory:`üst dizin`,noFiles:`Dosya bulunamadı`,copyAbsPath:`Mutlak yolu kopyala`,copyRelPath:`Göreli yolu kopyala`,openInTerminal:`Terminalde aç`,openInFileManager:`Dosya yöneticisinde aç`,mentionInChat:`Sohbette bahset`,copyPath:`Yolu kopyala`},he={sendSelectionAction:`Seçimi sohbete gönder`,noFilesOpen:`Açık dosya yok`,selectToEdit:`Düzenlemeye başlamak için gezginden bir dosya seçin`,sendSelectedTitle:`Seçili satırları sohbete gönder`,mentionFileTitle:`Bu dosyayı sohbette bahset`,sendToChat:`Sohbete gönder`,mentionFile:`Dosyayı bahset`,loadingEditor:`Düzenleyici yükleniyor…`,selectTab:`İçeriğini görmek için bir sekme seçin`},ge={title:`Dosya aktivitesi`,overview:`Özet`,changes:`Değişiklikler`,context:`Bağlam`,logs:`Loglar`,lines:`satır`,resizeHint:`Boyutlandırmak için sürükle · sıfırlamak için çift tıkla`,refresh:`Dosya kanıtlarını yenile`,evidenceCount_one:`{{count}} olay`,evidenceCount_other:`{{count}} olay`,mutations30m:`Değişim · 30 dk`,sessions:`Session'lar`,actors:`Değiştirenler`,linkedWork:`İş bağlantıları`,workLinks:`Kanban / todo`,recentActivity:`Son dosya aktiviteleri`,events:`olay`,noEvidence:`Henüz bu dosyayla ilişkilendirilmiş aktivite yok.`,noSessions:`Henüz session eşleşmesi yok.`,noActors:`Henüz değiştiren kişi/süreç eşleşmesi yok.`,noWorkLinks:`Kanban, SDD veya todo bağlantısı kaydedilmemiş.`,taskOrTodo:`Task / todo`,loadingEvidence:`Dosya kanıtları yükleniyor…`,gitToBuffer:`Git HEAD → mevcut Monaco buffer`,savedToBuffer:`Son kayıt → mevcut Monaco buffer`,unsaved:`kaydedilmemiş buffer`,level:{quiet:`sakin`,active:`aktif`,churn:`yüksek churn`},analysisTitle:{quiet:`Yakın zamanda değişiklik trafiği yok`,active:`Bu dosya değiştiriliyor`,churn:`Tekrarlayan değişiklikler algılandı`},analysisBody:{quiet:`Son 30 dakikada ilişkilendirilmiş bir değişiklik kaydı yok.`,active:`Son 30 dakikada {{actors}} aktör ve {{sessions}} session üzerinden {{mutations}} değişiklik yapıldı.`,churn:`Yüksek churn: {{actors}} aktör ve {{sessions}} session üzerinden {{mutations}} değişiklik yapıldı. Sonraki düzenlemeden önce çakışan işleri kontrol et.`}},_e={loading:`Analitik yükleniyor…`,heading:`Analitik Panosu`,autoRefresh:`10 sn'de bir otomatik yenile`,liveSessions:`Canlı oturumlar`,agents:`Aracılar`,agentsActive:`{{count}} etkin`,totalEvents:`Toplam olay`,categoriesSub:`{{count}} kategori`,toolCalls:`Araç çağrıları`,iterationsSub:`{{count}} yineleme`,sessionCost:`Oturum maliyeti`,tokensSub:`{{input}} girdi / {{output}} çıktı`,sessionDuration:`Oturum süresi`,messagesSub:`{{count}} mesaj`,eventsByCategory:`Kategoriye göre olaylar`,noEvents:`Henüz kayıtlı olay yok.`,topEvents:`En çok olaylar`,activeSessionUsage:`Etkin oturum kullanımı`,provider:`Sağlayıcı`,model:`Model`,inputTokens:`Girdi tokenleri`,outputTokens:`Çıktı tokenleri`,cacheRatio:`Önbellek oranı`,filesRead:`Okunan dosya`,noSession:`Etkin oturum yok veya veri bekleniyor…`,healthErrors:`Sağlık & hatalar`,errorEvents:`Hata olayları`,warningEvents:`Uyarı olayları`,cacheHitRate:`Önbellek isabet oranı`,totalCategories:`Toplam kategori`,waitingData:`Veri bekleniyor…`,recentEvents:`Son olaylar`,noRecentEvents:`Yakın olay yok. Olay oluşturmak için arayüzle etkileşin.`},ve={heading:`Prompt kitaplığı`,searchPlaceholder:`Promptları ara…`,newPrompt:`+ Yeni prompt`,all:`Tümü`,recent:`🕘 Son`,favorites:`★ Favoriler`,noMatch:`Eşleşen prompt yok.`,newPromptHeading:`Yeni prompt`,titlePlaceholder:`Başlık *`,descPlaceholder:`Tek satır açıklama`,categoryPlaceholder:`Kategori`,tagsPlaceholder:`etiketler, virgül, ile ayrılmış`,contentPlaceholder:`Prompt içeriği * — değişkenler için {{name}} kullanın`,variables:`Değişkenler`,addVar:`+ değişken`,varNamePlaceholder:`ad`,varDescPlaceholder:`açıklama`,removeVarTitle:`Değişkeni kaldır`,required:`zorunlu`,multiline:`çok satırlı`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Promptu kaydet`,saveFailed:`Prompt kaydedilemedi.`,titleContentRequired:`Başlık ve içerik zorunludur.`,toggleFavoriteTitle:`Favori değiştir`,selectOption:`— seç —`,fillMissing:`Doldur: {{missing}}`,insertIntoChat:`Sohbete ekle`,selectPromptHint:`Önizlemek ve eklemek için bir prompt seçin.`},ye={scopeProject:`Proje`,scopeGlobal:`Global`,scopeBundled:`Paketlenmiş`,timeoutError:`İstek zaman aşımına uğradı. Lütfen tekrar deneyin.`,updateFailed:`Güncelleme başarısız`,saveFailed:`Kaydetme başarısız`,uninstallFailed:`Kaldırma başarısız`,noSkillSelected:`Beceri seçilmedi`,selectSkillHint:`Belgelerini görmek için kenar çubuğundan bir beceri seçin`,goToChat:`Sohbete git`,openSourceRepo:`Kaynak repoyu aç`,copySourceUrl:`Kaynak URL'sini kopyala`,updatedLabel:`↑ Güncellendi: {{list}}`,upToDateLabel:`— Güncel: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Güncellemeleri kontrol et`,exportTitle:`Beceriyi .md olarak dışa aktar`,editTitle:`Beceriyi düzenle`,uninstallTitle:`Beceriyi kaldır`,closeTitle:`Kapat ve sohbete git`,backTitle:`Geri git`,forwardTitle:`İleri git`,relatedFiles:`İlgili dosyalar`,references:`Referanslar`,goToSkillTitle:`{{name}} becerisine git`,loadingContent:`Beceri içeriği yükleniyor…`,editingLabel:`Düzenleniyor {{name}}`,editStats:`{{lines}} satır · {{words}} kelime · {{chars}} karakter`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Taslak kaydedildi`,draftRestored:`Taslak geri yüklendi`,discardDraft:`Taslağı sil`,splitViewTitle:`Bölünmüş görünüm`,hidePreviewTitle:`Önizlemeyi gizle`,contentPlaceholder:`Beceri içeriği (markdown)...`,loadFailed:`Beceri içeriği yüklenemedi`,noContent:`Beceri içeriği yok`,uninstallSkillHeading:`Beceriyi kaldır`,uninstallConfirm:`{{name}} kaldırılsın mı?`,uninstallRemovePath:`Bu, beceriyi {{path}} konumundan kaldırır ve geri alınamaz.`,uninstallAction:`Kaldır`},be={sessionStats:`Oturum istatistikleri`,clients:`İstemciler`,input:`Girdi`,output:`Çıktı`,cost:`Maliyet`,agentsSuffix:`aracı`,upPrefix:`{{time}} süredir`,webuiClient:`WebUI İstemcisi`,disconnected:`Bağlantı kesildi`,connected:`Bağlı`,tuiClient:`TUI İstemcisi`,terminal:`Terminal`,repl:`REPL`,coordinator:`KOORDİNATÖR`,fleetSummary:`Filo özeti`,toolCallsLabel:`Araç çağrıları`,tokensLabel:`Tokenler`,coordinatingFleet:`Filoyu koordine ediyor`,donePrefix:`✓ tamam ·`,failedPrefix:`✕ başarısız ·`,seenPrefix:`{{time}} önce görüldü`,availableDesk:`Müsait masa`,mailboxHub:`Posta Merkezi`,unreadSuffix_one:`{{count}} okunmamış`,unreadSuffix_other:`{{count}} okunmamış`,allClear:`Hepsi tamam`,total:`Toplam`,unreadLabel:`Okunmamış`,liveActivity:`Canlı etkinlik`,waitingActivity:`Etkinlik bekleniyor…`,now:`şimdi`,fleetHq:`WrongStack Filo Karargahı`,live:`CANLI`,legendStatus:`Durum`,legendActive:`Etkin`,legendIdle:`Boşta`,legendError:`Hata`,legendConnections:`Bağlantılar`,legendMail:`Posta`,legendTask:`Görev`,legendStatusConn:`Durum`,arrange:`Düzenle`,arrangeTitle:`Düğümleri kullanılabilir ekrana sığacak şekilde düzenle`,feed:`Akış`,feedTitle:`Canlı etkinlik akışını aç/kapat`,broadcast:`Yayınla`,broadcastTitle:`Bu projedeki her canlı oturuma mesaj yayınla`,broadcastToAll:`Tüm oturumlara yayınla`,broadcastPlaceholder:`Bu projedeki her canlı aracıya mesaj gönder…`,broadcastSendHint:`göndermek için ⌘/Ctrl+Enter`,openFullView:`Tam işlem görünümünü aç`,rowStatus:`Durum`,rowModel:`Model`,rowTool:`Araç`,rowIterations:`Yinelemeler`,rowToolCalls:`Araç çağrıları`,rowTokensIn:`Girdi tokenleri`,rowTokensOut:`Çıktı tokenleri`,rowTokensTotal:`Toplam token`,rowContext:`Bağlam`,rowCost:`Maliyet`,rowLastSeen:`Son görülme`,rowSurface:`Yüzey`,rowBranch:`Dal`,rowPid:`PID`,rowDir:`Dizin`,rowAgents:`Aracılar`,rowUptime:`Çalışma süresi`,rowConnections:`Bağlantılar`,rowTotalMessages:`Toplam mesaj`,rowUnread:`Okunmamış`,recent:`Son`,noSubject:`(konusuz)`,fullOperationStream:`Tam işlem akışı`,closeEsc:`Kapat (Esc)`,idleDesk:`Boş masa`,fleetHqLabel:`Filo Karargahı`,clientsSuffix_one:`{{count}} istemci`,clientsSuffix_other:`{{count}} istemci`,taskFallback:`görev`,controlLabel:`kontrol`},xe={installTitle:`Beceri yükle`,createTitle:`Beceri oluştur`,exportTitle:`Tüm becerileri .zip olarak dışa aktar`,checkUpdatesTitle:`Güncellemeleri kontrol et (tüm beceriler)`,searchPlaceholder:`Beceri ara…`,loading:`Yükleniyor…`,noSkills:`Yüklü beceri yok`,noMatch:`Filtreyle eşleşen beceri yok`,noDescription:`Açıklama yok`,scopeForeign:`Yabancı`,installHeading:`Beceri Yükle`,installHint:`Bir GitHub depo referansı (owner/repo) veya tam URL girin.`,installPlaceholder:`örn. wrongstack/skill-name veya https://github.com/owner/repo`,installScope:`Yükleme kapsamı:`,installBtn:`Yükle`,installedMsg:`Yüklendi: {{names}}`,installFailed:`Yükleme başarısız`,createHeading:`Beceri Oluştur`,createHint:`Yeni beceri iskeleti. İlk satır tetikleyicidir; ek satırlar açıklamayı oluşturur.`,nameLabel:`Ad`,namePlaceholder:`örn. benim-yeni-becerim`,descLabel:`Açıklama / Tetikleyici`,descPlaceholder:`Bu beceriyi <tetikleyici durumu> olduğunda kullan.
5
- Tetikleyiciler: kullanıcı "anahtar kelime", "başka" der.`,saveIn:`Kaydet:`,createBtn:`Beceri Oluştur`,createdMsg:`Oluşturuldu: {{name}}`,createFailed:`Oluşturma başarısız`},Se={noEvents:`Henüz olay yok.`},Ce={pickHint:`Bir kit seç — ajan buna uyacak.`,gallery:`Galeri`,galleryTitle:`Canlı önizleme galerisini aç`,stackTitle:`Hedef yığın`,loading:`Kitler yükleniyor…`,notFound:`Tasarım kiti bulunamadı.`,bestFor:`En uygun:`,light:`Açık`,dark:`Koyu`},we={detached:`(ayrık)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktree`,baseSuffix:` · taban {{base}}`,baseLabel:`taban`,cleanOrphans:`Yetim olanları temizle`,cleanOrphansTitle:`Tüm yetim worktree'leri kaldır`,liveBusyTitle:`Bir çalışma canlı — önce durdurun`,rescanTitle:`Yeniden tara`,removed_one:`{{count}} worktree kaldırıldı.`,removed_other:`{{count}} worktree kaldırıldı.`,failed:`Başarısız`,mergedIntoBase:`{{branch}} tabana birleştirildi.`,conflictMerge:`{{branch}} birleştirilirken çakışma: {{files}}`,seeGit:`git'e bakın`,mergeFailed:`Birleştirme başarısız: {{reason}}`,unknownReason:`bilinmiyor`,mergeConfirmTitle:`{{branch}}, {{base}} ile birleştirilsin mi?`,mergeConfirmMsg:`Bu dalı taban dala squash-birleştirir. Çakışırsa temizce iptal eder.`,mergeAction:`Birleştir`,removeConfirmTitle:`{{branch}} kaldırılsın mı?`,removeConfirmMsg:`Worktree checkout'u zorla kaldırır ve dalını siler. Birleştirilmemiş iş kaybolur.`,empty:`Worktree yok.`,emptyHint:`SDD / Goal çalışmaları burada izole worktree'ler oluşturur. Çöken çalışmalardan yetimler de görünür.`,actOpenTerm:`Terminalde aç`,actOpenFolder:`Klasörü aç`,actViewChanges:`Değişiklikleri gör`,actMerge:`Tabana birleştir`,actRemove:`Kaldır / at`,live:`canlı`,noUncommitted:`İşlenmemiş değişiklik yok`,commitsAhead_one:`{{count}} commit önde`,commitsAhead_other:`{{count}} commit önde`,more:`…{{count}} daha`},Te={heading:`Ofis Haritası`,headingHint:`Filoğunuzu canlı ajan durumuyla bir ofis kat planı olarak görselleştirin.`,statAgents:`Ajanlar`,statMail:`Posta`,unreadSuffix:` okunmamış`,sectionView:`Görünüm`,sectionDisplay:`Görüntü`,sectionBackground:`Arka plan`,sectionRecent:`Son Etkinlik`,eventsTrackedSuffix:` olay izlendi`,recentHint:`Posta gönderimleri, ajan oluşumları ve durum değişiklikleri burada görünür.`,sectionShortcuts:`Kısayollar`,sectionLegend:`Açıklama`,hudLabel:`HUD`,hudDesc:`Gerçek zamanlı oturum istatistik katmanını göster`,hudToggle:`HUD'u aç/kapat`,minimapLabel:`Mini harita`,minimapDesc:`Genel mini haritayı göster`,minimapToggle:`Mini haritayı aç/kapat`,controlsLabel:`Kontroller`,controlsDesc:`Yakınlaştırma ve sığdırma kontrollerini göster`,controlsToggle:`Kontrolleri aç/kapat`,animateLabel:`Kenarları canlandır`,animateDesc:`Aktif bağlantılarda akışı canlandır`,animateToggle:`Kenar animasyonunu aç/kapat`,legendLabel:`Açıklamayı göster`,legendDesc:`Durum ve bağlantı açıklamasını görüntüle`,legendToggle:`Açıklamayı aç/kapat`,feedLabel:`Canlı akış`,feedDesc:`En son çapraz süreç etkinliklerinin alt şeridi`,feedToggle:`Canlı akışı aç/kapat`,fitView:`Sığdır`,zoomIn:`Yakınlaştır`,zoomOut:`Uzaklaştır`,resetZoom:`Yakınlaştırmayı sıfırla`,legendActive:`Aktif (çalışıyor)`,legendIdle:`Boşta`,legendError:`Hata`,legendOffline:`Çevrimdışı`,bg:{dots:`Noktalar`,lines:`Çizgiler`,cross:`Çapraz`,none:`Yok`}},Ee={liveProjectOffice:`Canlı proje ofisi`,agents:`ajan`,working:`çalışıyor`,toolCalls:`araç çağrısı`,office:`Ofis`,topology:`Topoloji`,officeDescription:`Canlı ajan masaları ve işler`,topologyDescription:`İstemciler, ajanlar ve bağlantılar`,team:`Ekip`,liveDesk:`Canlı masa ve gelen işler`,lastActions:`Son işler`,leadAgent:`Lider ajan`,agent:`Ajan`,callsCount:`{{count}} çağrı`,recent:`Son işlemler`,noCalls:`Henüz tamamlanan çağrı yok`,telemetryReconnect:`Araç geçmişi için bu terminali yeniden bağlayın`,thinking:`Düşünüyor`,waiting:`İş bekliyor`,preparing:`Sonraki eylemi hazırlıyor…`,deskReady:`Masa hazır`,toolCall:`Araç çağrısı`,execution:`Çalıştırma`,started:`Başlangıç`,duration:`Süre`,session:`Oturum`,target:`Hedef`,resultSize:`Sonuç boyutu`,lines:`satır`,bytes:`bayt`,tokens:`token`,input:`Girdi`,outputPreview:`Çıktı önizlemesi`,readyTitle:`Ofis hazır`,readyBody:`Ajanlar bu projeye katılır katılmaz masalarına oturacak.`,liveEvent:`canlı olay akışı`,connectedSessions_one:`{{count}} bağlı oturum`,connectedSessions_other:`{{count}} bağlı oturum`,detailHint:`tam girdi ve sonuç ayrıntısı için herhangi bir eyleme tıklayın`,officeBriefing:`Ofis brifingi`,leaderPrompt:`Liderin son aldığı prompt`,activeInstruction:`Aktif talimat`,telemetryWaiting:`Canlı talimat için bu terminali yeniden bağlayın`,syncWaiting:`senkron bekleniyor`,todoTelemetryWaiting:`Canlı todo listesi için bu terminali yeniden bağlayın`,taskNotReported:`Çalışıyor ancak görev açıklaması bildirilmedi`,noPrompt:`Bu oturumda henüz prompt alınmadı`,activeTodos:`Aktif yapılacaklar`,todoProgress:`{{done}}/{{total}} tamamlandı`,allTodosDone:`Tüm işler tamamlandı`,noActiveTodos:`Henüz aktif iş yok`,moreTodos:`+{{count}} iş daha`,currentTask:`Mevcut görev`,task:`Görev`,promptReceived:`Alınma zamanı`,todos:`Yapılacaklar`,todoStatus:{pending:`Bekliyor`,in_progress:`Devam ediyor`,completed:`Tamamlandı`},breakRoom:`Dinlenme odası`,onBreak:`{{count}} molada`,desksEmpty:`Herkes molada — masalar bir sonraki görev için hazır`},De={tabProject:`SDD Projesi`,tabBoard:`Canlı SDD Panosu`,tabSpecs:`Spesifikasyonlar`},Oe={nav:e,brand:t,status:n,menu:r,sidePanel:i,history:a,agents:o,changes:s,inspector:c,nextSteps:l,mailbox:u,sessions:d,sessionPanel:f,fleet:p,context:m,refine:h,specs:g,refresh:_,board:v,debug:y,providerModels:b,dock:x,agentsMonitor:S,terminal:C,sessionWatch:w,sideEffects:T,monitor:E,sdd:D,toolResult:O,design:k,goalRun:A,collab:j,connection:M,mode:N,cost:P,model:F,modelSwitcher:I,work:L,todos:R,task:z,toolGroup:B,fileRef:V,plan:H,filePicker:U,toast:W,search:G,phase:K,ctxMode:q,transcript:J,autonomy:Y,queue:X,checkpoint:Z,goal:Q,worktree:$,process:ee,diff:te,fallback:ne,liveSessions:re,monacoDiff:ie,errorBody:ae,officeMap:oe,toolInput:se,message:ce,watch:le,shortcuts:ue,sddBoard:de,sddTask:fe,sddWizard:pe,fileExplorer:me,codeEditor:he,fileActivity:ge,analytics:_e,promptLib:ve,skillDetail:ye,office:be,skillsList:xe,timeline:Se,designStudio:Ce,worktrees:we,officeSettings:Te,agentOffice:Ee,sddhub:De};export{Ee as agentOffice,o as agents,S as agentsMonitor,_e as analytics,Y as autonomy,v as board,t as brand,s as changes,Z as checkpoint,he as codeEditor,j as collab,M as connection,m as context,P as cost,q as ctxMode,y as debug,Oe as default,k as design,Ce as designStudio,te as diff,x as dock,ae as errorBody,ne as fallback,ge as fileActivity,me as fileExplorer,U as filePicker,V as fileRef,p as fleet,Q as goal,A as goalRun,a as history,c as inspector,re as liveSessions,u as mailbox,r as menu,ce as message,N as mode,F as model,I as modelSwitcher,ie as monacoDiff,E as monitor,e as nav,l as nextSteps,be as office,oe as officeMap,Te as officeSettings,K as phase,H as plan,ee as process,ve as promptLib,b as providerModels,X as queue,h as refine,_ as refresh,D as sdd,de as sddBoard,fe as sddTask,pe as sddWizard,De as sddhub,G as search,f as sessionPanel,w as sessionWatch,d as sessions,ue as shortcuts,T as sideEffects,i as sidePanel,ye as skillDetail,xe as skillsList,g as specs,n as status,z as task,C as terminal,Se as timeline,W as toast,R as todos,B as toolGroup,se as toolInput,O as toolResult,J as transcript,le as watch,L as work,$ as worktree,we as worktrees};
@@ -1,5 +0,0 @@
1
- var e={chat:`Session`,agents:`Agents`,history:`Historique`,files:`Fichiers`,changes:`Modifications`,mailbox:`Boîte aux lettres`,skills:`Compétences`,worktrees:`Worktrees`,design:`Design Studio`,officemap:`Plan du bureau`,settings:`Paramètres`,sddhub:`SDD`,goal:`Goal`,memory:`Mémoire`,fleet:`Flotte`,inspector:`Inspecteur`,prompts:`Prompts`},t={returnToChat:`{{name}} — retour au chat`,returnToChatDefault:`WrongStack — retour au chat`},n={connected:`Connecté`,disconnected:`Déconnecté`,idle:`Inactif`,thinking:`Réflexion`,running:`En cours`,waiting:`En attente`,done:`Terminé`,stopped:`Arrêté`},r={moreWithHidden:`Plus, {{count}} éléments masqués`,moreOptions:`Plus d'options`,moreCompactHidden:`Plus — {{count}} panneaux/vues masqués, palette, thème, moniteurs`,moreCompact:`Plus — palette, thème, moniteurs`,moreFull:`Plus — palette, thème, raccourcis, moniteurs`,commandPalette:`Palette de commandes`,keyboardShortcuts:`Raccourcis clavier`,panels:`Panneaux`,views:`Vues`,theme:`Thème`,monitors:`Moniteurs`,fleetMonitor:`Moniteur de flotte`,agentsMonitor:`Moniteur d'agents`},i={dragHint:`Glisser pour redimensionner · double-clic pour réinitialiser`,collapse:`Réduire le panneau (Ctrl+\\)`},a={openDashboard:`Ouvrir le tableau de bord des sessions`},o={pending:`en attente…`,empty:`Aucun agent pour le moment`,emptyHint:`Les sous-agents apparaissent ici lorsque la flotte est active.`,runningCount:`{{count}} en cours`,totalCount:`{{count}} au total`,openFull:`Ouvrir la vue complète des agents`,agentsLive:`AGENTS · LIVE`,doneCount:`{{count}} terminés`,failedCount:`{{count}} échecs`,modelsLabel:`modèles`,shownLabel:`affichés`,totalLabel:`total`,leaderFleetTotals:`(leader {{leader}} · flotte {{fleet}})`,navHintJk:`j/k ou ↑↓ pour naviguer`,escCloseDetail:`· Échap pour fermer le détail`,noAgentsRunning:`Aucun agent en cours.`,contextUsage:`Utilisation du contexte`,lastToolLabel:`dernier :`,unknownSession:`Session inconnue`,sessionCopyTitle:`Session : {{sid}} — cliquer pour copier`,sessionWord:`session`,agentsCountSuffix_one:`{{count}} agent`,agentsCountSuffix_other:`{{count}} agents`,sessionTitle:`Session : {{sid}}`,projectSuffix:` · Projet : {{name}}`,statusIdle:`inactif`,filterAll:`Tous`,filterRunning:`En cours`,filterDone:`Terminés`,filterCompleted:`Terminés`,filterFailed:`Échoués`,clearFinished:`Effacer`,clearFinishedTitle:`Supprimer les agents terminés`,rosterHint:`Flèches pour naviguer · Entrée pour développer`,itSuffix:`it.`,tcSuffix:`app.`,toolLog:`Journal des outils`,showAll:`Tout afficher`,showFewer:`Afficher moins`,streaming:`Diffusion en direct`,failure:`Échec`,timeout:`Délai dépassé`,reRun:`Relancer`,reRunTitle:`Relancer cet agent (pas encore implémenté)`,lastToolCalls:`Dernier appel d’outil ({{count}})`,lastToolCalls_plural:`Derniers appels d’outils ({{count}})`,config:`Configuration`,configProvider:`Fournisseur`,configModel:`Modèle`,configDescription:`Description`,configTaskId:`ID de tâche`,transcript:`Transcription`,openInspector:`Ouvrir dans l’inspecteur de flotte`,emptyFilteredTitle:`Aucun agent ne correspond au filtre`,emptyFilteredHint:`Modifiez ou effacez le filtre pour afficher tous les agents.`,emptyFilteredClear:`Tout afficher`,emptyFinishedTitle:`Toutes les tâches sont terminées`,emptyFinishedHint:`Tous les agents ont terminé — effacez les agents terminés ou créez de nouvelles tâches pour voir l’activité ici.`,emptyFinishedStats:`{{completed}} terminés · {{failed}} échecs`},s={fileCount_one:`{{count}} fichier`,fileCount_other:`{{count}} fichiers`,refreshTitle:`Actualiser les modifications`,loading:`Chargement des modifications…`,clean:`Aucune modification — l'arbre de travail est propre.`,selectPrompt:`Sélectionnez un fichier modifié pour voir son diff.`,unified:`Unifié`,unifiedTitle:`Diff unifié`,edit:`Modifier`,editTitle:`Diff côte à côte modifiable`,loadingDiff:`Chargement du diff…`,diffTimeout:`Le diff n'est pas arrivé. Le fichier a peut-être changé ou la connexion a été perdue.`,binary:`Fichier binaire — diff non affiché.`,tooLarge:`Fichier trop volumineux pour le diff.`},c={showPanel:`Afficher le panneau Inspecteur (Flotte / Agents / Audit)`,hidePanel:`Masquer le panneau Inspecteur`,label:`Inspecteur`,openAudit:`Ouvrir l'onglet Audit`,tabFleet:`Flotte`,tabAgents:`Agents`,tabAudit:`Audit`,collapseAria:`Réduire le panneau Inspecteur`,collapseTitle:`Réduire (Échap)`,noAgentsActive:`Aucun agent actif`,agentsAppearHint:`Les agents apparaissent ici lorsque la flotte est active.`,selected:`{{name}} (sélectionné)`},l={header:`Prochaines étapes`,autoSubmitting:`envoi automatique dans`,clickToFill:`cliquer pour remplir`,clickToFillTitle:`Cliquez pour remplir : {{text}}`,auto:`auto`,willAutoSubmit:`Envoi automatique après le compte à rebours`},u={onlineCount:`{{count}} en ligne`,messages:`Messages`,compose:`Rédiger un message`,recipient:`Destinataire`,messageType:`Type`,audience:`Audience`,audienceAll:`Tous les agents`,audienceLeaders:`Leaders uniquement`,priority:`Priorité`,priorityLow:`Basse`,priorityNormal:`Normale`,priorityHigh:`Haute`,subjectPlaceholder:`Objet (facultatif)`,bodyPlaceholder:`Message`,leadersOnlyHint:`Seuls les agents leaders et les interfaces leader peuvent recevoir ce message.`,leadersLabel:`leaders`,send:`Envoyer`,sending:`Envoi…`,sent:`Envoyé`,sendFailed:`Échec de l’envoi du message.`,defaultSubject:`Message WebUI`,deleteAllTitle:`Supprimer tous les messages`,deleteAll:`Tout supprimer`,deleting:`Suppression…`,purgeTitle:`Purger les messages obsolètes/orphelins`,purge:`Purger`,purging:`Purge…`,compact:`Compacter`,compacting:`Compactage…`,compactTitle:`Compactage auto : supprimer expirés, lus par tous et obsolètes`,compactRemoved:`{{count}} supprimés`,compactExpired:`{{count}} expirés`,compactReadByAll:`{{count}} lus par tous`,compactStale:`{{count}} obsolètes`,compactRemaining:`{{count}} restants`,newLabel:`NOUVEAU`,empty:`Aucun message pour le moment.`,offlineCount:`+{{count}} hors ligne`,timeNow:`maintenant`,deleteAllConfirmTitle_one:`Supprimer {{count}} message ?`,deleteAllConfirmTitle_other:`Supprimer tous les {{count}} messages ?`,deleteAllConfirmBody:`Le fichier de boîte aux lettres est tronqué pour chaque agent. Action irréversible.`,purgeConfirmTitle:`Purger les messages obsolètes ?`,purgeConfirmBody:`Supprime les messages terminés de plus d'un jour et les messages incomplets de plus de 7 jours. Les messages actifs sont conservés.`,type:{note:`Note`,ask:`Question`,assign:`Affectation`,steer:`Orienter`,btw:`Au passage`,broadcast:`Diffusion`,status:`Statut`,result:`Résultat`,review:`Revue`},emptyDetail:`Aucun message sélectionné`,emptyDetailHint:`Cliquez sur un message dans le panneau Boîte aux lettres pour l'afficher ici.`,readBy:`Lu par`,backToChat:`Retour au chat`,completed:`Terminé`,everyone:`tout le monde`,closeTitle:`Fermer (Échap)`,replyTo:`En réponse à : {{id}}`,completedBy:`Terminé par {{name}}`,completedByAt:`Terminé par {{name}} le {{time}}`,outcome:`Résultat :`,task:`Tâche :`,messageNotFound:`Message introuvable`,messageNotFoundHint:`Ce message a peut-être été supprimé ou purgé.`,sessionLabel:`Session`,sessionScope:`Session {{sid}}`,sessionScopeTitle:`Uniquement remis aux agents de la session {{sid}}`,projectLabel:`Projet`,projectScope:`Projet (tous les agents)`,directScope:`Direct`,scopeLabel:`Portée`},d={recentSessions:`Sessions récentes`,deleteEmptyTitle_one:`Supprimer {{count}} session vide ?`,deleteEmptyTitle_other:`Supprimer {{count}} sessions vides ?`,deleteEmptyConfirmBody:`Les sessions sans aucune utilisation de jetons sont supprimées du disque.`,filterPlaceholder:`Filtrer par titre, modèle, fournisseur…`,clearFilter:`Effacer le filtre`,noHistory:`Aucun historique`,noHistoryHint:`Vos conversations apparaîtront ici`,noMatches:`Aucun résultat`,noMatchesHint:`Essayez un autre filtre`,group:{favorites:`Favoris`,today:`Aujourd'hui`,yesterday:`Hier`,thisWeek:`Cette semaine`,earlier:`Plus ancien`},nicknamePlaceholder:`Surnom`,empty:`(vide)`,resuming:`reprise…`,active:`actif`,renameTitleNickname:`{{nickname}} — original : {{title}}`,renameTitle:`{{title}}
2
-
3
- Double-cliquez pour renommer`,unfavorite:`Retirer des favoris`,markFavorite:`Marquer comme favori`,deleteSessionConfirmTitle:`Supprimer la session ?`,deleteSessionConfirmBody:`"{{name}}" sera supprimée du disque. Action irréversible.`,deleteSessionTitle:`Supprimer la session`,rename:`Renommer la session`,renameAction:`Renommer`,resume:`Reprendre la session`,resumeShort:`Reprendre`,workspaceEyebrow:`Contrôle de session`,workspaceTitle:`Sessions`,workspaceHint:`Recherchez, inspectez, épinglez et reprenez toutes les conversations du projet.`,tabs:{history:`Historique`,live:`Sessions en direct`},filters:{all:`Toutes`,favorites:`Favoris`,active:`Actives`,completed:`Terminées`,issues:`Problèmes`},status:{active:`Active`,completed:`Terminée`,error:`Erreur`,timeout:`Expiration`,aborted:`Annulée`,saved:`Session sauvegardée`},sort:{label:`Trier les sessions`,recent:`Plus récentes`,tokens:`Plus de jetons`,activity:`Plus d'activité`},stats:{sessions:`Sessions`,tokens:`Jetons`,tools:`Appels d'outils`,files:`Fichiers modifiés`,errors:`Erreurs`}},f={actions:{abort:`Interrompre`,newSession:`Nouvelle session`,export:`Exporter`,compact:`Compresser`,newSessionConfirm:`Êtes-vous sûr ?`,newSessionConfirmMessage:`Une tâche est toujours en cours. Démarrer quand même une nouvelle session ?`,newSessionTitle:`Démarrer une nouvelle session (Ctrl+N)`,exportTitle:`Exporter le chat en markdown (Ctrl+E)`,compactTitle:`Compresser la fenêtre de contexte`,clearTitle:`Effacer le contexte (Ctrl+L)`},model:`Modèle`,modelTitle:`Changer de modèle (Ctrl+M)`,context:`Contexte`,contextTitle:`Cliquez pour un détail du contexte`,sessionLabel:`Session`,stats:{messages:`Messages`,elapsed:`Écoulé`,tokens:`Jetons`,cost:`Coût`,iteration:`Itération`,agents:`Agents`,tokensSub:`{{in}} entrée / {{out}} sortie`,iterationOf:`sur {{max}}`,agentsRunning:`{{count}} en cours`},plan:`Plan`,planComplete:`{{pct}}% terminé`,pinned:`Épinglés`,quickSettings:`Réglages rapides`,autonomy:`Autonomie`,autonomyOptions:{off:`Désactivé`,suggest:`Suggérer`,auto:`Auto`,eternal:`Perpétuel`,"eternal-parallel":`Perpétuel Parallèle`},yolo:`Mode YOLO`,yoloTitle:`Ignorer les confirmations d'outils`,refine:`Affiner les prompts`,refineTitle:`Réécrire les prompts avant l'envoi`,sound:`Son à la fin`,soundTitle:`Jouer un doux carillon à la fin d'une exécution`,sessionId:`session {{id}}`},p={status:{running:`en cours`,done:`terminé`,failed:`échoué`,timeout:`expiré`,stopped:`arrêté`},leader:`leader`,providerModel:`Fournisseur / Modèle`,elapsed:`Écoulé`,running:`en cours…`,iterations:`Itérations`,toolCalls:`Appels d'outils`,cost:`Coût`,budgetExtensions:`Extensions de budget`,activity:`Activité`,budgetWarning:`alerte budget`,contextWindow:`Fenêtre de contexte`,tokensUsed:`{{used}} / {{max}} jetons`,toolRunning:`en cours…`,lastTool:`dernier outil`,error:`Erreur`,finalOutput:`Sortie finale`,copyOutput:`Copier la sortie`,liveOutput:`Sortie en direct`,waitingOutput:`En attente de sortie…`,outputHint:`La sortie apparaît ici à mesure que l'agent diffuse du texte.`,toolLog:`Journal d'outils ({{count}} appels)`,fail:`échec`,moreTools:`+{{count}} outils de plus`,cardRunning:`en cours {{tool}}`,cardLastTool:`dernier : {{tool}}`,contextPercent:`Contexte {{pct}} %`,doneCount:`{{count}} terminé(s)`,errCount:`{{count}} err`,statusRunning:`en cours`,statusDone:`terminé`,statusFailed:`échec`,statusTimeout:`délai dépassé`,statusStopped:`arrêté`,sessionPrefix:`session :`,currentTask:`Tâche actuelle`,performance:`Performance`,uniqueTools:`Outils uniques`,avgPerTool:`moy. {{ms}}ms par outil`,context:`Contexte`,tokens:`Jetons`,ctxUsed:`{{pct}}% utilisé`,completed:`terminé`,budgetWarningTitle:`⚡ Alerte budget`,hittingLimit:`Atteint la limite {{kind}} ({{used}}/{{limit}})`,hittingLimitTitle:`⚡ atteint la limite {{kind}} ({{used}}/{{limit}})`,budgetExt_one:`{{count}} extension de budget`,budgetExt_other:`{{count}} extensions de budget`,extendedTimes_one:`L'agent a étendu son budget {{count}} fois pour des tâches longues`,extendedTimes_other:`L'agent a étendu son budget {{count}} fois pour des tâches longues`,errorLabel:`Erreur`,failureReason:`Raison de l'échec`,failed:`Échec`,fleetMonitor:`MONITEUR DE FLOTTE`,runningCount:`{{count}} en cours`,totalAgents_one:`{{count}} agent au total`,totalAgents_other:`{{count}} agents au total`,noLeader:`pas de leader`,closeFleet:`Fermer le moniteur de flotte`,colName:`Nom`,colStatus:`Statut`,colActivity:`Activité`,colIters:`Itér.`,colTools:`Outils`,colCost:`Coût`,colCtx:`CTX`,colExt:`Ext.`,colReason:`Raison`,noAgentsActive:`Aucun agent actif`,agentsAppear:`Les agents apparaissent ici quand la flotte est active.`,agentTimeline:`Chronologie des agents`,noAgentEvents:`Aucun événement de conversation d'agent encore.`,navHint:`↑↓ naviguer`,selectDetailHint:`↵ détail sélectionner`,escHint:`Esc désélectionner / fermer`,detailedView:`vue détaillée`,closeBtn:`✕ fermer`,selectAgentDetail:`Sélectionnez un agent pour des informations détaillées`,selectAgentBody:`Cliquez un agent de la liste pour métriques détaillées, journaux d'outils, sortie en flux et plus — similaire à la vue détaillée de l'historique.`,navigateWord:`naviguer`,selectWord:`sélectionner`,deselectWord:`désélectionner`},m={wsNotConnected:`WebSocket non connecté`,noData:`Aucune donnée de débogage reçue. Le serveur ne prend peut-être pas en charge le débogage de contexte.`,title:`Décomposition du contexte`,windowUsage:`Utilisation de la fenêtre`,contextMode:`Mode de contexte`,fetching:`Récupération de la décomposition du contexte…`,systemPrompt:`Prompt système`,tools:`Outils`,messages:`Messages`,tokenAllocation:`Allocation des jetons`,systemTitle:`Système : {{tokens}}`,toolsTitle:`Outils : {{tokens}}`,messagesTitle:`Messages : {{tokens}}`,system:`Système`,toolBreakdown:`Décomposition des outils`,messagesSummary:`Messages ({{count}}) — {{total}} tok`,barWithTokens:`Fenêtre de contexte : {{tokens}} / {{max}} jetons ({{pct}})`,barPct:`Fenêtre de contexte : {{pct}}`,barClick:` — cliquez pour la répartition`},h={header:`✨ Affiner le prompt`,autoSend:`envoi auto dans {{count}} s`,cancelTitle:`Annuler (Échap)`,editLabel:`Modifier le prompt affiné :`,editPlaceholder:`Modifier le prompt affiné...`,useEdit:`Utiliser la modif.`,original:`Original`,refined:`Affiné`,yourLanguage:`(votre langue)`,refinedTitle:`Cliquez ou appuyez sur Entrée pour utiliser cette version`,english:`Anglais`,englishTitle:`Appuyez sur e pour la version anglaise`,hintRefined:`affiné`,hintEnglish:`Anglais`,hintOriginal:`original`,hintEdit:`modifier`,hintRetry:`réessayer`,edit:`Modifier`,useRefined:`Utiliser l'affiné`,langOriginal:`Original`,langEnglish:`English`,languageTitle:`Switch default refine language — Original vs English`,yolo:`YOLO`,yoloTitle:`Bypass tool confirmation prompts`,refining:`Refining…`,sendAsIs:`Send as-is`,failedHeader:`Refinement failed`,retry:`Retry (more time)`,retryBetter:`Réessayer mieux`,retryFallback:`Retry with {{model}}`,pickModel:`Another model…`,pickModelTitle:`Retry refinement with another model`,pickModelHint:`Pick a provider/model to re-run this refinement on. Your session model stays unchanged.`},g={heading:`Spécifications`,subtitle:`Afficher et gérer le développement piloté par les spécifications`,empty:`Aucune spec trouvée. Utilisez {{command}} pour en créer une.`,tasks:`Tâches ({{count}})`,doneCount:`{{count}} terminée(s)`,runningCount:`{{count}} en cours`,pendingCount:`{{count}} en attente`,runTitle:`Exécuter cette spec comme un tableau Goal en direct`,run:`Exécuter`,list:`Liste`,graph:`Graphe`,loadingTasks:`Chargement des tâches…`},_={heading:`Vérificateur de résilience F5`,subtitle:`Confirme que la dernière session active, la transcription et l'état de l'UI survivent à un rafraîchissement de page. Ouvrez cette vue, puis appuyez sur F5 — chaque ligne verte doit rester verte.`,recordProbe:`Enregistrer une sonde`,latestSession:`Dernière session active`,restoredLocal:`Restauré depuis localStorage`,sessionIdExtra:`id de session : {{id}}`,noSessionYet:`aucune session n'a encore été démarrée`,activePointer:`Pointeur de session active`,lastVisited:`horodatage lastVisitedAt`,never:`jamais`,persistedEnv:`Environnement persisté`,transcriptRehydrate:`Réhydratation de la transcription`,localTranscript:`Transcription locale récupérée`,messagesExtra:`{{count}} messages, {{queued}} en file`,noMessages:`0 message`,noBleed:`Pas de fuite entre sessions`,bleedExtra:`lié={{bound}} vs actif={{active}}`,transcriptBinds:`la transcription se lie à la session active`,uiWorkspace:`Espace de travail UI`,noneValue:`(aucun)`,payloadSize:`Charge utile localStorage (4 clés) : {{count}} caractères`,probeLog:`Journal des sondes`,noProbes:`Aucune sonde pour le moment — appuyez sur le bouton « Enregistrer une sonde » en haut, ou sur F5 dans cette vue, pour enregistrer un contrôle de réhydratation.`,simulatedF5:`F5 simulé : relance de persist rehydrate`},v={status:{pending:`En attente`,in_progress:`En cours`,review:`Revue`,failed:`Échoué`,completed:`Terminé`,queued:`En file`,blocked:`Bloqué`,cancelled:`Annulé`},newTaskTitle:`Nouvelle tâche`,newTaskPlaceholder:`Titre de la tâche…`,addTask:`Ajouter la tâche`,empty:`Aucune phase pour l'instant — lancez une exécution Goal pour remplir le tableau.`,summary:`{{phases}} phases · {{tasks}} tâches`,phases:`Phases`,statusTab:`Statut`,dropHere:`Déposer les tâches ici`,emptySpec:`Aucune tâche dans cette spec pour le moment.`,depGraphHeading:`Graphe de dépendances`,worktreePrefix:`worktree : {{branch}}`},y={trendUp:`En hausse`,trendDown:`En baisse`,trendStable:`Stable`,heading:`Tableau de bord de débogage`,subtitle:`Surveillance en temps réel pour WrongStack WebUI`,refreshLabel:`Actualiser :`,lastUpdated:`Dernière mise à jour : {{time}}`,fetchFailed:`Échec de la récupération des métriques`,fileWatcher:`Observateur de fichiers`,watcherStatus:`Statut de l'observateur`,running:`En cours`,stopped:`Arrêté`,activeProjects:`Projets actifs`,projectsWatched:`Projets surveillés`,fileChanges:`Modifications de fichiers`,totalDetected:`Total détecté`,filesProcessed:`Fichiers traités`,afterHash:`Après filtre de hachage`,broadcastsSent:`Diffusions envoyées`,toClients:`Aux clients WebUI`,debounceResets:`Réinitialisations anti-rebond`,rapidWrites:`Écritures rapides successives`,avgDebounce:`Délai anti-rebond moyen`,actualDelay:`Délai réel appliqué`,totalDelay:`Délai total`,sumDelays:`Somme de tous les délais`,browserPerf:`Performances du navigateur`,heapUsed:`Tas utilisé`,jsHeap:`Tas JavaScript`,heapTotal:`Tas total`,totalHeap:`Taille totale du tas`,pageUptime:`Durée de la page`,sinceLoad:`Depuis le chargement`,rawData:`Données brutes`},b={allowlistTitle:`Liste des modèles autorisés`,modelCount_one:`{{count}} modèle`,modelCount_other:`{{count}} modèles`,using:`Utilisé`,noModelPicked:`(aucun modèle choisi)`,clearAllowlist:`Vider la liste autorisée`,clearAllowlistAria:`Vider la liste autorisée pour {{provider}}`,refresh:`Actualiser depuis le serveur`,refreshAria:`Actualiser la liste des modèles pour {{provider}}`,probing:`Vérification…`,searchPlaceholder:`Rechercher des modèles…`,use:`Utiliser`,useModelAria:`Utiliser le modèle {{model}} pour {{provider}}`,differsHint:`La liste vérifiée diffère de la liste enregistrée — relancez {{command}} pour persister.`},x={expandChip:`Déplier {{label}}`,collapseChip:`Replier {{label}}`,ahead:`{{count}} en avance`,behind:`{{count}} en retard`,linesAdded:`{{count}} lignes ajoutées`,linesDeleted:`{{count}} lignes supprimées`,untrackedFiles:`{{count}} fichiers non suivis`,customizeTitle:`Personnaliser les puces du dock`,dockChips:`Puces du dock`,noActiveGoal:`Aucun objectif actif`,noActiveGoalDetail:`Lancez un objectif depuis le chat ou la commande goal.`},S={leaderBadge:`LEADER`,iters:`Itér.`,tools:`Outils`,activityBins:`Activité (12 bins)`,streamingOutput:`Sortie en flux`,recentTools:`Outils récents`,finalOutput:`Sortie finale`,heading:`Moniteur d'agents`,prevAgent:`Agent précédent`,nextAgent:`Agent suivant`,closeAria:`Fermer le moniteur d'agents`,hintPage:`←→ page`,hintNavigate:`↑↓ naviguer dans la liste`,hintEsc:`Esc fermer`},C={resize:`Redimensionner les terminaux`,labelSingular:`Terminal`,labelPlural:`Terminaux`,projectShell:`Shell du projet`,maxTerminals:`Maximum {{count}} terminaux`,newTerminal:`Nouveau terminal`,restart:`Redémarrer le terminal actif`,closeAll:`Fermer tous les terminaux`,closeDock:"Fermer le dock de terminal (Ctrl+`)",closeTab:`Fermer {{name}}`,processExited:`[processus terminé avec le code {{code}}]`},w={liveStream:`Flux en direct`,events_one:`{{count}} événement`,events_other:`{{count}} événements`,interruptTitle:`Arrêter coopérativement cet agent à sa prochaine étape (pas un kill de processus)`,interrupt:`⏸ Interrompre`,interrupting:`…`,loading:`Chargement de la session…`,done:`✓✓ terminé`,read:`✓ lu`,delivered:`⏳ livré`,agent:`Agent`,you:`Vous`,working:`{{name}} · en cours`,claude:`Claude`,priority:`Priorité`,placeholder:`{{label}} → cette session…`,send:`Envoyer`,sendHint:`⌘/Ctrl+Entrée pour envoyer · visible à la prochaine itération de l'agent`,msgType:{steerLabel:`🔄 Orienter`,steerHint:`Ajuster le comportement en cours de tâche`,askLabel:`❓ Demander`,askHint:`Question — attend une réponse`,assignLabel:`📋 Assigner`,assignHint:`Une tâche à traiter`,noteLabel:`💬 Note`,noteHint:`Pour info, non urgent`},sentRunning:`Livré — l'agent en cours le verra à sa prochaine étape`,sentIdle:`Livré — la cible est inactive ; apparaît dans sa boîte, lu à la prochaine exécution`,sentFailed:`Échec : {{error}}`,interruptReason:`L'opérateur a demandé l'arrêt depuis Fleet HQ`,interruptSent:`Interruption envoyée — l'agent s'arrête à la prochaine étape (pas un kill)`,interruptFailed:`Échec de l'interruption : {{error}}`},T={empty:`Aucun effet de bord enregistré pour le moment.`,emptyHint:`Les commandes bash, installations de paquets et requêtes réseau apparaîtront ici.`,heading:`Effets de bord`,exportTitle:`Exporter les effets de bord filtrés en CSV`,all:`Tous`,colTime:`Heure`,colTool:`Outil`,colRisk:`Risque`,colDetail:`Détail`,colOutcome:`Résultat`},E={elapsedHm:`il y a {{h}}h {{m}}m`,elapsedMs:`il y a {{m}}m {{s}}s`,elapsedS:`il y a {{s}}s`,heading:`Moniteur de flotte`,clientsHeading:`Clients connectés`,terminal:`Terminal`,webui:`UI Web`,repl:`REPL`,totalConnected:`connectés au total`,mailQueue:`File d'attente`,total:`Total`,open:`Ouverts`,unread:`Non lus`,agents:`Agents`,messagesSub:`messages`,uncompletedSub:`inachevés`,waitingSub:`en attente`,ofTotal:`sur {{count}} au total`,agentRoster:`Registre des agents`,liveMailActivity:`Activité mail en direct`,noActivity:`Aucune activité récente`,mailboxAgents:`Agents de la boîte`,noMailboxAgents:`Aucun agent enregistré`,moreCount:`+{{count}} de plus`,agentFallback:`agent`,fleetAgents:`Agents de la flotte`,noFleetAgents:`Aucun agent de flotte en cours`,iter:`itér.`,mailType:{sent:`Envoyé`,delivered:`Livré`,read:`Lu`,completed:`Terminé`}},D={status:{pending:`en attente`,queued:`en file`,in_progress:`en cours`,blocked:`bloqué`,review:`revue`,failed:`échoué`,completed:`terminé`,cancelled:`annulé`},activityHeading:`Activité`,feedEmpty:`Rien pour l'instant — les événements apparaissent ici à mesure que les agents prennent et terminent des tâches.`,destroyTitle:`Détruire le projet SDD ?`,destroyDesc:`Cela efface le run et son travail. Irréversible (le revert optionnel préserve l'historique).`,stopRun:`Arrêter le run`,stopRunAgents_one:`Arrêter le run ({{count}} agent actif)`,stopRunAgents_other:`Arrêter le run ({{count}} agents actifs)`,removeWorktreesAll:`Supprimer tous les worktrees git + branches wstack/ap/* — y compris le travail non fusionné`,removeWorktreesCount_one:`Supprimer {{count}} worktree git + branches wstack/ap/* — y compris le travail non fusionné`,removeWorktreesCount_other:`Supprimer {{count}} worktrees git + branches wstack/ap/* — y compris le travail non fusionné`,deleteArtifacts:`Supprimer tous les artefacts SDD (specs, graphe de tâches, board, session)`,revertMerged_one:`Revert aussi {{count}} commit fusionné`,revertMerged_other:`Revert aussi {{count}} commits fusionnés`,revertHint:`Ajoute des commits de revert (historique préservé). Refusé si l'arbre de travail est sale.`,baseBranchFallback:`la branche de base`,noteLeaveMerged:`Les commits fusionnés resteront sur la branche de base. Cochez la case ci-dessus pour les annuler aussi.`,noteAbandon:`Assurez-vous de vraiment vouloir abandonner ce run.`,destroying:`Destruction…`,destroyAll:`Tout détruire`,kanbanBacklog:`Backlog`,kanbanReady:`Prêt`,kanbanRunning:`En cours`,kanbanReview:`Revue`,kanbanFailed:`Échec`,kanbanDone:`Terminé`,kanbanEmpty:`vide`},O={collapseToLines:`Réduire aux {{count}} premières lignes`,showAllLines:`Afficher les {{total}} lignes ({{more}} de plus)`,exitCode:`code de sortie :`,jsonLines:`JSON · {{count}} lignes`,collapse:`réduire`,expand:`déplier`},k={heading:`Design Studio — Galerie`,kitsCount:`{{count}} kits`,searchPlaceholder:`Rechercher des kits…`,stackTitle:`Stack pour Use + Materialize`,wrote:`{{path}} écrit`,materializeFailed:`Échec de matérialisation : {{error}}`,verifyError:`Vérifier : {{error}}`,verifyOffPalette:`Vérifier : {{pct}} % on-palette — {{count}} off-palette dans {{files}} fichier(s)`,verifyClean:`Vérifier : propre ✓ ({{files}} fichier(s) on-palette)`,writing:`Écriture du fichier de thème…`,scanning:`Analyse des fichiers UI…`,active:`Actif`,reapply:`Réappliquer`,use:`Utiliser`,materializeTitle:`Écrire les tokens dans un fichier de thème {{stack}}`,materialize:`Matérialiser`,verifyTitle:`Scanner les fichiers UI pour les couleurs hors palette`,verify:`Vérifier`,colors:`Couleurs`},A={summary_one:`{{count}} phase · {{pct}} % terminé`,summary_other:`{{count}} phases · {{pct}} % terminé`,switchBoard:`Changer de tableau`,boardsCount_one:`{{count}} tableau…`,boardsCount_other:`{{count}} tableaux…`,toggleAutonomousTitle:`Basculer le mode autonome`,autonomous:`Autonome`,manual:`Manuel`,resumeTitle:`Reprendre l'exécution`,pauseTitle:`Mettre en pause`,resume:`Reprendre`,pause:`Pause`,stopTitle:`Arrêter l'exécution — annule les agents en cours immédiatement`,stop:`Arrêter`,newTitle:`Effacer ce tableau et démarrer une nouvelle exécution Goal`,newLabel:`Nouveau`,revertConfirm:`Annuler les commits de l'exécution ?`,revertTitle:`Annuler cette exécution — git-revert des commits déposés et suppression des worktrees`,revert:`Annuler`,goal:`Objectif`,planning:`Planification des phases…`,planningBody:`Votre objectif a été reçu. WrongStack le décompose en phases et tâches — le tableau apparaît ici dès que le plan est prêt.`,startHeading:`Démarrer un plan de phases`,startBody:`Décrivez ce que vous voulez construire. WrongStack planifie les phases et tâches, puis les exécute — observez et pilotez l'exécution sur le tableau.`,startPlaceholder:`ex. Construire une API REST de gestion d'utilisateurs avec Express et SQLite...`,isolateLabel:`Isoler chaque phase dans son propre worktree git`,startButton:`Démarrer Goal`,ctrlHint:`Ctrl+Entrée pour démarrer`,isolateOn:`les phases tournent dans des worktrees isolés, fusionnés en squash`,isolateOff:`les phases tournent directement sur la branche courante`,lanes:`Voies`,graph:`Graphe`,planningAck:`🚀 **Goal** — compris. Je planifie les phases pour votre objectif…`},j={noObservers:`Aucun observateur en direct`,observerTitle:`Rejoindre comme observateur en lecture seule (Phase 1)`,observerRole:`observateur`,annotatorTitle:`Rejoindre comme annotateur — laisser des notes sur les appels d'outils (Phase 2)`,annotatorRole:`annotateur`,controllerTitle:`Rejoindre comme contrôleur — peut mettre en pause la boucle de l'agent (Phase 3)`,controllerRole:`contrôleur`,errorPrefix:`Collab : {{error}}`,dismiss:`ignorer`,observers_one:`{{count}} observateur`,observers_other:`{{count}} observateurs`,annotationsTitle:`{{count}} annotation(s) ouverte(s) — annotateurs en train de réviser`,notes_one:`{{count}} note`,notes_other:`{{count}} notes`,pausedTitle:`Boucle de l'agent en pause — un contrôleur révise`,paused:`en pause`,joinedTitle:`Rejoint {{time}}`,grantTitle:`Donner le contrôle — promouvoir ce participant au contrôleur`,injectTitle:`Injecter un résultat synthétique pour un appel d'outil en cours`,inject:`Injecter`,resumeTitle:`Reprendre la boucle de l'agent`,resume:`Reprendre`,pauseTitle:`Mettre en pause l'agent avant le prochain appel d'outil`,pauseAgent:`Mettre en pause l'agent`,leaveTitle:`Quitter la session d'observation`,leave:`Quitter`,injectToolResult:`Injecter un résultat d'outil`,close:`fermer`,targetTool:`id tool_use cible`,targetPlaceholder:`choisir un appel en cours ou saisir un id tool_use`,toolFallback:`outil`,noPendingTools:`Aucun appel d'outil en cours — saisissez un id tool_use ou mettez l'agent en pause d'abord.`,resultContent:`Contenu du résultat`,resultPlaceholder:`Résultat d'outil synthétique fourni à l'agent au lieu d'exécuter l'outil`,markError:`marquer comme erreur`,reasonPlaceholder:`raison (journal d'audit)`,queueInjection:`File d'injection`,controllerInjection:`injection contrôleur`},M={reconnecting:`Reconnexion au backend (tentative {{attempt}}) — nouvel essai dans {{remaining}} s`,disconnected:`Déconnecté du backend`,retry:`Réessayer`,retryTitle:`Réessayer la connexion maintenant`,dismissTitle:`Ignorer (la puce dans la barre supérieure affiche toujours le statut)`},N={modePrefix:`mode :`,activeTitle:`Mode actif`,heading:`Mode`,defaultName:`Par défaut`,defaultDesc:`Comportement standard de l'agent`},P={clickTitle:`Cliquez pour la répartition des coûts par tour`,heading:`Répartition des coûts`,noPricing:`Aucune tarification pour le modèle actuel — les valeurs de coût sont nulles.`,noTurns:`Aucun tour terminé pour le moment. Lancez un prompt pour voir le coût par tour ici.`,topExpensive_one:`Tour le plus cher`,topExpensive_other:`Les {{count}} tours les plus chers`},F={runDefault:`Par défaut du run`,useRunDefault:`Utiliser le défaut du run`,filterPlaceholder:`Filtrer les modèles…`,loading:`Chargement des modèles…`,noMatch:`Aucune correspondance`},I={heading:`Changer de modèle`,filterPlaceholder:`Filtrer les fournisseurs et modèles…`,noSavedProviders:`Aucun fournisseur enregistré — enregistrez d'abord une clé dans les Paramètres.`,active:`actif`},L={todos:`À faire`,tasks:`Tâches`,plan:`Plan`},R={toggleAria:`Basculer : {{content}}`,removeTitle:`Supprimer la tâche`,removeAria:`Supprimer « {{content}} »`,completedCount_one:`{{count}} terminée`,completedCount_other:`{{count}} terminées`},z={start:`Démarrer`,complete:`Terminer`,retry:`Réessayer`,assign:`Affecter`,assignTitle:`Affecter un agent`,unassigned:`Non affecté`,statusPending:`En attente`,statusInProgress:`En cours`,statusBlocked:`Bloqué`,statusFailed:`Échec`,statusReview:`Revue`,statusDone:`Terminé`,startTitle:`Démarrer`,completeTitle:`Terminer`,fail:`Échouer`,failTitle:`Marquer comme échoué`,boardCount:`{{total}} tâches · {{done}} terminées`},B={toolCalls_one:`{{count}} appel d'outil`,toolCalls_other:`{{count}} appels d'outil`},V={removeTitle:`Supprimer la référence`,linesCount_one:`{{count}} ligne`,linesCount_other:`{{count}} lignes`},H={statusOpen:`Ouvert`,statusInProgress:`En cours`,statusDone:`Terminé`,startTitle:`Démarrer`,doneTitle:`Marquer comme terminé`,reopenTitle:`Rouvrir`,reopen:`Rouvrir`},U={heading:`@ Fichiers`,noMatch:`Aucun fichier ne correspond à « {{query}} »`,searching:`Recherche dans le projet…`},W={dismiss:`Ignorer`},G={placeholder:`Rechercher dans le chat…`,prevHit:`Résultat précédent`,nextHit:`Résultat suivant`,close:`Fermer (Esc)`},K={statusPending:`En attente`,statusReady:`Prêt`,statusRunning:`En cours`,statusPaused:`En pause`,statusCompleted:`Terminé`,statusFailed:`Échec`,statusSkipped:`Ignoré`,heading:`Phases`,autonomousOn:`● Autonome`,autonomousOff:`○ Manuel`,autonomousOnTitle:`Mode autonome actif — cliquer pour mettre en pause`,autonomousOffTitle:`Mode manuel — cliquer pour activer l'autonome`,overallProgress:`Progression globale`,tasksSuffix:`{{done}}/{{total}} tâches`,agentsSuffix_one:`{{count}} agent`,agentsSuffix_other:`{{count}} agents`},q={triggerTitle:`Mode de fenêtre de contexte`,ctxPrefix:`ctx :`,opsHeading:`Opérations de contexte`,compactNow:`Compacter maintenant`,compactNowDesc:`Élider les anciennes sorties d'outil`,compactAggressive:`Compaction agressive`,compactAggressiveDesc:`Élision maximale maintenant`,repairContext:`Réparer le contexte`,repairDesc:`Corriger les blocs tool-use orphelins`,debugContext:`Déboguer le contexte`,debugDesc:`Répartition de la taille par section`,windowHeading:`Fenêtre de contexte`,keepElide:`garder {{k}} récents · élider {{t}}+ jetons`,fallbackName:`Équilibré`,fallbackDesc:`Compaction roulante par défaut`},J={kindAssistant:`Assistant`,kindThinking:`Réflexion`,kindToolCall:`Appel d'outil`,kindToolResult:`Résultat d'outil`,kindError:`Erreur`,kindStatus:`Statut`,kindSystem:`Système`,title:`Historique du chat`,copyTitle:`Copier l'historique du chat de l'agent`,empty:`Pas encore d'historique de chat pour cet agent.`},Y={heading:`Mode d'autonomie`,titlePrefix:`Autonomie : {{label}}`,descOff:`Contrôle manuel total — l'agent attend votre saisie.`,descSuggest:`L'agent suggère les prochaines étapes mais attend une approbation.`,descAuto:`L'agent continue automatiquement après un bref délai de confirmation.`,descEternal:`L'agent fonctionne de façon autonome jusqu'à la fin de l'objectif.`,descEternalParallel:`Exécution autonome multi-agents — mode flotte.`},X={heading:`File d'attente des messages`,subtitle:`{{count}} en file · messages envoyés avant la fin de l'agent`,btwTitle:`Au passage — envoyé en suivi sans interrompre l'agent en cours`,steerTitle:`Piloter — interrompt l'agent en cours et le redirige avec ce message`,queueTitle:`En file — retenu jusqu'à la fin du run de l'agent, puis envoyé dans l'ordre`,sortNewestTitle:`Trié du plus récent — cliquer pour trier du plus ancien`,sortOldestTitle:`Trié du plus ancien — cliquer pour trier du plus récent`,newest:`Plus récent`,oldest:`Plus ancien`,clear:`Vider`,clearTitle:`Effacer tous les messages en file`,closeTitle:`Fermer`,emptyTitle:`La file est vide`,emptyBody:`Utilisez les boutons btw / steer / ajouter à la file à côté de l'entrée pour ajouter des messages. Les éléments en file sont envoyés dans l'ordre à la fin du run de l'agent.`,removeTitle:`Retirer de la file`,footer:`Les messages sont envoyés dans l'ordre d'arrivée à la fin du run de l'agent. Utilisez le tri pour voir les plus récents d'abord.`},Z={heading:`Points de contrôle de session`,countSuffix_one:`{{count}} point de contrôle`,countSuffix_other:`{{count}} points de contrôle`,description:`Rembobiner la session à n'importe quel point de contrôle. Les messages et modifications de fichiers reviennent à ce point — le LLM continue comme si rien ne s'était passé après.`,emptyTitle:`Pas encore de points de contrôle`,emptyBody:`Les points de contrôle sont créés automatiquement à chaque message envoyé. Envoyez quelques messages et revenez.`,latest:`récent`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msgs`,footerPre:`Cliquer un point de contrôle pour rembobiner`,footerPost:`pour fermer`},Q={statusActive:`Actif`,statusPaused:`En pause`,statusDone:`Terminé`,statusFailed:`Échec`,statusAbandoned:`Abandonné`,heading:`Objectif`,refined:`Raffiné`,progress:`Progression`,iterations:`itérations`,deliverables:`Livrables`,recentActivity:`Activité récente`},$={cleanTitle_one:`Nettoyer {{count}} worktree orphelin ?`,cleanTitle_other:`Nettoyer {{count}} worktrees orphelins ?`,cleanMessage:`Supprime forcément chaque worktree git + branche wstack/ap laissé par des runs précédents. Le travail non fusionné dedans est perdu.`,cleanConfirm:`Nettoyer les orphelins`,orphanCount_one:`{{count}} worktree orphelin de runs précédents`,orphanCount_other:`{{count}} worktrees orphelins de runs précédents`,andMore:`…et {{count}} de plus`,cleanButtonTitle:`Supprimer forcément tous les worktrees + branches orphelins`,removed_one:`✓ {{count}} worktree orphelin supprimé.`,removed_other:`✓ {{count}} worktrees orphelins supprimés.`,cleanupFailed:`échec du nettoyage`,lanesHeading:`Worktrees`,base:`base`,isolatedCount_one:`{{count}} isolé`,isolatedCount_other:`{{count}} isolés`,statusAllocating:`allocation`,statusActive:`actif`,statusCommitting:`commit`,statusMerging:`fusion`,statusMerged:`fusionné`,statusConflict:`conflit`,statusFailed:`échec`,conflictBadge:`CONFLIT`,graphAria:`Graphe de branches worktree à partir de {{base}}`,mergedLabel:`✓ fusionné → {{base}}`},ee={heading:`Processus en cours`,subtitle:`{{active}} actifs · {{total}} total`,killAll:`Tout tuer`,emptyTitle:`Aucun processus suivi`,emptyBody:`Les processus apparaissent ici quand l'agent lance des outils bash ou exec. Les processus actifs affichent une LED pulsante.`,pidLabel:`PID {{pid}}`,protected:`protégé`,protectedTitle:`Protégé — survit à kill/killAll`,background:`en arrière-plan`,backgroundTitle:`Tâche détachée — continue après l’arrêt de la CLI/WebUI`,confirmKillBackground:`Terminer le processus détaché en arrière-plan {{pid}} ?`,confirmKillAll:`Terminer les {{count}} processus en cours ?`,killTitle:`Tuer PID {{pid}}`},te={tooLarge:`Diff omis (fichier trop volumineux pour un rendu en ligne).`},ne={placeholder:`Ajouter un modèle de repli…`,emptyHint:`Essayés dans l'ordre quand le modèle principal est limité ou bloqué.`,moveUp:`Monter`,moveDown:`Descendre`},re={loading:`Chargement des sessions...`,apiUnavailable:`API de session indisponible :`,empty:`Aucune session en direct. Ouvrez une autre instance wstack pour la voir ici.`,heading:`Sessions en direct ({{count}})`,autoRefresh:`actualisation toutes les 5 s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} itér · {{tools}} outils · {{ago}}`,andMore:`... et {{count}} de plus`,noAgents:`Aucun agent`},ie={applyTitle:`Écrire la version modifiée sur le disque`,applying:`Application…`,applied:`Appliqué`,apply:`Appliquer`},ae={showStack_one:`Afficher la trace de pile ({{count}} cadre)`,showStack_other:`Afficher la trace de pile ({{count}} cadres)`,hideStack_one:`Masquer la trace de pile ({{count}} cadre)`,hideStack_other:`Masquer la trace de pile ({{count}} cadres)`},oe={liveHeading:`Live`,clients:`Clients`,agents:`Agents`,model:`Modèle`,mode:`Mode`,toolCalls:`Appels d'outils`,displayHeading:`Affichage`,statsHud:`HUD stats`,legends:`Légendes`,minimap:`Minicarte`,zoomControls:`Contrôles zoom`,animateWires:`Animer les fils`,backgroundHeading:`Arrière-plan`,bgDots:`Points`,bgLines:`Lignes`,bgCross:`Croix`,bgNone:`Aucun`},se={noParams:`(aucun paramètre)`,itemCount_one:`{{count}} élément`,itemCount_other:`{{count}} éléments`,keyCount_one:`{{count}} clé`,keyCount_other:`{{count}} clés`},ce={roleYou:`Vous`,roleTool:`Outil`,roleThinking:`Réflexion`,roleAssistant:`Assistant`,inputLabel:`Entrée`,downloadTitle:`Télécharger comme fichier`,empty:`(vide)`,hideDetails:`Masquer les détails`,showDetails:`Afficher les détails`,showDetailsLines_one:`Afficher les détails ({{count}} ligne)`,showDetailsLines_other:`Afficher les détails ({{count}} lignes)`,editHint:`⌘/Ctrl+Entrée pour enregistrer · Échap pour annuler`,saveResend:`Enregistrer et renvoyer`,thinkingProcess:`Processus de réflexion`,thinkingMeta:`itér {{iter}} · {{dur}} · {{lines}}`,replay:`relecture`,linesSuffix_one:`{{count}} ligne`,linesSuffix_other:`{{count}} lignes`,copyLog:`Copier le journal`,showFullLog:`Afficher le journal complet`,typing:`Écrit…`,noContent:`Aucun contenu`,imageNotRetained:`L'aperçu de l'image n'est pas conservé après actualisation`,failedToSend:`⚠ Échec de l'envoi`,autoPaused:`⚠️ _Avance auto en pause — nombre maximum de tours automatiques consécutifs atteint. Saisissez quelque chose pour continuer (l'autonomie reste activée)._`,autoLoopHalted:`⚠️ _Envoi automatique arrêté car la même invite s'est répétée. L'autonomie reste active ; saisissez une nouvelle invite pour réinitialiser la protection contre les boucles._`,rsIterations:`Itérations : {{n}}`,rsTools:`Appels d'outils : {{n}}`,rsElapsed:`Écoulé : {{s}}`,rsCost:`Coût : {{c}}`,useInput:`Entrée : {{n}}`,useOutput:`Sortie : {{n}}`,useCacheRead:`Lecture cache : {{n}}`,useCost:`Coût : {{c}}`,renderedLabel:`Rendu`,rawLabel:`Brut`,showRenderedTitle:`Afficher le markdown rendu`,showRawTitle:`Afficher la source markdown brute`,editTitle:`Modifier et renvoyer ce prompt`,editLabel:`Modifier`,unpinTitle:`Détacher`,pinTitle:`Épingler cette réponse`,pinnedLabel:`Épinglé`,pinLabel:`Épingler`,regenerateTitle:`Régénérer cette réponse`,retryLabel:`Réessayer`},le={toolFallback:`outil`,toolFailed:`Outil échoué`},ue={heading:`Raccourcis clavier`,footerPre:`Appuyez sur`,footerPost:`à tout moment pour rouvrir cette liste.`,sectionGlobal:`Global`,sectionTuiParity:`Parité panneau TUI`,sectionFleet:`Flotte & Agents`,sectionChatInput:`Saisie du chat`,sectionChat:`Chat`,sectionChatNav:`Navigation du chat (hors saisie)`,dCommandPalette:`Ouvrir la palette de commandes`,dShowOverlay:`Afficher cette overlay de raccourcis`,dToggleSidebar:`Basculer la barre latérale`,dOpenPanel:`Ouvrir le panneau latéral (Session, Agents, Historique, Fichiers, Changes, Messagerie, Compétences, Office Map)`,dDesignStudio:`Ouvrir le panneau Design Studio`,dWorktrees:`Ouvrir le panneau Worktrees`,dSettings:`Ouvrir Paramètres`,dMemory:`Ouvrir Memory`,dFocusInput:`Focaliser la saisie du message`,dSessionPanel:`Panneau de session`,dFleetOverlay:`Overlay moniteur de flotte`,dAgentsOverlay:`Overlay moniteur d'agents`,dWorktreeMonitor:`Moniteur de worktrees`,dPlanPanel:`Panneau plan`,dTodosPanel:`Panneau todos`,dQueuePanel:`Panneau file`,dProcessMonitor:`Moniteur de processus`,dGoalPanel:`Panneau objectif`,dSessionsDashboard:`Tableau des sessions`,dOfficeMap:`Office map du coordinateur`,dDockPicker:`Sélecteur de puces du dock`,dOpenFleet:`Ouvrir l'overlay moniteur de flotte`,dOpenAgents:`Ouvrir l'overlay moniteur d'agents`,dNavigateAgents:`Naviguer parmi les agents`,dSelectAgent:`Sélectionner l'agent focalisé`,dCloseOverlay:`Fermer l'overlay actif`,dSendMessage:`Envoyer le message`,dNewline:`Insérer un saut de ligne`,dRecallPrev:`Rappeler le prompt précédent (entrée vide)`,dRecallNext:`Rappeler le prompt suivant`,dSlashPopup:`Ouvrir le popup de commandes slash`,dAutocomplete:`Auto-compléter la commande surlignée`,dDismissPopup:`Fermer le popup / vider l'entrée`,dSearchChat:`Rechercher dans le chat actuel`,dClearContext:`Vider le contexte (comme /clear)`,dNewSession:`Démarrer une nouvelle session (comme /new)`,dExportMarkdown:`Exporter le chat en markdown`,dModelSwitcher:`Overlay sélecteur de modèle rapide`,dCompactDensity:`Basculer la densité UI compacte`,dAbortRun:`Abandonner le run en cours (pendant l'exécution)`,dFocusNext:`Focaliser le message suivant (alias : ↓)`,dFocusPrev:`Focaliser le message précédent (alias : ↑)`,dJumpFirst:`Aller au premier message`,dJumpLast:`Aller au dernier message`,dCopyFocused:`Copier le texte du message focalisé`,dClearFocused:`Effacer le message focalisé`},de={titleFallback:`Tableau SDD en direct`,defaultModelTitle:`Modèle worker par défaut au niveau du run (les overrides par tâche priment)`,graphLabel:`Graphe`,kanbanLabel:`Kanban`,retryAllTitle:`Remettre chaque tâche échouée en pending`,retryFailed:`Réessayer échouées ({{count}})`,resume:`Reprendre`,pause:`Pause`,stop:`Arrêter`,cleanTitle:`Supprimer les worktrees git + branches wstack/ap du run`,cleanWorktrees:`Nettoyer worktrees`,rollbackTitle:`Revert {{count}} commit(s) fusionné(s) sur {{base}}`,rollback:`Rollback ({{count}})`,stopping:`Arrêt…`,destroying:`Destruction…`,destroyTitle:`Arrêter, supprimer tous les worktrees, revert optionnel des commits fusionnés et supprimer le projet SDD`,destroy:`Détruire`,statDone:`faits`,statRunning:`en cours`,statFailed:`échec`,statWave:`vague`,statElapsed:`écoulé`,noActiveWorkers:`aucun worker actif`,deadlock:`Impasse — tâches bloquées par un travail échoué :`,noRunTitle:`Aucun run SDD actif.`,noRunBody:`Démarrez-en un via l'assistant New SDD Project ou /sdd execute dans la CLI — les agents apparaissent ici en direct, chacun dans un worktree isolé.`,clickTaskHint:`cliquer une tâche pour les détails`,lcClean:`Nettoyage`,lcRollback:`Rollback`,lcDestroy:`Destruction`,lcFailed:`{{op}} échoué : {{reason}}`,lcUnknownError:`erreur inconnue`,lcWorktrees_one:`{{count}} worktree supprimé`,lcWorktrees_other:`{{count}} worktrees supprimés`,lcCommits_one:`{{count}} commit reverti`,lcCommits_other:`{{count}} commits revertis`,lcDeleted:`supprimé {{items}}`,lcNothing:`rien à faire`,lcNote:`{{op}} : {{body}} — note : {{reason}}`,lcOk:`{{op}} : {{body}}`},fe={backTitle:`Retour à l'activité`,expandTitle:`Agrandir les détails de la tâche`,collapseTitle:`Réduire les détails de la tâche`,eventLog:`Journal des événements de la tâche`,newestFirst:`plus récents d'abord`,noEvents:`Aucune activité n'a encore été enregistrée pour cette tâche.`,workingOn:`travaille sur cette tâche`,assigned:`assigné`,metaPriority:`Priorité`,metaType:`Type`,metaDuration:`Durée`,metaElapsed:`Écoulé`,metaRetries:`Tentatives`,metaWorktree:`Worktree`,workerModel:`Modèle worker`,runDefault:`défaut du run : {{model}}`,runDefaultPlaceholder:`Défaut du run`,runDefaultPlaceholderModel:`Défaut du run ({{model}})`,verificationCmd:`Commande de vérification`,gatesCompletion:`valide la complétion (exit 0)`,verifyPlaceholder:`ex. pnpm vitest run path/to/file`,addVerify:`+ Ajouter une commande de vérification`,description:`Description`,timeline:`Chronologie`,dependsOn:`Dépend de`,blocks:`Bloque`,newWorkerPlaceholder:`Nom du nouveau worker…`,confirmStop:`Arrêter cette tâche en cours ?`,confirmDelete:`Supprimer cette tâche du run ?`,retryTitle:`Remettre cette tâche en pending`,reassign:`Réassigner`,stopTitle:`Abandonner le worker sur cette tâche`,splitTitle:`Diviser cette tâche en sous-tâches confiées à des workers séparés`,split:`Diviser`,splitHint:`Une sous-tâche par ligne — Titre :: description (description facultative)`,splitPlaceholder:`Écrire la couche données :: ajouter le dépôt
4
- Câbler l'UI`,splitInto:`Diviser en sous-tâches`,deleteTitle:`Retirer cette tâche non démarrée du run`},pe={phaseStart:`Démarrer`,phaseInterview:`Entretien`,phaseSpecReview:`Revue spec`,phasePlanning:`Planification`,phaseTaskReview:`Revue tâches`,phaseRunning:`En cours`,phaseDone:`Terminé`,titleFallback:`Nouveau projet SDD`,questionsSuffix:`{{cur}}/{{max}} questions`,tasksSuffix:`{{count}} tâches`,runCfgTitle:`Config du run — modèle par défaut + chaîne de repli`,modelsLabel:`Modèles`,startRun:`Démarrer le run`,defaultWorkerModel:`Modèle worker par défaut`,leaderDefaultPlaceholder:`Leader / défaut de session`,useSessionDefault:`Utiliser le défaut de session`,fallbackChain:`Chaîne de repli`,appliesToAll:`S'applique à chaque tâche. Override par tâche depuis le board live après le démarrage.`,parallelAgents:`Agents parallèles`,isolateWorktrees:`Isoler dans des worktrees git`,worktreeOn:`Chaque tâche tourne dans son propre worktree, squash-mergé à la fin.`,worktreeOff:`Les tâches tournent directement sur la branche courante (pas d'isolation).`,goalPrompt:`Que voulez-vous construire ?`,goalPlaceholder:`ex. Ajouter un login OAuth (Google + GitHub) avec gestion de session`,startingInterview:`Démarrage de l'entretien…`,startInterview:`Démarrer l'entretien`,introBody:`Un agent isolé vous interviewe pour bâtir une spec, la décompose en un graphe de tâches ordonné par dépendances, puis une vraie flotte multi-agents l'exécute — à suivre en direct sur le board.`,taskGraphSummary:`Graphe de tâches · {{count}} tâches, ordonné par dépendances`,dragToExplore:`glisser pour explorer`,show:`afficher`,goalLabel:`Objectif`,implementationPlan:`Plan d'implémentation`,approveSpec:`Approuver la spec → planifier l'implémentation`,approveTasks:`Approuver les tâches`,approvePlan:`Approuver le plan`,answerPlaceholder:`Répondre à la question…`,changePlaceholder:`Demander un changement…`},me={emptyDir:`vide`,loadFailed:`Échec du chargement des fichiers : {{error}}`,expandAllTitle:`Déplier tous les dossiers`,expandAll:`Tout déplier`,collapseAllTitle:`Replier tous les dossiers`,collapse:`Replier`,folders_one:`{{count}} dossier`,folders_other:`{{count}} dossiers`,currentDirTitle:`Dossier courant : {{path}}`,navigateToTitle:`Aller à {{path}}`,filesSuffix_one:`{{count}} fichier`,filesSuffix_other:`{{count}} fichiers`,goToDir:`aller au dossier`,navigateParentTitle:`Aller au dossier parent de {{path}}`,parentDirectory:`dossier parent`,noFiles:`Aucun fichier trouvé`,copyAbsPath:`Copier le chemin absolu`,copyRelPath:`Copier le chemin relatif`,openInTerminal:`Ouvrir dans le terminal`,openInFileManager:`Ouvrir dans le gestionnaire de fichiers`,mentionInChat:`Mentionner dans le chat`,copyPath:`Copier le chemin`},he={sendSelectionAction:`Envoyer la sélection au chat`,noFilesOpen:`Aucun fichier ouvert`,selectToEdit:`Sélectionnez un fichier dans l'explorateur pour éditer`,sendSelectedTitle:`Envoyer les lignes sélectionnées au chat`,mentionFileTitle:`Mentionner ce fichier dans le chat`,sendToChat:`Envoyer au chat`,mentionFile:`Mentionner le fichier`,loadingEditor:`Chargement de l'éditeur…`,selectTab:`Sélectionnez un onglet pour voir son contenu`},ge={title:`Activité du fichier`,overview:`Aperçu`,changes:`Modifications`,context:`Contexte`,logs:`Journaux`,lines:`lignes`,resizeHint:`Faites glisser pour redimensionner · double-cliquez pour réinitialiser`,refresh:`Actualiser les preuves du fichier`,evidenceCount_one:`{{count}} événement`,evidenceCount_other:`{{count}} événements`,mutations30m:`Modifications · 30 min`,sessions:`Sessions`,actors:`Acteurs`,linkedWork:`Travail lié`,workLinks:`Kanban / tâche`,recentActivity:`Activité récente du fichier`,events:`événements`,noEvidence:`Aucune activité n'est encore attribuée à ce fichier.`,noSessions:`Aucune attribution de session.`,noActors:`Aucune attribution d'acteur.`,noWorkLinks:`Aucun lien Kanban, SDD ou tâche enregistré.`,taskOrTodo:`Task / tâche`,loadingEvidence:`Chargement des preuves du fichier…`,gitToBuffer:`Git HEAD → tampon Monaco actuel`,savedToBuffer:`Dernière version enregistrée → tampon Monaco actuel`,unsaved:`tampon non enregistré`,level:{quiet:`stable`,active:`actif`,churn:`forte rotation`},analysisTitle:{quiet:`Aucune rotation récente`,active:`Ce fichier est en cours de modification`,churn:`Modifications répétées détectées`},analysisBody:{quiet:`Aucune modification attribuée n'a été enregistrée au cours des 30 dernières minutes.`,active:`{{mutations}} modifications par {{actors}} acteurs dans {{sessions}} sessions au cours des 30 dernières minutes.`,churn:`Forte rotation : {{mutations}} modifications par {{actors}} acteurs dans {{sessions}} sessions. Vérifiez les travaux qui se chevauchent avant la prochaine modification.`}},_e={loading:`Chargement des analytics…`,heading:`Tableau Analytics`,autoRefresh:`actualisation toutes les 10 s`,liveSessions:`Sessions en direct`,agents:`Agents`,agentsActive:`{{count}} actifs`,totalEvents:`Événements totaux`,categoriesSub:`{{count}} catégories`,toolCalls:`Appels d'outils`,iterationsSub:`{{count}} itérations`,sessionCost:`Coût de session`,tokensSub:`{{input}} entrée / {{output}} sortie`,sessionDuration:`Durée de session`,messagesSub:`{{count}} messages`,eventsByCategory:`Événements par catégorie`,noEvents:`Aucun événement enregistré.`,topEvents:`Top événements`,activeSessionUsage:`Utilisation session active`,provider:`Fournisseur`,model:`Modèle`,inputTokens:`Jetons d'entrée`,outputTokens:`Jetons de sortie`,cacheRatio:`Ratio cache`,filesRead:`Fichiers lus`,noSession:`Aucune session active ou en attente de données…`,healthErrors:`Santé & erreurs`,errorEvents:`Événements d'erreur`,warningEvents:`Événements d'avertissement`,cacheHitRate:`Taux de hit cache`,totalCategories:`Catégories totales`,waitingData:`En attente de données…`,recentEvents:`Événements récents`,noRecentEvents:`Aucun événement récent. Interagissez avec l'UI pour générer des événements.`},ve={heading:`Bibliothèque de prompts`,searchPlaceholder:`Rechercher des prompts…`,newPrompt:`+ Nouveau prompt`,all:`Tous`,recent:`🕘 Récents`,favorites:`★ Favoris`,noMatch:`Aucun prompt ne correspond.`,newPromptHeading:`Nouveau prompt`,titlePlaceholder:`Titre *`,descPlaceholder:`Description sur une ligne`,categoryPlaceholder:`Catégorie`,tagsPlaceholder:`tags, séparés, par virgule`,contentPlaceholder:`Contenu du prompt * — {{name}} pour les variables`,variables:`Variables`,addVar:`+ var`,varNamePlaceholder:`nom`,varDescPlaceholder:`description`,removeVarTitle:`Supprimer la variable`,required:`requis`,multiline:`multiligne`,enumPlaceholder:`enum : a, b, c`,savePrompt:`Enregistrer le prompt`,saveFailed:`Impossible d'enregistrer le prompt.`,titleContentRequired:`Le titre et le contenu sont requis.`,toggleFavoriteTitle:`Basculer le favori`,selectOption:`— choisir —`,fillMissing:`Remplir : {{missing}}`,insertIntoChat:`Insérer dans le chat`,selectPromptHint:`Sélectionnez un prompt pour prévisualiser et insérer.`},ye={scopeProject:`Projet`,scopeGlobal:`Global`,scopeBundled:`Intégré`,timeoutError:`Délai de la requête dépassé. Veuillez réessayer.`,updateFailed:`Mise à jour échouée`,saveFailed:`Échec de l'enregistrement`,uninstallFailed:`Désinstallation échouée`,noSkillSelected:`Aucune compétence sélectionnée`,selectSkillHint:`Sélectionnez une compétence dans la barre latérale pour voir sa doc`,goToChat:`Aller au chat`,openSourceRepo:`Ouvrir le dépôt source`,copySourceUrl:`Copier l'URL source`,updatedLabel:`↑ Mis à jour : {{list}}`,upToDateLabel:`— À jour : {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Vérifier les mises à jour`,exportTitle:`Exporter la compétence en .md`,editTitle:`Modifier la compétence`,uninstallTitle:`Désinstaller la compétence`,closeTitle:`Fermer et aller au chat`,backTitle:`Reculer`,forwardTitle:`Avancer`,relatedFiles:`Fichiers liés`,references:`Références`,goToSkillTitle:`Aller à {{name}}`,loadingContent:`Chargement du contenu…`,editingLabel:`Modification de {{name}}`,editStats:`{{lines}} lignes · {{words}} mots · {{chars}} caractères`,charsWarningFmt:`⚠ {{used}} Mo / {{limit}} Mo`,draftSaved:`Brouillon enregistré`,draftRestored:`Brouillon restauré`,discardDraft:`Supprimer le brouillon`,splitViewTitle:`Vue scindée`,hidePreviewTitle:`Masquer l'aperçu`,contentPlaceholder:`Contenu de la compétence (markdown)...`,loadFailed:`Échec du chargement du contenu`,noContent:`Aucun contenu disponible`,uninstallSkillHeading:`Désinstaller la compétence`,uninstallConfirm:`Désinstaller {{name}} ?`,uninstallRemovePath:`Cela supprimera la compétence de {{path}} et est irréversible.`,uninstallAction:`Désinstaller`},be={sessionStats:`Stats de session`,clients:`Clients`,input:`Entrée`,output:`Sortie`,cost:`Coût`,agentsSuffix:`agents`,upPrefix:`depuis {{time}}`,webuiClient:`Client WebUI`,disconnected:`Déconnecté`,connected:`Connecté`,tuiClient:`Client TUI`,terminal:`Terminal`,repl:`REPL`,coordinator:`COORDINATEUR`,fleetSummary:`Résumé de la flotte`,toolCallsLabel:`Appels d'outils`,tokensLabel:`Jetons`,coordinatingFleet:`Coordonne la flotte`,donePrefix:`✓ terminé ·`,failedPrefix:`✕ échec ·`,seenPrefix:`vu il y a {{time}}`,availableDesk:`Bureau libre`,mailboxHub:`Centre de messagerie`,unreadSuffix_one:`{{count}} non lu`,unreadSuffix_other:`{{count}} non lus`,allClear:`Tout est lu`,total:`Total`,unreadLabel:`Non lus`,liveActivity:`Activité en direct`,waitingActivity:`En attente d'activité…`,now:`maintenant`,fleetHq:`QG de flotte WrongStack`,live:`EN DIRECT`,legendStatus:`Statut`,legendActive:`Actif`,legendIdle:`Inactif`,legendError:`Erreur`,legendConnections:`Connexions`,legendMail:`Mail`,legendTask:`Tâche`,legendStatusConn:`Statut`,arrange:`Réorganiser`,arrangeTitle:`Disposer les nœuds pour les adapter à la zone disponible`,feed:`Flux`,feedTitle:`Basculer le flux d'activité en direct`,broadcast:`Diffuser`,broadcastTitle:`Diffuser un message à chaque session live du projet`,broadcastToAll:`Diffuser à toutes les sessions`,broadcastPlaceholder:`Message à chaque agent live du projet…`,broadcastSendHint:`⌘/Ctrl+Entrée pour envoyer`,openFullView:`Ouvrir la vue complète des opérations`,rowStatus:`Statut`,rowModel:`Modèle`,rowTool:`Outil`,rowIterations:`Itérations`,rowToolCalls:`Appels d'outils`,rowTokensIn:`Jetons entrants`,rowTokensOut:`Jetons sortants`,rowTokensTotal:`Jetons totaux`,rowContext:`Contexte`,rowCost:`Coût`,rowLastSeen:`Dernière vue`,rowSurface:`Surface`,rowBranch:`Branche`,rowPid:`PID`,rowDir:`Rép.`,rowAgents:`Agents`,rowUptime:`Disponibilité`,rowConnections:`Connexions`,rowTotalMessages:`Messages totaux`,rowUnread:`Non lus`,recent:`Récents`,noSubject:`(sans objet)`,fullOperationStream:`Flux complet des opérations`,closeEsc:`Fermer (Échap)`,idleDesk:`Bureau inactif`,fleetHqLabel:`QG de flotte`,clientsSuffix_one:`{{count}} client`,clientsSuffix_other:`{{count}} clients`,taskFallback:`tâche`,controlLabel:`contrôle`},xe={installTitle:`Installer une compétence`,createTitle:`Créer une compétence`,exportTitle:`Exporter toutes les compétences en .zip`,checkUpdatesTitle:`Vérifier les mises à jour (toutes)`,searchPlaceholder:`Rechercher des compétences…`,loading:`Chargement…`,noSkills:`Aucune compétence installée`,noMatch:`Aucune compétence ne correspond au filtre`,noDescription:`Aucune description`,scopeForeign:`Externe`,installHeading:`Installer la Compétence`,installHint:`Entrez une référence de dépôt GitHub (owner/repo) ou une URL complète.`,installPlaceholder:`ex. wrongstack/skill-name ou https://github.com/owner/repo`,installScope:`Portée d'installation :`,installBtn:`Installer`,installedMsg:`Installée : {{names}}`,installFailed:`Échec de l'installation`,createHeading:`Créer une Compétence`,createHint:`Scaffold une nouvelle compétence. La première ligne est le déclencheur.`,nameLabel:`Nom`,namePlaceholder:`ex. ma-nouvelle-compétence`,descLabel:`Description / Déclencheur`,descPlaceholder:`Utiliser cette compétence quand <situation>.
5
- Déclencheurs : l'utilisateur dit "mot-clé", "autre".`,saveIn:`Enregistrer dans :`,createBtn:`Créer la Compétence`,createdMsg:`Créée : {{name}}`,createFailed:`Échec de la création`},Se={noEvents:`Aucun événement.`},Ce={pickHint:`Choisir un kit — l'agent s'y conformera.`,gallery:`Galerie`,galleryTitle:`Ouvrir la galerie d'aperçu en direct`,stackTitle:`Stack cible`,loading:`Chargement des kits…`,notFound:`Aucun kit de design trouvé.`,bestFor:`Idéal pour :`,light:`Clair`,dark:`Sombre`},we={detached:`(détaché)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Nettoyer les orphelins`,cleanOrphansTitle:`Supprimer tous les worktrees orphelins`,liveBusyTitle:`Un run est actif — arrêtez-le d'abord`,rescanTitle:`Re-scanner`,removed_one:`{{count}} worktree supprimé.`,removed_other:`{{count}} worktrees supprimés.`,failed:`Échec`,mergedIntoBase:`{{branch}} fusionné dans la base.`,conflictMerge:`Conflit en fusionnant {{branch}} : {{files}}`,seeGit:`voir git`,mergeFailed:`Échec de la fusion : {{reason}}`,unknownReason:`inconnu`,mergeConfirmTitle:`Fusionner {{branch}} dans {{base}} ?`,mergeConfirmMsg:`Squash-fusionne cette branche sur la branche de base. S'annule proprement en cas de conflit.`,mergeAction:`Fusionner`,removeConfirmTitle:`Supprimer {{branch}} ?`,removeConfirmMsg:`Supprime forcément le checkout du worktree et efface sa branche. Le travail non fusionné est perdu.`,empty:`Aucun worktree.`,emptyHint:`Les runs SDD / Goal créent des worktrees isolés ici. Les orphelins des runs plantés apparaissent aussi.`,actOpenTerm:`Ouvrir dans le terminal`,actOpenFolder:`Ouvrir le dossier`,actViewChanges:`Voir les modifications`,actMerge:`Fusionner vers la base`,actRemove:`Supprimer / annuler`,live:`actif`,noUncommitted:`Aucune modification non validée`,commitsAhead_one:`{{count}} commit en avance`,commitsAhead_other:`{{count}} commits en avance`,more:`…{{count}} de plus`},Te={heading:`Plan de bureau`,headingHint:`Visualisez votre flotte comme un plan de bureau avec le statut des agents en direct.`,statAgents:`Agents`,statMail:`Courriel`,unreadSuffix:` non lu`,sectionView:`Affichage`,sectionDisplay:`Affichage`,sectionBackground:`Arrière-plan`,sectionRecent:`Activité récente`,eventsTrackedSuffix:` événements suivis`,recentHint:`Les envois de courriel, les spawns d'agents et les changements de statut apparaissent ici.`,sectionShortcuts:`Raccourcis`,sectionLegend:`Légende`,hudLabel:`HUD`,hudDesc:`Afficher l'overlay des statistiques de session en temps réel`,hudToggle:`Activer le HUD`,minimapLabel:`Mini-carte`,minimapDesc:`Afficher la mini-carte d'aperçu`,minimapToggle:`Activer la mini-carte`,controlsLabel:`Contrôles`,controlsDesc:`Afficher les contrôles de zoom et d'ajustement`,controlsToggle:`Activer les contrôles`,animateLabel:`Animer les arêtes`,animateDesc:`Animer le flux sur les connexions actives`,animateToggle:`Activer l'animation des arêtes`,legendLabel:`Afficher la légende`,legendDesc:`Afficher la légende de statut et de connexion`,legendToggle:`Activer la légende`,feedLabel:`Flux en direct`,feedDesc:`Bande inférieure de l'activité inter-processus récente`,feedToggle:`Activer le flux en direct`,fitView:`Ajuster`,zoomIn:`Zoom avant`,zoomOut:`Zoom arrière`,resetZoom:`Réinitialiser le zoom`,legendActive:`Actif (en cours)`,legendIdle:`Inactif`,legendError:`Erreur`,legendOffline:`Hors ligne`,bg:{dots:`Points`,lines:`Lignes`,cross:`Croix`,none:`Aucun`}},Ee={liveProjectOffice:`Bureau du projet en direct`,agents:`agents`,working:`actifs`,toolCalls:`appels d’outils`,office:`Bureau`,topology:`Topologie`,officeDescription:`Bureaux et travail des agents en direct`,topologyDescription:`Clients, agents et connexions`,team:`Équipe`,liveDesk:`Bureau en direct et travail entrant`,lastActions:`Travaux récents`,leadAgent:`Agent principal`,agent:`Agent`,callsCount:`{{count}} appels`,recent:`Récent`,noCalls:`Aucun appel terminé`,telemetryReconnect:`Reconnectez ce terminal pour démarrer l’historique des outils`,thinking:`Réflexion`,waiting:`En attente de travail`,preparing:`Préparation de l’action suivante…`,deskReady:`Le bureau est prêt`,toolCall:`Appel d’outil`,execution:`Exécution`,started:`Début`,duration:`Durée`,session:`Session`,target:`Cible`,resultSize:`Taille du résultat`,lines:`lignes`,bytes:`octets`,tokens:`tokens`,input:`Entrée`,outputPreview:`Aperçu de la sortie`,readyTitle:`Le bureau est prêt`,readyBody:`Les agents prendront place dès qu’ils rejoindront ce projet.`,liveEvent:`flux d’événements en direct`,connectedSessions_one:`{{count}} session connectée`,connectedSessions_other:`{{count}} sessions connectées`,detailHint:`cliquez sur une action pour afficher les détails exacts d’entrée et de résultat`,officeBriefing:`Briefing du bureau`,leaderPrompt:`Dernier prompt du leader`,activeInstruction:`Instruction active`,telemetryWaiting:`Reconnectez ce terminal pour recevoir les instructions en direct`,syncWaiting:`synchronisation en attente`,todoTelemetryWaiting:`Reconnectez ce terminal pour recevoir la liste des tâches en direct`,taskNotReported:`L’agent travaille, mais aucune description de tâche n’a été signalée`,noPrompt:`Aucun prompt reçu dans cette session`,activeTodos:`Tâches actives`,todoProgress:`{{done}}/{{total}} terminées`,allTodosDone:`Toutes les tâches sont terminées`,noActiveTodos:`Aucune tâche active`,moreTodos:`+{{count}} autres`,currentTask:`Tâche actuelle`,task:`Tâche`,promptReceived:`Reçu`,todos:`Tâches`,todoStatus:{pending:`En attente`,in_progress:`En cours`,completed:`Terminée`},breakRoom:`Salle de pause`,onBreak:`{{count}} en pause`,desksEmpty:`Tout le monde est en pause — les bureaux sont prêts pour la prochaine tâche`},De={tabProject:`Projet SDD`,tabBoard:`Tableau SDD en direct`,tabSpecs:`Spécifications`},Oe={nav:e,brand:t,status:n,menu:r,sidePanel:i,history:a,agents:o,changes:s,inspector:c,nextSteps:l,mailbox:u,sessions:d,sessionPanel:f,fleet:p,context:m,refine:h,specs:g,refresh:_,board:v,debug:y,providerModels:b,dock:x,agentsMonitor:S,terminal:C,sessionWatch:w,sideEffects:T,monitor:E,sdd:D,toolResult:O,design:k,goalRun:A,collab:j,connection:M,mode:N,cost:P,model:F,modelSwitcher:I,work:L,todos:R,task:z,toolGroup:B,fileRef:V,plan:H,filePicker:U,toast:W,search:G,phase:K,ctxMode:q,transcript:J,autonomy:Y,queue:X,checkpoint:Z,goal:Q,worktree:$,process:ee,diff:te,fallback:ne,liveSessions:re,monacoDiff:ie,errorBody:ae,officeMap:oe,toolInput:se,message:ce,watch:le,shortcuts:ue,sddBoard:de,sddTask:fe,sddWizard:pe,fileExplorer:me,codeEditor:he,fileActivity:ge,analytics:_e,promptLib:ve,skillDetail:ye,office:be,skillsList:xe,timeline:Se,designStudio:Ce,worktrees:we,officeSettings:Te,agentOffice:Ee,sddhub:De};export{Ee as agentOffice,o as agents,S as agentsMonitor,_e as analytics,Y as autonomy,v as board,t as brand,s as changes,Z as checkpoint,he as codeEditor,j as collab,M as connection,m as context,P as cost,q as ctxMode,y as debug,Oe as default,k as design,Ce as designStudio,te as diff,x as dock,ae as errorBody,ne as fallback,ge as fileActivity,me as fileExplorer,U as filePicker,V as fileRef,p as fleet,Q as goal,A as goalRun,a as history,c as inspector,re as liveSessions,u as mailbox,r as menu,ce as message,N as mode,F as model,I as modelSwitcher,ie as monacoDiff,E as monitor,e as nav,l as nextSteps,be as office,oe as officeMap,Te as officeSettings,K as phase,H as plan,ee as process,ve as promptLib,b as providerModels,X as queue,h as refine,_ as refresh,D as sdd,de as sddBoard,fe as sddTask,pe as sddWizard,De as sddhub,G as search,f as sessionPanel,w as sessionWatch,d as sessions,ue as shortcuts,T as sideEffects,i as sidePanel,ye as skillDetail,xe as skillsList,g as specs,n as status,z as task,C as terminal,Se as timeline,W as toast,R as todos,B as toolGroup,se as toolInput,O as toolResult,J as transcript,le as watch,L as work,$ as worktree,we as worktrees};