copilot-operator 0.1.43 → 0.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/src/api/operator.controller.js +54 -0
  2. package/dist/src/api/operator.service.js +86 -0
  3. package/dist/src/plan/systemGuide.js +138 -2
  4. package/dist/src/session/workspace.js +71 -0
  5. package/dist/web/404.html +2 -2
  6. package/dist/web/_next/static/chunks/549-1fe42544e4b72942.js +1 -0
  7. package/dist/web/_next/static/chunks/867-0f0f8c3bd37be31e.js +1 -0
  8. package/dist/web/_next/static/chunks/app/layout-12f138ee04d33c1e.js +1 -0
  9. package/dist/web/_next/static/chunks/app/page-09c6e2d42098f8d4.js +1 -0
  10. package/dist/web/_next/static/css/{72c85e4322c21223.css → eaec9cc6fe8aceb7.css} +1 -1
  11. package/dist/web/appearance.html +2 -2
  12. package/dist/web/appearance.txt +10 -10
  13. package/dist/web/defaults.html +2 -2
  14. package/dist/web/defaults.txt +10 -10
  15. package/dist/web/history.html +2 -2
  16. package/dist/web/history.txt +10 -10
  17. package/dist/web/import.html +2 -2
  18. package/dist/web/import.txt +10 -10
  19. package/dist/web/index.html +2 -2
  20. package/dist/web/index.txt +10 -10
  21. package/dist/web/level1.html +2 -2
  22. package/dist/web/level1.txt +10 -10
  23. package/dist/web/presets.html +2 -2
  24. package/dist/web/presets.txt +10 -10
  25. package/dist/web/sessions/view.html +2 -2
  26. package/dist/web/sessions/view.txt +10 -10
  27. package/dist/web/sessions.html +2 -2
  28. package/dist/web/sessions.txt +10 -10
  29. package/dist/web/system.html +2 -2
  30. package/dist/web/system.txt +10 -10
  31. package/package.json +3 -2
  32. package/dist/web/_next/static/chunks/549-2415dd26f4e53d07.js +0 -1
  33. package/dist/web/_next/static/chunks/867-aea30f560bc18eaf.js +0 -1
  34. package/dist/web/_next/static/chunks/app/layout-dc602b727480a653.js +0 -1
  35. package/dist/web/_next/static/chunks/app/page-d73a8ff300862cd8.js +0 -1
  36. /package/dist/web/_next/static/{WmzBz4QN36pcz4PL_cfEW → BX8Nw248DTY9xAfUu2pOH}/_buildManifest.js +0 -0
  37. /package/dist/web/_next/static/{WmzBz4QN36pcz4PL_cfEW → BX8Nw248DTY9xAfUu2pOH}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{952:()=>{},966:(e,s,a)=>{"use strict";a.d(s,{Shell:()=>f});var r=a(3365),n=a(8197),t=a.n(n),l=a(1702),i=a(8214),o=a(1521),c=a(5549),d=a(867),h=a(1035),p=a(7527),m=a(9717);function u(){let{t:e}=(0,d.kj)(),s=(0,l.usePathname)(),[a,n]=(0,o.useState)([]),[t,i]=(0,o.useState)({}),h=(0,o.useRef)({}),m=(0,o.useRef)(new Set),u=(0,o.useRef)(""),x=(0,o.useCallback)(async()=>{try{let e=await c.FH.approvals();n(e);let s=[...new Set(e.map(e=>e.sessionId).filter(e=>!(e in h.current)))],a=s.sort().join(",");if(s.length>0&&a!==u.current){for(let e of(u.current=a,await c.FH.sessions().catch(()=>[])))h.current[e.id]=e.name,"chat"===e.kind&&m.current.add(e.id);i({...h.current})}}catch(e){}},[]);(0,p.z)(x,2e3),(0,o.useEffect)(()=>{let s="copilot-operator";document.title=a.length>0?"(".concat(a.length,") ").concat(e("approval.tabTitle")," — ").concat(s):s},[a.length,e]);let j="/"===s?a.filter(e=>e.sessionId in h.current&&!m.current.has(e.sessionId)):a;return 0===j.length?null:(0,r.jsxs)("section",{className:"approval-banner",role:"alert","aria-live":"assertive",children:[(0,r.jsx)("h2",{children:e("approval.waitingHere")}),(0,r.jsx)("p",{className:"small",children:e("approval.waitingHereWhy")}),j.map(e=>{var s;return(0,r.jsx)(v,{approval:e,sessionName:null!=(s=t[e.sessionId])?s:e.sessionId,onDecided:()=>void x()},e.id)})]})}function v(e){let{approval:s,sessionName:a,onDecided:n}=e,{t:l}=(0,d.kj)(),i=(0,d.W3)(),[p,m]=(0,o.useState)(!1),[u,v]=(0,o.useState)(""),j=(0,o.useRef)(!1),f=async e=>{if(!j.current&&("run-all"!==e||await (0,h.Z)(l("approval.runAllConfirm")))){j.current=!0,m(!0),v("");try{await c.FH.decide(s.id,e)}catch(e){v(e.message)}finally{j.current=!1,m(!1),n()}}};if(s.plan)return(0,r.jsx)(x,{approval:s,sessionName:a,onDecided:n});if(s.model){var k;let e=s.model;return(0,r.jsxs)("div",{className:"approval",children:[(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("strong",{children:l(e.manual?"approval.manualTitle":"approval.modelTitle")}),(0,r.jsx)(t(),{href:(0,c.aT)(s.sessionId),children:a}),(0,r.jsx)("span",{className:"muted small",children:i(s.createdAt)})]}),(0,r.jsx)("p",{children:e.manual?e.asked?l("approval.manualAsk",{model:e.asked}):l("approval.manualAskAny"):l("approval.modelAsk",{model:e.asked})}),(0,r.jsx)("p",{className:"muted small",children:l("approval.modelShown",{shown:null!=(k=e.shown)?k:"—"})}),!e.manual&&(0,r.jsx)("p",{className:"reason small",children:l("approval.modelWhy",{why:e.why,tries:e.tries})}),u&&(0,r.jsx)("p",{className:"err",role:"alert",children:u}),(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("button",{className:"primary",disabled:p,onClick:()=>void f("run"),children:l(e.manual?"approval.manualReady":"approval.modelChosen")}),(0,r.jsx)("button",{disabled:p,onClick:()=>void f("skip"),children:l("approval.modelAsItIs")}),(0,r.jsx)("button",{className:"danger",disabled:p,onClick:()=>void f("abort"),children:l("approval.modelStop")})]})]})}return(0,r.jsxs)("div",{className:"approval",children:[(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("strong",{children:l("approval.title",{n:s.stepId})}),(0,r.jsx)(t(),{href:(0,c.aT)(s.sessionId),children:a}),(0,r.jsx)("span",{className:"muted small",children:i(s.createdAt)})]}),(0,r.jsx)("pre",{style:{margin:"8px 0"},children:s.description}),s.network&&(0,r.jsx)("p",{className:"reason small",children:l("approval.network")}),u&&(0,r.jsx)("p",{className:"err",role:"alert",children:u}),(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("button",{className:"primary",disabled:p,onClick:()=>void f("run"),children:l("approval.run")}),!s.network&&(0,r.jsx)("button",{disabled:p,onClick:()=>void f("run-all"),title:l("approval.runAllWhy"),children:l("approval.runAll")}),(0,r.jsx)("button",{disabled:p,onClick:()=>void f("skip"),children:l("approval.skip")}),(0,r.jsx)("button",{className:"danger",disabled:p,onClick:()=>void f("abort"),children:l("approval.abort")})]})]})}function x(e){let{approval:s,sessionName:a,onDecided:n}=e,{t:l}=(0,d.kj)(),i=(0,d.W3)(),[p,u]=(0,o.useState)(""),[v,x]=(0,o.useState)(!1),[j,f]=(0,o.useState)(""),k=(0,o.useRef)(!1),w=s.plan,b=async e=>{if(!k.current){if("revise"===e&&!p.trim())return void f(l("pm.reviseNeedsNote"));if("stop"!==e||await (0,h.Z)(l("pm.stopConfirm"))){k.current=!0,x(!0),f("");try{await c.FH.decidePlan(s.id,e,p)}catch(e){f(e.message)}finally{k.current=!1,x(!1),n()}}}};return(0,r.jsxs)("div",{className:"approval",children:[(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("strong",{children:l("pm.cardTitle",{title:w.title})}),(0,r.jsx)(t(),{href:(0,c.aT)(s.sessionId),children:a}),(0,r.jsx)("span",{className:"muted small",children:i(s.createdAt)})]}),(0,r.jsx)("p",{className:"small",children:l("pm.cardWhy")}),(0,r.jsx)(m.D,{plan:w.plan,showApproval:!1}),(0,r.jsx)("label",{htmlFor:"plan-note-".concat(s.id),children:l("pm.note")}),(0,r.jsx)("textarea",{id:"plan-note-".concat(s.id),className:"prose",value:p,onChange:e=>u(e.target.value),placeholder:l("pm.notePlaceholder"),style:{minHeight:70},disabled:v}),j&&(0,r.jsx)("p",{className:"err",role:"alert",children:j}),(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("button",{className:"primary",disabled:v,onClick:()=>void b("approve"),children:l("pm.approve")}),(0,r.jsx)("button",{disabled:v,onClick:()=>void b("revise"),title:l("pm.reviseWhy"),children:l("pm.revise")}),(0,r.jsx)("button",{className:"danger",disabled:v,onClick:()=>void b("stop"),children:l("pm.stop")})]})]})}var j=a(3069);function f(e){let{children:s}=e;return"/"===(0,l.usePathname)()?(0,r.jsxs)("div",{className:"wb-root",children:[(0,r.jsx)(u,{}),(0,r.jsx)(j.$,{}),(0,r.jsx)("main",{id:"main",className:"wb-main",children:s})]}):(0,r.jsxs)("div",{className:"wrap",children:[(0,r.jsxs)("header",{className:"top",children:[(0,r.jsx)("h1",{children:(0,r.jsx)(t(),{href:"/",children:"copilot-operator"})}),(0,r.jsx)(i.s,{})]}),(0,r.jsx)(u,{}),(0,r.jsx)(j.$,{}),(0,r.jsx)("main",{id:"main",children:s})]})}},1702:(e,s,a)=>{"use strict";var r=a(9962);a.o(r,"usePathname")&&a.d(s,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(s,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(s,{useSearchParams:function(){return r.useSearchParams}})},7712:(e,s,a)=>{"use strict";a.d(s,{ScrollJump:()=>l});var r=a(3365),n=a(1521),t=a(867);function l(){let{t:e}=(0,t.kj)(),[s,a]=(0,n.useState)({long:!1,atTop:!0,atBottom:!1});return((0,n.useEffect)(()=>{let e=()=>{let e=document.documentElement;a({long:e.scrollHeight>2*window.innerHeight,atTop:window.scrollY<200,atBottom:window.innerHeight+window.scrollY>=e.scrollHeight-200})};e(),window.addEventListener("scroll",e,{passive:!0}),window.addEventListener("resize",e);let s=new ResizeObserver(e);return s.observe(document.body),()=>{window.removeEventListener("scroll",e),window.removeEventListener("resize",e),s.disconnect()}},[]),s.long)?(0,r.jsxs)("div",{className:"scroll-jump",children:[!s.atTop&&(0,r.jsx)("button",{type:"button","aria-label":e("scroll.top"),title:e("scroll.top"),onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),children:"↑"}),!s.atBottom&&(0,r.jsx)("button",{type:"button","aria-label":e("scroll.bottom"),title:e("scroll.bottom"),onClick:()=>window.scrollTo({top:document.documentElement.scrollHeight,behavior:"smooth"}),children:"↓"})]}):null}},8078:(e,s,a)=>{"use strict";a.d(s,{AppearanceProvider:()=>d,KP:()=>h});var r=a(3365),n=a(1521);let t="cop.appearance",l=["small","normal","large","huge","giant"];"\n(function () {\n try {\n var d = document.documentElement;\n var raw = localStorage.getItem('".concat(t,"');\n var a = raw ? JSON.parse(raw) : {};\n if (!a || typeof a !== 'object') a = {};\n d.dataset.theme = a.theme === 'dark' ? 'dark' : 'light';\n d.dataset.textsize = ").concat(JSON.stringify(l),".indexOf(a.textSize) >= 0 ? a.textSize : 'normal';\n d.dataset.contrast = a.highContrast ? 'high' : 'normal';\n d.dataset.motion = a.reduceMotion ? 'reduced' : 'normal';\n d.dataset.links = a.underlineLinks ? 'underline' : 'plain';\n d.dataset.focus = a.strongFocus ? 'strong' : 'normal';\n } catch (e) {}\n})();\n");let i={theme:"light",textSize:"normal",highContrast:!1,reduceMotion:!1,underlineLinks:!1,strongFocus:!1};function o(e){let s=document.documentElement;s.dataset.theme=e.theme,s.dataset.textsize=e.textSize,s.dataset.contrast=e.highContrast?"high":"normal",s.dataset.motion=e.reduceMotion?"reduced":"normal",s.dataset.links=e.underlineLinks?"underline":"plain",s.dataset.focus=e.strongFocus?"strong":"normal"}let c=(0,n.createContext)({appearance:i,set:()=>void 0,reset:()=>void 0,loaded:!1});function d(e){let{children:s}=e,[a,d]=(0,n.useState)(i),[h,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=i;try{let s=window.localStorage.getItem(t);s?e=function(e){let s=e&&"object"==typeof e?e:{},a=(e,s)=>"boolean"==typeof e?e:s;return{theme:"dark"===s.theme?"dark":"light"===s.theme?"light":i.theme,textSize:l.includes(s.textSize)?s.textSize:i.textSize,highContrast:a(s.highContrast,i.highContrast),reduceMotion:a(s.reduceMotion,i.reduceMotion),underlineLinks:a(s.underlineLinks,i.underlineLinks),strongFocus:a(s.strongFocus,i.strongFocus)}}(JSON.parse(s)):window.matchMedia("(prefers-color-scheme: dark)").matches&&(e={...e,theme:"dark"}),window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!s&&(e={...e,reduceMotion:!0})}catch(e){}d(e),o(e),p(!0)},[]);let m=(0,n.useCallback)(e=>{d(s=>{let a={...s,...e};o(a);try{window.localStorage.setItem(t,JSON.stringify(a))}catch(e){}return a})},[]),u=(0,n.useCallback)(()=>{d(i),o(i);try{window.localStorage.removeItem(t)}catch(e){}},[]);return(0,r.jsx)(c.Provider,{value:{appearance:a,set:m,reset:u,loaded:h},children:s})}function h(){return(0,n.useContext)(c)}},8214:(e,s,a)=>{"use strict";a.d(s,{SkipLink:()=>m,s:()=>u});var r=a(3365),n=a(1521),t=a(8197),l=a.n(t),i=a(1702),o=a(5549),c=a(7527),d=a(867);let h={sessions:(0,r.jsx)("path",{d:"M4 5h16v4H4zM4 11h16v4H4zM4 17h10v2H4z"}),workbench:(0,r.jsx)("path",{d:"M3 4h18v16H3zM9 4v16M3 15h6",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),defaults:(0,r.jsx)("path",{d:"M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm8.5 4 1.5 1-1.6 2.8-1.8-.4a7 7 0 0 1-1.5 1.5l.4 1.8L14.7 21l-1-1.5a7 7 0 0 1-3.4 0l-1 1.5-2.8-1.6.4-1.8A7 7 0 0 1 5.4 16l-1.8.4L2 13.6 3.5 12.6V11.4L2 10.4l1.6-2.8 1.8.4A7 7 0 0 1 6.9 6.5l-.4-1.8L9.3 3l1 1.5a7 7 0 0 1 3.4 0l1-1.5 2.8 1.6-.4 1.8a7 7 0 0 1 1.5 1.5l1.8-.4L22 10.4l-1.5 1z"}),import:(0,r.jsx)("path",{d:"M12 3v10m0 0 4-4m-4 4-4-4M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),history:(0,r.jsx)("path",{d:"M12 3a9 9 0 1 0 8.5 6M12 7v5l3 2M3 4v5h5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),level1:(0,r.jsx)("path",{d:"M6 3h9l5 5v13H6zM14 3v6h6M9 13h7M9 17h7",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),presets:(0,r.jsx)("path",{d:"M5 4h14v4H5zM5 10h14v4H5zM5 16h9v4H5z",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),appearance:(0,r.jsx)("path",{d:"M12 3a9 9 0 0 0 0 18c1.5 0 2-1 2-2s-1-1.5-1-2.5S14 15 15.5 15H17a4 4 0 0 0 4-4 8 8 0 0 0-9-8zM8 9a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm4-3a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm4 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"}),system:(0,r.jsx)("path",{d:"M4 5h16v10H4zM2 19h20M9 15v4M15 15v4",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"})},p=[{href:"/",label:"nav.workbench",icon:"workbench"},{href:"/sessions",label:"nav.sessions",icon:"sessions"},{href:"/defaults",label:"nav.defaults",icon:"defaults"},{href:"/import",label:"nav.import",icon:"import"},{href:"/history",label:"nav.history",icon:"history"},{href:"/level1",label:"nav.level1",icon:"level1"},{href:"/presets",label:"nav.presets",icon:"presets"},{href:"/appearance",label:"nav.appearance",icon:"appearance"},{href:"/system",label:"nav.system",icon:"system"}];function m(){let{t:e}=(0,d.kj)();return(0,r.jsx)("a",{className:"skip-link",href:"#main",children:e("a11y.skip")})}function u(){let{t:e}=(0,d.kj)(),s=(0,i.usePathname)(),a=function(){let[e,s]=(0,n.useState)(0);return(0,c.z)(()=>o.FH.activity().then(e=>s(e.sessions)).catch(()=>void 0),4e3),e}();return(0,r.jsxs)("nav",{"aria-label":e("nav.label"),children:[p.map(n=>(0,r.jsxs)(l(),{href:n.href,"aria-current":s===n.href?"page":void 0,children:[(0,r.jsx)("svg",{className:"nav-icon",viewBox:"0 0 24 24",width:"16",height:"16",fill:"currentColor","aria-hidden":"true",children:h[n.icon]}),(0,r.jsx)("span",{children:e(n.label)}),"/history"===n.href&&a>0&&(0,r.jsxs)("span",{className:"live",title:e("nav.liveTitle",{n:a}),children:[(0,r.jsx)("span",{className:"dot","aria-hidden":"true"}),e("nav.live")]})]},n.href)),(0,r.jsx)(d.c5,{})]})}},8761:(e,s,a)=>{Promise.resolve().then(a.bind(a,1035)),Promise.resolve().then(a.t.bind(a,952,23)),Promise.resolve().then(a.bind(a,8214)),Promise.resolve().then(a.bind(a,7712)),Promise.resolve().then(a.bind(a,966)),Promise.resolve().then(a.bind(a,1701)),Promise.resolve().then(a.bind(a,8078)),Promise.resolve().then(a.bind(a,867))},9717:(e,s,a)=>{"use strict";a.d(s,{D:()=>t});var r=a(3365),n=a(867);function t(e){var s,a;let{plan:t,showApproval:l=!0}=e,{t:i}=(0,n.kj)(),o=(0,n.W3)(),c=t.approved;return(0,r.jsxs)("div",{className:"plan-view",children:[(0,r.jsx)("p",{className:"small muted",children:i("pm.version",{n:t.version,at:o(t.at)})}),l&&c&&(0,r.jsxs)("p",{className:"small",children:["operator"===c.by?i("pm.approvedByOperator",{at:o(c.at)}):i("pm.approvedAuto",{at:o(c.at)}),c.why&&" ".concat(c.why),c.note&&" ".concat(i("pm.approvedNote",{note:c.note}))]}),(0,r.jsx)("h4",{children:i("pm.existing")}),(0,r.jsx)("p",{className:"pre-wrap",children:t.existing}),(0,r.jsx)("h4",{children:i("pm.approach")}),(0,r.jsx)("p",{className:"pre-wrap",children:t.approach}),(0,r.jsx)("h4",{children:i("pm.steps")}),(0,r.jsx)("ol",{children:t.steps.map((e,s)=>(0,r.jsx)("li",{className:"pre-wrap",children:e},s))}),t.files.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h4",{children:i("pm.files")}),(0,r.jsx)("ul",{children:t.files.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)("code",{children:e})},e))})]}),(0,r.jsx)("h4",{children:i("pm.verification")}),(0,r.jsx)("p",{className:"pre-wrap",children:t.verification}),t.risks&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h4",{children:i("pm.risks")}),(0,r.jsx)("p",{className:"pre-wrap",children:t.risks})]}),(null!=(a=null==(s=t.revisions)?void 0:s.length)?a:0)>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h4",{children:i("pm.revisions")}),(0,r.jsx)("ul",{children:t.revisions.map(e=>(0,r.jsxs)("li",{className:"small",children:[i("pm.revision",{n:e.version,at:o(e.at)})," ",(0,r.jsx)("span",{className:"pre-wrap",children:e.comment})]},e.version))})]})]})}}},e=>{e.O(0,[353,197,867,549,499,347,131,358],()=>e(e.s=8761)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{1702:(e,s,t)=>{"use strict";var a=t(9962);t.o(a,"usePathname")&&t.d(s,{usePathname:function(){return a.usePathname}}),t.o(a,"useRouter")&&t.d(s,{useRouter:function(){return a.useRouter}}),t.o(a,"useSearchParams")&&t.d(s,{useSearchParams:function(){return a.useSearchParams}})},4846:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>en});var a=t(3365),n=t(1521),l=t(8197),i=t.n(l),r=t(5549),c=t(7527),o=t(867);function d(e){let{view:s,sessions:t,selected:n,onOpen:l,onChange:i,workspace:r,onOpenFolder:c}=e;return"files"===s?(0,a.jsx)(b,{workspace:r,onOpen:l,onOpenFolder:c}):"commits"===s?(0,a.jsx)(p,{sessions:t,selected:n,onOpen:l}):(0,a.jsx)(h,{sessions:t?t.filter(e=>"chat"!==e.kind):null,selected:n,onOpen:l,onChange:i})}function u(e){let{title:s,children:t}=e;return(0,a.jsxs)("div",{className:"wb-side-head",children:[(0,a.jsx)("h2",{children:s}),(0,a.jsx)("span",{className:"grow"}),t]})}function h(e){let{sessions:s,selected:t,onOpen:l,onChange:r}=e,{t:c}=(0,o.kj)(),[d,h]=(0,n.useState)(new Set),[m,b]=(0,n.useState)(""),p=m.trim().toLowerCase();return(0,a.jsxs)("div",{className:"wb-tree",children:[(0,a.jsxs)(u,{title:c("wb.sessions"),children:[(0,a.jsx)(i(),{className:"wb-icon-btn",href:"/sessions#new-session",title:c("wb.newSession"),"aria-label":c("wb.newSession"),children:"+"}),(0,a.jsx)(i(),{className:"wb-icon-btn",href:"/import",title:c("wb.startPlan"),"aria-label":c("wb.startPlan"),children:"⇩"}),(0,a.jsx)("button",{type:"button",className:"wb-icon-btn",onClick:r,title:c("wb.refresh"),"aria-label":c("wb.refresh"),children:"↻"})]}),(0,a.jsx)("div",{className:"wb-filter",children:(0,a.jsx)("input",{type:"search","aria-label":c("wb.filter"),placeholder:c("wb.filter"),value:m,onChange:e=>b(e.target.value)})}),s?0===s.length?(0,a.jsxs)("p",{className:"muted small wb-pad",children:[c("wb.noSessions")," ",(0,a.jsx)(i(),{href:"/import",children:c("wb.startPlan")})]}):(0,a.jsx)("ul",{className:"wb-tree-list",role:"tree","aria-label":c("wb.sessions"),children:s.map(e=>{let s=e.tasks.filter(s=>!p||s.title.toLowerCase().includes(p)||e.name.toLowerCase().includes(p));if(p&&0===s.length)return null;let n=!d.has(e.id)||!!p,i=e.tasks.filter(e=>"done"===e.status).length;return(0,a.jsxs)("li",{role:"treeitem","aria-expanded":n,"aria-selected":t.sessionId===e.id&&!t.taskId,children:[(0,a.jsxs)("div",{className:"wb-row session".concat(t.sessionId!==e.id||t.taskId?"":" sel"),children:[(0,a.jsx)("button",{type:"button",className:"wb-chev","aria-label":n?c("wb.collapse",{name:e.name}):c("wb.expand",{name:e.name}),onClick:()=>h(s=>{let t=new Set(s);return t.has(e.id)?t.delete(e.id):t.add(e.id),t}),children:n?"▾":"▸"}),(0,a.jsxs)("button",{type:"button",className:"wb-row-main",onClick:()=>l({kind:"session",sessionId:e.id}),children:[(0,a.jsx)("span",{className:"wb-row-name",children:e.name}),e.running&&(0,a.jsx)("span",{className:"wb-live",title:c("wb.running"),"aria-label":c("wb.running")}),(0,a.jsxs)("span",{className:"wb-count",children:[i,"/",e.tasks.length]})]})]}),n&&(0,a.jsx)("ul",{role:"group",children:s.map(s=>{var n;let i=e.tasks.indexOf(s)+1,r=t.taskId===s.id;return(0,a.jsx)("li",{role:"treeitem","aria-selected":r,children:(0,a.jsxs)("button",{type:"button",className:"wb-row task".concat(r?" sel":""),onClick:()=>l({kind:"task",sessionId:e.id,taskId:s.id}),title:s.title,children:[(0,a.jsx)(et,{status:s.status}),(0,a.jsxs)("span",{className:"wb-num",children:[i,"."]}),(0,a.jsx)("span",{className:"wb-row-name",children:s.title}),(null!=(n=s.attempt)?n:1)>1&&(0,a.jsxs)("span",{className:"wb-count",children:["a",s.attempt]})]})},s.id)})})]},e.id)})}):(0,a.jsx)("p",{className:"muted small wb-pad",children:c("wb.loading")})]})}let m=(e,s)=>e.localeCompare(s,void 0,{sensitivity:"base"});function b(e){let{workspace:s,onOpen:t,onOpenFolder:l}=e,{t:i}=(0,o.kj)(),[d,h]=(0,n.useState)(null),[b,p]=(0,n.useState)(""),[w,x]=(0,n.useState)(new Set),j=()=>(null==s?void 0:s.ok)?r.FH.workspaceFiles().then(e=>{h(e.files),p("")}).catch(e=>p(e.message)):Promise.resolve();(0,n.useEffect)(()=>{h(null),j()},[null==s?void 0:s.dir,null==s?void 0:s.ok]),(0,c.z)(j,6e3,!!(null==s?void 0:s.ok));let k=(e,s)=>(0,a.jsxs)(a.Fragment,{children:[[...e.dirs.keys()].sort(m).map(t=>{let n=s?"".concat(s,"/").concat(t):t;return(0,a.jsxs)("li",{role:"treeitem","aria-expanded":w.has(n),children:[(0,a.jsxs)("button",{type:"button",className:"wb-row",onClick:()=>x(e=>{let s=new Set(e);return s.has(n)?s.delete(n):s.add(n),s}),children:[(0,a.jsx)("span",{className:"wb-chev","aria-hidden":"true",children:w.has(n)?"▾":"▸"}),(0,a.jsx)("span",{className:"wb-row-name",children:t})]}),w.has(n)&&(0,a.jsx)("ul",{role:"group",children:k(e.dirs.get(t),n)})]},"d:".concat(n))}),[...e.files].sort((e,s)=>m(e.split("/").pop(),s.split("/").pop())).map(e=>(0,a.jsx)("li",{role:"treeitem",children:(0,a.jsxs)("button",{type:"button",className:"wb-row file",onClick:()=>t({kind:"file",sessionId:"",path:e}),title:e,children:[(0,a.jsx)("span",{className:"wb-ico","aria-hidden":"true",children:"≡"}),(0,a.jsx)("span",{className:"wb-row-name",children:e.split("/").pop()})]})},"f:".concat(e)))]});return(0,a.jsxs)("div",{className:"wb-tree",children:[(0,a.jsxs)(u,{title:(null==s?void 0:s.ok)?s.name:i("wb.files"),children:[(0,a.jsx)("button",{type:"button",className:"wb-icon-btn",onClick:l,title:i("chat.openFolder"),"aria-label":i("chat.openFolder"),children:"⋯"}),(0,a.jsx)("button",{type:"button",className:"wb-icon-btn",onClick:()=>void j(),title:i("wb.refresh"),"aria-label":i("wb.refresh"),children:"↻"})]}),s?s.ok?b?(0,a.jsx)("p",{className:"err small wb-pad",children:b}):d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"muted small wb-pad",title:s.dir,children:s.branch?"⎇ ".concat(s.branch):s.dir}),(0,a.jsx)("ul",{className:"wb-tree-list",role:"tree","aria-label":i("wb.files"),children:k(function(e){let s={dirs:new Map,files:[]};for(let t of e){let e=t.split("/"),a=s;for(let s of e.slice(0,-1)){let e=a.dirs.get(s);e||(e={dirs:new Map,files:[]},a.dirs.set(s,e)),a=e}a.files.push(t)}return s}(d),"")})]}):(0,a.jsx)("p",{className:"muted small wb-pad",children:i("wb.loading")}):(0,a.jsxs)("div",{className:"wb-pad",children:[(0,a.jsx)("p",{className:"small",children:s.problem}),(0,a.jsx)("button",{type:"button",className:"primary",onClick:l,children:i("chat.openFolder")})]}):(0,a.jsx)("p",{className:"muted small wb-pad",children:i("wb.loading")})]})}function p(e){var s;let{sessions:t,selected:l,onOpen:i}=e,{t:c}=(0,o.kj)(),d=(0,o.W3)(),h=null!=(s=null==t?void 0:t.find(e=>e.id===l.sessionId))?s:null==t?void 0:t.find(e=>{var s;return(null==(s=e.vcs)?void 0:s.enabled)&&e.vcs.repoDir}),[m,b]=(0,n.useState)(null),[p,w]=(0,n.useState)("");return(0,n.useEffect)(()=>{b(null),w(""),h&&r.FH.repoLog(h.id).then(b).catch(e=>w(e.message))},[null==h?void 0:h.id,null==h?void 0:h.tasks.map(e=>{var s,t;return null!=(t=null==(s=e.vcs)?void 0:s.commit)?t:""}).join()]),(0,a.jsxs)("div",{className:"wb-tree",children:[(0,a.jsx)(u,{title:c("wb.commits")}),h?p?(0,a.jsx)("p",{className:"err small wb-pad",children:p}):m?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"muted small wb-pad",children:c("wb.commitsOf",{name:h.name,ref:m.label})}),(0,a.jsx)("ul",{className:"wb-commits",children:m.commits.map(e=>(0,a.jsxs)("li",{children:[e.taskId?(0,a.jsxs)("button",{type:"button",className:"wb-row",onClick:()=>i({kind:"task",sessionId:h.id,taskId:e.taskId}),title:e.subject,children:[(0,a.jsx)("code",{children:e.sha.slice(0,7)}),(0,a.jsx)("span",{className:"wb-row-name",children:e.subject})]}):(0,a.jsxs)("div",{className:"wb-row plain",title:e.subject,children:[(0,a.jsx)("code",{children:e.sha.slice(0,7)}),(0,a.jsx)("span",{className:"wb-row-name",children:e.subject})]}),(0,a.jsxs)("div",{className:"muted wb-commit-meta",children:[e.author," \xb7 ",d(e.at),e.taskTitle?" \xb7 ".concat(c("wb.byTask",{title:e.taskTitle})):""]})]},e.sha))})]}):(0,a.jsx)("p",{className:"muted small wb-pad",children:c("wb.loading")}):(0,a.jsx)("p",{className:"muted small wb-pad",children:c("wb.noRepo")})]})}var w=t(1035),x=t(8934),j=t(287),k=t(5132),v=t(9717);function f(e){let{session:s,task:t,focusAsk:l,onChange:i}=e,{t:c}=(0,o.kj)(),[d,u]=(0,n.useState)(""),[h,m]=(0,n.useState)(""),[b,p]=(0,n.useState)(!1),[w,x]=(0,n.useState)(!1),k=(0,n.useRef)(null),v="idle"===s.status,f="queued"===t.status||"running"===t.status||"waiting-approval"===t.status?"note":v&&"contract-conflict"!==t.stopCode?(0,r.Zm)(t)||(0,r.Dh)(t)?"continue":"done"===t.status?"newPrompt":"none":"none",N="running"===t.status||"waiting-approval"===t.status;(0,n.useEffect)(()=>{m(""),x(!1),u("")},[t.id]),(0,n.useEffect)(()=>{if(l>0){var e,s;null==(e=k.current)||e.focus(),null==(s=k.current)||s.scrollIntoView({block:"nearest"})}},[l]);let g=async()=>{if(d.trim()&&!b&&"none"!==f){p(!0),m("");try{"note"===f?(await r.FH.addTaskNote(s.id,t.id,d),m(N?c("wb.noteSentSoon"):c("wb.noteKept"))):("continue"===f?(await r.FH.continueTask(s.id,t.id,d),m(c("wb.queuedToContinue"))):(await r.FH.rerunTask(s.id,t.id,{prompt:d},{buildOnFinished:!0}),m(c("wb.queuedNewPrompt"))),x(!0)),u("")}catch(e){m(e.message)}finally{p(!1),i()}}},y="note"===f?c("wb.sendNote"):"continue"===f?c("wb.sendContinue"):"newPrompt"===f?c("wb.sendNewPrompt"):c("wb.sendNone"),C="note"===f?N?c("wb.hintNoteLive"):c("wb.hintNoteQueued"):"continue"===f?c("wb.hintContinue"):"newPrompt"===f?c("wb.hintNewPrompt"):v?c("wb.hintNone"):c("wb.hintBusy");return(0,a.jsxs)("div",{className:"wb-compose wb-task-compose",children:[w&&"queued"===t.status&&(0,a.jsx)("div",{className:"wb-inline-panel",children:(0,a.jsx)(j.f,{target:{sessionId:s.id,taskId:t.id,title:t.title},onClose:e=>{x(!1),e&&m(c("wb.started")),i()}})}),h&&(0,a.jsx)("p",{className:"small",role:"status",children:h}),(0,a.jsx)("label",{htmlFor:"wb-compose",className:"sr-only",children:y}),(0,a.jsx)("textarea",{id:"wb-compose",ref:k,value:d,onChange:e=>u(e.target.value),placeholder:"Ctrl+Enter",disabled:"none"===f||b,onKeyDown:e=>{"Enter"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),g())}}),(0,a.jsxs)("div",{className:"row",children:[(0,a.jsx)("span",{className:"muted small grow",children:C}),(0,a.jsx)("button",{type:"button",className:"primary",disabled:"none"===f||b||!d.trim(),onClick:()=>void g(),title:"Ctrl+Enter",children:y})]})]})}var N=t(7619);function g(e){var s,t,l,c,d,u,h,m,b,p,g,C,I,S,F,O,T,P,H,E,A,M,D,L,R,q,K,W,z;let{session:B,task:U,onChange:Z,onKerrigan:_,onOpenFile:Y}=e,{t:G}=(0,o.kj)(),J=(0,o.W3)(),[V,Q]=(0,n.useState)(""),[X,$]=(0,n.useState)(!1),[ee,es]=(0,n.useState)(!1),[ea,en]=(0,n.useState)(!1),[el,ei]=(0,n.useState)(0),er=()=>ei(e=>e+1),ec=B.tasks.findIndex(e=>e.id===U.id)+1,eo="running"===U.status||"waiting-approval"===U.status,ed="idle"!==B.status,eu=(0,r.Zm)(U),eh=(0,r.Dh)(U)&&!eu,em="contract-conflict"===U.stopCode,eb=!!U.startedAt,ep=null==(t=U.attempts)||null==(s=t.at(-1))?void 0:s.undone,ew=null!=(P=U.plan)?P:U.continuing?null==(l=[...null!=(T=U.attempts)?T:[]].reverse().find(e=>{var s;return null==(s=e.plan)?void 0:s.approved}))?void 0:l.plan:void 0;(0,n.useEffect)(()=>{Q(""),es(!1),en(!1),ef(!1),eg("")},[U.id]);let ex=async function(e,s){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!X){$(!0),Q("");try{await e(),s&&Q(s),t&&es(!0)}catch(e){Q(e.message)}finally{$(!1),Z()}}},ej=async()=>{await (0,w.Z)(G("wb.removeConfirm",{title:U.title}))&&await ex(()=>r.FH.deleteTask(B.id,U.id),G("wb.removed"))},ek=async()=>{await (0,w.Z)(G("wb.runAgainConfirm",{title:U.title}))&&await ex(()=>r.FH.rerunTask(B.id,U.id),G("wb.queuedAgain"),!0)},[ev,ef]=(0,n.useState)(!1),[eN,eg]=(0,n.useState)("");return(0,a.jsxs)("article",{className:"wb-task","aria-labelledby":"wb-task-".concat(U.id),children:[(0,a.jsxs)("header",{className:"wb-task-head",children:[(0,a.jsx)(et,{status:U.status}),(0,a.jsxs)("div",{className:"grow",children:[(0,a.jsx)("h2",{id:"wb-task-".concat(U.id),children:U.title}),(0,a.jsxs)("p",{className:"muted small",children:[G("wb.taskOf",{n:ec,session:B.name,status:G("status.".concat(U.status))}),(null!=(H=U.attempt)?H:1)>1?" \xb7 ".concat(G("wb.attempt",{n:null!=(E=U.attempt)?E:1})):"",(null==(c=U.vcs)?void 0:c.branch)?" \xb7 ".concat(U.vcs.branch).concat(U.vcs.commit?" @ ".concat(U.vcs.commit.slice(0,8)):""):""]})]}),(0,a.jsx)(i(),{className:"button-link plain small",href:(0,r.aT)(B.id,U.id),children:G("wb.onSessionPage")})]}),(0,a.jsxs)("div",{className:"wb-actions",role:"toolbar","aria-label":G("wb.waysOn"),children:["queued"===U.status&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",className:"primary",disabled:X||ed,onClick:()=>es(!0),children:G("wb.runThis")}),(0,a.jsx)("button",{type:"button",onClick:er,children:G("wb.addNote")}),(0,a.jsx)(i(),{className:"button-link",href:(0,r.aT)(B.id,U.id),children:G("wb.editTask")}),(0,a.jsx)("button",{type:"button",className:"danger",disabled:X,onClick:()=>void ej(),children:G("wb.remove")})]}),eo&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",className:"primary",onClick:er,children:G("wb.writeToChat")}),(0,a.jsx)("button",{type:"button",className:"danger",disabled:X,onClick:()=>void ex(()=>r.FH.stop(B.id),G("wb.stopping")),children:G("wb.stopSession")})]}),em&&(0,a.jsx)(i(),{className:"button-link primary",href:(0,r.aT)(B.id,U.id),children:G("wb.fixContradiction")}),eu&&!eo&&(0,a.jsx)("button",{type:"button",className:"primary",disabled:X||ed,onClick:()=>void ex(()=>r.FH.continueTask(B.id,U.id),G("wb.queuedToContinue"),!0),children:G("wb.continue")}),(eh||eu)&&!em&&!eo&&(0,a.jsx)("button",{type:"button",className:eh?"primary":"",disabled:ed,onClick:er,children:G("wb.continueWithPrompt")}),"done"===U.status&&(0,a.jsx)("button",{type:"button",className:"primary",disabled:ed,onClick:er,children:G("wb.newPrompt")}),eb&&!eo&&"queued"!==U.status&&(0,a.jsx)("button",{type:"button",disabled:X||ed,onClick:()=>void ek(),children:G("wb.runAgain")}),["failed","blocked","limit-reached","aborted"].includes(U.status)&&(0,a.jsx)("button",{type:"button","aria-expanded":ev,disabled:X||ed,onClick:()=>ef(e=>!e),children:G("wb.accept")}),eb&&!eo&&"queued"!==U.status&&(0,a.jsx)("button",{type:"button","aria-expanded":ea,disabled:ed,onClick:()=>en(e=>!e),children:G("wb.undo")}),(null!=(A=null==(u=U.vcs)||null==(d=u.files)?void 0:d.length)?A:0)>0&&(0,a.jsx)(x.C,{sessionId:B.id,taskId:U.id,runId:U.runId,title:U.title,files:null!=(M=null==(m=U.vcs)||null==(h=m.files)?void 0:h.length)?M:0}),(0,a.jsx)("button",{type:"button",onClick:_,children:G("wb.askKerrigan")})]}),V&&(0,a.jsx)("p",{className:"notice small",role:"status",children:V}),ed&&!eo&&(0,a.jsx)("p",{className:"muted small",children:G("wb.sessionBusy")}),(0,a.jsx)(f,{session:B,task:U,focusAsk:el,onChange:Z}),ev&&(0,a.jsxs)("div",{className:"wb-inline-panel",role:"group","aria-label":G("wb.accept"),children:[(0,a.jsx)("label",{htmlFor:"wb-accept-".concat(U.id),children:G("wb.acceptNote")}),(0,a.jsx)("textarea",{id:"wb-accept-".concat(U.id),value:eN,onChange:e=>eg(e.target.value),style:{minHeight:60}}),(0,a.jsxs)("div",{className:"row",children:[(0,a.jsx)("button",{type:"button",className:"primary",disabled:X,onClick:()=>void ex(()=>r.FH.acceptTask(B.id,U.id,eN),G("wb.accepted")).then(()=>ef(!1)),children:G("wb.acceptGo")}),(0,a.jsx)("button",{type:"button",className:"quiet",onClick:()=>ef(!1),children:G("dialog.cancel")})]})]}),ea&&(0,a.jsx)(y,{session:B,task:U,onDone:e=>{en(!1),Q(e),es(!0),Z()}}),ee&&"queued"===U.status&&(0,a.jsx)("div",{className:"wb-inline-panel",children:(0,a.jsx)(j.f,{target:{sessionId:B.id,taskId:U.id,title:U.title},intro:V||void 0,onClose:e=>{es(!1),e&&Q(G("wb.started")),Z()}})}),(0,a.jsxs)("section",{className:"wb-sec",children:[(0,a.jsx)("h3",{children:G("wb.result")}),U.accepted&&(0,a.jsxs)("p",{className:"notice calm small",children:[G("wb.acceptedWas",{was:G("status.".concat(U.accepted.was)),at:J(U.accepted.at)}),U.accepted.note?" ".concat(U.accepted.note):""]}),"queued"===U.status&&ep&&(0,a.jsx)("p",{className:"notice calm small",children:"this"===ep.how?G("wb.undoneThis",{commit:null!=(D=null==(b=ep.commit)?void 0:b.slice(0,8))?D:"—"}):G("wb.undoneBack")}),(null==(p=U.continuing)?void 0:p.instruction)&&"done"!==U.status&&(0,a.jsxs)("p",{className:"small",children:[(0,a.jsx)("strong",{children:G("task.continuedWith",{n:U.continuing.fromAttempt})})," ",U.continuing.instruction]}),U.summary?(0,a.jsx)(k.s,{text:U.summary}):"queued"===U.status?(0,a.jsx)("p",{className:"muted small",children:G("wb.notRunYet")}):null,U.reason&&U.reason!==U.summary&&"done"!==U.status&&(0,a.jsx)("p",{className:"reason small",children:U.reason})]}),(0,a.jsxs)("details",{className:"wb-sec",open:"queued"===U.status,children:[(0,a.jsx)("summary",{children:G("wb.prompt")}),(0,a.jsx)(k.s,{text:U.prompt})]}),ew&&(0,a.jsxs)("details",{className:"wb-sec",children:[(0,a.jsx)("summary",{children:G("wb.plan",{n:ew.version})}),(0,a.jsx)(v.D,{plan:ew})]}),(null!=(L=null==(g=U.checkResults)?void 0:g.length)?L:0)>0&&(0,a.jsxs)("section",{className:"wb-sec",children:[(0,a.jsx)("h3",{children:G("wb.checks")}),(0,a.jsx)("ul",{className:"wb-list",children:U.checkResults.map(e=>(0,a.jsxs)("li",{className:e.passed?"ok":"bad",children:[(0,a.jsx)("span",{"aria-hidden":"true",children:e.passed?"✓":"✗"})," ",(0,a.jsx)("strong",{children:e.name})," ",(0,a.jsx)("span",{className:"muted small",children:e.detail})]},e.name))})]}),U.review&&(0,a.jsxs)("section",{className:"wb-sec",children:[(0,a.jsx)("h3",{children:G("wb.review",{verdict:U.review.verdict})}),U.review.summary&&(0,a.jsx)("p",{className:"small",children:U.review.summary}),(null!=(R=null==(C=U.review.findings)?void 0:C.length)?R:0)>0&&(0,a.jsx)("ul",{className:"wb-list",children:U.review.findings.map((e,s)=>{var t;return(0,a.jsxs)("li",{className:"bad small",children:[e.id&&(0,a.jsx)("code",{children:e.id})," ",e.what,e.where?(0,a.jsxs)("span",{className:"muted",children:[" — ",e.where]}):null]},null!=(t=e.id)?t:s)})})]}),(null!=(q=null==(S=U.vcs)||null==(I=S.files)?void 0:I.length)?q:0)>0&&(0,a.jsxs)("section",{className:"wb-sec",children:[(0,a.jsx)("h3",{children:G("wb.changedFiles",{n:U.vcs.files.length})}),(0,a.jsx)("ul",{className:"wb-list",children:U.vcs.files.map(e=>(0,a.jsxs)("li",{children:[(0,a.jsx)("button",{type:"button",className:"linkish",onClick:()=>Y(e.path),children:e.path})," ",(0,a.jsx)("span",{className:"muted small",children:e.added>=0?"+".concat(e.added," −").concat(e.removed):G("wb.binary")})]},e.path))})]}),(null!=(K=null==(F=U.notes)?void 0:F.length)?K:0)>0&&(0,a.jsxs)("section",{className:"wb-sec",children:[(0,a.jsx)("h3",{children:G("wb.notes")}),(0,a.jsx)("ul",{className:"wb-list",children:U.notes.map(e=>(0,a.jsxs)("li",{className:"small",children:[e.text," ",(0,a.jsxs)("span",{className:"muted",children:["— ",e.sentAt?G("wb.noteSent",{at:J(e.sentAt)}):G("wb.noteWaiting")]})]},e.id))})]}),(U.startedAt||eo)&&(0,a.jsxs)("details",{className:"wb-sec",open:eo,children:[(0,a.jsx)("summary",{children:G("wb.conversation")}),(0,a.jsx)(N.P,{sessionId:B.id,taskId:U.id,runId:U.runId,live:eo},"".concat(U.id,":").concat(null!=(W=U.runId)?W:""))]}),(null!=(z=null==(O=U.attempts)?void 0:O.length)?z:0)>0&&(0,a.jsxs)("details",{className:"wb-sec",children:[(0,a.jsx)("summary",{children:G("wb.attempts",{n:U.attempts.length})}),(0,a.jsx)("ol",{className:"wb-list",children:U.attempts.map((e,s)=>(0,a.jsxs)("li",{className:"small",children:[(0,a.jsx)(et,{status:e.status})," ",G("wb.attemptLine",{n:s+1,status:G("status.".concat(e.status))}),e.undone?" \xb7 ".concat("this"===e.undone.how?G("wb.undoneShortThis"):G("wb.undoneShortBack")):"",e.reason?(0,a.jsxs)("span",{className:"muted",children:[" — ",e.reason.slice(0,200)]}):null]},s))})]})]})}function y(e){var s,t,l;let{session:i,task:c,onDone:d}=e,{t:u}=(0,o.kj)(),[h,m]=(0,n.useState)(null),[b,p]=(0,n.useState)(""),[x,j]=(0,n.useState)(!1);(0,n.useEffect)(()=>{r.FH.undoPreview(i.id,c.id).then(m).catch(e=>p(e.message))},[i.id,c.id]);let k=async e=>{if(await (0,w.Z)("this"===e?u("wb.undoThisConfirm",{title:c.title}):u("wb.undoBackConfirm",{title:c.title}))){j(!0);try{let s=await r.FH.undoTask(i.id,c.id,e);d(s.message)}catch(e){p(e.message)}finally{j(!1)}}};if(b&&!h)return(0,a.jsx)("p",{className:"err small",children:b});if(!h)return(0,a.jsx)("p",{className:"muted small",children:u("wb.loading")});let v=h.this,f=h.back;return(0,a.jsxs)("div",{className:"wb-inline-panel",role:"group","aria-label":u("wb.undo"),children:[(0,a.jsxs)("div",{className:"option",children:[(0,a.jsx)("strong",{children:u("wb.undoThis")}),(0,a.jsx)("p",{className:"small",children:v.ok?v.nothing?v.nothing:v.perTask?u("wb.undoThisPerTask",{base:(null!=(s=v.baseCommit)?s:"").slice(0,8),branch:null!=(t=v.branch)?t:"—"}):u("wb.undoThisWhat",{n:v.commits.length,branch:null!=(l=v.branch)?l:"",later:v.later.length}):v.problem}),(0,a.jsx)("button",{type:"button",className:"primary",disabled:x||!v.ok,onClick:()=>void k("this"),children:u("wb.undoThisGo")})]}),(0,a.jsxs)("div",{className:"option",children:[(0,a.jsx)("strong",{children:u("wb.undoBack")}),(0,a.jsx)("p",{className:"small",children:f.ok?u("wb.undoBackWhat",{tasks:f.tasks.map(e=>"“".concat(e.title,"”")).join(", ")}):f.problem}),(0,a.jsx)("button",{type:"button",disabled:x||!f.ok,onClick:()=>void k("back"),children:u("wb.undoBackGo")})]}),b&&(0,a.jsx)("p",{className:"err small",children:b}),(0,a.jsx)("p",{className:"muted small",children:u("wb.undoKept")})]})}var C=t(1701),I=t(4811);function S(e){var s,t;let{session:l,onOpen:c,onChange:d}=e,{t:u}=(0,o.kj)(),h=(0,I.p)(),[m,b]=(0,n.useState)(""),[p,x]=(0,n.useState)(!1),j=l.tasks.filter(e=>"queued"===e.status).length,k=l.tasks.filter(e=>"done"===e.status).length,v="idle"===l.status,f=async e=>{if("unattended"!==e||h||await (0,w.Z)(u("session.unattendedConfirm"))){x(!0),b("");try{var s;let t=await (0,C.L)({sessionIds:[l.id],mode:e,start:s=>r.FH.start(l.id,e,l.planName,s)});t.started?b(u("unattended"===e?"session.startedAuto":"session.startedStep")):t.reply&&b(u("session.notStarted",{reason:null!=(s=t.reply.reason)?s:""}))}catch(e){b(e.message)}finally{x(!1),d()}}};return(0,a.jsxs)("article",{className:"wb-task","aria-labelledby":"wb-s-".concat(l.id),children:[(0,a.jsxs)("header",{className:"wb-task-head",children:[(0,a.jsx)("span",{className:"wb-ico","aria-hidden":"true",children:"▤"}),(0,a.jsxs)("div",{className:"grow",children:[(0,a.jsx)("h2",{id:"wb-s-".concat(l.id),children:l.name}),(0,a.jsxs)("p",{className:"muted small",children:[u("wb.sessionLine",{done:k,all:l.tasks.length,queued:j}),(null==(s=l.vcs)?void 0:s.enabled)?" \xb7 ".concat("per-task"===l.vcs.branchMode?u("wb.perTask"):u("wb.perSession")):" \xb7 ".concat(u("wb.noVcs")),l.modelInUse||l.model?" \xb7 ".concat(null!=(t=l.modelInUse)?t:l.model):""]})]}),(0,a.jsx)(i(),{className:"button-link plain small",href:(0,r.aT)(l.id),children:u("wb.sessionSettings")})]}),(0,a.jsxs)("div",{className:"wb-actions",role:"toolbar","aria-label":u("wb.waysOn"),children:[v?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",className:"primary",disabled:p||0===j,onClick:()=>void f("unattended"),children:u("session.run",{n:j})}),(0,a.jsx)("button",{type:"button",disabled:p||0===j,onClick:()=>void f("confirm"),children:u("session.runStep")})]}):(0,a.jsx)("button",{type:"button",className:"danger",disabled:p,onClick:()=>void r.FH.stop(l.id).then(()=>b(u("wb.stopping"))).catch(e=>b(e.message)).finally(d),children:u("wb.stopSession")}),(0,a.jsx)(i(),{className:"button-link",href:(0,r.aT)(l.id,"new-task"),children:u("wb.addTask")})]}),0===j&&v&&(0,a.jsx)("p",{className:"muted small",children:u("wb.nothingQueued")}),m&&(0,a.jsx)("p",{className:"notice small",role:"status",children:m}),(0,a.jsx)("ol",{className:"wb-list wb-session-tasks",children:l.tasks.map(e=>(0,a.jsxs)("li",{children:[(0,a.jsxs)("button",{type:"button",className:"linkish",onClick:()=>c({kind:"task",sessionId:l.id,taskId:e.id}),children:[(0,a.jsx)(et,{status:e.status})," ",e.title]}),e.reason&&"done"!==e.status&&"queued"!==e.status?(0,a.jsxs)("span",{className:"muted small",children:[" — ",e.reason.slice(0,160)]}):null]},e.id))})]})}function F(e){var s;let{sessionId:t,path:l,taskId:i}=e,{t:c}=(0,o.kj)(),[d,u]=(0,n.useState)(null),[h,m]=(0,n.useState)("");if((0,n.useEffect)(()=>{let e=!0;return m(""),(t?r.FH.repoFile(t,l,i):r.FH.workspaceFile(l).then(e=>({...e,label:""}))).then(s=>e&&u(s)).catch(s=>e&&m(s.message)),()=>{e=!1}},[t,l,i,c]),h)return(0,a.jsx)("p",{className:"err small",children:h});if(!d)return(0,a.jsx)("p",{className:"muted small",children:c("wb.loading")});let b=(null!=(s=d.text)?s:"").split("\n");return(0,a.jsxs)("div",{className:"wb-file",children:[(0,a.jsx)("p",{className:"muted small",children:t?c("wb.fileAt",{path:d.path,ref:d.label}):c("wb.fileOnDisk",{path:d.path})}),d.binary?(0,a.jsx)("p",{className:"muted",children:c("wb.binary")}):d.tooLarge?(0,a.jsx)("p",{className:"muted",children:c("wb.tooLarge")}):(0,a.jsx)("pre",{className:"wb-code","aria-label":d.path,children:b.map((e,s)=>(0,a.jsxs)("span",{className:"wb-line",children:[(0,a.jsx)("span",{className:"wb-ln","aria-hidden":"true",children:s+1}),e,"\n"]},s))})]})}var O=t(7908);let T="cop.chat.thread",P="cop.chat.mode",H=(e,s)=>{try{s?window.localStorage.setItem(e,s):window.localStorage.removeItem(e)}catch(e){}},E=e=>{try{var s;return null!=(s=window.localStorage.getItem(e))?s:""}catch(e){return""}};function A(e){var s,t,l;let{workspace:i,composeAsk:d,onOpenFile:u,onChange:h,onOpenFolder:m,onTurn:b}=e,{t:p}=(0,o.kj)(),x=(0,I.p)(),[j,k]=(0,n.useState)([]),[v,f]=(0,n.useState)(""),[N,g]=(0,n.useState)(null),[y,S]=(0,n.useState)("confirm"),[F,A]=(0,n.useState)(""),[L,R]=(0,n.useState)(!1),[q,K]=(0,n.useState)(""),[W,z]=(0,n.useState)([]),B=(0,n.useRef)(null),U=!!N&&"idle"!==N.status;(0,n.useEffect)(()=>{f(E(T));let e=E(P);"confirm"===e||"unattended"===e?S(e):r.FH.settings().then(e=>{var s;return S((null==(s=e.raw.execution)?void 0:s.mode)==="unattended"?"unattended":"confirm")}).catch(()=>void 0)},[]),(0,n.useEffect)(()=>{var e;d>0&&(null==(e=B.current)||e.focus())},[d]);let Z=(0,n.useCallback)(()=>r.FH.chatThreads().then(k).catch(()=>void 0),[]);(0,c.z)(Z,5e3);let _=(0,n.useCallback)(()=>v?r.FH.session(v).then(e=>g("chat"===e.kind?e:null)).catch(()=>{g(null),f(""),H(T,"")}):Promise.resolve(g(null)),[v]);(0,n.useEffect)(()=>{_()},[_]),(0,c.z)(_,U?1500:5e3,!!v),(0,c.z)(()=>v&&U?r.FH.approvals(v).then(z).catch(()=>void 0):Promise.resolve(z([])),1500,!!v);let Y=e=>{f(e),H(T,e),K("")},G=async()=>{let e=F.trim();if(e&&!L){R(!0),K("");try{var s;let t=await r.FH.chatSend(e,v||void 0);if(A(""),Y(t.threadId),t.noted)return void K(p("chat.noted"));if("unattended"===y&&t.needsStart&&!x&&!await (0,w.Z)(p("session.unattendedConfirm")))return void K(p("chat.notStartedYet"));let a=t.needsStart?(await (0,C.L)({sessionIds:[t.threadId],mode:y,start:e=>r.FH.start(t.threadId,y,void 0,e)})).reply:await r.FH.start(t.threadId,y);a&&!a.started&&K(p("chat.notStarted",{reason:null!=(s=a.reason)?s:""}))}catch(e){K(e.message)}finally{R(!1),_(),Z(),h()}}},J=null==N?void 0:N.tasks.at(-1);(0,n.useEffect)(()=>{b(N&&J?{sessionId:N.id,taskId:J.id}:null)},[null==N?void 0:N.id,null==J?void 0:J.id]);let{ref:V}=(0,O.U)(!0,"".concat(null!=(s=null==N?void 0:N.tasks.length)?s:0,":").concat(null!=(t=null==J?void 0:J.status)?t:"",":").concat(null!=(l=null==J?void 0:J.iterations)?l:0));return(0,a.jsxs)("div",{className:"cs",children:[(0,a.jsxs)("div",{className:"cs-head",children:[(0,a.jsx)("label",{htmlFor:"cs-thread",className:"sr-only",children:p("chat.thread")}),(0,a.jsxs)("select",{id:"cs-thread",value:v,onChange:e=>Y(e.target.value),children:[(0,a.jsx)("option",{value:"",children:p("chat.newThread")}),j.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name.replace(/^chat: /,"")},e.id))]}),(0,a.jsx)("button",{type:"button",className:"wb-icon-btn",onClick:()=>{var e;Y(""),g(null),null==(e=B.current)||e.focus()},title:p("chat.newChat"),"aria-label":p("chat.newChat"),children:"+"})]}),(0,a.jsxs)("div",{className:"cs-body",ref:V,"aria-live":"polite",children:[N?N.tasks.map(e=>(0,a.jsx)(D,{session:N,task:e,approvals:W.filter(s=>s.taskId===e.id),onOpenFile:u},e.id)):(0,a.jsx)(M,{workspace:i,onPick:e=>{var s;A(e),null==(s=B.current)||s.focus()},onOpenFolder:m}),q&&(0,a.jsx)("p",{className:"cs-system",role:"status",children:q})]}),(0,a.jsxs)("div",{className:"cs-compose",children:[(0,a.jsx)("label",{htmlFor:"cs-input",className:"sr-only",children:p("chat.input")}),(0,a.jsx)("textarea",{id:"cs-input",ref:B,value:F,onChange:e=>A(e.target.value),placeholder:U?p("chat.placeholderRunning"):(null==i?void 0:i.ok)?p("chat.placeholder",{folder:i.name}):p("chat.placeholderNoFolder"),disabled:L||!(null==i?void 0:i.ok),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),G())}}),(0,a.jsxs)("div",{className:"cs-bar",children:[(0,a.jsx)("label",{htmlFor:"cs-mode",className:"sr-only",children:p("chat.mode")}),(0,a.jsxs)("select",{id:"cs-mode",value:y,onChange:e=>{let s=e.target.value;S(s),H(P,s)},disabled:U,title:p("chat.modeWhy"),children:[(0,a.jsx)("option",{value:"confirm",children:p("chat.modeAsk")}),(0,a.jsx)("option",{value:"unattended",children:p("chat.modeAuto")})]}),(0,a.jsx)("span",{className:"grow"}),U&&(0,a.jsx)("button",{type:"button",className:"danger",onClick:()=>{N&&r.FH.stop(N.id).then(()=>K(p("chat.stopping"))).catch(e=>K(e.message))},children:p("chat.stop")}),(0,a.jsx)("button",{type:"button",className:"primary",disabled:L||!F.trim()||!(null==i?void 0:i.ok),onClick:()=>void G(),title:p("chat.sendWhy"),children:U?p("chat.sendNote"):p("chat.send")})]})]})]})}function M(e){var s;let{workspace:t,onPick:n,onOpenFolder:l}=e,{t:i}=(0,o.kj)();if(!t)return(0,a.jsx)("p",{className:"muted small",children:i("wb.loading")});if(!t.ok)return(0,a.jsxs)("div",{className:"cs-welcome",children:[(0,a.jsx)("p",{children:t.problem}),(0,a.jsx)("button",{type:"button",className:"primary",onClick:l,children:i("chat.openFolder")})]});let r=[i("chat.example1"),i("chat.example2"),i("chat.example3")];return(0,a.jsxs)("div",{className:"cs-welcome",children:[(0,a.jsx)("h3",{children:i("chat.welcome",{folder:t.name})}),(0,a.jsx)("p",{className:"muted small",children:i("chat.welcomeWhy",{dir:t.dir,branch:null!=(s=t.branch)?s:"—"})}),(0,a.jsx)("ul",{className:"cs-examples",children:r.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)("button",{type:"button",className:"linkish",onClick:()=>n(e),children:e})},e))})]})}function D(e){var s,t,l,i;let{session:d,task:u,approvals:h,onOpenFile:m}=e,{t:b}=(0,o.kj)(),[p,w]=(0,n.useState)(null),j="running"===u.status||"waiting-approval"===u.status,v=()=>u.startedAt||j?r.FH.taskStory(d.id,u.id,u.runId).then(w).catch(()=>void 0):Promise.resolve();(0,n.useEffect)(()=>{v()},[u.id,u.runId,u.status]),(0,c.z)(v,j?1500:6e4,j);let f=[],N=e=>e.forEach(e=>"review"===e.kind?N(e.entries):f.push(e));return N(null!=(l=null==p?void 0:p.entries)?l:[]),(0,a.jsxs)("section",{className:"cs-turn","aria-label":b("chat.turn",{text:u.title}),children:[(0,a.jsx)("div",{className:"cs-user",children:(0,a.jsx)(k.s,{text:u.prompt})}),"queued"===u.status&&(0,a.jsx)("p",{className:"muted small cs-system",children:b("idle"===d.status?"chat.queued":"chat.waitingTurn")}),f.map((e,s)=>{var t;return"reply"===e.kind?(null==(t=e.notes)?void 0:t.trim())?(0,a.jsx)("div",{className:"cs-bot",children:(0,a.jsx)(k.s,{text:e.notes})},s):null:"step"===e.kind?(0,a.jsx)(L,{step:e},s):null}),h.map(e=>(0,a.jsx)(R,{approval:e},e.id)),j&&(0,a.jsxs)("p",{className:"cs-working",role:"status",children:[(0,a.jsx)("span",{className:"wb-live","aria-hidden":"true"})," ",b("chat.working",{n:u.iterations})]}),!j&&"queued"!==u.status&&(0,a.jsxs)("div",{className:"cs-end s-".concat(u.status),children:[(0,a.jsx)(et,{status:u.status}),(0,a.jsxs)("div",{className:"grow",children:[u.summary?(0,a.jsx)(k.s,{text:u.summary}):null,"done"!==u.status&&u.reason?(0,a.jsx)("p",{className:"small",children:u.reason}):null]})]}),(null!=(i=null==(t=u.vcs)||null==(s=t.files)?void 0:s.length)?i:0)>0&&!j&&(0,a.jsxs)("div",{className:"cs-files",children:[(0,a.jsx)("span",{className:"small",children:b("chat.changed",{n:u.vcs.files.length})}),u.vcs.files.slice(0,12).map(e=>(0,a.jsxs)("button",{type:"button",className:"cs-file",onClick:()=>m(e.path),title:e.path,children:[e.path.split("/").pop()," ",(0,a.jsx)("span",{className:"muted",children:e.added>=0?"+".concat(e.added," −").concat(e.removed):""})]},e.path)),(0,a.jsx)(x.C,{sessionId:d.id,taskId:u.id,runId:u.runId,title:u.title,files:u.vcs.files.length})]})]})}function L(e){let{step:s}=e,{t}=(0,o.kj)(),l=!s.outcome,[i,r]=(0,n.useState)(null),c=null!=i?i:l||s.failed;return(0,a.jsxs)("div",{className:"cs-cmd".concat(s.failed?" bad":""),children:[(0,a.jsxs)("button",{type:"button",className:"cs-cmd-head","aria-expanded":c,onClick:()=>r(!c),children:[(0,a.jsx)("span",{className:"cs-cmd-ico","aria-hidden":"true",children:l?"⟳":s.failed?"✗":"✓"}),(0,a.jsx)("code",{className:"wb-row-name",children:s.command}),(0,a.jsx)("span",{className:"muted small",children:l?t("chat.running"):void 0!==s.exitCode?t("chat.exit",{code:s.exitCode}):s.outcome})]}),c&&s.output&&(0,a.jsx)("pre",{className:"cs-out",children:s.output})]})}function R(e){let{approval:s}=e,{t}=(0,o.kj)(),[l,i]=(0,n.useState)(!1),c=async e=>{i(!0);try{await r.FH.decide(s.id,e)}finally{i(!1)}};return s.plan||s.model?(0,a.jsx)("p",{className:"cs-system small",children:t("chat.lookAbove")}):(0,a.jsxs)("div",{className:"cs-ask",role:"group","aria-label":t("chat.askTitle"),children:[(0,a.jsx)("p",{className:"small",children:(0,a.jsx)("strong",{children:t("chat.askTitle")})}),(0,a.jsx)("pre",{className:"cs-out",children:s.description}),(0,a.jsxs)("div",{className:"row",children:[(0,a.jsx)("button",{type:"button",className:"primary",disabled:l,onClick:()=>void c("run"),children:t("chat.askRun")}),!s.network&&(0,a.jsx)("button",{type:"button",disabled:l,onClick:()=>void c("run-all"),children:t("chat.askRunAll")}),(0,a.jsx)("button",{type:"button",disabled:l,onClick:()=>void c("skip"),children:t("chat.askSkip")})]})]})}function q(e){let{session:s,task:t,sessions:l,onChange:c}=e,{t:d}=(0,o.kj)(),[u,h]=(0,n.useState)(""),[m,b]=(0,n.useState)(t?"task":s?"session":"all"),[p,w]=(0,n.useState)(""),[x,j]=(0,n.useState)(""),[k,v]=(0,n.useState)(null),[f,N]=(0,n.useState)(""),[g,y]=(0,n.useState)(!1),C="task"!==m||t?"session"!==m||s?m:"all":s?"session":"all",I=async()=>{try{let e="task"===C&&s&&t?{sessionIds:[s.id],taskIds:[t.id],note:u}:"session"===C&&s?{sessionIds:[s.id],note:u}:{sessionIds:l.map(e=>e.id),note:u};return(await r.FH.kerriganReport(e)).text}catch(e){return w(e.message),null}},S=async()=>{let e=await I();if(e)try{await navigator.clipboard.writeText(e),w(d("wb.kCopied",{n:e.length}))}catch(e){w(d("wb.kCopyFailed"))}},F=async()=>{let e=await I();if(!e)return;let s=URL.createObjectURL(new Blob([e],{type:"text/plain;charset=utf-8"})),t=document.createElement("a");t.href=s,t.download="what-happened-".concat(new Date().toISOString().slice(0,16).replace(/[:T]/g,"-"),".txt"),t.click(),URL.revokeObjectURL(s),w(d("wb.kSaved"))},O=async()=>{y(!0),N("");try{v(await r.FH.checkChanges(x))}catch(e){N(e.message)}finally{y(!1)}},T=async()=>{y(!0);try{var e;let s=await r.FH.applyChanges(x);s.ok?(N(d("wb.kApplied",{n:s.applied.length})),v(null),j("")):N(null!=(e=s.problem)?e:s.check&&!s.check.ok?s.check.issues.map(e=>e.message).join(" "):"")}catch(e){N(e.message)}finally{y(!1),c()}},P=!!k&&!k.ok&&/"sessions"\s*:/.test(x)&&!/"changes"\s*:/.test(x);return(0,a.jsxs)("div",{className:"wb-kerrigan",children:[(0,a.jsxs)("section",{children:[(0,a.jsx)("h3",{children:d("wb.kTell")}),(0,a.jsx)("p",{className:"muted small",children:d("wb.kTellWhy")}),(0,a.jsxs)("fieldset",{className:"wb-scope",children:[(0,a.jsx)("legend",{className:"sr-only",children:d("wb.kScope")}),t&&(0,a.jsxs)("label",{children:[(0,a.jsx)("input",{type:"radio",name:"wb-k-scope",checked:"task"===C,onChange:()=>b("task")})," ",d("wb.kScopeTask")]}),s&&(0,a.jsxs)("label",{children:[(0,a.jsx)("input",{type:"radio",name:"wb-k-scope",checked:"session"===C,onChange:()=>b("session")})," ",d("wb.kScopeSession")]}),(0,a.jsxs)("label",{children:[(0,a.jsx)("input",{type:"radio",name:"wb-k-scope",checked:"all"===C,onChange:()=>b("all")})," ",d("wb.kScopeAll")]})]}),(0,a.jsx)("label",{htmlFor:"wb-k-note",children:d("wb.kNote")}),(0,a.jsx)("textarea",{id:"wb-k-note",value:u,onChange:e=>h(e.target.value),placeholder:d("wb.kNotePlaceholder"),style:{minHeight:90}}),(0,a.jsxs)("div",{className:"row",children:[(0,a.jsx)("button",{type:"button",className:"primary",onClick:()=>void S(),children:d("wb.kCopy")}),(0,a.jsx)("button",{type:"button",onClick:()=>void F(),children:d("wb.kSave")}),(0,a.jsx)(i(),{className:"button-link plain small",href:"/import",children:d("wb.kBrief")})]}),p&&(0,a.jsx)("p",{className:"small",role:"status",children:p})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h3",{children:d("wb.kAnswer")}),(0,a.jsx)("label",{htmlFor:"wb-k-answer",children:d("wb.kPaste")}),(0,a.jsx)("textarea",{id:"wb-k-answer",value:x,onChange:e=>{j(e.target.value),v(null)},style:{minHeight:110}}),(0,a.jsxs)("div",{className:"row",children:[(0,a.jsx)("button",{type:"button",disabled:g||!x.trim(),onClick:()=>void O(),children:d("wb.kCheck")}),(null==k?void 0:k.ok)&&(0,a.jsx)("button",{type:"button",className:"primary",disabled:g,onClick:()=>void T(),children:d("wb.kApply",{n:k.changes.length})})]}),(null==k?void 0:k.ok)&&(0,a.jsxs)(a.Fragment,{children:[k.notes&&(0,a.jsx)("p",{className:"small",children:k.notes}),(0,a.jsx)("ol",{className:"wb-list small",children:k.changes.map(e=>(0,a.jsx)("li",{children:e.says},e.index))}),k.warnings.map(e=>(0,a.jsx)("p",{className:"muted small",children:e},e))]}),k&&!k.ok&&(0,a.jsx)(a.Fragment,{children:P?(0,a.jsxs)("p",{className:"small",children:[d("wb.kIsPlan")," ",(0,a.jsx)(i(),{href:"/import",children:d("wb.kImportPage")})]}):(0,a.jsx)("ul",{className:"wb-list small",children:k.issues.map(e=>(0,a.jsxs)("li",{className:"bad",children:[e.path&&(0,a.jsx)("code",{children:e.path})," ",e.message]},"".concat(e.path).concat(e.message)))})}),f&&(0,a.jsx)("p",{className:"notice small",role:"status",children:f})]})]})}function K(e){let{tab:s,onTab:t,session:n,task:l,sessions:i,workspace:r,composeAsk:c,onOpenFile:d,onOpenFolder:u,onTurn:h,onChange:m,onClose:b}=e,{t:p}=(0,o.kj)();return(0,a.jsxs)("div",{className:"wb-chat-inner",children:[(0,a.jsxs)("div",{className:"wb-chat-tabs",role:"tablist","aria-label":p("wb.chatPanel"),children:[(0,a.jsx)("button",{type:"button",role:"tab","aria-selected":"chat"===s,className:"chat"===s?"on":"",onClick:()=>t("chat"),children:p("wb.chatTab")}),(0,a.jsx)("button",{type:"button",role:"tab","aria-selected":"kerrigan"===s,className:"kerrigan"===s?"on":"",onClick:()=>t("kerrigan"),children:p("wb.kerriganTab")}),(0,a.jsx)("span",{className:"grow"}),(0,a.jsx)("button",{type:"button",className:"wb-icon-btn","aria-label":p("wb.toggleChat"),title:p("wb.toggleChat"),onClick:b,children:"\xd7"})]}),"kerrigan"===s?(0,a.jsx)(q,{session:n,task:l,sessions:i,onChange:m}):(0,a.jsx)(A,{workspace:r,composeAsk:c,onOpenFile:d,onChange:m,onOpenFolder:u,onTurn:h})]})}function W(e){let{open:s,onToggle:t,tab:n,onTab:l,session:i,task:r,onOpenTask:c}=e,{t:d}=(0,o.kj)(),u=i?function(e){let s=[];return e.tasks.forEach((t,a)=>{var n,l,i,r;let c="".concat(a+1,". ").concat(t.title);for(let a of null!=(i=t.checkResults)?i:[])a.passed||s.push({sessionId:e.id,taskId:t.id,kind:"error",text:"".concat(a.name,": ").concat(a.detail.slice(0,160)),where:c});if((null==(n=t.review)?void 0:n.verdict)==="fail")for(let a of null!=(r=t.review.findings)?r:[])s.push({sessionId:e.id,taskId:t.id,kind:"error",text:a.what.slice(0,200),where:a.where?"".concat(c," \xb7 ").concat(a.where):c});["failed","blocked","limit-reached","aborted"].includes(t.status)&&t.reason&&s.push({sessionId:e.id,taskId:t.id,kind:"warn",text:t.reason.slice(0,200),where:c}),(null==(l=t.vcs)?void 0:l.problem)&&s.push({sessionId:e.id,taskId:t.id,kind:"warn",text:t.vcs.problem.slice(0,200),where:c})}),s}(i):[];return(0,a.jsxs)("section",{className:"wb-bottom","aria-label":d("wb.panel"),children:[(0,a.jsxs)("div",{className:"wb-bottom-tabs",role:"tablist","aria-label":d("wb.panel"),children:[["terminal","problems","output"].map(e=>(0,a.jsxs)("button",{type:"button",role:"tab","aria-selected":s&&n===e,className:s&&n===e?"on":"",onClick:()=>l(e),children:[d("terminal"===e?"wb.terminal":"problems"===e?"wb.problems":"wb.output"),"problems"===e&&u.length>0&&(0,a.jsx)("span",{className:"wb-badge",children:u.length})]},e)),(0,a.jsx)("span",{className:"grow"}),(0,a.jsx)("button",{type:"button",className:"wb-icon-btn","aria-label":d("wb.cmdPanel"),title:"".concat(d("wb.cmdPanel")," (Ctrl+J)"),onClick:t,children:s?"▾":"▴"})]}),s&&(0,a.jsx)("div",{className:"wb-bottom-body",role:"tabpanel",children:"terminal"===n?(0,a.jsx)(z,{session:i,task:r}):"problems"===n?0===u.length?(0,a.jsx)("p",{className:"muted small wb-pad",children:i?d("wb.noProblems"):d("wb.pickSession")}):(0,a.jsx)("ul",{className:"wb-problems",children:u.map((e,s)=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",className:"wb-row",onClick:()=>c(e.sessionId,e.taskId),children:[(0,a.jsx)("span",{className:"wb-sev ".concat(e.kind),"aria-hidden":"true",children:"error"===e.kind?"✗":"⚠"}),(0,a.jsx)("span",{className:"wb-row-name",children:e.text}),(0,a.jsx)("span",{className:"muted",children:e.where})]})},s))}):(0,a.jsx)(B,{session:i})})]})}function z(e){var s,t;let{session:l,task:i}=e,{t:d}=(0,o.kj)(),[u,h]=(0,n.useState)(null),m=(null==i?void 0:i.status)==="running"||(null==i?void 0:i.status)==="waiting-approval",{ref:b}=(0,O.U)(!!m,null!=(s=null==u?void 0:u.entries.length)?s:0),p=()=>l&&i&&(i.startedAt||m)?r.FH.taskStory(l.id,i.id,i.runId).then(h).catch(()=>void 0):Promise.resolve();if((0,n.useEffect)(()=>{h(null),p()},[null==i?void 0:i.id,null==i?void 0:i.runId]),(0,c.z)(p,m?2e3:15e3,!!l&&!!i),!i)return(0,a.jsx)("p",{className:"muted small wb-pad",children:d("wb.pickTask")});let w=[],x=e=>e.forEach(e=>"step"===e.kind?w.push(e):"review"===e.kind?x(e.entries):void 0);return(x(null!=(t=null==u?void 0:u.entries)?t:[]),0===w.length)?(0,a.jsx)("p",{className:"muted small wb-pad",children:u?d("wb.noSteps"):d("wb.loading")}):(0,a.jsx)("div",{ref:b,className:"wb-terminal","aria-live":"off",children:w.map((e,s)=>(0,a.jsxs)("div",{className:e.failed?"bad":"",children:[(0,a.jsxs)("div",{className:"wb-cmd",children:[(0,a.jsx)("span",{"aria-hidden":"true",children:"$ "}),e.command,(0,a.jsxs)("span",{className:"muted",children:[" ",e.outcome?"".concat(e.outcome).concat(void 0!==e.exitCode?" (".concat(e.exitCode,")"):""):d("wb.runningNow")]})]}),e.output&&(0,a.jsx)("pre",{children:e.output})]},s))})}function B(e){let{session:s}=e,{t}=(0,o.kj)(),l=(0,o.W3)(),[i,d]=(0,n.useState)([]),{ref:u}=(0,O.U)(!0,i.length),h=()=>s?r.FH.sessionEvents(s.id).then(d).catch(()=>void 0):Promise.resolve();return((0,n.useEffect)(()=>{d([]),h()},[null==s?void 0:s.id]),(0,c.z)(h,3e3,!!s),s)?(0,a.jsx)("div",{ref:u,className:"wb-terminal",children:0===i.length?(0,a.jsx)("p",{className:"muted small",children:t("wb.noEvents")}):i.map((e,s)=>{var t;return(0,a.jsxs)("div",{className:"error"===e.level?"bad":"warn"===e.level?"warnline":"",children:[(0,a.jsxs)("span",{className:"muted",children:[l(e.at)," "]}),null!=(t=e.message)?t:e.type]},s)})}):(0,a.jsx)("p",{className:"muted small wb-pad",children:t("wb.pickSession")})}var U=t(3374);function Z(e){var s,t,l,i;let{sessions:d,session:u,task:h,workspace:m,onOpenTask:b}=e,{t:p}=(0,o.kj)(),w=(0,U.c)(!0,5e3),[x,j]=(0,n.useState)(""),[k,v]=(0,n.useState)(0),[f,N]=(0,n.useState)({iterations:60,minutes:240});(0,n.useEffect)(()=>{r.FH.settings().then(e=>{var s,t,a;let n=null!=(s=e.raw.limits)?s:{};N({iterations:null!=(t=n.maxIterations)?t:60,minutes:null!=(a=n.maxRunMinutes)?a:240})}).catch(()=>void 0)},[]),(0,n.useEffect)(()=>{var e;j(""),(null==u||null==(e=u.vcs)?void 0:e.enabled)&&r.FH.vcsStatus(u.id).then(e=>{var s;return j(null!=(s=e.branch)?s:"")}).catch(()=>void 0)},[null==u?void 0:u.id,null==u?void 0:u.status,null==h?void 0:h.status]),(0,c.z)(()=>r.FH.approvals().then(e=>v(e.length)).catch(()=>void 0),3e3);let g=d.find(e=>"idle"!==e.status),y=null==g?void 0:g.tasks.find(e=>"running"===e.status||"waiting-approval"===e.status),C=(null==y?void 0:y.startedAt)?Math.floor((w-Date.parse(y.startedAt))/6e4):0;return(0,a.jsxs)("footer",{className:"wb-statusbar","aria-label":p("wb.status"),children:[!(null==u||null==(s=u.vcs)?void 0:s.enabled)&&(null==m?void 0:m.ok)&&(0,a.jsxs)("span",{title:m.dir,children:[(0,a.jsx)("span",{"aria-hidden":"true",children:"⎇ "}),m.branch?"".concat(m.name," \xb7 ").concat(m.branch):m.name]}),(null==u||null==(t=u.vcs)?void 0:t.enabled)&&(0,a.jsxs)("span",{title:p("wb.branchNow"),children:[(0,a.jsx)("span",{"aria-hidden":"true",children:"⎇ "}),x||"…"]}),g&&y?(0,a.jsxs)("button",{type:"button",className:"wb-status-btn",onClick:()=>b(g.id,y.id),title:p("wb.openRunning"),children:[(0,a.jsx)("span",{className:"wb-live","aria-hidden":"true"})," ",p("wb.runningLine",{session:g.name,task:y.title,n:y.iterations,max:f.iterations,m:C,maxm:f.minutes})]}):(0,a.jsx)("span",{children:p("wb.idle")}),(0,a.jsx)("span",{className:"grow"}),k>0&&(0,a.jsx)("button",{type:"button",className:"wb-status-btn warn",onClick:()=>{var e;return null==(e=document.querySelector(".approval-banner"))?void 0:e.scrollIntoView({block:"start"})},children:p("wb.waiting",{n:k})}),u&&(0,a.jsx)("span",{title:p("wb.modelNow"),children:null!=(i=null!=(l=u.modelInUse)?l:u.model)?i:p("wb.modelDefault")})]})}var _=t(1702);function Y(e){let{commands:s,onClose:t}=e,{t:l}=(0,o.kj)(),i=(0,_.useRouter)(),[r,c]=(0,n.useState)(""),[d,u]=(0,n.useState)(0),h=(0,n.useRef)(null);(0,n.useEffect)(()=>{var e;return null==(e=h.current)?void 0:e.focus()},[]);let m=(0,n.useMemo)(()=>{let e=r.toLowerCase().split(/\s+/).filter(Boolean);return s.filter(s=>e.every(e=>{var t;return"".concat(s.label," ").concat(null!=(t=s.hint)?t:"").toLowerCase().includes(e)})).slice(0,60)},[r,s]),b=0===m.length?-1:Math.min(d,m.length-1),p=e=>{var s;e&&(t(),e.href?i.push(e.href):null==(s=e.run)||s.call(e))};return(0,a.jsx)("div",{className:"modal-backdrop",role:"presentation",onClick:t,children:(0,a.jsxs)("div",{className:"wb-palette",role:"dialog","aria-modal":"true","aria-label":l("wb.palette"),onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("input",{ref:h,type:"text",role:"combobox","aria-expanded":"true","aria-controls":"wb-palette-list","aria-activedescendant":b>=0?"wb-cmd-".concat(b):void 0,"aria-label":l("wb.palette"),placeholder:l("wb.palettePlaceholder"),value:r,onChange:e=>{c(e.target.value),u(0)},onKeyDown:e=>{"Escape"===e.key?t():"ArrowDown"===e.key?(e.preventDefault(),u(Math.min(m.length-1,b+1))):"ArrowUp"===e.key?(e.preventDefault(),u(Math.max(0,b-1))):"Enter"===e.key&&(e.preventDefault(),p(m[b]))}}),(0,a.jsxs)("ul",{id:"wb-palette-list",role:"listbox","aria-label":l("wb.palette"),children:[0===m.length&&(0,a.jsx)("li",{className:"muted small",children:l("wb.paletteNone")}),m.map((e,s)=>(0,a.jsxs)("li",{id:"wb-cmd-".concat(s),role:"option","aria-selected":s===b,className:s===b?"on":"",onMouseEnter:()=>u(s),onClick:()=>p(e),children:[(0,a.jsx)("span",{className:"wb-row-name",children:e.label}),e.hint&&(0,a.jsx)("span",{className:"muted small",children:e.hint})]},e.id))]})]})})}let G=e=>"task"===e.kind?"t:".concat(e.taskId):"session"===e.kind?"s:".concat(e.sessionId):"f:".concat(e.sessionId,":").concat(e.path),J={side:290,chat:420,bottom:240,sideOpen:!0,chatOpen:!0,bottomOpen:!0},V="cop.workbench.layout";function Q(){return(0,a.jsx)(n.Suspense,{fallback:null,children:(0,a.jsx)(X,{})})}function X(){let{t:e}=(0,o.kj)(),[s,t]=(0,n.useState)(null),[l,u]=(0,n.useState)(""),[h,m]=(0,n.useState)({}),[b,p]=(0,n.useState)([]),[w,x]=(0,n.useState)(""),[j,k]=(0,n.useState)("files"),[v,f]=(0,n.useState)(null),[N,y]=(0,n.useState)(null),[C,I]=(0,n.useState)("terminal"),[O,T]=(0,n.useState)("chat"),[P,H]=(0,n.useState)(J),[E,A]=(0,n.useState)(!1),[M,D]=(0,n.useState)(0),L=(0,n.useRef)(!1),R=(0,n.useCallback)(()=>r.FH.sessions().then(e=>{t(e),u("")}).catch(e=>u(e.message)),[]);(0,c.z)(R,3e3);let q=(0,n.useCallback)(()=>r.FH.workspace().then(f).catch(()=>void 0),[]);(0,c.z)(q,1e4);let z=(0,n.useCallback)(async()=>{try{var e;let s=await r.FH.browseFolder((null==v?void 0:v.dir)||void 0);if(!s.ok)return;let t=await r.FH.settings();await r.FH.saveSettings({...t.raw,project:{...null!=(e=t.raw.project)?e:{},rootDir:s.path}}),await q()}catch(e){u(e.message)}},[null==v?void 0:v.dir,q]);(0,n.useEffect)(()=>{var e,s;H(function(){try{let e=window.localStorage.getItem(V);return e?{...J,...JSON.parse(e)}:J}catch(e){return J}}());let t=new URLSearchParams(window.location.search),a=null!=(e=t.get("s"))?e:void 0,n=null!=(s=t.get("t"))?s:void 0;a&&m({sessionId:a,taskId:n}),L.current=!0},[]),(0,n.useEffect)(()=>{try{window.localStorage.setItem(V,JSON.stringify(P))}catch(e){}},[P]),(0,n.useEffect)(()=>{if(!L.current)return;let e=new URLSearchParams;h.sessionId&&e.set("s",h.sessionId),h.taskId&&e.set("t",h.taskId);let s=e.toString()?"/?".concat(e.toString()):"/";"".concat(window.location.pathname).concat(window.location.search)!==s&&window.history.replaceState(null,"",s)},[h]);let B=(0,n.useCallback)(e=>{p(s=>s.some(s=>G(s)===G(e))?s:[...s,e]),x(G(e)),"task"===e.kind?m({sessionId:e.sessionId,taskId:e.taskId}):m(s=>({sessionId:e.sessionId,taskId:s.sessionId===e.sessionId?s.taskId:void 0}))},[]),U=(0,n.useRef)(!1);(0,n.useEffect)(()=>{if(U.current||!s||!h.sessionId)return;let e=s.find(e=>e.id===h.sessionId);e&&(U.current=!0,h.taskId&&e.tasks.some(e=>e.id===h.taskId)?B({kind:"task",sessionId:e.id,taskId:h.taskId}):B({kind:"session",sessionId:e.id}))},[s,h,B]);let _=null==s?void 0:s.find(e=>e.id===h.sessionId),Q=null==_?void 0:_.tasks.find(e=>e.id===h.taskId),X=b.find(e=>G(e)===w),en=N?null==s?void 0:s.find(e=>e.id===N.sessionId):void 0,el=(null==X?void 0:X.kind)!=="task"&&en?en:_,ei=(null==X?void 0:X.kind)!=="task"&&en?en.tasks.find(e=>e.id===(null==N?void 0:N.taskId)):Q,er=e=>H(s=>({...s,...e}));(0,n.useEffect)(()=>{let e=e=>{if(!(e.ctrlKey||e.metaKey))return;let s=e.key.toLowerCase();"k"===s||"p"===s&&e.shiftKey?(e.preventDefault(),A(!0)):"b"!==s||e.shiftKey?"j"===s?(e.preventDefault(),er({bottomOpen:!P.bottomOpen})):"l"===s&&(e.preventDefault(),er({chatOpen:!0}),T("chat"),D(e=>e+1)):(e.preventDefault(),er({sideOpen:!P.sideOpen}))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[P]);let ec=(0,n.useMemo)(()=>{let t=[{id:"kerrigan",label:e("wb.cmdKerrigan"),run:()=>{er({chatOpen:!0}),T("kerrigan")}},{id:"chat",label:e("wb.cmdChat"),hint:"Ctrl+L",run:()=>{er({chatOpen:!0}),T("chat"),D(e=>e+1)}},{id:"side",label:e("wb.cmdSide"),hint:"Ctrl+B",run:()=>er({sideOpen:!P.sideOpen})},{id:"panel",label:e("wb.cmdPanel"),hint:"Ctrl+J",run:()=>er({bottomOpen:!P.bottomOpen})},{id:"files",label:e("wb.cmdFiles"),run:()=>{er({sideOpen:!0}),k("files")}},{id:"commits",label:e("wb.cmdCommits"),run:()=>{er({sideOpen:!0}),k("commits")}},{id:"problems",label:e("wb.cmdProblems"),run:()=>{er({bottomOpen:!0}),I("problems")}},...[["/sessions","nav.sessions"],["/history","nav.history"],["/import","nav.import"],["/defaults","nav.defaults"],["/level1","nav.level1"],["/presets","nav.presets"],["/appearance","nav.appearance"],["/system","nav.system"]].map(s=>{let[t,a]=s;return{id:"go:".concat(t),label:e("wb.cmdGo",{page:e(a)}),href:t}})];for(let a of null!=s?s:[])t.push({id:"s:".concat(a.id),label:e("wb.cmdSession",{name:a.name}),run:()=>B({kind:"session",sessionId:a.id})}),a.tasks.forEach((s,n)=>t.push({id:"t:".concat(s.id),label:"".concat(a.name," › ").concat(n+1,". ").concat(s.title),hint:e("status.".concat(s.status)),run:()=>B({kind:"task",sessionId:a.id,taskId:s.id})}));return t},[s,e,P,B]),eo={"--wb-side":P.sideOpen?"".concat(P.side,"px"):"0px","--wb-chat":P.chatOpen?"".concat(P.chat,"px"):"0px","--wb-bottom":P.bottomOpen?"".concat(P.bottom,"px"):"34px"};return(0,a.jsxs)("div",{className:"wb",style:eo,children:[(0,a.jsxs)("header",{className:"wb-top",children:[(0,a.jsx)("span",{className:"wb-brand",children:"copilot-operator"}),(0,a.jsxs)("button",{type:"button",className:"wb-search",onClick:()=>A(!0),title:e("wb.paletteWhy"),children:[(0,a.jsx)("span",{children:e("wb.palette")}),(0,a.jsx)("kbd",{children:"Ctrl+K"})]}),(0,a.jsxs)("nav",{className:"wb-menu","aria-label":e("nav.label"),children:[(0,a.jsx)(i(),{href:"/sessions",children:e("nav.sessions")}),(0,a.jsx)(i(),{href:"/history",children:e("nav.history")}),(0,a.jsx)(i(),{href:"/import",children:e("nav.import")}),(0,a.jsx)(i(),{href:"/defaults",children:e("nav.defaults")}),(0,a.jsx)(o.c5,{})]})]}),(0,a.jsxs)("div",{className:"wb-body".concat(P.sideOpen?"":" no-side").concat(P.chatOpen?"":" no-chat"),children:[(0,a.jsx)(ee,{side:j,sideOpen:P.sideOpen,onSide:e=>{e===j&&P.sideOpen?er({sideOpen:!1}):(k(e),er({sideOpen:!0}))},chatOpen:P.chatOpen,onChat:()=>er({chatOpen:!P.chatOpen})}),(0,a.jsxs)("aside",{className:"wb-side","aria-label":e("wb.explorer"),hidden:!P.sideOpen,children:[l&&!s?(0,a.jsx)("p",{className:"err small",style:{padding:10},children:l}):null,(0,a.jsx)(d,{view:j,sessions:s,selected:h,onOpen:B,onChange:()=>void R(),workspace:v,onOpenFolder:()=>void z()})]}),P.sideOpen&&(0,a.jsx)(es,{axis:"x",label:e("wb.resize"),onDrag:e=>er({side:$(P.side+e,180,560)})}),(0,a.jsxs)("section",{className:"wb-center","aria-label":e("wb.editor"),children:[(0,a.jsxs)("div",{className:"wb-tabs",role:"tablist","aria-label":e("wb.openTabs"),children:[0===b.length&&(0,a.jsx)("span",{className:"muted small wb-tabs-empty",children:e("wb.noTabs")}),b.map(t=>{var n,l;let i=G(t),r=null==s?void 0:s.find(e=>e.id===t.sessionId),c="task"===t.kind?null==r?void 0:r.tasks.find(e=>e.id===t.taskId):void 0,o="task"===t.kind?null!=(n=null==c?void 0:c.title)?n:e("wb.goneTask"):"session"===t.kind?null!=(l=null==r?void 0:r.name)?l:e("wb.goneSession"):t.path.split("/").pop();return(0,a.jsxs)("div",{className:"wb-tab".concat(i===w?" active":""),children:[(0,a.jsxs)("button",{type:"button",role:"tab","aria-selected":i===w,onClick:()=>"task"===t.kind?B(t):(x(i),m({sessionId:t.sessionId,taskId:"file"===t.kind?t.taskId:void 0})),title:"file"===t.kind?t.path:void 0,children:[c&&(0,a.jsx)(et,{status:c.status}),"file"===t.kind&&(0,a.jsx)("span",{className:"wb-ico","aria-hidden":"true",children:"≡"}),"session"===t.kind&&(0,a.jsx)("span",{className:"wb-ico","aria-hidden":"true",children:"▤"}),(0,a.jsx)("span",{className:"wb-tab-label",children:o})]}),(0,a.jsx)("button",{type:"button",className:"wb-tab-close","aria-label":e("wb.closeTab",{name:null!=o?o:""}),onClick:()=>{p(e=>{let s=e.findIndex(e=>G(e)===i),t=e.filter(e=>G(e)!==i);return i===w&&x(t[Math.max(0,s-1)]?G(t[Math.max(0,s-1)]):""),t})},children:"\xd7"})]},i)})]}),(0,a.jsx)("div",{className:"wb-editor",role:"tabpanel",children:X?"task"===X.kind?_&&Q?(0,a.jsx)(g,{session:_,task:Q,onChange:()=>void R(),onKerrigan:()=>{er({chatOpen:!0}),T("kerrigan")},onOpenFile:e=>B({kind:"file",sessionId:_.id,path:e,taskId:Q.id})}):(0,a.jsx)("p",{className:"muted",children:e("wb.goneTask")}):"session"===X.kind?(()=>{let t=null==s?void 0:s.find(e=>e.id===X.sessionId);return t?(0,a.jsx)(S,{session:t,onOpen:B,onChange:()=>void R()}):(0,a.jsx)("p",{className:"muted",children:e("wb.goneSession")})})():(0,a.jsx)(F,{sessionId:X.sessionId,path:X.path,taskId:X.taskId}):(0,a.jsx)(ea,{sessions:s,workspace:v,onOpen:B,onChat:()=>{er({chatOpen:!0}),T("chat"),D(e=>e+1)},onKerrigan:()=>{er({chatOpen:!0}),T("kerrigan")}})}),P.bottomOpen&&(0,a.jsx)(es,{axis:"y",label:e("wb.resize"),onDrag:e=>er({bottom:$(P.bottom-e,90,700)})}),(0,a.jsx)(W,{open:P.bottomOpen,onToggle:()=>er({bottomOpen:!P.bottomOpen}),tab:C,onTab:e=>{I(e),er({bottomOpen:!0})},session:el,task:ei,onOpenTask:(e,s)=>B({kind:"task",sessionId:e,taskId:s})})]}),P.chatOpen&&(0,a.jsx)(es,{axis:"x",label:e("wb.resize"),onDrag:e=>er({chat:$(P.chat-e,300,820)})}),(0,a.jsx)("aside",{className:"wb-chat","aria-label":e("wb.chatPanel"),hidden:!P.chatOpen,children:(0,a.jsx)(K,{tab:O,onTab:T,session:_,task:Q,sessions:(null!=s?s:[]).filter(e=>"chat"!==e.kind),workspace:v,composeAsk:M,onOpenFile:e=>B({kind:"file",sessionId:"",path:e}),onOpenFolder:()=>void z(),onTurn:y,onChange:()=>void R(),onClose:()=>er({chatOpen:!1})})})]}),(0,a.jsx)(Z,{sessions:null!=s?s:[],session:_,task:Q,workspace:v,onOpenTask:(e,s)=>B({kind:"task",sessionId:e,taskId:s})}),E&&(0,a.jsx)(Y,{commands:ec,onClose:()=>A(!1)})]})}let $=(e,s,t)=>Math.max(s,Math.min(t,e));function ee(e){let{side:s,sideOpen:t,onSide:n,chatOpen:l,onChat:r}=e,{t:c}=(0,o.kj)(),d=(e,l,i)=>(0,a.jsx)("button",{type:"button",className:"wb-act".concat(t&&s===e?" on":""),"aria-pressed":t&&s===e,"aria-label":l,title:l,onClick:()=>n(e),children:(0,a.jsx)("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:i})});return(0,a.jsxs)("nav",{className:"wb-activity","aria-label":c("wb.views"),children:[d("tasks",c("wb.viewTasks"),(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h10"})),d("files",c("wb.viewFiles"),(0,a.jsx)("path",{d:"M4 4h6l2 2h8v14H4z"})),d("commits",c("wb.viewCommits"),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,a.jsx)("path",{d:"M12 3v6M12 15v6"})]})),(0,a.jsx)("span",{className:"grow"}),(0,a.jsx)("button",{type:"button",className:"wb-act".concat(l?" on":""),"aria-pressed":l,"aria-label":c("wb.toggleChat"),title:"".concat(c("wb.toggleChat")," (Ctrl+L)"),onClick:r,children:(0,a.jsx)("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M4 5h16v11H9l-5 4z"})})}),(0,a.jsx)(i(),{className:"wb-act",href:"/defaults","aria-label":c("nav.defaults"),title:c("nav.defaults"),children:(0,a.jsxs)("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,a.jsx)("path",{d:"M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M5 19l2-2M17 7l2-2"})]})})]})}function es(e){let{axis:s,label:t,onDrag:l}=e,i=(0,n.useRef)(null);return(0,a.jsx)("div",{className:"wb-split ".concat(s),role:"separator","aria-orientation":"x"===s?"vertical":"horizontal","aria-label":t,tabIndex:0,onPointerDown:e=>{i.current="x"===s?e.clientX:e.clientY,e.target.setPointerCapture(e.pointerId)},onPointerMove:e=>{if(null===i.current)return;let t="x"===s?e.clientX:e.clientY;l(t-i.current),i.current=t},onPointerUp:()=>i.current=null,onKeyDown:e=>{let t=e.shiftKey?40:12;("x"===s&&"ArrowLeft"===e.key||"y"===s&&"ArrowUp"===e.key)&&l(-t),("x"===s&&"ArrowRight"===e.key||"y"===s&&"ArrowDown"===e.key)&&l(t)}})}function et(e){var s;let{status:t}=e,{t:n}=(0,o.kj)();return(0,a.jsx)("span",{className:"wb-status s-".concat(t),title:n("status.".concat(t)),"aria-label":n("status.".concat(t)),role:"img",children:null!=(s=({done:"✓",failed:"✗",blocked:"⊘","limit-reached":"⏸",aborted:"■",queued:"○",running:"●","waiting-approval":"◐"})[t])?s:"\xb7"})}function ea(e){let{sessions:s,workspace:t,onOpen:n,onChat:l,onKerrigan:r}=e,{t:c}=(0,o.kj)(),d=(null!=s?s:[]).filter(e=>"chat"!==e.kind),u=d.flatMap(e=>e.tasks.filter(e=>["failed","blocked","limit-reached","aborted","waiting-approval"].includes(e.status)).map(s=>({s:e,x:s}))),h=d.reduce((e,s)=>e+s.tasks.filter(e=>"queued"===e.status).length,0);return(0,a.jsxs)("div",{className:"wb-welcome",children:[(0,a.jsx)("h2",{children:(null==t?void 0:t.ok)?t.name:c("wb.welcome")}),(0,a.jsx)("p",{className:"muted",children:(null==t?void 0:t.ok)?c("wb.welcomeChat",{dir:t.dir}):c("wb.welcomeWhy")}),(0,a.jsxs)("div",{className:"row",children:[(0,a.jsx)("button",{type:"button",className:"primary",onClick:l,children:c("wb.startChat")}),(0,a.jsx)(i(),{className:"button-link",href:"/import",children:c("wb.startPlan")}),(0,a.jsx)("button",{type:"button",onClick:r,children:c("wb.askKerrigan")})]}),u.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h3",{children:c("wb.needsYou",{n:u.length})}),(0,a.jsx)("ul",{className:"wb-list",children:u.slice(0,12).map(e=>{let{s,x:t}=e;return(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",className:"linkish",onClick:()=>n({kind:"task",sessionId:s.id,taskId:t.id}),children:[(0,a.jsx)(et,{status:t.status})," ",s.name," › ",t.title]})},t.id)})})]}),h>0&&(0,a.jsx)("p",{className:"small",children:c("wb.queuedCount",{n:h})}),(0,a.jsx)("p",{className:"muted small",children:c("wb.keys")})]})}function en(){return(0,a.jsx)(Q,{})}},5704:(e,s,t)=>{Promise.resolve().then(t.bind(t,4846))},9717:(e,s,t)=>{"use strict";t.d(s,{D:()=>l});var a=t(3365),n=t(867);function l(e){var s,t;let{plan:l,showApproval:i=!0}=e,{t:r}=(0,n.kj)(),c=(0,n.W3)(),o=l.approved;return(0,a.jsxs)("div",{className:"plan-view",children:[(0,a.jsx)("p",{className:"small muted",children:r("pm.version",{n:l.version,at:c(l.at)})}),i&&o&&(0,a.jsxs)("p",{className:"small",children:["operator"===o.by?r("pm.approvedByOperator",{at:c(o.at)}):r("pm.approvedAuto",{at:c(o.at)}),o.why&&" ".concat(o.why),o.note&&" ".concat(r("pm.approvedNote",{note:o.note}))]}),(0,a.jsx)("h4",{children:r("pm.existing")}),(0,a.jsx)("p",{className:"pre-wrap",children:l.existing}),(0,a.jsx)("h4",{children:r("pm.approach")}),(0,a.jsx)("p",{className:"pre-wrap",children:l.approach}),(0,a.jsx)("h4",{children:r("pm.steps")}),(0,a.jsx)("ol",{children:l.steps.map((e,s)=>(0,a.jsx)("li",{className:"pre-wrap",children:e},s))}),l.files.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h4",{children:r("pm.files")}),(0,a.jsx)("ul",{children:l.files.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)("code",{children:e})},e))})]}),(0,a.jsx)("h4",{children:r("pm.verification")}),(0,a.jsx)("p",{className:"pre-wrap",children:l.verification}),l.risks&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h4",{children:r("pm.risks")}),(0,a.jsx)("p",{className:"pre-wrap",children:l.risks})]}),(null!=(t=null==(s=l.revisions)?void 0:s.length)?t:0)>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h4",{children:r("pm.revisions")}),(0,a.jsx)("ul",{children:l.revisions.map(e=>(0,a.jsxs)("li",{className:"small",children:[r("pm.revision",{n:e.version,at:c(e.at)})," ",(0,a.jsx)("span",{className:"pre-wrap",children:e.comment})]},e.version))})]})]})}}},e=>{e.O(0,[197,867,549,499,897,347,131,358],()=>e(e.s=5704)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- :root{--bg:#fdf7f0;--bg-tint:#f7ead9;--panel:#fffdfb;--ink:#241a13;--muted:#7a6656;--line:#ecdcc9;--line-strong:#d8c3a9;--accent:#b4500b;--accent-ink:#fffaf5;--accent-soft:#fbe9d8;--ok:#2a6b45;--ok-soft:#e4f1e7;--warn:#8f5500;--warn-soft:#fbedd6;--bad:#a8271c;--bad-soft:#fbe6e2;--code:#f9efe3;--shadow:0 1px 2px rgba(74,45,20,0.06),0 6px 18px rgba(74,45,20,0.05);--radius:12px;--scale:1;--mono:ui-monospace,Consolas,"Cascadia Mono",monospace;--focus-width:2px}:root[data-theme=dark]{--bg:#17120f;--bg-tint:#221a15;--panel:#221b16;--ink:#f2e8df;--muted:#b6a493;--line:#3a2e26;--line-strong:#52412f;--accent:#ff9f45;--accent-ink:#2b1705;--accent-soft:#35251a;--ok:#7ed39f;--ok-soft:#1e2b22;--warn:#f0b96e;--warn-soft:#2f2417;--bad:#ff9081;--bad-soft:#33201d;--code:#1d1713;--shadow:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.25)}:root[data-contrast=high]{--ink:#000000;--muted:#4a3a2c;--line:#a88d6c;--line-strong:#6b5236;--accent:#8f3c00;--panel:#ffffff;--bg:#fff9f2;--ok:#17512f;--warn:#6b3f00;--bad:#8a1a11;--shadow:none}:root[data-theme=dark][data-contrast=high]{--ink:#ffffff;--muted:#e0cfbd;--line:#7d6650;--line-strong:#a88a6a;--accent:#ffc27a;--panel:#100c09;--bg:#000000;--code:#0a0705;--ok:#9ff0bd;--warn:#ffd08f;--bad:#ffb0a2;--shadow:none}:root[data-textsize=small]{--scale:0.9}:root[data-textsize=large]{--scale:1.12}:root[data-textsize=huge]{--scale:1.28}:root[data-textsize=giant]{--scale:1.45}:root[data-focus=strong]{--focus-width:4px}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--ink);font:calc(15px * var(--scale)) /1.55 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}:root[data-links=underline] a,a:hover{text-decoration:underline}:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:2px;border-radius:4px}:root[data-motion=reduced] *,:root[data-motion=reduced] :after,:root[data-motion=reduced] :before{transition:none!important;animation:none!important;scroll-behavior:auto!important}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:0 0 var(--radius) 0;z-index:10}.skip-link:focus{left:0}.wrap{max-width:calc(1100px * var(--scale));margin:0 auto;padding:24px 16px 80px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}.top h1{font-size:calc(21px * var(--scale));margin:0;letter-spacing:-.01em}.top h1 a{color:var(--accent)}.top nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.top nav a{color:var(--muted);padding:6px 10px;border-radius:999px;font-size:calc(14px * var(--scale))}.top nav a:hover{text-decoration:none}.top nav a:hover,.top nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.top nav a[aria-current=page]{font-weight:600}.top nav a .live{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:0 6px 0 4px;border-radius:999px;background:var(--ok-soft,var(--accent-soft));color:var(--ok,var(--accent));font-size:calc(10.5px * var(--scale));font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.top nav a .live .dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:live-pulse 1.6s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.crumbs{color:var(--muted);font-size:calc(13px * var(--scale));margin-bottom:8px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.panel h2{font-size:calc(16px * var(--scale));margin:0 0 10px}.panel h3{font-size:calc(13px * var(--scale));margin:16px 0 6px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1 1 auto}.muted{color:var(--muted)}.small{font-size:calc(13px * var(--scale))}input[type=number],input[type=text],select,textarea{width:100%;background:var(--code);color:var(--ink);border:1px solid var(--line-strong);border-radius:9px;padding:9px 11px;font:inherit}input[type=number]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:110px;resize:vertical;font-family:var(--mono);font-size:calc(13px * var(--scale));line-height:1.5}textarea.prose{font-family:inherit;font-size:calc(14px * var(--scale))}label{display:block;font-size:calc(13px * var(--scale));color:var(--muted);margin:12px 0 4px}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:calc(16px * var(--scale));height:calc(16px * var(--scale))}.option{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--bg)}.option>label{display:flex;align-items:flex-start;gap:10px;margin:0;color:var(--ink);font-size:calc(14px * var(--scale));cursor:pointer}.option>label input{margin-top:3px;flex:none}.option .why{margin:6px 0 0 26px;color:var(--muted);font-size:calc(12.5px * var(--scale))}.option.warned{border-color:var(--warn);background:var(--warn-soft)}button{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:9px;padding:8px 13px;font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease}button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}button.danger{color:var(--bad);border-color:var(--bad)}button.danger:hover:not(:disabled){background:var(--bad-soft);border-color:var(--bad)}button.quiet{border-color:transparent;background:transparent;color:var(--muted)}button.quiet:hover:not(:disabled){color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}.badge{display:inline-block;font-size:calc(12px * var(--scale));padding:2px 9px;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;max-width:100%;overflow-wrap:anywhere}@media (max-width:600px){.badge{white-space:normal}}.badge.running{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.badge.waiting-approval{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.badge.done{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.badge.blocked{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.badge.aborted,.badge.failed,.badge.limit-reached{color:var(--bad);border-color:var(--bad);background:var(--bad-soft)}pre{background:var(--code);border:1px solid var(--line);border-radius:9px;padding:10px 12px;overflow:auto;font-family:var(--mono);font-size:calc(12.5px * var(--scale));line-height:1.5;margin:6px 0;white-space:pre-wrap;word-break:break-word}pre.tall{max-height:420px}details>summary{cursor:pointer;color:var(--muted);font-size:calc(13px * var(--scale));-webkit-user-select:none;-moz-user-select:none;user-select:none}details>summary:hover{color:var(--accent)}details[open]>summary{margin-bottom:6px}.task{border-left:4px solid var(--line-strong);padding-left:14px;margin-bottom:18px}.task.done{border-left-color:var(--ok)}.task.running,.task.waiting-approval{border-left-color:var(--accent)}.task.blocked{border-left-color:var(--warn)}.task.aborted,.task.failed,.task.limit-reached{border-left-color:var(--bad)}.task h4{margin:0 0 4px;font-size:calc(15px * var(--scale))}.task:target{background:var(--accent-soft);border-radius:0 10px 10px 0;padding:8px 8px 8px 14px}.summary{background:var(--ok-soft);border:1px solid var(--ok);border-radius:9px;padding:10px 12px;margin:8px 0;white-space:pre-wrap}.reason{color:var(--bad)}.approval{background:var(--warn-soft);border:2px solid var(--warn);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;position:-webkit-sticky;position:sticky;top:8px;z-index:2}.approval code{font-size:calc(13px * var(--scale))}.approval code,.log{font-family:var(--mono)}.log{font-size:calc(12.5px * var(--scale));max-height:320px;overflow:auto;background:var(--code);border:1px solid var(--line);border-radius:9px;padding:8px 10px}.log div{white-space:pre-wrap;word-break:break-word}.log .warn{color:var(--warn)}.log .error{color:var(--bad)}.log .time{color:var(--muted);margin-right:8px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:9px 6px;border-bottom:1px solid var(--line);font-size:calc(14px * var(--scale));vertical-align:top}th{color:var(--muted);font-weight:700;font-size:calc(12px * var(--scale));text-transform:uppercase;letter-spacing:.04em}.err{color:var(--bad);font-size:calc(13px * var(--scale))}.notice{border:1px solid var(--bad);background:var(--bad-soft);color:var(--ink);border-radius:10px;padding:10px 12px;margin:10px 0;font-size:calc(13.5px * var(--scale))}.notice strong{color:var(--bad)}.notice ul{margin:6px 0 0;padding-left:20px}.notice.caution{border-color:var(--warn);background:var(--warn-soft)}.notice.caution strong{color:var(--warn)}.notice.calm{border-color:var(--line-strong);background:var(--bg-tint)}.notice.calm strong{color:var(--ink)}.counts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:4px}.count{border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:96px;background:var(--bg)}.count .n{font-size:calc(22px * var(--scale));font-weight:700;line-height:1.2}.count .k{color:var(--muted);font-size:calc(12px * var(--scale));text-transform:uppercase;letter-spacing:.04em}.count.done .n{color:var(--ok)}.count.failed .n{color:var(--bad)}.count.running .n{color:var(--accent)}.attempts{list-style:none;margin:6px 0 0;padding:0 0 0 12px;border-left:2px solid var(--line)}.attempts>li{margin:0 0 10px}.attempts .head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.attempts .when{color:var(--muted);font-size:calc(12.5px * var(--scale))}.attempts .what{margin:4px 0 0}.count.queued .n{color:var(--accent)}.flow{list-style:none;margin:8px 0 0;padding:0}.flow>li{position:relative;padding:10px 0 14px 28px;border-left:2px solid var(--line);margin-left:7px}.flow>li:last-child{border-left-color:transparent}.flow>li>.flow-mark{position:absolute;left:-8px;top:17px;width:14px;height:14px;border-radius:50%;background:var(--line-strong);border:2px solid var(--panel);box-sizing:border-box;cursor:help}.flow>li.done>.flow-mark{background:var(--ok)}.flow>li.running>.flow-mark,.flow>li.waiting-approval>.flow-mark{background:var(--accent)}.flow>li.blocked>.flow-mark{background:var(--warn)}.flow>li.aborted>.flow-mark,.flow>li.failed>.flow-mark,.flow>li.limit-reached>.flow-mark{background:var(--bad)}.flow>li.queued>.flow-mark{background:var(--panel);border:2px dashed var(--line-strong)}.flow>li.next>.flow-mark{background:var(--accent-soft);border:2px dashed var(--accent)}.chip.twin{border-style:dashed}.flow .when{color:var(--muted);font-size:calc(12.5px * var(--scale))}.flow .what{margin:4px 0 0}.flow .head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.flow .head strong{font-size:calc(14.5px * var(--scale))}.chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:calc(12px * var(--scale));color:var(--muted);background:var(--bg-tint)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.toolbar input[type=text],.toolbar select{width:auto;min-width:150px}.segmented{display:inline-flex;flex-wrap:wrap;max-width:100%;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden}.segmented button{border:none;border-radius:0;border-right:1px solid var(--line)}.segmented button:last-child{border-right:none}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.button-link{display:inline-block;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);border-radius:9px;padding:8px 13px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.button-link:hover{filter:brightness(1.08);text-decoration:none}.button-link+.button-link{background:var(--panel);color:var(--ink);border-color:var(--line-strong);font-weight:400}.button-link+.button-link:hover{background:var(--accent-soft);border-color:var(--accent);filter:none}.button-link.plain{background:var(--panel);color:var(--ink);border-color:var(--line-strong);font-weight:400}.button-link.quiet{background:transparent;color:var(--muted);border-color:transparent;font-weight:400}.button-link.plain:hover,.button-link.quiet:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);filter:none}.empty{color:var(--muted);padding:14px 0}.visually-hidden{position:absolute;-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dropzone{border:2px dashed var(--line-strong);border-radius:12px;padding:10px;background:var(--bg-tint)}.dropzone.active{border-color:var(--accent);background:var(--accent-soft)}.dropzone textarea{margin:0}.dropzone p{margin:8px 2px 2px}.batch-row td{vertical-align:middle}.batch-row.running{background:var(--accent-soft)}.run-order{list-style:decimal;margin:10px 0 4px;padding-left:28px}.run-order li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 0}.run-order button{padding:2px 8px;margin-left:4px}.linkish{background:none;border:0;padding:0;margin:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}.linkish:hover{filter:brightness(1.15)}.run-choice{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0 4px}.run-choice>div{flex:1 1 280px}.run-choice .why{margin:6px 2px 0}.rich>:first-child{margin-top:0}.rich>:last-child{margin-bottom:0}.rich p{margin:0 0 8px;max-width:76ch}.rich ul{margin:0 0 8px;padding-left:20px}.rich li{margin:2px 0;max-width:74ch}.rich code{font-family:var(--mono);font-size:.92em;background:var(--bg-tint);border:1px solid var(--line);border-radius:5px;padding:0 4px;word-break:break-word}.rich pre{margin:6px 0 8px}.summary .rich{white-space:normal}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}select:disabled{cursor:not-allowed;opacity:.6}select optgroup,select option{background:var(--panel);color:var(--ink)}.top nav a{display:inline-flex;align-items:center;gap:6px}.top nav a .nav-icon{flex:none;opacity:.85}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,.35);width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:18px 20px}.modal h2{margin:0 0 10px;font-size:calc(16px * var(--scale))}.modal.danger h2{color:var(--bad)}.modal-body{white-space:pre-wrap;line-height:1.5;font-size:calc(14px * var(--scale))}.modal-actions{justify-content:flex-end;margin-top:16px}.panel{overflow-wrap:break-word}td,th{position:relative}@media (max-width:600px){.wrap{padding:12px 10px 60px}.top{gap:8px;margin-bottom:12px;padding-bottom:10px}.top h1{font-size:calc(18px * var(--scale))}.top nav{width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.top nav::-webkit-scrollbar{display:none}.top nav a{flex:none;padding:6px 9px;font-size:calc(13px * var(--scale))}.panel{padding:12px}.row{gap:8px}.row>input[type=text],.row>select,.row>textarea,.toolbar input[type=text],.toolbar select,.toolbar>div{width:100%;min-width:0;flex:1 1 100%}.row>button{flex:1 1 auto}select{min-width:0!important;width:100%}table{display:block;overflow-x:auto;white-space:nowrap}.counts{gap:6px}.count{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 6px)}.segmented{display:flex;width:100%}.segmented button{flex:1 1 auto}.flow>li{padding-left:18px}.modal{padding:14px}.log,pre{font-size:calc(12px * var(--scale))}}tr.inactive td{opacity:.6}tr.dragging td{opacity:.4}tr.drop-target td{box-shadow:inset 0 2px 0 var(--accent)}.order-cell{white-space:nowrap}.drag-handle{cursor:-webkit-grab;cursor:grab;color:var(--muted);padding:0 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}tr.inactive td:first-child{opacity:1}.chip.inactive{color:var(--warn);border-color:var(--warn)}.story-when{color:var(--muted);font-size:calc(12px * var(--scale));font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.sync-cmd{white-space:pre-wrap;overflow-wrap:anywhere}.table-scroll{overflow-x:auto}.metrics td:not(:first-child),.metrics th:not(:first-child){white-space:nowrap}.handoff .handoff-row{margin:4px 0;overflow-wrap:anywhere}.handoff .handoff-row ul{margin:2px 0 0;padding-left:20px}.run-fold{border-top:1px solid var(--line);padding:8px 0 4px}.run-fold:first-of-type{border-top:none}.run-fold>summary{cursor:pointer;list-style:none}.run-fold>summary::-webkit-details-marker{display:none}.run-fold>summary:before{content:"▸";display:inline-block;width:16px;color:var(--muted);transition:transform .15s}.run-fold[open]>summary:before{transform:rotate(90deg)}.run-fold>summary .run-heading{display:inline-block;width:calc(100% - 16px);vertical-align:top}.run-heading h2{font-size:calc(15px * var(--scale))}.exports{white-space:nowrap}@media (max-width:600px){.exports{white-space:normal}}.modal.wide{width:min(820px,100%)}.story-box{margin-top:8px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:var(--code)}.story{list-style:none;margin:6px 0;padding:0}.story>li{border-left:3px solid var(--line-strong);padding:6px 10px;margin:6px 0}.story>li.sent{border-left-color:var(--accent)}.story>li.reply{border-left-color:var(--ok)}.story>li.story-step{border-left-color:var(--muted)}.story>li.failed{border-left-color:var(--bad);background:var(--bad-soft)}.story>li.story-review{border-left-color:var(--warn)}.story-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:calc(13px * var(--scale))}.story-cmd{margin:4px 0;color:var(--ink)}.story-cmd,.story-out{white-space:pre-wrap;word-break:break-word;font-size:calc(12px * var(--scale))}.story-out{margin:4px 0 0;max-height:420px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px}.story-out.always{max-height:260px}.story-scroll.live{max-height:65vh;overflow:auto;overscroll-behavior:contain}.story-out.terminal{max-height:45vh;overscroll-behavior:contain}.diff-overlay{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;flex-direction:column}.diff-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.diff-head h2{margin:0;font-size:calc(16px * var(--scale))}.diff-body{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(220px,300px) 1fr}.diff-files{overflow:auto;border-right:1px solid var(--line);padding:6px;background:var(--panel)}.diff-file{display:flex;gap:6px;align-items:baseline;width:100%;text-align:left;border:0;border-radius:6px;background:none;padding:5px 6px;font-size:calc(12px * var(--scale));cursor:pointer}.diff-file:hover{background:var(--bg-tint)}.diff-file.on{background:var(--accent-soft)}.diff-path{flex:1 1;min-width:0;overflow-wrap:anywhere}.diff-counts{white-space:nowrap;font-family:var(--mono);font-size:calc(11px * var(--scale))}.diff-counts .plus{color:var(--ok)}.diff-counts .minus{color:var(--bad)}.diff-status{font-family:var(--mono);font-weight:700;width:1.2em;text-align:center;border-radius:4px}.diff-status.s-A{color:var(--ok)}.diff-status.s-D{color:var(--bad)}.diff-status.s-M{color:var(--warn)}.diff-status.s-C,.diff-status.s-R{color:var(--accent)}.diff-main{display:flex;flex-direction:column;min-width:0;min-height:0}.diff-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 12px;border-bottom:1px solid var(--line)}.diff-name{font-family:var(--mono);font-size:calc(12px * var(--scale));overflow-wrap:anywhere}.diff-scroll{flex:1 1;overflow:auto;overscroll-behavior:contain}.diff-table{width:100%;border-collapse:collapse;table-layout:fixed;font-family:var(--mono);font-size:calc(12px * var(--scale))}.diff-table col.num{width:calc(52px * var(--scale))}.diff-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--panel);border-bottom:1px solid var(--line);text-align:left;padding:4px 8px;font-family:inherit}.diff-table td{padding:0 8px;vertical-align:top;line-height:1.5}.diff-table td.num{text-align:right;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-right:1px solid var(--line)}.diff-table td.code{white-space:pre-wrap;overflow-wrap:anywhere}.diff-table.nowrap td.code{white-space:pre;overflow-wrap:normal}.diff-table.nowrap{width:max-content;min-width:100%}.diff-row.change td.l,.diff-row.del td.l{background:var(--bad-soft)}.diff-row.add td.r,.diff-row.change td.r{background:var(--ok-soft)}.diff-row mark{background:color-mix(in srgb,currentColor 22%,transparent);color:inherit;border-radius:2px}.diff-row td.empty{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--bg-tint) 6px 12px)}.diff-row.current td.num{box-shadow:inset 3px 0 0 var(--accent)}.diff-gap td{background:var(--bg-tint);text-align:center;padding:2px}@media (max-width:760px){.diff-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.diff-files{max-height:30vh;border-right:0;border-bottom:1px solid var(--line)}}.scroll-jump{position:fixed;right:16px;bottom:24px;display:flex;flex-direction:column;gap:8px;z-index:40}.scroll-jump button{width:calc(42px * var(--scale));height:calc(42px * var(--scale));border-radius:50%;padding:0;font-size:calc(20px * var(--scale));line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.18)}.story-notes{margin:4px 0;font-size:calc(13px * var(--scale))}.story-fixed{padding:8px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--line);margin:6px 0}.story-fixed.close{border-color:var(--ok)}.story-fixed.close.failed{border-color:var(--bad);background:var(--bad-soft)}.option-inline{gap:6px}.option-inline,.story-box .live{display:inline-flex;align-items:center}.story-box .live{gap:4px;color:var(--ok);font-size:calc(11px * var(--scale));font-weight:700;text-transform:uppercase}.story-box .live .dot,button .dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:live-pulse 1.6s ease-in-out infinite}button .dot{display:inline-block;margin-right:6px;vertical-align:middle}.info-dot{width:calc(18px * var(--scale));height:calc(18px * var(--scale));min-width:calc(18px * var(--scale));padding:0;border-radius:50%;font-size:calc(11px * var(--scale));font-style:italic;font-weight:700;line-height:1}.info-panel{flex-basis:100%;margin-top:6px}.info-panel dl{margin:6px 0 0}.info-panel dt{font-weight:600;margin-top:6px}.info-panel dd{margin:0 0 0 14px;opacity:.85}.flow .head .pick{margin:0 2px 0 0;flex:0 0 auto}.chip.inside{font-size:calc(10.5px * var(--scale));opacity:.85}.chip.inside.out{color:var(--bad);border-color:var(--bad)}.approval-banner{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--warn-soft);border:3px solid var(--warn);border-radius:var(--radius);padding:12px 14px 2px;margin:0 0 16px;box-shadow:0 6px 18px rgba(0,0,0,.18);max-height:min(70vh,calc(30rem * var(--scale)));overflow:auto}.approval-banner h2{margin:0 0 4px;color:var(--warn)}.approval-banner .approval{position:static;background:var(--bg);margin-bottom:10px}.approval-banner .approval button{font-size:calc(15px * var(--scale));padding:8px 14px}.plan-view h4{margin:10px 0 2px;font-size:calc(13.5px * var(--scale))}.plan-view ol,.plan-view p,.plan-view ul{margin:2px 0 6px}.plan-view .pre-wrap{white-space:pre-wrap;word-break:break-word}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button.linkish{border:0;background:none;padding:0;color:var(--accent);text-align:left;font:inherit;cursor:pointer}button.linkish:hover{text-decoration:underline}.wb-root{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.wb-root>.approval-banner{margin:6px 8px 0}.wb-main{flex:1 1;min-height:0}.wb{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--ink);background:var(--bg)}.wb-top{display:flex;align-items:center;gap:12px;padding:5px 10px;border-bottom:1px solid var(--line);background:var(--panel);min-width:0}.wb-brand{font-weight:700;color:var(--accent);white-space:nowrap}.wb-search{flex:0 1 460px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 auto;padding:4px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg);color:var(--muted);font-size:calc(13px * var(--scale));cursor:pointer;min-width:0}.wb-search span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb kbd,.wb-search kbd{font-family:var(--mono);font-size:calc(11px * var(--scale));border:1px solid var(--line-strong);border-radius:4px;padding:0 4px;background:var(--panel)}.wb-menu{display:flex;align-items:center;gap:12px;font-size:calc(13px * var(--scale));white-space:nowrap}.wb-menu a{color:var(--ink)}.wb-body{display:grid;grid-template-columns:46px var(--wb-side) 5px minmax(0,1fr) 5px var(--wb-chat);min-height:0}.wb-body.no-side{grid-template-columns:46px minmax(0,1fr) 5px var(--wb-chat)}.wb-body.no-chat{grid-template-columns:46px var(--wb-side) 5px minmax(0,1fr)}.wb-body.no-side.no-chat{grid-template-columns:46px minmax(0,1fr)}.wb-body>[hidden]{display:none!important}.wb-activity{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0;background:var(--bg-tint);border-right:1px solid var(--line)}.wb-act{display:grid;place-items:center;width:38px;height:38px;border:0;border-left:2px solid transparent;border-radius:6px;background:none;color:var(--muted);cursor:pointer;padding:0}.wb-act:hover{color:var(--ink)}.wb-act.on{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft)}.wb-side{overflow:auto;background:var(--panel);min-width:0}.wb-side-head{display:flex;align-items:center;gap:4px;padding:8px 10px 4px}.wb-side-head h2{margin:0;font-size:calc(11.5px * var(--scale));letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.wb-icon-btn{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border:1px solid transparent;border-radius:6px;background:none;color:var(--muted);cursor:pointer;font-size:calc(14px * var(--scale));text-decoration:none}.wb-icon-btn:hover{border-color:var(--line-strong);color:var(--ink);text-decoration:none}.wb-filter{padding:2px 10px 6px}.wb-filter input{width:100%;padding:4px 8px;font-size:calc(13px * var(--scale))}.wb-pad{padding:6px 10px;margin:0}.wb-commits,.wb-problems,.wb-tree-list,.wb-tree-list ul{list-style:none;margin:0;padding:0}.wb-tree-list ul{padding-left:14px}.wb-row{display:flex;align-items:center;gap:6px;width:100%;min-width:0;padding:3px 10px;border:0;border-radius:0;background:none;color:var(--ink);text-align:left;font:inherit;font-size:calc(13.5px * var(--scale));cursor:pointer}.wb-row:hover{background:var(--bg-tint)}.wb-row.sel{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.wb-row.plain{cursor:default}.wb-row.session{padding:0;font-weight:600}.wb-row-main{display:flex;align-items:center;gap:6px;flex:1 1;min-width:0;padding:3px 10px 3px 2px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.wb-row-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-chev{width:22px;flex:none;padding:0;border:0;background:none;color:var(--muted);cursor:pointer;font:inherit}.wb-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wb-count,.wb-num{color:var(--muted)}.wb-count{font-size:calc(11.5px * var(--scale));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wb-ico{color:var(--muted)}.wb-commits li{padding-bottom:4px}.wb-commit-meta{padding:0 10px 0 52px;font-size:calc(11.5px * var(--scale))}.wb-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);flex:none}.wb-status{display:inline-grid;place-items:center;width:1.2em;flex:none;font-weight:700}.wb-status.s-done{color:var(--ok)}.wb-status.s-blocked,.wb-status.s-failed{color:var(--bad)}.wb-status.s-aborted,.wb-status.s-limit-reached,.wb-status.s-waiting-approval{color:var(--warn)}.wb-status.s-queued{color:var(--muted)}.wb-status.s-running{color:var(--accent)}.wb-split{background:var(--line);cursor:col-resize;touch-action:none}.wb-split.y{cursor:row-resize;height:5px}.wb-split:focus-visible,.wb-split:hover{background:var(--accent);outline:none}.wb-center{display:grid;grid-template-rows:auto minmax(0,1fr) auto var(--wb-bottom);min-width:0;min-height:0;background:var(--bg)}.wb-tabs{display:flex;overflow-x:auto;background:var(--bg-tint);border-bottom:1px solid var(--line);min-height:34px}.wb-tabs-empty{padding:8px 12px}.wb-tab{display:flex;align-items:center;border-right:1px solid var(--line);max-width:260px}.wb-tab>button[role=tab]{display:flex;align-items:center;gap:6px;min-width:0;padding:6px 4px 6px 12px;border:0;background:none;color:var(--muted);font:inherit;font-size:calc(13px * var(--scale));cursor:pointer}.wb-tab.active{background:var(--bg);box-shadow:inset 0 2px 0 var(--accent)}.wb-tab.active>button[role=tab]{color:var(--ink)}.wb-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-tab-close{border:0;background:none;color:var(--muted);padding:2px 8px;cursor:pointer;font-size:calc(15px * var(--scale))}.wb-tab-close:hover{color:var(--bad)}.wb-editor{overflow:auto;padding:14px 18px 24px;min-height:0}.wb-welcome{max-width:760px}.wb-welcome h2{margin-top:0}.wb-list{margin:4px 0 8px;padding-left:20px}.wb-list li{margin:3px 0}.wb-list li.bad{color:var(--bad)}.wb-list li.ok{color:var(--ok)}.wb-task{max-width:980px}.wb-task-head{display:flex;align-items:flex-start;gap:10px}.wb-task-head h2{margin:0;font-size:calc(19px * var(--scale))}.wb-task-head p{margin:2px 0 0}.wb-task-head .wb-status{font-size:calc(20px * var(--scale))}.wb-actions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.wb-inline-panel{margin:8px 0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel)}.wb-inline-panel .option{margin-bottom:10px}.wb-sec{margin:14px 0}.wb-sec h3,.wb-sec>summary{font-size:calc(14px * var(--scale));margin:0 0 4px}.wb-sec>summary{cursor:pointer;font-weight:600}.wb-session-tasks{padding-left:4px;list-style:none}.wb-file .wb-code{margin:0;padding:8px 0;max-height:none;overflow:auto;white-space:pre}.wb-line{display:block}.wb-line,.wb-ln{padding-right:12px}.wb-ln{display:inline-block;width:4.5em;text-align:right;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}.wb-bottom{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;border-top:1px solid var(--line);background:var(--panel)}.wb-bottom-tabs,.wb-chat-tabs{display:flex;align-items:center;gap:2px;padding:0 6px;border-bottom:1px solid var(--line);min-height:33px}.wb-bottom-tabs>button[role=tab],.wb-chat-tabs>button[role=tab]{padding:6px 10px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:calc(12px * var(--scale));letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.wb-bottom-tabs>button.on,.wb-chat-tabs>button.on{color:var(--ink);border-bottom-color:var(--accent)}.wb-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:9px;background:var(--bad-soft);color:var(--bad);font-size:calc(11px * var(--scale))}.wb-bottom-body{overflow:auto;min-height:0}.wb-terminal{height:100%;overflow:auto;padding:6px 10px;font-family:var(--mono);font-size:calc(12.5px * var(--scale));line-height:1.45;background:var(--code)}.wb-terminal pre{margin:2px 0 8px;padding:0;border:0;background:none;max-height:none}.wb-terminal .bad,.wb-terminal .bad .wb-cmd{color:var(--bad)}.wb-terminal .warnline{color:var(--warn)}.wb-cmd{font-weight:600}.wb-sev.error{color:var(--bad)}.wb-sev.warn{color:var(--warn)}.wb-chat{min-width:0;background:var(--panel)}.wb-chat,.wb-chat-inner{display:flex;flex-direction:column;min-height:0}.wb-chat-inner{height:100%}.wb-chat-head{display:flex;align-items:baseline;gap:8px;padding:8px 12px 4px;min-width:0}.wb-chat-story{flex:1 1;min-height:0;overflow:auto;padding:0 10px}.wb-chat-empty{padding:16px}.wb-compose{padding:8px 10px 10px;border-top:1px solid var(--line);background:var(--bg)}.wb-compose textarea{width:100%;min-height:80px;max-height:40vh;resize:vertical}.wb-kerrigan{flex:1 1;overflow:auto;padding:8px 12px 16px}.wb-kerrigan h3{font-size:calc(14px * var(--scale));margin:8px 0 2px}.wb-kerrigan textarea{width:100%}.wb-scope{border:0;padding:0;margin:4px 0;display:flex;flex-wrap:wrap;gap:12px}.wb-statusbar{display:flex;align-items:center;gap:16px;padding:2px 10px;min-height:24px;background:var(--accent);color:var(--accent-ink);font-size:calc(12px * var(--scale));white-space:nowrap;overflow:hidden}.wb-statusbar>*{overflow:hidden;text-overflow:ellipsis}.wb-status-btn{border:0;background:none;color:inherit;font:inherit;padding:0 4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-width:0}.wb-status-btn:hover{text-decoration:underline}.wb-status-btn.warn{font-weight:700}.wb-palette{position:fixed;top:10vh;left:50%;transform:translateX(-50%);width:min(640px,calc(100vw - 24px));max-height:70vh;display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.wb-palette input{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 14px;font-size:calc(15px * var(--scale))}.wb-palette ul{list-style:none;margin:0;padding:4px 0;overflow:auto}.wb-palette li{display:flex;gap:10px;align-items:baseline;padding:6px 14px;cursor:pointer}.wb-palette li.on{background:var(--accent-soft)}@media (max-width:1100px){.wb-body:not(.no-chat){grid-template-columns:46px var(--wb-side) 5px minmax(0,1fr)}.wb-body.no-side:not(.no-chat){grid-template-columns:46px minmax(0,1fr)}.wb-body:not(.no-chat)>.wb-split.x:last-of-type{display:none}.wb-body:not(.no-chat)>.wb-chat{position:fixed;right:0;top:40px;bottom:24px;width:min(420px,92vw);z-index:40;border-left:1px solid var(--line-strong);box-shadow:var(--shadow)}}@media (max-width:700px){.wb-menu a{display:none}.wb-body,.wb-body.no-chat,.wb-body:not(.no-chat){grid-template-columns:46px minmax(0,1fr)}.wb-body>.wb-split.x{display:none}.wb-body:not(.no-side)>.wb-side{position:fixed;left:46px;top:40px;bottom:24px;width:min(300px,80vw);z-index:39;border-right:1px solid var(--line-strong);box-shadow:var(--shadow)}.wb-body>.wb-center{grid-column:2}}
1
+ :root{--bg:#fdf7f0;--bg-tint:#f7ead9;--panel:#fffdfb;--ink:#241a13;--muted:#7a6656;--line:#ecdcc9;--line-strong:#d8c3a9;--accent:#b4500b;--accent-ink:#fffaf5;--accent-soft:#fbe9d8;--ok:#2a6b45;--ok-soft:#e4f1e7;--warn:#8f5500;--warn-soft:#fbedd6;--bad:#a8271c;--bad-soft:#fbe6e2;--code:#f9efe3;--shadow:0 1px 2px rgba(74,45,20,0.06),0 6px 18px rgba(74,45,20,0.05);--radius:12px;--scale:1;--mono:ui-monospace,Consolas,"Cascadia Mono",monospace;--focus-width:2px}:root[data-theme=dark]{--bg:#17120f;--bg-tint:#221a15;--panel:#221b16;--ink:#f2e8df;--muted:#b6a493;--line:#3a2e26;--line-strong:#52412f;--accent:#ff9f45;--accent-ink:#2b1705;--accent-soft:#35251a;--ok:#7ed39f;--ok-soft:#1e2b22;--warn:#f0b96e;--warn-soft:#2f2417;--bad:#ff9081;--bad-soft:#33201d;--code:#1d1713;--shadow:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.25)}:root[data-contrast=high]{--ink:#000000;--muted:#4a3a2c;--line:#a88d6c;--line-strong:#6b5236;--accent:#8f3c00;--panel:#ffffff;--bg:#fff9f2;--ok:#17512f;--warn:#6b3f00;--bad:#8a1a11;--shadow:none}:root[data-theme=dark][data-contrast=high]{--ink:#ffffff;--muted:#e0cfbd;--line:#7d6650;--line-strong:#a88a6a;--accent:#ffc27a;--panel:#100c09;--bg:#000000;--code:#0a0705;--ok:#9ff0bd;--warn:#ffd08f;--bad:#ffb0a2;--shadow:none}:root[data-textsize=small]{--scale:0.9}:root[data-textsize=large]{--scale:1.12}:root[data-textsize=huge]{--scale:1.28}:root[data-textsize=giant]{--scale:1.45}:root[data-focus=strong]{--focus-width:4px}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--ink);font:calc(15px * var(--scale)) /1.55 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}:root[data-links=underline] a,a:hover{text-decoration:underline}:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:2px;border-radius:4px}:root[data-motion=reduced] *,:root[data-motion=reduced] :after,:root[data-motion=reduced] :before{transition:none!important;animation:none!important;scroll-behavior:auto!important}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:0 0 var(--radius) 0;z-index:10}.skip-link:focus{left:0}.wrap{max-width:calc(1100px * var(--scale));margin:0 auto;padding:24px 16px 80px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}.top h1{font-size:calc(21px * var(--scale));margin:0;letter-spacing:-.01em}.top h1 a{color:var(--accent)}.top nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.top nav a{color:var(--muted);padding:6px 10px;border-radius:999px;font-size:calc(14px * var(--scale))}.top nav a:hover{text-decoration:none}.top nav a:hover,.top nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.top nav a[aria-current=page]{font-weight:600}.top nav a .live{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:0 6px 0 4px;border-radius:999px;background:var(--ok-soft,var(--accent-soft));color:var(--ok,var(--accent));font-size:calc(10.5px * var(--scale));font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.top nav a .live .dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:live-pulse 1.6s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.crumbs{color:var(--muted);font-size:calc(13px * var(--scale));margin-bottom:8px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.panel h2{font-size:calc(16px * var(--scale));margin:0 0 10px}.panel h3{font-size:calc(13px * var(--scale));margin:16px 0 6px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1 1 auto}.muted{color:var(--muted)}.small{font-size:calc(13px * var(--scale))}input[type=number],input[type=text],select,textarea{width:100%;background:var(--code);color:var(--ink);border:1px solid var(--line-strong);border-radius:9px;padding:9px 11px;font:inherit}input[type=number]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:110px;resize:vertical;font-family:var(--mono);font-size:calc(13px * var(--scale));line-height:1.5}textarea.prose{font-family:inherit;font-size:calc(14px * var(--scale))}label{display:block;font-size:calc(13px * var(--scale));color:var(--muted);margin:12px 0 4px}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:calc(16px * var(--scale));height:calc(16px * var(--scale))}.option{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--bg)}.option>label{display:flex;align-items:flex-start;gap:10px;margin:0;color:var(--ink);font-size:calc(14px * var(--scale));cursor:pointer}.option>label input{margin-top:3px;flex:none}.option .why{margin:6px 0 0 26px;color:var(--muted);font-size:calc(12.5px * var(--scale))}.option.warned{border-color:var(--warn);background:var(--warn-soft)}button{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:9px;padding:8px 13px;font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease}button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}button.danger{color:var(--bad);border-color:var(--bad)}button.danger:hover:not(:disabled){background:var(--bad-soft);border-color:var(--bad)}button.quiet{border-color:transparent;background:transparent;color:var(--muted)}button.quiet:hover:not(:disabled){color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}.badge{display:inline-block;font-size:calc(12px * var(--scale));padding:2px 9px;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;max-width:100%;overflow-wrap:anywhere}@media (max-width:600px){.badge{white-space:normal}}.badge.running{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.badge.waiting-approval{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.badge.done{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.badge.blocked{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.badge.aborted,.badge.failed,.badge.limit-reached{color:var(--bad);border-color:var(--bad);background:var(--bad-soft)}pre{background:var(--code);border:1px solid var(--line);border-radius:9px;padding:10px 12px;overflow:auto;font-family:var(--mono);font-size:calc(12.5px * var(--scale));line-height:1.5;margin:6px 0;white-space:pre-wrap;word-break:break-word}pre.tall{max-height:420px}details>summary{cursor:pointer;color:var(--muted);font-size:calc(13px * var(--scale));-webkit-user-select:none;-moz-user-select:none;user-select:none}details>summary:hover{color:var(--accent)}details[open]>summary{margin-bottom:6px}.task{border-left:4px solid var(--line-strong);padding-left:14px;margin-bottom:18px}.task.done{border-left-color:var(--ok)}.task.running,.task.waiting-approval{border-left-color:var(--accent)}.task.blocked{border-left-color:var(--warn)}.task.aborted,.task.failed,.task.limit-reached{border-left-color:var(--bad)}.task h4{margin:0 0 4px;font-size:calc(15px * var(--scale))}.task:target{background:var(--accent-soft);border-radius:0 10px 10px 0;padding:8px 8px 8px 14px}.summary{background:var(--ok-soft);border:1px solid var(--ok);border-radius:9px;padding:10px 12px;margin:8px 0;white-space:pre-wrap}.reason{color:var(--bad)}.approval{background:var(--warn-soft);border:2px solid var(--warn);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;position:-webkit-sticky;position:sticky;top:8px;z-index:2}.approval code{font-size:calc(13px * var(--scale))}.approval code,.log{font-family:var(--mono)}.log{font-size:calc(12.5px * var(--scale));max-height:320px;overflow:auto;background:var(--code);border:1px solid var(--line);border-radius:9px;padding:8px 10px}.log div{white-space:pre-wrap;word-break:break-word}.log .warn{color:var(--warn)}.log .error{color:var(--bad)}.log .time{color:var(--muted);margin-right:8px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:9px 6px;border-bottom:1px solid var(--line);font-size:calc(14px * var(--scale));vertical-align:top}th{color:var(--muted);font-weight:700;font-size:calc(12px * var(--scale));text-transform:uppercase;letter-spacing:.04em}.err{color:var(--bad);font-size:calc(13px * var(--scale))}.notice{border:1px solid var(--bad);background:var(--bad-soft);color:var(--ink);border-radius:10px;padding:10px 12px;margin:10px 0;font-size:calc(13.5px * var(--scale))}.notice strong{color:var(--bad)}.notice ul{margin:6px 0 0;padding-left:20px}.notice.caution{border-color:var(--warn);background:var(--warn-soft)}.notice.caution strong{color:var(--warn)}.notice.calm{border-color:var(--line-strong);background:var(--bg-tint)}.notice.calm strong{color:var(--ink)}.counts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:4px}.count{border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:96px;background:var(--bg)}.count .n{font-size:calc(22px * var(--scale));font-weight:700;line-height:1.2}.count .k{color:var(--muted);font-size:calc(12px * var(--scale));text-transform:uppercase;letter-spacing:.04em}.count.done .n{color:var(--ok)}.count.failed .n{color:var(--bad)}.count.running .n{color:var(--accent)}.attempts{list-style:none;margin:6px 0 0;padding:0 0 0 12px;border-left:2px solid var(--line)}.attempts>li{margin:0 0 10px}.attempts .head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.attempts .when{color:var(--muted);font-size:calc(12.5px * var(--scale))}.attempts .what{margin:4px 0 0}.count.queued .n{color:var(--accent)}.flow{list-style:none;margin:8px 0 0;padding:0}.flow>li{position:relative;padding:10px 0 14px 28px;border-left:2px solid var(--line);margin-left:7px}.flow>li:last-child{border-left-color:transparent}.flow>li>.flow-mark{position:absolute;left:-8px;top:17px;width:14px;height:14px;border-radius:50%;background:var(--line-strong);border:2px solid var(--panel);box-sizing:border-box;cursor:help}.flow>li.done>.flow-mark{background:var(--ok)}.flow>li.running>.flow-mark,.flow>li.waiting-approval>.flow-mark{background:var(--accent)}.flow>li.blocked>.flow-mark{background:var(--warn)}.flow>li.aborted>.flow-mark,.flow>li.failed>.flow-mark,.flow>li.limit-reached>.flow-mark{background:var(--bad)}.flow>li.queued>.flow-mark{background:var(--panel);border:2px dashed var(--line-strong)}.flow>li.next>.flow-mark{background:var(--accent-soft);border:2px dashed var(--accent)}.chip.twin{border-style:dashed}.flow .when{color:var(--muted);font-size:calc(12.5px * var(--scale))}.flow .what{margin:4px 0 0}.flow .head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.flow .head strong{font-size:calc(14.5px * var(--scale))}.chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:calc(12px * var(--scale));color:var(--muted);background:var(--bg-tint)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.toolbar input[type=text],.toolbar select{width:auto;min-width:150px}.segmented{display:inline-flex;flex-wrap:wrap;max-width:100%;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden}.segmented button{border:none;border-radius:0;border-right:1px solid var(--line)}.segmented button:last-child{border-right:none}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.button-link{display:inline-block;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);border-radius:9px;padding:8px 13px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.button-link:hover{filter:brightness(1.08);text-decoration:none}.button-link+.button-link{background:var(--panel);color:var(--ink);border-color:var(--line-strong);font-weight:400}.button-link+.button-link:hover{background:var(--accent-soft);border-color:var(--accent);filter:none}.button-link.plain{background:var(--panel);color:var(--ink);border-color:var(--line-strong);font-weight:400}.button-link.quiet{background:transparent;color:var(--muted);border-color:transparent;font-weight:400}.button-link.plain:hover,.button-link.quiet:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);filter:none}.empty{color:var(--muted);padding:14px 0}.visually-hidden{position:absolute;-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dropzone{border:2px dashed var(--line-strong);border-radius:12px;padding:10px;background:var(--bg-tint)}.dropzone.active{border-color:var(--accent);background:var(--accent-soft)}.dropzone textarea{margin:0}.dropzone p{margin:8px 2px 2px}.batch-row td{vertical-align:middle}.batch-row.running{background:var(--accent-soft)}.run-order{list-style:decimal;margin:10px 0 4px;padding-left:28px}.run-order li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 0}.run-order button{padding:2px 8px;margin-left:4px}.linkish{background:none;border:0;padding:0;margin:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}.linkish:hover{filter:brightness(1.15)}.run-choice{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0 4px}.run-choice>div{flex:1 1 280px}.run-choice .why{margin:6px 2px 0}.rich>:first-child{margin-top:0}.rich>:last-child{margin-bottom:0}.rich p{margin:0 0 8px;max-width:76ch}.rich ul{margin:0 0 8px;padding-left:20px}.rich li{margin:2px 0;max-width:74ch}.rich code{font-family:var(--mono);font-size:.92em;background:var(--bg-tint);border:1px solid var(--line);border-radius:5px;padding:0 4px;word-break:break-word}.rich pre{margin:6px 0 8px}.summary .rich{white-space:normal}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}select:disabled{cursor:not-allowed;opacity:.6}select optgroup,select option{background:var(--panel);color:var(--ink)}.top nav a{display:inline-flex;align-items:center;gap:6px}.top nav a .nav-icon{flex:none;opacity:.85}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,.35);width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:18px 20px}.modal h2{margin:0 0 10px;font-size:calc(16px * var(--scale))}.modal.danger h2{color:var(--bad)}.modal-body{white-space:pre-wrap;line-height:1.5;font-size:calc(14px * var(--scale))}.modal-actions{justify-content:flex-end;margin-top:16px}.panel{overflow-wrap:break-word}td,th{position:relative}@media (max-width:600px){.wrap{padding:12px 10px 60px}.top{gap:8px;margin-bottom:12px;padding-bottom:10px}.top h1{font-size:calc(18px * var(--scale))}.top nav{width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.top nav::-webkit-scrollbar{display:none}.top nav a{flex:none;padding:6px 9px;font-size:calc(13px * var(--scale))}.panel{padding:12px}.row{gap:8px}.row>input[type=text],.row>select,.row>textarea,.toolbar input[type=text],.toolbar select,.toolbar>div{width:100%;min-width:0;flex:1 1 100%}.row>button{flex:1 1 auto}select{min-width:0!important;width:100%}table{display:block;overflow-x:auto;white-space:nowrap}.counts{gap:6px}.count{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 6px)}.segmented{display:flex;width:100%}.segmented button{flex:1 1 auto}.flow>li{padding-left:18px}.modal{padding:14px}.log,pre{font-size:calc(12px * var(--scale))}}tr.inactive td{opacity:.6}tr.dragging td{opacity:.4}tr.drop-target td{box-shadow:inset 0 2px 0 var(--accent)}.order-cell{white-space:nowrap}.drag-handle{cursor:-webkit-grab;cursor:grab;color:var(--muted);padding:0 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}tr.inactive td:first-child{opacity:1}.chip.inactive{color:var(--warn);border-color:var(--warn)}.story-when{color:var(--muted);font-size:calc(12px * var(--scale));font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.sync-cmd{white-space:pre-wrap;overflow-wrap:anywhere}.table-scroll{overflow-x:auto}.metrics td:not(:first-child),.metrics th:not(:first-child){white-space:nowrap}.handoff .handoff-row{margin:4px 0;overflow-wrap:anywhere}.handoff .handoff-row ul{margin:2px 0 0;padding-left:20px}.run-fold{border-top:1px solid var(--line);padding:8px 0 4px}.run-fold:first-of-type{border-top:none}.run-fold>summary{cursor:pointer;list-style:none}.run-fold>summary::-webkit-details-marker{display:none}.run-fold>summary:before{content:"▸";display:inline-block;width:16px;color:var(--muted);transition:transform .15s}.run-fold[open]>summary:before{transform:rotate(90deg)}.run-fold>summary .run-heading{display:inline-block;width:calc(100% - 16px);vertical-align:top}.run-heading h2{font-size:calc(15px * var(--scale))}.exports{white-space:nowrap}@media (max-width:600px){.exports{white-space:normal}}.modal.wide{width:min(820px,100%)}.story-box{margin-top:8px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:var(--code)}.story{list-style:none;margin:6px 0;padding:0}.story>li{border-left:3px solid var(--line-strong);padding:6px 10px;margin:6px 0}.story>li.sent{border-left-color:var(--accent)}.story>li.reply{border-left-color:var(--ok)}.story>li.story-step{border-left-color:var(--muted)}.story>li.failed{border-left-color:var(--bad);background:var(--bad-soft)}.story>li.story-review{border-left-color:var(--warn)}.story-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:calc(13px * var(--scale))}.story-cmd{margin:4px 0;color:var(--ink)}.story-cmd,.story-out{white-space:pre-wrap;word-break:break-word;font-size:calc(12px * var(--scale))}.story-out{margin:4px 0 0;max-height:420px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px}.story-out.always{max-height:260px}.story-scroll.live{max-height:65vh;overflow:auto;overscroll-behavior:contain}.story-out.terminal{max-height:45vh;overscroll-behavior:contain}.diff-overlay{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;flex-direction:column}.diff-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.diff-head h2{margin:0;font-size:calc(16px * var(--scale))}.diff-body{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(220px,300px) 1fr}.diff-files{overflow:auto;border-right:1px solid var(--line);padding:6px;background:var(--panel)}.diff-file{display:flex;gap:6px;align-items:baseline;width:100%;text-align:left;border:0;border-radius:6px;background:none;padding:5px 6px;font-size:calc(12px * var(--scale));cursor:pointer}.diff-file:hover{background:var(--bg-tint)}.diff-file.on{background:var(--accent-soft)}.diff-path{flex:1 1;min-width:0;overflow-wrap:anywhere}.diff-counts{white-space:nowrap;font-family:var(--mono);font-size:calc(11px * var(--scale))}.diff-counts .plus{color:var(--ok)}.diff-counts .minus{color:var(--bad)}.diff-status{font-family:var(--mono);font-weight:700;width:1.2em;text-align:center;border-radius:4px}.diff-status.s-A{color:var(--ok)}.diff-status.s-D{color:var(--bad)}.diff-status.s-M{color:var(--warn)}.diff-status.s-C,.diff-status.s-R{color:var(--accent)}.diff-main{display:flex;flex-direction:column;min-width:0;min-height:0}.diff-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 12px;border-bottom:1px solid var(--line)}.diff-name{font-family:var(--mono);font-size:calc(12px * var(--scale));overflow-wrap:anywhere}.diff-scroll{flex:1 1;overflow:auto;overscroll-behavior:contain}.diff-table{width:100%;border-collapse:collapse;table-layout:fixed;font-family:var(--mono);font-size:calc(12px * var(--scale))}.diff-table col.num{width:calc(52px * var(--scale))}.diff-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--panel);border-bottom:1px solid var(--line);text-align:left;padding:4px 8px;font-family:inherit}.diff-table td{padding:0 8px;vertical-align:top;line-height:1.5}.diff-table td.num{text-align:right;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-right:1px solid var(--line)}.diff-table td.code{white-space:pre-wrap;overflow-wrap:anywhere}.diff-table.nowrap td.code{white-space:pre;overflow-wrap:normal}.diff-table.nowrap{width:max-content;min-width:100%}.diff-row.change td.l,.diff-row.del td.l{background:var(--bad-soft)}.diff-row.add td.r,.diff-row.change td.r{background:var(--ok-soft)}.diff-row mark{background:color-mix(in srgb,currentColor 22%,transparent);color:inherit;border-radius:2px}.diff-row td.empty{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--bg-tint) 6px 12px)}.diff-row.current td.num{box-shadow:inset 3px 0 0 var(--accent)}.diff-gap td{background:var(--bg-tint);text-align:center;padding:2px}@media (max-width:760px){.diff-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.diff-files{max-height:30vh;border-right:0;border-bottom:1px solid var(--line)}}.scroll-jump{position:fixed;right:16px;bottom:24px;display:flex;flex-direction:column;gap:8px;z-index:40}.scroll-jump button{width:calc(42px * var(--scale));height:calc(42px * var(--scale));border-radius:50%;padding:0;font-size:calc(20px * var(--scale));line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.18)}.story-notes{margin:4px 0;font-size:calc(13px * var(--scale))}.story-fixed{padding:8px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--line);margin:6px 0}.story-fixed.close{border-color:var(--ok)}.story-fixed.close.failed{border-color:var(--bad);background:var(--bad-soft)}.option-inline{gap:6px}.option-inline,.story-box .live{display:inline-flex;align-items:center}.story-box .live{gap:4px;color:var(--ok);font-size:calc(11px * var(--scale));font-weight:700;text-transform:uppercase}.story-box .live .dot,button .dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:live-pulse 1.6s ease-in-out infinite}button .dot{display:inline-block;margin-right:6px;vertical-align:middle}.info-dot{width:calc(18px * var(--scale));height:calc(18px * var(--scale));min-width:calc(18px * var(--scale));padding:0;border-radius:50%;font-size:calc(11px * var(--scale));font-style:italic;font-weight:700;line-height:1}.info-panel{flex-basis:100%;margin-top:6px}.info-panel dl{margin:6px 0 0}.info-panel dt{font-weight:600;margin-top:6px}.info-panel dd{margin:0 0 0 14px;opacity:.85}.flow .head .pick{margin:0 2px 0 0;flex:0 0 auto}.chip.inside{font-size:calc(10.5px * var(--scale));opacity:.85}.chip.inside.out{color:var(--bad);border-color:var(--bad)}.approval-banner{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--warn-soft);border:3px solid var(--warn);border-radius:var(--radius);padding:12px 14px 2px;margin:0 0 16px;box-shadow:0 6px 18px rgba(0,0,0,.18);max-height:min(70vh,calc(30rem * var(--scale)));overflow:auto}.approval-banner h2{margin:0 0 4px;color:var(--warn)}.approval-banner .approval{position:static;background:var(--bg);margin-bottom:10px}.approval-banner .approval button{font-size:calc(15px * var(--scale));padding:8px 14px}.plan-view h4{margin:10px 0 2px;font-size:calc(13.5px * var(--scale))}.plan-view ol,.plan-view p,.plan-view ul{margin:2px 0 6px}.plan-view .pre-wrap{white-space:pre-wrap;word-break:break-word}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button.linkish{border:0;background:none;padding:0;color:var(--accent);text-align:left;font:inherit;cursor:pointer}button.linkish:hover{text-decoration:underline}.wb-root{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.wb-root>.approval-banner{margin:6px 8px 0}.wb-main{flex:1 1;min-height:0}.wb{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--ink);background:var(--bg)}.wb-top{display:flex;align-items:center;gap:12px;padding:5px 10px;border-bottom:1px solid var(--line);background:var(--panel);min-width:0}.wb-brand{font-weight:700;color:var(--accent);white-space:nowrap}.wb-search{flex:0 1 460px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 auto;padding:4px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg);color:var(--muted);font-size:calc(13px * var(--scale));cursor:pointer;min-width:0}.wb-search span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb kbd,.wb-search kbd{font-family:var(--mono);font-size:calc(11px * var(--scale));border:1px solid var(--line-strong);border-radius:4px;padding:0 4px;background:var(--panel)}.wb-menu{display:flex;align-items:center;gap:12px;font-size:calc(13px * var(--scale));white-space:nowrap}.wb-menu a{color:var(--ink)}.wb-body{display:grid;grid-template-columns:46px var(--wb-side) 5px minmax(0,1fr) 5px var(--wb-chat);min-height:0}.wb-body.no-side{grid-template-columns:46px minmax(0,1fr) 5px var(--wb-chat)}.wb-body.no-chat{grid-template-columns:46px var(--wb-side) 5px minmax(0,1fr)}.wb-body.no-side.no-chat{grid-template-columns:46px minmax(0,1fr)}.wb-body>[hidden]{display:none!important}.wb-activity{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0;background:var(--bg-tint);border-right:1px solid var(--line)}.wb-act{display:grid;place-items:center;width:38px;height:38px;border:0;border-left:2px solid transparent;border-radius:6px;background:none;color:var(--muted);cursor:pointer;padding:0}.wb-act:hover{color:var(--ink)}.wb-act.on{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft)}.wb-side{overflow:auto;background:var(--panel);min-width:0}.wb-side-head{display:flex;align-items:center;gap:4px;padding:8px 10px 4px}.wb-side-head h2{margin:0;font-size:calc(11.5px * var(--scale));letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.wb-icon-btn{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border:1px solid transparent;border-radius:6px;background:none;color:var(--muted);cursor:pointer;font-size:calc(14px * var(--scale));text-decoration:none}.wb-icon-btn:hover{border-color:var(--line-strong);color:var(--ink);text-decoration:none}.wb-filter{padding:2px 10px 6px}.wb-filter input{width:100%;padding:4px 8px;font-size:calc(13px * var(--scale))}.wb-pad{padding:6px 10px;margin:0}.wb-commits,.wb-problems,.wb-tree-list,.wb-tree-list ul{list-style:none;margin:0;padding:0}.wb-tree-list ul{padding-left:14px}.wb-row{display:flex;align-items:center;gap:6px;width:100%;min-width:0;padding:3px 10px;border:0;border-radius:0;background:none;color:var(--ink);text-align:left;font:inherit;font-size:calc(13.5px * var(--scale));cursor:pointer}.wb-row:hover{background:var(--bg-tint)}.wb-row.sel{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.wb-row.plain{cursor:default}.wb-row.session{padding:0;font-weight:600}.wb-row-main{display:flex;align-items:center;gap:6px;flex:1 1;min-width:0;padding:3px 10px 3px 2px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.wb-row-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-chev{width:22px;flex:none;padding:0;border:0;background:none;color:var(--muted);cursor:pointer;font:inherit}.wb-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wb-count,.wb-num{color:var(--muted)}.wb-count{font-size:calc(11.5px * var(--scale));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wb-ico{color:var(--muted)}.wb-commits li{padding-bottom:4px}.wb-commit-meta{padding:0 10px 0 52px;font-size:calc(11.5px * var(--scale))}.wb-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);flex:none}.wb-status{display:inline-grid;place-items:center;width:1.2em;flex:none;font-weight:700}.wb-status.s-done{color:var(--ok)}.wb-status.s-blocked,.wb-status.s-failed{color:var(--bad)}.wb-status.s-aborted,.wb-status.s-limit-reached,.wb-status.s-waiting-approval{color:var(--warn)}.wb-status.s-queued{color:var(--muted)}.wb-status.s-running{color:var(--accent)}.wb-split{background:var(--line);cursor:col-resize;touch-action:none}.wb-split.y{cursor:row-resize;height:5px}.wb-split:focus-visible,.wb-split:hover{background:var(--accent);outline:none}.wb-center{display:grid;grid-template-rows:auto minmax(0,1fr) auto var(--wb-bottom);min-width:0;min-height:0;background:var(--bg)}.wb-tabs{display:flex;overflow-x:auto;background:var(--bg-tint);border-bottom:1px solid var(--line);min-height:34px}.wb-tabs-empty{padding:8px 12px}.wb-tab{display:flex;align-items:center;border-right:1px solid var(--line);max-width:260px}.wb-tab>button[role=tab]{display:flex;align-items:center;gap:6px;min-width:0;padding:6px 4px 6px 12px;border:0;background:none;color:var(--muted);font:inherit;font-size:calc(13px * var(--scale));cursor:pointer}.wb-tab.active{background:var(--bg);box-shadow:inset 0 2px 0 var(--accent)}.wb-tab.active>button[role=tab]{color:var(--ink)}.wb-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-tab-close{border:0;background:none;color:var(--muted);padding:2px 8px;cursor:pointer;font-size:calc(15px * var(--scale))}.wb-tab-close:hover{color:var(--bad)}.wb-editor{overflow:auto;padding:14px 18px 24px;min-height:0}.wb-welcome{max-width:760px}.wb-welcome h2{margin-top:0}.wb-list{margin:4px 0 8px;padding-left:20px}.wb-list li{margin:3px 0}.wb-list li.bad{color:var(--bad)}.wb-list li.ok{color:var(--ok)}.wb-task{max-width:980px}.wb-task-head{display:flex;align-items:flex-start;gap:10px}.wb-task-head h2{margin:0;font-size:calc(19px * var(--scale))}.wb-task-head p{margin:2px 0 0}.wb-task-head .wb-status{font-size:calc(20px * var(--scale))}.wb-actions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.wb-inline-panel{margin:8px 0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel)}.wb-inline-panel .option{margin-bottom:10px}.wb-sec{margin:14px 0}.wb-sec h3,.wb-sec>summary{font-size:calc(14px * var(--scale));margin:0 0 4px}.wb-sec>summary{cursor:pointer;font-weight:600}.wb-session-tasks{padding-left:4px;list-style:none}.wb-file .wb-code{margin:0;padding:8px 0;max-height:none;overflow:auto;white-space:pre}.wb-line{display:block}.wb-line,.wb-ln{padding-right:12px}.wb-ln{display:inline-block;width:4.5em;text-align:right;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}.wb-bottom{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;border-top:1px solid var(--line);background:var(--panel)}.wb-bottom-tabs,.wb-chat-tabs{display:flex;align-items:center;gap:2px;padding:0 6px;border-bottom:1px solid var(--line);min-height:33px}.wb-bottom-tabs>button[role=tab],.wb-chat-tabs>button[role=tab]{padding:6px 10px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:calc(12px * var(--scale));letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.wb-bottom-tabs>button.on,.wb-chat-tabs>button.on{color:var(--ink);border-bottom-color:var(--accent)}.wb-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:9px;background:var(--bad-soft);color:var(--bad);font-size:calc(11px * var(--scale))}.wb-bottom-body{overflow:auto;min-height:0}.wb-terminal{height:100%;overflow:auto;padding:6px 10px;font-family:var(--mono);font-size:calc(12.5px * var(--scale));line-height:1.45;background:var(--code)}.wb-terminal pre{margin:2px 0 8px;padding:0;border:0;background:none;max-height:none}.wb-terminal .bad,.wb-terminal .bad .wb-cmd{color:var(--bad)}.wb-terminal .warnline{color:var(--warn)}.wb-cmd{font-weight:600}.wb-sev.error{color:var(--bad)}.wb-sev.warn{color:var(--warn)}.wb-chat{min-width:0;background:var(--panel)}.wb-chat,.wb-chat-inner{display:flex;flex-direction:column;min-height:0}.wb-chat-inner{height:100%}.wb-chat-head{display:flex;align-items:baseline;gap:8px;padding:8px 12px 4px;min-width:0}.wb-chat-story{flex:1 1;min-height:0;overflow:auto;padding:0 10px}.wb-chat-empty{padding:16px}.wb-compose{padding:8px 10px 10px;border-top:1px solid var(--line);background:var(--bg)}.wb-compose textarea{width:100%;min-height:80px;max-height:40vh;resize:vertical}.wb-kerrigan{flex:1 1;overflow:auto;padding:8px 12px 16px}.wb-kerrigan h3{font-size:calc(14px * var(--scale));margin:8px 0 2px}.wb-kerrigan textarea{width:100%}.wb-scope{border:0;padding:0;margin:4px 0;display:flex;flex-wrap:wrap;gap:12px}.wb-statusbar{display:flex;align-items:center;gap:16px;padding:2px 10px;min-height:24px;background:var(--accent);color:var(--accent-ink);font-size:calc(12px * var(--scale));white-space:nowrap;overflow:hidden}.wb-statusbar>*{overflow:hidden;text-overflow:ellipsis}.wb-status-btn{border:0;background:none;color:inherit;font:inherit;padding:0 4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-width:0}.wb-status-btn:hover{text-decoration:underline}.wb-status-btn.warn{font-weight:700}.wb-palette{position:fixed;top:10vh;left:50%;transform:translateX(-50%);width:min(640px,calc(100vw - 24px));max-height:70vh;display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.wb-palette input{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 14px;font-size:calc(15px * var(--scale))}.wb-palette ul{list-style:none;margin:0;padding:4px 0;overflow:auto}.wb-palette li{display:flex;gap:10px;align-items:baseline;padding:6px 14px;cursor:pointer}.wb-palette li.on{background:var(--accent-soft)}@media (max-width:1100px){.wb-body:not(.no-chat){grid-template-columns:46px var(--wb-side) 5px minmax(0,1fr)}.wb-body.no-side:not(.no-chat){grid-template-columns:46px minmax(0,1fr)}.wb-body:not(.no-chat)>.wb-split.x:last-of-type{display:none}.wb-body:not(.no-chat)>.wb-chat{position:fixed;right:0;top:40px;bottom:24px;width:min(420px,92vw);z-index:40;border-left:1px solid var(--line-strong);box-shadow:var(--shadow)}}@media (max-width:700px){.wb-menu a{display:none}.wb-body,.wb-body.no-chat,.wb-body:not(.no-chat){grid-template-columns:46px minmax(0,1fr)}.wb-body>.wb-split.x{display:none}.wb-body:not(.no-side)>.wb-side{position:fixed;left:46px;top:40px;bottom:24px;width:min(300px,80vw);z-index:39;border-right:1px solid var(--line-strong);box-shadow:var(--shadow)}.wb-body>.wb-center{grid-column:2}}.cs{display:flex;flex-direction:column;flex:1 1;min-height:0}.cs-head{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--line)}.cs-head select{flex:1 1;min-width:0;padding:4px 6px;font-size:calc(13px * var(--scale))}.cs-body{flex:1 1;min-height:0;overflow:auto;padding:10px 12px 16px;gap:8px}.cs-body,.cs-turn{display:flex;flex-direction:column}.cs-turn{gap:6px;padding-bottom:10px;border-bottom:1px dashed var(--line)}.cs-turn:last-child{border-bottom:0}.cs-user{align-self:flex-end;max-width:92%;padding:8px 12px;border-radius:12px 12px 2px 12px;background:var(--accent-soft);border:1px solid var(--line-strong)}.cs-bot p:first-child,.cs-end p:first-child,.cs-user p:first-child{margin-top:0}.cs-bot p:last-child,.cs-end p:last-child,.cs-user p:last-child{margin-bottom:0}.cs-bot{max-width:100%;padding:2px}.cs-cmd{border:1px solid var(--line);border-radius:8px;background:var(--code);overflow:hidden}.cs-cmd.bad{border-color:var(--bad)}.cs-cmd-head{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-width:0}.cs-cmd-head code{font-size:calc(12.5px * var(--scale));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;padding:0}.cs-cmd-ico{flex:none;width:1.1em;color:var(--ok);font-weight:700}.cs-cmd.bad .cs-cmd-ico{color:var(--bad)}.cs-out{margin:0;padding:6px 10px 8px;max-height:260px;overflow:auto;border:0;border-top:1px solid var(--line);border-radius:0;background:none;font-size:calc(12px * var(--scale))}.cs-ask{padding:8px 10px;border:2px solid var(--warn);border-radius:10px;background:var(--warn-soft)}.cs-ask .cs-out{border:1px solid var(--line);border-radius:6px;background:var(--bg);margin:4px 0 8px}.cs-working{align-items:center;margin:2px 0;color:var(--muted);font-size:calc(12.5px * var(--scale))}.cs-end,.cs-working{display:flex;gap:8px}.cs-end{align-items:flex-start;padding:8px 10px;border-radius:10px;background:var(--ok-soft);border:1px solid var(--line)}.cs-end:not(.s-done){background:var(--warn-soft)}.cs-end.s-blocked,.cs-end.s-failed{background:var(--bad-soft)}.cs-files{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cs-file{padding:2px 8px;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel);color:var(--ink);font:inherit;font-size:calc(12px * var(--scale));cursor:pointer}.cs-file:hover{border-color:var(--accent)}.cs-system{color:var(--muted);font-size:calc(12.5px * var(--scale));margin:0}.cs-welcome h3{margin:4px 0}.cs-examples{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px}.cs-examples button{display:block;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);text-align:left;text-decoration:none}.cs-examples button:hover{border-color:var(--accent);text-decoration:none}.cs-compose{padding:8px 10px 10px;border-top:1px solid var(--line);background:var(--bg)}.cs-compose textarea{width:100%;min-height:72px;max-height:40vh;resize:vertical}.cs-bar{display:flex;align-items:center;gap:6px;margin-top:6px}.cs-bar select{width:auto;max-width:60%;padding:3px 6px;font-size:calc(12.5px * var(--scale))}.wb-task-compose{margin:6px 0 10px;border:1px solid var(--line);border-radius:10px}
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><!--WmzBz4QN36pcz4PL_cfEW--><html lang="en" data-theme="light" data-textsize="normal" data-contrast="normal" data-motion="normal" data-links="plain" data-focus="normal"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/72c85e4322c21223.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0f31b926d9a9c5a4.js"/><script src="/_next/static/chunks/c7879cf7-b5ab1053c1d9a2e7.js" async=""></script><script src="/_next/static/chunks/131-bae98f790a541679.js" async=""></script><script src="/_next/static/chunks/main-app-e3a5f713ba31557e.js" async=""></script><script src="/_next/static/chunks/197-f7c33a0114fc3db3.js" async=""></script><script src="/_next/static/chunks/867-aea30f560bc18eaf.js" async=""></script><script src="/_next/static/chunks/549-2415dd26f4e53d07.js" async=""></script><script src="/_next/static/chunks/499-751e0be9d4f86e2d.js" async=""></script><script src="/_next/static/chunks/app/layout-dc602b727480a653.js" async=""></script><script src="/_next/static/chunks/app/appearance/page-a18019cdc395de3d.js" async=""></script><title>copilot-operator</title><meta name="description" content="Runs task loops with Microsoft 365 Copilot on this machine."/><script>
1
+ <!DOCTYPE html><!--BX8Nw248DTY9xAfUu2pOH--><html lang="en" data-theme="light" data-textsize="normal" data-contrast="normal" data-motion="normal" data-links="plain" data-focus="normal"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/eaec9cc6fe8aceb7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0f31b926d9a9c5a4.js"/><script src="/_next/static/chunks/c7879cf7-b5ab1053c1d9a2e7.js" async=""></script><script src="/_next/static/chunks/131-bae98f790a541679.js" async=""></script><script src="/_next/static/chunks/main-app-e3a5f713ba31557e.js" async=""></script><script src="/_next/static/chunks/197-f7c33a0114fc3db3.js" async=""></script><script src="/_next/static/chunks/867-0f0f8c3bd37be31e.js" async=""></script><script src="/_next/static/chunks/549-1fe42544e4b72942.js" async=""></script><script src="/_next/static/chunks/499-751e0be9d4f86e2d.js" async=""></script><script src="/_next/static/chunks/app/layout-12f138ee04d33c1e.js" async=""></script><script src="/_next/static/chunks/app/appearance/page-a18019cdc395de3d.js" async=""></script><title>copilot-operator</title><meta name="description" content="Runs task loops with Microsoft 365 Copilot on this machine."/><script>
2
2
  (function () {
3
3
  try {
4
4
  var d = document.documentElement;
@@ -13,4 +13,4 @@
13
13
  d.dataset.focus = a.strongFocus ? 'strong' : 'normal';
14
14
  } catch (e) {}
15
15
  })();
16
- </script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><a class="skip-link" href="#main">Skip to the content</a><div class="wrap"><header class="top"><h1><a href="/">copilot-operator</a></h1><nav aria-label="Main"><a href="/"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M3 4h18v16H3zM9 4v16M3 15h6" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>Workbench</span></a><a href="/sessions"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M4 5h16v4H4zM4 11h16v4H4zM4 17h10v2H4z"></path></svg><span>Sessions</span></a><a href="/defaults"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm8.5 4 1.5 1-1.6 2.8-1.8-.4a7 7 0 0 1-1.5 1.5l.4 1.8L14.7 21l-1-1.5a7 7 0 0 1-3.4 0l-1 1.5-2.8-1.6.4-1.8A7 7 0 0 1 5.4 16l-1.8.4L2 13.6 3.5 12.6V11.4L2 10.4l1.6-2.8 1.8.4A7 7 0 0 1 6.9 6.5l-.4-1.8L9.3 3l1 1.5a7 7 0 0 1 3.4 0l1-1.5 2.8 1.6-.4 1.8a7 7 0 0 1 1.5 1.5l1.8-.4L22 10.4l-1.5 1z"></path></svg><span>Settings</span></a><a href="/import"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 3v10m0 0 4-4m-4 4-4-4M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Plan from JSON</span></a><a href="/history"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 3a9 9 0 1 0 8.5 6M12 7v5l3 2M3 4v5h5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Task register</span></a><a href="/level1"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M6 3h9l5 5v13H6zM14 3v6h6M9 13h7M9 17h7" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>Level 1 prompt</span></a><a href="/presets"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M5 4h14v4H5zM5 10h14v4H5zM5 16h9v4H5z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>Level 2 presets</span></a><a aria-current="page" href="/appearance"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 3a9 9 0 0 0 0 18c1.5 0 2-1 2-2s-1-1.5-1-2.5S14 15 15.5 15H17a4 4 0 0 0 4-4 8 8 0 0 0-9-8zM8 9a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm4-3a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm4 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path></svg><span>Appearance</span></a><a href="/system"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M4 5h16v10H4zM2 19h20M9 15v4M15 15v4" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>System</span></a><select aria-label="Language" style="width:auto"><option value="en" selected="">English</option><option value="bg">Български</option></select></nav></header><main id="main"><div class="panel"><h2>Appearance</h2><p class="muted small">Kept in this browser only. Nothing here is sent anywhere or shared with another machine.</p><h3>Theme</h3><div class="segmented" role="group" aria-label="Theme"><button type="button" aria-pressed="false">Light</button><button type="button" aria-pressed="false">Dark</button></div><p class="muted small" style="margin-top:6px">Warm light for a bright room, warm dark for a dim one.</p></div><div class="panel"><h2>Accessibility</h2><p class="muted small">Each of these can be turned on by itself; they are independent of the theme and of the language.</p><h3>Text size</h3><div class="segmented" role="group" aria-label="Text size"><button type="button" aria-pressed="false">Small</button><button type="button" aria-pressed="false">Normal</button><button type="button" aria-pressed="false">Large</button><button type="button" aria-pressed="false">Larger</button><button type="button" aria-pressed="false">Largest</button></div><p class="muted small" style="margin-top:6px">One step below normal and three above. Scales the whole interface, not only the body text, and is remembered in this browser.</p><div class="option"><label><input type="checkbox"/><span>Higher contrast</span></label><p class="why">Stronger borders and darker text. Drops some of the warmth in exchange for legibility.</p></div><div class="option"><label><input type="checkbox"/><span>Less motion</span></label><p class="why">No transitions, and the live log stops scrolling itself while a run is in progress.</p></div><div class="option"><label><input type="checkbox"/><span>Underline every link</span></label><p class="why">Links stop relying on colour alone to be recognisable.</p></div><div class="option"><label><input type="checkbox"/><span>Thick focus outline</span></label><p class="why">Makes what the keyboard is on impossible to lose, when tabbing through a page.</p></div><div class="row" style="margin-top:12px"><button>Back to the defaults</button></div></div><div class="panel"><h2>How it looks</h2><p class="small">A task that ended with a summary, one waiting for approval, and a link.<!-- --> <a href="#main">a link in a sentence</a></p><div class="row"><span class="badge done">done</span><span class="badge running">running</span><span class="badge waiting-approval">waiting for approval</span><span class="badge failed">failed</span></div><div class="summary" style="margin-top:10px"><strong>What was done</strong><div>A task that ended with a summary, one waiting for approval, and a link.</div></div><div class="row"><button class="primary">Run</button><button>Skip</button><button class="danger">Abort task</button></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-0f31b926d9a9c5a4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8078,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"549\",\"static/chunks/549-2415dd26f4e53d07.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-dc602b727480a653.js\"],\"AppearanceProvider\"]\n3:I[867,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"549\",\"static/chunks/549-2415dd26f4e53d07.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-dc602b727480a653.js\"],\"LanguageProvider\"]\n4:I[1035,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"549\",\"static/chunks/549-2415dd26f4e53d07.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-dc602b727480a653.js\"],\"DialogHost\"]\n5:I[8214,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"549\",\"static/chunks/549-2415dd26f4e53d07.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-dc602b727480a653.js\"],\"SkipLink\"]\n6:I[966,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"549\",\"static/chunks/549-2415dd26f4e53d07.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-dc602b727480a653.js\"],\"Shell\"]\n7:I[5204,[],\"\"]\n8:I[2642,[],\"\"]\n9:I[7712,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"549\",\"static/chunks/549-2415dd26f4e53d07.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-dc602b727480a653.js\"],\"ScrollJump\"]\na:I[1701,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"549\",\"static/chunks/549-2415dd26f4e53d07.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-dc602b727480a653.js\"],\"StartDialogHost\"]\nb:I[7089,[],\"ClientPageRoot\"]\nc:I[4585,[\"867\",\"static/chunks/867-aea30f560bc18eaf.js\",\"429\",\"static/chunks/app/appearance/page-a18019cdc395de3d.js\"],\"d"])</script><script>self.__next_f.push([1,"efault\"]\nf:I[433,[],\"OutletBoundary\"]\n11:I[9884,[],\"AsyncMetadataOutlet\"]\n13:I[433,[],\"ViewportBoundary\"]\n15:I[433,[],\"MetadataBoundary\"]\n16:\"$Sreact.suspense\"\n18:I[3536,[],\"\"]\n:HL[\"/_next/static/css/72c85e4322c21223.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"WmzBz4QN36pcz4PL_cfEW\",\"p\":\"\",\"c\":[\"\",\"appearance\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"appearance\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/72c85e4322c21223.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-theme\":\"light\",\"data-textsize\":\"normal\",\"data-contrast\":\"normal\",\"data-motion\":\"normal\",\"data-links\":\"plain\",\"data-focus\":\"normal\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n(function () {\\n try {\\n var d = document.documentElement;\\n var raw = localStorage.getItem('cop.appearance');\\n var a = raw ? JSON.parse(raw) : {};\\n if (!a || typeof a !== 'object') a = {};\\n d.dataset.theme = a.theme === 'dark' ? 'dark' : 'light';\\n d.dataset.textsize = [\\\"small\\\",\\\"normal\\\",\\\"large\\\",\\\"huge\\\",\\\"giant\\\"].indexOf(a.textSize) \u003e= 0 ? a.textSize : 'normal';\\n d.dataset.contrast = a.highContrast ? 'high' : 'normal';\\n d.dataset.motion = a.reduceMotion ? 'reduced' : 'normal';\\n d.dataset.links = a.underlineLinks ? 'underline' : 'plain';\\n d.dataset.focus = a.strongFocus ? 'strong' : 'normal';\\n } catch (e) {}\\n})();\\n\"}}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{}]]}]}]}]}]]}]]}],{\"children\":[\"appearance\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lb\",null,{\"Component\":\"$c\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@d\",\"$@e\"]}],null,[\"$\",\"$Lf\",null,{\"children\":[\"$L10\",[\"$\",\"$L11\",null,{\"promise\":\"$@12\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],null],[\"$\",\"$L15\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$16\",null,{\"fallback\":null,\"children\":\"$L17\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"d:{}\ne:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n10:null\n"])</script><script>self.__next_f.push([1,"12:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"copilot-operator\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Runs task loops with Microsoft 365 Copilot on this machine.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"17:\"$12:metadata\"\n"])</script></body></html>
16
+ </script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><a class="skip-link" href="#main">Skip to the content</a><div class="wrap"><header class="top"><h1><a href="/">copilot-operator</a></h1><nav aria-label="Main"><a href="/"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M3 4h18v16H3zM9 4v16M3 15h6" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>Workbench</span></a><a href="/sessions"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M4 5h16v4H4zM4 11h16v4H4zM4 17h10v2H4z"></path></svg><span>Sessions</span></a><a href="/defaults"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm8.5 4 1.5 1-1.6 2.8-1.8-.4a7 7 0 0 1-1.5 1.5l.4 1.8L14.7 21l-1-1.5a7 7 0 0 1-3.4 0l-1 1.5-2.8-1.6.4-1.8A7 7 0 0 1 5.4 16l-1.8.4L2 13.6 3.5 12.6V11.4L2 10.4l1.6-2.8 1.8.4A7 7 0 0 1 6.9 6.5l-.4-1.8L9.3 3l1 1.5a7 7 0 0 1 3.4 0l1-1.5 2.8 1.6-.4 1.8a7 7 0 0 1 1.5 1.5l1.8-.4L22 10.4l-1.5 1z"></path></svg><span>Settings</span></a><a href="/import"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 3v10m0 0 4-4m-4 4-4-4M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Plan from JSON</span></a><a href="/history"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 3a9 9 0 1 0 8.5 6M12 7v5l3 2M3 4v5h5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Task register</span></a><a href="/level1"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M6 3h9l5 5v13H6zM14 3v6h6M9 13h7M9 17h7" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>Level 1 prompt</span></a><a href="/presets"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M5 4h14v4H5zM5 10h14v4H5zM5 16h9v4H5z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>Level 2 presets</span></a><a aria-current="page" href="/appearance"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M12 3a9 9 0 0 0 0 18c1.5 0 2-1 2-2s-1-1.5-1-2.5S14 15 15.5 15H17a4 4 0 0 0 4-4 8 8 0 0 0-9-8zM8 9a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm4-3a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm4 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path></svg><span>Appearance</span></a><a href="/system"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M4 5h16v10H4zM2 19h20M9 15v4M15 15v4" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path></svg><span>System</span></a><select aria-label="Language" style="width:auto"><option value="en" selected="">English</option><option value="bg">Български</option></select></nav></header><main id="main"><div class="panel"><h2>Appearance</h2><p class="muted small">Kept in this browser only. Nothing here is sent anywhere or shared with another machine.</p><h3>Theme</h3><div class="segmented" role="group" aria-label="Theme"><button type="button" aria-pressed="false">Light</button><button type="button" aria-pressed="false">Dark</button></div><p class="muted small" style="margin-top:6px">Warm light for a bright room, warm dark for a dim one.</p></div><div class="panel"><h2>Accessibility</h2><p class="muted small">Each of these can be turned on by itself; they are independent of the theme and of the language.</p><h3>Text size</h3><div class="segmented" role="group" aria-label="Text size"><button type="button" aria-pressed="false">Small</button><button type="button" aria-pressed="false">Normal</button><button type="button" aria-pressed="false">Large</button><button type="button" aria-pressed="false">Larger</button><button type="button" aria-pressed="false">Largest</button></div><p class="muted small" style="margin-top:6px">One step below normal and three above. Scales the whole interface, not only the body text, and is remembered in this browser.</p><div class="option"><label><input type="checkbox"/><span>Higher contrast</span></label><p class="why">Stronger borders and darker text. Drops some of the warmth in exchange for legibility.</p></div><div class="option"><label><input type="checkbox"/><span>Less motion</span></label><p class="why">No transitions, and the live log stops scrolling itself while a run is in progress.</p></div><div class="option"><label><input type="checkbox"/><span>Underline every link</span></label><p class="why">Links stop relying on colour alone to be recognisable.</p></div><div class="option"><label><input type="checkbox"/><span>Thick focus outline</span></label><p class="why">Makes what the keyboard is on impossible to lose, when tabbing through a page.</p></div><div class="row" style="margin-top:12px"><button>Back to the defaults</button></div></div><div class="panel"><h2>How it looks</h2><p class="small">A task that ended with a summary, one waiting for approval, and a link.<!-- --> <a href="#main">a link in a sentence</a></p><div class="row"><span class="badge done">done</span><span class="badge running">running</span><span class="badge waiting-approval">waiting for approval</span><span class="badge failed">failed</span></div><div class="summary" style="margin-top:10px"><strong>What was done</strong><div>A task that ended with a summary, one waiting for approval, and a link.</div></div><div class="row"><button class="primary">Run</button><button>Skip</button><button class="danger">Abort task</button></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-0f31b926d9a9c5a4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8078,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"549\",\"static/chunks/549-1fe42544e4b72942.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-12f138ee04d33c1e.js\"],\"AppearanceProvider\"]\n3:I[867,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"549\",\"static/chunks/549-1fe42544e4b72942.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-12f138ee04d33c1e.js\"],\"LanguageProvider\"]\n4:I[1035,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"549\",\"static/chunks/549-1fe42544e4b72942.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-12f138ee04d33c1e.js\"],\"DialogHost\"]\n5:I[8214,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"549\",\"static/chunks/549-1fe42544e4b72942.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-12f138ee04d33c1e.js\"],\"SkipLink\"]\n6:I[966,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"549\",\"static/chunks/549-1fe42544e4b72942.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-12f138ee04d33c1e.js\"],\"Shell\"]\n7:I[5204,[],\"\"]\n8:I[2642,[],\"\"]\n9:I[7712,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"549\",\"static/chunks/549-1fe42544e4b72942.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-12f138ee04d33c1e.js\"],\"ScrollJump\"]\na:I[1701,[\"197\",\"static/chunks/197-f7c33a0114fc3db3.js\",\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"549\",\"static/chunks/549-1fe42544e4b72942.js\",\"499\",\"static/chunks/499-751e0be9d4f86e2d.js\",\"177\",\"static/chunks/app/layout-12f138ee04d33c1e.js\"],\"StartDialogHost\"]\nb:I[7089,[],\"ClientPageRoot\"]\nc:I[4585,[\"867\",\"static/chunks/867-0f0f8c3bd37be31e.js\",\"429\",\"static/chunks/app/appearance/page-a18019cdc395de3d.js\"],\"d"])</script><script>self.__next_f.push([1,"efault\"]\nf:I[433,[],\"OutletBoundary\"]\n11:I[9884,[],\"AsyncMetadataOutlet\"]\n13:I[433,[],\"ViewportBoundary\"]\n15:I[433,[],\"MetadataBoundary\"]\n16:\"$Sreact.suspense\"\n18:I[3536,[],\"\"]\n:HL[\"/_next/static/css/eaec9cc6fe8aceb7.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"BX8Nw248DTY9xAfUu2pOH\",\"p\":\"\",\"c\":[\"\",\"appearance\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"appearance\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/eaec9cc6fe8aceb7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-theme\":\"light\",\"data-textsize\":\"normal\",\"data-contrast\":\"normal\",\"data-motion\":\"normal\",\"data-links\":\"plain\",\"data-focus\":\"normal\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n(function () {\\n try {\\n var d = document.documentElement;\\n var raw = localStorage.getItem('cop.appearance');\\n var a = raw ? JSON.parse(raw) : {};\\n if (!a || typeof a !== 'object') a = {};\\n d.dataset.theme = a.theme === 'dark' ? 'dark' : 'light';\\n d.dataset.textsize = [\\\"small\\\",\\\"normal\\\",\\\"large\\\",\\\"huge\\\",\\\"giant\\\"].indexOf(a.textSize) \u003e= 0 ? a.textSize : 'normal';\\n d.dataset.contrast = a.highContrast ? 'high' : 'normal';\\n d.dataset.motion = a.reduceMotion ? 'reduced' : 'normal';\\n d.dataset.links = a.underlineLinks ? 'underline' : 'plain';\\n d.dataset.focus = a.strongFocus ? 'strong' : 'normal';\\n } catch (e) {}\\n})();\\n\"}}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{}]]}]}]}]}]]}]]}],{\"children\":[\"appearance\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lb\",null,{\"Component\":\"$c\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@d\",\"$@e\"]}],null,[\"$\",\"$Lf\",null,{\"children\":[\"$L10\",[\"$\",\"$L11\",null,{\"promise\":\"$@12\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],null],[\"$\",\"$L15\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$16\",null,{\"fallback\":null,\"children\":\"$L17\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"d:{}\ne:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n10:null\n"])</script><script>self.__next_f.push([1,"12:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"copilot-operator\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Runs task loops with Microsoft 365 Copilot on this machine.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"17:\"$12:metadata\"\n"])</script></body></html>