@eforge-build/eforge-plan 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -237,7 +237,7 @@ You might need to use a local HTTP server (instead of file://): https://react.de
237
237
  <%s {...props} />
238
238
  React keys must be passed directly to JSX without using spread:
239
239
  let props = %s;
240
- <%s key={someKey} {...props} />`,o,f,m,f),oe[f+o]=!0)}if(f=null,i!==void 0&&(r(i),f=``+i),s(n)&&(r(n.key),f=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return f&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,f,i,a(),l,d)}function p(e){m(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?m(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function m(e){return typeof e==`object`&&!!e&&e.$$typeof===g}var h=d(),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),ee=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),te=Symbol.for(`react.client.reference`),O=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne=Object.prototype.hasOwnProperty,k=Array.isArray,A=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var re,ie={},j=h.react_stack_bottom_frame.bind(h,o)(),ae=A(i(o)),oe={};e.Fragment=v,e.jsxDEV=function(e,t,n,r){var a=1e4>O.recentlyCreatedOwnerStacks++;return f(e,t,n,r,a?Error(`react-stack-top-frame`):j,a?A(i(e)):ae)}})()})),I=o(((e,t)=>{t.exports=Sn()}))(),Cn=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/badge.tsx`,wn=qe(`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground`,secondary:`border-transparent bg-secondary text-secondary-foreground`,destructive:`border-transparent bg-destructive text-destructive-foreground`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function Tn({className:e,variant:t,...n}){return(0,I.jsxDEV)(`div`,{className:xn(wn({variant:t}),e),...n},void 0,!1,{fileName:Cn,lineNumber:20,columnNumber:10},this)}function En(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Dn(...e){return t=>{let n=!1,r=e.map(e=>{let r=En(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():En(e[t],null)}}}}function On(...e){return w.useCallback(Dn(...e),e)}function kn(e){let t=w.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];Rn(r)&&typeof Hn==`function`&&(r=Hn(r._payload)),w.Children.forEach(r,e=>{if(In(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;Rn(n)&&typeof Hn==`function`&&(n=Hn(n._payload)),a=Nn(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=w.cloneElement(a,void 0,s):!o&&w.Children.count(r)===1&&w.isValidElement(r)&&(a=r);let c=a?Fn(a):void 0,l=On(n,c);if(!a){if(r||r===0)throw Error(o?Vn(e):Bn(e));return r}let u=Pn(i,a.props??{});return a.type!==w.Fragment&&(u.ref=n?l:c),w.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}var An=kn(`Slot`),jn=Symbol.for(`radix.slottable`);function Mn(e){let t=e=>`child`in e?e.children(e.child):e.children;return t.displayName=`${e}.Slottable`,t.__radixId=jn,t}var Nn=(e,t)=>{if(`child`in e.props){let t=e.props.child;return w.isValidElement(t)?w.cloneElement(t,void 0,e.props.children(t.props.children)):null}return w.isValidElement(t)?t:null};function Pn(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Fn(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function In(e){return w.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===jn}var Ln=Symbol.for(`react.lazy`);function Rn(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Ln&&`_payload`in e&&zn(e._payload)}function zn(e){return typeof e==`object`&&!!e&&`then`in e}var Bn=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Vn=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Hn=w.use,Un=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/button.tsx`,Wn=qe(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 cursor-pointer`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80`,outline:`border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground`,ghost:`hover:bg-accent hover:text-accent-foreground`,destructive:`bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90`},size:{default:`h-9 px-4 py-2`,sm:`h-8 rounded-md px-3 text-xs`,xs:`h-6 rounded-md px-2 text-2xs`,icon:`h-9 w-9`,"icon-xs":`h-6 w-6`}},defaultVariants:{variant:`default`,size:`default`}}),L=w.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},a)=>(0,I.jsxDEV)(r?An:`button`,{className:xn(Wn({variant:t,size:n,className:e})),ref:a,...i},void 0,!1,{fileName:Un,lineNumber:29,columnNumber:10},void 0));L.displayName=`Button`;var Gn=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/error-box.tsx`;function Kn({className:e,children:t}){return(0,I.jsxDEV)(`p`,{className:xn(`rounded border border-destructive/40 bg-destructive/10 p-2 text-xs text-destructive-foreground`,e),children:t},void 0,!1,{fileName:Gn,lineNumber:9,columnNumber:10},this)}var qn=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/spinner.tsx`;function Jn({className:e}){return(0,I.jsxDEV)(N,{className:xn(`h-4 w-4 animate-spin`,e),"aria-hidden":`true`},void 0,!1,{fileName:qn,lineNumber:11,columnNumber:10},this)}var Yn=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/toast.tsx`,Xn=w.createContext(null),Zn={info:`border-border bg-card text-foreground`,success:`border-primary/50 bg-card text-text-bright`,error:`border-destructive/60 bg-card text-destructive-foreground`};function Qn({children:e}){let[t,n]=w.useState([]),r=w.useRef(0),i=w.useCallback(e=>n(t=>t.filter(t=>t.id!==e)),[]),a=w.useCallback((e,t=`info`)=>{r.current+=1;let a=r.current;n(n=>[...n,{id:a,message:e,tone:t}]),setTimeout(()=>i(a),4500)},[i]),o=w.useMemo(()=>({push:a}),[a]);return(0,I.jsxDEV)(Xn.Provider,{value:o,children:[e,(0,I.jsxDEV)(`div`,{className:`pointer-events-none fixed bottom-4 right-4 z-50 flex w-80 flex-col gap-2`,children:t.map(e=>(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>i(e.id),className:`pointer-events-auto rounded-md border px-3 py-2 text-left text-sm shadow-2xl ring-1 ring-background/80 transition-opacity ${Zn[e.tone]}`,children:e.message},e.id,!1,{fileName:Yn,lineNumber:43,columnNumber:11},this))},void 0,!1,{fileName:Yn,lineNumber:41,columnNumber:7},this)]},void 0,!0,{fileName:Yn,lineNumber:39,columnNumber:5},this)}function $n(){let e=w.useContext(Xn);if(!e)throw Error(`useToast must be used within ToastProvider`);return e}function er(e){return lr(e)&&!tr(e)&&!pr(e)&&Symbol.asyncIterator in e}function tr(e){return Array.isArray(e)}function nr(e){return typeof e==`bigint`}function rr(e){return typeof e==`boolean`}function ir(e){return e instanceof globalThis.Date}function ar(e){return typeof e==`function`}function or(e){return lr(e)&&!tr(e)&&!pr(e)&&Symbol.iterator in e}function sr(e){return e===null}function cr(e){return typeof e==`number`}function lr(e){return typeof e==`object`&&!!e}function ur(e){return e instanceof globalThis.RegExp}function dr(e){return typeof e==`string`}function fr(e){return typeof e==`symbol`}function pr(e){return e instanceof globalThis.Uint8Array}function mr(e){return e===void 0}function hr(e){return e.map(e=>br(e))}function gr(e){return new Date(e.getTime())}function _r(e){return new Uint8Array(e)}function vr(e){return new RegExp(e.source,e.flags)}function yr(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=br(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=br(e[n]);return t}function br(e){return tr(e)?hr(e):ir(e)?gr(e):pr(e)?_r(e):ur(e)?vr(e):lr(e)?yr(e):e}function xr(e){return br(e)}function Sr(e,t){return xr(t===void 0?e:{...t,...e})}function Cr(e){return typeof e==`object`&&!!e}function wr(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function Tr(e){return e===void 0}function Er(e){return typeof e==`number`}var Dr;(function(e){e.InstanceMode=`default`,e.ExactOptionalPropertyTypes=!1,e.AllowArrayObject=!1,e.AllowNaN=!1,e.AllowNullVoid=!1;function t(t,n){return e.ExactOptionalPropertyTypes?n in t:t[n]!==void 0}e.IsExactOptionalProperty=t;function n(t){let n=Cr(t);return e.AllowArrayObject?n:n&&!wr(t)}e.IsObjectLike=n;function r(e){return n(e)&&!(e instanceof Date)&&!(e instanceof Uint8Array)}e.IsRecordLike=r;function i(t){return e.AllowNaN?Er(t):Number.isFinite(t)}e.IsNumberLike=i;function a(t){let n=Tr(t);return e.AllowNullVoid?n||t===null:n}e.IsVoidLike=a})(Dr||={});function Or(e){return globalThis.Object.freeze(e).map(e=>Nr(e))}function kr(e){return e}function Ar(e){return e}function jr(e){return e}function Mr(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=Nr(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=Nr(e[n]);return globalThis.Object.freeze(t)}function Nr(e){return tr(e)?Or(e):ir(e)?kr(e):pr(e)?Ar(e):ur(e)?jr(e):lr(e)?Mr(e):e}function R(e,t){let n=t===void 0?e:{...t,...e};switch(Dr.InstanceMode){case`freeze`:return Nr(n);case`clone`:return xr(n);default:return n}}var Pr=class extends Error{constructor(e){super(e)}},Fr=Symbol.for(`TypeBox.Transform`),Ir=Symbol.for(`TypeBox.Readonly`),Lr=Symbol.for(`TypeBox.Optional`),Rr=Symbol.for(`TypeBox.Hint`),z=Symbol.for(`TypeBox.Kind`);function zr(e){return lr(e)&&e[Ir]===`Readonly`}function Br(e){return lr(e)&&e[Lr]===`Optional`}function Vr(e){return ei(e,`Any`)}function Hr(e){return ei(e,`Argument`)}function Ur(e){return ei(e,`Array`)}function Wr(e){return ei(e,`AsyncIterator`)}function Gr(e){return ei(e,`BigInt`)}function Kr(e){return ei(e,`Boolean`)}function qr(e){return ei(e,`Computed`)}function Jr(e){return ei(e,`Constructor`)}function Yr(e){return ei(e,`Date`)}function Xr(e){return ei(e,`Function`)}function Zr(e){return ei(e,`Integer`)}function Qr(e){return ei(e,`Intersect`)}function $r(e){return ei(e,`Iterator`)}function ei(e,t){return lr(e)&&z in e&&e[z]===t}function ti(e){return rr(e)||cr(e)||dr(e)}function ni(e){return ei(e,`Literal`)}function ri(e){return ei(e,`MappedKey`)}function ii(e){return ei(e,`MappedResult`)}function ai(e){return ei(e,`Never`)}function oi(e){return ei(e,`Not`)}function si(e){return ei(e,`Null`)}function ci(e){return ei(e,`Number`)}function li(e){return ei(e,`Object`)}function ui(e){return ei(e,`Promise`)}function di(e){return ei(e,`Record`)}function fi(e){return ei(e,`Ref`)}function pi(e){return ei(e,`RegExp`)}function mi(e){return ei(e,`String`)}function hi(e){return ei(e,`Symbol`)}function gi(e){return ei(e,`TemplateLiteral`)}function _i(e){return ei(e,`This`)}function vi(e){return lr(e)&&Fr in e}function yi(e){return ei(e,`Tuple`)}function bi(e){return ei(e,`Undefined`)}function xi(e){return ei(e,`Union`)}function Si(e){return ei(e,`Uint8Array`)}function Ci(e){return ei(e,`Unknown`)}function wi(e){return ei(e,`Unsafe`)}function Ti(e){return ei(e,`Void`)}function Ei(e){return lr(e)&&z in e&&dr(e[z])}function Di(e){return Vr(e)||Hr(e)||Ur(e)||Kr(e)||Gr(e)||Wr(e)||qr(e)||Jr(e)||Yr(e)||Xr(e)||Zr(e)||Qr(e)||$r(e)||ni(e)||ri(e)||ii(e)||ai(e)||oi(e)||si(e)||ci(e)||li(e)||ui(e)||di(e)||fi(e)||pi(e)||mi(e)||hi(e)||gi(e)||_i(e)||yi(e)||bi(e)||xi(e)||Si(e)||Ci(e)||wi(e)||Ti(e)||Ei(e)}var Oi=`Argument.Any.Array.AsyncIterator.BigInt.Boolean.Computed.Constructor.Date.Enum.Function.Integer.Intersect.Iterator.Literal.MappedKey.MappedResult.Not.Null.Number.Object.Promise.Record.Ref.RegExp.String.Symbol.TemplateLiteral.This.Tuple.Undefined.Union.Uint8Array.Unknown.Void`.split(`.`);function ki(e){try{return new RegExp(e),!0}catch{return!1}}function Ai(e){if(!dr(e))return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n>=7&&n<=13||n===27||n===127)return!1}return!0}function ji(e){return Pi(e)||Oa(e)}function Mi(e){return mr(e)||nr(e)}function Ni(e){return mr(e)||cr(e)}function Pi(e){return mr(e)||rr(e)}function Fi(e){return mr(e)||dr(e)}function Ii(e){return mr(e)||dr(e)&&Ai(e)&&ki(e)}function Li(e){return mr(e)||dr(e)&&Ai(e)}function Ri(e){return mr(e)||Oa(e)}function zi(e){return lr(e)&&e[Lr]===`Optional`}function Bi(e){return ea(e,`Any`)&&Fi(e.$id)}function Vi(e){return ea(e,`Argument`)&&cr(e.index)}function Hi(e){return ea(e,`Array`)&&e.type===`array`&&Fi(e.$id)&&Oa(e.items)&&Ni(e.minItems)&&Ni(e.maxItems)&&Pi(e.uniqueItems)&&Ri(e.contains)&&Ni(e.minContains)&&Ni(e.maxContains)}function Ui(e){return ea(e,`AsyncIterator`)&&e.type===`AsyncIterator`&&Fi(e.$id)&&Oa(e.items)}function Wi(e){return ea(e,`BigInt`)&&e.type===`bigint`&&Fi(e.$id)&&Mi(e.exclusiveMaximum)&&Mi(e.exclusiveMinimum)&&Mi(e.maximum)&&Mi(e.minimum)&&Mi(e.multipleOf)}function Gi(e){return ea(e,`Boolean`)&&e.type===`boolean`&&Fi(e.$id)}function Ki(e){return ea(e,`Computed`)&&dr(e.target)&&tr(e.parameters)&&e.parameters.every(e=>Oa(e))}function qi(e){return ea(e,`Constructor`)&&e.type===`Constructor`&&Fi(e.$id)&&tr(e.parameters)&&e.parameters.every(e=>Oa(e))&&Oa(e.returns)}function Ji(e){return ea(e,`Date`)&&e.type===`Date`&&Fi(e.$id)&&Ni(e.exclusiveMaximumTimestamp)&&Ni(e.exclusiveMinimumTimestamp)&&Ni(e.maximumTimestamp)&&Ni(e.minimumTimestamp)&&Ni(e.multipleOfTimestamp)}function Yi(e){return ea(e,`Function`)&&e.type===`Function`&&Fi(e.$id)&&tr(e.parameters)&&e.parameters.every(e=>Oa(e))&&Oa(e.returns)}function Xi(e){return ea(e,`Integer`)&&e.type===`integer`&&Fi(e.$id)&&Ni(e.exclusiveMaximum)&&Ni(e.exclusiveMinimum)&&Ni(e.maximum)&&Ni(e.minimum)&&Ni(e.multipleOf)}function Zi(e){return lr(e)&&Object.entries(e).every(([e,t])=>Ai(e)&&Oa(t))}function Qi(e){return ea(e,`Intersect`)&&!(dr(e.type)&&e.type!==`object`)&&tr(e.allOf)&&e.allOf.every(e=>Oa(e)&&!ya(e))&&Fi(e.type)&&(Pi(e.unevaluatedProperties)||Ri(e.unevaluatedProperties))&&Fi(e.$id)}function $i(e){return ea(e,`Iterator`)&&e.type===`Iterator`&&Fi(e.$id)&&Oa(e.items)}function ea(e,t){return lr(e)&&z in e&&e[z]===t}function ta(e){return ia(e)&&dr(e.const)}function na(e){return ia(e)&&cr(e.const)}function ra(e){return ia(e)&&rr(e.const)}function ia(e){return ea(e,`Literal`)&&Fi(e.$id)&&aa(e.const)}function aa(e){return rr(e)||cr(e)||dr(e)}function oa(e){return ea(e,`MappedKey`)&&tr(e.keys)&&e.keys.every(e=>cr(e)||dr(e))}function sa(e){return ea(e,`MappedResult`)&&Zi(e.properties)}function ca(e){return ea(e,`Never`)&&lr(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function la(e){return ea(e,`Not`)&&Oa(e.not)}function ua(e){return ea(e,`Null`)&&e.type===`null`&&Fi(e.$id)}function B(e){return ea(e,`Number`)&&e.type===`number`&&Fi(e.$id)&&Ni(e.exclusiveMaximum)&&Ni(e.exclusiveMinimum)&&Ni(e.maximum)&&Ni(e.minimum)&&Ni(e.multipleOf)}function V(e){return ea(e,`Object`)&&e.type===`object`&&Fi(e.$id)&&Zi(e.properties)&&ji(e.additionalProperties)&&Ni(e.minProperties)&&Ni(e.maxProperties)}function da(e){return ea(e,`Promise`)&&e.type===`Promise`&&Fi(e.$id)&&Oa(e.item)}function fa(e){return ea(e,`Record`)&&e.type===`object`&&Fi(e.$id)&&ji(e.additionalProperties)&&lr(e.patternProperties)&&(e=>{let t=Object.getOwnPropertyNames(e.patternProperties);return t.length===1&&ki(t[0])&&lr(e.patternProperties)&&Oa(e.patternProperties[t[0]])})(e)}function pa(e){return ea(e,`Ref`)&&Fi(e.$id)&&dr(e.$ref)}function ma(e){return ea(e,`RegExp`)&&Fi(e.$id)&&dr(e.source)&&dr(e.flags)&&Ni(e.maxLength)&&Ni(e.minLength)}function ha(e){return ea(e,`String`)&&e.type===`string`&&Fi(e.$id)&&Ni(e.minLength)&&Ni(e.maxLength)&&Ii(e.pattern)&&Li(e.format)}function ga(e){return ea(e,`Symbol`)&&e.type===`symbol`&&Fi(e.$id)}function _a(e){return ea(e,`TemplateLiteral`)&&e.type===`string`&&dr(e.pattern)&&e.pattern[0]===`^`&&e.pattern[e.pattern.length-1]===`$`}function va(e){return ea(e,`This`)&&Fi(e.$id)&&dr(e.$ref)}function ya(e){return lr(e)&&Fr in e}function ba(e){return ea(e,`Tuple`)&&e.type===`array`&&Fi(e.$id)&&cr(e.minItems)&&cr(e.maxItems)&&e.minItems===e.maxItems&&(mr(e.items)&&mr(e.additionalItems)&&e.minItems===0||tr(e.items)&&e.items.every(e=>Oa(e)))}function xa(e){return ea(e,`Undefined`)&&e.type===`undefined`&&Fi(e.$id)}function Sa(e){return ea(e,`Union`)&&Fi(e.$id)&&lr(e)&&tr(e.anyOf)&&e.anyOf.every(e=>Oa(e))}function Ca(e){return ea(e,`Uint8Array`)&&e.type===`Uint8Array`&&Fi(e.$id)&&Ni(e.minByteLength)&&Ni(e.maxByteLength)}function wa(e){return ea(e,`Unknown`)&&Fi(e.$id)}function Ta(e){return ea(e,`Unsafe`)}function Ea(e){return ea(e,`Void`)&&e.type===`void`&&Fi(e.$id)}function Da(e){return lr(e)&&z in e&&dr(e[z])&&!Oi.includes(e[z])}function Oa(e){return lr(e)&&(Bi(e)||Vi(e)||Hi(e)||Gi(e)||Wi(e)||Ui(e)||Ki(e)||qi(e)||Ji(e)||Yi(e)||Xi(e)||Qi(e)||$i(e)||ia(e)||oa(e)||sa(e)||ca(e)||la(e)||ua(e)||B(e)||V(e)||da(e)||fa(e)||pa(e)||ma(e)||ha(e)||ga(e)||_a(e)||va(e)||ba(e)||xa(e)||Sa(e)||Ca(e)||wa(e)||Ta(e)||Ea(e)||Da(e))}var ka=`(true|false)`,Aa=`(0|[1-9][0-9]*)`,ja=`(.*)`,Ma=`(?!.*)`;`${ka}`;var Na=`^${Aa}$`,Pa=`^${ja}$`,Fa=`^${Ma}$`,Ia=new Map;function La(e,t){Ia.set(e,t)}function Ra(e,t){return e.includes(t)}function za(e){return[...new Set(e)]}function Ba(e,t){return e.filter(e=>t.includes(e))}function Va(e,t){return e.reduce((e,t)=>Ba(e,t),t)}function Ha(e){return e.length===1?e[0]:e.length>1?Va(e.slice(1),e[0]):[]}function Ua(e){let t=[];for(let n of e)t.push(...n);return t}function Wa(e){return R({[z]:`Any`},e)}function Ga(e,t){return R({[z]:`Array`,type:`array`,items:e},t)}function Ka(e){return R({[z]:`Argument`,index:e})}function qa(e,t){return R({[z]:`AsyncIterator`,type:`AsyncIterator`,items:e},t)}function Ja(e,t,n){return R({[z]:`Computed`,target:e,parameters:t},n)}function Ya(e,t){let{[t]:n,...r}=e;return r}function Xa(e,t){return t.reduce((e,t)=>Ya(e,t),e)}function Za(e){return R({[z]:`Never`,not:{}},e)}function Qa(e){return R({[z]:`MappedResult`,properties:e})}function $a(e,t,n){return R({[z]:`Constructor`,type:`Constructor`,parameters:e,returns:t},n)}function eo(e,t,n){return R({[z]:`Function`,type:`Function`,parameters:e,returns:t},n)}function to(e,t){return R({[z]:`Union`,anyOf:e},t)}function no(e){return e.some(e=>Br(e))}function ro(e){return e.map(e=>Br(e)?io(e):e)}function io(e){return Xa(e,[Lr])}function ao(e,t){return no(e)?Ks(to(ro(e),t)):to(ro(e),t)}function oo(e,t){return e.length===1?R(e[0],t):e.length===0?Za(t):ao(e,t)}function so(e,t){return e.length===0?Za(t):e.length===1?R(e[0],t):to(e,t)}var co=class extends Pr{};function lo(e){return e.replace(/\\\$/g,`$`).replace(/\\\*/g,`*`).replace(/\\\^/g,`^`).replace(/\\\|/g,`|`).replace(/\\\(/g,`(`).replace(/\\\)/g,`)`)}function uo(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function fo(e,t){return uo(e,t,`(`)}function po(e,t){return uo(e,t,`)`)}function mo(e,t){return uo(e,t,`|`)}function ho(e){if(!(fo(e,0)&&po(e,e.length-1)))return!1;let t=0;for(let n=0;n<e.length;n++)if(fo(e,n)&&(t+=1),po(e,n)&&--t,t===0&&n!==e.length-1)return!1;return!0}function go(e){return e.slice(1,e.length-1)}function _o(e){let t=0;for(let n=0;n<e.length;n++)if(fo(e,n)&&(t+=1),po(e,n)&&--t,mo(e,n)&&t===0)return!0;return!1}function vo(e){for(let t=0;t<e.length;t++)if(fo(e,t))return!0;return!1}function yo(e){let[t,n]=[0,0],r=[];for(let i=0;i<e.length;i++)if(fo(e,i)&&(t+=1),po(e,i)&&--t,mo(e,i)&&t===0){let t=e.slice(n,i);t.length>0&&r.push(xo(t)),n=i+1}let i=e.slice(n);return i.length>0&&r.push(xo(i)),r.length===0?{type:`const`,const:``}:r.length===1?r[0]:{type:`or`,expr:r}}function bo(e){function t(e,t){if(!fo(e,t))throw new co(`TemplateLiteralParser: Index must point to open parens`);let n=0;for(let r=t;r<e.length;r++)if(fo(e,r)&&(n+=1),po(e,r)&&--n,n===0)return[t,r];throw new co(`TemplateLiteralParser: Unclosed group parens in expression`)}function n(e,t){for(let n=t;n<e.length;n++)if(fo(e,n))return[t,n];return[t,e.length]}let r=[];for(let i=0;i<e.length;i++)if(fo(e,i)){let[n,a]=t(e,i),o=e.slice(n,a+1);r.push(xo(o)),i=a}else{let[t,a]=n(e,i),o=e.slice(t,a);o.length>0&&r.push(xo(o)),i=a-1}return r.length===0?{type:`const`,const:``}:r.length===1?r[0]:{type:`and`,expr:r}}function xo(e){return ho(e)?xo(go(e)):_o(e)?yo(e):vo(e)?bo(e):{type:`const`,const:lo(e)}}function So(e){return xo(e.slice(1,e.length-1))}var Co=class extends Pr{};function wo(e){return e.type===`or`&&e.expr.length===2&&e.expr[0].type===`const`&&e.expr[0].const===`0`&&e.expr[1].type===`const`&&e.expr[1].const===`[1-9][0-9]*`}function To(e){return e.type===`or`&&e.expr.length===2&&e.expr[0].type===`const`&&e.expr[0].const===`true`&&e.expr[1].type===`const`&&e.expr[1].const===`false`}function Eo(e){return e.type===`const`&&e.const===`.*`}function Do(e){return wo(e)||Eo(e)?!1:To(e)?!0:e.type===`and`||e.type===`or`?e.expr.every(e=>Do(e)):e.type===`const`||(()=>{throw new Co(`Unknown expression type`)})()}function Oo(e){return Do(So(e.pattern))}var ko=class extends Pr{};function*Ao(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Ao(e.slice(1)))yield`${t}${n}`}function*jo(e){return yield*Ao(e.expr.map(e=>[...Po(e)]))}function*Mo(e){for(let t of e.expr)yield*Po(t)}function*No(e){return yield e.const}function*Po(e){return e.type===`and`?yield*jo(e):e.type===`or`?yield*Mo(e):e.type===`const`?yield*No(e):(()=>{throw new ko(`Unknown expression`)})()}function Fo(e){let t=So(e.pattern);return Do(t)?[...Po(t)]:[]}function Io(e,t){return R({[z]:`Literal`,const:e,type:typeof e},t)}function Lo(e){return R({[z]:`Boolean`,type:`boolean`},e)}function Ro(e){return R({[z]:`BigInt`,type:`bigint`},e)}function zo(e){return R({[z]:`Number`,type:`number`},e)}function Bo(e){return R({[z]:`String`,type:`string`},e)}function*Vo(e){let t=e.trim().replace(/"|'/g,``);return t===`boolean`?yield Lo():t===`number`?yield zo():t===`bigint`?yield Ro():t===`string`?yield Bo():yield(()=>{let e=t.split(`|`).map(e=>Io(e.trim()));return e.length===0?Za():e.length===1?e[0]:oo(e)})()}function*Ho(e){if(e[1]!==`{`)return yield*[Io(`$`),...Uo(e.slice(1))];for(let t=2;t<e.length;t++)if(e[t]===`}`){let n=Vo(e.slice(2,t)),r=Uo(e.slice(t+1));return yield*[...n,...r]}yield Io(e)}function*Uo(e){for(let t=0;t<e.length;t++)if(e[t]===`$`)return yield*[Io(e.slice(0,t)),...Ho(e.slice(t))];yield Io(e)}function Wo(e){return[...Uo(e)]}var Go=class extends Pr{};function Ko(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function qo(e,t){return gi(e)?e.pattern.slice(1,e.pattern.length-1):xi(e)?`(${e.anyOf.map(e=>qo(e,t)).join(`|`)})`:ci(e)||Zr(e)||Gr(e)?`${t}${Aa}`:mi(e)?`${t}${ja}`:ni(e)?`${t}${Ko(e.const.toString())}`:Kr(e)?`${t}${ka}`:(()=>{throw new Go(`Unexpected Kind '${e[z]}'`)})()}function Jo(e){return`^${e.map(e=>qo(e,``)).join(``)}\$`}function Yo(e){return oo(Fo(e).map(e=>Io(e)))}function Xo(e,t){let n=dr(e)?Jo(Wo(e)):Jo(e);return R({[z]:`TemplateLiteral`,type:`string`,pattern:n},t)}function Zo(e){return Fo(e).map(e=>e.toString())}function Qo(e){let t=[];for(let n of e)t.push(...es(n));return t}function $o(e){return[e.toString()]}function es(e){return[...new Set(gi(e)?Zo(e):xi(e)?Qo(e.anyOf):ni(e)?$o(e.const):ci(e)||Zr(e)?[`[number]`]:[])]}function ts(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=hs(e,es(t[i]),n);return r}function ns(e,t,n){return ts(e,t.properties,n)}function rs(e,t,n){return Qa(ns(e,t,n))}function is(e,t){return e.map(e=>fs(e,t))}function as(e){return e.filter(e=>!ai(e))}function os(e,t){return tc(as(is(e,t)))}function ss(e){return e.some(e=>ai(e))?[]:e}function cs(e,t){return oo(ss(is(e,t)))}function ls(e,t){return t in e?e[t]:t===`[number]`?oo(e):Za()}function us(e,t){return t===`[number]`?e:Za()}function ds(e,t){return t in e?e[t]:Za()}function fs(e,t){return Qr(e)?os(e.allOf,t):xi(e)?cs(e.anyOf,t):yi(e)?ls(e.items??[],t):Ur(e)?us(e.items,t):li(e)?ds(e.properties,t):Za()}function ps(e,t){return t.map(t=>fs(e,t))}function ms(e,t){return oo(ps(e,t))}function hs(e,t,n){if(fi(e)||fi(t)){if(!Di(e)||!Di(t))throw new Pr(`Index types using Ref parameters require both Type and Key to be of TSchema`);return Ja(`Index`,[e,t])}return ii(t)?rs(e,t,n):ri(t)?ys(e,t,n):R(Di(t)?ms(e,es(t)):ms(e,t),n)}function gs(e,t,n){return{[t]:hs(e,[t],xr(n))}}function _s(e,t,n){return t.reduce((t,r)=>({...t,...gs(e,r,n)}),{})}function vs(e,t,n){return _s(e,t.keys,n)}function ys(e,t,n){return Qa(vs(e,t,n))}function bs(e,t){return R({[z]:`Iterator`,type:`Iterator`,items:e},t)}function xs(e){return globalThis.Object.keys(e).filter(t=>!Br(e[t]))}function Ss(e,t){let n=xs(e);return R(n.length>0?{[z]:`Object`,type:`object`,required:n,properties:e}:{[z]:`Object`,type:`object`,properties:e},t)}var Cs=Ss;function ws(e,t){return R({[z]:`Promise`,type:`Promise`,item:e},t)}function Ts(e){return R(Xa(e,[Ir]))}function Es(e){return R({...e,[Ir]:`Readonly`})}function Ds(e,t){return t===!1?Ts(e):Es(e)}function Os(e,t){let n=t??!0;return ii(e)?js(e,n):Ds(e,n)}function ks(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Os(e[r],t);return n}function As(e,t){return ks(e.properties,t)}function js(e,t){return Qa(As(e,t))}function Ms(e,t){return R(e.length>0?{[z]:`Tuple`,type:`array`,items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[z]:`Tuple`,type:`array`,minItems:e.length,maxItems:e.length},t)}function Ns(e,t){return e in t?Bs(e,t[e]):Qa(t)}function Ps(e){return{[e]:Io(e)}}function Fs(e){let t={};for(let n of e)t[n]=Io(n);return t}function Is(e,t){return Ra(t,e)?Ps(e):Fs(t)}function Ls(e,t){return Ns(e,Is(e,t))}function Rs(e,t){return t.map(t=>Bs(e,t))}function zs(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Bs(e,t[r]);return n}function Bs(e,t){let n={...t};return Br(t)?Ks(Bs(e,Xa(t,[Lr]))):zr(t)?Os(Bs(e,Xa(t,[Ir]))):ii(t)?Ns(e,t.properties):ri(t)?Ls(e,t.keys):Jr(t)?$a(Rs(e,t.parameters),Bs(e,t.returns),n):Xr(t)?eo(Rs(e,t.parameters),Bs(e,t.returns),n):Wr(t)?qa(Bs(e,t.items),n):$r(t)?bs(Bs(e,t.items),n):Qr(t)?nc(Rs(e,t.allOf),n):xi(t)?so(Rs(e,t.anyOf),n):yi(t)?Ms(Rs(e,t.items??[]),n):li(t)?Cs(zs(e,t.properties),n):Ur(t)?Ga(Bs(e,t.items),n):ui(t)?ws(Bs(e,t.item),n):t}function Vs(e,t){let n={};for(let r of e)n[r]=Bs(r,t);return n}function Hs(e,t,n){let r=Di(e)?es(e):e;return Cs(Vs(r,t({[z]:`MappedKey`,keys:r})),n)}function Us(e){return R(Xa(e,[Lr]))}function Ws(e){return R({...e,[Lr]:`Optional`})}function Gs(e,t){return t===!1?Us(e):Ws(e)}function Ks(e,t){let n=t??!0;return ii(e)?Ys(e,n):Gs(e,n)}function qs(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Ks(e[r],t);return n}function Js(e,t){return qs(e.properties,t)}function Ys(e,t){return Qa(Js(e,t))}function Xs(e,t={}){let n=e.every(e=>li(e)),r=Di(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return R(t.unevaluatedProperties===!1||Di(t.unevaluatedProperties)||n?{...r,[z]:`Intersect`,type:`object`,allOf:e}:{...r,[z]:`Intersect`,allOf:e},t)}function Zs(e){return e.every(e=>Br(e))}function Qs(e){return Xa(e,[Lr])}function $s(e){return e.map(e=>Br(e)?Qs(e):e)}function ec(e,t){return Zs(e)?Ks(Xs($s(e),t)):Xs($s(e),t)}function tc(e,t={}){if(e.length===1)return R(e[0],t);if(e.length===0)return Za(t);if(e.some(e=>vi(e)))throw Error(`Cannot intersect transform types`);return ec(e,t)}function nc(e,t){if(e.length===1)return R(e[0],t);if(e.length===0)return Za(t);if(e.some(e=>vi(e)))throw Error(`Cannot intersect transform types`);return Xs(e,t)}function rc(...e){let[t,n]=typeof e[0]==`string`?[e[0],e[1]]:[e[0].$id,e[1]];if(typeof t!=`string`)throw new Pr(`Ref: $ref must be a string`);return R({[z]:`Ref`,$ref:t},n)}function ic(e,t){return Ja(`Awaited`,[Ja(e,t)])}function ac(e){return Ja(`Awaited`,[rc(e)])}function oc(e){return nc(lc(e))}function sc(e){return so(lc(e))}function cc(e){return uc(e)}function lc(e){return e.map(e=>uc(e))}function uc(e,t){return R(qr(e)?ic(e.target,e.parameters):Qr(e)?oc(e.allOf):xi(e)?sc(e.anyOf):ui(e)?cc(e.item):fi(e)?ac(e.$ref):e,t)}function dc(e){let t=[];for(let n of e)t.push(vc(n));return t}function fc(e){return Ua(dc(e))}function pc(e){return Ha(dc(e))}function mc(e){return e.map((e,t)=>t.toString())}function hc(e){return[`[number]`]}function gc(e){return globalThis.Object.getOwnPropertyNames(e)}function _c(e){return yc?globalThis.Object.getOwnPropertyNames(e).map(e=>e[0]===`^`&&e[e.length-1]===`$`?e.slice(1,e.length-1):e):[]}function vc(e){return Qr(e)?fc(e.allOf):xi(e)?pc(e.anyOf):yi(e)?mc(e.items??[]):Ur(e)?hc(e.items):li(e)?gc(e.properties):di(e)?_c(e.patternProperties):[]}var yc=!1;function bc(e,t){return Ja(`KeyOf`,[Ja(e,t)])}function xc(e){return Ja(`KeyOf`,[rc(e)])}function Sc(e,t){return R(oo(Cc(vc(e))),t)}function Cc(e){return e.map(e=>e===`[number]`?zo():Io(e))}function wc(e,t){return qr(e)?bc(e.target,e.parameters):fi(e)?xc(e.$ref):ii(e)?Dc(e,t):Sc(e,t)}function Tc(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=wc(e[r],xr(t));return n}function Ec(e,t){return Tc(e.properties,t)}function Dc(e,t){return Qa(Ec(e,t))}function Oc(e){let t=[];for(let n of e)t.push(...vc(n));return za(t)}function kc(e){return e.filter(e=>!ai(e))}function Ac(e,t){let n=[];for(let r of e)n.push(...ps(r,[t]));return kc(n)}function jc(e,t){let n={};for(let r of t)n[r]=tc(Ac(e,r));return n}function Mc(e,t){return Cs(jc(e,Oc(e)),t)}function Nc(e){return R({[z]:`Date`,type:`Date`},e)}function Pc(e){return R({[z]:`Null`,type:`null`},e)}function Fc(e){return R({[z]:`Symbol`,type:`symbol`},e)}function Ic(e){return R({[z]:`Undefined`,type:`undefined`},e)}function Lc(e){return R({[z]:`Uint8Array`,type:`Uint8Array`},e)}function Rc(e){return R({[z]:`Unknown`},e)}function zc(e){return e.map(e=>Hc(e,!1))}function Bc(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Os(Hc(e[n],!1));return t}function Vc(e,t){return t===!0?e:Os(e)}function Hc(e,t){return er(e)||or(e)?Vc(Wa(),t):tr(e)?Os(Ms(zc(e))):pr(e)?Lc():ir(e)?Nc():lr(e)?Vc(Cs(Bc(e)),t):ar(e)?Vc(eo([],Rc()),t):mr(e)?Ic():sr(e)?Pc():fr(e)?Fc():nr(e)?Ro():cr(e)||rr(e)||dr(e)?Io(e):Cs({})}function Uc(e,t){return R(Hc(e,!0),t)}function Wc(e,t){return Jr(e)?Ms(e.parameters,t):Za(t)}function Gc(e,t){if(mr(e))throw Error(`Enum undefined or empty`);let n=globalThis.Object.getOwnPropertyNames(e).filter(e=>isNaN(e)).map(t=>e[t]);return so([...new Set(n)].map(e=>Io(e)),{...t,[Rr]:`Enum`})}var Kc=class extends Pr{},H;(function(e){e[e.Union=0]=`Union`,e[e.True=1]=`True`,e[e.False=2]=`False`})(H||={});function qc(e){return e===H.False?e:H.True}function Jc(e){throw new Kc(e)}function Yc(e){return ca(e)||Qi(e)||Sa(e)||wa(e)||Bi(e)}function Xc(e,t){return ca(t)?ml(e,t):Qi(t)?ul(e,t):Sa(t)?Zl(e,t):wa(t)?$l(e,t):Bi(t)?Zc(e,t):Jc(`StructuralRight`)}function Zc(e,t){return H.True}function Qc(e,t){return Qi(t)?ul(e,t):Sa(t)&&t.anyOf.some(e=>Bi(e)||wa(e))?H.True:Sa(t)?H.Union:wa(t)||Bi(t)?H.True:H.Union}function $c(e,t){return wa(e)?H.False:Bi(e)?H.Union:ca(e)?H.True:H.False}function el(e,t){return V(t)&&jl(t)?H.True:Yc(t)?Xc(e,t):Hi(t)?qc(ru(e.items,t.items)):H.False}function tl(e,t){return Yc(t)?Xc(e,t):Ui(t)?qc(ru(e.items,t.items)):H.False}function nl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Wi(t)?H.True:H.False}function rl(e,t){return ra(e)||Gi(e)?H.True:H.False}function il(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Gi(t)?H.True:H.False}function al(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):qi(t)?e.parameters.length>t.parameters.length?H.False:e.parameters.every((e,n)=>qc(ru(t.parameters[n],e))===H.True)?qc(ru(e.returns,t.returns)):H.False:H.False}function ol(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Ji(t)?H.True:H.False}function sl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):Yi(t)?e.parameters.length>t.parameters.length?H.False:e.parameters.every((e,n)=>qc(ru(t.parameters[n],e))===H.True)?qc(ru(e.returns,t.returns)):H.False:H.False}function cl(e,t){return ia(e)&&cr(e.const)||B(e)||Xi(e)?H.True:H.False}function ll(e,t){return Xi(t)||B(t)?H.True:Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):H.False}function ul(e,t){return t.allOf.every(t=>ru(e,t)===H.True)?H.True:H.False}function dl(e,t){return e.allOf.some(e=>ru(e,t)===H.True)?H.True:H.False}function fl(e,t){return Yc(t)?Xc(e,t):$i(t)?qc(ru(e.items,t.items)):H.False}function pl(e,t){return ia(t)&&t.const===e.const?H.True:Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ha(t)?Hl(e,t):B(t)?yl(e,t):Xi(t)?cl(e,t):Gi(t)?rl(e,t):H.False}function ml(e,t){return H.False}function hl(e,t){return H.True}function gl(e){let[t,n]=[e,0];for(;la(t);)t=t.not,n+=1;return n%2==0?t:Rc()}function _l(e,t){return la(e)?ru(gl(e),t):la(t)?ru(e,gl(t)):Jc(`Invalid fallthrough for Not`)}function vl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ua(t)?H.True:H.False}function yl(e,t){return na(e)||B(e)||Xi(e)?H.True:H.False}function bl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Xi(t)||B(t)?H.True:H.False}function xl(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Sl(e){return jl(e)}function Cl(e){return xl(e,0)||xl(e,1)&&`description`in e.properties&&Sa(e.properties.description)&&e.properties.description.anyOf.length===2&&(ha(e.properties.description.anyOf[0])&&xa(e.properties.description.anyOf[1])||ha(e.properties.description.anyOf[1])&&xa(e.properties.description.anyOf[0]))}function wl(e){return xl(e,0)}function Tl(e){return xl(e,0)}function El(e){return xl(e,0)}function Dl(e){return xl(e,0)}function Ol(e){return jl(e)}function kl(e){let t=zo();return xl(e,0)||xl(e,1)&&`length`in e.properties&&qc(ru(e.properties.length,t))===H.True}function Al(e){return xl(e,0)}function jl(e){let t=zo();return xl(e,0)||xl(e,1)&&`length`in e.properties&&qc(ru(e.properties.length,t))===H.True}function Ml(e){let t=eo([Wa()],Wa());return xl(e,0)||xl(e,1)&&`then`in e.properties&&qc(ru(e.properties.then,t))===H.True}function Nl(e,t){return ru(e,t)===H.False||zi(e)&&!zi(t)?H.False:H.True}function Pl(e,t){return wa(e)?H.False:Bi(e)?H.Union:ca(e)||ta(e)&&Sl(t)||na(e)&&wl(t)||ra(e)&&Tl(t)||ga(e)&&Cl(t)||Wi(e)&&El(t)||ha(e)&&Sl(t)||ga(e)&&Cl(t)||B(e)&&wl(t)||Xi(e)&&wl(t)||Gi(e)&&Tl(t)||Ca(e)&&Ol(t)||Ji(e)&&Dl(t)||qi(e)&&Al(t)||Yi(e)&&kl(t)?H.True:fa(e)&&ha(Ll(e))?t[Rr]===`Record`?H.True:H.False:fa(e)&&B(Ll(e))&&xl(t,0)?H.True:H.False}function Fl(e,t){return Yc(t)?Xc(e,t):fa(t)?zl(e,t):V(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!zi(t.properties[n]))return H.False;if(zi(t.properties[n]))return H.True;if(Nl(e.properties[n],t.properties[n])===H.False)return H.False}return H.True})():H.False}function Il(e,t){return Yc(t)?Xc(e,t):V(t)&&Ml(t)?H.True:da(t)?qc(ru(e.item,t.item)):H.False}function Ll(e){return Na in e.patternProperties?zo():Pa in e.patternProperties?Bo():Jc(`Unknown record key pattern`)}function Rl(e){return Na in e.patternProperties?e.patternProperties[Na]:Pa in e.patternProperties?e.patternProperties[Pa]:Jc(`Unable to get record value schema`)}function zl(e,t){let[n,r]=[Ll(t),Rl(t)];return ta(e)&&B(n)&&qc(ru(e,r))===H.True?H.True:Ca(e)&&B(n)||ha(e)&&B(n)||Hi(e)&&B(n)?ru(e,r):V(e)?(()=>{for(let t of Object.getOwnPropertyNames(e.properties))if(Nl(r,e.properties[t])===H.False)return H.False;return H.True})():H.False}function Bl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?ru(Rl(e),Rl(t)):H.False}function Vl(e,t){return ru(ma(e)?Bo():e,ma(t)?Bo():t)}function Hl(e,t){return ia(e)&&dr(e.const)||ha(e)?H.True:H.False}function Ul(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ha(t)?H.True:H.False}function Wl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ga(t)?H.True:H.False}function Gl(e,t){return _a(e)?ru(Yo(e),t):_a(t)?ru(e,Yo(t)):Jc(`Invalid fallthrough for TemplateLiteral`)}function Kl(e,t){return Hi(t)&&e.items!==void 0&&e.items.every(e=>ru(e,t.items)===H.True)}function ql(e,t){return ca(e)?H.True:wa(e)?H.False:Bi(e)?H.Union:H.False}function Jl(e,t){return Yc(t)?Xc(e,t):V(t)&&jl(t)||Hi(t)&&Kl(e,t)?H.True:ba(t)?mr(e.items)&&!mr(t.items)||!mr(e.items)&&mr(t.items)?H.False:mr(e.items)&&!mr(t.items)||e.items.every((e,n)=>ru(e,t.items[n])===H.True)?H.True:H.False:H.False}function Yl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Ca(t)?H.True:H.False}function Xl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Ea(t)?tu(e,t):xa(t)?H.True:H.False}function Zl(e,t){return t.anyOf.some(t=>ru(e,t)===H.True)?H.True:H.False}function Ql(e,t){return e.anyOf.every(e=>ru(e,t)===H.True)?H.True:H.False}function $l(e,t){return H.True}function eu(e,t){return ca(t)?ml(e,t):Qi(t)?ul(e,t):Sa(t)?Zl(e,t):Bi(t)?Zc(e,t):ha(t)?Hl(e,t):B(t)?yl(e,t):Xi(t)?cl(e,t):Gi(t)?rl(e,t):Hi(t)?$c(e,t):ba(t)?ql(e,t):V(t)?Pl(e,t):wa(t)?H.True:H.False}function tu(e,t){return xa(e)||xa(e)?H.True:H.False}function nu(e,t){return Qi(t)?ul(e,t):Sa(t)?Zl(e,t):wa(t)?$l(e,t):Bi(t)?Zc(e,t):V(t)?Pl(e,t):Ea(t)?H.True:H.False}function ru(e,t){return _a(e)||_a(t)?Gl(e,t):ma(e)||ma(t)?Vl(e,t):la(e)||la(t)?_l(e,t):Bi(e)?Qc(e,t):Hi(e)?el(e,t):Wi(e)?nl(e,t):Gi(e)?il(e,t):Ui(e)?tl(e,t):qi(e)?al(e,t):Ji(e)?ol(e,t):Yi(e)?sl(e,t):Xi(e)?ll(e,t):Qi(e)?dl(e,t):$i(e)?fl(e,t):ia(e)?pl(e,t):ca(e)?hl(e,t):ua(e)?vl(e,t):B(e)?bl(e,t):V(e)?Fl(e,t):fa(e)?Bl(e,t):ha(e)?Ul(e,t):ga(e)?Wl(e,t):ba(e)?Jl(e,t):da(e)?Il(e,t):Ca(e)?Yl(e,t):xa(e)?Xl(e,t):Sa(e)?Ql(e,t):wa(e)?eu(e,t):Ea(e)?nu(e,t):Jc(`Unknown left type operand '${e[z]}'`)}function iu(e,t){return ru(e,t)}function au(e,t,n,r,i){let a={};for(let o of globalThis.Object.getOwnPropertyNames(e))a[o]=lu(e[o],t,n,r,xr(i));return a}function ou(e,t,n,r,i){return au(e.properties,t,n,r,i)}function su(e,t,n,r,i){return Qa(ou(e,t,n,r,i))}function cu(e,t,n,r){let i=iu(e,t);return i===H.Union?so([n,r]):i===H.True?n:r}function lu(e,t,n,r,i){return ii(e)?su(e,t,n,r,i):ri(e)?R(pu(e,t,n,r,i)):R(cu(e,t,n,r),i)}function uu(e,t,n,r,i){return{[e]:lu(Io(e),t,n,r,xr(i))}}function du(e,t,n,r,i){return e.reduce((e,a)=>({...e,...uu(a,t,n,r,i)}),{})}function fu(e,t,n,r,i){return du(e.keys,t,n,r,i)}function pu(e,t,n,r,i){return Qa(fu(e,t,n,r,i))}function mu(e,t){return gu(Yo(e),t)}function hu(e,t){let n=e.filter(e=>iu(e,t)===H.False);return n.length===1?n[0]:so(n)}function gu(e,t,n={}){return gi(e)?R(mu(e,t),n):ii(e)?R(yu(e,t),n):R(xi(e)?hu(e.anyOf,t):iu(e,t)===H.False?e:Za(),n)}function _u(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gu(e[r],t);return n}function vu(e,t){return _u(e.properties,t)}function yu(e,t){return Qa(vu(e,t))}function bu(e,t){return Su(Yo(e),t)}function xu(e,t){let n=e.filter(e=>iu(e,t)!==H.False);return n.length===1?n[0]:so(n)}function Su(e,t,n){return gi(e)?R(bu(e,t),n):ii(e)?R(Tu(e,t),n):R(xi(e)?xu(e.anyOf,t):iu(e,t)===H.False?Za():e,n)}function Cu(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Su(e[r],t);return n}function wu(e,t){return Cu(e.properties,t)}function Tu(e,t){return Qa(wu(e,t))}function Eu(e,t){return Jr(e)?R(e.returns,t):Za(t)}function Du(e){return Os(Ks(e))}function Ou(e,t,n){return R({[z]:`Record`,type:`object`,patternProperties:{[e]:t}},n)}function ku(e,t,n){let r={};for(let n of e)r[n]=t;return Cs(r,{...n,[Rr]:`Record`})}function Au(e,t,n){return Oo(e)?ku(es(e),t,n):Ou(e.pattern,t,n)}function ju(e,t,n){return ku(es(so(e)),t,n)}function Mu(e,t,n){return ku([e.toString()],t,n)}function Nu(e,t,n){return Ou(e.source,t,n)}function Pu(e,t,n){return Ou(mr(e.pattern)?Pa:e.pattern,t,n)}function Fu(e,t,n){return Ou(Pa,t,n)}function Iu(e,t,n){return Ou(Fa,t,n)}function Lu(e,t,n){return Cs({true:t,false:t},n)}function Ru(e,t,n){return Ou(Na,t,n)}function zu(e,t,n){return Ou(Na,t,n)}function Bu(e,t,n={}){return xi(e)?ju(e.anyOf,t,n):gi(e)?Au(e,t,n):ni(e)?Mu(e.const,t,n):Kr(e)?Lu(e,t,n):Zr(e)?Ru(e,t,n):ci(e)?zu(e,t,n):pi(e)?Nu(e,t,n):mi(e)?Pu(e,t,n):Vr(e)?Fu(e,t,n):ai(e)?Iu(e,t,n):Za(n)}function Vu(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function Hu(e){let t=Vu(e);return t===Pa?Bo():t===Na?zo():Bo({pattern:t})}function Uu(e){return e.patternProperties[Vu(e)]}function Wu(e,t){return t.parameters=id(e,t.parameters),t.returns=ad(e,t.returns),t}function Gu(e,t){return t.parameters=id(e,t.parameters),t.returns=ad(e,t.returns),t}function Ku(e,t){return t.allOf=id(e,t.allOf),t}function qu(e,t){return t.anyOf=id(e,t.anyOf),t}function Ju(e,t){return mr(t.items)||(t.items=id(e,t.items)),t}function Yu(e,t){return t.items=ad(e,t.items),t}function Xu(e,t){return t.items=ad(e,t.items),t}function Zu(e,t){return t.items=ad(e,t.items),t}function Qu(e,t){return t.item=ad(e,t.item),t}function $u(e,t){let n=rd(e,t.properties);return{...t,...Cs(n)}}function ed(e,t){let n=Bu(ad(e,Hu(t)),ad(e,Uu(t)));return{...t,...n}}function td(e,t){return t.index in e?e[t.index]:Rc()}function nd(e,t){let n=zr(t),r=Br(t),i=ad(e,t);return n&&r?Du(i):n&&!r?Os(i):!n&&r?Ks(i):i}function rd(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:nd(e,t[r])}),{})}function id(e,t){return t.map(t=>ad(e,t))}function ad(e,t){return Jr(t)?Wu(e,t):Xr(t)?Gu(e,t):Qr(t)?Ku(e,t):xi(t)?qu(e,t):yi(t)?Ju(e,t):Ur(t)?Yu(e,t):Wr(t)?Xu(e,t):$r(t)?Zu(e,t):ui(t)?Qu(e,t):li(t)?$u(e,t):di(t)?ed(e,t):Hr(t)?td(e,t):t}function od(e,t){return ad(t,Sr(e))}function sd(e){return R({[z]:`Integer`,type:`integer`},e)}function cd(e,t,n){return{[e]:yd(Io(e),t,xr(n))}}function ld(e,t,n){return e.reduce((e,r)=>({...e,...cd(r,t,n)}),{})}function ud(e,t,n){return ld(e.keys,t,n)}function dd(e,t,n){return Qa(ud(e,t,n))}function fd(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join(``)}function pd(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join(``)}function md(e){return e.toUpperCase()}function hd(e){return e.toLowerCase()}function gd(e,t,n){let r=So(e.pattern);return Do(r)?Xo([so(vd([...Po(r)].map(e=>Io(e)),t))],n):{...e,pattern:_d(e.pattern,t)}}function _d(e,t){return typeof e==`string`?t===`Uncapitalize`?fd(e):t===`Capitalize`?pd(e):t===`Uppercase`?md(e):t===`Lowercase`?hd(e):e:e.toString()}function vd(e,t){return e.map(e=>yd(e,t))}function yd(e,t,n={}){return ri(e)?dd(e,t,n):gi(e)?gd(e,t,n):xi(e)?so(vd(e.anyOf,t),n):ni(e)?Io(_d(e.const,t),n):R(e,n)}function bd(e,t={}){return yd(e,`Capitalize`,t)}function xd(e,t={}){return yd(e,`Lowercase`,t)}function Sd(e,t={}){return yd(e,`Uncapitalize`,t)}function Cd(e,t={}){return yd(e,`Uppercase`,t)}function wd(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Pd(e[i],t,xr(n));return r}function Td(e,t,n){return wd(e.properties,t,n)}function Ed(e,t,n){return Qa(Td(e,t,n))}function Dd(e,t){return e.map(e=>Nd(e,t))}function Od(e,t){return e.map(e=>Nd(e,t))}function kd(e,t){let{[t]:n,...r}=e;return r}function Ad(e,t){return t.reduce((e,t)=>kd(e,t),e)}function jd(e,t,n){let r=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(Ad(n,t),r)}function Md(e){return so(e.reduce((e,t)=>ti(t)?[...e,Io(t)]:e,[]))}function Nd(e,t){return Qr(e)?nc(Dd(e.allOf,t)):xi(e)?so(Od(e.anyOf,t)):li(e)?jd(e,t,e.properties):Cs({})}function Pd(e,t,n){let r=tr(t)?Md(t):t,i=Di(t)?es(t):t,a=fi(e),o=fi(t);return ii(e)?Ed(e,i,n):ri(t)?Rd(e,t,n):a&&o||!a&&o||a&&!o?Ja(`Omit`,[e,r],n):R({...Nd(e,i),...n})}function Fd(e,t,n){return{[t]:Pd(e,[t],xr(n))}}function Id(e,t,n){return t.reduce((t,r)=>({...t,...Fd(e,r,n)}),{})}function Ld(e,t,n){return Id(e,t.keys,n)}function Rd(e,t,n){return Qa(Ld(e,t,n))}function zd(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Jd(e[i],t,xr(n));return r}function Bd(e,t,n){return zd(e.properties,t,n)}function Vd(e,t,n){return Qa(Bd(e,t,n))}function Hd(e,t){return e.map(e=>qd(e,t))}function Ud(e,t){return e.map(e=>qd(e,t))}function Wd(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Gd(e,t,n){let r=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(Wd(n,t),r)}function Kd(e){return so(e.reduce((e,t)=>ti(t)?[...e,Io(t)]:e,[]))}function qd(e,t){return Qr(e)?nc(Hd(e.allOf,t)):xi(e)?so(Ud(e.anyOf,t)):li(e)?Gd(e,t,e.properties):Cs({})}function Jd(e,t,n){let r=tr(t)?Kd(t):t,i=Di(t)?es(t):t,a=fi(e),o=fi(t);return ii(e)?Vd(e,i,n):ri(t)?Qd(e,t,n):a&&o||!a&&o||a&&!o?Ja(`Pick`,[e,r],n):R({...qd(e,i),...n})}function Yd(e,t,n){return{[t]:Jd(e,[t],xr(n))}}function Xd(e,t,n){return t.reduce((t,r)=>({...t,...Yd(e,r,n)}),{})}function Zd(e,t,n){return Xd(e,t.keys,n)}function Qd(e,t,n){return Qa(Zd(e,t,n))}function $d(e,t){return Ja(`Partial`,[Ja(e,t)])}function ef(e){return Ja(`Partial`,[rc(e)])}function tf(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Ks(e[n]);return t}function nf(e,t){let n=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(tf(t),n)}function rf(e){return e.map(e=>af(e))}function af(e){return qr(e)?$d(e.target,e.parameters):fi(e)?ef(e.$ref):Qr(e)?nc(rf(e.allOf)):xi(e)?so(rf(e.anyOf)):li(e)?nf(e,e.properties):Gr(e)||Kr(e)||Zr(e)||ni(e)||si(e)||ci(e)||mi(e)||hi(e)||bi(e)?e:Cs({})}function of(e,t){return ii(e)?lf(e,t):R({...af(e),...t})}function sf(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=of(e[r],xr(t));return n}function cf(e,t){return sf(e.properties,t)}function lf(e,t){return Qa(cf(e,t))}function uf(e,t){return Ja(`Required`,[Ja(e,t)])}function df(e){return Ja(`Required`,[rc(e)])}function ff(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Xa(e[n],[Lr]);return t}function pf(e,t){let n=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(ff(t),n)}function mf(e){return e.map(e=>hf(e))}function hf(e){return qr(e)?uf(e.target,e.parameters):fi(e)?df(e.$ref):Qr(e)?nc(mf(e.allOf)):xi(e)?so(mf(e.anyOf)):li(e)?pf(e,e.properties):Gr(e)||Kr(e)||Zr(e)||ni(e)||si(e)||ci(e)||mi(e)||hi(e)||bi(e)?e:Cs({})}function gf(e,t){return ii(e)?yf(e,t):R({...hf(e),...t})}function _f(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gf(e[r],t);return n}function vf(e,t){return _f(e.properties,t)}function yf(e,t){return Qa(vf(e,t))}function bf(e,t){return t.map(t=>fi(t)?xf(e,t.$ref):Hf(e,t))}function xf(e,t){return t in e?fi(e[t])?xf(e,e[t].$ref):Hf(e,e[t]):Za()}function Sf(e){return uc(e[0])}function Cf(e){return hs(e[0],e[1])}function wf(e){return wc(e[0])}function Tf(e){return of(e[0])}function Ef(e){return Pd(e[0],e[1])}function Df(e){return Jd(e[0],e[1])}function Of(e){return gf(e[0])}function kf(e,t,n){let r=bf(e,n);return t===`Awaited`?Sf(r):t===`Index`?Cf(r):t===`KeyOf`?wf(r):t===`Partial`?Tf(r):t===`Omit`?Ef(r):t===`Pick`?Df(r):t===`Required`?Of(r):Za()}function Af(e,t){return Ga(Hf(e,t))}function jf(e,t){return qa(Hf(e,t))}function Mf(e,t,n){return $a(Vf(e,t),Hf(e,n))}function Nf(e,t,n){return eo(Vf(e,t),Hf(e,n))}function Pf(e,t){return nc(Vf(e,t))}function Ff(e,t){return bs(Hf(e,t))}function If(e,t){return Cs(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Hf(e,t[r])}),{}))}function Lf(e,t){let[n,r]=[Hf(e,Uu(t)),Vu(t)],i=Sr(t);return i.patternProperties[r]=n,i}function Rf(e,t){return fi(t)?{...xf(e,t.$ref),[Fr]:t[Fr]}:t}function zf(e,t){return Ms(Vf(e,t))}function Bf(e,t){return so(Vf(e,t))}function Vf(e,t){return t.map(t=>Hf(e,t))}function Hf(e,t){return Br(t)?R(Hf(e,Xa(t,[Lr])),t):zr(t)?R(Hf(e,Xa(t,[Ir])),t):vi(t)?R(Rf(e,t),t):Ur(t)?R(Af(e,t.items),t):Wr(t)?R(jf(e,t.items),t):qr(t)?R(kf(e,t.target,t.parameters)):Jr(t)?R(Mf(e,t.parameters,t.returns),t):Xr(t)?R(Nf(e,t.parameters,t.returns),t):Qr(t)?R(Pf(e,t.allOf),t):$r(t)?R(Ff(e,t.items),t):li(t)?R(If(e,t.properties),t):di(t)?R(Lf(e,t)):yi(t)?R(zf(e,t.items||[]),t):xi(t)?R(Bf(e,t.anyOf),t):t}function Uf(e,t){return t in e?Hf(e,e[t]):Za()}function Wf(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:Uf(e,n)}),{})}var Gf=class{constructor(e){let t=Wf(e),n=this.WithIdentifiers(t);this.$defs=n}Import(e,t){let n={...this.$defs,[e]:R(this.$defs[e],t)};return R({[z]:`Import`,$defs:n,$ref:e})}WithIdentifiers(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:{...e[n],$id:n}}),{})}};function U(e){return new Gf(e)}function Kf(e,t){return R({[z]:`Not`,not:e},t)}function qf(e,t){return Xr(e)?Ms(e.parameters,t):Za()}var Jf=0;function Yf(e,t={}){mr(t.$id)&&(t.$id=`T${Jf++}`);let n=Sr(e({[z]:`This`,$ref:`${t.$id}`}));return n.$id=t.$id,R({[Rr]:`Recursive`,...n},t)}function Xf(e,t){let n=dr(e)?new globalThis.RegExp(e):e;return R({[z]:`RegExp`,type:`RegExp`,source:n.source,flags:n.flags},t)}function Zf(e){return Qr(e)?e.allOf:xi(e)?e.anyOf:yi(e)?e.items??[]:[]}function Qf(e){return Zf(e)}function $f(e,t){return Xr(e)?R(e.returns,t):Za(t)}var ep=class{constructor(e){this.schema=e}Decode(e){return new tp(this.schema,e)}},tp=class{constructor(e,t){this.schema=e,this.decode=t}EncodeTransform(e,t){let n={Encode:n=>t[Fr].Encode(e(n)),Decode:e=>this.decode(t[Fr].Decode(e))};return{...t,[Fr]:n}}EncodeSchema(e,t){let n={Decode:this.decode,Encode:e};return{...t,[Fr]:n}}Encode(e){return vi(this.schema)?this.EncodeTransform(e,this.schema):this.EncodeSchema(e,this.schema)}};function np(e){return new ep(e)}function rp(e={}){return R({[z]:e[z]??`Unsafe`},e)}function ip(e){return R({[z]:`Void`,type:`void`},e)}var W=s({Any:()=>Wa,Argument:()=>Ka,Array:()=>Ga,AsyncIterator:()=>qa,Awaited:()=>uc,BigInt:()=>Ro,Boolean:()=>Lo,Capitalize:()=>bd,Composite:()=>Mc,Const:()=>Uc,Constructor:()=>$a,ConstructorParameters:()=>Wc,Date:()=>Nc,Enum:()=>Gc,Exclude:()=>gu,Extends:()=>lu,Extract:()=>Su,Function:()=>eo,Index:()=>hs,InstanceType:()=>Eu,Instantiate:()=>od,Integer:()=>sd,Intersect:()=>nc,Iterator:()=>bs,KeyOf:()=>wc,Literal:()=>Io,Lowercase:()=>xd,Mapped:()=>Hs,Module:()=>U,Never:()=>Za,Not:()=>Kf,Null:()=>Pc,Number:()=>zo,Object:()=>Cs,Omit:()=>Pd,Optional:()=>Ks,Parameters:()=>qf,Partial:()=>of,Pick:()=>Jd,Promise:()=>ws,Readonly:()=>Os,ReadonlyOptional:()=>Du,Record:()=>Bu,Recursive:()=>Yf,Ref:()=>rc,RegExp:()=>Xf,Required:()=>gf,Rest:()=>Qf,ReturnType:()=>$f,String:()=>Bo,Symbol:()=>Fc,TemplateLiteral:()=>Xo,Transform:()=>np,Tuple:()=>Ms,Uint8Array:()=>Lc,Uncapitalize:()=>Sd,Undefined:()=>Ic,Union:()=>so,Unknown:()=>Rc,Unsafe:()=>rp,Uppercase:()=>Cd,Void:()=>ip}),ap=Symbol.for(`yaml.alias`),op=Symbol.for(`yaml.document`),sp=Symbol.for(`yaml.map`),cp=Symbol.for(`yaml.pair`),lp=Symbol.for(`yaml.scalar`),up=Symbol.for(`yaml.seq`),dp=Symbol.for(`yaml.node.type`),fp=e=>!!e&&typeof e==`object`&&e[dp]===ap,pp=e=>!!e&&typeof e==`object`&&e[dp]===op,mp=e=>!!e&&typeof e==`object`&&e[dp]===sp,hp=e=>!!e&&typeof e==`object`&&e[dp]===cp,gp=e=>!!e&&typeof e==`object`&&e[dp]===lp,_p=e=>!!e&&typeof e==`object`&&e[dp]===up;function vp(e){if(e&&typeof e==`object`)switch(e[dp]){case sp:case up:return!0}return!1}function yp(e){if(e&&typeof e==`object`)switch(e[dp]){case ap:case sp:case lp:case up:return!0}return!1}var bp=e=>(gp(e)||vp(e))&&!!e.anchor,xp=Symbol(`break visit`),Sp=Symbol(`skip children`),Cp=Symbol(`remove node`);function wp(e,t){let n=Op(t);pp(e)?Tp(null,e.contents,n,Object.freeze([e]))===Cp&&(e.contents=null):Tp(null,e,n,Object.freeze([]))}wp.BREAK=xp,wp.SKIP=Sp,wp.REMOVE=Cp;function Tp(e,t,n,r){let i=kp(e,t,n,r);if(yp(i)||hp(i))return Ap(e,r,i),Tp(e,i,n,r);if(typeof i!=`symbol`){if(vp(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=Tp(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===xp)return xp;else i===Cp&&(t.items.splice(e,1),--e)}}else if(hp(t)){r=Object.freeze(r.concat(t));let e=Tp(`key`,t.key,n,r);if(e===xp)return xp;e===Cp&&(t.key=null);let i=Tp(`value`,t.value,n,r);if(i===xp)return xp;i===Cp&&(t.value=null)}}return i}async function Ep(e,t){let n=Op(t);pp(e)?await Dp(null,e.contents,n,Object.freeze([e]))===Cp&&(e.contents=null):await Dp(null,e,n,Object.freeze([]))}Ep.BREAK=xp,Ep.SKIP=Sp,Ep.REMOVE=Cp;async function Dp(e,t,n,r){let i=await kp(e,t,n,r);if(yp(i)||hp(i))return Ap(e,r,i),Dp(e,i,n,r);if(typeof i!=`symbol`){if(vp(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await Dp(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===xp)return xp;else i===Cp&&(t.items.splice(e,1),--e)}}else if(hp(t)){r=Object.freeze(r.concat(t));let e=await Dp(`key`,t.key,n,r);if(e===xp)return xp;e===Cp&&(t.key=null);let i=await Dp(`value`,t.value,n,r);if(i===xp)return xp;i===Cp&&(t.value=null)}}return i}function Op(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function kp(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(mp(t))return n.Map?.(e,t,r);if(_p(t))return n.Seq?.(e,t,r);if(hp(t))return n.Pair?.(e,t,r);if(gp(t))return n.Scalar?.(e,t,r);if(fp(t))return n.Alias?.(e,t,r)}function Ap(e,t,n){let r=t[t.length-1];if(vp(r))r.items[e]=n;else if(hp(r))e===`key`?r.key=n:r.value=n;else if(pp(r))r.contents=n;else{let e=fp(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var jp={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},Mp=e=>e.replace(/[!,[\]{}]/g,e=>jp[e]),Np=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Mp(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&yp(e.contents)){let t={};wp(e.contents,(e,n)=>{yp(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
240
+ <%s key={someKey} {...props} />`,o,f,m,f),oe[f+o]=!0)}if(f=null,i!==void 0&&(r(i),f=``+i),s(n)&&(r(n.key),f=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return f&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,f,i,a(),l,d)}function p(e){m(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?m(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function m(e){return typeof e==`object`&&!!e&&e.$$typeof===g}var h=d(),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),ee=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),te=Symbol.for(`react.client.reference`),O=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne=Object.prototype.hasOwnProperty,k=Array.isArray,A=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var re,ie={},j=h.react_stack_bottom_frame.bind(h,o)(),ae=A(i(o)),oe={};e.Fragment=v,e.jsxDEV=function(e,t,n,r){var a=1e4>O.recentlyCreatedOwnerStacks++;return f(e,t,n,r,a?Error(`react-stack-top-frame`):j,a?A(i(e)):ae)}})()})),I=o(((e,t)=>{t.exports=Sn()}))(),Cn=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/badge.tsx`,wn=qe(`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground`,secondary:`border-transparent bg-secondary text-secondary-foreground`,destructive:`border-transparent bg-destructive text-destructive-foreground`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function Tn({className:e,variant:t,...n}){return(0,I.jsxDEV)(`div`,{className:xn(wn({variant:t}),e),...n},void 0,!1,{fileName:Cn,lineNumber:20,columnNumber:10},this)}function En(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Dn(...e){return t=>{let n=!1,r=e.map(e=>{let r=En(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():En(e[t],null)}}}}function On(...e){return w.useCallback(Dn(...e),e)}function kn(e){let t=w.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];Rn(r)&&typeof Hn==`function`&&(r=Hn(r._payload)),w.Children.forEach(r,e=>{if(In(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;Rn(n)&&typeof Hn==`function`&&(n=Hn(n._payload)),a=Nn(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=w.cloneElement(a,void 0,s):!o&&w.Children.count(r)===1&&w.isValidElement(r)&&(a=r);let c=a?Fn(a):void 0,l=On(n,c);if(!a){if(r||r===0)throw Error(o?Vn(e):Bn(e));return r}let u=Pn(i,a.props??{});return a.type!==w.Fragment&&(u.ref=n?l:c),w.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}var An=kn(`Slot`),jn=Symbol.for(`radix.slottable`);function Mn(e){let t=e=>`child`in e?e.children(e.child):e.children;return t.displayName=`${e}.Slottable`,t.__radixId=jn,t}var Nn=(e,t)=>{if(`child`in e.props){let t=e.props.child;return w.isValidElement(t)?w.cloneElement(t,void 0,e.props.children(t.props.children)):null}return w.isValidElement(t)?t:null};function Pn(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Fn(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function In(e){return w.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===jn}var Ln=Symbol.for(`react.lazy`);function Rn(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Ln&&`_payload`in e&&zn(e._payload)}function zn(e){return typeof e==`object`&&!!e&&`then`in e}var Bn=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Vn=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Hn=w.use,Un=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/button.tsx`,Wn=qe(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 cursor-pointer`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80`,outline:`border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground`,ghost:`hover:bg-accent hover:text-accent-foreground`,destructive:`bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90`},size:{default:`h-9 px-4 py-2`,sm:`h-8 rounded-md px-3 text-xs`,xs:`h-6 rounded-md px-2 text-2xs`,icon:`h-9 w-9`,"icon-xs":`h-6 w-6`}},defaultVariants:{variant:`default`,size:`default`}}),L=w.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},a)=>(0,I.jsxDEV)(r?An:`button`,{className:xn(Wn({variant:t,size:n,className:e})),ref:a,...i},void 0,!1,{fileName:Un,lineNumber:29,columnNumber:10},void 0));L.displayName=`Button`;var Gn=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/error-box.tsx`;function Kn({className:e,children:t}){return(0,I.jsxDEV)(`p`,{className:xn(`rounded border border-destructive/40 bg-destructive/10 p-2 text-xs text-destructive-foreground`,e),children:t},void 0,!1,{fileName:Gn,lineNumber:9,columnNumber:10},this)}var qn=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/spinner.tsx`;function Jn({className:e}){return(0,I.jsxDEV)(N,{className:xn(`h-4 w-4 animate-spin`,e),"aria-hidden":`true`},void 0,!1,{fileName:qn,lineNumber:11,columnNumber:10},this)}var Yn=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/toast.tsx`,Xn=w.createContext(null),Zn={info:`border-border bg-card text-foreground`,success:`border-primary/50 bg-card text-text-bright`,error:`border-destructive/60 bg-card text-destructive-foreground`};function Qn({children:e}){let[t,n]=w.useState([]),r=w.useRef(0),i=w.useCallback(e=>n(t=>t.filter(t=>t.id!==e)),[]),a=w.useCallback((e,t=`info`)=>{r.current+=1;let a=r.current;n(n=>[...n,{id:a,message:e,tone:t}]),setTimeout(()=>i(a),4500)},[i]),o=w.useMemo(()=>({push:a}),[a]);return(0,I.jsxDEV)(Xn.Provider,{value:o,children:[e,(0,I.jsxDEV)(`div`,{className:`pointer-events-none fixed bottom-4 right-4 z-50 flex w-80 flex-col gap-2`,children:t.map(e=>(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>i(e.id),className:`pointer-events-auto rounded-md border px-3 py-2 text-left text-sm shadow-2xl ring-1 ring-background/80 transition-opacity ${Zn[e.tone]}`,children:e.message},e.id,!1,{fileName:Yn,lineNumber:43,columnNumber:11},this))},void 0,!1,{fileName:Yn,lineNumber:41,columnNumber:7},this)]},void 0,!0,{fileName:Yn,lineNumber:39,columnNumber:5},this)}function $n(){let e=w.useContext(Xn);if(!e)throw Error(`useToast must be used within ToastProvider`);return e}function er(e){return lr(e)&&!tr(e)&&!pr(e)&&Symbol.asyncIterator in e}function tr(e){return Array.isArray(e)}function nr(e){return typeof e==`bigint`}function rr(e){return typeof e==`boolean`}function ir(e){return e instanceof globalThis.Date}function ar(e){return typeof e==`function`}function or(e){return lr(e)&&!tr(e)&&!pr(e)&&Symbol.iterator in e}function sr(e){return e===null}function cr(e){return typeof e==`number`}function lr(e){return typeof e==`object`&&!!e}function ur(e){return e instanceof globalThis.RegExp}function dr(e){return typeof e==`string`}function fr(e){return typeof e==`symbol`}function pr(e){return e instanceof globalThis.Uint8Array}function mr(e){return e===void 0}function hr(e){return e.map(e=>br(e))}function gr(e){return new Date(e.getTime())}function _r(e){return new Uint8Array(e)}function vr(e){return new RegExp(e.source,e.flags)}function yr(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=br(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=br(e[n]);return t}function br(e){return tr(e)?hr(e):ir(e)?gr(e):pr(e)?_r(e):ur(e)?vr(e):lr(e)?yr(e):e}function xr(e){return br(e)}function Sr(e,t){return xr(t===void 0?e:{...t,...e})}function Cr(e){return typeof e==`object`&&!!e}function wr(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function Tr(e){return e===void 0}function Er(e){return typeof e==`number`}var Dr;(function(e){e.InstanceMode=`default`,e.ExactOptionalPropertyTypes=!1,e.AllowArrayObject=!1,e.AllowNaN=!1,e.AllowNullVoid=!1;function t(t,n){return e.ExactOptionalPropertyTypes?n in t:t[n]!==void 0}e.IsExactOptionalProperty=t;function n(t){let n=Cr(t);return e.AllowArrayObject?n:n&&!wr(t)}e.IsObjectLike=n;function r(e){return n(e)&&!(e instanceof Date)&&!(e instanceof Uint8Array)}e.IsRecordLike=r;function i(t){return e.AllowNaN?Er(t):Number.isFinite(t)}e.IsNumberLike=i;function a(t){let n=Tr(t);return e.AllowNullVoid?n||t===null:n}e.IsVoidLike=a})(Dr||={});function Or(e){return globalThis.Object.freeze(e).map(e=>Nr(e))}function kr(e){return e}function Ar(e){return e}function jr(e){return e}function Mr(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=Nr(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=Nr(e[n]);return globalThis.Object.freeze(t)}function Nr(e){return tr(e)?Or(e):ir(e)?kr(e):pr(e)?Ar(e):ur(e)?jr(e):lr(e)?Mr(e):e}function R(e,t){let n=t===void 0?e:{...t,...e};switch(Dr.InstanceMode){case`freeze`:return Nr(n);case`clone`:return xr(n);default:return n}}var Pr=class extends Error{constructor(e){super(e)}},Fr=Symbol.for(`TypeBox.Transform`),Ir=Symbol.for(`TypeBox.Readonly`),Lr=Symbol.for(`TypeBox.Optional`),Rr=Symbol.for(`TypeBox.Hint`),z=Symbol.for(`TypeBox.Kind`);function zr(e){return lr(e)&&e[Ir]===`Readonly`}function Br(e){return lr(e)&&e[Lr]===`Optional`}function Vr(e){return ei(e,`Any`)}function Hr(e){return ei(e,`Argument`)}function Ur(e){return ei(e,`Array`)}function Wr(e){return ei(e,`AsyncIterator`)}function Gr(e){return ei(e,`BigInt`)}function Kr(e){return ei(e,`Boolean`)}function qr(e){return ei(e,`Computed`)}function Jr(e){return ei(e,`Constructor`)}function Yr(e){return ei(e,`Date`)}function Xr(e){return ei(e,`Function`)}function Zr(e){return ei(e,`Integer`)}function Qr(e){return ei(e,`Intersect`)}function $r(e){return ei(e,`Iterator`)}function ei(e,t){return lr(e)&&z in e&&e[z]===t}function ti(e){return rr(e)||cr(e)||dr(e)}function ni(e){return ei(e,`Literal`)}function ri(e){return ei(e,`MappedKey`)}function ii(e){return ei(e,`MappedResult`)}function ai(e){return ei(e,`Never`)}function oi(e){return ei(e,`Not`)}function si(e){return ei(e,`Null`)}function ci(e){return ei(e,`Number`)}function li(e){return ei(e,`Object`)}function ui(e){return ei(e,`Promise`)}function di(e){return ei(e,`Record`)}function fi(e){return ei(e,`Ref`)}function pi(e){return ei(e,`RegExp`)}function mi(e){return ei(e,`String`)}function hi(e){return ei(e,`Symbol`)}function gi(e){return ei(e,`TemplateLiteral`)}function _i(e){return ei(e,`This`)}function vi(e){return lr(e)&&Fr in e}function yi(e){return ei(e,`Tuple`)}function bi(e){return ei(e,`Undefined`)}function xi(e){return ei(e,`Union`)}function Si(e){return ei(e,`Uint8Array`)}function Ci(e){return ei(e,`Unknown`)}function wi(e){return ei(e,`Unsafe`)}function Ti(e){return ei(e,`Void`)}function Ei(e){return lr(e)&&z in e&&dr(e[z])}function Di(e){return Vr(e)||Hr(e)||Ur(e)||Kr(e)||Gr(e)||Wr(e)||qr(e)||Jr(e)||Yr(e)||Xr(e)||Zr(e)||Qr(e)||$r(e)||ni(e)||ri(e)||ii(e)||ai(e)||oi(e)||si(e)||ci(e)||li(e)||ui(e)||di(e)||fi(e)||pi(e)||mi(e)||hi(e)||gi(e)||_i(e)||yi(e)||bi(e)||xi(e)||Si(e)||Ci(e)||wi(e)||Ti(e)||Ei(e)}var Oi=`Argument.Any.Array.AsyncIterator.BigInt.Boolean.Computed.Constructor.Date.Enum.Function.Integer.Intersect.Iterator.Literal.MappedKey.MappedResult.Not.Null.Number.Object.Promise.Record.Ref.RegExp.String.Symbol.TemplateLiteral.This.Tuple.Undefined.Union.Uint8Array.Unknown.Void`.split(`.`);function ki(e){try{return new RegExp(e),!0}catch{return!1}}function Ai(e){if(!dr(e))return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n>=7&&n<=13||n===27||n===127)return!1}return!0}function ji(e){return Pi(e)||Oa(e)}function Mi(e){return mr(e)||nr(e)}function Ni(e){return mr(e)||cr(e)}function Pi(e){return mr(e)||rr(e)}function Fi(e){return mr(e)||dr(e)}function Ii(e){return mr(e)||dr(e)&&Ai(e)&&ki(e)}function Li(e){return mr(e)||dr(e)&&Ai(e)}function Ri(e){return mr(e)||Oa(e)}function zi(e){return lr(e)&&e[Lr]===`Optional`}function Bi(e){return ea(e,`Any`)&&Fi(e.$id)}function Vi(e){return ea(e,`Argument`)&&cr(e.index)}function Hi(e){return ea(e,`Array`)&&e.type===`array`&&Fi(e.$id)&&Oa(e.items)&&Ni(e.minItems)&&Ni(e.maxItems)&&Pi(e.uniqueItems)&&Ri(e.contains)&&Ni(e.minContains)&&Ni(e.maxContains)}function Ui(e){return ea(e,`AsyncIterator`)&&e.type===`AsyncIterator`&&Fi(e.$id)&&Oa(e.items)}function Wi(e){return ea(e,`BigInt`)&&e.type===`bigint`&&Fi(e.$id)&&Mi(e.exclusiveMaximum)&&Mi(e.exclusiveMinimum)&&Mi(e.maximum)&&Mi(e.minimum)&&Mi(e.multipleOf)}function Gi(e){return ea(e,`Boolean`)&&e.type===`boolean`&&Fi(e.$id)}function Ki(e){return ea(e,`Computed`)&&dr(e.target)&&tr(e.parameters)&&e.parameters.every(e=>Oa(e))}function qi(e){return ea(e,`Constructor`)&&e.type===`Constructor`&&Fi(e.$id)&&tr(e.parameters)&&e.parameters.every(e=>Oa(e))&&Oa(e.returns)}function Ji(e){return ea(e,`Date`)&&e.type===`Date`&&Fi(e.$id)&&Ni(e.exclusiveMaximumTimestamp)&&Ni(e.exclusiveMinimumTimestamp)&&Ni(e.maximumTimestamp)&&Ni(e.minimumTimestamp)&&Ni(e.multipleOfTimestamp)}function Yi(e){return ea(e,`Function`)&&e.type===`Function`&&Fi(e.$id)&&tr(e.parameters)&&e.parameters.every(e=>Oa(e))&&Oa(e.returns)}function Xi(e){return ea(e,`Integer`)&&e.type===`integer`&&Fi(e.$id)&&Ni(e.exclusiveMaximum)&&Ni(e.exclusiveMinimum)&&Ni(e.maximum)&&Ni(e.minimum)&&Ni(e.multipleOf)}function Zi(e){return lr(e)&&Object.entries(e).every(([e,t])=>Ai(e)&&Oa(t))}function Qi(e){return ea(e,`Intersect`)&&!(dr(e.type)&&e.type!==`object`)&&tr(e.allOf)&&e.allOf.every(e=>Oa(e)&&!ya(e))&&Fi(e.type)&&(Pi(e.unevaluatedProperties)||Ri(e.unevaluatedProperties))&&Fi(e.$id)}function $i(e){return ea(e,`Iterator`)&&e.type===`Iterator`&&Fi(e.$id)&&Oa(e.items)}function ea(e,t){return lr(e)&&z in e&&e[z]===t}function ta(e){return ia(e)&&dr(e.const)}function na(e){return ia(e)&&cr(e.const)}function ra(e){return ia(e)&&rr(e.const)}function ia(e){return ea(e,`Literal`)&&Fi(e.$id)&&aa(e.const)}function aa(e){return rr(e)||cr(e)||dr(e)}function oa(e){return ea(e,`MappedKey`)&&tr(e.keys)&&e.keys.every(e=>cr(e)||dr(e))}function sa(e){return ea(e,`MappedResult`)&&Zi(e.properties)}function ca(e){return ea(e,`Never`)&&lr(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function la(e){return ea(e,`Not`)&&Oa(e.not)}function ua(e){return ea(e,`Null`)&&e.type===`null`&&Fi(e.$id)}function B(e){return ea(e,`Number`)&&e.type===`number`&&Fi(e.$id)&&Ni(e.exclusiveMaximum)&&Ni(e.exclusiveMinimum)&&Ni(e.maximum)&&Ni(e.minimum)&&Ni(e.multipleOf)}function V(e){return ea(e,`Object`)&&e.type===`object`&&Fi(e.$id)&&Zi(e.properties)&&ji(e.additionalProperties)&&Ni(e.minProperties)&&Ni(e.maxProperties)}function da(e){return ea(e,`Promise`)&&e.type===`Promise`&&Fi(e.$id)&&Oa(e.item)}function fa(e){return ea(e,`Record`)&&e.type===`object`&&Fi(e.$id)&&ji(e.additionalProperties)&&lr(e.patternProperties)&&(e=>{let t=Object.getOwnPropertyNames(e.patternProperties);return t.length===1&&ki(t[0])&&lr(e.patternProperties)&&Oa(e.patternProperties[t[0]])})(e)}function pa(e){return ea(e,`Ref`)&&Fi(e.$id)&&dr(e.$ref)}function ma(e){return ea(e,`RegExp`)&&Fi(e.$id)&&dr(e.source)&&dr(e.flags)&&Ni(e.maxLength)&&Ni(e.minLength)}function ha(e){return ea(e,`String`)&&e.type===`string`&&Fi(e.$id)&&Ni(e.minLength)&&Ni(e.maxLength)&&Ii(e.pattern)&&Li(e.format)}function ga(e){return ea(e,`Symbol`)&&e.type===`symbol`&&Fi(e.$id)}function _a(e){return ea(e,`TemplateLiteral`)&&e.type===`string`&&dr(e.pattern)&&e.pattern[0]===`^`&&e.pattern[e.pattern.length-1]===`$`}function va(e){return ea(e,`This`)&&Fi(e.$id)&&dr(e.$ref)}function ya(e){return lr(e)&&Fr in e}function ba(e){return ea(e,`Tuple`)&&e.type===`array`&&Fi(e.$id)&&cr(e.minItems)&&cr(e.maxItems)&&e.minItems===e.maxItems&&(mr(e.items)&&mr(e.additionalItems)&&e.minItems===0||tr(e.items)&&e.items.every(e=>Oa(e)))}function xa(e){return ea(e,`Undefined`)&&e.type===`undefined`&&Fi(e.$id)}function Sa(e){return ea(e,`Union`)&&Fi(e.$id)&&lr(e)&&tr(e.anyOf)&&e.anyOf.every(e=>Oa(e))}function Ca(e){return ea(e,`Uint8Array`)&&e.type===`Uint8Array`&&Fi(e.$id)&&Ni(e.minByteLength)&&Ni(e.maxByteLength)}function wa(e){return ea(e,`Unknown`)&&Fi(e.$id)}function Ta(e){return ea(e,`Unsafe`)}function Ea(e){return ea(e,`Void`)&&e.type===`void`&&Fi(e.$id)}function Da(e){return lr(e)&&z in e&&dr(e[z])&&!Oi.includes(e[z])}function Oa(e){return lr(e)&&(Bi(e)||Vi(e)||Hi(e)||Gi(e)||Wi(e)||Ui(e)||Ki(e)||qi(e)||Ji(e)||Yi(e)||Xi(e)||Qi(e)||$i(e)||ia(e)||oa(e)||sa(e)||ca(e)||la(e)||ua(e)||B(e)||V(e)||da(e)||fa(e)||pa(e)||ma(e)||ha(e)||ga(e)||_a(e)||va(e)||ba(e)||xa(e)||Sa(e)||Ca(e)||wa(e)||Ta(e)||Ea(e)||Da(e))}var ka=`(true|false)`,Aa=`(0|[1-9][0-9]*)`,ja=`(.*)`,Ma=`(?!.*)`;`${ka}`;var Na=`^${Aa}$`,Pa=`^${ja}$`,Fa=`^${Ma}$`,Ia=new Map;function La(e,t){Ia.set(e,t)}function Ra(e,t){return e.includes(t)}function za(e){return[...new Set(e)]}function Ba(e,t){return e.filter(e=>t.includes(e))}function Va(e,t){return e.reduce((e,t)=>Ba(e,t),t)}function Ha(e){return e.length===1?e[0]:e.length>1?Va(e.slice(1),e[0]):[]}function Ua(e){let t=[];for(let n of e)t.push(...n);return t}function Wa(e){return R({[z]:`Any`},e)}function Ga(e,t){return R({[z]:`Array`,type:`array`,items:e},t)}function Ka(e){return R({[z]:`Argument`,index:e})}function qa(e,t){return R({[z]:`AsyncIterator`,type:`AsyncIterator`,items:e},t)}function Ja(e,t,n){return R({[z]:`Computed`,target:e,parameters:t},n)}function Ya(e,t){let{[t]:n,...r}=e;return r}function Xa(e,t){return t.reduce((e,t)=>Ya(e,t),e)}function Za(e){return R({[z]:`Never`,not:{}},e)}function Qa(e){return R({[z]:`MappedResult`,properties:e})}function $a(e,t,n){return R({[z]:`Constructor`,type:`Constructor`,parameters:e,returns:t},n)}function eo(e,t,n){return R({[z]:`Function`,type:`Function`,parameters:e,returns:t},n)}function to(e,t){return R({[z]:`Union`,anyOf:e},t)}function no(e){return e.some(e=>Br(e))}function ro(e){return e.map(e=>Br(e)?io(e):e)}function io(e){return Xa(e,[Lr])}function ao(e,t){return no(e)?Ks(to(ro(e),t)):to(ro(e),t)}function oo(e,t){return e.length===1?R(e[0],t):e.length===0?Za(t):ao(e,t)}function so(e,t){return e.length===0?Za(t):e.length===1?R(e[0],t):to(e,t)}var co=class extends Pr{};function lo(e){return e.replace(/\\\$/g,`$`).replace(/\\\*/g,`*`).replace(/\\\^/g,`^`).replace(/\\\|/g,`|`).replace(/\\\(/g,`(`).replace(/\\\)/g,`)`)}function uo(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function fo(e,t){return uo(e,t,`(`)}function po(e,t){return uo(e,t,`)`)}function mo(e,t){return uo(e,t,`|`)}function ho(e){if(!(fo(e,0)&&po(e,e.length-1)))return!1;let t=0;for(let n=0;n<e.length;n++)if(fo(e,n)&&(t+=1),po(e,n)&&--t,t===0&&n!==e.length-1)return!1;return!0}function go(e){return e.slice(1,e.length-1)}function _o(e){let t=0;for(let n=0;n<e.length;n++)if(fo(e,n)&&(t+=1),po(e,n)&&--t,mo(e,n)&&t===0)return!0;return!1}function vo(e){for(let t=0;t<e.length;t++)if(fo(e,t))return!0;return!1}function yo(e){let[t,n]=[0,0],r=[];for(let i=0;i<e.length;i++)if(fo(e,i)&&(t+=1),po(e,i)&&--t,mo(e,i)&&t===0){let t=e.slice(n,i);t.length>0&&r.push(xo(t)),n=i+1}let i=e.slice(n);return i.length>0&&r.push(xo(i)),r.length===0?{type:`const`,const:``}:r.length===1?r[0]:{type:`or`,expr:r}}function bo(e){function t(e,t){if(!fo(e,t))throw new co(`TemplateLiteralParser: Index must point to open parens`);let n=0;for(let r=t;r<e.length;r++)if(fo(e,r)&&(n+=1),po(e,r)&&--n,n===0)return[t,r];throw new co(`TemplateLiteralParser: Unclosed group parens in expression`)}function n(e,t){for(let n=t;n<e.length;n++)if(fo(e,n))return[t,n];return[t,e.length]}let r=[];for(let i=0;i<e.length;i++)if(fo(e,i)){let[n,a]=t(e,i),o=e.slice(n,a+1);r.push(xo(o)),i=a}else{let[t,a]=n(e,i),o=e.slice(t,a);o.length>0&&r.push(xo(o)),i=a-1}return r.length===0?{type:`const`,const:``}:r.length===1?r[0]:{type:`and`,expr:r}}function xo(e){return ho(e)?xo(go(e)):_o(e)?yo(e):vo(e)?bo(e):{type:`const`,const:lo(e)}}function So(e){return xo(e.slice(1,e.length-1))}var Co=class extends Pr{};function wo(e){return e.type===`or`&&e.expr.length===2&&e.expr[0].type===`const`&&e.expr[0].const===`0`&&e.expr[1].type===`const`&&e.expr[1].const===`[1-9][0-9]*`}function To(e){return e.type===`or`&&e.expr.length===2&&e.expr[0].type===`const`&&e.expr[0].const===`true`&&e.expr[1].type===`const`&&e.expr[1].const===`false`}function Eo(e){return e.type===`const`&&e.const===`.*`}function Do(e){return wo(e)||Eo(e)?!1:To(e)?!0:e.type===`and`||e.type===`or`?e.expr.every(e=>Do(e)):e.type===`const`||(()=>{throw new Co(`Unknown expression type`)})()}function Oo(e){return Do(So(e.pattern))}var ko=class extends Pr{};function*Ao(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Ao(e.slice(1)))yield`${t}${n}`}function*jo(e){return yield*Ao(e.expr.map(e=>[...Po(e)]))}function*Mo(e){for(let t of e.expr)yield*Po(t)}function*No(e){return yield e.const}function*Po(e){return e.type===`and`?yield*jo(e):e.type===`or`?yield*Mo(e):e.type===`const`?yield*No(e):(()=>{throw new ko(`Unknown expression`)})()}function Fo(e){let t=So(e.pattern);return Do(t)?[...Po(t)]:[]}function Io(e,t){return R({[z]:`Literal`,const:e,type:typeof e},t)}function Lo(e){return R({[z]:`Boolean`,type:`boolean`},e)}function Ro(e){return R({[z]:`BigInt`,type:`bigint`},e)}function zo(e){return R({[z]:`Number`,type:`number`},e)}function Bo(e){return R({[z]:`String`,type:`string`},e)}function*Vo(e){let t=e.trim().replace(/"|'/g,``);return t===`boolean`?yield Lo():t===`number`?yield zo():t===`bigint`?yield Ro():t===`string`?yield Bo():yield(()=>{let e=t.split(`|`).map(e=>Io(e.trim()));return e.length===0?Za():e.length===1?e[0]:oo(e)})()}function*Ho(e){if(e[1]!==`{`)return yield*[Io(`$`),...Uo(e.slice(1))];for(let t=2;t<e.length;t++)if(e[t]===`}`){let n=Vo(e.slice(2,t)),r=Uo(e.slice(t+1));return yield*[...n,...r]}yield Io(e)}function*Uo(e){for(let t=0;t<e.length;t++)if(e[t]===`$`)return yield*[Io(e.slice(0,t)),...Ho(e.slice(t))];yield Io(e)}function Wo(e){return[...Uo(e)]}var Go=class extends Pr{};function Ko(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function qo(e,t){return gi(e)?e.pattern.slice(1,e.pattern.length-1):xi(e)?`(${e.anyOf.map(e=>qo(e,t)).join(`|`)})`:ci(e)||Zr(e)||Gr(e)?`${t}${Aa}`:mi(e)?`${t}${ja}`:ni(e)?`${t}${Ko(e.const.toString())}`:Kr(e)?`${t}${ka}`:(()=>{throw new Go(`Unexpected Kind '${e[z]}'`)})()}function Jo(e){return`^${e.map(e=>qo(e,``)).join(``)}\$`}function Yo(e){return oo(Fo(e).map(e=>Io(e)))}function Xo(e,t){let n=dr(e)?Jo(Wo(e)):Jo(e);return R({[z]:`TemplateLiteral`,type:`string`,pattern:n},t)}function Zo(e){return Fo(e).map(e=>e.toString())}function Qo(e){let t=[];for(let n of e)t.push(...es(n));return t}function $o(e){return[e.toString()]}function es(e){return[...new Set(gi(e)?Zo(e):xi(e)?Qo(e.anyOf):ni(e)?$o(e.const):ci(e)||Zr(e)?[`[number]`]:[])]}function ts(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=hs(e,es(t[i]),n);return r}function ns(e,t,n){return ts(e,t.properties,n)}function rs(e,t,n){return Qa(ns(e,t,n))}function is(e,t){return e.map(e=>fs(e,t))}function as(e){return e.filter(e=>!ai(e))}function os(e,t){return tc(as(is(e,t)))}function ss(e){return e.some(e=>ai(e))?[]:e}function cs(e,t){return oo(ss(is(e,t)))}function ls(e,t){return t in e?e[t]:t===`[number]`?oo(e):Za()}function us(e,t){return t===`[number]`?e:Za()}function ds(e,t){return t in e?e[t]:Za()}function fs(e,t){return Qr(e)?os(e.allOf,t):xi(e)?cs(e.anyOf,t):yi(e)?ls(e.items??[],t):Ur(e)?us(e.items,t):li(e)?ds(e.properties,t):Za()}function ps(e,t){return t.map(t=>fs(e,t))}function ms(e,t){return oo(ps(e,t))}function hs(e,t,n){if(fi(e)||fi(t)){if(!Di(e)||!Di(t))throw new Pr(`Index types using Ref parameters require both Type and Key to be of TSchema`);return Ja(`Index`,[e,t])}return ii(t)?rs(e,t,n):ri(t)?ys(e,t,n):R(Di(t)?ms(e,es(t)):ms(e,t),n)}function gs(e,t,n){return{[t]:hs(e,[t],xr(n))}}function _s(e,t,n){return t.reduce((t,r)=>({...t,...gs(e,r,n)}),{})}function vs(e,t,n){return _s(e,t.keys,n)}function ys(e,t,n){return Qa(vs(e,t,n))}function bs(e,t){return R({[z]:`Iterator`,type:`Iterator`,items:e},t)}function xs(e){return globalThis.Object.keys(e).filter(t=>!Br(e[t]))}function Ss(e,t){let n=xs(e);return R(n.length>0?{[z]:`Object`,type:`object`,required:n,properties:e}:{[z]:`Object`,type:`object`,properties:e},t)}var Cs=Ss;function ws(e,t){return R({[z]:`Promise`,type:`Promise`,item:e},t)}function Ts(e){return R(Xa(e,[Ir]))}function Es(e){return R({...e,[Ir]:`Readonly`})}function Ds(e,t){return t===!1?Ts(e):Es(e)}function Os(e,t){let n=t??!0;return ii(e)?js(e,n):Ds(e,n)}function ks(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Os(e[r],t);return n}function As(e,t){return ks(e.properties,t)}function js(e,t){return Qa(As(e,t))}function Ms(e,t){return R(e.length>0?{[z]:`Tuple`,type:`array`,items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[z]:`Tuple`,type:`array`,minItems:e.length,maxItems:e.length},t)}function Ns(e,t){return e in t?Bs(e,t[e]):Qa(t)}function Ps(e){return{[e]:Io(e)}}function Fs(e){let t={};for(let n of e)t[n]=Io(n);return t}function Is(e,t){return Ra(t,e)?Ps(e):Fs(t)}function Ls(e,t){return Ns(e,Is(e,t))}function Rs(e,t){return t.map(t=>Bs(e,t))}function zs(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Bs(e,t[r]);return n}function Bs(e,t){let n={...t};return Br(t)?Ks(Bs(e,Xa(t,[Lr]))):zr(t)?Os(Bs(e,Xa(t,[Ir]))):ii(t)?Ns(e,t.properties):ri(t)?Ls(e,t.keys):Jr(t)?$a(Rs(e,t.parameters),Bs(e,t.returns),n):Xr(t)?eo(Rs(e,t.parameters),Bs(e,t.returns),n):Wr(t)?qa(Bs(e,t.items),n):$r(t)?bs(Bs(e,t.items),n):Qr(t)?nc(Rs(e,t.allOf),n):xi(t)?so(Rs(e,t.anyOf),n):yi(t)?Ms(Rs(e,t.items??[]),n):li(t)?Cs(zs(e,t.properties),n):Ur(t)?Ga(Bs(e,t.items),n):ui(t)?ws(Bs(e,t.item),n):t}function Vs(e,t){let n={};for(let r of e)n[r]=Bs(r,t);return n}function Hs(e,t,n){let r=Di(e)?es(e):e;return Cs(Vs(r,t({[z]:`MappedKey`,keys:r})),n)}function Us(e){return R(Xa(e,[Lr]))}function Ws(e){return R({...e,[Lr]:`Optional`})}function Gs(e,t){return t===!1?Us(e):Ws(e)}function Ks(e,t){let n=t??!0;return ii(e)?Ys(e,n):Gs(e,n)}function qs(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Ks(e[r],t);return n}function Js(e,t){return qs(e.properties,t)}function Ys(e,t){return Qa(Js(e,t))}function Xs(e,t={}){let n=e.every(e=>li(e)),r=Di(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return R(t.unevaluatedProperties===!1||Di(t.unevaluatedProperties)||n?{...r,[z]:`Intersect`,type:`object`,allOf:e}:{...r,[z]:`Intersect`,allOf:e},t)}function Zs(e){return e.every(e=>Br(e))}function Qs(e){return Xa(e,[Lr])}function $s(e){return e.map(e=>Br(e)?Qs(e):e)}function ec(e,t){return Zs(e)?Ks(Xs($s(e),t)):Xs($s(e),t)}function tc(e,t={}){if(e.length===1)return R(e[0],t);if(e.length===0)return Za(t);if(e.some(e=>vi(e)))throw Error(`Cannot intersect transform types`);return ec(e,t)}function nc(e,t){if(e.length===1)return R(e[0],t);if(e.length===0)return Za(t);if(e.some(e=>vi(e)))throw Error(`Cannot intersect transform types`);return Xs(e,t)}function rc(...e){let[t,n]=typeof e[0]==`string`?[e[0],e[1]]:[e[0].$id,e[1]];if(typeof t!=`string`)throw new Pr(`Ref: $ref must be a string`);return R({[z]:`Ref`,$ref:t},n)}function ic(e,t){return Ja(`Awaited`,[Ja(e,t)])}function ac(e){return Ja(`Awaited`,[rc(e)])}function oc(e){return nc(lc(e))}function sc(e){return so(lc(e))}function cc(e){return uc(e)}function lc(e){return e.map(e=>uc(e))}function uc(e,t){return R(qr(e)?ic(e.target,e.parameters):Qr(e)?oc(e.allOf):xi(e)?sc(e.anyOf):ui(e)?cc(e.item):fi(e)?ac(e.$ref):e,t)}function dc(e){let t=[];for(let n of e)t.push(vc(n));return t}function fc(e){return Ua(dc(e))}function pc(e){return Ha(dc(e))}function mc(e){return e.map((e,t)=>t.toString())}function hc(e){return[`[number]`]}function gc(e){return globalThis.Object.getOwnPropertyNames(e)}function _c(e){return yc?globalThis.Object.getOwnPropertyNames(e).map(e=>e[0]===`^`&&e[e.length-1]===`$`?e.slice(1,e.length-1):e):[]}function vc(e){return Qr(e)?fc(e.allOf):xi(e)?pc(e.anyOf):yi(e)?mc(e.items??[]):Ur(e)?hc(e.items):li(e)?gc(e.properties):di(e)?_c(e.patternProperties):[]}var yc=!1;function bc(e,t){return Ja(`KeyOf`,[Ja(e,t)])}function xc(e){return Ja(`KeyOf`,[rc(e)])}function Sc(e,t){return R(oo(Cc(vc(e))),t)}function Cc(e){return e.map(e=>e===`[number]`?zo():Io(e))}function wc(e,t){return qr(e)?bc(e.target,e.parameters):fi(e)?xc(e.$ref):ii(e)?Dc(e,t):Sc(e,t)}function Tc(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=wc(e[r],xr(t));return n}function Ec(e,t){return Tc(e.properties,t)}function Dc(e,t){return Qa(Ec(e,t))}function Oc(e){let t=[];for(let n of e)t.push(...vc(n));return za(t)}function kc(e){return e.filter(e=>!ai(e))}function Ac(e,t){let n=[];for(let r of e)n.push(...ps(r,[t]));return kc(n)}function jc(e,t){let n={};for(let r of t)n[r]=tc(Ac(e,r));return n}function Mc(e,t){return Cs(jc(e,Oc(e)),t)}function Nc(e){return R({[z]:`Date`,type:`Date`},e)}function Pc(e){return R({[z]:`Null`,type:`null`},e)}function Fc(e){return R({[z]:`Symbol`,type:`symbol`},e)}function Ic(e){return R({[z]:`Undefined`,type:`undefined`},e)}function Lc(e){return R({[z]:`Uint8Array`,type:`Uint8Array`},e)}function Rc(e){return R({[z]:`Unknown`},e)}function zc(e){return e.map(e=>Hc(e,!1))}function Bc(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Os(Hc(e[n],!1));return t}function Vc(e,t){return t===!0?e:Os(e)}function Hc(e,t){return er(e)||or(e)?Vc(Wa(),t):tr(e)?Os(Ms(zc(e))):pr(e)?Lc():ir(e)?Nc():lr(e)?Vc(Cs(Bc(e)),t):ar(e)?Vc(eo([],Rc()),t):mr(e)?Ic():sr(e)?Pc():fr(e)?Fc():nr(e)?Ro():cr(e)||rr(e)||dr(e)?Io(e):Cs({})}function Uc(e,t){return R(Hc(e,!0),t)}function Wc(e,t){return Jr(e)?Ms(e.parameters,t):Za(t)}function Gc(e,t){if(mr(e))throw Error(`Enum undefined or empty`);let n=globalThis.Object.getOwnPropertyNames(e).filter(e=>isNaN(e)).map(t=>e[t]);return so([...new Set(n)].map(e=>Io(e)),{...t,[Rr]:`Enum`})}var Kc=class extends Pr{},H;(function(e){e[e.Union=0]=`Union`,e[e.True=1]=`True`,e[e.False=2]=`False`})(H||={});function qc(e){return e===H.False?e:H.True}function Jc(e){throw new Kc(e)}function Yc(e){return ca(e)||Qi(e)||Sa(e)||wa(e)||Bi(e)}function Xc(e,t){return ca(t)?ml(e,t):Qi(t)?ul(e,t):Sa(t)?Zl(e,t):wa(t)?$l(e,t):Bi(t)?Zc(e,t):Jc(`StructuralRight`)}function Zc(e,t){return H.True}function Qc(e,t){return Qi(t)?ul(e,t):Sa(t)&&t.anyOf.some(e=>Bi(e)||wa(e))?H.True:Sa(t)?H.Union:wa(t)||Bi(t)?H.True:H.Union}function $c(e,t){return wa(e)?H.False:Bi(e)?H.Union:ca(e)?H.True:H.False}function el(e,t){return V(t)&&jl(t)?H.True:Yc(t)?Xc(e,t):Hi(t)?qc(ru(e.items,t.items)):H.False}function tl(e,t){return Yc(t)?Xc(e,t):Ui(t)?qc(ru(e.items,t.items)):H.False}function nl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Wi(t)?H.True:H.False}function rl(e,t){return ra(e)||Gi(e)?H.True:H.False}function il(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Gi(t)?H.True:H.False}function al(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):qi(t)?e.parameters.length>t.parameters.length?H.False:e.parameters.every((e,n)=>qc(ru(t.parameters[n],e))===H.True)?qc(ru(e.returns,t.returns)):H.False:H.False}function ol(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Ji(t)?H.True:H.False}function sl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):Yi(t)?e.parameters.length>t.parameters.length?H.False:e.parameters.every((e,n)=>qc(ru(t.parameters[n],e))===H.True)?qc(ru(e.returns,t.returns)):H.False:H.False}function cl(e,t){return ia(e)&&cr(e.const)||B(e)||Xi(e)?H.True:H.False}function ll(e,t){return Xi(t)||B(t)?H.True:Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):H.False}function ul(e,t){return t.allOf.every(t=>ru(e,t)===H.True)?H.True:H.False}function dl(e,t){return e.allOf.some(e=>ru(e,t)===H.True)?H.True:H.False}function fl(e,t){return Yc(t)?Xc(e,t):$i(t)?qc(ru(e.items,t.items)):H.False}function pl(e,t){return ia(t)&&t.const===e.const?H.True:Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ha(t)?Hl(e,t):B(t)?yl(e,t):Xi(t)?cl(e,t):Gi(t)?rl(e,t):H.False}function ml(e,t){return H.False}function hl(e,t){return H.True}function gl(e){let[t,n]=[e,0];for(;la(t);)t=t.not,n+=1;return n%2==0?t:Rc()}function _l(e,t){return la(e)?ru(gl(e),t):la(t)?ru(e,gl(t)):Jc(`Invalid fallthrough for Not`)}function vl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ua(t)?H.True:H.False}function yl(e,t){return na(e)||B(e)||Xi(e)?H.True:H.False}function bl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Xi(t)||B(t)?H.True:H.False}function xl(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Sl(e){return jl(e)}function Cl(e){return xl(e,0)||xl(e,1)&&`description`in e.properties&&Sa(e.properties.description)&&e.properties.description.anyOf.length===2&&(ha(e.properties.description.anyOf[0])&&xa(e.properties.description.anyOf[1])||ha(e.properties.description.anyOf[1])&&xa(e.properties.description.anyOf[0]))}function wl(e){return xl(e,0)}function Tl(e){return xl(e,0)}function El(e){return xl(e,0)}function Dl(e){return xl(e,0)}function Ol(e){return jl(e)}function kl(e){let t=zo();return xl(e,0)||xl(e,1)&&`length`in e.properties&&qc(ru(e.properties.length,t))===H.True}function Al(e){return xl(e,0)}function jl(e){let t=zo();return xl(e,0)||xl(e,1)&&`length`in e.properties&&qc(ru(e.properties.length,t))===H.True}function Ml(e){let t=eo([Wa()],Wa());return xl(e,0)||xl(e,1)&&`then`in e.properties&&qc(ru(e.properties.then,t))===H.True}function Nl(e,t){return ru(e,t)===H.False||zi(e)&&!zi(t)?H.False:H.True}function Pl(e,t){return wa(e)?H.False:Bi(e)?H.Union:ca(e)||ta(e)&&Sl(t)||na(e)&&wl(t)||ra(e)&&Tl(t)||ga(e)&&Cl(t)||Wi(e)&&El(t)||ha(e)&&Sl(t)||ga(e)&&Cl(t)||B(e)&&wl(t)||Xi(e)&&wl(t)||Gi(e)&&Tl(t)||Ca(e)&&Ol(t)||Ji(e)&&Dl(t)||qi(e)&&Al(t)||Yi(e)&&kl(t)?H.True:fa(e)&&ha(Ll(e))?t[Rr]===`Record`?H.True:H.False:fa(e)&&B(Ll(e))&&xl(t,0)?H.True:H.False}function Fl(e,t){return Yc(t)?Xc(e,t):fa(t)?zl(e,t):V(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!zi(t.properties[n]))return H.False;if(zi(t.properties[n]))return H.True;if(Nl(e.properties[n],t.properties[n])===H.False)return H.False}return H.True})():H.False}function Il(e,t){return Yc(t)?Xc(e,t):V(t)&&Ml(t)?H.True:da(t)?qc(ru(e.item,t.item)):H.False}function Ll(e){return Na in e.patternProperties?zo():Pa in e.patternProperties?Bo():Jc(`Unknown record key pattern`)}function Rl(e){return Na in e.patternProperties?e.patternProperties[Na]:Pa in e.patternProperties?e.patternProperties[Pa]:Jc(`Unable to get record value schema`)}function zl(e,t){let[n,r]=[Ll(t),Rl(t)];return ta(e)&&B(n)&&qc(ru(e,r))===H.True?H.True:Ca(e)&&B(n)||ha(e)&&B(n)||Hi(e)&&B(n)?ru(e,r):V(e)?(()=>{for(let t of Object.getOwnPropertyNames(e.properties))if(Nl(r,e.properties[t])===H.False)return H.False;return H.True})():H.False}function Bl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?ru(Rl(e),Rl(t)):H.False}function Vl(e,t){return ru(ma(e)?Bo():e,ma(t)?Bo():t)}function Hl(e,t){return ia(e)&&dr(e.const)||ha(e)?H.True:H.False}function Ul(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ha(t)?H.True:H.False}function Wl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):ga(t)?H.True:H.False}function Gl(e,t){return _a(e)?ru(Yo(e),t):_a(t)?ru(e,Yo(t)):Jc(`Invalid fallthrough for TemplateLiteral`)}function Kl(e,t){return Hi(t)&&e.items!==void 0&&e.items.every(e=>ru(e,t.items)===H.True)}function ql(e,t){return ca(e)?H.True:wa(e)?H.False:Bi(e)?H.Union:H.False}function Jl(e,t){return Yc(t)?Xc(e,t):V(t)&&jl(t)||Hi(t)&&Kl(e,t)?H.True:ba(t)?mr(e.items)&&!mr(t.items)||!mr(e.items)&&mr(t.items)?H.False:mr(e.items)&&!mr(t.items)||e.items.every((e,n)=>ru(e,t.items[n])===H.True)?H.True:H.False:H.False}function Yl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Ca(t)?H.True:H.False}function Xl(e,t){return Yc(t)?Xc(e,t):V(t)?Pl(e,t):fa(t)?zl(e,t):Ea(t)?tu(e,t):xa(t)?H.True:H.False}function Zl(e,t){return t.anyOf.some(t=>ru(e,t)===H.True)?H.True:H.False}function Ql(e,t){return e.anyOf.every(e=>ru(e,t)===H.True)?H.True:H.False}function $l(e,t){return H.True}function eu(e,t){return ca(t)?ml(e,t):Qi(t)?ul(e,t):Sa(t)?Zl(e,t):Bi(t)?Zc(e,t):ha(t)?Hl(e,t):B(t)?yl(e,t):Xi(t)?cl(e,t):Gi(t)?rl(e,t):Hi(t)?$c(e,t):ba(t)?ql(e,t):V(t)?Pl(e,t):wa(t)?H.True:H.False}function tu(e,t){return xa(e)||xa(e)?H.True:H.False}function nu(e,t){return Qi(t)?ul(e,t):Sa(t)?Zl(e,t):wa(t)?$l(e,t):Bi(t)?Zc(e,t):V(t)?Pl(e,t):Ea(t)?H.True:H.False}function ru(e,t){return _a(e)||_a(t)?Gl(e,t):ma(e)||ma(t)?Vl(e,t):la(e)||la(t)?_l(e,t):Bi(e)?Qc(e,t):Hi(e)?el(e,t):Wi(e)?nl(e,t):Gi(e)?il(e,t):Ui(e)?tl(e,t):qi(e)?al(e,t):Ji(e)?ol(e,t):Yi(e)?sl(e,t):Xi(e)?ll(e,t):Qi(e)?dl(e,t):$i(e)?fl(e,t):ia(e)?pl(e,t):ca(e)?hl(e,t):ua(e)?vl(e,t):B(e)?bl(e,t):V(e)?Fl(e,t):fa(e)?Bl(e,t):ha(e)?Ul(e,t):ga(e)?Wl(e,t):ba(e)?Jl(e,t):da(e)?Il(e,t):Ca(e)?Yl(e,t):xa(e)?Xl(e,t):Sa(e)?Ql(e,t):wa(e)?eu(e,t):Ea(e)?nu(e,t):Jc(`Unknown left type operand '${e[z]}'`)}function iu(e,t){return ru(e,t)}function au(e,t,n,r,i){let a={};for(let o of globalThis.Object.getOwnPropertyNames(e))a[o]=lu(e[o],t,n,r,xr(i));return a}function ou(e,t,n,r,i){return au(e.properties,t,n,r,i)}function su(e,t,n,r,i){return Qa(ou(e,t,n,r,i))}function cu(e,t,n,r){let i=iu(e,t);return i===H.Union?so([n,r]):i===H.True?n:r}function lu(e,t,n,r,i){return ii(e)?su(e,t,n,r,i):ri(e)?R(pu(e,t,n,r,i)):R(cu(e,t,n,r),i)}function uu(e,t,n,r,i){return{[e]:lu(Io(e),t,n,r,xr(i))}}function du(e,t,n,r,i){return e.reduce((e,a)=>({...e,...uu(a,t,n,r,i)}),{})}function fu(e,t,n,r,i){return du(e.keys,t,n,r,i)}function pu(e,t,n,r,i){return Qa(fu(e,t,n,r,i))}function mu(e,t){return gu(Yo(e),t)}function hu(e,t){let n=e.filter(e=>iu(e,t)===H.False);return n.length===1?n[0]:so(n)}function gu(e,t,n={}){return gi(e)?R(mu(e,t),n):ii(e)?R(yu(e,t),n):R(xi(e)?hu(e.anyOf,t):iu(e,t)===H.False?e:Za(),n)}function _u(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gu(e[r],t);return n}function vu(e,t){return _u(e.properties,t)}function yu(e,t){return Qa(vu(e,t))}function bu(e,t){return Su(Yo(e),t)}function xu(e,t){let n=e.filter(e=>iu(e,t)!==H.False);return n.length===1?n[0]:so(n)}function Su(e,t,n){return gi(e)?R(bu(e,t),n):ii(e)?R(Tu(e,t),n):R(xi(e)?xu(e.anyOf,t):iu(e,t)===H.False?Za():e,n)}function Cu(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Su(e[r],t);return n}function wu(e,t){return Cu(e.properties,t)}function Tu(e,t){return Qa(wu(e,t))}function Eu(e,t){return Jr(e)?R(e.returns,t):Za(t)}function Du(e){return Os(Ks(e))}function Ou(e,t,n){return R({[z]:`Record`,type:`object`,patternProperties:{[e]:t}},n)}function ku(e,t,n){let r={};for(let n of e)r[n]=t;return Cs(r,{...n,[Rr]:`Record`})}function Au(e,t,n){return Oo(e)?ku(es(e),t,n):Ou(e.pattern,t,n)}function ju(e,t,n){return ku(es(so(e)),t,n)}function Mu(e,t,n){return ku([e.toString()],t,n)}function Nu(e,t,n){return Ou(e.source,t,n)}function Pu(e,t,n){return Ou(mr(e.pattern)?Pa:e.pattern,t,n)}function Fu(e,t,n){return Ou(Pa,t,n)}function Iu(e,t,n){return Ou(Fa,t,n)}function Lu(e,t,n){return Cs({true:t,false:t},n)}function Ru(e,t,n){return Ou(Na,t,n)}function zu(e,t,n){return Ou(Na,t,n)}function Bu(e,t,n={}){return xi(e)?ju(e.anyOf,t,n):gi(e)?Au(e,t,n):ni(e)?Mu(e.const,t,n):Kr(e)?Lu(e,t,n):Zr(e)?Ru(e,t,n):ci(e)?zu(e,t,n):pi(e)?Nu(e,t,n):mi(e)?Pu(e,t,n):Vr(e)?Fu(e,t,n):ai(e)?Iu(e,t,n):Za(n)}function Vu(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function Hu(e){let t=Vu(e);return t===Pa?Bo():t===Na?zo():Bo({pattern:t})}function Uu(e){return e.patternProperties[Vu(e)]}function Wu(e,t){return t.parameters=id(e,t.parameters),t.returns=ad(e,t.returns),t}function Gu(e,t){return t.parameters=id(e,t.parameters),t.returns=ad(e,t.returns),t}function Ku(e,t){return t.allOf=id(e,t.allOf),t}function qu(e,t){return t.anyOf=id(e,t.anyOf),t}function Ju(e,t){return mr(t.items)||(t.items=id(e,t.items)),t}function Yu(e,t){return t.items=ad(e,t.items),t}function Xu(e,t){return t.items=ad(e,t.items),t}function Zu(e,t){return t.items=ad(e,t.items),t}function Qu(e,t){return t.item=ad(e,t.item),t}function $u(e,t){let n=rd(e,t.properties);return{...t,...Cs(n)}}function ed(e,t){let n=Bu(ad(e,Hu(t)),ad(e,Uu(t)));return{...t,...n}}function td(e,t){return t.index in e?e[t.index]:Rc()}function nd(e,t){let n=zr(t),r=Br(t),i=ad(e,t);return n&&r?Du(i):n&&!r?Os(i):!n&&r?Ks(i):i}function rd(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:nd(e,t[r])}),{})}function id(e,t){return t.map(t=>ad(e,t))}function ad(e,t){return Jr(t)?Wu(e,t):Xr(t)?Gu(e,t):Qr(t)?Ku(e,t):xi(t)?qu(e,t):yi(t)?Ju(e,t):Ur(t)?Yu(e,t):Wr(t)?Xu(e,t):$r(t)?Zu(e,t):ui(t)?Qu(e,t):li(t)?$u(e,t):di(t)?ed(e,t):Hr(t)?td(e,t):t}function od(e,t){return ad(t,Sr(e))}function sd(e){return R({[z]:`Integer`,type:`integer`},e)}function cd(e,t,n){return{[e]:yd(Io(e),t,xr(n))}}function ld(e,t,n){return e.reduce((e,r)=>({...e,...cd(r,t,n)}),{})}function ud(e,t,n){return ld(e.keys,t,n)}function dd(e,t,n){return Qa(ud(e,t,n))}function fd(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join(``)}function pd(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join(``)}function md(e){return e.toUpperCase()}function hd(e){return e.toLowerCase()}function gd(e,t,n){let r=So(e.pattern);return Do(r)?Xo([so(vd([...Po(r)].map(e=>Io(e)),t))],n):{...e,pattern:_d(e.pattern,t)}}function _d(e,t){return typeof e==`string`?t===`Uncapitalize`?fd(e):t===`Capitalize`?pd(e):t===`Uppercase`?md(e):t===`Lowercase`?hd(e):e:e.toString()}function vd(e,t){return e.map(e=>yd(e,t))}function yd(e,t,n={}){return ri(e)?dd(e,t,n):gi(e)?gd(e,t,n):xi(e)?so(vd(e.anyOf,t),n):ni(e)?Io(_d(e.const,t),n):R(e,n)}function bd(e,t={}){return yd(e,`Capitalize`,t)}function xd(e,t={}){return yd(e,`Lowercase`,t)}function Sd(e,t={}){return yd(e,`Uncapitalize`,t)}function Cd(e,t={}){return yd(e,`Uppercase`,t)}function wd(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Pd(e[i],t,xr(n));return r}function Td(e,t,n){return wd(e.properties,t,n)}function Ed(e,t,n){return Qa(Td(e,t,n))}function Dd(e,t){return e.map(e=>Nd(e,t))}function Od(e,t){return e.map(e=>Nd(e,t))}function kd(e,t){let{[t]:n,...r}=e;return r}function Ad(e,t){return t.reduce((e,t)=>kd(e,t),e)}function jd(e,t,n){let r=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(Ad(n,t),r)}function Md(e){return so(e.reduce((e,t)=>ti(t)?[...e,Io(t)]:e,[]))}function Nd(e,t){return Qr(e)?nc(Dd(e.allOf,t)):xi(e)?so(Od(e.anyOf,t)):li(e)?jd(e,t,e.properties):Cs({})}function Pd(e,t,n){let r=tr(t)?Md(t):t,i=Di(t)?es(t):t,a=fi(e),o=fi(t);return ii(e)?Ed(e,i,n):ri(t)?Rd(e,t,n):a&&o||!a&&o||a&&!o?Ja(`Omit`,[e,r],n):R({...Nd(e,i),...n})}function Fd(e,t,n){return{[t]:Pd(e,[t],xr(n))}}function Id(e,t,n){return t.reduce((t,r)=>({...t,...Fd(e,r,n)}),{})}function Ld(e,t,n){return Id(e,t.keys,n)}function Rd(e,t,n){return Qa(Ld(e,t,n))}function zd(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Jd(e[i],t,xr(n));return r}function Bd(e,t,n){return zd(e.properties,t,n)}function Vd(e,t,n){return Qa(Bd(e,t,n))}function Hd(e,t){return e.map(e=>qd(e,t))}function Ud(e,t){return e.map(e=>qd(e,t))}function Wd(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Gd(e,t,n){let r=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(Wd(n,t),r)}function Kd(e){return so(e.reduce((e,t)=>ti(t)?[...e,Io(t)]:e,[]))}function qd(e,t){return Qr(e)?nc(Hd(e.allOf,t)):xi(e)?so(Ud(e.anyOf,t)):li(e)?Gd(e,t,e.properties):Cs({})}function Jd(e,t,n){let r=tr(t)?Kd(t):t,i=Di(t)?es(t):t,a=fi(e),o=fi(t);return ii(e)?Vd(e,i,n):ri(t)?Qd(e,t,n):a&&o||!a&&o||a&&!o?Ja(`Pick`,[e,r],n):R({...qd(e,i),...n})}function Yd(e,t,n){return{[t]:Jd(e,[t],xr(n))}}function Xd(e,t,n){return t.reduce((t,r)=>({...t,...Yd(e,r,n)}),{})}function Zd(e,t,n){return Xd(e,t.keys,n)}function Qd(e,t,n){return Qa(Zd(e,t,n))}function $d(e,t){return Ja(`Partial`,[Ja(e,t)])}function ef(e){return Ja(`Partial`,[rc(e)])}function tf(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Ks(e[n]);return t}function nf(e,t){let n=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(tf(t),n)}function rf(e){return e.map(e=>af(e))}function af(e){return qr(e)?$d(e.target,e.parameters):fi(e)?ef(e.$ref):Qr(e)?nc(rf(e.allOf)):xi(e)?so(rf(e.anyOf)):li(e)?nf(e,e.properties):Gr(e)||Kr(e)||Zr(e)||ni(e)||si(e)||ci(e)||mi(e)||hi(e)||bi(e)?e:Cs({})}function of(e,t){return ii(e)?lf(e,t):R({...af(e),...t})}function sf(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=of(e[r],xr(t));return n}function cf(e,t){return sf(e.properties,t)}function lf(e,t){return Qa(cf(e,t))}function uf(e,t){return Ja(`Required`,[Ja(e,t)])}function df(e){return Ja(`Required`,[rc(e)])}function ff(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Xa(e[n],[Lr]);return t}function pf(e,t){let n=Xa(e,[Fr,`$id`,`required`,`properties`]);return Cs(ff(t),n)}function mf(e){return e.map(e=>hf(e))}function hf(e){return qr(e)?uf(e.target,e.parameters):fi(e)?df(e.$ref):Qr(e)?nc(mf(e.allOf)):xi(e)?so(mf(e.anyOf)):li(e)?pf(e,e.properties):Gr(e)||Kr(e)||Zr(e)||ni(e)||si(e)||ci(e)||mi(e)||hi(e)||bi(e)?e:Cs({})}function gf(e,t){return ii(e)?yf(e,t):R({...hf(e),...t})}function _f(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gf(e[r],t);return n}function vf(e,t){return _f(e.properties,t)}function yf(e,t){return Qa(vf(e,t))}function bf(e,t){return t.map(t=>fi(t)?xf(e,t.$ref):Hf(e,t))}function xf(e,t){return t in e?fi(e[t])?xf(e,e[t].$ref):Hf(e,e[t]):Za()}function Sf(e){return uc(e[0])}function Cf(e){return hs(e[0],e[1])}function wf(e){return wc(e[0])}function Tf(e){return of(e[0])}function Ef(e){return Pd(e[0],e[1])}function Df(e){return Jd(e[0],e[1])}function Of(e){return gf(e[0])}function kf(e,t,n){let r=bf(e,n);return t===`Awaited`?Sf(r):t===`Index`?Cf(r):t===`KeyOf`?wf(r):t===`Partial`?Tf(r):t===`Omit`?Ef(r):t===`Pick`?Df(r):t===`Required`?Of(r):Za()}function Af(e,t){return Ga(Hf(e,t))}function jf(e,t){return qa(Hf(e,t))}function Mf(e,t,n){return $a(Vf(e,t),Hf(e,n))}function Nf(e,t,n){return eo(Vf(e,t),Hf(e,n))}function Pf(e,t){return nc(Vf(e,t))}function Ff(e,t){return bs(Hf(e,t))}function If(e,t){return Cs(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Hf(e,t[r])}),{}))}function Lf(e,t){let[n,r]=[Hf(e,Uu(t)),Vu(t)],i=Sr(t);return i.patternProperties[r]=n,i}function Rf(e,t){return fi(t)?{...xf(e,t.$ref),[Fr]:t[Fr]}:t}function zf(e,t){return Ms(Vf(e,t))}function Bf(e,t){return so(Vf(e,t))}function Vf(e,t){return t.map(t=>Hf(e,t))}function Hf(e,t){return Br(t)?R(Hf(e,Xa(t,[Lr])),t):zr(t)?R(Hf(e,Xa(t,[Ir])),t):vi(t)?R(Rf(e,t),t):Ur(t)?R(Af(e,t.items),t):Wr(t)?R(jf(e,t.items),t):qr(t)?R(kf(e,t.target,t.parameters)):Jr(t)?R(Mf(e,t.parameters,t.returns),t):Xr(t)?R(Nf(e,t.parameters,t.returns),t):Qr(t)?R(Pf(e,t.allOf),t):$r(t)?R(Ff(e,t.items),t):li(t)?R(If(e,t.properties),t):di(t)?R(Lf(e,t)):yi(t)?R(zf(e,t.items||[]),t):xi(t)?R(Bf(e,t.anyOf),t):t}function Uf(e,t){return t in e?Hf(e,e[t]):Za()}function Wf(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:Uf(e,n)}),{})}var Gf=class{constructor(e){let t=Wf(e),n=this.WithIdentifiers(t);this.$defs=n}Import(e,t){let n={...this.$defs,[e]:R(this.$defs[e],t)};return R({[z]:`Import`,$defs:n,$ref:e})}WithIdentifiers(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:{...e[n],$id:n}}),{})}};function U(e){return new Gf(e)}function Kf(e,t){return R({[z]:`Not`,not:e},t)}function qf(e,t){return Xr(e)?Ms(e.parameters,t):Za()}var Jf=0;function Yf(e,t={}){mr(t.$id)&&(t.$id=`T${Jf++}`);let n=Sr(e({[z]:`This`,$ref:`${t.$id}`}));return n.$id=t.$id,R({[Rr]:`Recursive`,...n},t)}function Xf(e,t){let n=dr(e)?new globalThis.RegExp(e):e;return R({[z]:`RegExp`,type:`RegExp`,source:n.source,flags:n.flags},t)}function Zf(e){return Qr(e)?e.allOf:xi(e)?e.anyOf:yi(e)?e.items??[]:[]}function Qf(e){return Zf(e)}function $f(e,t){return Xr(e)?R(e.returns,t):Za(t)}var ep=class{constructor(e){this.schema=e}Decode(e){return new tp(this.schema,e)}},tp=class{constructor(e,t){this.schema=e,this.decode=t}EncodeTransform(e,t){let n={Encode:n=>t[Fr].Encode(e(n)),Decode:e=>this.decode(t[Fr].Decode(e))};return{...t,[Fr]:n}}EncodeSchema(e,t){let n={Decode:this.decode,Encode:e};return{...t,[Fr]:n}}Encode(e){return vi(this.schema)?this.EncodeTransform(e,this.schema):this.EncodeSchema(e,this.schema)}};function np(e){return new ep(e)}function rp(e={}){return R({[z]:e[z]??`Unsafe`},e)}function ip(e){return R({[z]:`Void`,type:`void`},e)}var W=s({Any:()=>Wa,Argument:()=>Ka,Array:()=>Ga,AsyncIterator:()=>qa,Awaited:()=>uc,BigInt:()=>Ro,Boolean:()=>Lo,Capitalize:()=>bd,Composite:()=>Mc,Const:()=>Uc,Constructor:()=>$a,ConstructorParameters:()=>Wc,Date:()=>Nc,Enum:()=>Gc,Exclude:()=>gu,Extends:()=>lu,Extract:()=>Su,Function:()=>eo,Index:()=>hs,InstanceType:()=>Eu,Instantiate:()=>od,Integer:()=>sd,Intersect:()=>nc,Iterator:()=>bs,KeyOf:()=>wc,Literal:()=>Io,Lowercase:()=>xd,Mapped:()=>Hs,Module:()=>U,Never:()=>Za,Not:()=>Kf,Null:()=>Pc,Number:()=>zo,Object:()=>Cs,Omit:()=>Pd,Optional:()=>Ks,Parameters:()=>qf,Partial:()=>of,Pick:()=>Jd,Promise:()=>ws,Readonly:()=>Os,ReadonlyOptional:()=>Du,Record:()=>Bu,Recursive:()=>Yf,Ref:()=>rc,RegExp:()=>Xf,Required:()=>gf,Rest:()=>Qf,ReturnType:()=>$f,String:()=>Bo,Symbol:()=>Fc,TemplateLiteral:()=>Xo,Transform:()=>np,Tuple:()=>Ms,Uint8Array:()=>Lc,Uncapitalize:()=>Sd,Undefined:()=>Ic,Union:()=>so,Unknown:()=>Rc,Unsafe:()=>rp,Uppercase:()=>Cd,Void:()=>ip}),ap=Symbol.for(`yaml.alias`),op=Symbol.for(`yaml.document`),sp=Symbol.for(`yaml.map`),cp=Symbol.for(`yaml.pair`),lp=Symbol.for(`yaml.scalar`),up=Symbol.for(`yaml.seq`),dp=Symbol.for(`yaml.node.type`),fp=e=>!!e&&typeof e==`object`&&e[dp]===ap,pp=e=>!!e&&typeof e==`object`&&e[dp]===op,mp=e=>!!e&&typeof e==`object`&&e[dp]===sp,hp=e=>!!e&&typeof e==`object`&&e[dp]===cp,gp=e=>!!e&&typeof e==`object`&&e[dp]===lp,_p=e=>!!e&&typeof e==`object`&&e[dp]===up;function vp(e){if(e&&typeof e==`object`)switch(e[dp]){case sp:case up:return!0}return!1}function yp(e){if(e&&typeof e==`object`)switch(e[dp]){case ap:case sp:case lp:case up:return!0}return!1}var bp=e=>(gp(e)||vp(e))&&!!e.anchor,xp=Symbol(`break visit`),Sp=Symbol(`skip children`),Cp=Symbol(`remove node`);function wp(e,t){let n=Op(t);pp(e)?Tp(null,e.contents,n,Object.freeze([e]))===Cp&&(e.contents=null):Tp(null,e,n,Object.freeze([]))}wp.BREAK=xp,wp.SKIP=Sp,wp.REMOVE=Cp;function Tp(e,t,n,r){let i=kp(e,t,n,r);if(yp(i)||hp(i))return Ap(e,r,i),Tp(e,i,n,r);if(typeof i!=`symbol`){if(vp(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=Tp(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===xp)return xp;else i===Cp&&(t.items.splice(e,1),--e)}}else if(hp(t)){r=Object.freeze(r.concat(t));let e=Tp(`key`,t.key,n,r);if(e===xp)return xp;e===Cp&&(t.key=null);let i=Tp(`value`,t.value,n,r);if(i===xp)return xp;i===Cp&&(t.value=null)}}return i}async function Ep(e,t){let n=Op(t);pp(e)?await Dp(null,e.contents,n,Object.freeze([e]))===Cp&&(e.contents=null):await Dp(null,e,n,Object.freeze([]))}Ep.BREAK=xp,Ep.SKIP=Sp,Ep.REMOVE=Cp;async function Dp(e,t,n,r){let i=await kp(e,t,n,r);if(yp(i)||hp(i))return Ap(e,r,i),Dp(e,i,n,r);if(typeof i!=`symbol`){if(vp(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await Dp(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===xp)return xp;else i===Cp&&(t.items.splice(e,1),--e)}}else if(hp(t)){r=Object.freeze(r.concat(t));let e=await Dp(`key`,t.key,n,r);if(e===xp)return xp;e===Cp&&(t.key=null);let i=await Dp(`value`,t.value,n,r);if(i===xp)return xp;i===Cp&&(t.value=null)}}return i}function Op(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function kp(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(mp(t))return n.Map?.(e,t,r);if(_p(t))return n.Seq?.(e,t,r);if(hp(t))return n.Pair?.(e,t,r);if(gp(t))return n.Scalar?.(e,t,r);if(fp(t))return n.Alias?.(e,t,r)}function Ap(e,t,n){let r=t[t.length-1];if(vp(r))r.items[e]=n;else if(hp(r))e===`key`?r.key=n:r.value=n;else if(pp(r))r.contents=n;else{let e=fp(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var jp={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},Mp=e=>e.replace(/[!,[\]{}]/g,e=>jp[e]),Np=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Mp(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&yp(e.contents)){let t={};wp(e.contents,(e,n)=>{yp(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
241
241
  `)}};Np.defaultYaml={explicit:!1,version:`1.2`},Np.defaultTags={"!!":`tag:yaml.org,2002:`};function Pp(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function Fp(e,t,n,r){if(r&&typeof r==`object`)if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=Fp(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=Fp(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=Fp(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=Fp(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}return e.call(t,n,r)}function Ip(e,t,n){if(Array.isArray(e))return e.map((e,t)=>Ip(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!bp(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var Lp=class{constructor(e){Object.defineProperty(this,dp,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!pp(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=Ip(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?Fp(i,{"":o},``,o):o}},Rp=class extends Lp{constructor(e){super(ap),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],wp(e,{Node:(e,t)=>{(fp(t)||bp(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(Ip(a,null,t),n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=zp(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(Pp(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function zp(e,t,n){if(fp(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(vp(t)){let r=0;for(let i of t.items){let t=zp(e,i,n);t>r&&(r=t)}return r}else if(hp(t)){let r=zp(e,t.key,n),i=zp(e,t.value,n);return Math.max(r,i)}return 1}var Bp=e=>!e||typeof e!=`function`&&typeof e!=`object`,Vp=class extends Lp{constructor(e){super(lp),this.value=e}toJSON(e,t){return t?.keep?this.value:Ip(this.value,e,t)}toString(){return String(this.value)}};Vp.BLOCK_FOLDED=`BLOCK_FOLDED`,Vp.BLOCK_LITERAL=`BLOCK_LITERAL`,Vp.PLAIN=`PLAIN`,Vp.QUOTE_DOUBLE=`QUOTE_DOUBLE`,Vp.QUOTE_SINGLE=`QUOTE_SINGLE`;var Hp=`tag:yaml.org,2002:`;function Up(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function Wp(e,t,n){if(pp(e)&&(e=e.contents),yp(e))return e;if(hp(e)){let t=n.schema[sp].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??=i(e),new Rp(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=Hp+t.slice(2));let l=Up(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new Vp(e);return c&&(c.node=t),t}l=e instanceof Map?o[sp]:Symbol.iterator in Object(e)?o[up]:o[sp]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new Vp(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function Gp(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return Wp(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var Kp=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,qp=class extends Lp{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>yp(t)||hp(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Kp(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(vp(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,Gp(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(vp(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&gp(i)?i.value:i:vp(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!hp(t))return!1;let n=t.value;return n==null||e&&gp(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return vp(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(vp(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,Gp(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},Jp=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function Yp(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var Xp=(e,t,n)=>e.endsWith(`
242
242
  `)?Yp(n,t):n.includes(`
243
243
  `)?`
@@ -273,7 +273,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
273
273
  `}}return e?(p+=`
274
274
  `+Yp(l(e),c),s&&s()):d&&o&&o(),p}function Am({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(yp(i))i.spaceBefore&&d.push(``),jm(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(hp(i)){let e=yp(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),jm(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=yp(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=hm(i,c,()=>a=null);l||=d.length>u||o.includes(`
275
275
  `),n<e.length-1?o+=`,`:t.options.trailingComma&&(t.options.lineWidth>0&&(l||=d.reduce((e,t)=>e+t.length+2,2)+(o.length+2)>t.options.lineWidth),l&&(o+=`,`)),a&&(o+=Xp(o,r,s(a))),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
276
- `;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function jm({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=Yp(t(r),e);n.push(i.trimStart())}}function Mm(e,t){let n=gp(t)?t.value:t;for(let r of e)if(hp(r)&&(r.key===t||r.key===n||gp(r.key)&&r.key.value===n))return r}var Nm=class extends qp{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(sp,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(Em(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=hp(e)?e:!e||typeof e!=`object`||!(`key`in e)?new Dm(e,e?.value):new Dm(e.key,e.value);let r=Mm(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);gp(r.value)&&Bp(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=Mm(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=Mm(this.items,e)?.value;return(!t&&gp(n)?n.value:n)??void 0}has(e){return!!Mm(this.items,e)}set(e,t){this.add(new Dm(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)wm(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!hp(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Om(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},Pm={collection:`map`,default:!0,nodeClass:Nm,tag:`tag:yaml.org,2002:map`,resolve(e,t){return mp(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>Nm.from(e,t,n)},Fm=class extends qp{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(up,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Im(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=Im(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&gp(r)?r.value:r}has(e){let t=Im(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=Im(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];gp(r)&&Bp(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(Ip(e,String(r++),t));return n}toString(e,t,n){return e?Om(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(Wp(a,void 0,n))}}return i}};function Im(e){let t=gp(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var Lm={collection:`seq`,default:!0,nodeClass:Fm,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return _p(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>Fm.from(e,t,n)};function Rm(e){return typeof e==`bigint`||Number.isInteger(e)}var zm=({value:e})=>JSON.stringify(e),Bm=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:zm},{identify:e=>e==null,createNode:()=>new Vp(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:zm},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:zm},{identify:Rm,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>Rm(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:zm}];[Pm,Lm].concat(Bm,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}});function Vm(e,t,n){let{replacer:r}=n,i=new Fm(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e))if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(Em(o,s,n))}return i}var Hm=class e extends Fm{constructor(){super(),this.add=Nm.prototype.add.bind(this),this.delete=Nm.prototype.delete.bind(this),this.get=Nm.prototype.get.bind(this),this.has=Nm.prototype.has.bind(this),this.set=Nm.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(hp(e)?(r=Ip(e.key,``,t),i=Ip(e.value,r,t)):r=Ip(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=Vm(e,t,n),i=new this;return i.items=r.items,i}};Hm.tag=`tag:yaml.org,2002:omap`;var Um=class e extends Nm{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=hp(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new Dm(e.key,null):new Dm(e,null),Mm(this.items,t.key)||this.items.push(t)}get(e,t){let n=Mm(this.items,e);return!t&&hp(n)?gp(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=Mm(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Dm(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(Em(e,null,n));return i}};Um.tag=`tag:yaml.org,2002:set`;var Wm=Symbol(`break visit`),Gm=Symbol(`skip children`),Km=Symbol(`remove item`);function qm(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),Jm(Object.freeze([]),e,t)}qm.BREAK=Wm,qm.SKIP=Gm,qm.REMOVE=Km,qm.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},qm.parentCollection=(e,t)=>{let n=qm.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function Jm(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=Jm(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===Wm)return Wm;else r===Km&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}var Ym=2e3,Xm=1e4,Zm=W.String({maxLength:Ym}),Qm=W.Array(Zm,{maxItems:32}),$m=W.Integer({minimum:0}),eh=W.Integer({minimum:1}),th=W.String({pattern:`^[a-f0-9]{64}$`}),nh=[`planning:decomposition:start`,`planning:decomposition:unit:queued`,`planning:decomposition:unit:running`,`planning:decomposition:unit:progress`,`planning:decomposition:unit:completed`,`planning:decomposition:unit:skipped`,`planning:decomposition:unit:failed`,`planning:decomposition:schedule`,`planning:decomposition:budget`,`planning:decomposition:compact-handoff`,`planning:decomposition:synthesis:complete`],rh=W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`skipped`),W.Literal(`failed`)]),ih=W.Object({parallelism:eh,maxDepth:eh,maxPromptSourceBytes:eh,maxPromptBytes:eh,maxObservedInputTokens:eh,maxObservedTurns:W.Optional(eh),maxCompactHandoffBytes:eh,maxLocalExplorationToolUses:eh,maxCriteriaPerUnit:eh,maxSubsystemsPerUnit:eh,maxSplitAttemptsPerUnit:eh},{additionalProperties:!1}),ah=W.Object({maxRecursiveDepth:$m,maxPromptSourceBytes:eh,maxPromptBytes:eh,maxObservedInputTokens:eh,maxObservedTurns:W.Optional(eh),maxCompactHandoffBytes:eh,maxLocalExplorationToolUses:eh,maxCriteriaPerUnit:eh,maxSubsystemsPerUnit:eh,maxSplitAttemptsPerUnit:eh},{additionalProperties:!1}),oh=W.Object({promptSourceBytes:W.Optional($m),promptBytes:W.Optional($m),observedInputTokens:W.Optional($m),observedTurns:W.Optional($m),compactHandoffBytes:W.Optional($m),localExplorationToolUses:W.Optional($m),criteriaCount:W.Optional($m),subsystemCount:W.Optional($m),splitAttempts:W.Optional($m),triggeredLimitKeys:W.Array(Zm,{maxItems:32})},{additionalProperties:!1}),sh=W.Object({kind:W.Union([W.Literal(`prd`),W.Literal(`artifact`),W.Literal(`file`),W.Literal(`criteria`),W.Literal(`other`)]),sourceHash:th,path:W.Optional(Zm),headingPath:W.Optional(Qm),startLine:W.Optional(eh),endLine:W.Optional(eh),byteStart:W.Optional($m),byteEnd:W.Optional($m),criteriaIds:W.Array(Zm,{maxItems:64}),byteLength:$m},{additionalProperties:!1}),ch=W.Object({criterionId:Zm,sourceHash:W.Optional(th),coveredByUnitIds:W.Array(Zm,{maxItems:128})},{additionalProperties:!1}),lh=W.Object({criterionId:Zm,reason:Zm,evidence:W.Optional(Zm)},{additionalProperties:!1}),uh=W.Object({totalCriteria:W.Optional($m),omittedCriteriaCount:W.Optional(W.Integer({minimum:0,maximum:Xm})),coveredCriteria:W.Array(ch,{maxItems:64}),unresolvedCriteria:W.Array(lh,{maxItems:32})},{additionalProperties:!1}),dh=W.Object({path:W.Optional(Zm),description:Zm},{additionalProperties:!1}),fh=W.Object({unitId:Zm,parentUnitId:W.Optional(Zm),depth:$m,sourceSlices:W.Array(sh,{maxItems:16}),coverage:uh,subsystemHints:Qm,dependencies:W.Array(Zm,{maxItems:32}),interfaceConstraints:W.Array(dh,{maxItems:32}),sharedFileConstraints:W.Array(dh,{maxItems:32}),budgets:ah,status:rh},{additionalProperties:!1}),ph=W.Object({unitId:Zm,blockedByUnitId:Zm,reason:W.Optional(Zm)},{additionalProperties:!1}),mh=W.Object({unitId:Zm,reasons:W.Array(Zm,{maxItems:32})},{additionalProperties:!1}),hh=W.Object({readyUnitIds:W.Array(Zm,{maxItems:128}),runningUnitIds:W.Array(Zm,{maxItems:128}),waitingUnitIds:W.Array(Zm,{maxItems:128}),waitingReasons:W.Array(mh,{maxItems:128}),selectedBatchUnitIds:W.Array(Zm,{maxItems:128}),parallelism:eh,blockedPairs:W.Array(ph,{maxItems:64})},{additionalProperties:!1}),gh=W.Object({unitId:W.Optional(Zm),attempt:eh,reason:Zm,resultingUnitIds:W.Array(Zm,{maxItems:128}),observed:W.Optional(oh)},{additionalProperties:!1}),_h=W.Object({unitId:Zm,parentUnitId:W.Optional(Zm),depth:$m,budgets:ah,observed:oh,assignedCriteriaIds:W.Array(Zm,{maxItems:64}),unresolvedCriteria:W.Array(lh,{maxItems:32}),blockers:Qm,splitAttempts:W.Array(gh,{maxItems:8})},{additionalProperties:!1}),vh={runId:W.Optional(W.String()),graphId:Zm,rootUnitId:Zm,unitCount:$m,edgeCount:$m,limits:ih},yh=W.Intersect([fh,W.Object({status:W.Literal(`queued`)})]),bh=W.Intersect([fh,W.Object({status:W.Literal(`completed`)})]),xh=W.Intersect([fh,W.Object({status:W.Literal(`skipped`)})]),Sh={unit:yh},Ch={unitId:Zm},wh={unitId:Zm,message:Zm,observed:W.Optional(oh)},Th={unit:bh},Eh={unitId:Zm,reason:Zm,unit:W.Optional(xh)},Dh={unitId:Zm,reason:Zm,evidence:_h},Oh={decision:hh},kh=W.Object({unitId:Zm,budget:ah},{additionalProperties:!1}),Ah={limits:ih,unitId:Zm,unitBudgets:W.Array(kh,{maxItems:128}),observed:W.Optional(oh)},jh={unitId:Zm,artifactPath:Zm,byteLength:$m,contentHash:th,omittedUnitIds:W.Array(Zm,{maxItems:128})},Mh={unitCount:$m,completedUnitCount:$m,failedUnitCount:$m,skippedUnitCount:$m,coverage:uh,artifactPaths:W.Array(Zm,{maxItems:32})},Nh=2e3,Ph=4096,Fh=4096,Ih=3e3,Lh=`eforge-validation-diagnostic-excerpt-bytes`,Rh=`eforge-validation-diagnostic-message-bytes`;La(Lh,e=>zh(e)<=Ph),La(Rh,e=>zh(e)<=Fh);function zh(e){return new TextEncoder().encode(e).length}var Bh=W.String({maxLength:Nh}),Vh=W.Array(Bh,{maxItems:12}),Hh=W.Integer({minimum:0}),Uh=W.Integer({minimum:1}),Wh=W.String({pattern:`^[a-f0-9]{64}$`}),Gh=W.String({maxLength:Ih}),Kh=W.Object({inputTokens:Hh,outputTokens:Hh,turns:Hh,promptBytes:Hh}),qh=W.Object({sourceId:W.Optional(Bh),sourceName:W.Optional(Bh),sourcePath:W.Optional(Bh),buildId:W.Optional(Bh),planSetName:W.Optional(Bh),runId:W.Optional(Bh)}),Jh=W.Object({sourceSummary:W.Optional(Gh),buildGoal:W.Optional(Gh),promptSourceSnippet:W.Optional(Gh)}),Yh=W.Object({relevantFiles:W.Optional(Hh),observedFacts:W.Optional(Hh),importantFindings:W.Optional(Hh),inferredImplementationAreas:W.Optional(Hh),unresolvedQuestions:W.Optional(Hh),toolUses:W.Optional(Hh),toolResults:W.Optional(Hh),toolUseSummaryBytes:W.Optional(Hh),toolResultSnippetBytes:W.Optional(Hh),importantFindingBytes:W.Optional(Hh),messageBytes:W.Optional(Hh),inferredImplementationAreaBytes:W.Optional(Hh),sourceIdBytes:W.Optional(Hh),sourceNameBytes:W.Optional(Hh),sourcePathBytes:W.Optional(Hh),buildIdBytes:W.Optional(Hh),planSetNameBytes:W.Optional(Hh),runIdBytes:W.Optional(Hh),sourceSummaryBytes:W.Optional(Hh),buildGoalBytes:W.Optional(Hh),promptSourceSnippetBytes:W.Optional(Hh),relevantFileBytes:W.Optional(Hh),caveatBytes:W.Optional(Hh)},{additionalProperties:!1}),Xh=W.Union([W.Literal(`none`),W.Literal(`bounded-decomposition`),W.Literal(`manual-reduce-scope`),W.Literal(`repair-existing-artifacts`)]),Zh=W.Union([W.Literal(`live-context-guard`),W.Literal(`provider`),W.Literal(`decomposition`)]),Qh=W.Union([W.Literal(`context-budget`),W.Literal(`context-window`),W.Literal(`context-length`),W.Literal(`scope-too-broad`),W.Literal(`decomposition-exhausted`)]),$h=W.Object({orchestrationExists:W.Boolean(),validPlanCount:Hh,invalidPlanCount:Hh,missingPlanFileCount:Hh,missingPlanFiles:Vh,invalidPlanFiles:Vh}),eg=W.Object({maxPromptBytes:Uh,maxObservedInputTokens:Uh,maxObservedTurns:W.Optional(Uh),maxExplanationBytes:Uh}),tg=W.Union([W.Literal(`registry`),W.Literal(`builtin`),W.Literal(`synthetic`),W.Literal(`fallback`)]),ng=W.Object({provider:W.Optional(W.String()),modelId:W.Optional(W.String()),metadataSource:tg,fallbackReason:W.Optional(Bh),contextWindow:W.Optional(Uh),outputReserveTokens:Uh,overheadReserveTokens:Uh,safetyMargin:W.Number({exclusiveMinimum:0,maximum:1}),limits:eg}),rg=W.Object({maxObservedInputTokens:Hh,softInputTokenThreshold:Hh,plannerMaxTurns:Uh,inspectionTurnBudget:Hh,softInputTokenRatio:W.Number({minimum:0,maximum:1}),softTurnRatio:W.Number({minimum:0,maximum:1}),guardDiagnostics:W.Optional(ng),observed:Kh,toolUseCount:Hh,toolResultCount:Hh}),ig=W.Object({kind:W.Literal(`planner-inspection-handoff`),version:W.Literal(1),source:qh,relevantFiles:W.Array(Bh,{maxItems:40}),observedFacts:W.Array(Bh,{maxItems:16}),importantFindings:W.Array(Bh,{maxItems:12}),inferredImplementationAreas:W.Array(Bh,{maxItems:16}),unresolvedQuestions:W.Array(Bh,{maxItems:8}),sourceBuildContext:Jh,budgetDiagnostics:rg,caveats:W.Array(Bh,{maxItems:8}),omittedCounts:Yh}),ag=W.Object({source:Zh,failureKind:Qh,stage:W.Union([W.Literal(`planner`),W.Literal(`compile`),W.Literal(`planning-decomposition`)]),explanation:Bh,observed:W.Optional(W.Object({inputTokens:W.Optional(Hh),outputTokens:W.Optional(Hh),turns:W.Optional(Hh),promptBytes:W.Optional(Hh)})),guardDiagnostics:W.Optional(ng),decompositionEvidence:W.Optional(_h),recovery:W.Object({action:Xh,eligible:W.Boolean(),attempted:W.Boolean(),attempt:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:1}),reason:Bh}),artifacts:$h}),og=W.Union([W.Literal(`live-context-guard`),W.Literal(`provider`)]),sg=W.Union([W.Literal(`context-budget`),W.Literal(`context-window`),W.Literal(`context-length`),W.Literal(`scope-too-broad`)]),cg=W.Intersect([ag,W.Union([W.Object({source:W.Literal(`decomposition`),failureKind:W.Literal(`decomposition-exhausted`),stage:W.Literal(`planning-decomposition`),decompositionEvidence:_h}),W.Object({source:og,failureKind:sg,decompositionEvidence:W.Optional(W.Never())})])]);Object.assign(cg,{properties:ag.properties}),W.Object({maxMessageBytes:W.Integer({minimum:1}),maxExcerptBytes:W.Integer({minimum:1})}),W.Object({schemaPath:W.String(),expectedType:W.String(),receivedType:W.String(),excerpt:W.String({maxLength:Ph,format:Lh}),payloadBytes:Hh,payloadSha256:Wh,omittedBytes:Hh,truncated:W.Boolean(),message:W.String({maxLength:Fh,format:Rh})});var lg=4096;new Set(nh);var ug=W.Union([W.Literal(`planner`),W.Literal(`builder`),W.Literal(`reviewer`),W.Literal(`review-fixer`),W.Literal(`evaluator`),W.Literal(`plan-reviewer`),W.Literal(`plan-evaluator`),W.Literal(`validation-fixer`),W.Literal(`merge-conflict-resolver`),W.Literal(`staleness-assessor`),W.Literal(`formatter`),W.Literal(`doc-author`),W.Literal(`doc-syncer`),W.Literal(`test-writer`),W.Literal(`tester`),W.Literal(`prd-validator`),W.Literal(`dependency-detector`),W.Literal(`gap-closer`),W.Literal(`recovery-analyst`)]),dg=W.Union([W.Literal(`error_max_turns`),W.Literal(`error_max_budget_usd`),W.Literal(`error_max_structured_output_retries`),W.Literal(`error_during_execution`),W.Literal(`error_pi_tool_infrastructure`),W.Literal(`error_context_window`),W.Literal(`error_transient_transport`)]);W.Union([W.Literal(`code`),W.Literal(`security`),W.Literal(`api`),W.Literal(`docs`),W.Literal(`test`),W.Literal(`verify`)]);var fg=W.String({pattern:`^[a-z][a-z0-9-]{0,63}$`,description:`A review perspective key: lowercase slug starting with a letter, 1–64 chars (e.g. "code", "accessibility")`}),pg=W.Union([W.Literal(`pr`),W.Literal(`merge`),W.Literal(`leave`)]),mg=W.Union([`resolved`,`false_positive`,`unresolved`,`unresolved_blocking`,`unresolved_nonblocking`,`needs_human_review`,`accepted_risk`,`split_to_followup`].map(e=>W.Literal(e)),{description:`Evaluator issue disposition separate from patch action. Missing values are interpreted conservatively by the engine.`}),hg={round:W.Optional(W.Integer({minimum:0}))},gg=W.Union([`builder`,`test-writer`,`existing-only`].map(e=>W.Literal(e)),{description:`Exclusive owner of new acceptance-test authoring for a plan`}),_g=W.String({minLength:1,maxLength:lg,pattern:`\\S`}),vg=W.Union([W.Literal(`addressed`),W.Literal(`deferred`),W.Literal(`obsolete`)]),yg=W.Object({issueId:_g,status:vg,note:W.Optional(W.String({minLength:1,maxLength:lg}))}),bg=W.Literal(`git-spice`),xg=W.Union([W.Literal(`branch-restack`),W.Literal(`stack-restack`),W.Literal(`repo-sync`),W.Literal(`unknown`)]),Sg=W.Union([W.Literal(`git-rebase`),W.Literal(`git-merge`),W.Literal(`unknown`)]),Cg=W.Union([W.Literal(`pr`),W.Literal(`merge`),W.Literal(`leave`)]),wg=W.Union([W.Literal(`pending`),W.Literal(`building`),W.Literal(`built`),W.Literal(`merged`),W.Literal(`landed`),W.Literal(`failed`)]),Tg=W.Object({branch:W.String(),commitSha:W.Optional(W.String()),prUrl:W.Optional(W.String())}),Eg=W.Union([W.Literal(`started`),W.Literal(`complete`),W.Literal(`skipped`),W.Literal(`failed`)]),Dg=W.Object({action:Cg,status:Eg,prUrl:W.Optional(W.String()),reason:W.Optional(W.String()),originalBaseBranch:W.Optional(W.String()),effectiveBaseBranch:W.Optional(W.String()),baseRepairReason:W.Optional(W.Literal(`parent-artifact-already-integrated`)),startedAt:W.String(),completedAt:W.Optional(W.String())}),Og=W.Object({prdId:W.String(),stackId:W.String(),parentPrdId:W.Optional(W.String()),provider:bg,branch:W.String(),baseBranch:W.Optional(W.String()),artifact:W.Optional(Tg),landingAction:W.Optional(Cg),landing:W.Optional(Dg),status:wg,recordedAt:W.String(),updatedAt:W.String()}),kg=W.Union([W.Literal(`proceed`),W.Literal(`revise`),W.Literal(`obsolete`)]),Ag=W.Object({verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)]),confidence:W.Union([W.Literal(`low`),W.Literal(`medium`),W.Literal(`high`)]),rationale:W.String(),completedWork:W.Array(W.String()),remainingWork:W.Array(W.String()),risks:W.Array(W.String()),partial:W.Optional(W.Boolean()),recoveryError:W.Optional(W.String()),recommendationSource:W.Optional(W.Union([W.Literal(`deterministic`),W.Literal(`analyst`),W.Literal(`manual-fallback`)])),recommendationRationale:W.Optional(W.String()),verdictInvalidationReason:W.Optional(W.String())}),jg=W.Object({id:W.String(),roots:W.Optional(W.Array(W.String())),files:W.Optional(W.Array(W.String()))}),Mg=W.Union([W.String(),W.Array(W.String())]);W.Union([W.Literal(`queue-dispatch`),W.Literal(`plan-merge`),W.Literal(`final-merge`)]),W.Union([W.Literal(`beforeQueueDispatch`),W.Literal(`beforePlanMerge`),W.Literal(`beforeFinalMerge`)]);var Ng=W.Union([W.Literal(`fail-open`),W.Literal(`fail-closed`)]),Pg={decision:W.Literal(`allow`),reason:W.Optional(W.String())},Fg={decision:W.Literal(`block`),reason:W.String({minLength:1})},Ig={decision:W.Literal(`require-approval`),reason:W.String({minLength:1})},Lg={extensionName:W.String(),extensionPath:W.String(),registrationIndex:W.Integer({minimum:0}),failurePolicy:Ng},Rg={gateKind:W.Literal(`queue-dispatch`),method:W.Literal(`beforeQueueDispatch`),...Lg,prdId:W.String(),prdTitle:W.Optional(W.String())},zg={gateKind:W.Literal(`plan-merge`),method:W.Literal(`beforePlanMerge`),...Lg,planId:W.String()},Bg={gateKind:W.Literal(`final-merge`),method:W.Literal(`beforeFinalMerge`),...Lg,featureBranch:W.String(),baseBranch:W.String(),planIds:W.Optional(W.Array(W.String()))},Vg=W.Object({strategy:W.Union([W.Literal(`auto`),W.Literal(`single`),W.Literal(`parallel`)]),perspectives:W.Array(fg),maxRounds:W.Number(),evaluatorStrictness:W.Union([W.Literal(`strict`),W.Literal(`standard`),W.Literal(`lenient`)])}),Hg=W.Object({compile:W.Array(W.String()),defaultBuild:W.Array(Mg),defaultReview:Vg,rationale:W.String()}),Ug=W.Object({requirement:W.String(),explanation:W.String(),complexity:W.Optional(W.Union([W.Literal(`trivial`),W.Literal(`moderate`),W.Literal(`significant`)]))}),Wg=W.Object({criterion:W.String({minLength:1}),verdict:W.Union([W.Literal(`pass`),W.Literal(`fail`),W.Literal(`unknown`)]),evidence:W.String({minLength:1})}),Gg=W.Object({criterion:W.String({minLength:1}),evidence:W.String({minLength:1}),conflictsWith:W.String({minLength:1}),scope:W.Union([W.Literal(`narrow`),W.Literal(`broad`),W.Literal(`unknown`)]),recommendedAction:W.Union([W.Literal(`revise_acceptance_criteria`),W.Literal(`manual_review`)])}),Kg=W.Object({status:W.Union([W.Literal(`completed`),W.Literal(`failed`),W.Literal(`skipped`)]),summary:W.String()}),qg=W.Object({id:W.String(),question:W.String(),context:W.Optional(W.String()),options:W.Optional(W.Array(W.String())),default:W.Optional(W.String())}),Jg=W.Union([W.Literal(`narrow`),W.Literal(`structural`),W.Literal(`manual`),W.Literal(`followup`)]),Yg=W.Union([W.Literal(`result`),W.Literal(`command`),W.Literal(`timeout`),W.Literal(`exception`),W.Literal(`unexpected-return`)]),Xg=W.Recursive(e=>W.Union([W.Null(),W.Boolean(),W.Number(),W.String({maxLength:lg}),W.Array(e),W.Record(W.String(),e)])),Zg=W.Object({issueId:W.Optional(_g),severity:W.Union([W.Literal(`critical`),W.Literal(`warning`),W.Literal(`suggestion`)]),category:W.String(),file:W.String(),line:W.Optional(W.Number()),description:W.String(),fix:W.Optional(W.String()),retryGuidance:W.Optional(W.String()),failureKind:W.Optional(W.String()),repairClass:W.Optional(Jg),metadata:W.Optional(W.Record(W.String(),Xg)),validationProviderName:W.Optional(W.String()),runtimeFailureKind:W.Optional(Yg)}),Qg=W.Object({severity:W.Union([W.Literal(`critical`),W.Literal(`warning`)]),category:W.Union([W.Literal(`production-bug`),W.Literal(`missing-behavior`),W.Literal(`regression`)]),file:W.String(),testFile:W.String(),description:W.String(),testOutput:W.Optional(W.String()),fix:W.Optional(W.String())}),$g=W.Object({id:W.String(),name:W.String(),dependsOn:W.Array(W.String()),branch:W.String(),migrations:W.Optional(W.Array(W.Object({timestamp:W.String(),description:W.String()}))),agents:W.Optional(W.Record(W.String(),W.Object({effort:W.Optional(W.String()),thinking:W.Optional(W.Union([W.Boolean(),W.Record(W.String(),W.Unknown())])),rationale:W.Optional(W.String()),tier:W.Optional(W.String()),shards:W.Optional(W.Array(jg))}))),body:W.String(),filePath:W.String(),warnings:W.Optional(W.Array(W.String()))}),e_=W.Object({id:W.String(),name:W.String(),dependsOn:W.Array(W.String()),branch:W.String(),build:W.Array(Mg),review:Vg,testOwnership:W.Optional(gg),maxContinuations:W.Optional(W.Number()),allowNoOpMerge:W.Optional(W.Boolean()),agents:W.Optional(W.Record(W.String(),W.Object({effort:W.Optional(W.String()),thinking:W.Optional(W.Union([W.Boolean(),W.Record(W.String(),W.Unknown())])),rationale:W.Optional(W.String()),tier:W.Optional(W.String())})))}),t_=W.Object({name:W.String(),description:W.String(),created:W.String(),baseBranch:W.String(),diffBaseRef:W.Optional(W.String()),pipeline:Hg,plans:W.Array(e_),validate:W.Optional(W.Array(W.String())),warnings:W.Optional(W.Array(W.String()))}),n_=W.Object({label:W.String(),content:W.Optional(W.String()),path:W.Optional(W.String())}),r_=W.Object({id:W.String(),name:W.String(),body:W.String(),dependsOn:W.Array(W.String()),branch:W.Optional(W.String()),build:W.Optional(W.Array(Mg)),review:W.Optional(Vg),testOwnership:W.Optional(gg)}),i_=W.Object({type:W.Literal(`build:resume:artifacts`),prdId:W.String(),setName:W.String(),featureBranch:W.String(),artifactSource:W.Union([W.Literal(`merge-worktree`),W.Literal(`branch-history`)]),artifactCommit:W.Optional(W.String()),source:n_,orchestration:t_,plans:W.Array(r_)}),a_=W.Union([W.Literal(`pending`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`blocked`),W.Literal(`merged`)]),o_=W.Object({status:a_,worktreePath:W.Optional(W.String()),branch:W.String(),dependsOn:W.Array(W.String()),merged:W.Boolean(),error:W.Optional(W.String())});W.Object({setName:W.String(),status:W.Union([W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`)]),startedAt:W.String(),completedAt:W.Optional(W.String()),baseBranch:W.String(),featureBranch:W.Optional(W.String()),worktreeBase:W.String(),mergeWorktreePath:W.Optional(W.String()),plans:W.Record(W.String(),o_),completedPlans:W.Array(W.String())});var s_=W.Object({durationMs:W.Number(),durationApiMs:W.Number(),numTurns:W.Number(),totalCostUsd:W.Number(),usage:W.Object({input:W.Number(),output:W.Number(),total:W.Number(),cacheRead:W.Number(),cacheCreation:W.Number()}),modelUsage:W.Record(W.String(),W.Object({inputTokens:W.Number(),outputTokens:W.Number(),cacheReadInputTokens:W.Number(),cacheCreationInputTokens:W.Number(),costUSD:W.Number()})),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),provider:W.Optional(W.String()),resultText:W.Optional(W.String())}),c_=W.Object({valid:W.Array(W.String()),missing:W.Array(W.String()),corrupt:W.Array(W.String()),cleared:W.Array(W.String())});W.Object({running:W.Boolean(),setName:W.Optional(W.String()),plans:W.Record(W.String(),a_),completedPlans:W.Array(W.String())});var l_=W.Object({sha:W.String(),subject:W.String(),author:W.String(),date:W.String()}),u_=W.Object({planId:W.String(),status:W.String(),mergedAt:W.Optional(W.String()),error:W.Optional(W.String()),terminalSubtype:W.Optional(W.String()),commitSha:W.Optional(W.String()),testPassed:W.Optional(W.Integer({minimum:0})),testFailed:W.Optional(W.Integer({minimum:0})),completedAt:W.Optional(W.String()),toolUseCount:W.Optional(W.Integer({minimum:0}))}),d_=W.Object({planId:W.String(),agentId:W.Optional(W.String()),agentRole:W.Optional(W.String()),errorMessage:W.Optional(W.String()),terminalSubtype:W.Optional(W.String()),toolUseCount:W.Optional(W.Integer({minimum:0}))}),f_=W.Union([W.Literal(`accept`),W.Literal(`reject`),W.Literal(`review`)]),p_=W.Object({file:W.String(),action:f_,reason:W.String(),hunk:W.Optional(W.Integer({minimum:1})),issueOutcome:W.Optional(mg),retryGuidance:W.Optional(W.String()),issueIds:W.Optional(W.Array(_g))}),m_=W.Object({planId:W.String(),issues:W.Array(Zg),evaluation:W.Optional(W.Object({accepted:W.Integer({minimum:0}),rejected:W.Integer({minimum:0}),review:W.Integer({minimum:0}),verdicts:W.Array(p_)}))}),h_=W.Union([W.Literal(`plan`),W.Literal(`post-merge-validation`),W.Literal(`prd-validation`),W.Literal(`acceptance-validation`),W.Literal(`artifact-recording`),W.Literal(`landing`),W.Literal(`daemon`),W.Literal(`compile`),W.Literal(`unknown`)]),g_=W.Object({status:W.String(),action:W.Optional(W.String()),reason:W.Optional(W.String())}),__=W.Object({scope:h_,message:W.String(),authoritative:W.Boolean(),planId:W.Optional(W.String()),terminalSubtype:W.Optional(dg),stage:W.Optional(W.String()),phaseSummary:W.Optional(W.String()),phaseStatus:W.Optional(W.String()),eventType:W.Optional(W.String()),sourceEventType:W.Optional(W.String()),sourceEventId:W.Optional(W.Integer()),sourceEventTimestamp:W.Optional(W.String()),landing:W.Optional(g_),validationPassed:W.Optional(W.Boolean()),prdValidationPassed:W.Optional(W.Boolean()),acceptanceValidationPassed:W.Optional(W.Boolean())}),v_=W.Object({prdId:W.String(),setName:W.String(),featureBranch:W.String(),baseBranch:W.String(),plans:W.Array(u_),failingPlan:d_,landedCommits:W.Array(l_),diffStat:W.String(),modelsUsed:W.Array(W.String()),failedAt:W.String(),partial:W.Optional(W.Boolean()),prdContent:W.Optional(W.String()),terminalFailure:W.Optional(W.Partial(__)),acceptanceValidation:W.Optional(W.Object({passed:W.Boolean(),total:W.Number(),pass:W.Number(),fail:W.Number(),unknown:W.Number(),verdicts:W.Array(Wg),waivers:W.Optional(W.Array(W.String())),conflicts:W.Optional(W.Array(Gg))})),validationCommands:W.Optional(W.Array(W.Object({command:W.String(),exitCode:W.Number(),output:W.Optional(W.String())}))),landing:W.Optional(g_),failingPlans:W.Optional(W.Array(d_)),reviewFailure:W.Optional(m_)}),y_=W.Object({allowed:W.Boolean(),reason:W.Optional(W.String())}),b_=W.Object({priority:y_,remove:y_,dependencyOverride:y_,hold:y_,unhold:y_,cascadeRemove:y_,cancel:y_,cascadeCancel:y_}),x_=W.Object({held:W.Boolean(),reason:W.Optional(W.String()),heldAt:W.Optional(W.String())}),S_=W.Object({label:W.String()},{additionalProperties:!1}),C_=W.Object({executable:W.String(),args:W.Array(W.String())},{additionalProperties:!1}),w_=W.Object({runId:W.String(),sessionId:W.Optional(W.String()),sourceLabel:W.String(),provenance:W.Optional(S_),failureReason:W.String(),failedAt:W.String(),canReenqueue:W.Boolean(),disabledReason:W.Optional(W.String()),nextCommand:C_,resolvedAt:W.Optional(W.String())},{additionalProperties:!1}),T_=W.Union([W.Literal(`enabled`),W.Literal(`disabled`)]),E_=W.Union([W.Literal(`disabled`),W.Literal(`starting`),W.Literal(`running`),W.Literal(`paused`),W.Literal(`stopping`),W.Literal(`restarting`),W.Literal(`faulted`)]),D_=W.Object({alive:W.Boolean(),paused:W.Boolean(),lastMutationReason:W.Optional(W.String()),runningCount:W.Optional(W.Number()),limit:W.Optional(W.Number())}),G=W.Object({at:W.String(),previousMode:E_,nextMode:E_,desired:T_,reason:W.Optional(W.String()),source:W.String()}),O_=W.Union([W.Literal(`disabled`),W.Literal(`attempt-budget-exhausted`),W.Literal(`not-continue-repair`),W.Literal(`not-high-confidence`),W.Literal(`not-eligible`),W.Literal(`manual-confirmation-required`),W.Literal(`partial-sidecar`),W.Literal(`malformed-sidecar`),W.Literal(`missing-sidecar`),W.Literal(`ineligible-artifacts`),W.Literal(`dirty-worktree`),W.Literal(`conflicting-worktree`),W.Literal(`queue-preflight-blocked`),W.Literal(`conflicting-applied-marker`),W.Literal(`active-gate-or-hold`),W.Literal(`repeated-failure-signature`),W.Literal(`error`)]),k_=W.Object({enabled:W.Boolean(),maxAttempts:W.Integer({minimum:0}),attempts:W.Integer({minimum:0}),lastDecision:W.Optional(W.Union([W.Literal(`evaluate`),W.Literal(`queued`),W.Literal(`stopped`)])),prdId:W.Optional(W.String()),setName:W.Optional(W.String()),stopReason:W.Optional(O_),message:W.Optional(W.String())}),A_={desired:W.Optional(T_),mode:W.Optional(E_),scheduler:W.Optional(D_),lastTransition:W.Optional(G),reason:W.Optional(W.String()),recoveryAutoResume:W.Optional(k_)},j_=W.Union([W.Object({kind:W.Literal(`build-pipeline-chosen`),rationale:W.String(),defaultBuild:W.Array(Mg,{minItems:1})}),W.Object({kind:W.Literal(`review-profile-chosen`),rationale:W.String(),strategy:W.Union([W.Literal(`auto`),W.Literal(`single`),W.Literal(`parallel`)]),perspectives:W.Array(fg,{minItems:1}),maxRounds:W.Integer({minimum:1}),evaluatorStrictness:W.Union([W.Literal(`strict`),W.Literal(`standard`),W.Literal(`lenient`)])}),W.Object({kind:W.Literal(`plan-set-shape`),rationale:W.String(),planCount:W.Integer({minimum:1}),planIds:W.Array(W.String(),{minItems:1})})]),M_=W.Object({type:W.Literal(`planning:decision`),planId:W.Optional(W.String()),decision:j_}),N_=W.Union([W.Object({kind:W.Literal(`review-strategy`),rationale:W.String(),strategy:W.Union([W.Literal(`single`),W.Literal(`parallel`)]),source:W.Union([W.Literal(`config`),W.Literal(`auto-threshold`)]),auto:W.Optional(W.Object({files:W.Integer({minimum:0}),lines:W.Integer({minimum:0}),threshold:W.Object({files:W.Integer({minimum:0}),lines:W.Integer({minimum:0})})}))}),W.Object({kind:W.Literal(`perspectives-inferred`),rationale:W.String(),perspectives:W.Array(fg),categories:W.Array(W.String()),rules:W.Array(W.String())}),W.Object({kind:W.Literal(`cycle-terminated`),rationale:W.String(),round:W.Integer({minimum:0}),reason:W.Union([W.Literal(`no-issues`),W.Literal(`max-rounds`)]),issuesRemaining:W.Integer({minimum:0}),lastReviewIssueCount:W.Optional(W.Integer({minimum:0})),finalEvaluationAccepted:W.Optional(W.Integer({minimum:0})),finalEvaluationRejected:W.Optional(W.Integer({minimum:0})),finalEvaluationRan:W.Optional(W.Boolean()),finalEvaluationResolved:W.Optional(W.Integer({minimum:0})),finalEvaluationFalsePositive:W.Optional(W.Integer({minimum:0})),finalEvaluationUnresolved:W.Optional(W.Integer({minimum:0})),finalEvaluationNeedsHumanReview:W.Optional(W.Integer({minimum:0})),finalEvaluationBlocking:W.Optional(W.Integer({minimum:0}))}),W.Object({kind:W.Literal(`perspectives-respawned`),rationale:W.String(),round:W.Integer({minimum:0}),perspectives:W.Array(fg),dropped:W.Array(fg)}),W.Object({kind:W.Literal(`evaluator-strictness`),rationale:W.String(),strictness:W.Union([W.Literal(`strict`),W.Literal(`standard`),W.Literal(`lenient`)]),source:W.Union([W.Literal(`config`),W.Literal(`default`)])}),W.Object({kind:W.Literal(`recovery-verdict`),rationale:W.String(),verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)])}),W.Object({kind:W.Literal(`merge-conflict-resolution`),rationale:W.String(),strategy:W.String(),files:W.Array(W.String())})]),P_=W.Union([W.Literal(`stacking-validation`),W.Literal(`policy-gate`),W.Literal(`profile-routing`),W.Literal(`dispatch`)]),F_=[W.Object({type:W.Literal(`queue:start`),prdCount:W.Number(),dir:W.String()}),W.Object({type:W.Literal(`queue:prd:start`),prdId:W.String(),title:W.String()}),W.Object({type:W.Literal(`queue:prd:discovered`),prdId:W.String(),title:W.String(),dependsOn:W.Optional(W.Array(W.String()))}),W.Object({type:W.Literal(`queue:prd:dependency-overridden`),prdId:W.String(),title:W.String(),removedDependency:W.String(),previousDependsOn:W.Array(W.String()),currentDependsOn:W.Array(W.String()),reason:W.Optional(W.String())}),W.Object({type:W.Literal(`queue:prd:removed`),prdId:W.String(),previousStatus:W.Union([W.Literal(`pending`),W.Literal(`waiting`),W.Literal(`failed`),W.Literal(`skipped`)]),removedSidecars:W.Optional(W.Array(W.String()))}),W.Object({type:W.Literal(`queue:prd:stale`),prdId:W.String(),title:W.String(),verdict:kg,justification:W.String(),revision:W.Optional(W.String())}),W.Object({type:W.Literal(`queue:prd:skip`),prdId:W.String(),reason:W.String()}),W.Object({type:W.Literal(`queue:prd:dispatch-failed`),prdId:W.String(),title:W.String(),reason:W.String(),stage:P_}),W.Object({type:W.Literal(`queue:prd:commit-failed`),prdId:W.String(),title:W.String(),error:W.String()}),W.Object({type:W.Literal(`queue:prd:complete`),prdId:W.String(),status:W.Union([W.Literal(`completed`),W.Literal(`failed`),W.Literal(`skipped`)])}),W.Object({type:W.Literal(`queue:complete`),processed:W.Number(),skipped:W.Number()})];W.Union([...F_]);var I_=W.Union([W.Literal(`default`),W.Literal(`rule`),W.Literal(`extension-router`),W.Literal(`fallback`)]),L_=W.Union([W.Literal(`no-match`),W.Literal(`router-declined`),W.Literal(`router-timeout`),W.Literal(`router-error`),W.Literal(`router-invalid-choice`)]),R_={planId:W.Optional(W.String()),agentId:W.String(),agent:ug,model:W.String(),harness:W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)]),harnessSource:W.Literal(`tier`),tier:W.String(),tierSource:W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`)]),runtimeChoice:W.String(),runtimeChoiceQualified:W.String(),runtimeChoiceSource:I_,runtimeChoiceRule:W.Optional(W.String()),runtimeChoiceRouter:W.Optional(W.String()),runtimeChoiceFallbackReason:W.Optional(L_),effort:W.Optional(W.String()),effortSource:W.Optional(W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`)])),thinking:W.Optional(W.Record(W.String(),W.Unknown())),thinkingSource:W.Optional(W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`)])),effortClamped:W.Optional(W.Boolean()),effortOriginal:W.Optional(W.String()),thinkingCoerced:W.Optional(W.Boolean()),thinkingOriginal:W.Optional(W.Record(W.String(),W.Unknown())),perspective:W.Optional(fg),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),toolbeltSource:W.Optional(W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`),W.Literal(`default`)])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),projectMcpServerNames:W.Optional(W.Array(W.String()))},z_=W.Object({sessionId:W.Optional(W.String()),runId:W.Optional(W.String()),timestamp:W.String()}),B_=[W.Object({type:W.Literal(`agent:start`),...R_}),W.Object({type:W.Literal(`agent:warning`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,code:W.String(),message:W.String()}),W.Object({type:W.Literal(`agent:stop`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,error:W.Optional(W.String())}),W.Object({type:W.Literal(`agent:usage`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,usage:W.Object({input:W.Number(),output:W.Number(),total:W.Number(),cacheRead:W.Number(),cacheCreation:W.Number()}),costUsd:W.Number(),numTurns:W.Number(),final:W.Optional(W.Boolean())}),W.Object({type:W.Literal(`agent:message`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,content:W.String()}),W.Object({type:W.Literal(`agent:tool_use`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,tool:W.String(),toolUseId:W.String(),input:W.Unknown()}),W.Object({type:W.Literal(`agent:tool_result`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,tool:W.String(),toolUseId:W.String(),output:W.String()}),W.Object({type:W.Literal(`agent:result`),planId:W.Optional(W.String()),agentId:W.Optional(W.String()),agent:ug,result:s_}),W.Object({type:W.Literal(`agent:activity`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,files:W.Optional(W.Array(W.Object({path:W.String(),status:W.Optional(W.String()),additions:W.Optional(W.Number()),deletions:W.Optional(W.Number()),binary:W.Optional(W.Boolean())}))),totals:W.Optional(W.Object({filesChanged:W.Number(),additions:W.Number(),deletions:W.Number()})),attribution:W.Union([W.Literal(`exact`),W.Literal(`best_effort`),W.Literal(`unavailable`)]),notes:W.Optional(W.Array(W.String()))}),W.Object({type:W.Literal(`agent:retry`),agent:ug,attempt:W.Number(),maxAttempts:W.Number(),subtype:dg,label:W.String(),planId:W.Optional(W.String()),shardId:W.Optional(W.String())})],V_=[W.Object({type:W.Literal(`plan:build:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:implement:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:implement:progress`),planId:W.String(),message:W.String()}),W.Object({type:W.Literal(`plan:build:implement:continuation`),planId:W.String(),attempt:W.Number(),maxContinuations:W.Number(),shardId:W.Optional(W.String())}),W.Object({type:W.Literal(`plan:build:implement:complete`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:files_changed`),planId:W.String(),files:W.Array(W.String()),diffs:W.Optional(W.Array(W.Object({path:W.String(),diff:W.String()}))),baseBranch:W.Optional(W.String())}),W.Object({type:W.Literal(`plan:build:review:start`),planId:W.String(),...hg}),W.Object({type:W.Literal(`plan:build:review:complete`),planId:W.String(),issues:W.Array(Zg),...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:start`),planId:W.String(),perspectives:W.Array(fg),...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:perspective:start`),planId:W.String(),perspective:fg,...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:perspective:complete`),planId:W.String(),perspective:fg,issues:W.Array(Zg),...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:perspective:error`),planId:W.String(),perspective:fg,error:W.String(),...hg}),W.Object({type:W.Literal(`plan:build:review:fix:start`),planId:W.String(),issueCount:W.Number(),...hg}),W.Object({type:W.Literal(`plan:build:review:fix:complete`),planId:W.String(),...hg,issueReferences:W.Optional(W.Array(yg))}),W.Object({type:W.Literal(`plan:build:review:fix:continuation`),planId:W.String(),attempt:W.Number(),maxContinuations:W.Number(),...hg}),W.Object({type:W.Literal(`plan:build:evaluate:start`),planId:W.String(),...hg}),W.Object({type:W.Literal(`plan:build:evaluate:continuation`),planId:W.String(),attempt:W.Number(),maxContinuations:W.Number(),...hg}),W.Object({type:W.Literal(`plan:build:evaluate:complete`),planId:W.String(),accepted:W.Number(),rejected:W.Number(),...hg,resolvedIssueOutcomes:W.Optional(W.Number()),falsePositiveIssueOutcomes:W.Optional(W.Number()),unresolvedIssueOutcomes:W.Optional(W.Number()),unresolvedNonBlockingIssueOutcomes:W.Optional(W.Number()),needsHumanReviewIssueOutcomes:W.Optional(W.Number()),acceptedRiskIssueOutcomes:W.Optional(W.Number()),splitToFollowupIssueOutcomes:W.Optional(W.Number()),blockingIssueOutcomes:W.Optional(W.Number()),verdicts:W.Optional(W.Array(W.Object({file:W.String(),action:W.Union([W.Literal(`accept`),W.Literal(`reject`),W.Literal(`review`)]),reason:W.String(),hunk:W.Optional(W.Integer({minimum:1})),issueOutcome:W.Optional(mg),retryGuidance:W.Optional(W.String()),issueIds:W.Optional(W.Array(_g))})))}),W.Object({type:W.Literal(`plan:build:doc-author:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:doc-author:complete`),planId:W.String(),docsAuthored:W.Number()}),W.Object({type:W.Literal(`plan:build:doc-sync:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:doc-sync:complete`),planId:W.String(),docsSynced:W.Number()}),W.Object({type:W.Literal(`plan:build:test:ownership:violation`),planId:W.String(),stage:W.Union([W.Literal(`implement`),W.Literal(`test-write`),W.Literal(`test`)]),declaredOwner:W.Union([gg,W.Literal(`unspecified`)]),changedPaths:W.Array(W.String()),reason:W.String()}),W.Object({type:W.Literal(`plan:build:test:write:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:test:write:complete`),planId:W.String(),testsWritten:W.Number()}),W.Object({type:W.Literal(`plan:build:test:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:test:complete`),planId:W.String(),passed:W.Number(),failed:W.Number(),testBugsFixed:W.Number(),productionIssues:W.Array(Qg)}),W.Object({type:W.Literal(`plan:build:complete`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:recovery:start`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),issueCount:W.Number(),maxAttempts:W.Number(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:attempt:start`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),attempt:W.Number(),maxAttempts:W.Number(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:attempt:result`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),attempt:W.Number(),maxAttempts:W.Number(),blockersCleared:W.Boolean(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:skip`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),reason:W.Union([W.Literal(`not-active-plan`),W.Literal(`manual-gate`),W.Literal(`human-review-gate`),W.Literal(`cross-plan-blocker`),W.Literal(`upstream-or-base-owned`),W.Literal(`low-confidence`),W.Literal(`incomplete-classification`),W.Literal(`unsupported-blocker`),W.Literal(`unsafe-worktree`),W.Literal(`budget-exhausted`),W.Literal(`stale-pass-data`)]),details:W.String(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:exhausted`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),attemptsUsed:W.Number(),maxAttempts:W.Number(),details:W.String()}),W.Object({type:W.Literal(`plan:build:failed`),planId:W.String(),error:W.String(),terminalSubtype:W.Optional(dg)}),W.Object({type:W.Literal(`plan:build:progress`),planId:W.String(),message:W.String()}),W.Object({type:W.Literal(`plan:status:change`),planId:W.String(),status:a_}),W.Object({type:W.Literal(`plan:error:set`),planId:W.String(),error:W.String()}),W.Object({type:W.Literal(`plan:error:clear`),planId:W.String()}),W.Object({type:W.Literal(`schedule:start`),planIds:W.Array(W.String())}),W.Object({type:W.Literal(`plan:schedule:ready`),planId:W.String(),reason:W.String()}),W.Object({type:W.Literal(`plan:merge:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:merge:complete`),planId:W.String(),commitSha:W.Optional(W.String())}),W.Object({type:W.Literal(`plan:merge:resolve:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:merge:resolve:complete`),planId:W.String(),resolved:W.Boolean()}),W.Object({type:W.Literal(`merge:finalize:start`),featureBranch:W.String(),baseBranch:W.String()}),W.Object({type:W.Literal(`merge:finalize:complete`),featureBranch:W.String(),baseBranch:W.String(),commitSha:W.Optional(W.String())}),W.Object({type:W.Literal(`merge:finalize:skipped`),featureBranch:W.String(),baseBranch:W.String(),reason:W.String()}),W.Object({type:W.Literal(`landing:start`),action:pg,featureBranch:W.String(),baseBranch:W.String(),trunkBranch:W.Optional(W.String()),workflow:W.Optional(W.Union([W.Literal(`trunk-pr`),W.Literal(`trunk-local-merge`),W.Literal(`feature-pr`),W.Literal(`feature-local-merge`),W.Literal(`leave-branch`)]))}),W.Object({type:W.Literal(`landing:complete`),action:pg,featureBranch:W.String(),baseBranch:W.String(),commitSha:W.Optional(W.String()),prUrl:W.Optional(W.String())}),W.Object({type:W.Literal(`landing:skipped`),action:pg,featureBranch:W.String(),baseBranch:W.String(),reason:W.String()}),W.Object({type:W.Literal(`landing:auto-merge:start`),featureBranch:W.String(),baseBranch:W.Optional(W.String()),prUrl:W.String()}),W.Object({type:W.Literal(`landing:auto-merge:complete`),featureBranch:W.String(),baseBranch:W.Optional(W.String()),prUrl:W.String()}),W.Object({type:W.Literal(`landing:auto-merge:skipped`),featureBranch:W.String(),baseBranch:W.Optional(W.String()),prUrl:W.Optional(W.String()),reason:W.String()}),W.Object({type:W.Literal(`merge:worktree:set`),path:W.String()}),W.Object({type:W.Literal(`merge:worktree:clear`)})],H_=[W.Object({type:W.Literal(`build:terminal-failure`),runId:W.String(),failure:__}),W.Object({type:W.Literal(`build:resume:start`),prdId:W.String(),setName:W.String(),featureBranch:W.String()}),W.Object({type:W.Literal(`build:resume:state`),seededMerged:W.Array(W.String()),seededPending:W.Array(W.String()),featureBranch:W.String(),landedCommitCount:W.Number(),diffStat:W.String()}),W.Object({type:W.Literal(`build:resume:ineligible`),reason:W.String(),checkedPath:W.Optional(W.String())}),i_,W.Object({type:W.Literal(`build:resume:complete`),prdId:W.String(),setName:W.String()})],U_=[W.Object({type:W.Literal(`daemon:run:upsert`),run:W.Object({id:W.String(),sessionId:W.Optional(W.String()),planSet:W.String(),command:W.String(),status:W.String(),startedAt:W.String(),completedAt:W.Optional(W.String()),cwd:W.String(),pid:W.Optional(W.Number())})}),W.Object({type:W.Literal(`daemon:auto-build:paused`),reason:W.String()}),W.Object({type:W.Literal(`daemon:lifecycle:starting`),pid:W.Number(),port:W.Number(),version:W.String(),mode:W.String()}),W.Object({type:W.Literal(`daemon:lifecycle:ready`),pid:W.Number(),port:W.Number(),version:W.String(),mode:W.String(),recoveryDurationMs:W.Number()}),W.Object({type:W.Literal(`daemon:lifecycle:shutdown:start`),signal:W.String(),reason:W.String()}),W.Object({type:W.Literal(`daemon:lifecycle:shutdown:complete`),durationMs:W.Number()}),W.Object({type:W.Literal(`daemon:heartbeat`),uptime:W.Number(),queueDepth:W.Number(),runningBuilds:W.Number(),autoBuild:W.Object({enabled:W.Boolean(),paused:W.Boolean(),...A_}),subscribers:W.Number()}),W.Object({type:W.Literal(`daemon:scheduler:dequeued`),prdId:W.String(),queueDepth:W.Number(),capacityRemaining:W.Number()}),W.Object({type:W.Literal(`daemon:scheduler:capacity-blocked`),queueDepth:W.Number(),runningCount:W.Number(),limit:W.Number()}),W.Object({type:W.Literal(`daemon:scheduler:dependency-blocked`),prdId:W.String(),blockedBy:W.Array(W.String())}),W.Object({type:W.Literal(`daemon:scheduler:paused`)}),W.Object({type:W.Literal(`daemon:scheduler:resumed`)}),W.Object({type:W.Literal(`daemon:auto-build:enabled`)}),W.Object({type:W.Literal(`daemon:auto-build:disabled`)}),W.Object({type:W.Literal(`daemon:auto-build:resumed`)}),W.Object({type:W.Literal(`daemon:auto-build:triggered`),trigger:W.String(),prdsEnqueued:W.Number()}),W.Object({type:W.Literal(`daemon:auto-build:transition`),previousMode:E_,nextMode:E_,desired:T_,reason:W.Optional(W.String()),source:W.String()}),W.Object({type:W.Literal(`daemon:recovery:start`)}),W.Object({type:W.Literal(`daemon:recovery:run-marked-failed`),runId:W.String(),planSet:W.String(),reason:W.String()}),W.Object({type:W.Literal(`daemon:recovery:lock-removed`),path:W.String(),pid:W.Number()}),W.Object({type:W.Literal(`daemon:recovery:lock-adopted`),path:W.String(),pid:W.Number(),prdId:W.String()}),W.Object({type:W.Literal(`daemon:recovery:complete`),runsFailed:W.Number(),locksRemoved:W.Number(),durationMs:W.Number()}),W.Object({type:W.Literal(`daemon:orphan:reaped`),runId:W.String(),sessionId:W.String(),planSet:W.String(),pid:W.Number()}),W.Object({type:W.Literal(`daemon:failed-enqueue:upsert`),failedEnqueue:w_}),W.Object({type:W.Literal(`daemon:failed-enqueue:resolved`),runId:W.String(),resolvedAt:W.String(),spawnedSessionId:W.Optional(W.String())}),W.Object({type:W.Literal(`daemon:warning`),source:W.String(),message:W.String(),details:W.Optional(W.String())}),W.Object({type:W.Literal(`daemon:error`),source:W.String(),message:W.String(),stack:W.Optional(W.String())})],W_={keepAlive:`/api/keep-alive`,enqueue:`/api/enqueue`,cancel:`/api/cancel/:sessionId`,daemonStop:`/api/daemon/stop`,autoBuildGet:`/api/auto-build`,autoBuildSet:`/api/auto-build`,profileList:`/api/profile/list`,profileShow:`/api/profile/show`,profileUse:`/api/profile/use`,profileCreate:`/api/profile/create`,profileDelete:`/api/profile/:name`,modelProviders:`/api/models/providers`,modelList:`/api/models/list`,projectContext:`/api/project-context`,health:`/api/health`,version:`/api/version`,configShow:`/api/config/show`,configValidate:`/api/config/validate`,extensionList:`/api/extensions/list`,extensionShow:`/api/extensions/show`,extensionValidate:`/api/extensions/validate`,extensionTest:`/api/extensions/test`,extensionTrust:`/api/extensions/trust`,extensionUntrust:`/api/extensions/untrust`,extensionNew:`/api/extensions/new`,extensionReload:`/api/extensions/reload`,extensionInstall:`/api/extensions/install`,extensionUpdate:`/api/extensions/update`,extensionRemove:`/api/extensions/remove`,extensionPromote:`/api/extensions/promote`,extensionDemote:`/api/extensions/demote`,extensionContributionManifest:`/api/extensions/contributions`,extensionWorkstationFrame:`/api/extensions/workstations/:workstationId/frame`,extensionWorkstationAsset:`/api/extensions/workstations/:workstationId/assets/:assetId`,extensionActionInvoke:`/api/extensions/actions/invoke`,extensionAgentTaskStart:`/api/extensions/agent-tasks`,extensionAgentTaskGet:`/api/extensions/agent-tasks/:taskId`,extensionAgentTaskCancel:`/api/extensions/agent-tasks/:taskId/cancel`,queue:`/api/queue`,queuePriority:`/api/queue/:prdId/priority`,queueRemove:`/api/queue/:prdId`,queueDependencyOverride:`/api/queue/:prdId/dependencies/override`,queueHold:`/api/queue/:prdId/hold`,queueUnhold:`/api/queue/:prdId/unhold`,queueCascadePreview:`/api/queue/:prdId/cascade/preview`,queueCascadeApply:`/api/queue/:prdId/cascade/apply`,queueRecoveryAnalyze:`/api/queue/recovery/analyze`,queueRecoveryApply:`/api/queue/recovery/apply`,sessionMetadata:`/api/session-metadata`,runs:`/api/runs`,spend:`/api/spend`,efficiencyAnalytics:`/api/efficiency-analytics`,events:`/api/events/:runId`,runSummary:`/api/run-summary/:id`,runState:`/api/run-state/:id`,plans:`/api/plans/:runId`,diff:`/api/diff/:sessionId/:planId`,recover:`/api/recover`,recoveryGuidancePrepare:`/api/recover/guidance/prepare`,readRecoverySidecar:`/api/recovery/sidecar`,applyRecovery:`/api/recover/apply`,acceptRecoverySuccessPreview:`/api/recover/accept-success/preview`,acceptRecoverySuccess:`/api/recover/accept-success`,continueRepair:`/api/recover/continue-repair`,continueRepairEligibility:`/api/recover/continue-repair/eligibility`,schedulerKick:`/api/scheduler/kick`,failedEnqueues:`/api/enqueue/failed`,failedEnqueueReenqueue:`/api/enqueue/failed/:runId/reenqueue`,failedEnqueueDismiss:`/api/enqueue/failed/:runId/dismiss`,schedulerPause:`/api/scheduler/pause`,schedulerResume:`/api/scheduler/resume`,sessionPlanList:`/api/session-plan/list`,sessionPlanShow:`/api/session-plan/show`,sessionPlanCreate:`/api/session-plan/create`,sessionPlanSetSection:`/api/session-plan/set-section`,sessionPlanSkipDimension:`/api/session-plan/skip-dimension`,sessionPlanSetStatus:`/api/session-plan/set-status`,sessionPlanSelectDimensions:`/api/session-plan/select-dimensions`,sessionPlanReadiness:`/api/session-plan/readiness`,sessionPlanMigrateLegacy:`/api/session-plan/migrate-legacy`,sessionPlanSetList:`/api/session-plan-set/list`,sessionPlanSetShow:`/api/session-plan-set/show`,sessionPlanSetValidate:`/api/session-plan-set/validate`,daemonEvents:`/api/daemon-events`,stackLayers:`/api/stack/layers`,stackSync:`/api/stack/sync`,stackSyncStatus:`/api/stack/sync/status`},G_=1e3,K_=`eforge-recovery-sidecar-compile-scope-context-reason-bytes`;La(K_,e=>new TextEncoder().encode(e).length<=G_);var q_=W.Integer({minimum:0}),J_=W.Integer({minimum:1}),Y_=W.Object({kind:W.Literal(`continue-repair`),action:W.Literal(`continue-repair`),recommended:W.Boolean(),reason:W.String()}),X_=W.Union([W.Literal(`bounded-decomposition`),W.Literal(`manual-reduce-scope`)]),Z_=W.Object({kind:W.Literal(`compile-scope-context`),action:X_,recommended:W.Boolean(),eligible:W.Boolean(),reason:W.String({minLength:1,maxLength:G_,format:K_}),attempted:W.Boolean(),attempt:q_,maxAttempts:J_,source:Zh,failureKind:Qh,decompositionEvidence:W.Optional(_h)}),Q_=W.Union([W.Literal(`preflight`),W.Literal(`live-context-guard`),W.Literal(`provider`)]),$_=W.Union([W.Literal(`context-budget`),W.Literal(`context-window`),W.Literal(`context-length`),W.Literal(`scope-too-broad`)]),ev=W.Intersect([Z_,W.Union([W.Object({source:W.Literal(`decomposition`),failureKind:W.Literal(`decomposition-exhausted`),decompositionEvidence:_h}),W.Object({source:Q_,failureKind:$_,decompositionEvidence:W.Optional(W.Never())})])]);Object.assign(ev,{properties:Z_.properties}),W.Union([Y_,ev]);var tv=`[^/?#]+`,nv=`^sha256-[a-f0-9]{64}-path-[a-f0-9]{64}$`,rv=`^[a-f0-9]{64}$`,iv=lv(W_.extensionWorkstationFrame,{},`(?:\\?[^#]*)?`),av=lv(W_.extensionWorkstationAsset,{assetId:nv.slice(1,-1)}),ov=`(?:\\.|%2[eE]){1,2}`,sv=`^(?!\\s)(?!.*\\s$)(?!.*[#\\\\\\u0000-\\u001F\\u007F])(?:\\?[^#\\\\\\u0000-\\u001F\\u007F]*|(?!(?:[A-Za-z][A-Za-z0-9+.-]*:|/))(?![^?]*%(?![0-9A-Fa-f]{2}))(?:(?!${ov}(?:/|\\?|$))[^/?#\\\\\\u0000-\\u001F\\u007F]+/)*(?!${ov}(?:\\?|$))[^/?#\\\\\\u0000-\\u001F\\u007F]+(?:\\?[^#\\\\\\u0000-\\u001F\\u007F]*)?)$`,cv=`^(?=.*\\S)(?!/)(?![A-Za-z]:[\\\\/])(?!.*\\u0000)(?:(?!\\.{1,2}(?:[\\\\/]|$))[^\\\\/\\u0000]+)(?:[\\\\/](?!\\.{1,2}(?:[\\\\/]|$))[^\\\\/\\u0000]+)*$`;function lv(e,t={},n=``){return`^${uv(e).replace(/:([A-Za-z][A-Za-z0-9_]*)/g,(e,n)=>t[n]??tv)}${n}$`}function uv(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var dv=W.Recursive(e=>W.Union([W.Null(),W.Boolean(),W.Number(),W.String(),W.Array(e),W.Record(W.String(),e)])),fv=W.Record(W.String(),dv),pv=W.Union([W.Literal(`console`),W.Literal(`pi`),W.Literal(`claude`),W.Literal(`mcp`),W.Literal(`cli`)]),mv=W.Object({host:pv,surface:W.Optional(W.String()),sessionId:W.Optional(W.String()),commandId:W.Optional(W.String()),deepLinkId:W.Optional(W.String())},{additionalProperties:!1}),hv=W.Union([W.Literal(`none`),W.Literal(`local-read`),W.Literal(`local-write`),W.Literal(`network`),W.Literal(`daemon-state`),W.Literal(`build-queue`)]),gv=W.Union([W.Literal(`agent-compact`),W.Literal(`agent-paginated`),W.Literal(`markdown`),W.Literal(`ui-rich`),W.Literal(`debug-rich`)]),_v=`^(?:[<>]=?|=)?\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?(?:\\s*,\\s*(?:[<>]=?|=)?\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?)*$`,vv=W.Object({name:W.String({minLength:1}),version:W.Optional(W.String({minLength:1,pattern:_v}))},{additionalProperties:!1}),yv=W.Union([W.Object({name:W.String({minLength:1}),version:W.Optional(W.String({minLength:1,pattern:_v})),capabilities:W.Optional(W.Array(vv))},{additionalProperties:!1}),W.Object({version:W.Optional(W.String({minLength:1,pattern:_v})),capabilities:W.Array(vv,{minItems:1})},{additionalProperties:!1})]),bv=W.Object({dependencies:W.Optional(W.Array(yv)),capabilities:W.Optional(W.Array(vv))},{additionalProperties:!1}),xv=W.Object({code:W.String(),message:W.String(),severity:W.Optional(W.Union([W.Literal(`warning`),W.Literal(`error`)])),dependencyName:W.Optional(W.String()),providerName:W.Optional(W.String()),capabilityName:W.Optional(W.String()),requiredVersion:W.Optional(W.String()),actualVersion:W.Optional(W.String())},{additionalProperties:!1}),Sv=W.Object({available:W.Boolean(),message:W.Optional(W.String()),diagnostics:W.Optional(W.Array(xv))},{additionalProperties:!1}),Cv=W.Object({actionId:W.String(),inputDefaults:W.Optional(fv)},{additionalProperties:!1});W.Union([W.Literal(`text`),W.Literal(`markdown`),W.Literal(`status-badge`),W.Literal(`link`),W.Literal(`action-button`),W.Literal(`action-form`)]);var wv=W.Union([W.Object({rendererId:W.Literal(`text`),title:W.Optional(W.String()),content:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`markdown`),title:W.Optional(W.String()),content:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`status-badge`),title:W.Optional(W.String()),content:W.String(),status:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`link`),title:W.Optional(W.String()),content:W.String(),href:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`action-button`),title:W.Optional(W.String()),content:W.String(),action:Cv},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`action-form`),title:W.Optional(W.String()),content:W.String(),action:Cv},{additionalProperties:!1})]),Tv=fv,Ev=W.Intersect([fv,W.Object({type:W.Literal(`object`)})]),Dv=W.Union([W.Object({kind:W.Literal(`asset`),asset:W.String({minLength:1,pattern:cv})},{additionalProperties:!1}),W.Object({kind:W.Literal(`export`),module:W.String({minLength:1}),exportName:W.Optional(W.String({minLength:1}))},{additionalProperties:!1})]),Ov=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),inputSchema:Ev,outputSchema:W.Optional(Tv),prompt:Dv,requirements:W.Optional(bv),availability:W.Optional(Sv)},{additionalProperties:!1}),kv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),inputSchema:Ev,outputSchema:W.Optional(Tv),outputProfile:W.Optional(gv),sideEffects:W.Optional(W.Array(hv)),requirements:W.Optional(bv),availability:W.Optional(Sv)},{additionalProperties:!1}),Av=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),schemaVersion:W.Literal(1),requirements:W.Optional(bv),availability:W.Optional(Sv),blocks:W.Array(wv)},{additionalProperties:!1}),jv=W.Object({id:W.String({pattern:nv}),url:W.String({pattern:av}),relativePath:W.String(),sha256:W.String({pattern:rv})},{additionalProperties:!1}),Mv=W.Object({browserSdkVersion:W.Literal(1),frameUrl:W.String({pattern:iv}),entrypoint:jv,styles:W.Array(jv),assets:W.Array(jv)},{additionalProperties:!1}),Nv={id:W.String({pattern:`^[a-z][a-z0-9-]{0,63}$`}),label:W.String({minLength:1,pattern:`\\S`}),description:W.Optional(W.String())},Pv=W.Union([W.Object({...Nv,path:W.String({minLength:1,pattern:sv})},{additionalProperties:!1}),W.Object({...Nv,subPath:W.String({minLength:1,pattern:sv})},{additionalProperties:!1})]),Fv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),schemaVersion:W.Literal(1),requirements:W.Optional(bv),availability:W.Optional(Sv),subviews:W.Optional(W.Array(Pv)),srcDoc:W.String(),allowedActions:W.Array(W.String())},{additionalProperties:!1}),Iv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),schemaVersion:W.Literal(1),requirements:W.Optional(bv),availability:W.Optional(Sv),subviews:W.Optional(W.Array(Pv)),frameBundle:Mv,allowedActions:W.Array(W.String())},{additionalProperties:!1}),Lv=W.Union([Fv,Iv]),Rv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.Optional(W.String()),description:W.Optional(W.String()),label:W.String(),inputSchema:W.Optional(Ev),requirements:W.Optional(bv),availability:W.Optional(Sv),action:Cv},{additionalProperties:!1}),zv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.Optional(W.String()),description:W.Optional(W.String()),label:W.String(),urlTemplate:W.Optional(W.String()),requirements:W.Optional(bv),availability:W.Optional(Sv),action:W.Optional(Cv)},{additionalProperties:!1}),Bv=W.Object({extensionName:W.Optional(W.String()),extensionPath:W.Optional(W.String()),severity:W.Union([W.Literal(`info`),W.Literal(`warning`),W.Literal(`error`)]),message:W.String(),code:W.String(),name:W.Optional(W.String()),dependencyName:W.Optional(W.String()),providerName:W.Optional(W.String()),capabilityName:W.Optional(W.String()),requiredVersion:W.Optional(W.String()),actualVersion:W.Optional(W.String()),dependencyKind:W.Optional(W.Union([W.Literal(`required`),W.Literal(`optional`)]))},{additionalProperties:!1});W.Object({schemaVersion:W.Literal(1),generatedAt:W.String(),actions:W.Array(kv),agentTasks:W.Optional(W.Array(Ov)),consoleContributions:W.Array(Av),consoleWorkstations:W.Array(Lv),integrationCommands:W.Array(Rv),deepLinks:W.Array(zv),diagnostics:W.Optional(W.Array(Bv))},{additionalProperties:!1}),W.Object({actionId:W.String({minLength:1,pattern:`\\S`}),input:fv,requestedBy:mv},{additionalProperties:!1});var Vv=W.Union([W.Literal(`unknown-action`),W.Literal(`invalid-request`),W.Literal(`invalid-input`),W.Literal(`daemon-unavailable`),W.Literal(`unavailable`),W.Literal(`handler-error`),W.Literal(`timeout`),W.Literal(`invalid-output`),W.Literal(`output-schema-failed`)]),Hv=W.Object({path:W.String(),message:W.String()},{additionalProperties:dv}),Uv=W.Object({ok:W.Literal(!0),invocationId:W.String(),output:dv},{additionalProperties:!1}),Wv=W.Object({ok:W.Literal(!1),invocationId:W.String(),error:W.Object({code:Vv,message:W.String(),details:W.Optional(dv)},{additionalProperties:!1})},{additionalProperties:!1});W.Union([Uv,Wv]);var Gv=W.Optional(W.Union([W.Literal(`manual`),W.Literal(`after-build`),W.Literal(`scheduled`),W.Literal(`retry-deferred`)])),Kv=Hv,qv=W.Union([W.Literal(`invalid-input`),W.Literal(`daemon-unavailable`),W.Literal(`handler-error`),W.Literal(`invalid-output`),W.Literal(`output-schema-failed`)]),Jv={invocationId:W.String(),actionId:W.String(),extensionName:W.String(),extensionPath:W.String(),requestedBy:mv},Yv=W.String({minLength:1,pattern:`\\S`}),Xv=W.String({pattern:`^[a-f0-9]{64}$`}),Zv=W.String({minLength:1,pattern:`^(?!\\.\\.?$)(?!.*[\\\\/\\u0000]).+$`}),Qv=W.Union([W.Literal(`item`),W.Literal(`epic`)]),$v={id:Zv,origin:W.Optional(W.Union([W.Literal(`private`),W.Literal(`legacy`)])),relativePath:W.Optional(Yv),bodySha256:Xv,sourceFingerprint:W.Optional(Xv),updated:W.Optional(W.String()),recordSha256:W.Optional(Xv)};W.Object({...$v,kind:Qv},{additionalProperties:!1});var ey=W.Object({...$v,kind:W.Literal(`item`)},{additionalProperties:!1}),ty=W.Object({...$v,kind:W.Literal(`epic`)},{additionalProperties:!1}),ny=W.Union([W.Literal(`candidate`),W.Literal(`planned`),W.Literal(`active`),W.Literal(`shipped`),W.Literal(`stale`),W.Literal(`superseded`)]),ry=W.Object({status:W.Optional(ny),priority:W.Optional(W.String()),tags:W.Optional(W.Array(W.String())),depends_on:W.Optional(W.Array(Zv)),epic:W.Optional(W.Union([Zv,W.Null()])),last_checked:W.Optional(W.String()),stale_after:W.Optional(W.String())},{additionalProperties:!1}),iy=W.Object({heading:Yv,action:W.Union([W.Literal(`replace`),W.Literal(`append`)]),content:W.String()},{additionalProperties:!1}),ay={id:Zv,metadata:W.Optional(ry),sectionOperations:W.Optional(W.Array(iy)),rationale:Yv,evidence:W.Optional(W.Array(W.String()))},oy=W.Object({...ay,kind:W.Literal(`item`),precondition:ey},{additionalProperties:!1}),sy=W.Object({...ay,kind:W.Literal(`epic`),precondition:ty},{additionalProperties:!1});W.Union([oy,sy]);var cy={id:Zv,last_checked:W.String(),stale_after:W.String(),rationale:W.Optional(W.String())},ly=W.Object({...cy,kind:W.Literal(`item`),precondition:ey},{additionalProperties:!1}),uy=W.Object({...cy,kind:W.Literal(`epic`),precondition:ty},{additionalProperties:!1}),dy=W.Union([ly,uy]),fy=W.Object({id:W.Optional(Zv),kind:W.Optional(Qv),reason:Yv},{additionalProperties:!1}),py=W.Object({id:W.Optional(Zv),kind:W.Optional(Qv),question:Yv,reason:W.Optional(Yv)},{additionalProperties:!1}),my=W.Object({schemaVersion:W.Literal(1),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),summary:W.Array(W.String()),itemChanges:W.Array(oy),epicChanges:W.Array(sy),noOpRechecks:W.Array(dy),skipped:W.Array(fy),needsInput:W.Array(py)},{additionalProperties:!1}),hy=W.Object({dimension:Yv,sha256:Xv},{additionalProperties:!1}),gy=W.Object({dimension:Yv,content:Yv,rationale:W.Optional(W.String())},{additionalProperties:!1}),_y=W.Object({openQuestions:W.Optional(W.Array(Yv))},{additionalProperties:!1}),vy=W.Object({dimension:Yv,reason:Yv},{additionalProperties:!1}),yy=W.Object({sections:W.Optional(W.Array(gy,{minItems:1})),metadata:W.Optional(_y),skippedDimensions:W.Optional(W.Array(vy))},{additionalProperties:!1}),by=W.Object({label:Yv,excerpt:W.Optional(W.String()),path:W.Optional(W.String()),url:W.Optional(W.String())},{additionalProperties:!1}),xy=W.Object({schemaVersion:W.Literal(1),targetSession:Yv,assistantMessage:Yv,basePlanFingerprint:Xv,baseSectionHashes:W.Optional(W.Array(hy)),proposedPatch:W.Optional(yy),citations:W.Optional(W.Array(by)),applyGuidance:W.Optional(W.String()),noPatchReason:W.Optional(W.String())},{additionalProperties:!1}),Sy=`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$`;new RegExp(Sy);var Cy=W.Object({itemId:W.String({minLength:1,maxLength:240}),title:W.Optional(W.String({maxLength:300})),status:W.Union([W.Literal(`pending`),W.Literal(`running`),W.Literal(`cache-hit`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`cancelled`)]),outcome:W.Optional(W.String({maxLength:80})),verdict:W.Optional(W.String({maxLength:80})),summary:W.Optional(W.String({maxLength:500})),startedAt:W.Optional(W.String({maxLength:120})),completedAt:W.Optional(W.String({maxLength:120}))},{additionalProperties:!1}),wy=W.Object({total:W.Integer({minimum:0}),cacheHits:W.Integer({minimum:0}),misses:W.Integer({minimum:0}),running:W.Integer({minimum:0}),completed:W.Integer({minimum:0}),remaining:W.Integer({minimum:0}),items:W.Array(Cy,{maxItems:1e3})},{additionalProperties:!1}),Ty=W.Object({timestamp:W.String({minLength:1,pattern:Sy}),message:W.String({minLength:1,maxLength:500,pattern:`\\S`})},{additionalProperties:!1}),Ey=1e3,Dy=1e3,Oy=2e3,ky=(e=2e3)=>W.String({maxLength:e}),Ay=(e=2e3)=>W.String({minLength:1,pattern:`\\S`,maxLength:e}),jy=W.Union([W.String({maxLength:500}),W.Number(),W.Boolean(),W.Null()]),My=W.Union([jy,W.Array(jy,{maxItems:20}),W.Object({},{additionalProperties:jy,maxProperties:20})]),Ny=W.Union([jy,W.Array(My,{maxItems:20}),W.Object({},{additionalProperties:My,maxProperties:20})]),Py=W.Object({},{additionalProperties:Ny,maxProperties:24}),Fy=W.Object({kind:W.Literal(`item`),id:Zv,origin:W.Optional(W.Union([W.Literal(`private`),W.Literal(`legacy`)])),relativePath:W.Optional(Ay(500)),bodySha256:Xv,sourceFingerprint:Xv,updated:W.Optional(W.String({maxLength:120})),recordSha256:Xv},{additionalProperties:!1}),Iy=W.Object({provider:Ay(120),modelId:Ay(200),agentProfile:W.Optional(W.String({maxLength:200}))},{additionalProperties:!1}),Ly=W.Object({code:Ay(160),severity:W.Union([W.Literal(`info`),W.Literal(`warning`),W.Literal(`error`)]),message:W.Optional(ky(800)),path:W.Optional(ky(300))},{additionalProperties:!1}),Ry=W.Object({code:Ay(160),cap:W.Integer({minimum:0}),observed:W.Integer({minimum:0}),retained:W.Integer({minimum:0}),message:W.Optional(ky(800))},{additionalProperties:!1}),K=W.Object({id:Zv,relationship:W.Union([W.Literal(`open-dependency`),W.Literal(`closed-dependency`),W.Literal(`missing-dependency`)]),status:W.Optional(W.String({maxLength:80})),title:W.Optional(ky(300))},{additionalProperties:!1}),zy=W.Object({kind:W.Union([W.Literal(`implementation`),W.Literal(`product-surface`),W.Literal(`supporting`),W.Literal(`current-source`)]),source:Ay(200),confidence:W.Optional(W.String({maxLength:80})),path:W.Optional(ky(400)),excerpt:W.Optional(ky(1e3)),matchedBy:W.Optional(W.Array(W.String({maxLength:120}),{maxItems:12}))},{additionalProperties:!1}),By=W.Object({source:Ay(200),closureAuthority:W.Literal(!1),intent:W.Optional(W.String({maxLength:120})),confidence:W.Optional(W.String({maxLength:80})),citation:W.Optional(ky(600)),evidence:W.Optional(ky(1e3)),path:W.Optional(ky(400))},{additionalProperties:!1}),Vy=W.Object({source:Ay(200),ref:W.Optional(W.String({maxLength:160})),signal:ky(1e3)},{additionalProperties:!1}),Hy=W.Object({schemaVersion:W.Literal(1),purpose:W.Literal(`backlog-curation-map-reduce`),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),curationGuidance:W.Array(ky(1200),{maxItems:8}),caps:W.Object({},{additionalProperties:W.Number()}),itemCount:W.Integer({minimum:0,maximum:Ey}),openItemIds:W.Array(Zv,{maxItems:Ey}),roadmapSummaries:W.Array(Py,{maxItems:20}),dependencySummaries:W.Array(Py,{maxItems:50}),recommendationSummaries:W.Array(Py,{maxItems:50}),redraftSummary:W.Optional(Py),diagnostics:W.Array(Ly,{maxItems:40})},{additionalProperties:!1}),Uy=W.Object({schemaVersion:W.Literal(1),kind:W.Literal(`item`),sourceFingerprint:Xv,itemId:Zv,itemTitle:ky(300),metadata:Py,precondition:Fy,bodySha256:Xv,recordSha256:Xv,sectionSummaries:W.Array(W.Object({heading:ky(160),text:ky(2e3)},{additionalProperties:!1}),{maxItems:12}),dependencyFacts:W.Array(K,{maxItems:12}),currentSourceCitations:W.Array(zy,{maxItems:8}),historicalHints:W.Array(By,{maxItems:8}),recommendationSignals:W.Array(Vy,{maxItems:8}),diagnostics:W.Array(Ry,{maxItems:8})},{additionalProperties:!1}),Wy=W.Union([W.Literal(`shipped`),W.Literal(`superseded`),W.Literal(`partial`),W.Literal(`still-needed`),W.Literal(`stale-invalid`),W.Literal(`needs-product-input`),W.Literal(`skip`)]),Gy=W.Union([W.Literal(`implementation`),W.Literal(`product-surface`),W.Literal(`replacement`),W.Literal(`supporting`)]),Ky=W.Object({path:Ay(400),reason:W.Optional(ky(500))},{additionalProperties:!1}),qy={schemaVersion:W.Literal(1),itemId:Zv,sourceFingerprint:Xv,packetSha256:Xv,bodySha256:Xv,promptVersion:Ay(120),runtimeIdentity:Iy,disposition:W.Union([W.Literal(`change`),W.Literal(`recheck`),W.Literal(`skip`),W.Literal(`needs-input`)]),verdict:W.Optional(Wy),closureEvidenceRoles:W.Optional(W.Array(Gy,{maxItems:8})),checkedPaths:W.Optional(W.Array(Ky,{maxItems:20})),summary:ky(2e3),rationale:ky(3e3),citations:W.Array(zy,{maxItems:8}),recommendationSignals:W.Array(Vy,{maxItems:8}),diagnostics:W.Array(Ly,{maxItems:8})},Jy=W.Object(qy,{additionalProperties:!1});W.Object({...qy,runtimeIdentity:W.Optional(Iy)},{additionalProperties:!1});var Yy={schemaVersion:W.Literal(1),itemId:Zv,sourceFingerprint:Xv,packetSha256:W.Optional(Xv),bodySha256:W.Optional(Xv),diagnostics:W.Array(Ly,{maxItems:8})},Xy=W.Union([W.Object({...Yy,outcome:W.Literal(`cache-hit`),finding:Jy},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`audited-finding`),finding:Jy},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`oversized-packet`),byteLength:W.Integer({minimum:0}),byteCap:W.Integer({minimum:0})},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`item-agent-failure`),error:ky(Oy)},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`invalid-finding`),validationErrors:W.Array(ky(400),{maxItems:12})},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`cancelled`),reason:W.Optional(ky(400))},{additionalProperties:!1})]),Zy=W.Object({schemaVersion:W.Literal(1),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),globalContext:Hy,outcomes:W.Array(Xy,{maxItems:Dy}),diagnostics:W.Array(Ly,{maxItems:40})},{additionalProperties:!1});W.Object({schemaVersion:W.Literal(1),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),globalContext:Hy,packets:W.Array(Uy,{maxItems:Ey}),degradedOutcomes:W.Array(Xy,{maxItems:Ey}),reducerInput:Zy},{additionalProperties:!1});var Qy=W.Literal(`eforge-plan.planning-draft`);W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`cancelled`)]);var $y=W.Object({host:W.Union([W.Literal(`console`),W.Literal(`pi`),W.Literal(`claude`),W.Literal(`mcp`),W.Literal(`cli`)]),surface:W.Optional(W.String()),sessionId:W.Optional(W.String())},{additionalProperties:!1}),eb=W.Union([W.Literal(`recommendations`),W.Literal(`handoffDrafts`),W.Literal(`planDrafts`),W.Literal(`sessionPlanPatch`),W.Literal(`sessionPlanCreationDraft`),W.Literal(`backlogCurationDraft`),W.Literal(`planRevisionTurn`)]),tb=`^[A-Za-z0-9._-]{1,128}$`,nb=`^(?:[A-Za-z0-9._:-]{1,128}|(?=.{1,256}$)(?!.*[/\\\\\\u0000-\\u001F\\u007F-\\u009F])(?!(?:\\.|\\.\\.):).+:[a-z][a-z0-9-]{0,63})$`,rb=`^[a-z0-9]+(?:-[a-z0-9]+)*$`,ib=W.String({minLength:1,maxLength:128,pattern:tb}),ab=W.String({minLength:1,pattern:rb}),ob=W.Object({id:W.String({minLength:1,maxLength:256,pattern:nb}),extensionName:W.Optional(W.String({minLength:1,pattern:`\\S`}))},{additionalProperties:!1}),sb=W.String({minLength:1,pattern:`\\S`}),cb=W.Object({module:W.String({minLength:1,pattern:`\\S`}),exportName:W.Optional(W.String({minLength:1,pattern:`\\S`})),input:W.Optional(W.Object({},{additionalProperties:!0}))},{additionalProperties:!1}),lb=W.Union([W.Literal(`bugfix`),W.Literal(`feature`),W.Literal(`refactor`),W.Literal(`architecture`),W.Literal(`docs`),W.Literal(`maintenance`),W.Literal(`unknown`)]),ub=W.Union([W.Literal(`quick`),W.Literal(`focused`),W.Literal(`deep`)]),db=W.String({minLength:1,pattern:`^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$`}),fb=W.Object({requiredDimensions:W.Array(db),optionalDimensions:W.Array(db)},{additionalProperties:!1}),pb=W.Object({quick:fb,focused:fb,deep:fb},{additionalProperties:!1}),mb=W.Object({dimensionContract:W.Object({bugfix:pb,feature:pb,refactor:pb,architecture:pb,docs:pb,maintenance:pb,unknown:pb},{additionalProperties:!1}),resolved:W.Optional(W.Object({planningType:lb,planningDepth:ub,requiredDimensions:W.Array(db),optionalDimensions:W.Array(db)},{additionalProperties:!1}))},{additionalProperties:!1}),hb=W.Object({topic:sb,session:W.Optional(W.String()),planningType:W.Optional(W.String()),planningDepth:W.Optional(W.String()),sourceText:W.Optional(W.String()),sourceProvider:W.Optional(cb),existingSessionPlan:W.Optional(W.String()),requestedOutputSections:W.Optional(W.Array(eb,{minItems:1})),sessionPlanCreationReadiness:W.Optional(mb),includeRoadmap:W.Optional(W.Boolean())},{additionalProperties:!1}),gb=W.Object({title:W.String(),body:W.String()},{additionalProperties:!1}),_b=W.Object({sections:W.Array(W.Object({dimension:W.String(),content:W.String()},{additionalProperties:!1}),{minItems:1}),skippedDimensions:W.Optional(W.Array(W.Object({dimension:W.String(),reason:W.String()},{additionalProperties:!1})))},{additionalProperties:!1}),vb=W.Object({session:ab,topic:W.String({minLength:1,pattern:`\\S`}),planningType:lb,planningDepth:ub,profile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)])),agentProfile:W.Optional(W.String()),sections:W.Array(W.Object({dimension:db,content:W.String()},{additionalProperties:!1}),{minItems:1}),skippedDimensions:W.Optional(W.Array(W.Object({dimension:db,reason:W.String()},{additionalProperties:!1})))},{additionalProperties:!1}),yb=W.Object({question:W.String({minLength:1,pattern:`\\S`}),why:W.Optional(W.String()),options:W.Optional(W.Array(W.String()))},{additionalProperties:!1});W.Union([W.Literal(`ready`),W.Literal(`needs-input`)]);var bb=W.String({maxLength:500}),xb=W.Object({currentSection:W.Optional(bb),coveredSections:W.Optional(W.Array(bb,{maxItems:50})),remainingSections:W.Optional(W.Array(bb,{maxItems:50}))},{additionalProperties:!1}),Sb=W.Object({ref:W.Optional(W.String()),itemId:W.String(),rationale:W.Optional(W.String()),confidence:W.Optional(W.String())},{additionalProperties:!1}),Cb=W.Object({ref:W.String(),title:W.Optional(W.String()),itemIds:W.Array(W.String(),{minItems:1}),epicIds:W.Optional(W.Array(W.String())),safeToPlanTogether:W.Optional(W.Boolean()),rationale:W.Optional(W.String()),recommendedProfile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)]))},{additionalProperties:!1}),wb=W.Object({ref:W.Optional(W.String()),itemIds:W.Array(W.String()),blockedBy:W.Array(W.String()),rationale:W.Optional(W.String())},{additionalProperties:!1}),Tb=W.Object({schemaVersion:W.Literal(1),updatedAt:W.Optional(W.String()),activeWork:W.Array(Sb),readyCandidates:W.Array(Sb),recommendedNextSequence:W.Array(Sb),safeParallelizableGroups:W.Array(Cb),blockedChains:W.Array(wb),rationaleAndAssumptions:W.Array(W.String())},{additionalProperties:!1}),Eb=W.Object({selection:W.Object({},{additionalProperties:!0}),session:W.Optional(W.String()),title:W.Optional(W.String()),profile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)]))},{additionalProperties:!1}),Db={summary:W.String(),assumptionsOpenQuestions:W.Array(W.String()),nextSteps:W.Optional(W.Array(W.String()))},Ob={recommendations:W.Optional(Tb),backlogCurationDraft:W.Optional(my),handoffDraft:W.Optional(Eb),handoffDrafts:W.Optional(W.Array(Eb,{minItems:1})),planRevisionTurn:W.Optional(xy)},kb={...Db,...Ob};W.Object(kb,{additionalProperties:!1});var Ab=W.Object({session:W.String({minLength:1,pattern:`\\S`}),topic:W.String({minLength:1,pattern:`\\S`}),planningType:lb,planningDepth:ub,profile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)])),agentProfile:W.Optional(W.String()),sections:W.Array(W.Object({dimension:W.String({minLength:1}),content:W.String()},{additionalProperties:!1}),{minItems:1}),skippedDimensions:W.Optional(W.Array(W.Object({dimension:W.String({minLength:1}),reason:W.String()},{additionalProperties:!1})))},{additionalProperties:!1}),jb=W.Object({...kb,decision:W.Literal(`ready`),sessionPlanCreationDraft:Ab,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),Mb=W.Union([W.Object({...kb,planRevisionTurn:xy,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,backlogCurationDraft:my,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,recommendations:Tb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,handoffDraft:Eb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,handoffDrafts:W.Array(Eb,{minItems:1}),planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,planDrafts:W.Array(gb,{minItems:1}),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:_b},{additionalProperties:!1}),W.Object({...kb,decision:W.Literal(`ready`),sessionPlanCreationDraft:vb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...Db,decision:W.Literal(`needs-input`),clarificationQuestions:W.Array(yb,{minItems:1}),rationale:W.String({minLength:1,pattern:`\\S`})},{additionalProperties:!1})]),Nb=W.Union([Mb,jb]),Pb=W.Object({kind:Qy,input:hb,requestedBy:W.Optional($y)},{additionalProperties:!1}),Fb=W.Object({task:ob,input:fv,requestedBy:W.Optional($y)},{additionalProperties:!1});W.Union([Fb,Pb]),W.Object({taskId:ib},{additionalProperties:!1}),W.Object({reason:W.Optional(W.String())},{additionalProperties:!1});var Ib=W.Object({label:W.Optional(W.String()),summary:W.Optional(W.String()),progressMessage:W.Optional(W.String()),outputSectionCount:W.Optional(W.Integer({minimum:0})),warningCount:W.Optional(W.Integer({minimum:0})),sectionProgress:W.Optional(xb),backlogCurationProgress:W.Optional(wy),activityLog:W.Optional(W.Array(Ty,{maxItems:50}))},{additionalProperties:!1}),Lb={taskId:ib,kind:Qy,createdAt:W.String(),updatedAt:W.String(),metadata:W.Optional(Ib)},Rb=W.Union([W.Object({...Lb,status:W.Literal(`queued`)},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`running`),startedAt:W.String()},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`completed`),startedAt:W.Optional(W.String()),completedAt:W.String(),result:Nb},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`failed`),startedAt:W.Optional(W.String()),completedAt:W.Optional(W.String()),errorCode:W.String(),errorMessage:W.String()},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`cancelled`),startedAt:W.Optional(W.String()),cancelledAt:W.String(),errorMessage:W.Optional(W.String())},{additionalProperties:!1})]);W.Object({task:Rb},{additionalProperties:!1}),W.Object({task:Rb},{additionalProperties:!1}),W.Object({task:Rb},{additionalProperties:!1});var zb=[W.Object({type:W.Literal(`extension:event-handler:failed`),extensionName:W.String(),extensionPath:W.String(),pattern:W.String(),triggeringEventType:W.String(),message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:event-handler:timeout`),extensionName:W.String(),extensionPath:W.String(),pattern:W.String(),triggeringEventType:W.String(),timeoutMs:W.Number()}),W.Object({type:W.Literal(`extension:action:start`),...Jv}),W.Object({type:W.Literal(`extension:action:complete`),...Jv,durationMs:W.Number()}),W.Object({type:W.Literal(`extension:action:failed`),...Jv,durationMs:W.Number(),errorCode:qv,message:W.String(),validationErrors:W.Optional(W.Array(Kv))}),W.Object({type:W.Literal(`extension:action:timeout`),...Jv,durationMs:W.Number(),timeoutMs:W.Number(),message:W.String()}),W.Object({type:W.Literal(`extension:agent-task:start`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`running`),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:progress`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`running`),message:W.String(),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:complete`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`completed`),durationMs:W.Integer({minimum:0}),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:failed`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`failed`),durationMs:W.Optional(W.Integer({minimum:0})),errorCode:W.String(),message:W.String(),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:cancelled`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`cancelled`),reason:W.Optional(W.String()),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-context:applied`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),promptCharCount:W.Integer({minimum:0}),fragmentCount:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:agent-context:failed`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:agent-context:timeout`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:agent-context:unsupported`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),fields:W.Array(W.Union([W.Literal(`tools`),W.Literal(`allowedTools`),W.Literal(`disallowedTools`)]),{minItems:1})}),W.Object({type:W.Literal(`extension:agent-tools:applied`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),projectMcpServerNames:W.Optional(W.Array(W.String())),toolNames:W.Array(W.String()),effectiveToolNames:W.Array(W.String()),registeredToolNames:W.Array(W.String()),inlineToolNames:W.Array(W.String()),allowedToolsAdded:W.Array(W.String()),disallowedToolsAdded:W.Array(W.String()),excludedToolNames:W.Array(W.String()),toolCount:W.Integer({minimum:0}),allowedToolCount:W.Integer({minimum:0}),disallowedToolCount:W.Integer({minimum:0}),excludedToolCount:W.Integer({minimum:0})}),W.Object({type:W.Literal(`queue:profile:selected`),prdId:W.String(),prdTitle:W.Optional(W.String()),profile:W.String(),baseProfile:W.Union([W.String(),W.Null()]),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),reason:W.Optional(W.String()),confidence:W.Optional(W.Union([W.Literal(`low`),W.Literal(`medium`),W.Literal(`high`)]))}),W.Object({type:W.Literal(`queue:profile:router-failed`),prdId:W.String(),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`queue:profile:router-timeout`),prdId:W.String(),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`queue:profile:invalid-selection`),prdId:W.String(),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),requestedProfile:W.String(),reason:W.Union([W.Literal(`not-found`),W.Literal(`load-error`)]),message:W.String()}),W.Object({type:W.Literal(`extension:policy:decision`),...Rg,...Pg}),W.Object({type:W.Literal(`extension:policy:decision`),...Rg,...Fg}),W.Object({type:W.Literal(`extension:policy:decision`),...Rg,...Ig}),W.Object({type:W.Literal(`extension:policy:decision`),...zg,...Pg}),W.Object({type:W.Literal(`extension:policy:decision`),...zg,...Fg}),W.Object({type:W.Literal(`extension:policy:decision`),...zg,...Ig}),W.Object({type:W.Literal(`extension:policy:decision`),...Bg,...Pg}),W.Object({type:W.Literal(`extension:policy:decision`),...Bg,...Fg}),W.Object({type:W.Literal(`extension:policy:decision`),...Bg,...Ig}),W.Object({type:W.Literal(`extension:policy:failed`),...Rg,message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:policy:failed`),...zg,message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:policy:failed`),...Bg,message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:policy:timeout`),...Rg,timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:policy:timeout`),...zg,timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:policy:timeout`),...Bg,timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:input-source:fetched`),extensionPath:W.String(),extensionName:W.String(),adapterName:W.String(),sourceId:W.String(),contentLength:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:input-source:failed`),extensionPath:W.String(),extensionName:W.String(),adapterName:W.String(),sourceId:W.String(),reason:W.Union([W.Literal(`not-found`),W.Literal(`error`),W.Literal(`timeout`),W.Literal(`invalid-result`)]),message:W.String(),stack:W.Optional(W.String()),timeoutMs:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:prd-enricher:applied`),extensionPath:W.String(),extensionName:W.String(),enricherName:W.String(),sourceId:W.String(),changed:W.Boolean(),inputLength:W.Integer({minimum:0}),outputLength:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:prd-enricher:failed`),extensionPath:W.String(),extensionName:W.String(),enricherName:W.String(),sourceId:W.String(),reason:W.Union([W.Literal(`error`),W.Literal(`timeout`),W.Literal(`invalid-result`)]),message:W.String(),stack:W.Optional(W.String()),timeoutMs:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:reviewer-perspective:applied`),extensionPath:W.String(),extensionName:W.String(),perspectiveKey:fg,perspectiveLabel:W.String(),planId:W.Optional(W.String())}),W.Union([W.Object({type:W.Literal(`extension:reviewer-perspective:skipped`),extensionPath:W.String(),extensionName:W.String(),perspectiveKey:fg,reason:W.Union([W.Literal(`not-applicable`),W.Literal(`applicability-error`),W.Literal(`applicability-timeout`)]),message:W.Optional(W.String()),planId:W.Optional(W.String()),timeoutMs:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:reviewer-perspective:skipped`),extensionPath:W.Optional(W.String()),extensionName:W.Optional(W.String()),perspectiveKey:fg,reason:W.Literal(`unknown-key`),message:W.Optional(W.String()),planId:W.Optional(W.String())})]),W.Object({type:W.Literal(`extension:validation-provider:start`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),kind:W.Union([W.Literal(`validate`),W.Literal(`commands`)]),commandCount:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:validation-provider:complete`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),status:W.Union([W.Literal(`passed`),W.Literal(`skipped`)]),message:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:validation-provider:error`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),status:W.Literal(`failed`),message:W.String(),details:W.Optional(W.String()),command:W.Optional(W.String()),exitCode:W.Optional(W.Integer())}),W.Object({type:W.Literal(`extension:validation-provider:timeout`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),timeoutMs:W.Integer({minimum:0}),command:W.Optional(W.String())})],Bb=2e3,Vb=1024,Hb=2048,Ub=1024,Wb=W.String({maxLength:Bb}),Gb=W.Array(Wb,{maxItems:128}),Kb=W.Integer({minimum:0}),qb=W.Union([W.Literal(`foundation-contract`),W.Literal(`subsystem`),W.Literal(`oversized-criterion`),W.Literal(`general`),W.Literal(`rescope-split`)]),Jb=W.Object({atomId:Wb,title:Wb,reason:qb,criterionIds:Gb,dependencyAtomIds:Gb},{additionalProperties:!1}),Yb=W.Object({fromAtomId:Wb,toAtomId:Wb,reason:Wb},{additionalProperties:!1}),Xb=W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`skipped`),W.Literal(`failed`)]),Zb=W.Object({nodeId:Wb,depth:Kb,inputAtomIds:Gb,inputNodeIds:Gb},{additionalProperties:!1}),Qb=W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`incomplete`)]),$b=[W.Object({type:W.Literal(`planning:map-reduce:atoms`),graphId:Wb,atomCount:Kb,edgeCount:Kb,atoms:W.Array(Jb,{maxItems:Vb}),edges:W.Array(Yb,{maxItems:Hb})}),W.Object({type:W.Literal(`planning:map-reduce:atom:status`),atomId:Wb,status:Xb,reason:W.Optional(Wb)}),W.Object({type:W.Literal(`planning:map-reduce:reduce-tree`),graphId:Wb,rootNodeId:W.Optional(Wb),maxDepth:Kb,nodeCount:Kb,nodes:W.Array(Zb,{maxItems:Ub})}),W.Object({type:W.Literal(`planning:map-reduce:reduce:status`),nodeId:Wb,status:Qb,reason:W.Optional(Wb)})],ex=[W.Object({type:W.Literal(`session:start`),sessionId:W.String()}),W.Object({type:W.Literal(`session:end`),sessionId:W.String(),result:Kg}),W.Object({type:W.Literal(`session:profile`),profileName:W.Union([W.String(),W.Null()]),source:W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user-local`),W.Literal(`missing`),W.Literal(`none`),W.Literal(`override`)]),scope:W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user`),W.Null()]),config:W.Union([W.Unknown(),W.Null()])}),W.Object({type:W.Literal(`phase:start`),runId:W.String(),planSet:W.String(),command:W.Union([W.Literal(`compile`),W.Literal(`build`),W.Literal(`continue-repair`)])}),W.Object({type:W.Literal(`phase:end`),runId:W.String(),result:Kg}),W.Object({type:W.Literal(`config:warning`),message:W.String(),source:W.String(),details:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:warning`),planId:W.Optional(W.String()),message:W.String(),source:W.String(),details:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:module:build-config:invalid`),moduleId:W.String(),reason:W.Union([W.Literal(`invalid-json`),W.Literal(`invalid-schema`)]),errors:W.Array(W.String())})],tx={timestamp:W.String(),sessionId:W.Optional(W.String()),runId:W.Optional(W.String())},nx=[W.Object({type:W.Literal(`planning:start`),source:W.String(),label:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:inspection-summary`),summary:ig,artifactPath:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:skip`),reason:W.String()}),W.Object({type:W.Literal(`planning:submission`),planCount:W.Number(),totalBodySize:W.Number(),hasMigrations:W.Boolean()}),W.Object({type:W.Literal(`planning:error`),reason:W.String()}),W.Object({type:W.Literal(`planning:scope-context:failure`),runId:W.Optional(W.String()),failure:cg}),W.Object({...tx,type:W.Literal(`planning:decomposition:start`),...vh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:queued`),...Sh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:running`),...Ch},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:progress`),...wh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:completed`),...Th},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:skipped`),...Eh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:failed`),...Dh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:schedule`),...Oh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:budget`),...Ah},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:compact-handoff`),...jh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:synthesis:complete`),...Mh},{additionalProperties:!1}),W.Object({type:W.Literal(`planning:clarification`),questions:W.Array(qg)}),W.Object({type:W.Literal(`planning:clarification:answer`),answers:W.Record(W.String(),W.String())}),W.Object({type:W.Literal(`planning:progress`),message:W.String()}),W.Object({type:W.Literal(`planning:continuation`),attempt:W.Number(),maxContinuations:W.Number(),reason:W.Optional(W.Union([W.Literal(`max_turns`),W.Literal(`dropped_submission`),W.Literal(`compact_inspection`)]))}),W.Object({type:W.Literal(`planning:pipeline`),compile:W.Array(W.String()),defaultBuild:W.Array(Mg),defaultReview:Vg,rationale:W.String()}),W.Object({type:W.Literal(`planning:complete`),plans:W.Array($g),planConfigs:W.Optional(W.Array(W.Object({id:W.String(),build:W.Optional(W.Array(Mg)),review:W.Optional(Vg),testOwnership:W.Optional(gg)})))}),W.Object({type:W.Literal(`planning:review:start`)}),W.Object({type:W.Literal(`planning:review:complete`),issues:W.Array(Zg)}),W.Object({type:W.Literal(`planning:evaluate:start`)}),W.Object({type:W.Literal(`planning:evaluate:continuation`),attempt:W.Number(),maxContinuations:W.Number()}),W.Object({type:W.Literal(`planning:evaluate:complete`),accepted:W.Number(),rejected:W.Number(),verdicts:W.Optional(W.Array(W.Object({file:W.String(),action:W.Union([W.Literal(`accept`),W.Literal(`reject`),W.Literal(`review`)]),reason:W.String(),hunk:W.Optional(W.Integer({minimum:1}))})))})],rx=[W.Object({type:W.Literal(`stack:layer:recorded`),prdId:W.String(),stackId:W.String(),parentPrdId:W.Optional(W.String()),provider:bg,branch:W.String(),baseBranch:W.Optional(W.String()),artifact:W.Optional(Tg),landingAction:W.Optional(Cg),status:wg}),W.Object({type:W.Literal(`stack:provider:command`),provider:bg,command:W.String(),args:W.Optional(W.Array(W.String())),exitCode:W.Union([W.Integer(),W.Null()]),branch:W.Optional(W.String())}),W.Object({type:W.Literal(`stack:landing:update`),prdId:W.String(),stackId:W.String(),action:Cg,branch:W.String(),status:Eg,prUrl:W.Optional(W.String()),reason:W.Optional(W.String()),originalBaseBranch:W.Optional(W.String()),effectiveBaseBranch:W.Optional(W.String()),baseRepairReason:W.Optional(W.Literal(`parent-artifact-already-integrated`))}),W.Object({type:W.Literal(`stack:landing:conflict:detected`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),operation:xg,conflictKind:Sg,conflictedFiles:W.Array(W.String())}),W.Object({type:W.Literal(`stack:landing:conflict:recovery:start`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`stack:landing:conflict:recovery:complete`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),attempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`stack:landing:conflict:recovery:failed`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),attempts:W.Integer({minimum:0}),reason:W.String(),abortAttempted:W.Boolean(),abortSucceeded:W.Boolean()}),W.Object({type:W.Literal(`stack:sync:start`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean()}),W.Object({type:W.Literal(`stack:sync:complete`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean(),restackCandidates:W.Array(W.String()),excludedCandidates:W.Array(W.String()),localTrunkSha:W.Optional(W.String()),originTrunkSha:W.Optional(W.String()),fastForward:W.Optional(W.Boolean()),reason:W.Optional(W.String())}),W.Object({type:W.Literal(`stack:sync:failed`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean(),outcome:W.Union([W.Literal(`failed`),W.Literal(`conflict`)]),reason:W.String(),error:W.Optional(W.String())}),W.Object({type:W.Literal(`stack:sync:deferred`),syncId:W.String(),trigger:Gv,reason:W.String(),excludedCandidates:W.Array(W.String())}),W.Object({type:W.Literal(`stack:sync:skipped`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean(),reason:W.String(),restackCandidates:W.Array(W.String()),excludedCandidates:W.Array(W.String())}),W.Object({type:W.Literal(`base-sync:start`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`base-sync:conflict:attempt`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1}),conflictedFiles:W.Array(W.String())}),W.Object({type:W.Literal(`base-sync:resolver:start`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`base-sync:resolver:complete`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1}),resolved:W.Boolean(),remainingConflicts:W.Integer({minimum:0})}),W.Object({type:W.Literal(`base-sync:rebase:continue`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`base-sync:success`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),baseSha:W.String(),featureSha:W.String(),rebased:W.Boolean()}),W.Object({type:W.Literal(`base-sync:budget:exhausted`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempts:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:1}),conflictedFiles:W.Array(W.String())})],ix=[W.Object({type:W.Literal(`validation:start`),commands:W.Array(W.String())}),W.Object({type:W.Literal(`validation:command:start`),command:W.String()}),W.Object({type:W.Literal(`validation:command:complete`),command:W.String(),exitCode:W.Number(),output:W.String()}),W.Object({type:W.Literal(`validation:command:timeout`),command:W.String(),timeoutMs:W.Number(),pid:W.Number()}),W.Object({type:W.Literal(`validation:complete`),passed:W.Boolean()}),W.Object({type:W.Literal(`validation:fix:start`),attempt:W.Number(),maxAttempts:W.Number()}),W.Object({type:W.Literal(`validation:fix:complete`),attempt:W.Number()}),W.Object({type:W.Literal(`prd_validation:start`)}),W.Object({type:W.Literal(`prd_validation:complete`),passed:W.Boolean(),gaps:W.Array(Ug),completionPercent:W.Optional(W.Number())}),W.Object({type:W.Literal(`gap_close:start`),gapCount:W.Optional(W.Number()),completionPercent:W.Optional(W.Number())}),W.Object({type:W.Literal(`gap_close:plan_ready`),planBody:W.String(),gaps:W.Array(Ug)}),W.Object({type:W.Literal(`gap_close:complete`),passed:W.Boolean()}),W.Object({type:W.Literal(`acceptance_validation:complete`),passed:W.Boolean(),verdicts:W.Array(Wg,{minItems:1}),waivers:W.Optional(W.Array(W.String())),acceptanceConflicts:W.Optional(W.Array(Gg)),source:W.String({minLength:1})}),W.Object({type:W.Literal(`reconciliation:start`)}),W.Object({type:W.Literal(`reconciliation:complete`),report:c_}),W.Object({type:W.Literal(`cleanup:start`),planSet:W.String()}),W.Object({type:W.Literal(`cleanup:complete`),planSet:W.String()}),W.Object({type:W.Literal(`approval:needed`),planId:W.Optional(W.String()),action:W.String(),details:W.String()}),W.Object({type:W.Literal(`approval:response`),approved:W.Boolean()}),W.Object({type:W.Literal(`enqueue:start`),source:W.String()}),W.Object({type:W.Literal(`enqueue:complete`),id:W.String(),filePath:W.String(),title:W.String(),planSet:W.String()}),W.Object({type:W.Literal(`enqueue:failed`),error:W.String()}),W.Object({type:W.Literal(`enqueue:commit-failed`),error:W.String()}),W.Object({type:W.Literal(`recovery:start`),prdId:W.String(),setName:W.String()}),W.Object({type:W.Literal(`recovery:summary`),prdId:W.String(),summary:v_}),W.Object({type:W.Literal(`recovery:complete`),prdId:W.String(),verdict:Ag,sidecarMdPath:W.Optional(W.String()),sidecarJsonPath:W.Optional(W.String())}),W.Object({type:W.Literal(`recovery:error`),prdId:W.String(),error:W.String(),rawOutput:W.Optional(W.String())}),W.Object({type:W.Literal(`recovery:auto-resume:evaluate`),prdId:W.String(),setName:W.String(),enabled:W.Boolean(),attempt:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:0,maximum:3})}),W.Object({type:W.Literal(`recovery:auto-resume:queued`),prdId:W.String(),setName:W.String(),action:W.Literal(`continue-repair`),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1,maximum:3})}),W.Object({type:W.Literal(`recovery:auto-resume:stopped`),prdId:W.String(),setName:W.String(),reason:W.Union([W.Literal(`disabled`),W.Literal(`attempt-budget-exhausted`),W.Literal(`not-continue-repair`),W.Literal(`not-high-confidence`),W.Literal(`not-eligible`),W.Literal(`manual-confirmation-required`),W.Literal(`partial-sidecar`),W.Literal(`malformed-sidecar`),W.Literal(`missing-sidecar`),W.Literal(`ineligible-artifacts`),W.Literal(`dirty-worktree`),W.Literal(`conflicting-worktree`),W.Literal(`queue-preflight-blocked`),W.Literal(`conflicting-applied-marker`),W.Literal(`active-gate-or-hold`),W.Literal(`repeated-failure-signature`),W.Literal(`error`)]),attempt:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:0,maximum:3}),message:W.Optional(W.String())}),W.Object({type:W.Literal(`recovery:apply:start`),prdId:W.String()}),W.Object({type:W.Literal(`recovery:apply:complete`),prdId:W.String(),verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)]),noAction:W.Boolean()}),W.Object({type:W.Literal(`recovery:apply:error`),prdId:W.String(),message:W.String()})],ax=[...ex,...zb,...nx,...$b,...V_,...B_,...ix,...U_,...F_,W.Object({type:W.Literal(`plan:build:decision`),planId:W.String(),decision:N_}),M_,...rx,...H_],ox=W.Union([...ax]),sx=W.Intersect([z_,ox]),cx=W.Object({type:W.Literal(`daemon:heartbeat`),timestamp:W.String(),uptime:W.Number(),queueDepth:W.Number(),runningBuilds:W.Number(),autoBuild:W.Object({enabled:W.Boolean(),paused:W.Boolean(),...A_}),subscribers:W.Number()}),lx=W.Object({id:W.Number(),event:sx}),ux=W.Object({id:W.String(),sessionId:W.Optional(W.String()),planSet:W.String(),command:W.String(),status:W.String(),startedAt:W.String(),completedAt:W.Optional(W.String()),cwd:W.String(),pid:W.Optional(W.Number())}),dx=W.Object({id:W.String(),title:W.String(),status:W.String(),priority:W.Optional(W.Number()),created:W.Optional(W.String()),dependsOn:W.Optional(W.Array(W.String())),dispatchFailure:W.Optional(W.Object({reason:W.String(),stage:W.Union([W.Literal(`stacking-validation`),W.Literal(`policy-gate`),W.Literal(`profile-routing`),W.Literal(`dispatch`)]),timestamp:W.String()})),recoveryVerdict:W.Optional(W.Object({verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)]),confidence:W.Union([W.Literal(`low`),W.Literal(`medium`),W.Literal(`high`)])})),hold:W.Optional(x_),capabilities:b_,recoveryApplied:W.Optional(W.Union([W.Object({action:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`)]),appliedAt:W.String(),commitSha:W.Optional(W.String())}),W.Object({action:W.Literal(`accepted-success`),acceptedAt:W.String(),reasonCategory:W.Union([W.Literal(`bad_acceptance_criterion`),W.Literal(`manual_verification_passed`),W.Literal(`external_or_inconclusive_criterion_waived`),W.Literal(`other`)]),reason:W.String(),cleanup:W.Object({status:W.Union([W.Literal(`committed`),W.Literal(`noop`)]),commitSha:W.Optional(W.String())}),landing:W.Object({action:W.Union([W.Literal(`pr`),W.Literal(`merge`),W.Literal(`leave`)]),status:W.Union([W.Literal(`complete`),W.Literal(`skipped`),W.Literal(`failed`)]),prUrl:W.Optional(W.String()),mergeCommitSha:W.Optional(W.String()),branch:W.Optional(W.String()),reason:W.Optional(W.String()),autoMerge:W.Optional(W.Union([W.Object({status:W.Literal(`complete`)}),W.Object({status:W.Literal(`skipped`),reason:W.String()}),W.Object({status:W.Literal(`failed`),reason:W.String()})]))}),dependents:W.Object({unblocked:W.Array(W.String()),remainedBlocked:W.Array(W.String()),notFound:W.Array(W.String())})})]))}),fx=W.Object({planCount:W.Union([W.Number(),W.Null()]),baseProfile:W.Union([W.String(),W.Null()])}),px=W.Object({enabled:W.Boolean(),watcher:W.Object({running:W.Boolean(),pid:W.Union([W.Number(),W.Null()]),sessionId:W.Union([W.String(),W.Null()])}),...A_});W.Object({cursor:W.Number(),liveness:cx,recentActivity:W.Array(lx),runs:W.Array(ux),queue:W.Array(dx),sessionMetadata:W.Record(W.String(),fx),autoBuild:px,stackLayers:W.Array(Og),failedEnqueues:W.Array(w_),stackSyncStatus:W.Optional(W.Object({last:W.Optional(W.Object({id:W.String(),trigger:W.Optional(W.Union([W.Literal(`manual`),W.Literal(`after-build`),W.Literal(`scheduled`),W.Literal(`retry-deferred`)])),activeBuildPolicy:W.Optional(W.Union([W.Literal(`skip`),W.Literal(`defer`)])),startedAt:W.String(),completedAt:W.Optional(W.String()),outcome:W.Union([W.Literal(`skipped`),W.Literal(`complete`),W.Literal(`failed`),W.Literal(`conflict`),W.Literal(`deferred`)]),reason:W.Optional(W.String()),error:W.Optional(W.String()),dryRun:W.Boolean(),localTrunkSha:W.Optional(W.String()),originTrunkSha:W.Optional(W.String()),fastForward:W.Optional(W.Boolean()),restackCandidates:W.Array(W.String()),activeBuildSkips:W.Optional(W.Array(W.Object({branch:W.String(),worktree:W.Optional(W.String()),reason:W.String()}))),providerCommands:W.Optional(W.Array(W.Object({command:W.String(),args:W.Array(W.String()),dryRun:W.Boolean(),ran:W.Boolean(),stdout:W.Optional(W.String()),stderr:W.Optional(W.String()),exitCode:W.Optional(W.Number())})))})),current:W.Optional(W.Object({id:W.String(),trigger:W.Optional(W.Union([W.Literal(`manual`),W.Literal(`after-build`),W.Literal(`scheduled`),W.Literal(`retry-deferred`)])),activeBuildPolicy:W.Optional(W.Union([W.Literal(`skip`),W.Literal(`defer`)])),startedAt:W.String(),completedAt:W.Optional(W.String()),outcome:W.Optional(W.Union([W.Literal(`skipped`),W.Literal(`complete`),W.Literal(`failed`),W.Literal(`conflict`),W.Literal(`deferred`)])),reason:W.Optional(W.String()),error:W.Optional(W.String()),dryRun:W.Boolean(),localTrunkSha:W.Optional(W.String()),originTrunkSha:W.Optional(W.String()),fastForward:W.Optional(W.Boolean()),restackCandidates:W.Array(W.String()),activeBuildSkips:W.Optional(W.Array(W.Object({branch:W.String(),worktree:W.Optional(W.String()),reason:W.String()}))),providerCommands:W.Optional(W.Array(W.Object({command:W.String(),args:W.Array(W.String()),dryRun:W.Boolean(),ran:W.Boolean(),stdout:W.Optional(W.String()),stderr:W.Optional(W.String()),exitCode:W.Optional(W.Number())})))}))}))}),W.Object({cursor:W.Number(),status:W.Union([W.Literal(`pending`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`)]),events:W.Array(W.Object({id:W.Number(),data:W.String()}))});var mx=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),hx=function(e){return`/`+e},gx={},_x=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=hx(t,n),t=s(t),t in gx)return;gx[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:mx,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},vx=W.Object({description:W.Optional(W.String()),whenToUse:W.Optional(W.Array(W.String())),tags:W.Optional(W.Array(W.String()))},{additionalProperties:!0}),yx=W.Object({name:W.String(),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),path:W.String(),scope:W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user`)]),shadowedBy:W.Optional(W.Union([W.Literal(`local`),W.Literal(`project`)])),metadata:W.Optional(vx)},{additionalProperties:!0}),bx=W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user-local`),W.Literal(`missing`),W.Literal(`none`)]);W.Object({profiles:W.Array(yx),active:W.Union([W.String(),W.Null()]),source:bx},{additionalProperties:!0});function xx(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t}function Sx(e,t){if(!(t===void 0&&e===void 0))return xx([...e??[],...t??[]])}function Cx(e,t){let n=Sx(e.dependsOn,t);return n===void 0?e:{...e,dependsOn:n}}function wx(e,t){if(t===void 0)return e;let n=xx(t);if(n.length===0){let{dependsOn:t,...n}=e;return n}return{...e,dependsOn:n}}function Tx(e){let{recoveryVerdict:t,recoveryApplied:n,dispatchFailure:r,...i}=e;return i}function Ex(e){return e===`failed`||e===`skipped`}function Dx(e,t){if(e.dependsOn===void 0&&e.status===t)return e;let{dependsOn:n,...r}=e;return{...r,status:t}}function Ox(e,t){if(!t.queue.some(t=>t.id===e.id))return{queue:[...t.queue,{id:e.id,title:e.title,status:`pending`}]}}function kx(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1){let n=wx({id:e.prdId,title:e.title,status:`pending`},e.dependsOn);return{queue:[...t.queue,n]}}let r=Tx(t.queue[n]),i=r.status===`running`?r.status:`pending`,a=wx({...r,title:e.title,status:i},e.dependsOn),o=[...t.queue];return o[n]=a,{queue:o}}function Ax(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=t.queue[n];if(Ex(r.status))return;let i=Cx(r,e.blockedBy);if(i===r)return;let a=[...t.queue];return a[n]=i,{queue:a}}function jx(e,t){let n={reason:e.reason,stage:e.stage,timestamp:e.timestamp},r=t.queue.findIndex(t=>t.id===e.prdId);if(r===-1)return{queue:[...t.queue,{id:e.prdId,title:e.title,status:`failed`,dispatchFailure:n}]};let i=[...t.queue];return i[r]={...Dx(i[r],`failed`),title:e.title,dispatchFailure:n},{queue:i}}function Mx(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=t.queue[n];if(Ex(r.status))return;let i=[...t.queue];if(e.currentDependsOn.length===0){let{dependsOn:e,...t}=r;i[n]=r.status===`waiting`?{...t,status:`pending`}:t}else i[n]={...r,dependsOn:xx(e.currentDependsOn)};return{queue:i}}var Nx={"session:start":{scope:`daemon`,persist:!0,summary:`Session started`,project:()=>void 0},"session:end":{scope:`daemon`,persist:!0,summary:e=>`Session ended: ${e.result.status}`,project:()=>void 0},"session:profile":{scope:`session`,persist:!1},"phase:start":{scope:`session`,persist:!1,summary:e=>`Phase: ${e.command} starting`},"phase:end":{scope:`session`,persist:!1,summary:e=>`Phase complete: ${e.result.status}`},"config:warning":{scope:`session`,persist:!1,summary:e=>`Config warning: ${e.message}`},"planning:warning":{scope:`session`,persist:!1,summary:e=>e.planId?`Plan warning (${e.planId}): ${e.message}`:`Plan warning: ${e.message}`},"planning:module:build-config:invalid":{scope:`session`,persist:!1,summary:e=>`Module ${e.moduleId} emitted invalid <build-config> (${e.reason}): ${e.errors.join(`; `)}`},"extension:event-handler:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} event hook failed (${e.pattern} on ${e.triggeringEventType}): ${e.message}`},"extension:event-handler:timeout":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} event hook timed out after ${e.timeoutMs}ms (${e.pattern} on ${e.triggeringEventType})`},"extension:action:start":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} started for ${e.extensionName}`},"extension:action:complete":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} completed for ${e.extensionName}`},"extension:action:failed":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} failed for ${e.extensionName}: ${e.errorCode}`},"extension:action:timeout":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} timed out for ${e.extensionName} after ${e.timeoutMs}ms`},"extension:agent-task:start":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} started (${e.taskKind})`},"extension:agent-task:progress":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} progress: ${e.message}`},"extension:agent-task:complete":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} completed (${e.taskKind})`},"extension:agent-task:failed":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} failed (${e.errorCode}): ${e.message}`},"extension:agent-task:cancelled":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} cancelled${e.reason?`: ${e.reason}`:``}`},"extension:agent-context:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} appended ${e.promptCharCount} chars to ${e.role}${e.tier?` (${e.tier})`:``}`},"extension:agent-context:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} agent-context hook failed for ${e.role}: ${e.message}`},"extension:agent-context:timeout":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} agent-context hook timed out after ${e.timeoutMs}ms for ${e.role}`},"extension:agent-context:unsupported":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} returned unsupported fields for ${e.role}: ${e.fields.join(`, `)} (deferred to EXTEND_08B)`},"extension:agent-tools:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} applied tools for ${e.role}: ${e.toolCount} accepted, ${e.excludedToolCount} excluded`},"queue:profile:selected":{scope:`session`,persist:!1,summary:e=>`Queue routed ${e.prdId} to profile "${e.profile}" via ${e.extensionName}:${e.routerName}${e.reason?` (${e.reason})`:``}`},"queue:profile:router-failed":{scope:`session`,persist:!1,summary:e=>`Profile router "${e.routerName}" (${e.extensionName}) failed for ${e.prdId}: ${e.message}`},"queue:profile:router-timeout":{scope:`session`,persist:!1,summary:e=>`Profile router "${e.routerName}" (${e.extensionName}) timed out after ${e.timeoutMs}ms for ${e.prdId}`},"queue:profile:invalid-selection":{scope:`session`,persist:!1,summary:e=>`Profile router "${e.routerName}" (${e.extensionName}) returned unknown profile "${e.requestedProfile}" for ${e.prdId}: ${e.message}`},"extension:policy:decision":{scope:`session`,persist:!1,summary:e=>`Policy gate ${e.method} (${e.extensionName}) returned ${e.decision}${e.reason?`: ${e.reason}`:``}`},"extension:policy:failed":{scope:`session`,persist:!1,summary:e=>`Policy gate ${e.method} (${e.extensionName}) failed under ${e.failurePolicy}: ${e.message}`},"extension:policy:timeout":{scope:`session`,persist:!1,summary:e=>`Policy gate ${e.method} (${e.extensionName}) timed out after ${e.timeoutMs}ms under ${e.failurePolicy}`},"extension:input-source:fetched":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} input source "${e.adapterName}" fetched "${e.sourceId}" (${e.contentLength} chars)`},"extension:input-source:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} input source "${e.adapterName}" failed for "${e.sourceId}" (${e.reason}): ${e.message}`},"extension:prd-enricher:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} PRD enricher "${e.enricherName}" applied to "${e.sourceId}" (changed: ${e.changed})`},"extension:prd-enricher:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} PRD enricher "${e.enricherName}" failed for "${e.sourceId}" (${e.reason}): ${e.message}`},"extension:reviewer-perspective:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} reviewer perspective "${e.perspectiveKey}" applied${e.planId?` (plan: ${e.planId})`:``}`},"extension:reviewer-perspective:skipped":{scope:`session`,persist:!1,summary:e=>`${e.extensionName?`Extension ${e.extensionName} reviewer perspective`:`Reviewer perspective`} "${e.perspectiveKey}" skipped (${e.reason})${e.message?`: ${e.message}`:``}`},"extension:validation-provider:start":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" started (${e.kind}${e.commandCount===void 0?``:`, ${e.commandCount} command(s)`})`},"extension:validation-provider:complete":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" ${e.status}${e.message?`: ${e.message}`:``}`},"extension:validation-provider:error":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" failed${e.command?` (command: ${e.command})`:``}: ${e.message}`},"extension:validation-provider:timeout":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" timed out after ${e.timeoutMs}ms${e.command?` (command: ${e.command})`:``}`},"planning:start":{scope:`session`,persist:!1,summary:e=>`Planning from ${e.label??e.source}`},"planning:inspection-summary":{scope:`session`,persist:!0,summary:e=>`Planner compact inspection summary: ${e.summary.relevantFiles.length} file(s), ${e.summary.observedFacts.length} fact(s), ${e.summary.importantFindings.length} finding(s)`},"planning:skip":{scope:`session`,persist:!1,summary:e=>`Planning skipped: ${e.reason}`},"planning:submission":{scope:`session`,persist:!1,summary:e=>`Planning submitted ${e.planCount} plan(s)`},"planning:error":{scope:`session`,persist:!1,summary:e=>`Planning error: ${e.reason}`},"planning:scope-context:failure":{scope:`session`,persist:!0,summary:e=>`Compile scope/context failure: ${e.failure.failureKind} from ${e.failure.source}; recovery ${e.failure.recovery.action}`},"planning:decomposition:start":{scope:`session`,persist:!0,summary:e=>`Context-managed planning: ${e.unitCount} unit(s), ${e.edgeCount} edge(s), parallelism ${e.limits.parallelism}`},"planning:decomposition:unit:queued":{scope:`session`,persist:!0,summary:e=>`Planning unit queued: ${e.unit.unitId}${e.unit.subsystemHints.length?` (${e.unit.subsystemHints.join(`, `)})`:``}`},"planning:decomposition:unit:running":{scope:`session`,persist:!0,summary:e=>`Planning unit running: ${e.unitId}`},"planning:decomposition:unit:progress":{scope:`session`,persist:!1,summary:e=>`Planning unit ${e.unitId}: ${e.message}`},"planning:decomposition:unit:completed":{scope:`session`,persist:!0,summary:e=>`Planning unit completed: ${e.unit.unitId} (${e.unit.coverage.coveredCriteria.length} criteria)`},"planning:decomposition:unit:skipped":{scope:`session`,persist:!0,summary:e=>`Planning unit skipped: ${e.unitId} \u2014 ${e.reason}`},"planning:decomposition:unit:failed":{scope:`session`,persist:!0,summary:e=>`Planning unit failed: ${e.unitId} \u2014 ${e.reason||e.evidence.observed.triggeredLimitKeys.join(`, `)}`},"planning:decomposition:schedule":{scope:`session`,persist:!0,summary:e=>`Planning schedule: running [${e.decision.runningUnitIds.join(`, `)}]; waiting ${e.decision.waitingUnitIds.length}; selected [${e.decision.selectedBatchUnitIds.join(`, `)}]`},"planning:decomposition:budget":{scope:`session`,persist:!0,summary:e=>`Planning budget: ${e.unitId} ${e.observed?.triggeredLimitKeys.length?`triggered ${e.observed.triggeredLimitKeys.join(`, `)}`:`within limits`}`},"planning:decomposition:compact-handoff":{scope:`session`,persist:!0,summary:e=>`Planning unit handoff: ${e.unitId??`unknown`} \u2192 ${e.artifactPath??`artifact`} (${e.byteLength} B)`},"planning:decomposition:synthesis:complete":{scope:`session`,persist:!0,summary:e=>`Context-managed synthesis complete: ${e.artifactPaths.length} artifact(s), ${e.completedUnitCount}/${e.failedUnitCount}/${e.skippedUnitCount} units`},"planning:map-reduce:atoms":{scope:`session`,persist:!0,summary:e=>`Map plan: ${e.atomCount} atom(s), ${e.edgeCount} edge(s)`},"planning:map-reduce:atom:status":{scope:`session`,persist:!0,summary:e=>`Atom ${e.atomId}: ${e.status}${e.reason?` (${e.reason})`:``}`},"planning:map-reduce:reduce-tree":{scope:`session`,persist:!0,summary:e=>`Reduce tree: ${e.nodeCount} node(s), max level ${e.maxDepth+1}`},"planning:map-reduce:reduce:status":{scope:`session`,persist:!0,summary:e=>`Reduce ${e.nodeId}: ${e.status}${e.reason?` (${e.reason})`:``}`},"planning:clarification":{scope:`session`,persist:!1,summary:e=>`Planning clarification needed (${e.questions.length} question(s))`},"planning:clarification:answer":{scope:`session`,persist:!1,summary:`Clarification answered, resuming planning`},"planning:progress":{scope:`session`,persist:!1},"planning:continuation":{scope:`session`,persist:!1,summary:e=>`Planning continuation attempt ${e.attempt}/${e.maxContinuations}${e.reason?` (${e.reason})`:``}`},"planning:pipeline":{scope:`session`,persist:!1,summary:e=>`Pipeline: ${e.compile.join(` → `)}`},"planning:complete":{scope:`session`,persist:!1,summary:e=>e.plans.length===0?`Planning complete: nothing to plan`:`Planning complete: ${e.plans.length} plan(s) created`},"planning:review:start":{scope:`session`,persist:!1,summary:`Reviewing plan files`},"planning:review:complete":{scope:`session`,persist:!1,summary:e=>e.issues.length===0?`Plan review complete: no issues`:`Plan review: ${e.issues.length} issue(s)`},"planning:evaluate:start":{scope:`session`,persist:!1,summary:`Evaluating plan review fixes`},"planning:evaluate:continuation":{scope:`session`,persist:!1,summary:e=>`Plan evaluation continuation attempt ${e.attempt}/${e.maxContinuations}`},"planning:evaluate:complete":{scope:`session`,persist:!1,summary:e=>`Plan evaluation: ${e.accepted} accepted, ${e.rejected} rejected`},"plan:build:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: starting`},"plan:build:implement:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: implementing`},"plan:build:implement:progress":{scope:`session`,persist:!1},"plan:build:implement:continuation":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: implementation continuation attempt ${e.attempt}/${e.maxContinuations}`},"plan:build:implement:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: implementation complete`},"plan:build:files_changed":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: ${e.files.length} file(s) changed`},"plan:build:review:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: reviewing`},"plan:build:review:complete":{scope:`session`,persist:!1,summary:e=>e.issues.length===0?`Plan ${e.planId}: review complete, no issues`:`Plan ${e.planId}: review complete, ${e.issues.length} issue(s)`},"plan:build:review:parallel:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: parallel review (${e.perspectives.join(`, `)})`},"plan:build:review:parallel:perspective:start":{scope:`session`,persist:!1},"plan:build:review:parallel:perspective:complete":{scope:`session`,persist:!1,summary:e=>e.issues.length>0?`Plan ${e.planId}: ${e.perspective} review, ${e.issues.length} issue(s)`:void 0},"plan:build:review:parallel:perspective:error":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: ${e.perspective} review failed: ${e.error}`},"plan:build:review:fix:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: applying ${e.issueCount} fix(es)`},"plan:build:review:fix:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: fixes applied`},"plan:build:review:fix:continuation":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: review-fixer continuation attempt ${e.attempt}/${e.maxContinuations}`},"plan:build:evaluate:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: evaluating fixes`},"plan:build:evaluate:continuation":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: evaluation continuation attempt ${e.attempt}/${e.maxContinuations}`},"plan:build:evaluate:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: evaluation complete, ${e.accepted} accepted, ${e.rejected} rejected`},"plan:build:doc-author:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: authoring docs`},"plan:build:doc-author:complete":{scope:`session`,persist:!1,summary:e=>e.docsAuthored>0?`Plan ${e.planId}: ${e.docsAuthored} doc(s) authored`:void 0},"plan:build:doc-sync:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: syncing docs`},"plan:build:doc-sync:complete":{scope:`session`,persist:!1,summary:e=>e.docsSynced>0?`Plan ${e.planId}: ${e.docsSynced} doc(s) synced`:void 0},"plan:build:test:ownership:violation":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: ${e.stage} violated test ownership (${e.declaredOwner}): ${e.reason}`},"plan:build:test:write:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: writing tests`},"plan:build:test:write:complete":{scope:`session`,persist:!1,summary:e=>e.testsWritten>0?`Plan ${e.planId}: ${e.testsWritten} test file(s) written`:void 0},"plan:build:test:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: running tests`},"plan:build:test:complete":{scope:`session`,persist:!1,summary:e=>{let t=[`${e.passed} passed`];return e.failed>0&&t.push(`${e.failed} failed`),e.testBugsFixed>0&&t.push(`${e.testBugsFixed} test bugs fixed`),`Plan ${e.planId}: tests ${t.join(`, `)}`}},"plan:build:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: complete`},"plan:build:recovery:start":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan ${e.blockerKind} recovery started (${e.maxAttempts} attempt(s))`},"plan:build:recovery:attempt:start":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan recovery attempt ${e.attempt}/${e.maxAttempts}`},"plan:build:recovery:attempt:result":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan recovery attempt ${e.attempt}/${e.maxAttempts} ${e.blockersCleared?`cleared blockers`:`left blockers`}`},"plan:build:recovery:skip":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan ${e.blockerKind} recovery skipped (${e.reason})`},"plan:build:recovery:exhausted":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan ${e.blockerKind} recovery exhausted`},"plan:build:failed":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: failed \u2014 ${e.error}`},"plan:build:progress":{scope:`session`,persist:!1},"plan:status:change":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: status \u2192 ${e.status}`,project:()=>void 0},"plan:error:set":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: error set`,project:()=>void 0},"plan:error:clear":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: error cleared`,project:()=>void 0},"schedule:start":{scope:`session`,persist:!1,summary:e=>`Scheduling ${e.planIds.length} plan(s)`},"plan:schedule:ready":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId} ready to schedule: ${e.reason}`},"plan:merge:start":{scope:`session`,persist:!1,summary:e=>`Merging plan ${e.planId}`},"plan:merge:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId} merged`},"plan:build:decision":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: decision (${e.decision.kind})`},"planning:decision":{scope:`session`,persist:!1,summary:e=>e.planId?`Planning decision (${e.decision.kind}) for plan ${e.planId}`:`Planning decision (${e.decision.kind})`},"plan:merge:resolve:start":{scope:`session`,persist:!1,summary:e=>`Resolving merge conflicts for plan ${e.planId}`},"plan:merge:resolve:complete":{scope:`session`,persist:!1,summary:e=>e.resolved?`Merge conflicts resolved for plan ${e.planId}`:`Failed to resolve merge conflicts for plan ${e.planId}`},"landing:start":{scope:`session`,persist:!1,summary:e=>`Landing (${e.action}): starting ${e.featureBranch} \u2192 ${e.baseBranch}`},"landing:complete":{scope:`session`,persist:!1,summary:e=>e.action===`pr`?e.prUrl?`Landing (${e.action}): PR ${e.prUrl}`:`Landing (${e.action}): PR created for ${e.featureBranch}`:e.action===`merge`?`Landing (${e.action}): merged ${e.featureBranch} into ${e.baseBranch}`:e.action===`leave`?`Landing (${e.action}): ${e.featureBranch} left for manual workflow`:`Landing (${e.action}): completed`},"landing:skipped":{scope:`session`,persist:!1,summary:e=>`Landing (${e.action}) skipped: ${e.reason}`},"landing:auto-merge:start":{scope:`session`,persist:!1,summary:e=>`PR auto-merge: enabling for ${e.prUrl}`},"landing:auto-merge:complete":{scope:`session`,persist:!1,summary:e=>`PR auto-merge: enabled for ${e.prUrl}`},"landing:auto-merge:skipped":{scope:`session`,persist:!1,summary:e=>`PR auto-merge skipped: ${e.reason}`},"stack:layer:recorded":{scope:`session`,persist:!0,summary:e=>`Stack layer recorded: ${e.prdId} (${e.status}) on ${e.branch}`,project:(e,t)=>t.stackLayers.find(t=>t.prdId===e.prdId)?{stackLayers:t.stackLayers.map(t=>t.prdId===e.prdId?{...t,stackId:e.stackId,parentPrdId:e.parentPrdId,provider:e.provider,branch:e.branch,baseBranch:e.baseBranch,...e.artifact!==void 0&&{artifact:e.artifact},...e.landingAction!==void 0&&{landingAction:e.landingAction},status:e.status,updatedAt:e.timestamp}:t)}:{stackLayers:[...t.stackLayers,{prdId:e.prdId,stackId:e.stackId,parentPrdId:e.parentPrdId,provider:e.provider,branch:e.branch,baseBranch:e.baseBranch,...e.artifact!==void 0&&{artifact:e.artifact},...e.landingAction!==void 0&&{landingAction:e.landingAction},status:e.status,recordedAt:e.timestamp,updatedAt:e.timestamp}]}},"stack:provider:command":{scope:`session`,persist:!0,summary:e=>{let t=e.args?[e.command,...e.args].join(` `):e.command;return`Stack provider (${e.provider}): ${t} \u2192 exit ${e.exitCode}`}},"stack:landing:update":{scope:`session`,persist:!0,summary:e=>{let t=`Stack landing: ${e.prdId} (${e.action}) ${e.status}`,n=e.baseRepairReason?` (base repaired: ${e.originalBaseBranch??`?`} \u2192 ${e.effectiveBaseBranch??`?`})`:``;return e.prUrl?`${t}${n} \u2014 ${e.prUrl}`:e.reason?`${t}${n} \u2014 ${e.reason}`:`${t}${n}`},project:(e,t)=>{let n=t.stackLayers.find(t=>t.prdId===e.prdId);if(!n)return;let r=n.status;return e.status===`complete`?r=e.action===`merge`?`merged`:`landed`:e.status===`failed`?r=`failed`:e.status===`skipped`&&(r=e.action===`merge`?`merged`:e.action===`leave`?`landed`:`failed`),{stackLayers:t.stackLayers.map(t=>t.prdId===e.prdId?{...t,status:r,landing:{action:e.action,status:e.status,prUrl:e.prUrl,reason:e.reason,originalBaseBranch:e.originalBaseBranch,effectiveBaseBranch:e.effectiveBaseBranch,baseRepairReason:e.baseRepairReason,startedAt:t.landing?.startedAt??e.timestamp,completedAt:e.status===`complete`||e.status===`failed`||e.status===`skipped`?e.timestamp:void 0},updatedAt:e.timestamp}:t)}}},"stack:landing:conflict:detected":{scope:`session`,persist:!0,summary:e=>`Stack landing conflict: ${e.prdId} ${e.operation} (${e.conflictedFiles.length} file(s))`},"stack:landing:conflict:recovery:start":{scope:`session`,persist:!0,summary:e=>`Stack landing recovery attempt ${e.attempt}/${e.maxAttempts}: ${e.prdId}`},"stack:landing:conflict:recovery:complete":{scope:`session`,persist:!0,summary:e=>`Stack landing recovery complete: ${e.prdId} after ${e.attempts} attempt(s)`},"stack:landing:conflict:recovery:failed":{scope:`session`,persist:!0,summary:e=>`Stack landing recovery failed: ${e.prdId} \u2014 ${e.reason}`},"merge:finalize:start":{scope:`session`,persist:!1,summary:e=>`Merging ${e.featureBranch} into ${e.baseBranch}`},"merge:finalize:complete":{scope:`session`,persist:!1,summary:e=>`Merged ${e.featureBranch} into ${e.baseBranch}`},"merge:finalize:skipped":{scope:`session`,persist:!1,summary:e=>`Feature branch merge skipped: ${e.reason}`},"merge:worktree:set":{scope:`session`,persist:!0,project:()=>void 0},"merge:worktree:clear":{scope:`session`,persist:!0,project:()=>void 0},"agent:start":{scope:`session`,persist:!1,summary:e=>e.planId?`Agent ${e.agent} started (plan ${e.planId})`:`Agent ${e.agent} started`},"agent:warning":{scope:`session`,persist:!1,summary:e=>`Agent ${e.agent} warning: ${e.message}`},"agent:stop":{scope:`session`,persist:!1,summary:e=>e.error?`Agent ${e.agent} stopped with error`:`Agent ${e.agent} stopped`},"agent:usage":{scope:`session`,persist:!1},"agent:message":{scope:`session`,persist:!1},"agent:tool_use":{scope:`session`,persist:!1},"agent:tool_result":{scope:`session`,persist:!1},"agent:result":{scope:`session`,persist:!1},"agent:activity":{scope:`session`,persist:!1,summary:e=>`Agent ${e.agent} activity (${e.totals?.filesChanged??0} files, ${e.attribution})`},"agent:retry":{scope:`session`,persist:!1,summary:e=>`Agent ${e.agent} retry attempt ${e.attempt}/${e.maxAttempts} (${e.subtype})`},"validation:start":{scope:`session`,persist:!1,summary:e=>`Running post-merge validation (${e.commands.length} command(s))`},"validation:command:start":{scope:`session`,persist:!1,summary:e=>`Running: ${e.command}`},"validation:command:complete":{scope:`session`,persist:!1,summary:e=>e.exitCode===0?`${e.command} passed`:`${e.command} failed (exit ${e.exitCode})`},"validation:command:timeout":{scope:`session`,persist:!1,summary:e=>`${e.command} timed out after ${Math.round(e.timeoutMs/1e3)}s`},"validation:complete":{scope:`session`,persist:!1,summary:e=>e.passed?`All validation commands passed`:`Validation failed`},"validation:fix:start":{scope:`session`,persist:!1,summary:e=>`Validation fix attempt ${e.attempt}/${e.maxAttempts}`},"validation:fix:complete":{scope:`session`,persist:!1,summary:e=>`Validation fix attempt ${e.attempt} complete`},"prd_validation:start":{scope:`session`,persist:!1,summary:`PRD validation starting`},"prd_validation:complete":{scope:`session`,persist:!1,summary:e=>e.passed?`PRD validation passed`:`PRD validation failed: ${e.gaps.length} gap(s)`},"gap_close:start":{scope:`session`,persist:!1,summary:e=>e.gapCount===void 0?`Closing PRD validation gaps`:`Closing ${e.gapCount} gap(s)`},"gap_close:plan_ready":{scope:`session`,persist:!1},"gap_close:complete":{scope:`session`,persist:!1,summary:e=>e.passed?`Gap closing complete: all gaps resolved`:`Gap closing complete: gaps remain`},"acceptance_validation:complete":{scope:`session`,persist:!1,summary:e=>{let t=e.verdicts.reduce((e,t)=>(e[t.verdict]+=1,e),{pass:0,fail:0,unknown:0}),n=e.acceptanceConflicts?.length??0,r=n>0?` (${n} conflict(s) reported)`:``;if(e.passed)return`Acceptance validation passed: ${e.verdicts.length} criterion/criteria verified${r}`;if(t.fail>0){let e=t.unknown>0?`, ${t.unknown} unknown`:``;return`Acceptance validation failed: ${t.fail} criterion/criteria failed${e}${r}`}let i=t.unknown===e.verdicts.length?`; no criterion was verified`:``;return`Acceptance validation inconclusive: ${t.unknown} criterion/criteria unknown${i}${r}`}},"reconciliation:start":{scope:`session`,persist:!1,summary:`Reconciling worktree state`},"reconciliation:complete":{scope:`session`,persist:!1,summary:e=>{let t=[];return e.report.valid.length>0&&t.push(`${e.report.valid.length} valid`),e.report.missing.length>0&&t.push(`${e.report.missing.length} missing`),e.report.corrupt.length>0&&t.push(`${e.report.corrupt.length} corrupt`),`Reconciliation complete: ${t.join(`, `)}`}},"cleanup:start":{scope:`session`,persist:!1,summary:e=>`Cleaning up plan files for ${e.planSet}`},"cleanup:complete":{scope:`session`,persist:!1,summary:e=>`Plan files removed for ${e.planSet}`},"approval:needed":{scope:`session`,persist:!1,summary:e=>`Approval needed: ${e.action}`},"approval:response":{scope:`session`,persist:!1,summary:e=>e.approved?`Approved`:`Denied`},"enqueue:start":{scope:`daemon`,persist:!0,summary:e=>`Enqueueing from ${e.source}`},"enqueue:complete":{scope:`daemon`,persist:!0,summary:e=>`Enqueued: ${e.title}`,project:Ox},"enqueue:failed":{scope:`daemon`,persist:!0,summary:e=>`Enqueue failed: ${e.error}`},"enqueue:commit-failed":{scope:`daemon`,persist:!0,summary:e=>`Enqueue commit failed: ${e.error}`},"build:terminal-failure":{scope:`session`,persist:!0,summary:e=>`Build terminal failure (${e.failure.scope}): ${e.failure.message}`},"build:resume:start":{scope:`session`,persist:!0,summary:e=>`Resuming compiled build for PRD ${e.prdId} on ${e.featureBranch}`},"build:resume:state":{scope:`session`,persist:!0,summary:e=>`Resume state seeded: ${e.seededMerged.length} merged, ${e.seededPending.length} pending on ${e.featureBranch}`},"build:resume:ineligible":{scope:`session`,persist:!0,summary:e=>`Resume ineligible: ${e.reason}`},"build:resume:artifacts":{scope:`session`,persist:!0,summary:e=>`Recovered ${e.plans.length} compiled plan artifact(s) for PRD ${e.prdId}`},"build:resume:complete":{scope:`session`,persist:!0,summary:e=>`Build resume complete for PRD ${e.prdId}`},"recovery:start":{scope:`session`,persist:!1,summary:e=>`Analysing failed build for PRD ${e.prdId}`},"recovery:summary":{scope:`session`,persist:!1},"recovery:complete":{scope:`session`,persist:!1,summary:e=>`Recovery analysis complete: ${e.verdict.verdict.toUpperCase()}`},"recovery:error":{scope:`session`,persist:!1,summary:e=>`Recovery parse failed: ${e.error}`},"recovery:auto-resume:evaluate":{scope:`daemon`,persist:!0,summary:e=>`Recovery auto-resume policy evaluated for ${e.prdId}: ${e.enabled?`enabled`:`disabled`} (${e.attempt}/${e.maxAttempts})`,project:(e,t)=>t.autoBuild?{autoBuild:{...t.autoBuild,recoveryAutoResume:{enabled:e.enabled,maxAttempts:e.maxAttempts,attempts:e.attempt,lastDecision:`evaluate`,prdId:e.prdId,setName:e.setName}}}:void 0},"recovery:auto-resume:queued":{scope:`daemon`,persist:!0,summary:e=>`Recovery auto-resume queued continue-repair for ${e.prdId} (${e.attempt}/${e.maxAttempts})`,project:(e,t)=>t.autoBuild?{autoBuild:{...t.autoBuild,recoveryAutoResume:{enabled:!0,maxAttempts:e.maxAttempts,attempts:e.attempt,lastDecision:`queued`,prdId:e.prdId,setName:e.setName}}}:void 0},"recovery:auto-resume:stopped":{scope:`daemon`,persist:!0,summary:e=>`Recovery auto-resume stopped for ${e.prdId}: ${e.reason}`,project:(e,t)=>t.autoBuild?{autoBuild:{...t.autoBuild,recoveryAutoResume:{enabled:e.reason!==`disabled`,maxAttempts:e.maxAttempts,attempts:e.attempt,lastDecision:`stopped`,prdId:e.prdId,setName:e.setName,stopReason:e.reason,...e.message===void 0?{}:{message:e.message}}}}:void 0},"recovery:apply:start":{scope:`session`,persist:!1},"recovery:apply:complete":{scope:`session`,persist:!1,summary:e=>e.noAction?`Recovery verdict is manual — no changes made`:`Recovery applied: ${e.verdict.toUpperCase()}`},"recovery:apply:error":{scope:`session`,persist:!1,summary:e=>`Recovery apply failed: ${e.message}`},"daemon:run:upsert":{scope:`daemon`,persist:!0,summary:e=>`Run ${e.run.id}: ${e.run.command} \u2192 ${e.run.status}`,project(e,t){let n=t.runs.findIndex(t=>t.id===e.run.id);if(n!==-1){let r=[...t.runs];return r[n]=e.run,{runs:r}}return{runs:[e.run,...t.runs]}}},"daemon:auto-build:paused":{scope:`daemon`,persist:!0,summary:e=>`Auto-build paused: ${e.reason}`,project(e,t){if(t.autoBuild&&!(!t.autoBuild.enabled&&t.autoBuild.desired!==`enabled`))return{autoBuild:{...t.autoBuild,enabled:!0,desired:`enabled`,mode:`paused`,scheduler:{...t.autoBuild.scheduler??{alive:!1},paused:!0}}}}},"daemon:lifecycle:starting":{scope:`daemon`,persist:!0,summary:e=>`Daemon starting (pid ${e.pid}, port ${e.port})`},"daemon:lifecycle:ready":{scope:`daemon`,persist:!0,summary:e=>`Daemon ready (pid ${e.pid}, port ${e.port})`},"daemon:lifecycle:shutdown:start":{scope:`daemon`,persist:!0,summary:e=>`Daemon shutting down (${e.signal}: ${e.reason})`},"daemon:lifecycle:shutdown:complete":{scope:`daemon`,persist:!0,summary:`Daemon shutdown complete`},"daemon:heartbeat":{scope:`daemon`,persist:!1,project(e,t){let n={at:Date.now(),payload:{uptime:e.uptime,queueDepth:e.queueDepth,runningBuilds:e.runningBuilds,autoBuild:e.autoBuild,subscribers:e.subscribers}};return t.autoBuild?{latestHeartbeat:n,autoBuild:{...t.autoBuild,enabled:e.autoBuild.enabled,...e.autoBuild.desired!==void 0&&{desired:e.autoBuild.desired},...e.autoBuild.mode!==void 0&&{mode:e.autoBuild.mode},...e.autoBuild.lastTransition!==void 0&&{lastTransition:e.autoBuild.lastTransition},...e.autoBuild.reason!==void 0&&{reason:e.autoBuild.reason},...e.autoBuild.recoveryAutoResume!==void 0&&{recoveryAutoResume:e.autoBuild.recoveryAutoResume},...e.autoBuild.scheduler!==void 0&&{scheduler:{...t.autoBuild.scheduler??{},...e.autoBuild.scheduler}}}}:{latestHeartbeat:n}}},"daemon:scheduler:dequeued":{scope:`daemon`,persist:!0,summary:e=>`Dequeued PRD ${e.prdId} (queue depth: ${e.queueDepth})`},"daemon:scheduler:capacity-blocked":{scope:`daemon`,persist:!0,summary:e=>`Scheduler capacity blocked (${e.runningCount}/${e.limit} running)`},"daemon:scheduler:dependency-blocked":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} blocked by: ${e.blockedBy.join(`, `)}`,project:Ax},"daemon:scheduler:paused":{scope:`daemon`,persist:!0,summary:()=>`Scheduler paused: new PRD launches suspended`},"daemon:scheduler:resumed":{scope:`daemon`,persist:!0,summary:()=>`Scheduler resumed: PRD launch discovery re-triggered`},"daemon:auto-build:enabled":{scope:`daemon`,persist:!0,summary:`Auto-build enabled`,project(e,t){if(t.autoBuild&&!t.autoBuild.enabled)return{autoBuild:{...t.autoBuild,enabled:!0}}}},"daemon:auto-build:disabled":{scope:`daemon`,persist:!0,summary:`Auto-build disabled`,project(e,t){if(t.autoBuild&&t.autoBuild.enabled)return{autoBuild:{...t.autoBuild,enabled:!1}}}},"daemon:auto-build:resumed":{scope:`daemon`,persist:!0,summary:`Auto-build resumed`,project(e,t){if(t.autoBuild&&!t.autoBuild.enabled)return{autoBuild:{...t.autoBuild,enabled:!0}}}},"daemon:auto-build:triggered":{scope:`daemon`,persist:!0,summary:e=>`Auto-build triggered: ${e.prdsEnqueued} PRD(s) enqueued`},"daemon:auto-build:transition":{scope:`daemon`,persist:!0,summary:e=>`Auto-build ${e.previousMode} \u2192 ${e.nextMode} (${e.desired})${e.reason?`: ${e.reason}`:``}`,project(e,t){if(!t.autoBuild)return;let n=e.desired===`enabled`;return{autoBuild:{...t.autoBuild,enabled:n,desired:e.desired,mode:e.nextMode,...e.nextMode===`paused`&&{scheduler:{...t.autoBuild.scheduler??{alive:!1},paused:!0}},lastTransition:{at:e.timestamp,previousMode:e.previousMode,nextMode:e.nextMode,desired:e.desired,reason:e.reason,source:e.source},reason:e.reason}}}},"daemon:recovery:start":{scope:`daemon`,persist:!0,summary:`Daemon recovery started`},"daemon:recovery:run-marked-failed":{scope:`daemon`,persist:!0,summary:e=>`Run ${e.runId} marked failed: ${e.reason}`},"daemon:recovery:lock-removed":{scope:`daemon`,persist:!0,summary:e=>`Stale lock removed: ${e.path} (pid ${e.pid})`},"daemon:recovery:lock-adopted":{scope:`daemon`,persist:!0,summary:e=>`Live queue lock adopted: ${e.path} (pid ${e.pid}, PRD ${e.prdId})`},"daemon:recovery:complete":{scope:`daemon`,persist:!0,summary:e=>`Daemon recovery complete: ${e.runsFailed} failed, ${e.locksRemoved} lock(s) removed`},"daemon:orphan:reaped":{scope:`daemon`,persist:!0,summary:e=>`Orphaned build reaped: ${e.runId} (pid ${e.pid})`},"daemon:failed-enqueue:upsert":{scope:`daemon`,persist:!0,summary:e=>`Failed enqueue ${e.failedEnqueue.runId}: ${e.failedEnqueue.failureReason}`,project(e,t){let n=(t.failedEnqueues??[]).filter(t=>t.runId!==e.failedEnqueue.runId);return{failedEnqueues:[e.failedEnqueue,...n].sort((e,t)=>t.failedAt.localeCompare(e.failedAt)||e.runId.localeCompare(t.runId))}}},"daemon:failed-enqueue:resolved":{scope:`daemon`,persist:!0,summary:e=>`Failed enqueue ${e.runId} resolved${e.spawnedSessionId?` as ${e.spawnedSessionId}`:``}`,project(e,t){let n=t.failedEnqueues??[],r=n.filter(t=>t.runId!==e.runId);if(r.length!==n.length)return{failedEnqueues:r}}},"daemon:warning":{scope:`daemon`,persist:!0,summary:e=>`Daemon warning [${e.source}]: ${e.message}`},"daemon:error":{scope:`daemon`,persist:!0,summary:e=>`Daemon error [${e.source}]: ${e.message}`},"queue:start":{scope:`daemon`,persist:!0,summary:e=>`PRD queue started: ${e.prdCount} PRD(s) in ${e.dir}`},"queue:prd:start":{scope:`daemon`,persist:!0,summary:e=>`Processing PRD: ${e.title} (${e.prdId})`,project(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=[...t.queue];return r[n]={...r[n],status:`running`},{queue:r}}},"queue:prd:discovered":{scope:`daemon`,persist:!0,summary:e=>`Discovered PRD: ${e.title} (${e.prdId})`,project:kx},"queue:prd:dependency-overridden":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} dependency override: removed ${e.removedDependency}`,project:Mx},"queue:prd:removed":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} removed from queue (was ${e.previousStatus})`,project:(e,t)=>t.queue.some(t=>t.id===e.prdId)?{queue:t.queue.filter(t=>t.id!==e.prdId)}:void 0},"queue:prd:stale":{scope:`daemon`,persist:!0,summary:e=>`PRD staleness (${e.prdId}): ${e.verdict} \u2014 ${e.justification}`,project(e,t){if(e.verdict===`proceed`)return;let n=t.queue.filter(t=>t.id!==e.prdId);if(n.length!==t.queue.length)return{queue:n}}},"queue:prd:skip":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} skipped: ${e.reason}`,project(e,t){let n=t.queue.filter(t=>t.id!==e.prdId);if(n.length!==t.queue.length)return{queue:n}}},"queue:prd:dispatch-failed":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} dispatch failed (${e.stage}): ${e.reason}`,project:jx},"queue:prd:commit-failed":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} commit failed: ${e.error}`,project(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=[...t.queue];return r[n]=Dx(r[n],`failed`),{queue:r}}},"queue:prd:complete":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} complete: ${e.status}`,project(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n!==-1){if(e.status===`failed`){let e=[...t.queue];return e[n]=Dx(e[n],`failed`),{queue:e}}return{queue:t.queue.filter(t=>t.id!==e.prdId)}}}},"queue:complete":{scope:`daemon`,persist:!0,summary:e=>`Queue complete: ${e.processed} processed, ${e.skipped} skipped`,project(e,t){let n=t.queue.filter(e=>e.status===`failed`).map(e=>Dx(e,`failed`));if(!(n.length===t.queue.length&&n.every((e,n)=>e===t.queue[n])))return{queue:n}}},"stack:sync:start":{scope:`daemon`,persist:!0,summary:e=>e.trigger?`Stack sync started (${e.trigger}, syncId: ${e.syncId})`:`Stack sync started (syncId: ${e.syncId})`},"stack:sync:complete":{scope:`daemon`,persist:!0,summary:e=>e.restackCandidates.length>0?`Stack sync complete: ${e.restackCandidates.length} branch(es) restacked`:`Stack sync complete (syncId: ${e.syncId})`},"stack:sync:failed":{scope:`daemon`,persist:!0,summary:e=>`Stack sync ${e.outcome}: ${e.reason}`},"stack:sync:deferred":{scope:`daemon`,persist:!0,summary:e=>`Stack sync deferred: ${e.reason}`},"stack:sync:skipped":{scope:`daemon`,persist:!0,summary:e=>`Stack sync skipped: ${e.reason}`},"base-sync:start":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync started: ${e.remote}/${e.baseBranch}`},"base-sync:conflict:attempt":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync conflict attempt ${e.attempt}/${e.maxAttempts}`},"base-sync:resolver:start":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync resolver started (${e.attempt}/${e.maxAttempts})`},"base-sync:resolver:complete":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync resolver ${e.resolved?`completed`:`failed`} (${e.attempt}/${e.maxAttempts})`},"base-sync:rebase:continue":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync continuing rebase (${e.attempt}/${e.maxAttempts})`},"base-sync:success":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync ${e.rebased?`rebased`:`already current`}: ${e.remote}/${e.baseBranch}`},"base-sync:budget:exhausted":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync exhausted ${e.attempts}/${e.maxAttempts} conflict attempts`}};Object.keys(Nx).filter(e=>{let t=Nx[e];return t.scope===`daemon`&&t.persist});var Px=`eforge:workstation:navigate`,Fx=`eforge:workstation:route`;function Ix(e){let t=e??(typeof window<`u`?window.location.hash:``),n=t.startsWith(`#`)?t.slice(1):t,r=new URLSearchParams(n),i=r.get(`bridgeToken`)??void 0,a=r.get(`path`)??void 0;return{...i?{bridgeToken:i}:{},...a?{initialPath:a}:{}}}function Lx(e,t){if(typeof window>`u`)return;let n=t?.bridgeToken??Ix().bridgeToken;n&&(t?.targetWindow??window.parent)?.postMessage({type:Px,bridgeToken:n,path:e},`*`)}function Rx(e,t){if(typeof window>`u`)return()=>{};let n=t?.bridgeToken??Ix().bridgeToken,r=t=>{let r=t.data;!r||typeof r!=`object`||r.type!==Fx||n&&r.bridgeToken!==n||typeof r.path==`string`&&e(r.path)};return window.addEventListener(`message`,r),()=>window.removeEventListener(`message`,r)}var zx=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/router.tsx`;function Bx(e){return e.replace(/^\/+|\/+$/g,``)}function Vx(e){let t=e.indexOf(`?`);return t<0?{path:Bx(e),search:``}:{path:Bx(e.slice(0,t)),search:e.slice(t)}}function Hx(){return{initialPath:()=>Ix().initialPath??``,subscribe:e=>Rx(e),push:e=>Lx(e)}}function Ux(){let e=()=>Bx(window.location.pathname)+window.location.search;return{initialPath:e,subscribe:t=>{let n=()=>t(e());return window.addEventListener(`popstate`,n),()=>window.removeEventListener(`popstate`,n)},push:e=>window.history.pushState(null,``,`/${e}`)}}function Wx(){return Ix().bridgeToken&&typeof window<`u`&&window.parent!==window?Hx():Ux()}var Gx=w.createContext(null);function Kx({children:e}){let t=w.useRef(null);t.current||=Wx();let n=t.current,[r,i]=w.useState(()=>n.initialPath());w.useEffect(()=>n.subscribe(e=>i(e)),[n]);let a=w.useCallback(e=>{i(e),n.push(e)},[n]),{path:o,search:s}=Vx(r),c=w.useMemo(()=>new URLSearchParams(s),[s]),l=w.useCallback(e=>{let t=new URLSearchParams(s);e(t);let n=t.toString();a(o+(n?`?${n}`:``))},[a,o,s]),u=w.useMemo(()=>({path:o,segments:o?o.split(`/`):[],query:c,navigate:a,setQuery:l}),[o,c,a,l]);return(0,I.jsxDEV)(Gx.Provider,{value:u,children:e},void 0,!1,{fileName:zx,lineNumber:91,columnNumber:10},this)}function qx(){let e=w.useContext(Gx);if(!e)throw Error(`useRouter must be used within RouterProvider`);return e}function Jx(){return w.useContext(Gx)}function Yx(e){return{priority:`medium`,tags:[],reasons:[],unresolvedDependsOn:[],activeTraceReasons:[],blocked:!1,ready:!1,reviewDue:!1,closed:!1,dependencies:[],dependents:[],notes:{claim:``,evidence:``,recheck:``,promotionPaths:``},recLanes:[],...e}}function Xx(e){let t={affectedItemIds:e.itemIds},n=[{kind:`session-plan`,stage:`planned`,status:e.state===`active`?`active`:`ready`,session:e.session,promotedAt:`2026-06-07T00:00:00.000Z`,...t},{kind:`queue-prd`,stage:e.state===`active`?`queued`:`completed`,status:e.state===`failed`?`failed`:`completed`,prdId:`${e.session}-prd`,queuedAt:`2026-06-07T00:01:00.000Z`,...t},{kind:`build-run`,stage:e.state===`failed`?`failed`:`running`,status:e.state===`failed`?`failed`:`running`,runId:`${e.session}-run`,sessionId:`${e.session}-build`,startedAt:`2026-06-07T00:02:00.000Z`,...t}];return(e.state===`pr-open`||e.state===`merged`||e.state===`partial`)&&n.push({kind:`pr`,stage:`pr-open`,status:`pr-open`,prUrl:e.prUrl??`https://example.test/pr/${e.session}`,featureBranch:`feature/${e.session}`,timestamp:`2026-06-07T00:03:00.000Z`,...t}),(e.state===`merged`||e.state===`partial`)&&n.push({kind:`landing`,stage:`merged`,status:`landed`,featureBranch:`feature/${e.session}`,commitSha:e.commitSha??`abc123`,landedAt:`2026-06-07T00:04:00.000Z`,...t}),e.state===`failed`&&n.push({kind:`last-event`,stage:`failed`,status:`failed`,runId:`${e.session}-run`,timestamp:`2026-06-07T00:04:00.000Z`,...t}),n}var Zx=Xx({itemIds:[`add-import-preview`,`recommend-next-work`],session:`2026-06-07-planning-foundations`,state:`partial`,commitSha:`def456`}),Qx={epicId:`planning`,title:`Planning workstation`,lifecycleState:`partial`,totalItemCount:3,shippedItemCount:1,activeItemCount:1,failedItemCount:0,itemRows:[{itemId:`add-import-preview`,title:`Add import preview`,lifecycleState:`shipped`,shipped:!0,evidence:`Merged at def456.`},{itemId:`recommend-next-work`,title:`Maintain next-work recommendations`,lifecycleState:`active`,shipped:!1,evidence:`Build still running.`},{itemId:`plan-workstation`,title:`Move planning into workstation`,lifecycleState:`active`,shipped:!1,evidence:`Session plan active.`}]},$x=[Yx({id:`add-import-preview`,title:`Add import preview`,status:`planned`,lane:`ready`,priority:`high`,tags:[`ux`,`cli`],ready:!0,recRank:2,epic:`planning`,epicRef:{id:`planning`,title:`Planning workstation`,status:`active`,missing:!1},notes:{claim:`Users want a dry-run preview before importing.`,evidence:``,recheck:``,promotionPaths:``},lifecycleState:`partial`,userStatus:`planned`,effectiveLifecycle:`partial`,reasonCodes:[`partial-plan`],associatedLinks:Zx,lifecycleLinks:Zx,epicProgress:Qx,planEligible:!1,planEligibilityReasonCode:`partial-plan`,planEligibilityReasonMessage:`A partial session plan already covers add-import-preview.`,planEligibilityLinks:Zx}),Yx({id:`recommend-next-work`,title:`Maintain next-work recommendations`,status:`planned`,lane:`ready`,priority:`medium`,ready:!0,recRank:1,recLanes:[`Planning foundations`],epic:`planning`,epicRef:{id:`planning`,title:`Planning workstation`,status:`active`,missing:!1},dependents:[{id:`add-import-preview`,title:`Add import preview`,status:`planned`,missing:!1,blocking:!1}],lifecycleState:`pr-open`,userStatus:`planned`,effectiveLifecycle:`pr-open`,reasonCodes:[`open-pr`],associatedLinks:Xx({itemIds:[`recommend-next-work`],session:`2026-06-07-recommendations`,state:`pr-open`,prUrl:`https://example.test/pr/recommendations`}),lifecycleLinks:Xx({itemIds:[`recommend-next-work`],session:`2026-06-07-recommendations`,state:`pr-open`,prUrl:`https://example.test/pr/recommendations`}),planEligible:!0}),Yx({id:`plan-workstation`,title:`Move planning into workstation`,status:`active`,lane:`in-progress`,priority:`high`,activeTraceReasons:[`active build run trace run-12`],reasons:[`active build run trace run-12`],epic:`planning`,epicRef:{id:`planning`,title:`Planning workstation`,status:`active`,missing:!1},lifecycleState:`active`,userStatus:`active`,effectiveLifecycle:`build`,reasonCodes:[`running-build`],associatedLinks:Xx({itemIds:[`plan-workstation`],session:`2026-06-07-plan-workstation`,state:`active`}),lifecycleLinks:Xx({itemIds:[`plan-workstation`],session:`2026-06-07-plan-workstation`,state:`active`}),epicProgress:Qx,planEligible:!1,planEligibilityReasonCode:`running-build`,planEligibilityReasonMessage:`plan-workstation is covered by running-build.`}),Yx({id:`auto-mode`,title:`Explore auto-mode draining`,status:`planned`,lane:`blocked`,priority:`low`,blocked:!0,unresolvedDependsOn:[`traceability`],recUnblock:`Land traceability first, then re-scope.`,dependencies:[{id:`traceability`,title:`Trace sidecars`,status:`planned`,missing:!1,blocking:!0}],epic:`extensions`,epicRef:{id:`extensions`,title:`Extension platform`,status:`planned`,missing:!1},lifecycleState:`failed`,userStatus:`planned`,effectiveLifecycle:`failed`,reasonCodes:[`failed-result`],associatedLinks:Xx({itemIds:[`auto-mode`],session:`2026-06-07-auto-mode`,state:`failed`}),lifecycleLinks:Xx({itemIds:[`auto-mode`],session:`2026-06-07-auto-mode`,state:`failed`}),planEligible:!1,planEligibilityReasonCode:`failed-result`,planEligibilityReasonMessage:`auto-mode is covered by failed-result.`}),Yx({id:`traceability`,title:`Trace sidecars`,status:`planned`,lane:`ready`,priority:`medium`,ready:!0,dependents:[{id:`auto-mode`,title:`Explore auto-mode draining`,status:`planned`,missing:!1,blocking:!0}],planEligible:!0}),Yx({id:`legacy-cleanup`,title:`Remove legacy board renderer`,status:`shipped`,lane:`done`,priority:`low`,closed:!0,lifecycleState:`merged`,lifecycleLinks:Xx({itemIds:[`legacy-cleanup`],session:`2026-06-07-legacy-cleanup`,state:`merged`,prUrl:`https://example.test/pr/legacy-cleanup`,commitSha:`fedcba`}),planEligible:!1,planEligibilityReasonCode:`merged-result`,planEligibilityReasonMessage:`legacy-cleanup already has merged result evidence.`}),Yx({id:`stale-idea`,title:`Revisit cron triggers`,status:`planned`,lane:`inbox`,priority:`low`,reviewDue:!0})],eS={lanes:[`inbox`,`ready`,`blocked`,`in-progress`,`done`].map(e=>({lane:e,title:e.replace(/(^|-)([a-z])/g,(t,n,r)=>e===`in-progress`?`In progress`:r.toUpperCase()),items:$x.filter(t=>t.lane===e)})),items:$x,epics:[{id:`planning`,title:`Planning workstation`,status:`active`},{id:`extensions`,title:`Extension platform`,status:`planned`}],lifecycleLinks:$x.flatMap(e=>e.lifecycleLinks??[]),epicProgress:[Qx]};function tS(e={}){let t=typeof e.lane==`string`?e.lane:void 0,n=e.includeClosed===!0,r=typeof e.limit==`number`?e.limit:50,i=typeof e.offset==`number`?e.offset:0,a=$x.filter(e=>(!t||e.lane===t)&&(n||!e.closed)),o=a.slice(i,i+r),s=i+o.length,c={limit:r,offset:i,returned:o.length,hasMore:s<a.length,...s<a.length?{nextOffset:s}:{}};return{schemaVersion:1,items:o.map(iS),total:a.length,limit:r,offset:i,lanes:eS.lanes.map(e=>rS(e,t,c)),epics:(eS.epics??[]).map(e=>({...e,tags:[],itemCount:$x.filter(t=>t.epic===e.id).length,openItemCount:$x.filter(t=>t.epic===e.id&&!t.closed).length})),counts:{total:$x.length,open:$x.filter(e=>!e.closed).length,closed:$x.filter(e=>e.closed).length},pagination:c}}function nS(e){let t=$x.find(t=>t.id===e);if(!t)throw Error(`Backlog item "${e}" not found.`);let n=e=>iS($x.find(t=>t.id===e.id)??Yx({id:e.id,title:e.title,status:e.status??`candidate`,lane:`inbox`}));return{schemaVersion:1,item:{...iS(t),path:`mock://backlog/items/${t.id}.md`,body:`# ${t.title}\n\n${t.notes.claim||`${t.title} claim.`}`,sections:{Claim:t.notes.claim||`${t.title} claim.`,Evidence:t.notes.evidence,Recheck:t.notes.recheck,"Promotion Paths":t.notes.promotionPaths},linkRows:t.linkRows??t.lifecycleLinks??[],failureEvidence:t.failureEvidence??[]},dependencies:t.dependencies.filter(e=>!e.missing).map(n),dependents:t.dependents.filter(e=>!e.missing).map(n)}}function rS(e,t,n){let r=$x.filter(t=>t.lane===e.lane);return{lane:e.lane,title:e.title,count:r.length,openCount:r.filter(e=>!e.closed).length,closedCount:r.filter(e=>e.closed).length,...t===e.lane?{pagination:n}:{}}}function iS(e){return{id:e.id,title:e.title,status:e.status,priority:e.priority,tags:e.tags,lane:e.lane,reasons:e.reasons,dependsOn:e.dependencies.map(e=>e.id),unresolvedDependsOn:e.unresolvedDependsOn,activeTraceReasons:e.activeTraceReasons,blocked:e.blocked,ready:e.ready,reviewDue:e.reviewDue,closed:e.closed,...e.epic?{epic:e.epic}:{},lifecycleState:e.lifecycleState,userStatus:e.userStatus,effectiveLifecycle:e.effectiveLifecycle,reasonCodes:e.reasonCodes,associatedLinks:e.associatedLinks,planEligible:e.planEligible,planEligibilityReasonCode:e.planEligibilityReasonCode,planEligibilityReasonMessage:e.planEligibilityReasonMessage,planEligibilityLinks:e.planEligibilityLinks,linkRows:e.linkRows}}var aS={schemaVersion:1,activeWork:[],readyCandidates:[{ref:`ready-import-preview`,itemId:`add-import-preview`,rationale:`Originally recommended before same-draft shipped filtering.`},{ref:`ready-traceability`,itemId:`traceability`,rationale:`Still ready after curation filtering.`}],recommendedNextSequence:[{ref:`next-recommendations`,itemId:`recommend-next-work`,rationale:`Foundation for choosing useful follow-up work.`},{ref:`next-import-preview`,itemId:`add-import-preview`,rationale:`Ready, scoped, and user-visible.`}],safeParallelizableGroups:[{ref:`planning-foundations`,title:`Planning foundations`,itemIds:[`add-import-preview`,`recommend-next-work`],rationale:`Shared workflow layer; plan together and implement in sequence.`,recommendedProfile:`excursion`}],blockedChains:[{ref:`auto-mode-chain`,itemIds:[`auto-mode`],blockedBy:[`traceability`],rationale:`Land traceability first, then re-scope.`}],rationaleAndAssumptions:[`Favor extension-owned workflow UX over engine changes.`,`Keep recommendations in private extension storage.`]},oS={itemId:`add-import-preview`,state:`non-actionable`,disposition:`de-actioned`,lifecycleState:`planned`,reasonCode:`partial-plan`,reasonMessage:`A partial session plan already covers add-import-preview.`,associatedLinks:[{kind:`session-plan`,label:`Session plan 2026-06-07-import-preview`,itemIds:[`add-import-preview`],session:`2026-06-07-import-preview`,status:`planning`,path:`.eforge/session-plans/2026-06-07-import-preview.md`,timestamp:`2026-06-07T00:00:00.000Z`}]},sS={itemId:`recommend-next-work`,state:`actionable`,lifecycleState:`none`,associatedLinks:[]},cS={schemaVersion:1,activeWork:[],readyCandidates:[{lane:`readyCandidates`,ref:`ready-import-preview`,itemId:`add-import-preview`,actionability:oS},{lane:`readyCandidates`,ref:`ready-traceability`,itemId:`traceability`,actionability:{itemId:`traceability`,state:`actionable`,lifecycleState:`none`,associatedLinks:[]}}],recommendedNextSequence:[{lane:`recommendedNextSequence`,ref:`next-recommendations`,itemId:`recommend-next-work`,actionability:sS},{lane:`recommendedNextSequence`,ref:`next-import-preview`,itemId:`add-import-preview`,actionability:oS}],safeParallelizableGroups:[{ref:`planning-foundations`,state:`partially-actionable`,itemIds:[`add-import-preview`,`recommend-next-work`],actionableItemIds:[`recommend-next-work`],suppressedItemIds:[`add-import-preview`],items:[oS,sS]}]},lS={state:`fresh`,reason:`Recommendation model matches the current source fingerprint.`,storedSourceFingerprint:`fresh-source-fingerprint`,comparedSourceFingerprint:`fresh-source-fingerprint`,baselineTaskId:`task-refresh-recommendations`},uS={state:`stale`,reason:`Recommendation source fingerprint drifted since the model was last applied.`,storedSourceFingerprint:`old-source-fingerprint`,comparedSourceFingerprint:`current-source-fingerprint`,baselineTaskId:`task-backlog-curation-ready`},dS={state:`fresh`,currentPath:`mock://recommendations/current.json`,statusPath:`mock://recommendations/status.json`,freshAt:`2026-06-07T00:00:00.000Z`,lastRefreshedBy:`put-recommendations`,sourceFingerprint:`fresh-source-fingerprint`,lastAppliedSourceFingerprint:`fresh-source-fingerprint`,reasons:[],staleReasons:[]},fS={state:`stale`,currentPath:`mock://recommendations/current.json`,statusPath:`mock://recommendations/status.json`,staleSince:`2026-06-07T00:05:00.000Z`,lastRefreshedBy:`apply-planning-agent-task-result`,sourceFingerprint:`current-source-fingerprint`,lastAppliedSourceFingerprint:`old-source-fingerprint`,reasons:[{code:`source-fingerprint-drift`,message:`Recommendation source fingerprint drifted since the model was last applied.`,summary:`Recommendation source fingerprint drifted since the model was last applied.`,sourceFingerprint:`current-source-fingerprint`,lastAppliedSourceFingerprint:`old-source-fingerprint`},{eventType:`session:end`,itemIds:[`add-import-preview`],correlationKind:`single`,timestamp:`2026-06-07T00:05:00.000Z`,summary:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,code:`lifecycle:session:end`,message:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,refs:[`session-one`]}],staleReasons:[{code:`source-fingerprint-drift`,message:`Recommendation source fingerprint drifted since the model was last applied.`,summary:`Recommendation source fingerprint drifted since the model was last applied.`,sourceFingerprint:`current-source-fingerprint`,lastAppliedSourceFingerprint:`old-source-fingerprint`},{eventType:`session:end`,itemIds:[`add-import-preview`],correlationKind:`single`,timestamp:`2026-06-07T00:05:00.000Z`,summary:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,code:`lifecycle:session:end`,message:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,refs:[`session-one`]}]},pS={taskId:`task-mock-planning-draft`,kind:`eforge-plan.planning-draft`,status:`completed`,createdAt:`2026-06-07T00:00:00.000Z`,updatedAt:`2026-06-07T00:00:04.000Z`,startedAt:`2026-06-07T00:00:01.000Z`,completedAt:`2026-06-07T00:00:04.000Z`,metadata:{progressMessage:`Planner task completed`,summary:`Drafted focused planning output.`,outputSectionCount:2,warningCount:1},result:{summary:`Drafted recommendations and a session-plan patch for the selected backlog work.`,assumptionsOpenQuestions:[`Confirm whether import preview should be CLI-only or workstation-visible too.`],nextSteps:[`Preview the generated sections.`,`Apply only the pieces you want to keep.`],recommendations:aS,handoffDrafts:[{selection:{itemIds:[`import-preview`],status:`active`},session:`2026-06-07-import-preview`}],planDrafts:[{title:`Import preview plan`,body:`# Import preview plan
276
+ `;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function jm({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=Yp(t(r),e);n.push(i.trimStart())}}function Mm(e,t){let n=gp(t)?t.value:t;for(let r of e)if(hp(r)&&(r.key===t||r.key===n||gp(r.key)&&r.key.value===n))return r}var Nm=class extends qp{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(sp,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(Em(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=hp(e)?e:!e||typeof e!=`object`||!(`key`in e)?new Dm(e,e?.value):new Dm(e.key,e.value);let r=Mm(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);gp(r.value)&&Bp(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=Mm(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=Mm(this.items,e)?.value;return(!t&&gp(n)?n.value:n)??void 0}has(e){return!!Mm(this.items,e)}set(e,t){this.add(new Dm(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)wm(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!hp(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Om(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},Pm={collection:`map`,default:!0,nodeClass:Nm,tag:`tag:yaml.org,2002:map`,resolve(e,t){return mp(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>Nm.from(e,t,n)},Fm=class extends qp{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(up,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Im(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=Im(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&gp(r)?r.value:r}has(e){let t=Im(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=Im(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];gp(r)&&Bp(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(Ip(e,String(r++),t));return n}toString(e,t,n){return e?Om(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(Wp(a,void 0,n))}}return i}};function Im(e){let t=gp(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var Lm={collection:`seq`,default:!0,nodeClass:Fm,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return _p(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>Fm.from(e,t,n)};function Rm(e){return typeof e==`bigint`||Number.isInteger(e)}var zm=({value:e})=>JSON.stringify(e),Bm=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:zm},{identify:e=>e==null,createNode:()=>new Vp(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:zm},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:zm},{identify:Rm,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>Rm(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:zm}];[Pm,Lm].concat(Bm,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}});function Vm(e,t,n){let{replacer:r}=n,i=new Fm(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e))if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(Em(o,s,n))}return i}var Hm=class e extends Fm{constructor(){super(),this.add=Nm.prototype.add.bind(this),this.delete=Nm.prototype.delete.bind(this),this.get=Nm.prototype.get.bind(this),this.has=Nm.prototype.has.bind(this),this.set=Nm.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(hp(e)?(r=Ip(e.key,``,t),i=Ip(e.value,r,t)):r=Ip(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=Vm(e,t,n),i=new this;return i.items=r.items,i}};Hm.tag=`tag:yaml.org,2002:omap`;var Um=class e extends Nm{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=hp(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new Dm(e.key,null):new Dm(e,null),Mm(this.items,t.key)||this.items.push(t)}get(e,t){let n=Mm(this.items,e);return!t&&hp(n)?gp(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=Mm(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Dm(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(Em(e,null,n));return i}};Um.tag=`tag:yaml.org,2002:set`;var Wm=Symbol(`break visit`),Gm=Symbol(`skip children`),Km=Symbol(`remove item`);function qm(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),Jm(Object.freeze([]),e,t)}qm.BREAK=Wm,qm.SKIP=Gm,qm.REMOVE=Km,qm.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},qm.parentCollection=(e,t)=>{let n=qm.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function Jm(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=Jm(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===Wm)return Wm;else r===Km&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}var Ym=2e3,Xm=1e4,Zm=W.String({maxLength:Ym}),Qm=W.Array(Zm,{maxItems:32}),$m=W.Integer({minimum:0}),eh=W.Integer({minimum:1}),th=W.String({pattern:`^[a-f0-9]{64}$`}),nh=[`planning:decomposition:start`,`planning:decomposition:unit:queued`,`planning:decomposition:unit:running`,`planning:decomposition:unit:progress`,`planning:decomposition:unit:completed`,`planning:decomposition:unit:skipped`,`planning:decomposition:unit:failed`,`planning:decomposition:schedule`,`planning:decomposition:budget`,`planning:decomposition:compact-handoff`,`planning:decomposition:synthesis:complete`],rh=W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`skipped`),W.Literal(`failed`)]),ih=W.Object({parallelism:eh,maxDepth:eh,maxPromptSourceBytes:eh,maxPromptBytes:eh,maxObservedInputTokens:eh,maxObservedTurns:W.Optional(eh),maxCompactHandoffBytes:eh,maxLocalExplorationToolUses:eh,maxCriteriaPerUnit:eh,maxSubsystemsPerUnit:eh,maxSplitAttemptsPerUnit:eh},{additionalProperties:!1}),ah=W.Object({maxRecursiveDepth:$m,maxPromptSourceBytes:eh,maxPromptBytes:eh,maxObservedInputTokens:eh,maxObservedTurns:W.Optional(eh),maxCompactHandoffBytes:eh,maxLocalExplorationToolUses:eh,maxCriteriaPerUnit:eh,maxSubsystemsPerUnit:eh,maxSplitAttemptsPerUnit:eh},{additionalProperties:!1}),oh=W.Object({promptSourceBytes:W.Optional($m),promptBytes:W.Optional($m),observedInputTokens:W.Optional($m),observedTurns:W.Optional($m),compactHandoffBytes:W.Optional($m),localExplorationToolUses:W.Optional($m),criteriaCount:W.Optional($m),subsystemCount:W.Optional($m),splitAttempts:W.Optional($m),triggeredLimitKeys:W.Array(Zm,{maxItems:32})},{additionalProperties:!1}),sh=W.Object({kind:W.Union([W.Literal(`prd`),W.Literal(`artifact`),W.Literal(`file`),W.Literal(`criteria`),W.Literal(`other`)]),sourceHash:th,path:W.Optional(Zm),headingPath:W.Optional(Qm),startLine:W.Optional(eh),endLine:W.Optional(eh),byteStart:W.Optional($m),byteEnd:W.Optional($m),criteriaIds:W.Array(Zm,{maxItems:64}),byteLength:$m},{additionalProperties:!1}),ch=W.Object({criterionId:Zm,sourceHash:W.Optional(th),coveredByUnitIds:W.Array(Zm,{maxItems:128})},{additionalProperties:!1}),lh=W.Object({criterionId:Zm,reason:Zm,evidence:W.Optional(Zm)},{additionalProperties:!1}),uh=W.Object({totalCriteria:W.Optional($m),omittedCriteriaCount:W.Optional(W.Integer({minimum:0,maximum:Xm})),coveredCriteria:W.Array(ch,{maxItems:64}),unresolvedCriteria:W.Array(lh,{maxItems:32})},{additionalProperties:!1}),dh=W.Object({path:W.Optional(Zm),description:Zm},{additionalProperties:!1}),fh=W.Object({unitId:Zm,parentUnitId:W.Optional(Zm),depth:$m,sourceSlices:W.Array(sh,{maxItems:16}),coverage:uh,subsystemHints:Qm,dependencies:W.Array(Zm,{maxItems:32}),interfaceConstraints:W.Array(dh,{maxItems:32}),sharedFileConstraints:W.Array(dh,{maxItems:32}),budgets:ah,status:rh},{additionalProperties:!1}),ph=W.Object({unitId:Zm,blockedByUnitId:Zm,reason:W.Optional(Zm)},{additionalProperties:!1}),mh=W.Object({unitId:Zm,reasons:W.Array(Zm,{maxItems:32})},{additionalProperties:!1}),hh=W.Object({readyUnitIds:W.Array(Zm,{maxItems:128}),runningUnitIds:W.Array(Zm,{maxItems:128}),waitingUnitIds:W.Array(Zm,{maxItems:128}),waitingReasons:W.Array(mh,{maxItems:128}),selectedBatchUnitIds:W.Array(Zm,{maxItems:128}),parallelism:eh,blockedPairs:W.Array(ph,{maxItems:64})},{additionalProperties:!1}),gh=W.Object({unitId:W.Optional(Zm),attempt:eh,reason:Zm,resultingUnitIds:W.Array(Zm,{maxItems:128}),observed:W.Optional(oh)},{additionalProperties:!1}),_h=W.Object({unitId:Zm,parentUnitId:W.Optional(Zm),depth:$m,budgets:ah,observed:oh,assignedCriteriaIds:W.Array(Zm,{maxItems:64}),unresolvedCriteria:W.Array(lh,{maxItems:32}),blockers:Qm,splitAttempts:W.Array(gh,{maxItems:8})},{additionalProperties:!1}),vh={runId:W.Optional(W.String()),graphId:Zm,rootUnitId:Zm,unitCount:$m,edgeCount:$m,limits:ih},yh=W.Intersect([fh,W.Object({status:W.Literal(`queued`)})]),bh=W.Intersect([fh,W.Object({status:W.Literal(`completed`)})]),xh=W.Intersect([fh,W.Object({status:W.Literal(`skipped`)})]),Sh={unit:yh},Ch={unitId:Zm},wh={unitId:Zm,message:Zm,observed:W.Optional(oh)},Th={unit:bh},Eh={unitId:Zm,reason:Zm,unit:W.Optional(xh)},Dh={unitId:Zm,reason:Zm,evidence:_h},Oh={decision:hh},kh=W.Object({unitId:Zm,budget:ah},{additionalProperties:!1}),Ah={limits:ih,unitId:Zm,unitBudgets:W.Array(kh,{maxItems:128}),observed:W.Optional(oh)},jh={unitId:Zm,artifactPath:Zm,byteLength:$m,contentHash:th,omittedUnitIds:W.Array(Zm,{maxItems:128})},Mh={unitCount:$m,completedUnitCount:$m,failedUnitCount:$m,skippedUnitCount:$m,coverage:uh,artifactPaths:W.Array(Zm,{maxItems:32})},Nh=2e3,Ph=4096,Fh=4096,Ih=3e3,Lh=`eforge-validation-diagnostic-excerpt-bytes`,Rh=`eforge-validation-diagnostic-message-bytes`;La(Lh,e=>zh(e)<=Ph),La(Rh,e=>zh(e)<=Fh);function zh(e){return new TextEncoder().encode(e).length}var Bh=W.String({maxLength:Nh}),Vh=W.Array(Bh,{maxItems:12}),Hh=W.Integer({minimum:0}),Uh=W.Integer({minimum:1}),Wh=W.String({pattern:`^[a-f0-9]{64}$`}),Gh=W.String({maxLength:Ih}),Kh=W.Object({inputTokens:Hh,outputTokens:Hh,turns:Hh,promptBytes:Hh}),qh=W.Object({sourceId:W.Optional(Bh),sourceName:W.Optional(Bh),sourcePath:W.Optional(Bh),buildId:W.Optional(Bh),planSetName:W.Optional(Bh),runId:W.Optional(Bh)}),Jh=W.Object({sourceSummary:W.Optional(Gh),buildGoal:W.Optional(Gh),promptSourceSnippet:W.Optional(Gh)}),Yh=W.Object({relevantFiles:W.Optional(Hh),observedFacts:W.Optional(Hh),importantFindings:W.Optional(Hh),inferredImplementationAreas:W.Optional(Hh),unresolvedQuestions:W.Optional(Hh),toolUses:W.Optional(Hh),toolResults:W.Optional(Hh),toolUseSummaryBytes:W.Optional(Hh),toolResultSnippetBytes:W.Optional(Hh),importantFindingBytes:W.Optional(Hh),messageBytes:W.Optional(Hh),inferredImplementationAreaBytes:W.Optional(Hh),sourceIdBytes:W.Optional(Hh),sourceNameBytes:W.Optional(Hh),sourcePathBytes:W.Optional(Hh),buildIdBytes:W.Optional(Hh),planSetNameBytes:W.Optional(Hh),runIdBytes:W.Optional(Hh),sourceSummaryBytes:W.Optional(Hh),buildGoalBytes:W.Optional(Hh),promptSourceSnippetBytes:W.Optional(Hh),relevantFileBytes:W.Optional(Hh),caveatBytes:W.Optional(Hh)},{additionalProperties:!1}),Xh=W.Union([W.Literal(`none`),W.Literal(`bounded-decomposition`),W.Literal(`manual-reduce-scope`),W.Literal(`repair-existing-artifacts`)]),Zh=W.Union([W.Literal(`live-context-guard`),W.Literal(`provider`),W.Literal(`decomposition`)]),Qh=W.Union([W.Literal(`context-budget`),W.Literal(`context-window`),W.Literal(`context-length`),W.Literal(`scope-too-broad`),W.Literal(`decomposition-exhausted`)]),$h=W.Object({orchestrationExists:W.Boolean(),validPlanCount:Hh,invalidPlanCount:Hh,missingPlanFileCount:Hh,missingPlanFiles:Vh,invalidPlanFiles:Vh}),eg=W.Object({maxPromptBytes:Uh,maxObservedInputTokens:Uh,maxObservedTurns:W.Optional(Uh),maxExplanationBytes:Uh}),tg=W.Union([W.Literal(`registry`),W.Literal(`builtin`),W.Literal(`synthetic`),W.Literal(`fallback`)]),ng=W.Object({provider:W.Optional(W.String()),modelId:W.Optional(W.String()),metadataSource:tg,fallbackReason:W.Optional(Bh),contextWindow:W.Optional(Uh),outputReserveTokens:Uh,overheadReserveTokens:Uh,safetyMargin:W.Number({exclusiveMinimum:0,maximum:1}),limits:eg}),rg=W.Object({maxObservedInputTokens:Hh,softInputTokenThreshold:Hh,plannerMaxTurns:Uh,inspectionTurnBudget:Hh,softInputTokenRatio:W.Number({minimum:0,maximum:1}),softTurnRatio:W.Number({minimum:0,maximum:1}),guardDiagnostics:W.Optional(ng),observed:Kh,toolUseCount:Hh,toolResultCount:Hh}),ig=W.Object({kind:W.Literal(`planner-inspection-handoff`),version:W.Literal(1),source:qh,relevantFiles:W.Array(Bh,{maxItems:40}),observedFacts:W.Array(Bh,{maxItems:16}),importantFindings:W.Array(Bh,{maxItems:12}),inferredImplementationAreas:W.Array(Bh,{maxItems:16}),unresolvedQuestions:W.Array(Bh,{maxItems:8}),sourceBuildContext:Jh,budgetDiagnostics:rg,caveats:W.Array(Bh,{maxItems:8}),omittedCounts:Yh}),ag=W.Object({source:Zh,failureKind:Qh,stage:W.Union([W.Literal(`planner`),W.Literal(`compile`),W.Literal(`planning-decomposition`)]),explanation:Bh,observed:W.Optional(W.Object({inputTokens:W.Optional(Hh),outputTokens:W.Optional(Hh),turns:W.Optional(Hh),promptBytes:W.Optional(Hh)})),guardDiagnostics:W.Optional(ng),decompositionEvidence:W.Optional(_h),recovery:W.Object({action:Xh,eligible:W.Boolean(),attempted:W.Boolean(),attempt:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:1}),reason:Bh}),artifacts:$h}),og=W.Union([W.Literal(`live-context-guard`),W.Literal(`provider`)]),sg=W.Union([W.Literal(`context-budget`),W.Literal(`context-window`),W.Literal(`context-length`),W.Literal(`scope-too-broad`)]),cg=W.Intersect([ag,W.Union([W.Object({source:W.Literal(`decomposition`),failureKind:W.Literal(`decomposition-exhausted`),stage:W.Literal(`planning-decomposition`),decompositionEvidence:_h}),W.Object({source:og,failureKind:sg,decompositionEvidence:W.Optional(W.Never())})])]);Object.assign(cg,{properties:ag.properties}),W.Object({maxMessageBytes:W.Integer({minimum:1}),maxExcerptBytes:W.Integer({minimum:1})}),W.Object({schemaPath:W.String(),expectedType:W.String(),receivedType:W.String(),excerpt:W.String({maxLength:Ph,format:Lh}),payloadBytes:Hh,payloadSha256:Wh,omittedBytes:Hh,truncated:W.Boolean(),message:W.String({maxLength:Fh,format:Rh})});var lg=4096;new Set(nh);var ug=W.Union([W.Literal(`planner`),W.Literal(`builder`),W.Literal(`reviewer`),W.Literal(`review-fixer`),W.Literal(`evaluator`),W.Literal(`plan-reviewer`),W.Literal(`plan-evaluator`),W.Literal(`validation-fixer`),W.Literal(`merge-conflict-resolver`),W.Literal(`staleness-assessor`),W.Literal(`formatter`),W.Literal(`doc-author`),W.Literal(`doc-syncer`),W.Literal(`test-writer`),W.Literal(`tester`),W.Literal(`prd-validator`),W.Literal(`dependency-detector`),W.Literal(`gap-closer`),W.Literal(`recovery-analyst`)]),dg=W.Union([W.Literal(`error_max_turns`),W.Literal(`error_max_budget_usd`),W.Literal(`error_max_structured_output_retries`),W.Literal(`error_during_execution`),W.Literal(`error_pi_tool_infrastructure`),W.Literal(`error_context_window`),W.Literal(`error_transient_transport`)]);W.Union([W.Literal(`code`),W.Literal(`security`),W.Literal(`api`),W.Literal(`docs`),W.Literal(`test`),W.Literal(`verify`)]);var fg=W.String({pattern:`^[a-z][a-z0-9-]{0,63}$`,description:`A review perspective key: lowercase slug starting with a letter, 1–64 chars (e.g. "code", "accessibility")`}),pg=W.Union([W.Literal(`pr`),W.Literal(`merge`),W.Literal(`leave`)]),mg=W.Union([`resolved`,`false_positive`,`unresolved`,`unresolved_blocking`,`unresolved_nonblocking`,`needs_human_review`,`accepted_risk`,`split_to_followup`].map(e=>W.Literal(e)),{description:`Evaluator issue disposition separate from patch action. Missing values are interpreted conservatively by the engine.`}),hg={round:W.Optional(W.Integer({minimum:0}))},gg=W.Union([`builder`,`test-writer`,`existing-only`].map(e=>W.Literal(e)),{description:`Exclusive owner of new acceptance-test authoring for a plan`}),_g=W.String({minLength:1,maxLength:lg,pattern:`\\S`}),vg=W.Union([W.Literal(`addressed`),W.Literal(`deferred`),W.Literal(`obsolete`)]),yg=W.Object({issueId:_g,status:vg,note:W.Optional(W.String({minLength:1,maxLength:lg}))}),bg=W.Literal(`git-spice`),xg=W.Union([W.Literal(`branch-restack`),W.Literal(`stack-restack`),W.Literal(`repo-sync`),W.Literal(`unknown`)]),Sg=W.Union([W.Literal(`git-rebase`),W.Literal(`git-merge`),W.Literal(`unknown`)]),Cg=W.Union([W.Literal(`pr`),W.Literal(`merge`),W.Literal(`leave`)]),wg=W.Union([W.Literal(`pending`),W.Literal(`building`),W.Literal(`built`),W.Literal(`merged`),W.Literal(`landed`),W.Literal(`failed`)]),Tg=W.Object({branch:W.String(),commitSha:W.Optional(W.String()),prUrl:W.Optional(W.String())}),Eg=W.Union([W.Literal(`started`),W.Literal(`complete`),W.Literal(`skipped`),W.Literal(`failed`)]),Dg=W.Object({action:Cg,status:Eg,prUrl:W.Optional(W.String()),reason:W.Optional(W.String()),originalBaseBranch:W.Optional(W.String()),effectiveBaseBranch:W.Optional(W.String()),baseRepairReason:W.Optional(W.Literal(`parent-artifact-already-integrated`)),startedAt:W.String(),completedAt:W.Optional(W.String())}),Og=W.Object({prdId:W.String(),stackId:W.String(),parentPrdId:W.Optional(W.String()),provider:bg,branch:W.String(),baseBranch:W.Optional(W.String()),artifact:W.Optional(Tg),landingAction:W.Optional(Cg),landing:W.Optional(Dg),status:wg,recordedAt:W.String(),updatedAt:W.String()}),kg=W.Union([W.Literal(`proceed`),W.Literal(`revise`),W.Literal(`obsolete`)]),Ag=W.Object({verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)]),confidence:W.Union([W.Literal(`low`),W.Literal(`medium`),W.Literal(`high`)]),rationale:W.String(),completedWork:W.Array(W.String()),remainingWork:W.Array(W.String()),risks:W.Array(W.String()),partial:W.Optional(W.Boolean()),recoveryError:W.Optional(W.String()),recommendationSource:W.Optional(W.Union([W.Literal(`deterministic`),W.Literal(`analyst`),W.Literal(`manual-fallback`)])),recommendationRationale:W.Optional(W.String()),verdictInvalidationReason:W.Optional(W.String())}),jg=W.Object({id:W.String(),roots:W.Optional(W.Array(W.String())),files:W.Optional(W.Array(W.String()))}),Mg=W.Union([W.String(),W.Array(W.String())]);W.Union([W.Literal(`queue-dispatch`),W.Literal(`plan-merge`),W.Literal(`final-merge`)]),W.Union([W.Literal(`beforeQueueDispatch`),W.Literal(`beforePlanMerge`),W.Literal(`beforeFinalMerge`)]);var Ng=W.Union([W.Literal(`fail-open`),W.Literal(`fail-closed`)]),Pg={decision:W.Literal(`allow`),reason:W.Optional(W.String())},Fg={decision:W.Literal(`block`),reason:W.String({minLength:1})},Ig={decision:W.Literal(`require-approval`),reason:W.String({minLength:1})},Lg={extensionName:W.String(),extensionPath:W.String(),registrationIndex:W.Integer({minimum:0}),failurePolicy:Ng},Rg={gateKind:W.Literal(`queue-dispatch`),method:W.Literal(`beforeQueueDispatch`),...Lg,prdId:W.String(),prdTitle:W.Optional(W.String())},zg={gateKind:W.Literal(`plan-merge`),method:W.Literal(`beforePlanMerge`),...Lg,planId:W.String()},Bg={gateKind:W.Literal(`final-merge`),method:W.Literal(`beforeFinalMerge`),...Lg,featureBranch:W.String(),baseBranch:W.String(),planIds:W.Optional(W.Array(W.String()))},Vg=W.Object({strategy:W.Union([W.Literal(`auto`),W.Literal(`single`),W.Literal(`parallel`)]),perspectives:W.Array(fg),maxRounds:W.Number(),evaluatorStrictness:W.Union([W.Literal(`strict`),W.Literal(`standard`),W.Literal(`lenient`)])}),Hg=W.Object({compile:W.Array(W.String()),defaultBuild:W.Array(Mg),defaultReview:Vg,rationale:W.String()}),Ug=W.Object({requirement:W.String(),explanation:W.String(),complexity:W.Optional(W.Union([W.Literal(`trivial`),W.Literal(`moderate`),W.Literal(`significant`)]))}),Wg=W.Object({criterion:W.String({minLength:1}),verdict:W.Union([W.Literal(`pass`),W.Literal(`fail`),W.Literal(`unknown`)]),evidence:W.String({minLength:1})}),Gg=W.Object({criterion:W.String({minLength:1}),evidence:W.String({minLength:1}),conflictsWith:W.String({minLength:1}),scope:W.Union([W.Literal(`narrow`),W.Literal(`broad`),W.Literal(`unknown`)]),recommendedAction:W.Union([W.Literal(`revise_acceptance_criteria`),W.Literal(`manual_review`)])}),Kg=W.Object({status:W.Union([W.Literal(`completed`),W.Literal(`failed`),W.Literal(`skipped`)]),summary:W.String()}),qg=W.Object({id:W.String(),question:W.String(),context:W.Optional(W.String()),options:W.Optional(W.Array(W.String())),default:W.Optional(W.String())}),Jg=W.Union([W.Literal(`narrow`),W.Literal(`structural`),W.Literal(`manual`),W.Literal(`followup`)]),Yg=W.Union([W.Literal(`result`),W.Literal(`command`),W.Literal(`timeout`),W.Literal(`exception`),W.Literal(`unexpected-return`)]),Xg=W.Recursive(e=>W.Union([W.Null(),W.Boolean(),W.Number(),W.String({maxLength:lg}),W.Array(e),W.Record(W.String(),e)])),Zg=W.Object({issueId:W.Optional(_g),severity:W.Union([W.Literal(`critical`),W.Literal(`warning`),W.Literal(`suggestion`)]),category:W.String(),file:W.String(),line:W.Optional(W.Number()),description:W.String(),fix:W.Optional(W.String()),retryGuidance:W.Optional(W.String()),failureKind:W.Optional(W.String()),repairClass:W.Optional(Jg),metadata:W.Optional(W.Record(W.String(),Xg)),validationProviderName:W.Optional(W.String()),runtimeFailureKind:W.Optional(Yg)}),Qg=W.Object({severity:W.Union([W.Literal(`critical`),W.Literal(`warning`)]),category:W.Union([W.Literal(`production-bug`),W.Literal(`missing-behavior`),W.Literal(`regression`)]),file:W.String(),testFile:W.String(),description:W.String(),testOutput:W.Optional(W.String()),fix:W.Optional(W.String())}),$g=W.Object({id:W.String(),name:W.String(),dependsOn:W.Array(W.String()),branch:W.String(),migrations:W.Optional(W.Array(W.Object({timestamp:W.String(),description:W.String()}))),agents:W.Optional(W.Record(W.String(),W.Object({effort:W.Optional(W.String()),thinking:W.Optional(W.Union([W.Boolean(),W.Record(W.String(),W.Unknown())])),rationale:W.Optional(W.String()),tier:W.Optional(W.String()),shards:W.Optional(W.Array(jg))}))),body:W.String(),filePath:W.String(),warnings:W.Optional(W.Array(W.String()))}),e_=W.Object({id:W.String(),name:W.String(),dependsOn:W.Array(W.String()),branch:W.String(),build:W.Array(Mg),review:Vg,testOwnership:W.Optional(gg),maxContinuations:W.Optional(W.Number()),allowNoOpMerge:W.Optional(W.Boolean()),agents:W.Optional(W.Record(W.String(),W.Object({effort:W.Optional(W.String()),thinking:W.Optional(W.Union([W.Boolean(),W.Record(W.String(),W.Unknown())])),rationale:W.Optional(W.String()),tier:W.Optional(W.String())})))}),t_=W.Object({name:W.String(),description:W.String(),created:W.String(),baseBranch:W.String(),diffBaseRef:W.Optional(W.String()),pipeline:Hg,plans:W.Array(e_),validate:W.Optional(W.Array(W.String())),warnings:W.Optional(W.Array(W.String()))}),n_=W.Object({label:W.String(),content:W.Optional(W.String()),path:W.Optional(W.String())}),r_=W.Object({id:W.String(),name:W.String(),body:W.String(),dependsOn:W.Array(W.String()),branch:W.Optional(W.String()),build:W.Optional(W.Array(Mg)),review:W.Optional(Vg),testOwnership:W.Optional(gg)}),i_=W.Object({type:W.Literal(`build:resume:artifacts`),prdId:W.String(),setName:W.String(),featureBranch:W.String(),artifactSource:W.Union([W.Literal(`merge-worktree`),W.Literal(`branch-history`)]),artifactCommit:W.Optional(W.String()),source:n_,orchestration:t_,plans:W.Array(r_)}),a_=W.Union([W.Literal(`pending`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`blocked`),W.Literal(`merged`)]),o_=W.Object({status:a_,worktreePath:W.Optional(W.String()),branch:W.String(),dependsOn:W.Array(W.String()),merged:W.Boolean(),error:W.Optional(W.String())});W.Object({setName:W.String(),status:W.Union([W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`)]),startedAt:W.String(),completedAt:W.Optional(W.String()),baseBranch:W.String(),featureBranch:W.Optional(W.String()),worktreeBase:W.String(),mergeWorktreePath:W.Optional(W.String()),plans:W.Record(W.String(),o_),completedPlans:W.Array(W.String())});var s_=W.Object({durationMs:W.Number(),durationApiMs:W.Number(),numTurns:W.Number(),totalCostUsd:W.Number(),usage:W.Object({input:W.Number(),output:W.Number(),total:W.Number(),cacheRead:W.Number(),cacheCreation:W.Number()}),modelUsage:W.Record(W.String(),W.Object({inputTokens:W.Number(),outputTokens:W.Number(),cacheReadInputTokens:W.Number(),cacheCreationInputTokens:W.Number(),costUSD:W.Number()})),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),provider:W.Optional(W.String()),resultText:W.Optional(W.String())}),c_=W.Object({valid:W.Array(W.String()),missing:W.Array(W.String()),corrupt:W.Array(W.String()),cleared:W.Array(W.String())});W.Object({running:W.Boolean(),setName:W.Optional(W.String()),plans:W.Record(W.String(),a_),completedPlans:W.Array(W.String())});var l_=W.Object({sha:W.String(),subject:W.String(),author:W.String(),date:W.String()}),u_=W.Object({planId:W.String(),status:W.String(),mergedAt:W.Optional(W.String()),error:W.Optional(W.String()),terminalSubtype:W.Optional(W.String()),commitSha:W.Optional(W.String()),testPassed:W.Optional(W.Integer({minimum:0})),testFailed:W.Optional(W.Integer({minimum:0})),completedAt:W.Optional(W.String()),toolUseCount:W.Optional(W.Integer({minimum:0}))}),d_=W.Object({planId:W.String(),agentId:W.Optional(W.String()),agentRole:W.Optional(W.String()),errorMessage:W.Optional(W.String()),terminalSubtype:W.Optional(W.String()),toolUseCount:W.Optional(W.Integer({minimum:0}))}),f_=W.Union([W.Literal(`accept`),W.Literal(`reject`),W.Literal(`review`)]),p_=W.Object({file:W.String(),action:f_,reason:W.String(),hunk:W.Optional(W.Integer({minimum:1})),issueOutcome:W.Optional(mg),retryGuidance:W.Optional(W.String()),issueIds:W.Optional(W.Array(_g))}),m_=W.Object({planId:W.String(),issues:W.Array(Zg),evaluation:W.Optional(W.Object({accepted:W.Integer({minimum:0}),rejected:W.Integer({minimum:0}),review:W.Integer({minimum:0}),verdicts:W.Array(p_)}))}),h_=W.Union([W.Literal(`plan`),W.Literal(`post-merge-validation`),W.Literal(`prd-validation`),W.Literal(`acceptance-validation`),W.Literal(`artifact-recording`),W.Literal(`landing`),W.Literal(`daemon`),W.Literal(`compile`),W.Literal(`unknown`)]),g_=W.Object({status:W.String(),action:W.Optional(W.String()),reason:W.Optional(W.String())}),__=W.Object({scope:h_,message:W.String(),authoritative:W.Boolean(),planId:W.Optional(W.String()),terminalSubtype:W.Optional(dg),stage:W.Optional(W.String()),phaseSummary:W.Optional(W.String()),phaseStatus:W.Optional(W.String()),eventType:W.Optional(W.String()),sourceEventType:W.Optional(W.String()),sourceEventId:W.Optional(W.Integer()),sourceEventTimestamp:W.Optional(W.String()),landing:W.Optional(g_),validationPassed:W.Optional(W.Boolean()),prdValidationPassed:W.Optional(W.Boolean()),acceptanceValidationPassed:W.Optional(W.Boolean())}),v_=W.Object({prdId:W.String(),setName:W.String(),featureBranch:W.String(),baseBranch:W.String(),plans:W.Array(u_),failingPlan:d_,landedCommits:W.Array(l_),diffStat:W.String(),modelsUsed:W.Array(W.String()),failedAt:W.String(),partial:W.Optional(W.Boolean()),prdContent:W.Optional(W.String()),terminalFailure:W.Optional(W.Partial(__)),acceptanceValidation:W.Optional(W.Object({passed:W.Boolean(),total:W.Number(),pass:W.Number(),fail:W.Number(),unknown:W.Number(),verdicts:W.Array(Wg),waivers:W.Optional(W.Array(W.String())),conflicts:W.Optional(W.Array(Gg))})),validationCommands:W.Optional(W.Array(W.Object({command:W.String(),exitCode:W.Number(),output:W.Optional(W.String())}))),landing:W.Optional(g_),failingPlans:W.Optional(W.Array(d_)),reviewFailure:W.Optional(m_)}),y_=W.Object({allowed:W.Boolean(),reason:W.Optional(W.String())}),b_=W.Object({priority:y_,remove:y_,dependencyOverride:y_,hold:y_,unhold:y_,cascadeRemove:y_,cancel:y_,cascadeCancel:y_}),x_=W.Object({held:W.Boolean(),reason:W.Optional(W.String()),heldAt:W.Optional(W.String())}),S_=W.Object({label:W.String()},{additionalProperties:!1}),C_=W.Object({executable:W.String(),args:W.Array(W.String())},{additionalProperties:!1}),w_=W.Object({runId:W.String(),sessionId:W.Optional(W.String()),sourceLabel:W.String(),provenance:W.Optional(S_),failureReason:W.String(),failedAt:W.String(),canReenqueue:W.Boolean(),disabledReason:W.Optional(W.String()),nextCommand:C_,resolvedAt:W.Optional(W.String())},{additionalProperties:!1}),T_=W.Union([W.Literal(`enabled`),W.Literal(`disabled`)]),E_=W.Union([W.Literal(`disabled`),W.Literal(`starting`),W.Literal(`running`),W.Literal(`paused`),W.Literal(`stopping`),W.Literal(`restarting`),W.Literal(`faulted`)]),D_=W.Object({alive:W.Boolean(),paused:W.Boolean(),lastMutationReason:W.Optional(W.String()),runningCount:W.Optional(W.Number()),limit:W.Optional(W.Number())}),G=W.Object({at:W.String(),previousMode:E_,nextMode:E_,desired:T_,reason:W.Optional(W.String()),source:W.String()}),O_=W.Union([W.Literal(`disabled`),W.Literal(`attempt-budget-exhausted`),W.Literal(`not-continue-repair`),W.Literal(`not-high-confidence`),W.Literal(`not-eligible`),W.Literal(`manual-confirmation-required`),W.Literal(`partial-sidecar`),W.Literal(`malformed-sidecar`),W.Literal(`missing-sidecar`),W.Literal(`ineligible-artifacts`),W.Literal(`dirty-worktree`),W.Literal(`conflicting-worktree`),W.Literal(`queue-preflight-blocked`),W.Literal(`conflicting-applied-marker`),W.Literal(`active-gate-or-hold`),W.Literal(`repeated-failure-signature`),W.Literal(`error`)]),k_=W.Object({enabled:W.Boolean(),maxAttempts:W.Integer({minimum:0}),attempts:W.Integer({minimum:0}),lastDecision:W.Optional(W.Union([W.Literal(`evaluate`),W.Literal(`queued`),W.Literal(`stopped`)])),prdId:W.Optional(W.String()),setName:W.Optional(W.String()),stopReason:W.Optional(O_),message:W.Optional(W.String())}),A_={desired:W.Optional(T_),mode:W.Optional(E_),scheduler:W.Optional(D_),lastTransition:W.Optional(G),reason:W.Optional(W.String()),recoveryAutoResume:W.Optional(k_)},j_=W.Union([W.Object({kind:W.Literal(`build-pipeline-chosen`),rationale:W.String(),defaultBuild:W.Array(Mg,{minItems:1})}),W.Object({kind:W.Literal(`review-profile-chosen`),rationale:W.String(),strategy:W.Union([W.Literal(`auto`),W.Literal(`single`),W.Literal(`parallel`)]),perspectives:W.Array(fg,{minItems:1}),maxRounds:W.Integer({minimum:1}),evaluatorStrictness:W.Union([W.Literal(`strict`),W.Literal(`standard`),W.Literal(`lenient`)])}),W.Object({kind:W.Literal(`plan-set-shape`),rationale:W.String(),planCount:W.Integer({minimum:1}),planIds:W.Array(W.String(),{minItems:1})})]),M_=W.Object({type:W.Literal(`planning:decision`),planId:W.Optional(W.String()),decision:j_}),N_=W.Union([W.Object({kind:W.Literal(`review-strategy`),rationale:W.String(),strategy:W.Union([W.Literal(`single`),W.Literal(`parallel`)]),source:W.Union([W.Literal(`config`),W.Literal(`auto-threshold`)]),auto:W.Optional(W.Object({files:W.Integer({minimum:0}),lines:W.Integer({minimum:0}),threshold:W.Object({files:W.Integer({minimum:0}),lines:W.Integer({minimum:0})})}))}),W.Object({kind:W.Literal(`perspectives-inferred`),rationale:W.String(),perspectives:W.Array(fg),categories:W.Array(W.String()),rules:W.Array(W.String())}),W.Object({kind:W.Literal(`cycle-terminated`),rationale:W.String(),round:W.Integer({minimum:0}),reason:W.Union([W.Literal(`no-issues`),W.Literal(`max-rounds`)]),issuesRemaining:W.Integer({minimum:0}),lastReviewIssueCount:W.Optional(W.Integer({minimum:0})),finalEvaluationAccepted:W.Optional(W.Integer({minimum:0})),finalEvaluationRejected:W.Optional(W.Integer({minimum:0})),finalEvaluationRan:W.Optional(W.Boolean()),finalEvaluationResolved:W.Optional(W.Integer({minimum:0})),finalEvaluationFalsePositive:W.Optional(W.Integer({minimum:0})),finalEvaluationUnresolved:W.Optional(W.Integer({minimum:0})),finalEvaluationNeedsHumanReview:W.Optional(W.Integer({minimum:0})),finalEvaluationBlocking:W.Optional(W.Integer({minimum:0}))}),W.Object({kind:W.Literal(`perspectives-respawned`),rationale:W.String(),round:W.Integer({minimum:0}),perspectives:W.Array(fg),dropped:W.Array(fg)}),W.Object({kind:W.Literal(`evaluator-strictness`),rationale:W.String(),strictness:W.Union([W.Literal(`strict`),W.Literal(`standard`),W.Literal(`lenient`)]),source:W.Union([W.Literal(`config`),W.Literal(`default`)])}),W.Object({kind:W.Literal(`recovery-verdict`),rationale:W.String(),verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)])}),W.Object({kind:W.Literal(`merge-conflict-resolution`),rationale:W.String(),strategy:W.String(),files:W.Array(W.String())})]),P_=W.Union([W.Literal(`stacking-validation`),W.Literal(`policy-gate`),W.Literal(`profile-routing`),W.Literal(`dispatch`)]),F_=[W.Object({type:W.Literal(`queue:start`),prdCount:W.Number(),dir:W.String()}),W.Object({type:W.Literal(`queue:prd:start`),prdId:W.String(),title:W.String()}),W.Object({type:W.Literal(`queue:prd:discovered`),prdId:W.String(),title:W.String(),dependsOn:W.Optional(W.Array(W.String()))}),W.Object({type:W.Literal(`queue:prd:dependency-overridden`),prdId:W.String(),title:W.String(),removedDependency:W.String(),previousDependsOn:W.Array(W.String()),currentDependsOn:W.Array(W.String()),reason:W.Optional(W.String())}),W.Object({type:W.Literal(`queue:prd:removed`),prdId:W.String(),previousStatus:W.Union([W.Literal(`pending`),W.Literal(`waiting`),W.Literal(`failed`),W.Literal(`skipped`)]),removedSidecars:W.Optional(W.Array(W.String()))}),W.Object({type:W.Literal(`queue:prd:stale`),prdId:W.String(),title:W.String(),verdict:kg,justification:W.String(),revision:W.Optional(W.String())}),W.Object({type:W.Literal(`queue:prd:skip`),prdId:W.String(),reason:W.String()}),W.Object({type:W.Literal(`queue:prd:dispatch-failed`),prdId:W.String(),title:W.String(),reason:W.String(),stage:P_}),W.Object({type:W.Literal(`queue:prd:commit-failed`),prdId:W.String(),title:W.String(),error:W.String()}),W.Object({type:W.Literal(`queue:prd:complete`),prdId:W.String(),status:W.Union([W.Literal(`completed`),W.Literal(`failed`),W.Literal(`skipped`)])}),W.Object({type:W.Literal(`queue:complete`),processed:W.Number(),skipped:W.Number()})];W.Union([...F_]);var I_=W.Union([W.Literal(`default`),W.Literal(`rule`),W.Literal(`extension-router`),W.Literal(`fallback`)]),L_=W.Union([W.Literal(`no-match`),W.Literal(`router-declined`),W.Literal(`router-timeout`),W.Literal(`router-error`),W.Literal(`router-invalid-choice`)]),R_={planId:W.Optional(W.String()),agentId:W.String(),agent:ug,model:W.String(),harness:W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)]),harnessSource:W.Literal(`tier`),tier:W.String(),tierSource:W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`)]),runtimeChoice:W.String(),runtimeChoiceQualified:W.String(),runtimeChoiceSource:I_,runtimeChoiceRule:W.Optional(W.String()),runtimeChoiceRouter:W.Optional(W.String()),runtimeChoiceFallbackReason:W.Optional(L_),effort:W.Optional(W.String()),effortSource:W.Optional(W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`)])),thinking:W.Optional(W.Record(W.String(),W.Unknown())),thinkingSource:W.Optional(W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`)])),effortClamped:W.Optional(W.Boolean()),effortOriginal:W.Optional(W.String()),thinkingCoerced:W.Optional(W.Boolean()),thinkingOriginal:W.Optional(W.Record(W.String(),W.Unknown())),perspective:W.Optional(fg),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),toolbeltSource:W.Optional(W.Union([W.Literal(`tier`),W.Literal(`role`),W.Literal(`plan`),W.Literal(`default`)])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),projectMcpServerNames:W.Optional(W.Array(W.String()))},z_=W.Object({sessionId:W.Optional(W.String()),runId:W.Optional(W.String()),timestamp:W.String()}),B_=[W.Object({type:W.Literal(`agent:start`),...R_}),W.Object({type:W.Literal(`agent:warning`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,code:W.String(),message:W.String()}),W.Object({type:W.Literal(`agent:stop`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,error:W.Optional(W.String())}),W.Object({type:W.Literal(`agent:usage`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,usage:W.Object({input:W.Number(),output:W.Number(),total:W.Number(),cacheRead:W.Number(),cacheCreation:W.Number()}),costUsd:W.Number(),numTurns:W.Number(),final:W.Optional(W.Boolean())}),W.Object({type:W.Literal(`agent:message`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,content:W.String()}),W.Object({type:W.Literal(`agent:tool_use`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,tool:W.String(),toolUseId:W.String(),input:W.Unknown()}),W.Object({type:W.Literal(`agent:tool_result`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,tool:W.String(),toolUseId:W.String(),output:W.String()}),W.Object({type:W.Literal(`agent:result`),planId:W.Optional(W.String()),agentId:W.Optional(W.String()),agent:ug,result:s_}),W.Object({type:W.Literal(`agent:activity`),planId:W.Optional(W.String()),agentId:W.String(),agent:ug,files:W.Optional(W.Array(W.Object({path:W.String(),status:W.Optional(W.String()),additions:W.Optional(W.Number()),deletions:W.Optional(W.Number()),binary:W.Optional(W.Boolean())}))),totals:W.Optional(W.Object({filesChanged:W.Number(),additions:W.Number(),deletions:W.Number()})),attribution:W.Union([W.Literal(`exact`),W.Literal(`best_effort`),W.Literal(`unavailable`)]),notes:W.Optional(W.Array(W.String()))}),W.Object({type:W.Literal(`agent:retry`),agent:ug,attempt:W.Number(),maxAttempts:W.Number(),subtype:dg,label:W.String(),planId:W.Optional(W.String()),shardId:W.Optional(W.String())})],V_=[W.Object({type:W.Literal(`plan:build:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:implement:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:implement:progress`),planId:W.String(),message:W.String()}),W.Object({type:W.Literal(`plan:build:implement:continuation`),planId:W.String(),attempt:W.Number(),maxContinuations:W.Number(),shardId:W.Optional(W.String())}),W.Object({type:W.Literal(`plan:build:implement:complete`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:files_changed`),planId:W.String(),files:W.Array(W.String()),diffs:W.Optional(W.Array(W.Object({path:W.String(),diff:W.String()}))),baseBranch:W.Optional(W.String())}),W.Object({type:W.Literal(`plan:build:review:start`),planId:W.String(),...hg}),W.Object({type:W.Literal(`plan:build:review:complete`),planId:W.String(),issues:W.Array(Zg),...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:start`),planId:W.String(),perspectives:W.Array(fg),...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:perspective:start`),planId:W.String(),perspective:fg,...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:perspective:complete`),planId:W.String(),perspective:fg,issues:W.Array(Zg),...hg}),W.Object({type:W.Literal(`plan:build:review:parallel:perspective:error`),planId:W.String(),perspective:fg,error:W.String(),...hg}),W.Object({type:W.Literal(`plan:build:review:fix:start`),planId:W.String(),issueCount:W.Number(),...hg}),W.Object({type:W.Literal(`plan:build:review:fix:complete`),planId:W.String(),...hg,issueReferences:W.Optional(W.Array(yg))}),W.Object({type:W.Literal(`plan:build:review:fix:continuation`),planId:W.String(),attempt:W.Number(),maxContinuations:W.Number(),...hg}),W.Object({type:W.Literal(`plan:build:evaluate:start`),planId:W.String(),...hg}),W.Object({type:W.Literal(`plan:build:evaluate:continuation`),planId:W.String(),attempt:W.Number(),maxContinuations:W.Number(),...hg}),W.Object({type:W.Literal(`plan:build:evaluate:complete`),planId:W.String(),accepted:W.Number(),rejected:W.Number(),...hg,resolvedIssueOutcomes:W.Optional(W.Number()),falsePositiveIssueOutcomes:W.Optional(W.Number()),unresolvedIssueOutcomes:W.Optional(W.Number()),unresolvedNonBlockingIssueOutcomes:W.Optional(W.Number()),needsHumanReviewIssueOutcomes:W.Optional(W.Number()),acceptedRiskIssueOutcomes:W.Optional(W.Number()),splitToFollowupIssueOutcomes:W.Optional(W.Number()),blockingIssueOutcomes:W.Optional(W.Number()),verdicts:W.Optional(W.Array(W.Object({file:W.String(),action:W.Union([W.Literal(`accept`),W.Literal(`reject`),W.Literal(`review`)]),reason:W.String(),hunk:W.Optional(W.Integer({minimum:1})),issueOutcome:W.Optional(mg),retryGuidance:W.Optional(W.String()),issueIds:W.Optional(W.Array(_g))})))}),W.Object({type:W.Literal(`plan:build:doc-author:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:doc-author:complete`),planId:W.String(),docsAuthored:W.Number()}),W.Object({type:W.Literal(`plan:build:doc-sync:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:doc-sync:complete`),planId:W.String(),docsSynced:W.Number()}),W.Object({type:W.Literal(`plan:build:test:ownership:violation`),planId:W.String(),stage:W.Union([W.Literal(`implement`),W.Literal(`test-write`),W.Literal(`test`)]),declaredOwner:W.Union([gg,W.Literal(`unspecified`)]),changedPaths:W.Array(W.String()),reason:W.String()}),W.Object({type:W.Literal(`plan:build:test:write:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:test:write:complete`),planId:W.String(),testsWritten:W.Number()}),W.Object({type:W.Literal(`plan:build:test:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:test:complete`),planId:W.String(),passed:W.Number(),failed:W.Number(),testBugsFixed:W.Number(),productionIssues:W.Array(Qg)}),W.Object({type:W.Literal(`plan:build:complete`),planId:W.String()}),W.Object({type:W.Literal(`plan:build:recovery:start`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),issueCount:W.Number(),maxAttempts:W.Number(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:attempt:start`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),attempt:W.Number(),maxAttempts:W.Number(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:attempt:result`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),attempt:W.Number(),maxAttempts:W.Number(),blockersCleared:W.Boolean(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:skip`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),reason:W.Union([W.Literal(`not-active-plan`),W.Literal(`manual-gate`),W.Literal(`human-review-gate`),W.Literal(`cross-plan-blocker`),W.Literal(`upstream-or-base-owned`),W.Literal(`low-confidence`),W.Literal(`incomplete-classification`),W.Literal(`unsupported-blocker`),W.Literal(`unsafe-worktree`),W.Literal(`budget-exhausted`),W.Literal(`stale-pass-data`)]),details:W.String(),attemptsRemaining:W.Number()}),W.Object({type:W.Literal(`plan:build:recovery:exhausted`),planId:W.String(),blockerKind:W.Union([W.Literal(`review`),W.Literal(`test`)]),attemptsUsed:W.Number(),maxAttempts:W.Number(),details:W.String()}),W.Object({type:W.Literal(`plan:build:failed`),planId:W.String(),error:W.String(),terminalSubtype:W.Optional(dg)}),W.Object({type:W.Literal(`plan:build:progress`),planId:W.String(),message:W.String()}),W.Object({type:W.Literal(`plan:status:change`),planId:W.String(),status:a_}),W.Object({type:W.Literal(`plan:error:set`),planId:W.String(),error:W.String()}),W.Object({type:W.Literal(`plan:error:clear`),planId:W.String()}),W.Object({type:W.Literal(`schedule:start`),planIds:W.Array(W.String())}),W.Object({type:W.Literal(`plan:schedule:ready`),planId:W.String(),reason:W.String()}),W.Object({type:W.Literal(`plan:merge:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:merge:complete`),planId:W.String(),commitSha:W.Optional(W.String())}),W.Object({type:W.Literal(`plan:merge:resolve:start`),planId:W.String()}),W.Object({type:W.Literal(`plan:merge:resolve:complete`),planId:W.String(),resolved:W.Boolean()}),W.Object({type:W.Literal(`merge:finalize:start`),featureBranch:W.String(),baseBranch:W.String()}),W.Object({type:W.Literal(`merge:finalize:complete`),featureBranch:W.String(),baseBranch:W.String(),commitSha:W.Optional(W.String())}),W.Object({type:W.Literal(`merge:finalize:skipped`),featureBranch:W.String(),baseBranch:W.String(),reason:W.String()}),W.Object({type:W.Literal(`landing:start`),action:pg,featureBranch:W.String(),baseBranch:W.String(),trunkBranch:W.Optional(W.String()),workflow:W.Optional(W.Union([W.Literal(`trunk-pr`),W.Literal(`trunk-local-merge`),W.Literal(`feature-pr`),W.Literal(`feature-local-merge`),W.Literal(`leave-branch`)]))}),W.Object({type:W.Literal(`landing:complete`),action:pg,featureBranch:W.String(),baseBranch:W.String(),commitSha:W.Optional(W.String()),prUrl:W.Optional(W.String())}),W.Object({type:W.Literal(`landing:skipped`),action:pg,featureBranch:W.String(),baseBranch:W.String(),reason:W.String()}),W.Object({type:W.Literal(`landing:auto-merge:start`),featureBranch:W.String(),baseBranch:W.Optional(W.String()),prUrl:W.String()}),W.Object({type:W.Literal(`landing:auto-merge:complete`),featureBranch:W.String(),baseBranch:W.Optional(W.String()),prUrl:W.String()}),W.Object({type:W.Literal(`landing:auto-merge:skipped`),featureBranch:W.String(),baseBranch:W.Optional(W.String()),prUrl:W.Optional(W.String()),reason:W.String()}),W.Object({type:W.Literal(`merge:worktree:set`),path:W.String()}),W.Object({type:W.Literal(`merge:worktree:clear`)})],H_=[W.Object({type:W.Literal(`build:terminal-failure`),runId:W.String(),failure:__}),W.Object({type:W.Literal(`build:resume:start`),prdId:W.String(),setName:W.String(),featureBranch:W.String()}),W.Object({type:W.Literal(`build:resume:state`),seededMerged:W.Array(W.String()),seededPending:W.Array(W.String()),featureBranch:W.String(),landedCommitCount:W.Number(),diffStat:W.String()}),W.Object({type:W.Literal(`build:resume:ineligible`),reason:W.String(),checkedPath:W.Optional(W.String())}),i_,W.Object({type:W.Literal(`build:resume:complete`),prdId:W.String(),setName:W.String()})],U_=[W.Object({type:W.Literal(`daemon:run:upsert`),run:W.Object({id:W.String(),sessionId:W.Optional(W.String()),planSet:W.String(),command:W.String(),status:W.String(),startedAt:W.String(),completedAt:W.Optional(W.String()),cwd:W.String(),pid:W.Optional(W.Number())})}),W.Object({type:W.Literal(`daemon:auto-build:paused`),reason:W.String()}),W.Object({type:W.Literal(`daemon:lifecycle:starting`),pid:W.Number(),port:W.Number(),version:W.String(),mode:W.String()}),W.Object({type:W.Literal(`daemon:lifecycle:ready`),pid:W.Number(),port:W.Number(),version:W.String(),mode:W.String(),recoveryDurationMs:W.Number()}),W.Object({type:W.Literal(`daemon:lifecycle:shutdown:start`),signal:W.String(),reason:W.String()}),W.Object({type:W.Literal(`daemon:lifecycle:shutdown:complete`),durationMs:W.Number()}),W.Object({type:W.Literal(`daemon:heartbeat`),uptime:W.Number(),queueDepth:W.Number(),runningBuilds:W.Number(),autoBuild:W.Object({enabled:W.Boolean(),paused:W.Boolean(),...A_}),subscribers:W.Number()}),W.Object({type:W.Literal(`daemon:scheduler:dequeued`),prdId:W.String(),queueDepth:W.Number(),capacityRemaining:W.Number()}),W.Object({type:W.Literal(`daemon:scheduler:capacity-blocked`),queueDepth:W.Number(),runningCount:W.Number(),limit:W.Number()}),W.Object({type:W.Literal(`daemon:scheduler:dependency-blocked`),prdId:W.String(),blockedBy:W.Array(W.String())}),W.Object({type:W.Literal(`daemon:scheduler:paused`)}),W.Object({type:W.Literal(`daemon:scheduler:resumed`)}),W.Object({type:W.Literal(`daemon:auto-build:enabled`)}),W.Object({type:W.Literal(`daemon:auto-build:disabled`)}),W.Object({type:W.Literal(`daemon:auto-build:resumed`)}),W.Object({type:W.Literal(`daemon:auto-build:triggered`),trigger:W.String(),prdsEnqueued:W.Number()}),W.Object({type:W.Literal(`daemon:auto-build:transition`),previousMode:E_,nextMode:E_,desired:T_,reason:W.Optional(W.String()),source:W.String()}),W.Object({type:W.Literal(`daemon:recovery:start`)}),W.Object({type:W.Literal(`daemon:recovery:run-marked-failed`),runId:W.String(),planSet:W.String(),reason:W.String()}),W.Object({type:W.Literal(`daemon:recovery:lock-removed`),path:W.String(),pid:W.Number()}),W.Object({type:W.Literal(`daemon:recovery:lock-adopted`),path:W.String(),pid:W.Number(),prdId:W.String()}),W.Object({type:W.Literal(`daemon:recovery:complete`),runsFailed:W.Number(),locksRemoved:W.Number(),durationMs:W.Number()}),W.Object({type:W.Literal(`daemon:orphan:reaped`),runId:W.String(),sessionId:W.String(),planSet:W.String(),pid:W.Number()}),W.Object({type:W.Literal(`daemon:failed-enqueue:upsert`),failedEnqueue:w_}),W.Object({type:W.Literal(`daemon:failed-enqueue:resolved`),runId:W.String(),resolvedAt:W.String(),spawnedSessionId:W.Optional(W.String())}),W.Object({type:W.Literal(`daemon:warning`),source:W.String(),message:W.String(),details:W.Optional(W.String())}),W.Object({type:W.Literal(`daemon:error`),source:W.String(),message:W.String(),stack:W.Optional(W.String())})],W_={keepAlive:`/api/keep-alive`,enqueue:`/api/enqueue`,cancel:`/api/cancel/:sessionId`,daemonStop:`/api/daemon/stop`,autoBuildGet:`/api/auto-build`,autoBuildSet:`/api/auto-build`,profileList:`/api/profile/list`,profileShow:`/api/profile/show`,profileUse:`/api/profile/use`,profileCreate:`/api/profile/create`,profileDelete:`/api/profile/:name`,modelProviders:`/api/models/providers`,modelList:`/api/models/list`,projectContext:`/api/project-context`,health:`/api/health`,version:`/api/version`,configShow:`/api/config/show`,configValidate:`/api/config/validate`,extensionList:`/api/extensions/list`,extensionShow:`/api/extensions/show`,extensionValidate:`/api/extensions/validate`,extensionTest:`/api/extensions/test`,extensionTrust:`/api/extensions/trust`,extensionUntrust:`/api/extensions/untrust`,extensionNew:`/api/extensions/new`,extensionReload:`/api/extensions/reload`,extensionInstall:`/api/extensions/install`,extensionUpdate:`/api/extensions/update`,extensionRemove:`/api/extensions/remove`,extensionPromote:`/api/extensions/promote`,extensionDemote:`/api/extensions/demote`,extensionContributionManifest:`/api/extensions/contributions`,extensionWorkstationFrame:`/api/extensions/workstations/:workstationId/frame`,extensionWorkstationAsset:`/api/extensions/workstations/:workstationId/assets/:assetId`,extensionActionInvoke:`/api/extensions/actions/invoke`,extensionAgentTaskStart:`/api/extensions/agent-tasks`,extensionAgentTaskGet:`/api/extensions/agent-tasks/:taskId`,extensionAgentTaskCancel:`/api/extensions/agent-tasks/:taskId/cancel`,queue:`/api/queue`,queuePriority:`/api/queue/:prdId/priority`,queueRemove:`/api/queue/:prdId`,queueDependencyOverride:`/api/queue/:prdId/dependencies/override`,queueHold:`/api/queue/:prdId/hold`,queueUnhold:`/api/queue/:prdId/unhold`,queueCascadePreview:`/api/queue/:prdId/cascade/preview`,queueCascadeApply:`/api/queue/:prdId/cascade/apply`,queueRecoveryAnalyze:`/api/queue/recovery/analyze`,queueRecoveryApply:`/api/queue/recovery/apply`,sessionMetadata:`/api/session-metadata`,runs:`/api/runs`,spend:`/api/spend`,efficiencyAnalytics:`/api/efficiency-analytics`,events:`/api/events/:runId`,runSummary:`/api/run-summary/:id`,runState:`/api/run-state/:id`,plans:`/api/plans/:runId`,diff:`/api/diff/:sessionId/:planId`,recover:`/api/recover`,recoveryGuidancePrepare:`/api/recover/guidance/prepare`,readRecoverySidecar:`/api/recovery/sidecar`,applyRecovery:`/api/recover/apply`,acceptRecoverySuccessPreview:`/api/recover/accept-success/preview`,acceptRecoverySuccess:`/api/recover/accept-success`,continueRepair:`/api/recover/continue-repair`,continueRepairEligibility:`/api/recover/continue-repair/eligibility`,schedulerKick:`/api/scheduler/kick`,failedEnqueues:`/api/enqueue/failed`,failedEnqueueReenqueue:`/api/enqueue/failed/:runId/reenqueue`,failedEnqueueDismiss:`/api/enqueue/failed/:runId/dismiss`,schedulerPause:`/api/scheduler/pause`,schedulerResume:`/api/scheduler/resume`,sessionPlanList:`/api/session-plan/list`,sessionPlanShow:`/api/session-plan/show`,sessionPlanCreate:`/api/session-plan/create`,sessionPlanSetSection:`/api/session-plan/set-section`,sessionPlanSkipDimension:`/api/session-plan/skip-dimension`,sessionPlanSetStatus:`/api/session-plan/set-status`,sessionPlanSelectDimensions:`/api/session-plan/select-dimensions`,sessionPlanReadiness:`/api/session-plan/readiness`,sessionPlanMigrateLegacy:`/api/session-plan/migrate-legacy`,sessionPlanSetList:`/api/session-plan-set/list`,sessionPlanSetShow:`/api/session-plan-set/show`,sessionPlanSetValidate:`/api/session-plan-set/validate`,daemonEvents:`/api/daemon-events`,stackLayers:`/api/stack/layers`,stackSync:`/api/stack/sync`,stackSyncStatus:`/api/stack/sync/status`},G_=1e3,K_=`eforge-recovery-sidecar-compile-scope-context-reason-bytes`;La(K_,e=>new TextEncoder().encode(e).length<=G_);var q_=W.Integer({minimum:0}),J_=W.Integer({minimum:1}),Y_=W.Object({kind:W.Literal(`continue-repair`),action:W.Literal(`continue-repair`),recommended:W.Boolean(),reason:W.String()}),X_=W.Union([W.Literal(`bounded-decomposition`),W.Literal(`manual-reduce-scope`)]),Z_=W.Object({kind:W.Literal(`compile-scope-context`),action:X_,recommended:W.Boolean(),eligible:W.Boolean(),reason:W.String({minLength:1,maxLength:G_,format:K_}),attempted:W.Boolean(),attempt:q_,maxAttempts:J_,source:Zh,failureKind:Qh,decompositionEvidence:W.Optional(_h)}),Q_=W.Union([W.Literal(`preflight`),W.Literal(`live-context-guard`),W.Literal(`provider`)]),$_=W.Union([W.Literal(`context-budget`),W.Literal(`context-window`),W.Literal(`context-length`),W.Literal(`scope-too-broad`)]),ev=W.Intersect([Z_,W.Union([W.Object({source:W.Literal(`decomposition`),failureKind:W.Literal(`decomposition-exhausted`),decompositionEvidence:_h}),W.Object({source:Q_,failureKind:$_,decompositionEvidence:W.Optional(W.Never())})])]);Object.assign(ev,{properties:Z_.properties}),W.Union([Y_,ev]);var tv=`[^/?#]+`,nv=`^sha256-[a-f0-9]{64}-path-[a-f0-9]{64}$`,rv=`^[a-f0-9]{64}$`,iv=lv(W_.extensionWorkstationFrame,{},`(?:\\?[^#]*)?`),av=lv(W_.extensionWorkstationAsset,{assetId:nv.slice(1,-1)}),ov=`(?:\\.|%2[eE]){1,2}`,sv=`^(?!\\s)(?!.*\\s$)(?!.*[#\\\\\\u0000-\\u001F\\u007F])(?:\\?[^#\\\\\\u0000-\\u001F\\u007F]*|(?!(?:[A-Za-z][A-Za-z0-9+.-]*:|/))(?![^?]*%(?![0-9A-Fa-f]{2}))(?:(?!${ov}(?:/|\\?|$))[^/?#\\\\\\u0000-\\u001F\\u007F]+/)*(?!${ov}(?:\\?|$))[^/?#\\\\\\u0000-\\u001F\\u007F]+(?:\\?[^#\\\\\\u0000-\\u001F\\u007F]*)?)$`,cv=`^(?=.*\\S)(?!/)(?![A-Za-z]:[\\\\/])(?!.*\\u0000)(?:(?!\\.{1,2}(?:[\\\\/]|$))[^\\\\/\\u0000]+)(?:[\\\\/](?!\\.{1,2}(?:[\\\\/]|$))[^\\\\/\\u0000]+)*$`;function lv(e,t={},n=``){return`^${uv(e).replace(/:([A-Za-z][A-Za-z0-9_]*)/g,(e,n)=>t[n]??tv)}${n}$`}function uv(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var dv=W.Recursive(e=>W.Union([W.Null(),W.Boolean(),W.Number(),W.String(),W.Array(e),W.Record(W.String(),e)])),fv=W.Record(W.String(),dv),pv=W.Union([W.Literal(`console`),W.Literal(`pi`),W.Literal(`claude`),W.Literal(`mcp`),W.Literal(`cli`)]),mv=W.Object({host:pv,surface:W.Optional(W.String()),sessionId:W.Optional(W.String()),commandId:W.Optional(W.String()),deepLinkId:W.Optional(W.String())},{additionalProperties:!1}),hv=W.Union([W.Literal(`none`),W.Literal(`local-read`),W.Literal(`local-write`),W.Literal(`network`),W.Literal(`daemon-state`),W.Literal(`build-queue`)]),gv=W.Union([W.Literal(`agent-compact`),W.Literal(`agent-paginated`),W.Literal(`markdown`),W.Literal(`ui-rich`),W.Literal(`debug-rich`)]),_v=`^(?:[<>]=?|=)?\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?(?:\\s*,\\s*(?:[<>]=?|=)?\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?)*$`,vv=W.Object({name:W.String({minLength:1}),version:W.Optional(W.String({minLength:1,pattern:_v}))},{additionalProperties:!1}),yv=W.Union([W.Object({name:W.String({minLength:1}),version:W.Optional(W.String({minLength:1,pattern:_v})),capabilities:W.Optional(W.Array(vv))},{additionalProperties:!1}),W.Object({version:W.Optional(W.String({minLength:1,pattern:_v})),capabilities:W.Array(vv,{minItems:1})},{additionalProperties:!1})]),bv=W.Object({dependencies:W.Optional(W.Array(yv)),capabilities:W.Optional(W.Array(vv))},{additionalProperties:!1}),xv=W.Object({code:W.String(),message:W.String(),severity:W.Optional(W.Union([W.Literal(`warning`),W.Literal(`error`)])),dependencyName:W.Optional(W.String()),providerName:W.Optional(W.String()),capabilityName:W.Optional(W.String()),requiredVersion:W.Optional(W.String()),actualVersion:W.Optional(W.String())},{additionalProperties:!1}),Sv=W.Object({available:W.Boolean(),message:W.Optional(W.String()),diagnostics:W.Optional(W.Array(xv))},{additionalProperties:!1}),Cv=W.Object({actionId:W.String(),inputDefaults:W.Optional(fv)},{additionalProperties:!1});W.Union([W.Literal(`text`),W.Literal(`markdown`),W.Literal(`status-badge`),W.Literal(`link`),W.Literal(`action-button`),W.Literal(`action-form`)]);var wv=W.Union([W.Object({rendererId:W.Literal(`text`),title:W.Optional(W.String()),content:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`markdown`),title:W.Optional(W.String()),content:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`status-badge`),title:W.Optional(W.String()),content:W.String(),status:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`link`),title:W.Optional(W.String()),content:W.String(),href:W.String()},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`action-button`),title:W.Optional(W.String()),content:W.String(),action:Cv},{additionalProperties:!1}),W.Object({rendererId:W.Literal(`action-form`),title:W.Optional(W.String()),content:W.String(),action:Cv},{additionalProperties:!1})]),Tv=fv,Ev=W.Intersect([fv,W.Object({type:W.Literal(`object`)})]),Dv=W.Union([W.Object({kind:W.Literal(`asset`),asset:W.String({minLength:1,pattern:cv})},{additionalProperties:!1}),W.Object({kind:W.Literal(`export`),module:W.String({minLength:1}),exportName:W.Optional(W.String({minLength:1}))},{additionalProperties:!1})]),Ov=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),inputSchema:Ev,outputSchema:W.Optional(Tv),prompt:Dv,requirements:W.Optional(bv),availability:W.Optional(Sv)},{additionalProperties:!1}),kv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),inputSchema:Ev,outputSchema:W.Optional(Tv),outputProfile:W.Optional(gv),sideEffects:W.Optional(W.Array(hv)),requirements:W.Optional(bv),availability:W.Optional(Sv)},{additionalProperties:!1}),Av=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),schemaVersion:W.Literal(1),requirements:W.Optional(bv),availability:W.Optional(Sv),blocks:W.Array(wv)},{additionalProperties:!1}),jv=W.Object({id:W.String({pattern:nv}),url:W.String({pattern:av}),relativePath:W.String(),sha256:W.String({pattern:rv})},{additionalProperties:!1}),Mv=W.Object({browserSdkVersion:W.Literal(1),frameUrl:W.String({pattern:iv}),entrypoint:jv,styles:W.Array(jv),assets:W.Array(jv)},{additionalProperties:!1}),Nv={id:W.String({pattern:`^[a-z][a-z0-9-]{0,63}$`}),label:W.String({minLength:1,pattern:`\\S`}),description:W.Optional(W.String())},Pv=W.Union([W.Object({...Nv,path:W.String({minLength:1,pattern:sv})},{additionalProperties:!1}),W.Object({...Nv,subPath:W.String({minLength:1,pattern:sv})},{additionalProperties:!1})]),Fv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),schemaVersion:W.Literal(1),requirements:W.Optional(bv),availability:W.Optional(Sv),subviews:W.Optional(W.Array(Pv)),srcDoc:W.String(),allowedActions:W.Array(W.String())},{additionalProperties:!1}),Iv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.String(),description:W.Optional(W.String()),schemaVersion:W.Literal(1),requirements:W.Optional(bv),availability:W.Optional(Sv),subviews:W.Optional(W.Array(Pv)),frameBundle:Mv,allowedActions:W.Array(W.String())},{additionalProperties:!1}),Lv=W.Union([Fv,Iv]),Rv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.Optional(W.String()),description:W.Optional(W.String()),label:W.String(),inputSchema:W.Optional(Ev),requirements:W.Optional(bv),availability:W.Optional(Sv),action:Cv},{additionalProperties:!1}),zv=W.Object({id:W.String(),localId:W.String(),extensionName:W.String(),extensionPath:W.String(),title:W.Optional(W.String()),description:W.Optional(W.String()),label:W.String(),urlTemplate:W.Optional(W.String()),requirements:W.Optional(bv),availability:W.Optional(Sv),action:W.Optional(Cv)},{additionalProperties:!1}),Bv=W.Object({extensionName:W.Optional(W.String()),extensionPath:W.Optional(W.String()),severity:W.Union([W.Literal(`info`),W.Literal(`warning`),W.Literal(`error`)]),message:W.String(),code:W.String(),name:W.Optional(W.String()),dependencyName:W.Optional(W.String()),providerName:W.Optional(W.String()),capabilityName:W.Optional(W.String()),requiredVersion:W.Optional(W.String()),actualVersion:W.Optional(W.String()),dependencyKind:W.Optional(W.Union([W.Literal(`required`),W.Literal(`optional`)]))},{additionalProperties:!1});W.Object({schemaVersion:W.Literal(1),generatedAt:W.String(),actions:W.Array(kv),agentTasks:W.Optional(W.Array(Ov)),consoleContributions:W.Array(Av),consoleWorkstations:W.Array(Lv),integrationCommands:W.Array(Rv),deepLinks:W.Array(zv),diagnostics:W.Optional(W.Array(Bv))},{additionalProperties:!1}),W.Object({actionId:W.String({minLength:1,pattern:`\\S`}),input:fv,requestedBy:mv},{additionalProperties:!1});var Vv=W.Union([W.Literal(`unknown-action`),W.Literal(`invalid-request`),W.Literal(`invalid-input`),W.Literal(`daemon-unavailable`),W.Literal(`unavailable`),W.Literal(`handler-error`),W.Literal(`timeout`),W.Literal(`invalid-output`),W.Literal(`output-schema-failed`)]),Hv=W.Object({path:W.String(),message:W.String()},{additionalProperties:dv}),Uv=W.Object({ok:W.Literal(!0),invocationId:W.String(),output:dv},{additionalProperties:!1}),Wv=W.Object({ok:W.Literal(!1),invocationId:W.String(),error:W.Object({code:Vv,message:W.String(),details:W.Optional(dv)},{additionalProperties:!1})},{additionalProperties:!1});W.Union([Uv,Wv]);var Gv=W.Optional(W.Union([W.Literal(`manual`),W.Literal(`after-build`),W.Literal(`scheduled`),W.Literal(`retry-deferred`)])),Kv=Hv,qv=W.Union([W.Literal(`invalid-input`),W.Literal(`daemon-unavailable`),W.Literal(`handler-error`),W.Literal(`invalid-output`),W.Literal(`output-schema-failed`)]),Jv={invocationId:W.String(),actionId:W.String(),extensionName:W.String(),extensionPath:W.String(),requestedBy:mv},Yv=W.String({minLength:1,pattern:`\\S`}),Xv=W.String({pattern:`^[a-f0-9]{64}$`}),Zv=W.String({minLength:1,pattern:`^(?!\\.\\.?$)(?!.*[\\\\/\\u0000]).+$`}),Qv=W.Union([W.Literal(`item`),W.Literal(`epic`)]),$v={id:Zv,origin:W.Optional(W.Union([W.Literal(`private`),W.Literal(`legacy`)])),relativePath:W.Optional(Yv),bodySha256:Xv,sourceFingerprint:W.Optional(Xv),updated:W.Optional(W.String()),recordSha256:W.Optional(Xv)};W.Object({...$v,kind:Qv},{additionalProperties:!1});var ey=W.Object({...$v,kind:W.Literal(`item`)},{additionalProperties:!1}),ty=W.Object({...$v,kind:W.Literal(`epic`)},{additionalProperties:!1}),ny=W.Union([W.Literal(`candidate`),W.Literal(`planned`),W.Literal(`active`),W.Literal(`shipped`),W.Literal(`stale`),W.Literal(`superseded`)]),ry=W.Object({status:W.Optional(ny),priority:W.Optional(W.String()),tags:W.Optional(W.Array(W.String())),depends_on:W.Optional(W.Array(Zv)),epic:W.Optional(W.Union([Zv,W.Null()])),last_checked:W.Optional(W.String()),stale_after:W.Optional(W.String())},{additionalProperties:!1}),iy=W.Object({heading:Yv,action:W.Union([W.Literal(`replace`),W.Literal(`append`)]),content:W.String()},{additionalProperties:!1}),ay={id:Zv,metadata:W.Optional(ry),sectionOperations:W.Optional(W.Array(iy)),rationale:Yv,evidence:W.Optional(W.Array(W.String()))},oy=W.Object({...ay,kind:W.Literal(`item`),precondition:ey},{additionalProperties:!1}),sy=W.Object({...ay,kind:W.Literal(`epic`),precondition:ty},{additionalProperties:!1});W.Union([oy,sy]);var cy={id:Zv,last_checked:W.String(),stale_after:W.String(),rationale:W.Optional(W.String())},ly=W.Object({...cy,kind:W.Literal(`item`),precondition:ey},{additionalProperties:!1}),uy=W.Object({...cy,kind:W.Literal(`epic`),precondition:ty},{additionalProperties:!1}),dy=W.Union([ly,uy]),fy=W.Object({id:W.Optional(Zv),kind:W.Optional(Qv),reason:Yv},{additionalProperties:!1}),py=W.Object({id:W.Optional(Zv),kind:W.Optional(Qv),question:Yv,reason:W.Optional(Yv)},{additionalProperties:!1}),my=W.Object({schemaVersion:W.Literal(1),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),summary:W.Array(W.String()),itemChanges:W.Array(oy),epicChanges:W.Array(sy),noOpRechecks:W.Array(dy),skipped:W.Array(fy),needsInput:W.Array(py)},{additionalProperties:!1}),hy=W.Object({dimension:Yv,sha256:Xv},{additionalProperties:!1}),gy=W.Object({dimension:Yv,content:Yv,rationale:W.Optional(W.String())},{additionalProperties:!1}),_y=W.Object({openQuestions:W.Optional(W.Array(Yv))},{additionalProperties:!1}),vy=W.Object({dimension:Yv,reason:Yv},{additionalProperties:!1}),yy=W.Object({sections:W.Optional(W.Array(gy,{minItems:1})),metadata:W.Optional(_y),skippedDimensions:W.Optional(W.Array(vy))},{additionalProperties:!1}),by=W.Object({label:Yv,excerpt:W.Optional(W.String()),path:W.Optional(W.String()),url:W.Optional(W.String())},{additionalProperties:!1}),xy=W.Object({schemaVersion:W.Literal(1),targetSession:Yv,assistantMessage:Yv,basePlanFingerprint:Xv,baseSectionHashes:W.Optional(W.Array(hy)),proposedPatch:W.Optional(yy),citations:W.Optional(W.Array(by)),applyGuidance:W.Optional(W.String()),noPatchReason:W.Optional(W.String())},{additionalProperties:!1}),Sy=`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$`;new RegExp(Sy);var Cy=W.Object({itemId:W.String({minLength:1,maxLength:240}),title:W.Optional(W.String({maxLength:300})),status:W.Union([W.Literal(`pending`),W.Literal(`running`),W.Literal(`cache-hit`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`cancelled`)]),outcome:W.Optional(W.String({maxLength:80})),verdict:W.Optional(W.String({maxLength:80})),summary:W.Optional(W.String({maxLength:500})),startedAt:W.Optional(W.String({maxLength:120})),completedAt:W.Optional(W.String({maxLength:120}))},{additionalProperties:!1}),wy=W.Object({total:W.Integer({minimum:0}),cacheHits:W.Integer({minimum:0}),misses:W.Integer({minimum:0}),running:W.Integer({minimum:0}),completed:W.Integer({minimum:0}),remaining:W.Integer({minimum:0}),items:W.Array(Cy,{maxItems:1e3})},{additionalProperties:!1}),Ty=W.Object({timestamp:W.String({minLength:1,pattern:Sy}),message:W.String({minLength:1,maxLength:500,pattern:`\\S`})},{additionalProperties:!1}),Ey=1e3,Dy=1e3,Oy=2e3,ky=(e=2e3)=>W.String({maxLength:e}),Ay=(e=2e3)=>W.String({minLength:1,pattern:`\\S`,maxLength:e}),jy=W.Union([W.String({maxLength:500}),W.Number(),W.Boolean(),W.Null()]),My=W.Union([jy,W.Array(jy,{maxItems:20}),W.Object({},{additionalProperties:jy,maxProperties:20})]),Ny=W.Union([jy,W.Array(My,{maxItems:20}),W.Object({},{additionalProperties:My,maxProperties:20})]),Py=W.Object({},{additionalProperties:Ny,maxProperties:24}),Fy=W.Object({kind:W.Literal(`item`),id:Zv,origin:W.Optional(W.Union([W.Literal(`private`),W.Literal(`legacy`)])),relativePath:W.Optional(Ay(500)),bodySha256:Xv,sourceFingerprint:Xv,updated:W.Optional(W.String({maxLength:120})),recordSha256:Xv},{additionalProperties:!1}),Iy=W.Object({provider:Ay(120),modelId:Ay(200),agentProfile:W.Optional(W.String({maxLength:200}))},{additionalProperties:!1}),Ly=W.Object({code:Ay(160),severity:W.Union([W.Literal(`info`),W.Literal(`warning`),W.Literal(`error`)]),message:W.Optional(ky(800)),path:W.Optional(ky(300))},{additionalProperties:!1}),Ry=W.Object({code:Ay(160),cap:W.Integer({minimum:0}),observed:W.Integer({minimum:0}),retained:W.Integer({minimum:0}),message:W.Optional(ky(800))},{additionalProperties:!1}),K=W.Object({id:Zv,relationship:W.Union([W.Literal(`open-dependency`),W.Literal(`closed-dependency`),W.Literal(`missing-dependency`)]),status:W.Optional(W.String({maxLength:80})),title:W.Optional(ky(300))},{additionalProperties:!1}),zy=W.Object({kind:W.Union([W.Literal(`implementation`),W.Literal(`product-surface`),W.Literal(`supporting`),W.Literal(`current-source`)]),source:Ay(200),confidence:W.Optional(W.String({maxLength:80})),path:W.Optional(ky(400)),excerpt:W.Optional(ky(1e3)),matchedBy:W.Optional(W.Array(W.String({maxLength:120}),{maxItems:12}))},{additionalProperties:!1}),By=W.Object({source:Ay(200),closureAuthority:W.Literal(!1),intent:W.Optional(W.String({maxLength:120})),confidence:W.Optional(W.String({maxLength:80})),citation:W.Optional(ky(600)),evidence:W.Optional(ky(1e3)),path:W.Optional(ky(400))},{additionalProperties:!1}),Vy=W.Object({source:Ay(200),ref:W.Optional(W.String({maxLength:160})),signal:ky(1e3)},{additionalProperties:!1}),Hy=W.Object({schemaVersion:W.Literal(1),purpose:W.Literal(`backlog-curation-map-reduce`),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),curationGuidance:W.Array(ky(1200),{maxItems:8}),caps:W.Object({},{additionalProperties:W.Number()}),itemCount:W.Integer({minimum:0,maximum:Ey}),openItemIds:W.Array(Zv,{maxItems:Ey}),roadmapSummaries:W.Array(Py,{maxItems:20}),dependencySummaries:W.Array(Py,{maxItems:50}),recommendationSummaries:W.Array(Py,{maxItems:50}),redraftSummary:W.Optional(Py),diagnostics:W.Array(Ly,{maxItems:40})},{additionalProperties:!1}),Uy=W.Object({schemaVersion:W.Literal(1),kind:W.Literal(`item`),sourceFingerprint:Xv,itemId:Zv,itemTitle:ky(300),metadata:Py,precondition:Fy,bodySha256:Xv,recordSha256:Xv,sectionSummaries:W.Array(W.Object({heading:ky(160),text:ky(2e3)},{additionalProperties:!1}),{maxItems:12}),dependencyFacts:W.Array(K,{maxItems:12}),currentSourceCitations:W.Array(zy,{maxItems:8}),historicalHints:W.Array(By,{maxItems:8}),recommendationSignals:W.Array(Vy,{maxItems:8}),diagnostics:W.Array(Ry,{maxItems:8})},{additionalProperties:!1}),Wy=W.Union([W.Literal(`shipped`),W.Literal(`superseded`),W.Literal(`partial`),W.Literal(`still-needed`),W.Literal(`stale-invalid`),W.Literal(`needs-product-input`),W.Literal(`skip`)]),Gy=W.Union([W.Literal(`implementation`),W.Literal(`product-surface`),W.Literal(`replacement`),W.Literal(`supporting`)]),Ky=W.Object({path:Ay(400),reason:W.Optional(ky(500))},{additionalProperties:!1}),qy={schemaVersion:W.Literal(1),itemId:Zv,sourceFingerprint:Xv,packetSha256:Xv,bodySha256:Xv,promptVersion:Ay(120),runtimeIdentity:Iy,disposition:W.Union([W.Literal(`change`),W.Literal(`recheck`),W.Literal(`skip`),W.Literal(`needs-input`)]),verdict:W.Optional(Wy),closureEvidenceRoles:W.Optional(W.Array(Gy,{maxItems:8})),checkedPaths:W.Optional(W.Array(Ky,{maxItems:20})),summary:ky(2e3),rationale:ky(3e3),citations:W.Array(zy,{maxItems:8}),recommendationSignals:W.Array(Vy,{maxItems:8}),diagnostics:W.Array(Ly,{maxItems:8})},Jy=W.Object(qy,{additionalProperties:!1});W.Object({...qy,runtimeIdentity:W.Optional(Iy)},{additionalProperties:!1});var Yy={schemaVersion:W.Literal(1),itemId:Zv,sourceFingerprint:Xv,packetSha256:W.Optional(Xv),bodySha256:W.Optional(Xv),diagnostics:W.Array(Ly,{maxItems:8})},Xy=W.Union([W.Object({...Yy,outcome:W.Literal(`cache-hit`),finding:Jy},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`audited-finding`),finding:Jy},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`oversized-packet`),byteLength:W.Integer({minimum:0}),byteCap:W.Integer({minimum:0})},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`item-agent-failure`),error:ky(Oy)},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`invalid-finding`),validationErrors:W.Array(ky(400),{maxItems:12})},{additionalProperties:!1}),W.Object({...Yy,outcome:W.Literal(`cancelled`),reason:W.Optional(ky(400))},{additionalProperties:!1})]),Zy=W.Object({schemaVersion:W.Literal(1),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),globalContext:Hy,outcomes:W.Array(Xy,{maxItems:Dy}),diagnostics:W.Array(Ly,{maxItems:40})},{additionalProperties:!1});W.Object({schemaVersion:W.Literal(1),sourceFingerprint:Xv,generatedAt:W.Optional(W.String()),globalContext:Hy,packets:W.Array(Uy,{maxItems:Ey}),degradedOutcomes:W.Array(Xy,{maxItems:Ey}),reducerInput:Zy},{additionalProperties:!1});var Qy=W.Literal(`eforge-plan.planning-draft`);W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`cancelled`)]);var $y=W.Object({host:W.Union([W.Literal(`console`),W.Literal(`pi`),W.Literal(`claude`),W.Literal(`mcp`),W.Literal(`cli`)]),surface:W.Optional(W.String()),sessionId:W.Optional(W.String())},{additionalProperties:!1}),eb=W.Union([W.Literal(`recommendations`),W.Literal(`handoffDrafts`),W.Literal(`planDrafts`),W.Literal(`sessionPlanPatch`),W.Literal(`sessionPlanCreationDraft`),W.Literal(`backlogCurationDraft`),W.Literal(`planRevisionTurn`)]),tb=`^[A-Za-z0-9._-]{1,128}$`,nb=`^(?:[A-Za-z0-9._:-]{1,128}|(?=.{1,256}$)(?!.*[/\\\\\\u0000-\\u001F\\u007F-\\u009F])(?!(?:\\.|\\.\\.):).+:[a-z][a-z0-9-]{0,63})$`,rb=`^[a-z0-9]+(?:-[a-z0-9]+)*$`,ib=W.String({minLength:1,maxLength:128,pattern:tb}),ab=W.String({minLength:1,pattern:rb}),ob=W.Object({id:W.String({minLength:1,maxLength:256,pattern:nb}),extensionName:W.Optional(W.String({minLength:1,pattern:`\\S`}))},{additionalProperties:!1}),sb=W.String({minLength:1,pattern:`\\S`}),cb=W.Object({module:W.String({minLength:1,pattern:`\\S`}),exportName:W.Optional(W.String({minLength:1,pattern:`\\S`})),input:W.Optional(W.Object({},{additionalProperties:!0}))},{additionalProperties:!1}),lb=W.Union([W.Literal(`bugfix`),W.Literal(`feature`),W.Literal(`refactor`),W.Literal(`architecture`),W.Literal(`docs`),W.Literal(`maintenance`),W.Literal(`unknown`)]),ub=W.Union([W.Literal(`quick`),W.Literal(`focused`),W.Literal(`deep`)]),db=W.String({minLength:1,pattern:`^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$`}),fb=W.Object({requiredDimensions:W.Array(db),optionalDimensions:W.Array(db)},{additionalProperties:!1}),pb=W.Object({quick:fb,focused:fb,deep:fb},{additionalProperties:!1}),mb=W.Object({dimensionContract:W.Object({bugfix:pb,feature:pb,refactor:pb,architecture:pb,docs:pb,maintenance:pb,unknown:pb},{additionalProperties:!1}),resolved:W.Optional(W.Object({planningType:lb,planningDepth:ub,requiredDimensions:W.Array(db),optionalDimensions:W.Array(db)},{additionalProperties:!1}))},{additionalProperties:!1}),hb=W.Object({topic:sb,session:W.Optional(W.String()),planningType:W.Optional(W.String()),planningDepth:W.Optional(W.String()),sourceText:W.Optional(W.String()),sourceProvider:W.Optional(cb),existingSessionPlan:W.Optional(W.String()),requestedOutputSections:W.Optional(W.Array(eb,{minItems:1})),sessionPlanCreationReadiness:W.Optional(mb),includeRoadmap:W.Optional(W.Boolean())},{additionalProperties:!1}),gb=W.Object({title:W.String(),body:W.String()},{additionalProperties:!1}),_b=W.Object({sections:W.Array(W.Object({dimension:W.String(),content:W.String()},{additionalProperties:!1}),{minItems:1}),skippedDimensions:W.Optional(W.Array(W.Object({dimension:W.String(),reason:W.String()},{additionalProperties:!1})))},{additionalProperties:!1}),vb=W.Object({session:ab,topic:W.String({minLength:1,pattern:`\\S`}),planningType:lb,planningDepth:ub,profile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)])),agentProfile:W.Optional(W.String()),sections:W.Array(W.Object({dimension:db,content:W.String()},{additionalProperties:!1}),{minItems:1}),skippedDimensions:W.Optional(W.Array(W.Object({dimension:db,reason:W.String()},{additionalProperties:!1})))},{additionalProperties:!1}),yb=W.Object({question:W.String({minLength:1,pattern:`\\S`}),why:W.Optional(W.String()),options:W.Optional(W.Array(W.String()))},{additionalProperties:!1});W.Union([W.Literal(`ready`),W.Literal(`needs-input`)]);var bb=W.String({maxLength:500}),xb=W.Object({currentSection:W.Optional(bb),coveredSections:W.Optional(W.Array(bb,{maxItems:50})),remainingSections:W.Optional(W.Array(bb,{maxItems:50}))},{additionalProperties:!1}),Sb=W.Object({ref:W.Optional(W.String()),itemId:W.String(),rationale:W.Optional(W.String()),confidence:W.Optional(W.String())},{additionalProperties:!1}),Cb=W.Object({ref:W.String(),title:W.Optional(W.String()),itemIds:W.Array(W.String(),{minItems:1}),epicIds:W.Optional(W.Array(W.String())),safeToPlanTogether:W.Optional(W.Boolean()),rationale:W.Optional(W.String()),recommendedProfile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)]))},{additionalProperties:!1}),wb=W.Object({ref:W.Optional(W.String()),itemIds:W.Array(W.String()),blockedBy:W.Array(W.String()),rationale:W.Optional(W.String())},{additionalProperties:!1}),Tb=W.Object({schemaVersion:W.Literal(1),updatedAt:W.Optional(W.String()),activeWork:W.Array(Sb),readyCandidates:W.Array(Sb),recommendedNextSequence:W.Array(Sb),safeParallelizableGroups:W.Array(Cb),blockedChains:W.Array(wb),rationaleAndAssumptions:W.Array(W.String())},{additionalProperties:!1}),Eb=W.Object({selection:W.Object({},{additionalProperties:!0}),session:W.Optional(W.String()),title:W.Optional(W.String()),profile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)]))},{additionalProperties:!1}),Db={summary:W.String(),assumptionsOpenQuestions:W.Array(W.String()),nextSteps:W.Optional(W.Array(W.String()))},Ob={recommendations:W.Optional(Tb),backlogCurationDraft:W.Optional(my),handoffDraft:W.Optional(Eb),handoffDrafts:W.Optional(W.Array(Eb,{minItems:1})),planRevisionTurn:W.Optional(xy)},kb={...Db,...Ob};W.Object(kb,{additionalProperties:!1});var Ab=W.Object({session:W.String({minLength:1,pattern:`\\S`}),topic:W.String({minLength:1,pattern:`\\S`}),planningType:lb,planningDepth:ub,profile:W.Optional(W.Union([W.Literal(`errand`),W.Literal(`excursion`),W.Literal(`expedition`)])),agentProfile:W.Optional(W.String()),sections:W.Array(W.Object({dimension:W.String({minLength:1}),content:W.String()},{additionalProperties:!1}),{minItems:1}),skippedDimensions:W.Optional(W.Array(W.Object({dimension:W.String({minLength:1}),reason:W.String()},{additionalProperties:!1})))},{additionalProperties:!1}),jb=W.Object({...kb,decision:W.Literal(`ready`),sessionPlanCreationDraft:Ab,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),Mb=W.Union([W.Object({...kb,planRevisionTurn:xy,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,backlogCurationDraft:my,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,recommendations:Tb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,handoffDraft:Eb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,handoffDrafts:W.Array(Eb,{minItems:1}),planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,planDrafts:W.Array(gb,{minItems:1}),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...kb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:_b},{additionalProperties:!1}),W.Object({...kb,decision:W.Literal(`ready`),sessionPlanCreationDraft:vb,planDrafts:W.Optional(W.Array(gb,{minItems:1})),sessionPlanPatch:W.Optional(_b)},{additionalProperties:!1}),W.Object({...Db,decision:W.Literal(`needs-input`),clarificationQuestions:W.Array(yb,{minItems:1}),rationale:W.String({minLength:1,pattern:`\\S`})},{additionalProperties:!1})]),Nb=W.Union([Mb,jb]),Pb=W.Object({kind:Qy,input:hb,requestedBy:W.Optional($y)},{additionalProperties:!1}),Fb=W.Object({task:ob,input:fv,requestedBy:W.Optional($y)},{additionalProperties:!1});W.Union([Fb,Pb]),W.Object({taskId:ib},{additionalProperties:!1}),W.Object({reason:W.Optional(W.String())},{additionalProperties:!1});var Ib=W.Object({label:W.Optional(W.String()),summary:W.Optional(W.String()),progressMessage:W.Optional(W.String()),outputSectionCount:W.Optional(W.Integer({minimum:0})),warningCount:W.Optional(W.Integer({minimum:0})),sectionProgress:W.Optional(xb),backlogCurationProgress:W.Optional(wy),activityLog:W.Optional(W.Array(Ty,{maxItems:50}))},{additionalProperties:!1}),Lb={taskId:ib,kind:Qy,createdAt:W.String(),updatedAt:W.String(),metadata:W.Optional(Ib)},Rb=W.Union([W.Object({...Lb,status:W.Literal(`queued`)},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`running`),startedAt:W.String()},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`completed`),startedAt:W.Optional(W.String()),completedAt:W.String(),result:Nb},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`failed`),startedAt:W.Optional(W.String()),completedAt:W.Optional(W.String()),errorCode:W.String(),errorMessage:W.String()},{additionalProperties:!1}),W.Object({...Lb,status:W.Literal(`cancelled`),startedAt:W.Optional(W.String()),cancelledAt:W.String(),errorMessage:W.Optional(W.String())},{additionalProperties:!1})]);W.Object({task:Rb},{additionalProperties:!1}),W.Object({task:Rb},{additionalProperties:!1}),W.Object({task:Rb},{additionalProperties:!1});var zb=[W.Object({type:W.Literal(`extension:event-handler:failed`),extensionName:W.String(),extensionPath:W.String(),pattern:W.String(),triggeringEventType:W.String(),message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:event-handler:timeout`),extensionName:W.String(),extensionPath:W.String(),pattern:W.String(),triggeringEventType:W.String(),timeoutMs:W.Number()}),W.Object({type:W.Literal(`extension:action:start`),...Jv}),W.Object({type:W.Literal(`extension:action:complete`),...Jv,durationMs:W.Number()}),W.Object({type:W.Literal(`extension:action:failed`),...Jv,durationMs:W.Number(),errorCode:qv,message:W.String(),validationErrors:W.Optional(W.Array(Kv))}),W.Object({type:W.Literal(`extension:action:timeout`),...Jv,durationMs:W.Number(),timeoutMs:W.Number(),message:W.String()}),W.Object({type:W.Literal(`extension:agent-task:start`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`running`),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:progress`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`running`),message:W.String(),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:complete`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`completed`),durationMs:W.Integer({minimum:0}),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:failed`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`failed`),durationMs:W.Optional(W.Integer({minimum:0})),errorCode:W.String(),message:W.String(),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-task:cancelled`),taskId:W.String(),taskKind:Qy,extensionName:W.String(),status:W.Literal(`cancelled`),reason:W.Optional(W.String()),metadata:W.Optional(Ib)}),W.Object({type:W.Literal(`extension:agent-context:applied`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),promptCharCount:W.Integer({minimum:0}),fragmentCount:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:agent-context:failed`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:agent-context:timeout`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:agent-context:unsupported`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),fields:W.Array(W.Union([W.Literal(`tools`),W.Literal(`allowedTools`),W.Literal(`disallowedTools`)]),{minItems:1})}),W.Object({type:W.Literal(`extension:agent-tools:applied`),extensionName:W.String(),extensionPath:W.String(),role:ug,tier:W.Optional(W.String()),phase:W.Optional(W.String()),stage:W.Optional(W.String()),profile:W.String(),planId:W.Optional(W.String()),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),toolbelt:W.Optional(W.Union([W.String(),W.Null()])),projectMcpSelection:W.Optional(W.Union([W.Literal(`all`),W.Literal(`none`),W.Literal(`toolbelt`)])),projectMcpServerNames:W.Optional(W.Array(W.String())),toolNames:W.Array(W.String()),effectiveToolNames:W.Array(W.String()),registeredToolNames:W.Array(W.String()),inlineToolNames:W.Array(W.String()),allowedToolsAdded:W.Array(W.String()),disallowedToolsAdded:W.Array(W.String()),excludedToolNames:W.Array(W.String()),toolCount:W.Integer({minimum:0}),allowedToolCount:W.Integer({minimum:0}),disallowedToolCount:W.Integer({minimum:0}),excludedToolCount:W.Integer({minimum:0})}),W.Object({type:W.Literal(`queue:profile:selected`),prdId:W.String(),prdTitle:W.Optional(W.String()),profile:W.String(),baseProfile:W.Union([W.String(),W.Null()]),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),reason:W.Optional(W.String()),confidence:W.Optional(W.Union([W.Literal(`low`),W.Literal(`medium`),W.Literal(`high`)]))}),W.Object({type:W.Literal(`queue:profile:router-failed`),prdId:W.String(),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`queue:profile:router-timeout`),prdId:W.String(),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`queue:profile:invalid-selection`),prdId:W.String(),routerName:W.String(),extensionName:W.String(),extensionPath:W.String(),requestedProfile:W.String(),reason:W.Union([W.Literal(`not-found`),W.Literal(`load-error`)]),message:W.String()}),W.Object({type:W.Literal(`extension:policy:decision`),...Rg,...Pg}),W.Object({type:W.Literal(`extension:policy:decision`),...Rg,...Fg}),W.Object({type:W.Literal(`extension:policy:decision`),...Rg,...Ig}),W.Object({type:W.Literal(`extension:policy:decision`),...zg,...Pg}),W.Object({type:W.Literal(`extension:policy:decision`),...zg,...Fg}),W.Object({type:W.Literal(`extension:policy:decision`),...zg,...Ig}),W.Object({type:W.Literal(`extension:policy:decision`),...Bg,...Pg}),W.Object({type:W.Literal(`extension:policy:decision`),...Bg,...Fg}),W.Object({type:W.Literal(`extension:policy:decision`),...Bg,...Ig}),W.Object({type:W.Literal(`extension:policy:failed`),...Rg,message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:policy:failed`),...zg,message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:policy:failed`),...Bg,message:W.String(),stack:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:policy:timeout`),...Rg,timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:policy:timeout`),...zg,timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:policy:timeout`),...Bg,timeoutMs:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:input-source:fetched`),extensionPath:W.String(),extensionName:W.String(),adapterName:W.String(),sourceId:W.String(),contentLength:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:input-source:failed`),extensionPath:W.String(),extensionName:W.String(),adapterName:W.String(),sourceId:W.String(),reason:W.Union([W.Literal(`not-found`),W.Literal(`error`),W.Literal(`timeout`),W.Literal(`invalid-result`)]),message:W.String(),stack:W.Optional(W.String()),timeoutMs:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:prd-enricher:applied`),extensionPath:W.String(),extensionName:W.String(),enricherName:W.String(),sourceId:W.String(),changed:W.Boolean(),inputLength:W.Integer({minimum:0}),outputLength:W.Integer({minimum:0})}),W.Object({type:W.Literal(`extension:prd-enricher:failed`),extensionPath:W.String(),extensionName:W.String(),enricherName:W.String(),sourceId:W.String(),reason:W.Union([W.Literal(`error`),W.Literal(`timeout`),W.Literal(`invalid-result`)]),message:W.String(),stack:W.Optional(W.String()),timeoutMs:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:reviewer-perspective:applied`),extensionPath:W.String(),extensionName:W.String(),perspectiveKey:fg,perspectiveLabel:W.String(),planId:W.Optional(W.String())}),W.Union([W.Object({type:W.Literal(`extension:reviewer-perspective:skipped`),extensionPath:W.String(),extensionName:W.String(),perspectiveKey:fg,reason:W.Union([W.Literal(`not-applicable`),W.Literal(`applicability-error`),W.Literal(`applicability-timeout`)]),message:W.Optional(W.String()),planId:W.Optional(W.String()),timeoutMs:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:reviewer-perspective:skipped`),extensionPath:W.Optional(W.String()),extensionName:W.Optional(W.String()),perspectiveKey:fg,reason:W.Literal(`unknown-key`),message:W.Optional(W.String()),planId:W.Optional(W.String())})]),W.Object({type:W.Literal(`extension:validation-provider:start`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),kind:W.Union([W.Literal(`validate`),W.Literal(`commands`)]),commandCount:W.Optional(W.Integer({minimum:0}))}),W.Object({type:W.Literal(`extension:validation-provider:complete`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),status:W.Union([W.Literal(`passed`),W.Literal(`skipped`)]),message:W.Optional(W.String())}),W.Object({type:W.Literal(`extension:validation-provider:error`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),status:W.Literal(`failed`),message:W.String(),details:W.Optional(W.String()),command:W.Optional(W.String()),exitCode:W.Optional(W.Integer())}),W.Object({type:W.Literal(`extension:validation-provider:timeout`),planId:W.String(),providerName:W.String(),extensionName:W.String(),extensionPath:W.String(),timeoutMs:W.Integer({minimum:0}),command:W.Optional(W.String())})],Bb=2e3,Vb=1024,Hb=2048,Ub=1024,Wb=W.String({maxLength:Bb}),Gb=W.Array(Wb,{maxItems:128}),Kb=W.Integer({minimum:0}),qb=W.Union([W.Literal(`foundation-contract`),W.Literal(`subsystem`),W.Literal(`oversized-criterion`),W.Literal(`general`),W.Literal(`rescope-split`)]),Jb=W.Object({atomId:Wb,title:Wb,reason:qb,criterionIds:Gb,dependencyAtomIds:Gb},{additionalProperties:!1}),Yb=W.Object({fromAtomId:Wb,toAtomId:Wb,reason:Wb},{additionalProperties:!1}),Xb=W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`skipped`),W.Literal(`failed`)]),Zb=W.Object({nodeId:Wb,depth:Kb,inputAtomIds:Gb,inputNodeIds:Gb},{additionalProperties:!1}),Qb=W.Union([W.Literal(`queued`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`),W.Literal(`incomplete`)]),$b=[W.Object({type:W.Literal(`planning:map-reduce:atoms`),graphId:Wb,atomCount:Kb,edgeCount:Kb,atoms:W.Array(Jb,{maxItems:Vb}),edges:W.Array(Yb,{maxItems:Hb})}),W.Object({type:W.Literal(`planning:map-reduce:atom:status`),atomId:Wb,status:Xb,reason:W.Optional(Wb)}),W.Object({type:W.Literal(`planning:map-reduce:reduce-tree`),graphId:Wb,rootNodeId:W.Optional(Wb),maxDepth:Kb,nodeCount:Kb,nodes:W.Array(Zb,{maxItems:Ub})}),W.Object({type:W.Literal(`planning:map-reduce:reduce:status`),nodeId:Wb,status:Qb,reason:W.Optional(Wb)})],ex=[W.Object({type:W.Literal(`session:start`),sessionId:W.String()}),W.Object({type:W.Literal(`session:end`),sessionId:W.String(),result:Kg}),W.Object({type:W.Literal(`session:profile`),profileName:W.Union([W.String(),W.Null()]),source:W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user-local`),W.Literal(`missing`),W.Literal(`none`),W.Literal(`override`)]),scope:W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user`),W.Null()]),config:W.Union([W.Unknown(),W.Null()])}),W.Object({type:W.Literal(`phase:start`),runId:W.String(),planSet:W.String(),command:W.Union([W.Literal(`compile`),W.Literal(`build`),W.Literal(`continue-repair`)])}),W.Object({type:W.Literal(`phase:end`),runId:W.String(),result:Kg}),W.Object({type:W.Literal(`config:warning`),message:W.String(),source:W.String(),details:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:warning`),planId:W.Optional(W.String()),message:W.String(),source:W.String(),details:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:module:build-config:invalid`),moduleId:W.String(),reason:W.Union([W.Literal(`invalid-json`),W.Literal(`invalid-schema`)]),errors:W.Array(W.String())})],tx={timestamp:W.String(),sessionId:W.Optional(W.String()),runId:W.Optional(W.String())},nx=[W.Object({type:W.Literal(`planning:start`),source:W.String(),label:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:inspection-summary`),summary:ig,artifactPath:W.Optional(W.String())}),W.Object({type:W.Literal(`planning:skip`),reason:W.String()}),W.Object({type:W.Literal(`planning:submission`),planCount:W.Number(),totalBodySize:W.Number(),hasMigrations:W.Boolean()}),W.Object({type:W.Literal(`planning:error`),reason:W.String()}),W.Object({type:W.Literal(`planning:scope-context:failure`),runId:W.Optional(W.String()),failure:cg}),W.Object({...tx,type:W.Literal(`planning:decomposition:start`),...vh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:queued`),...Sh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:running`),...Ch},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:progress`),...wh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:completed`),...Th},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:skipped`),...Eh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:unit:failed`),...Dh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:schedule`),...Oh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:budget`),...Ah},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:compact-handoff`),...jh},{additionalProperties:!1}),W.Object({...tx,type:W.Literal(`planning:decomposition:synthesis:complete`),...Mh},{additionalProperties:!1}),W.Object({type:W.Literal(`planning:clarification`),questions:W.Array(qg)}),W.Object({type:W.Literal(`planning:clarification:answer`),answers:W.Record(W.String(),W.String())}),W.Object({type:W.Literal(`planning:progress`),message:W.String()}),W.Object({type:W.Literal(`planning:continuation`),attempt:W.Number(),maxContinuations:W.Number(),reason:W.Optional(W.Union([W.Literal(`max_turns`),W.Literal(`dropped_submission`),W.Literal(`compact_inspection`)]))}),W.Object({type:W.Literal(`planning:pipeline`),compile:W.Array(W.String()),defaultBuild:W.Array(Mg),defaultReview:Vg,rationale:W.String()}),W.Object({type:W.Literal(`planning:complete`),plans:W.Array($g),planConfigs:W.Optional(W.Array(W.Object({id:W.String(),build:W.Optional(W.Array(Mg)),review:W.Optional(Vg),testOwnership:W.Optional(gg)})))}),W.Object({type:W.Literal(`planning:review:start`)}),W.Object({type:W.Literal(`planning:review:complete`),issues:W.Array(Zg)}),W.Object({type:W.Literal(`planning:evaluate:start`)}),W.Object({type:W.Literal(`planning:evaluate:continuation`),attempt:W.Number(),maxContinuations:W.Number()}),W.Object({type:W.Literal(`planning:evaluate:complete`),accepted:W.Number(),rejected:W.Number(),verdicts:W.Optional(W.Array(W.Object({file:W.String(),action:W.Union([W.Literal(`accept`),W.Literal(`reject`),W.Literal(`review`)]),reason:W.String(),hunk:W.Optional(W.Integer({minimum:1}))})))})],rx=[W.Object({type:W.Literal(`stack:layer:recorded`),prdId:W.String(),stackId:W.String(),parentPrdId:W.Optional(W.String()),provider:bg,branch:W.String(),baseBranch:W.Optional(W.String()),artifact:W.Optional(Tg),landingAction:W.Optional(Cg),status:wg}),W.Object({type:W.Literal(`stack:provider:command`),provider:bg,command:W.String(),args:W.Optional(W.Array(W.String())),exitCode:W.Union([W.Integer(),W.Null()]),branch:W.Optional(W.String())}),W.Object({type:W.Literal(`stack:landing:update`),prdId:W.String(),stackId:W.String(),action:Cg,branch:W.String(),status:Eg,prUrl:W.Optional(W.String()),reason:W.Optional(W.String()),originalBaseBranch:W.Optional(W.String()),effectiveBaseBranch:W.Optional(W.String()),baseRepairReason:W.Optional(W.Literal(`parent-artifact-already-integrated`))}),W.Object({type:W.Literal(`stack:landing:conflict:detected`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),operation:xg,conflictKind:Sg,conflictedFiles:W.Array(W.String())}),W.Object({type:W.Literal(`stack:landing:conflict:recovery:start`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`stack:landing:conflict:recovery:complete`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),attempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`stack:landing:conflict:recovery:failed`),prdId:W.String(),stackId:W.String(),provider:bg,branch:W.String(),attempts:W.Integer({minimum:0}),reason:W.String(),abortAttempted:W.Boolean(),abortSucceeded:W.Boolean()}),W.Object({type:W.Literal(`stack:sync:start`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean()}),W.Object({type:W.Literal(`stack:sync:complete`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean(),restackCandidates:W.Array(W.String()),excludedCandidates:W.Array(W.String()),localTrunkSha:W.Optional(W.String()),originTrunkSha:W.Optional(W.String()),fastForward:W.Optional(W.Boolean()),reason:W.Optional(W.String())}),W.Object({type:W.Literal(`stack:sync:failed`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean(),outcome:W.Union([W.Literal(`failed`),W.Literal(`conflict`)]),reason:W.String(),error:W.Optional(W.String())}),W.Object({type:W.Literal(`stack:sync:deferred`),syncId:W.String(),trigger:Gv,reason:W.String(),excludedCandidates:W.Array(W.String())}),W.Object({type:W.Literal(`stack:sync:skipped`),syncId:W.String(),trigger:Gv,dryRun:W.Boolean(),reason:W.String(),restackCandidates:W.Array(W.String()),excludedCandidates:W.Array(W.String())}),W.Object({type:W.Literal(`base-sync:start`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`base-sync:conflict:attempt`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1}),conflictedFiles:W.Array(W.String())}),W.Object({type:W.Literal(`base-sync:resolver:start`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`base-sync:resolver:complete`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1}),resolved:W.Boolean(),remainingConflicts:W.Integer({minimum:0})}),W.Object({type:W.Literal(`base-sync:rebase:continue`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1})}),W.Object({type:W.Literal(`base-sync:success`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),baseSha:W.String(),featureSha:W.String(),rebased:W.Boolean()}),W.Object({type:W.Literal(`base-sync:budget:exhausted`),remote:W.String(),baseBranch:W.String(),featureBranch:W.String(),attempts:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:1}),conflictedFiles:W.Array(W.String())})],ix=[W.Object({type:W.Literal(`validation:start`),commands:W.Array(W.String())}),W.Object({type:W.Literal(`validation:command:start`),command:W.String()}),W.Object({type:W.Literal(`validation:command:complete`),command:W.String(),exitCode:W.Number(),output:W.String()}),W.Object({type:W.Literal(`validation:command:timeout`),command:W.String(),timeoutMs:W.Number(),pid:W.Number()}),W.Object({type:W.Literal(`validation:complete`),passed:W.Boolean()}),W.Object({type:W.Literal(`validation:fix:start`),attempt:W.Number(),maxAttempts:W.Number()}),W.Object({type:W.Literal(`validation:fix:complete`),attempt:W.Number()}),W.Object({type:W.Literal(`prd_validation:start`)}),W.Object({type:W.Literal(`prd_validation:complete`),passed:W.Boolean(),gaps:W.Array(Ug),completionPercent:W.Optional(W.Number())}),W.Object({type:W.Literal(`gap_close:start`),gapCount:W.Optional(W.Number()),completionPercent:W.Optional(W.Number())}),W.Object({type:W.Literal(`gap_close:plan_ready`),planBody:W.String(),gaps:W.Array(Ug)}),W.Object({type:W.Literal(`gap_close:complete`),passed:W.Boolean()}),W.Object({type:W.Literal(`acceptance_validation:complete`),passed:W.Boolean(),verdicts:W.Array(Wg,{minItems:1}),waivers:W.Optional(W.Array(W.String())),acceptanceConflicts:W.Optional(W.Array(Gg)),source:W.String({minLength:1})}),W.Object({type:W.Literal(`reconciliation:start`)}),W.Object({type:W.Literal(`reconciliation:complete`),report:c_}),W.Object({type:W.Literal(`cleanup:start`),planSet:W.String()}),W.Object({type:W.Literal(`cleanup:complete`),planSet:W.String()}),W.Object({type:W.Literal(`approval:needed`),planId:W.Optional(W.String()),action:W.String(),details:W.String()}),W.Object({type:W.Literal(`approval:response`),approved:W.Boolean()}),W.Object({type:W.Literal(`enqueue:start`),source:W.String()}),W.Object({type:W.Literal(`enqueue:complete`),id:W.String(),filePath:W.String(),title:W.String(),planSet:W.String()}),W.Object({type:W.Literal(`enqueue:failed`),error:W.String()}),W.Object({type:W.Literal(`enqueue:commit-failed`),error:W.String()}),W.Object({type:W.Literal(`recovery:start`),prdId:W.String(),setName:W.String()}),W.Object({type:W.Literal(`recovery:summary`),prdId:W.String(),summary:v_}),W.Object({type:W.Literal(`recovery:complete`),prdId:W.String(),verdict:Ag,sidecarMdPath:W.Optional(W.String()),sidecarJsonPath:W.Optional(W.String())}),W.Object({type:W.Literal(`recovery:error`),prdId:W.String(),error:W.String(),rawOutput:W.Optional(W.String())}),W.Object({type:W.Literal(`recovery:auto-resume:evaluate`),prdId:W.String(),setName:W.String(),enabled:W.Boolean(),attempt:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:0,maximum:3})}),W.Object({type:W.Literal(`recovery:auto-resume:queued`),prdId:W.String(),setName:W.String(),action:W.Literal(`continue-repair`),attempt:W.Integer({minimum:1}),maxAttempts:W.Integer({minimum:1,maximum:3})}),W.Object({type:W.Literal(`recovery:auto-resume:stopped`),prdId:W.String(),setName:W.String(),reason:W.Union([W.Literal(`disabled`),W.Literal(`attempt-budget-exhausted`),W.Literal(`not-continue-repair`),W.Literal(`not-high-confidence`),W.Literal(`not-eligible`),W.Literal(`manual-confirmation-required`),W.Literal(`partial-sidecar`),W.Literal(`malformed-sidecar`),W.Literal(`missing-sidecar`),W.Literal(`ineligible-artifacts`),W.Literal(`dirty-worktree`),W.Literal(`conflicting-worktree`),W.Literal(`queue-preflight-blocked`),W.Literal(`conflicting-applied-marker`),W.Literal(`active-gate-or-hold`),W.Literal(`repeated-failure-signature`),W.Literal(`error`)]),attempt:W.Integer({minimum:0}),maxAttempts:W.Integer({minimum:0,maximum:3}),message:W.Optional(W.String())}),W.Object({type:W.Literal(`recovery:apply:start`),prdId:W.String()}),W.Object({type:W.Literal(`recovery:apply:complete`),prdId:W.String(),verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)]),noAction:W.Boolean()}),W.Object({type:W.Literal(`recovery:apply:error`),prdId:W.String(),message:W.String()})],ax=[...ex,...zb,...nx,...$b,...V_,...B_,...ix,...U_,...F_,W.Object({type:W.Literal(`plan:build:decision`),planId:W.String(),decision:N_}),M_,...rx,...H_],ox=W.Union([...ax]),sx=W.Intersect([z_,ox]),cx=W.Object({type:W.Literal(`daemon:heartbeat`),timestamp:W.String(),uptime:W.Number(),queueDepth:W.Number(),runningBuilds:W.Number(),autoBuild:W.Object({enabled:W.Boolean(),paused:W.Boolean(),...A_}),subscribers:W.Number()}),lx=W.Object({id:W.Number(),event:sx}),ux=W.Object({id:W.String(),sessionId:W.Optional(W.String()),planSet:W.String(),command:W.String(),status:W.String(),startedAt:W.String(),completedAt:W.Optional(W.String()),cwd:W.String(),pid:W.Optional(W.Number())}),dx=W.Object({id:W.String(),title:W.String(),status:W.String(),priority:W.Optional(W.Number()),created:W.Optional(W.String()),dependsOn:W.Optional(W.Array(W.String())),dispatchFailure:W.Optional(W.Object({reason:W.String(),stage:W.Union([W.Literal(`stacking-validation`),W.Literal(`policy-gate`),W.Literal(`profile-routing`),W.Literal(`dispatch`)]),timestamp:W.String()})),recoveryVerdict:W.Optional(W.Object({verdict:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`),W.Literal(`manual`)]),confidence:W.Union([W.Literal(`low`),W.Literal(`medium`),W.Literal(`high`)])})),hold:W.Optional(x_),capabilities:b_,recoveryApplied:W.Optional(W.Union([W.Object({action:W.Union([W.Literal(`retry`),W.Literal(`continue-repair`),W.Literal(`abandon`)]),appliedAt:W.String(),commitSha:W.Optional(W.String())}),W.Object({action:W.Literal(`accepted-success`),acceptedAt:W.String(),reasonCategory:W.Union([W.Literal(`bad_acceptance_criterion`),W.Literal(`manual_verification_passed`),W.Literal(`external_or_inconclusive_criterion_waived`),W.Literal(`other`)]),reason:W.String(),cleanup:W.Object({status:W.Union([W.Literal(`committed`),W.Literal(`noop`)]),commitSha:W.Optional(W.String())}),landing:W.Object({action:W.Union([W.Literal(`pr`),W.Literal(`merge`),W.Literal(`leave`)]),status:W.Union([W.Literal(`complete`),W.Literal(`skipped`),W.Literal(`failed`)]),prUrl:W.Optional(W.String()),mergeCommitSha:W.Optional(W.String()),branch:W.Optional(W.String()),reason:W.Optional(W.String()),autoMerge:W.Optional(W.Union([W.Object({status:W.Literal(`complete`)}),W.Object({status:W.Literal(`skipped`),reason:W.String()}),W.Object({status:W.Literal(`failed`),reason:W.String()})]))}),dependents:W.Object({unblocked:W.Array(W.String()),remainedBlocked:W.Array(W.String()),notFound:W.Array(W.String())})})]))}),fx=W.Object({planCount:W.Union([W.Number(),W.Null()]),baseProfile:W.Union([W.String(),W.Null()])}),px=W.Object({enabled:W.Boolean(),watcher:W.Object({running:W.Boolean(),pid:W.Union([W.Number(),W.Null()]),sessionId:W.Union([W.String(),W.Null()])}),...A_});W.Object({cursor:W.Number(),liveness:cx,recentActivity:W.Array(lx),runs:W.Array(ux),queue:W.Array(dx),sessionMetadata:W.Record(W.String(),fx),autoBuild:px,stackLayers:W.Array(Og),failedEnqueues:W.Array(w_),stackSyncStatus:W.Optional(W.Object({last:W.Optional(W.Object({id:W.String(),trigger:W.Optional(W.Union([W.Literal(`manual`),W.Literal(`after-build`),W.Literal(`scheduled`),W.Literal(`retry-deferred`)])),activeBuildPolicy:W.Optional(W.Union([W.Literal(`skip`),W.Literal(`defer`)])),startedAt:W.String(),completedAt:W.Optional(W.String()),outcome:W.Union([W.Literal(`skipped`),W.Literal(`complete`),W.Literal(`failed`),W.Literal(`conflict`),W.Literal(`deferred`)]),reason:W.Optional(W.String()),error:W.Optional(W.String()),dryRun:W.Boolean(),localTrunkSha:W.Optional(W.String()),originTrunkSha:W.Optional(W.String()),fastForward:W.Optional(W.Boolean()),restackCandidates:W.Array(W.String()),activeBuildSkips:W.Optional(W.Array(W.Object({branch:W.String(),worktree:W.Optional(W.String()),reason:W.String()}))),providerCommands:W.Optional(W.Array(W.Object({command:W.String(),args:W.Array(W.String()),dryRun:W.Boolean(),ran:W.Boolean(),stdout:W.Optional(W.String()),stderr:W.Optional(W.String()),exitCode:W.Optional(W.Number())})))})),current:W.Optional(W.Object({id:W.String(),trigger:W.Optional(W.Union([W.Literal(`manual`),W.Literal(`after-build`),W.Literal(`scheduled`),W.Literal(`retry-deferred`)])),activeBuildPolicy:W.Optional(W.Union([W.Literal(`skip`),W.Literal(`defer`)])),startedAt:W.String(),completedAt:W.Optional(W.String()),outcome:W.Optional(W.Union([W.Literal(`skipped`),W.Literal(`complete`),W.Literal(`failed`),W.Literal(`conflict`),W.Literal(`deferred`)])),reason:W.Optional(W.String()),error:W.Optional(W.String()),dryRun:W.Boolean(),localTrunkSha:W.Optional(W.String()),originTrunkSha:W.Optional(W.String()),fastForward:W.Optional(W.Boolean()),restackCandidates:W.Array(W.String()),activeBuildSkips:W.Optional(W.Array(W.Object({branch:W.String(),worktree:W.Optional(W.String()),reason:W.String()}))),providerCommands:W.Optional(W.Array(W.Object({command:W.String(),args:W.Array(W.String()),dryRun:W.Boolean(),ran:W.Boolean(),stdout:W.Optional(W.String()),stderr:W.Optional(W.String()),exitCode:W.Optional(W.Number())})))}))}))}),W.Object({cursor:W.Number(),status:W.Union([W.Literal(`pending`),W.Literal(`running`),W.Literal(`completed`),W.Literal(`failed`)]),events:W.Array(W.Object({id:W.Number(),data:W.String()}))});var mx=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),hx=function(e){return`/`+e},gx={},_x=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=hx(t,n),t=s(t),t in gx)return;gx[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:mx,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},vx=W.Object({description:W.Optional(W.String()),whenToUse:W.Optional(W.Array(W.String())),tags:W.Optional(W.Array(W.String()))},{additionalProperties:!0}),yx=W.Object({name:W.String(),harness:W.Optional(W.Union([W.Literal(`claude-sdk`),W.Literal(`pi`)])),path:W.String(),scope:W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user`)]),shadowedBy:W.Optional(W.Union([W.Literal(`local`),W.Literal(`project`)])),metadata:W.Optional(vx)},{additionalProperties:!0}),bx=W.Union([W.Literal(`local`),W.Literal(`project`),W.Literal(`user-local`),W.Literal(`missing`),W.Literal(`none`)]);W.Object({profiles:W.Array(yx),active:W.Union([W.String(),W.Null()]),source:bx},{additionalProperties:!0});function xx(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t}function Sx(e,t){if(!(t===void 0&&e===void 0))return xx([...e??[],...t??[]])}function Cx(e,t){let n=Sx(e.dependsOn,t);return n===void 0?e:{...e,dependsOn:n}}function wx(e,t){if(t===void 0)return e;let n=xx(t);if(n.length===0){let{dependsOn:t,...n}=e;return n}return{...e,dependsOn:n}}function Tx(e){let{recoveryVerdict:t,recoveryApplied:n,dispatchFailure:r,...i}=e;return i}function Ex(e){return e===`failed`||e===`skipped`}function Dx(e,t){if(e.dependsOn===void 0&&e.status===t)return e;let{dependsOn:n,...r}=e;return{...r,status:t}}function Ox(e,t){if(!t.queue.some(t=>t.id===e.id))return{queue:[...t.queue,{id:e.id,title:e.title,status:`pending`}]}}function kx(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1){let n=wx({id:e.prdId,title:e.title,status:`pending`},e.dependsOn);return{queue:[...t.queue,n]}}let r=Tx(t.queue[n]),i=r.status===`running`?r.status:`pending`,a=wx({...r,title:e.title,status:i},e.dependsOn),o=[...t.queue];return o[n]=a,{queue:o}}function Ax(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=t.queue[n];if(Ex(r.status))return;let i=Cx(r,e.blockedBy);if(i===r)return;let a=[...t.queue];return a[n]=i,{queue:a}}function jx(e,t){let n={reason:e.reason,stage:e.stage,timestamp:e.timestamp},r=t.queue.findIndex(t=>t.id===e.prdId);if(r===-1)return{queue:[...t.queue,{id:e.prdId,title:e.title,status:`failed`,dispatchFailure:n}]};let i=[...t.queue];return i[r]={...Dx(i[r],`failed`),title:e.title,dispatchFailure:n},{queue:i}}function Mx(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=t.queue[n];if(Ex(r.status))return;let i=[...t.queue];if(e.currentDependsOn.length===0){let{dependsOn:e,...t}=r;i[n]=r.status===`waiting`?{...t,status:`pending`}:t}else i[n]={...r,dependsOn:xx(e.currentDependsOn)};return{queue:i}}var Nx={"session:start":{scope:`daemon`,persist:!0,summary:`Session started`,project:()=>void 0},"session:end":{scope:`daemon`,persist:!0,summary:e=>`Session ended: ${e.result.status}`,project:()=>void 0},"session:profile":{scope:`session`,persist:!1},"phase:start":{scope:`session`,persist:!1,summary:e=>`Phase: ${e.command} starting`},"phase:end":{scope:`session`,persist:!1,summary:e=>`Phase complete: ${e.result.status}`},"config:warning":{scope:`session`,persist:!1,summary:e=>`Config warning: ${e.message}`},"planning:warning":{scope:`session`,persist:!1,summary:e=>e.planId?`Plan warning (${e.planId}): ${e.message}`:`Plan warning: ${e.message}`},"planning:module:build-config:invalid":{scope:`session`,persist:!1,summary:e=>`Module ${e.moduleId} emitted invalid <build-config> (${e.reason}): ${e.errors.join(`; `)}`},"extension:event-handler:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} event hook failed (${e.pattern} on ${e.triggeringEventType}): ${e.message}`},"extension:event-handler:timeout":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} event hook timed out after ${e.timeoutMs}ms (${e.pattern} on ${e.triggeringEventType})`},"extension:action:start":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} started for ${e.extensionName}`},"extension:action:complete":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} completed for ${e.extensionName}`},"extension:action:failed":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} failed for ${e.extensionName}: ${e.errorCode}`},"extension:action:timeout":{scope:`daemon`,persist:!0,summary:e=>`Extension action ${e.actionId} timed out for ${e.extensionName} after ${e.timeoutMs}ms`},"extension:agent-task:start":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} started (${e.taskKind})`},"extension:agent-task:progress":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} progress: ${e.message}`},"extension:agent-task:complete":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} completed (${e.taskKind})`},"extension:agent-task:failed":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} failed (${e.errorCode}): ${e.message}`},"extension:agent-task:cancelled":{scope:`daemon`,persist:!0,summary:e=>`Extension agent task ${e.taskId} cancelled${e.reason?`: ${e.reason}`:``}`},"extension:agent-context:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} appended ${e.promptCharCount} chars to ${e.role}${e.tier?` (${e.tier})`:``}`},"extension:agent-context:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} agent-context hook failed for ${e.role}: ${e.message}`},"extension:agent-context:timeout":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} agent-context hook timed out after ${e.timeoutMs}ms for ${e.role}`},"extension:agent-context:unsupported":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} returned unsupported fields for ${e.role}: ${e.fields.join(`, `)} (deferred to EXTEND_08B)`},"extension:agent-tools:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} applied tools for ${e.role}: ${e.toolCount} accepted, ${e.excludedToolCount} excluded`},"queue:profile:selected":{scope:`session`,persist:!1,summary:e=>`Queue routed ${e.prdId} to profile "${e.profile}" via ${e.extensionName}:${e.routerName}${e.reason?` (${e.reason})`:``}`},"queue:profile:router-failed":{scope:`session`,persist:!1,summary:e=>`Profile router "${e.routerName}" (${e.extensionName}) failed for ${e.prdId}: ${e.message}`},"queue:profile:router-timeout":{scope:`session`,persist:!1,summary:e=>`Profile router "${e.routerName}" (${e.extensionName}) timed out after ${e.timeoutMs}ms for ${e.prdId}`},"queue:profile:invalid-selection":{scope:`session`,persist:!1,summary:e=>`Profile router "${e.routerName}" (${e.extensionName}) returned unknown profile "${e.requestedProfile}" for ${e.prdId}: ${e.message}`},"extension:policy:decision":{scope:`session`,persist:!1,summary:e=>`Policy gate ${e.method} (${e.extensionName}) returned ${e.decision}${e.reason?`: ${e.reason}`:``}`},"extension:policy:failed":{scope:`session`,persist:!1,summary:e=>`Policy gate ${e.method} (${e.extensionName}) failed under ${e.failurePolicy}: ${e.message}`},"extension:policy:timeout":{scope:`session`,persist:!1,summary:e=>`Policy gate ${e.method} (${e.extensionName}) timed out after ${e.timeoutMs}ms under ${e.failurePolicy}`},"extension:input-source:fetched":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} input source "${e.adapterName}" fetched "${e.sourceId}" (${e.contentLength} chars)`},"extension:input-source:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} input source "${e.adapterName}" failed for "${e.sourceId}" (${e.reason}): ${e.message}`},"extension:prd-enricher:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} PRD enricher "${e.enricherName}" applied to "${e.sourceId}" (changed: ${e.changed})`},"extension:prd-enricher:failed":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} PRD enricher "${e.enricherName}" failed for "${e.sourceId}" (${e.reason}): ${e.message}`},"extension:reviewer-perspective:applied":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} reviewer perspective "${e.perspectiveKey}" applied${e.planId?` (plan: ${e.planId})`:``}`},"extension:reviewer-perspective:skipped":{scope:`session`,persist:!1,summary:e=>`${e.extensionName?`Extension ${e.extensionName} reviewer perspective`:`Reviewer perspective`} "${e.perspectiveKey}" skipped (${e.reason})${e.message?`: ${e.message}`:``}`},"extension:validation-provider:start":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" started (${e.kind}${e.commandCount===void 0?``:`, ${e.commandCount} command(s)`})`},"extension:validation-provider:complete":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" ${e.status}${e.message?`: ${e.message}`:``}`},"extension:validation-provider:error":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" failed${e.command?` (command: ${e.command})`:``}: ${e.message}`},"extension:validation-provider:timeout":{scope:`session`,persist:!1,summary:e=>`Extension ${e.extensionName} validation provider "${e.providerName}" timed out after ${e.timeoutMs}ms${e.command?` (command: ${e.command})`:``}`},"planning:start":{scope:`session`,persist:!1,summary:e=>`Planning from ${e.label??e.source}`},"planning:inspection-summary":{scope:`session`,persist:!0,summary:e=>`Planner compact inspection summary: ${e.summary.relevantFiles.length} file(s), ${e.summary.observedFacts.length} fact(s), ${e.summary.importantFindings.length} finding(s)`},"planning:skip":{scope:`session`,persist:!1,summary:e=>`Planning skipped: ${e.reason}`},"planning:submission":{scope:`session`,persist:!1,summary:e=>`Planning submitted ${e.planCount} plan(s)`},"planning:error":{scope:`session`,persist:!1,summary:e=>`Planning error: ${e.reason}`},"planning:scope-context:failure":{scope:`session`,persist:!0,summary:e=>`Compile scope/context failure: ${e.failure.failureKind} from ${e.failure.source}; recovery ${e.failure.recovery.action}`},"planning:decomposition:start":{scope:`session`,persist:!0,summary:e=>`Context-managed planning: ${e.unitCount} unit(s), ${e.edgeCount} edge(s), parallelism ${e.limits.parallelism}`},"planning:decomposition:unit:queued":{scope:`session`,persist:!0,summary:e=>`Planning unit queued: ${e.unit.unitId}${e.unit.subsystemHints.length?` (${e.unit.subsystemHints.join(`, `)})`:``}`},"planning:decomposition:unit:running":{scope:`session`,persist:!0,summary:e=>`Planning unit running: ${e.unitId}`},"planning:decomposition:unit:progress":{scope:`session`,persist:!1,summary:e=>`Planning unit ${e.unitId}: ${e.message}`},"planning:decomposition:unit:completed":{scope:`session`,persist:!0,summary:e=>`Planning unit completed: ${e.unit.unitId} (${e.unit.coverage.coveredCriteria.length} criteria)`},"planning:decomposition:unit:skipped":{scope:`session`,persist:!0,summary:e=>`Planning unit skipped: ${e.unitId} \u2014 ${e.reason}`},"planning:decomposition:unit:failed":{scope:`session`,persist:!0,summary:e=>`Planning unit failed: ${e.unitId} \u2014 ${e.reason||e.evidence.observed.triggeredLimitKeys.join(`, `)}`},"planning:decomposition:schedule":{scope:`session`,persist:!0,summary:e=>`Planning schedule: running [${e.decision.runningUnitIds.join(`, `)}]; waiting ${e.decision.waitingUnitIds.length}; selected [${e.decision.selectedBatchUnitIds.join(`, `)}]`},"planning:decomposition:budget":{scope:`session`,persist:!0,summary:e=>`Planning budget: ${e.unitId} ${e.observed?.triggeredLimitKeys.length?`triggered ${e.observed.triggeredLimitKeys.join(`, `)}`:`within limits`}`},"planning:decomposition:compact-handoff":{scope:`session`,persist:!0,summary:e=>`Planning unit handoff: ${e.unitId??`unknown`} \u2192 ${e.artifactPath??`artifact`} (${e.byteLength} B)`},"planning:decomposition:synthesis:complete":{scope:`session`,persist:!0,summary:e=>`Context-managed synthesis complete: ${e.artifactPaths.length} artifact(s), ${e.completedUnitCount}/${e.failedUnitCount}/${e.skippedUnitCount} units`},"planning:map-reduce:atoms":{scope:`session`,persist:!0,summary:e=>`Map plan: ${e.atomCount} atom(s), ${e.edgeCount} edge(s)`},"planning:map-reduce:atom:status":{scope:`session`,persist:!0,summary:e=>`Atom ${e.atomId}: ${e.status}${e.reason?` (${e.reason})`:``}`},"planning:map-reduce:reduce-tree":{scope:`session`,persist:!0,summary:e=>`Reduce tree: ${e.nodeCount} node(s), max level ${e.maxDepth+1}`},"planning:map-reduce:reduce:status":{scope:`session`,persist:!0,summary:e=>`Reduce ${e.nodeId}: ${e.status}${e.reason?` (${e.reason})`:``}`},"planning:clarification":{scope:`session`,persist:!1,summary:e=>`Planning clarification needed (${e.questions.length} question(s))`},"planning:clarification:answer":{scope:`session`,persist:!1,summary:`Clarification answered, resuming planning`},"planning:progress":{scope:`session`,persist:!1},"planning:continuation":{scope:`session`,persist:!1,summary:e=>`Planning continuation attempt ${e.attempt}/${e.maxContinuations}${e.reason?` (${e.reason})`:``}`},"planning:pipeline":{scope:`session`,persist:!1,summary:e=>`Pipeline: ${e.compile.join(` → `)}`},"planning:complete":{scope:`session`,persist:!1,summary:e=>e.plans.length===0?`Planning complete: nothing to plan`:`Planning complete: ${e.plans.length} plan(s) created`},"planning:review:start":{scope:`session`,persist:!1,summary:`Reviewing plan files`},"planning:review:complete":{scope:`session`,persist:!1,summary:e=>e.issues.length===0?`Plan review complete: no issues`:`Plan review: ${e.issues.length} issue(s)`},"planning:evaluate:start":{scope:`session`,persist:!1,summary:`Evaluating plan review fixes`},"planning:evaluate:continuation":{scope:`session`,persist:!1,summary:e=>`Plan evaluation continuation attempt ${e.attempt}/${e.maxContinuations}`},"planning:evaluate:complete":{scope:`session`,persist:!1,summary:e=>`Plan evaluation: ${e.accepted} accepted, ${e.rejected} rejected`},"plan:build:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: starting`},"plan:build:implement:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: implementing`},"plan:build:implement:progress":{scope:`session`,persist:!1},"plan:build:implement:continuation":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: implementation continuation attempt ${e.attempt}/${e.maxContinuations}`},"plan:build:implement:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: implementation complete`},"plan:build:files_changed":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: ${e.files.length} file(s) changed`},"plan:build:review:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: reviewing`},"plan:build:review:complete":{scope:`session`,persist:!1,summary:e=>e.issues.length===0?`Plan ${e.planId}: review complete, no issues`:`Plan ${e.planId}: review complete, ${e.issues.length} issue(s)`},"plan:build:review:parallel:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: parallel review (${e.perspectives.join(`, `)})`},"plan:build:review:parallel:perspective:start":{scope:`session`,persist:!1},"plan:build:review:parallel:perspective:complete":{scope:`session`,persist:!1,summary:e=>e.issues.length>0?`Plan ${e.planId}: ${e.perspective} review, ${e.issues.length} issue(s)`:void 0},"plan:build:review:parallel:perspective:error":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: ${e.perspective} review failed: ${e.error}`},"plan:build:review:fix:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: applying ${e.issueCount} fix(es)`},"plan:build:review:fix:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: fixes applied`},"plan:build:review:fix:continuation":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: review-fixer continuation attempt ${e.attempt}/${e.maxContinuations}`},"plan:build:evaluate:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: evaluating fixes`},"plan:build:evaluate:continuation":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: evaluation continuation attempt ${e.attempt}/${e.maxContinuations}`},"plan:build:evaluate:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: evaluation complete, ${e.accepted} accepted, ${e.rejected} rejected`},"plan:build:doc-author:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: authoring docs`},"plan:build:doc-author:complete":{scope:`session`,persist:!1,summary:e=>e.docsAuthored>0?`Plan ${e.planId}: ${e.docsAuthored} doc(s) authored`:void 0},"plan:build:doc-sync:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: syncing docs`},"plan:build:doc-sync:complete":{scope:`session`,persist:!1,summary:e=>e.docsSynced>0?`Plan ${e.planId}: ${e.docsSynced} doc(s) synced`:void 0},"plan:build:test:ownership:violation":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: ${e.stage} violated test ownership (${e.declaredOwner}): ${e.reason}`},"plan:build:test:write:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: writing tests`},"plan:build:test:write:complete":{scope:`session`,persist:!1,summary:e=>e.testsWritten>0?`Plan ${e.planId}: ${e.testsWritten} test file(s) written`:void 0},"plan:build:test:start":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: running tests`},"plan:build:test:complete":{scope:`session`,persist:!1,summary:e=>{let t=[`${e.passed} passed`];return e.failed>0&&t.push(`${e.failed} failed`),e.testBugsFixed>0&&t.push(`${e.testBugsFixed} test bugs fixed`),`Plan ${e.planId}: tests ${t.join(`, `)}`}},"plan:build:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: complete`},"plan:build:recovery:start":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan ${e.blockerKind} recovery started (${e.maxAttempts} attempt(s))`},"plan:build:recovery:attempt:start":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan recovery attempt ${e.attempt}/${e.maxAttempts}`},"plan:build:recovery:attempt:result":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan recovery attempt ${e.attempt}/${e.maxAttempts} ${e.blockersCleared?`cleared blockers`:`left blockers`}`},"plan:build:recovery:skip":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan ${e.blockerKind} recovery skipped (${e.reason})`},"plan:build:recovery:exhausted":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: same-plan ${e.blockerKind} recovery exhausted`},"plan:build:failed":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: failed \u2014 ${e.error}`},"plan:build:progress":{scope:`session`,persist:!1},"plan:status:change":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: status \u2192 ${e.status}`,project:()=>void 0},"plan:error:set":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: error set`,project:()=>void 0},"plan:error:clear":{scope:`session`,persist:!0,summary:e=>`Plan ${e.planId}: error cleared`,project:()=>void 0},"schedule:start":{scope:`session`,persist:!1,summary:e=>`Scheduling ${e.planIds.length} plan(s)`},"plan:schedule:ready":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId} ready to schedule: ${e.reason}`},"plan:merge:start":{scope:`session`,persist:!1,summary:e=>`Merging plan ${e.planId}`},"plan:merge:complete":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId} merged`},"plan:build:decision":{scope:`session`,persist:!1,summary:e=>`Plan ${e.planId}: decision (${e.decision.kind})`},"planning:decision":{scope:`session`,persist:!1,summary:e=>e.planId?`Planning decision (${e.decision.kind}) for plan ${e.planId}`:`Planning decision (${e.decision.kind})`},"plan:merge:resolve:start":{scope:`session`,persist:!1,summary:e=>`Resolving merge conflicts for plan ${e.planId}`},"plan:merge:resolve:complete":{scope:`session`,persist:!1,summary:e=>e.resolved?`Merge conflicts resolved for plan ${e.planId}`:`Failed to resolve merge conflicts for plan ${e.planId}`},"landing:start":{scope:`session`,persist:!1,summary:e=>`Landing (${e.action}): starting ${e.featureBranch} \u2192 ${e.baseBranch}`},"landing:complete":{scope:`session`,persist:!1,summary:e=>e.action===`pr`?e.prUrl?`Landing (${e.action}): PR ${e.prUrl}`:`Landing (${e.action}): PR created for ${e.featureBranch}`:e.action===`merge`?`Landing (${e.action}): merged ${e.featureBranch} into ${e.baseBranch}`:e.action===`leave`?`Landing (${e.action}): ${e.featureBranch} left for manual workflow`:`Landing (${e.action}): completed`},"landing:skipped":{scope:`session`,persist:!1,summary:e=>`Landing (${e.action}) skipped: ${e.reason}`},"landing:auto-merge:start":{scope:`session`,persist:!1,summary:e=>`PR auto-merge: enabling for ${e.prUrl}`},"landing:auto-merge:complete":{scope:`session`,persist:!1,summary:e=>`PR auto-merge: enabled for ${e.prUrl}`},"landing:auto-merge:skipped":{scope:`session`,persist:!1,summary:e=>`PR auto-merge skipped: ${e.reason}`},"stack:layer:recorded":{scope:`session`,persist:!0,summary:e=>`Stack layer recorded: ${e.prdId} (${e.status}) on ${e.branch}`,project:(e,t)=>t.stackLayers.find(t=>t.prdId===e.prdId)?{stackLayers:t.stackLayers.map(t=>t.prdId===e.prdId?{...t,stackId:e.stackId,parentPrdId:e.parentPrdId,provider:e.provider,branch:e.branch,baseBranch:e.baseBranch,...e.artifact!==void 0&&{artifact:e.artifact},...e.landingAction!==void 0&&{landingAction:e.landingAction},status:e.status,updatedAt:e.timestamp}:t)}:{stackLayers:[...t.stackLayers,{prdId:e.prdId,stackId:e.stackId,parentPrdId:e.parentPrdId,provider:e.provider,branch:e.branch,baseBranch:e.baseBranch,...e.artifact!==void 0&&{artifact:e.artifact},...e.landingAction!==void 0&&{landingAction:e.landingAction},status:e.status,recordedAt:e.timestamp,updatedAt:e.timestamp}]}},"stack:provider:command":{scope:`session`,persist:!0,summary:e=>{let t=e.args?[e.command,...e.args].join(` `):e.command;return`Stack provider (${e.provider}): ${t} \u2192 exit ${e.exitCode}`}},"stack:landing:update":{scope:`session`,persist:!0,summary:e=>{let t=`Stack landing: ${e.prdId} (${e.action}) ${e.status}`,n=e.baseRepairReason?` (base repaired: ${e.originalBaseBranch??`?`} \u2192 ${e.effectiveBaseBranch??`?`})`:``;return e.prUrl?`${t}${n} \u2014 ${e.prUrl}`:e.reason?`${t}${n} \u2014 ${e.reason}`:`${t}${n}`},project:(e,t)=>{let n=t.stackLayers.find(t=>t.prdId===e.prdId);if(!n)return;let r=n.status;return e.status===`complete`?r=e.action===`merge`?`merged`:`landed`:e.status===`failed`?r=`failed`:e.status===`skipped`&&(r=e.action===`merge`?`merged`:e.action===`leave`?`landed`:`failed`),{stackLayers:t.stackLayers.map(t=>t.prdId===e.prdId?{...t,status:r,landing:{action:e.action,status:e.status,prUrl:e.prUrl,reason:e.reason,originalBaseBranch:e.originalBaseBranch,effectiveBaseBranch:e.effectiveBaseBranch,baseRepairReason:e.baseRepairReason,startedAt:t.landing?.startedAt??e.timestamp,completedAt:e.status===`complete`||e.status===`failed`||e.status===`skipped`?e.timestamp:void 0},updatedAt:e.timestamp}:t)}}},"stack:landing:conflict:detected":{scope:`session`,persist:!0,summary:e=>`Stack landing conflict: ${e.prdId} ${e.operation} (${e.conflictedFiles.length} file(s))`},"stack:landing:conflict:recovery:start":{scope:`session`,persist:!0,summary:e=>`Stack landing recovery attempt ${e.attempt}/${e.maxAttempts}: ${e.prdId}`},"stack:landing:conflict:recovery:complete":{scope:`session`,persist:!0,summary:e=>`Stack landing recovery complete: ${e.prdId} after ${e.attempts} attempt(s)`},"stack:landing:conflict:recovery:failed":{scope:`session`,persist:!0,summary:e=>`Stack landing recovery failed: ${e.prdId} \u2014 ${e.reason}`},"merge:finalize:start":{scope:`session`,persist:!1,summary:e=>`Merging ${e.featureBranch} into ${e.baseBranch}`},"merge:finalize:complete":{scope:`session`,persist:!1,summary:e=>`Merged ${e.featureBranch} into ${e.baseBranch}`},"merge:finalize:skipped":{scope:`session`,persist:!1,summary:e=>`Feature branch merge skipped: ${e.reason}`},"merge:worktree:set":{scope:`session`,persist:!0,project:()=>void 0},"merge:worktree:clear":{scope:`session`,persist:!0,project:()=>void 0},"agent:start":{scope:`session`,persist:!1,summary:e=>e.planId?`Agent ${e.agent} started (plan ${e.planId})`:`Agent ${e.agent} started`},"agent:warning":{scope:`session`,persist:!1,summary:e=>`Agent ${e.agent} warning: ${e.message}`},"agent:stop":{scope:`session`,persist:!1,summary:e=>e.error?`Agent ${e.agent} stopped with error`:`Agent ${e.agent} stopped`},"agent:usage":{scope:`session`,persist:!1},"agent:message":{scope:`session`,persist:!1},"agent:tool_use":{scope:`session`,persist:!1},"agent:tool_result":{scope:`session`,persist:!1},"agent:result":{scope:`session`,persist:!1},"agent:activity":{scope:`session`,persist:!1,summary:e=>`Agent ${e.agent} activity (${e.totals?.filesChanged??0} files, ${e.attribution})`},"agent:retry":{scope:`session`,persist:!1,summary:e=>`Agent ${e.agent} retry attempt ${e.attempt}/${e.maxAttempts} (${e.subtype})`},"validation:start":{scope:`session`,persist:!1,summary:e=>`Running post-merge validation (${e.commands.length} command(s))`},"validation:command:start":{scope:`session`,persist:!1,summary:e=>`Running: ${e.command}`},"validation:command:complete":{scope:`session`,persist:!1,summary:e=>e.exitCode===0?`${e.command} passed`:`${e.command} failed (exit ${e.exitCode})`},"validation:command:timeout":{scope:`session`,persist:!1,summary:e=>`${e.command} timed out after ${Math.round(e.timeoutMs/1e3)}s`},"validation:complete":{scope:`session`,persist:!1,summary:e=>e.passed?`All validation commands passed`:`Validation failed`},"validation:fix:start":{scope:`session`,persist:!1,summary:e=>`Validation fix attempt ${e.attempt}/${e.maxAttempts}`},"validation:fix:complete":{scope:`session`,persist:!1,summary:e=>`Validation fix attempt ${e.attempt} complete`},"prd_validation:start":{scope:`session`,persist:!1,summary:`PRD validation starting`},"prd_validation:complete":{scope:`session`,persist:!1,summary:e=>e.passed?`PRD validation passed`:`PRD validation failed: ${e.gaps.length} gap(s)`},"gap_close:start":{scope:`session`,persist:!1,summary:e=>e.gapCount===void 0?`Closing PRD validation gaps`:`Closing ${e.gapCount} gap(s)`},"gap_close:plan_ready":{scope:`session`,persist:!1},"gap_close:complete":{scope:`session`,persist:!1,summary:e=>e.passed?`Gap closing complete: all gaps resolved`:`Gap closing complete: gaps remain`},"acceptance_validation:complete":{scope:`session`,persist:!1,summary:e=>{let t=e.verdicts.reduce((e,t)=>(e[t.verdict]+=1,e),{pass:0,fail:0,unknown:0}),n=e.acceptanceConflicts?.length??0,r=n>0?` (${n} conflict(s) reported)`:``;if(e.passed)return`Acceptance validation passed: ${e.verdicts.length} criterion/criteria verified${r}`;if(t.fail>0){let e=t.unknown>0?`, ${t.unknown} unknown`:``;return`Acceptance validation failed: ${t.fail} criterion/criteria failed${e}${r}`}let i=t.unknown===e.verdicts.length?`; no criterion was verified`:``;return`Acceptance validation inconclusive: ${t.unknown} criterion/criteria unknown${i}${r}`}},"reconciliation:start":{scope:`session`,persist:!1,summary:`Reconciling worktree state`},"reconciliation:complete":{scope:`session`,persist:!1,summary:e=>{let t=[];return e.report.valid.length>0&&t.push(`${e.report.valid.length} valid`),e.report.missing.length>0&&t.push(`${e.report.missing.length} missing`),e.report.corrupt.length>0&&t.push(`${e.report.corrupt.length} corrupt`),`Reconciliation complete: ${t.join(`, `)}`}},"cleanup:start":{scope:`session`,persist:!1,summary:e=>`Cleaning up plan files for ${e.planSet}`},"cleanup:complete":{scope:`session`,persist:!1,summary:e=>`Plan files removed for ${e.planSet}`},"approval:needed":{scope:`session`,persist:!1,summary:e=>`Approval needed: ${e.action}`},"approval:response":{scope:`session`,persist:!1,summary:e=>e.approved?`Approved`:`Denied`},"enqueue:start":{scope:`daemon`,persist:!0,summary:e=>`Enqueueing from ${e.source}`},"enqueue:complete":{scope:`daemon`,persist:!0,summary:e=>`Enqueued: ${e.title}`,project:Ox},"enqueue:failed":{scope:`daemon`,persist:!0,summary:e=>`Enqueue failed: ${e.error}`},"enqueue:commit-failed":{scope:`daemon`,persist:!0,summary:e=>`Enqueue commit failed: ${e.error}`},"build:terminal-failure":{scope:`session`,persist:!0,summary:e=>`Build terminal failure (${e.failure.scope}): ${e.failure.message}`},"build:resume:start":{scope:`session`,persist:!0,summary:e=>`Resuming compiled build for PRD ${e.prdId} on ${e.featureBranch}`},"build:resume:state":{scope:`session`,persist:!0,summary:e=>`Resume state seeded: ${e.seededMerged.length} merged, ${e.seededPending.length} pending on ${e.featureBranch}`},"build:resume:ineligible":{scope:`session`,persist:!0,summary:e=>`Resume ineligible: ${e.reason}`},"build:resume:artifacts":{scope:`session`,persist:!0,summary:e=>`Recovered ${e.plans.length} compiled plan artifact(s) for PRD ${e.prdId}`},"build:resume:complete":{scope:`session`,persist:!0,summary:e=>`Build resume complete for PRD ${e.prdId}`},"recovery:start":{scope:`session`,persist:!1,summary:e=>`Analysing failed build for PRD ${e.prdId}`},"recovery:summary":{scope:`session`,persist:!1},"recovery:complete":{scope:`session`,persist:!1,summary:e=>`Recovery analysis complete: ${e.verdict.verdict.toUpperCase()}`},"recovery:error":{scope:`session`,persist:!1,summary:e=>`Recovery parse failed: ${e.error}`},"recovery:auto-resume:evaluate":{scope:`daemon`,persist:!0,summary:e=>`Recovery auto-resume policy evaluated for ${e.prdId}: ${e.enabled?`enabled`:`disabled`} (${e.attempt}/${e.maxAttempts})`,project:(e,t)=>t.autoBuild?{autoBuild:{...t.autoBuild,recoveryAutoResume:{enabled:e.enabled,maxAttempts:e.maxAttempts,attempts:e.attempt,lastDecision:`evaluate`,prdId:e.prdId,setName:e.setName}}}:void 0},"recovery:auto-resume:queued":{scope:`daemon`,persist:!0,summary:e=>`Recovery auto-resume queued continue-repair for ${e.prdId} (${e.attempt}/${e.maxAttempts})`,project:(e,t)=>t.autoBuild?{autoBuild:{...t.autoBuild,recoveryAutoResume:{enabled:!0,maxAttempts:e.maxAttempts,attempts:e.attempt,lastDecision:`queued`,prdId:e.prdId,setName:e.setName}}}:void 0},"recovery:auto-resume:stopped":{scope:`daemon`,persist:!0,summary:e=>`Recovery auto-resume stopped for ${e.prdId}: ${e.reason}`,project:(e,t)=>t.autoBuild?{autoBuild:{...t.autoBuild,recoveryAutoResume:{enabled:e.reason!==`disabled`,maxAttempts:e.maxAttempts,attempts:e.attempt,lastDecision:`stopped`,prdId:e.prdId,setName:e.setName,stopReason:e.reason,...e.message===void 0?{}:{message:e.message}}}}:void 0},"recovery:apply:start":{scope:`session`,persist:!1},"recovery:apply:complete":{scope:`session`,persist:!1,summary:e=>e.noAction?`Recovery verdict is manual — no changes made`:`Recovery applied: ${e.verdict.toUpperCase()}`},"recovery:apply:error":{scope:`session`,persist:!1,summary:e=>`Recovery apply failed: ${e.message}`},"daemon:run:upsert":{scope:`daemon`,persist:!0,summary:e=>`Run ${e.run.id}: ${e.run.command} \u2192 ${e.run.status}`,project(e,t){let n=t.runs.findIndex(t=>t.id===e.run.id);if(n!==-1){let r=[...t.runs];return r[n]=e.run,{runs:r}}return{runs:[e.run,...t.runs]}}},"daemon:auto-build:paused":{scope:`daemon`,persist:!0,summary:e=>`Auto-build paused: ${e.reason}`,project(e,t){if(t.autoBuild&&!(!t.autoBuild.enabled&&t.autoBuild.desired!==`enabled`))return{autoBuild:{...t.autoBuild,enabled:!0,desired:`enabled`,mode:`paused`,scheduler:{...t.autoBuild.scheduler??{alive:!1},paused:!0}}}}},"daemon:lifecycle:starting":{scope:`daemon`,persist:!0,summary:e=>`Daemon starting (pid ${e.pid}, port ${e.port})`},"daemon:lifecycle:ready":{scope:`daemon`,persist:!0,summary:e=>`Daemon ready (pid ${e.pid}, port ${e.port})`},"daemon:lifecycle:shutdown:start":{scope:`daemon`,persist:!0,summary:e=>`Daemon shutting down (${e.signal}: ${e.reason})`},"daemon:lifecycle:shutdown:complete":{scope:`daemon`,persist:!0,summary:`Daemon shutdown complete`},"daemon:heartbeat":{scope:`daemon`,persist:!1,project(e,t){let n={at:Date.now(),payload:{uptime:e.uptime,queueDepth:e.queueDepth,runningBuilds:e.runningBuilds,autoBuild:e.autoBuild,subscribers:e.subscribers}};return t.autoBuild?{latestHeartbeat:n,autoBuild:{...t.autoBuild,enabled:e.autoBuild.enabled,...e.autoBuild.desired!==void 0&&{desired:e.autoBuild.desired},...e.autoBuild.mode!==void 0&&{mode:e.autoBuild.mode},...e.autoBuild.lastTransition!==void 0&&{lastTransition:e.autoBuild.lastTransition},...e.autoBuild.reason!==void 0&&{reason:e.autoBuild.reason},...e.autoBuild.recoveryAutoResume!==void 0&&{recoveryAutoResume:e.autoBuild.recoveryAutoResume},...e.autoBuild.scheduler!==void 0&&{scheduler:{...t.autoBuild.scheduler??{},...e.autoBuild.scheduler}}}}:{latestHeartbeat:n}}},"daemon:scheduler:dequeued":{scope:`daemon`,persist:!0,summary:e=>`Dequeued PRD ${e.prdId} (queue depth: ${e.queueDepth})`},"daemon:scheduler:capacity-blocked":{scope:`daemon`,persist:!0,summary:e=>`Scheduler capacity blocked (${e.runningCount}/${e.limit} running)`},"daemon:scheduler:dependency-blocked":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} blocked by: ${e.blockedBy.join(`, `)}`,project:Ax},"daemon:scheduler:paused":{scope:`daemon`,persist:!0,summary:()=>`Scheduler paused: new PRD launches suspended`},"daemon:scheduler:resumed":{scope:`daemon`,persist:!0,summary:()=>`Scheduler resumed: PRD launch discovery re-triggered`},"daemon:auto-build:enabled":{scope:`daemon`,persist:!0,summary:`Auto-build enabled`,project(e,t){if(t.autoBuild&&!t.autoBuild.enabled)return{autoBuild:{...t.autoBuild,enabled:!0}}}},"daemon:auto-build:disabled":{scope:`daemon`,persist:!0,summary:`Auto-build disabled`,project(e,t){if(t.autoBuild&&t.autoBuild.enabled)return{autoBuild:{...t.autoBuild,enabled:!1}}}},"daemon:auto-build:resumed":{scope:`daemon`,persist:!0,summary:`Auto-build resumed`,project(e,t){if(t.autoBuild&&!t.autoBuild.enabled)return{autoBuild:{...t.autoBuild,enabled:!0}}}},"daemon:auto-build:triggered":{scope:`daemon`,persist:!0,summary:e=>`Auto-build triggered: ${e.prdsEnqueued} PRD(s) enqueued`},"daemon:auto-build:transition":{scope:`daemon`,persist:!0,summary:e=>`Auto-build ${e.previousMode} \u2192 ${e.nextMode} (${e.desired})${e.reason?`: ${e.reason}`:``}`,project(e,t){if(!t.autoBuild)return;let n=e.desired===`enabled`;return{autoBuild:{...t.autoBuild,enabled:n,desired:e.desired,mode:e.nextMode,...e.nextMode===`paused`&&{scheduler:{...t.autoBuild.scheduler??{alive:!1},paused:!0}},lastTransition:{at:e.timestamp,previousMode:e.previousMode,nextMode:e.nextMode,desired:e.desired,reason:e.reason,source:e.source},reason:e.reason}}}},"daemon:recovery:start":{scope:`daemon`,persist:!0,summary:`Daemon recovery started`},"daemon:recovery:run-marked-failed":{scope:`daemon`,persist:!0,summary:e=>`Run ${e.runId} marked failed: ${e.reason}`},"daemon:recovery:lock-removed":{scope:`daemon`,persist:!0,summary:e=>`Stale lock removed: ${e.path} (pid ${e.pid})`},"daemon:recovery:lock-adopted":{scope:`daemon`,persist:!0,summary:e=>`Live queue lock adopted: ${e.path} (pid ${e.pid}, PRD ${e.prdId})`},"daemon:recovery:complete":{scope:`daemon`,persist:!0,summary:e=>`Daemon recovery complete: ${e.runsFailed} failed, ${e.locksRemoved} lock(s) removed`},"daemon:orphan:reaped":{scope:`daemon`,persist:!0,summary:e=>`Orphaned build reaped: ${e.runId} (pid ${e.pid})`},"daemon:failed-enqueue:upsert":{scope:`daemon`,persist:!0,summary:e=>`Failed enqueue ${e.failedEnqueue.runId}: ${e.failedEnqueue.failureReason}`,project(e,t){let n=(t.failedEnqueues??[]).filter(t=>t.runId!==e.failedEnqueue.runId);return{failedEnqueues:[e.failedEnqueue,...n].sort((e,t)=>t.failedAt.localeCompare(e.failedAt)||e.runId.localeCompare(t.runId))}}},"daemon:failed-enqueue:resolved":{scope:`daemon`,persist:!0,summary:e=>`Failed enqueue ${e.runId} resolved${e.spawnedSessionId?` as ${e.spawnedSessionId}`:``}`,project(e,t){let n=t.failedEnqueues??[],r=n.filter(t=>t.runId!==e.runId);if(r.length!==n.length)return{failedEnqueues:r}}},"daemon:warning":{scope:`daemon`,persist:!0,summary:e=>`Daemon warning [${e.source}]: ${e.message}`},"daemon:error":{scope:`daemon`,persist:!0,summary:e=>`Daemon error [${e.source}]: ${e.message}`},"queue:start":{scope:`daemon`,persist:!0,summary:e=>`PRD queue started: ${e.prdCount} PRD(s) in ${e.dir}`},"queue:prd:start":{scope:`daemon`,persist:!0,summary:e=>`Processing PRD: ${e.title} (${e.prdId})`,project(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=[...t.queue];return r[n]={...r[n],status:`running`},{queue:r}}},"queue:prd:discovered":{scope:`daemon`,persist:!0,summary:e=>`Discovered PRD: ${e.title} (${e.prdId})`,project:kx},"queue:prd:dependency-overridden":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} dependency override: removed ${e.removedDependency}`,project:Mx},"queue:prd:removed":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} removed from queue (was ${e.previousStatus})`,project:(e,t)=>t.queue.some(t=>t.id===e.prdId)?{queue:t.queue.filter(t=>t.id!==e.prdId)}:void 0},"queue:prd:stale":{scope:`daemon`,persist:!0,summary:e=>`PRD staleness (${e.prdId}): ${e.verdict} \u2014 ${e.justification}`,project(e,t){if(e.verdict===`proceed`)return;let n=t.queue.filter(t=>t.id!==e.prdId);if(n.length!==t.queue.length)return{queue:n}}},"queue:prd:skip":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} skipped: ${e.reason}`,project(e,t){let n=t.queue.filter(t=>t.id!==e.prdId);if(n.length!==t.queue.length)return{queue:n}}},"queue:prd:dispatch-failed":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} dispatch failed (${e.stage}): ${e.reason}`,project:jx},"queue:prd:commit-failed":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} commit failed: ${e.error}`,project(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n===-1)return;let r=[...t.queue];return r[n]=Dx(r[n],`failed`),{queue:r}}},"queue:prd:complete":{scope:`daemon`,persist:!0,summary:e=>`PRD ${e.prdId} complete: ${e.status}`,project(e,t){let n=t.queue.findIndex(t=>t.id===e.prdId);if(n!==-1){if(e.status===`failed`){let e=[...t.queue];return e[n]=Dx(e[n],`failed`),{queue:e}}return{queue:t.queue.filter(t=>t.id!==e.prdId)}}}},"queue:complete":{scope:`daemon`,persist:!0,summary:e=>`Queue complete: ${e.processed} processed, ${e.skipped} skipped`,project(e,t){let n=t.queue.filter(e=>e.status===`failed`).map(e=>Dx(e,`failed`));if(!(n.length===t.queue.length&&n.every((e,n)=>e===t.queue[n])))return{queue:n}}},"stack:sync:start":{scope:`daemon`,persist:!0,summary:e=>e.trigger?`Stack sync started (${e.trigger}, syncId: ${e.syncId})`:`Stack sync started (syncId: ${e.syncId})`},"stack:sync:complete":{scope:`daemon`,persist:!0,summary:e=>e.restackCandidates.length>0?`Stack sync complete: ${e.restackCandidates.length} branch(es) restacked`:`Stack sync complete (syncId: ${e.syncId})`},"stack:sync:failed":{scope:`daemon`,persist:!0,summary:e=>`Stack sync ${e.outcome}: ${e.reason}`},"stack:sync:deferred":{scope:`daemon`,persist:!0,summary:e=>`Stack sync deferred: ${e.reason}`},"stack:sync:skipped":{scope:`daemon`,persist:!0,summary:e=>`Stack sync skipped: ${e.reason}`},"base-sync:start":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync started: ${e.remote}/${e.baseBranch}`},"base-sync:conflict:attempt":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync conflict attempt ${e.attempt}/${e.maxAttempts}`},"base-sync:resolver:start":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync resolver started (${e.attempt}/${e.maxAttempts})`},"base-sync:resolver:complete":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync resolver ${e.resolved?`completed`:`failed`} (${e.attempt}/${e.maxAttempts})`},"base-sync:rebase:continue":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync continuing rebase (${e.attempt}/${e.maxAttempts})`},"base-sync:success":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync ${e.rebased?`rebased`:`already current`}: ${e.remote}/${e.baseBranch}`},"base-sync:budget:exhausted":{scope:`session`,persist:!1,summary:e=>`Direct PR base sync exhausted ${e.attempts}/${e.maxAttempts} conflict attempts`}};Object.keys(Nx).filter(e=>{let t=Nx[e];return t.scope===`daemon`&&t.persist});var Px=`eforge:workstation:navigate`,Fx=`eforge:workstation:route`;function Ix(e){let t=e??(typeof window<`u`?window.location.hash:``),n=t.startsWith(`#`)?t.slice(1):t,r=new URLSearchParams(n),i=r.get(`bridgeToken`)??void 0,a=r.get(`path`)??void 0;return{...i?{bridgeToken:i}:{},...a?{initialPath:a}:{}}}function Lx(e,t){if(typeof window>`u`)return;let n=t?.bridgeToken??Ix().bridgeToken;n&&(t?.targetWindow??window.parent)?.postMessage({type:Px,bridgeToken:n,path:e},`*`)}function Rx(e,t){if(typeof window>`u`)return()=>{};let n=t?.bridgeToken??Ix().bridgeToken,r=t=>{let r=t.data;!r||typeof r!=`object`||r.type!==Fx||n&&r.bridgeToken!==n||typeof r.path==`string`&&e(r.path)};return window.addEventListener(`message`,r),()=>window.removeEventListener(`message`,r)}var zx=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/router.tsx`;function Bx(e){return e.replace(/^\/+|\/+$/g,``)}function Vx(e){let t=e.indexOf(`?`);return t<0?{path:Bx(e),search:``}:{path:Bx(e.slice(0,t)),search:e.slice(t)}}function Hx(){return{initialPath:()=>Ix().initialPath??``,subscribe:e=>Rx(e),push:e=>Lx(e)}}function Ux(){let e=()=>Bx(window.location.pathname)+window.location.search;return{initialPath:e,subscribe:t=>{let n=()=>t(e());return window.addEventListener(`popstate`,n),()=>window.removeEventListener(`popstate`,n)},push:e=>window.history.pushState(null,``,`/${e}`)}}function Wx(){return Ix().bridgeToken&&typeof window<`u`&&window.parent!==window?Hx():Ux()}var Gx=w.createContext(null);function Kx({children:e}){let t=w.useRef(null);t.current||=Wx();let n=t.current,[r,i]=w.useState(()=>n.initialPath());w.useEffect(()=>n.subscribe(e=>i(e)),[n]);let a=w.useCallback(e=>{i(e),n.push(e)},[n]),{path:o,search:s}=Vx(r),c=w.useMemo(()=>new URLSearchParams(s),[s]),l=w.useCallback(e=>{let t=new URLSearchParams(s);e(t);let n=t.toString();a(o+(n?`?${n}`:``))},[a,o,s]),u=w.useMemo(()=>({path:o,segments:o?o.split(`/`):[],query:c,navigate:a,setQuery:l}),[o,c,a,l]);return(0,I.jsxDEV)(Gx.Provider,{value:u,children:e},void 0,!1,{fileName:zx,lineNumber:91,columnNumber:10},this)}function qx(){let e=w.useContext(Gx);if(!e)throw Error(`useRouter must be used within RouterProvider`);return e}function Jx(){return w.useContext(Gx)}function Yx(e){return{priority:`medium`,tags:[],reasons:[],unresolvedDependsOn:[],activeTraceReasons:[],blocked:!1,ready:!1,reviewDue:!1,closed:!1,dependencies:[],dependents:[],notes:{claim:``,evidence:``,recheck:``,promotionPaths:``},recLanes:[],...e}}function Xx(e){let t={affectedItemIds:e.itemIds},n=[{kind:`session-plan`,stage:`planned`,status:e.state===`active`?`active`:`ready`,session:e.session,promotedAt:`2026-06-07T00:00:00.000Z`,...t},{kind:`queue-prd`,stage:e.state===`active`?`queued`:`completed`,status:e.state===`failed`?`failed`:`completed`,prdId:`${e.session}-prd`,queuedAt:`2026-06-07T00:01:00.000Z`,...t},{kind:`build-run`,stage:e.state===`failed`?`failed`:`running`,status:e.state===`failed`?`failed`:`running`,runId:`${e.session}-run`,sessionId:`${e.session}-build`,startedAt:`2026-06-07T00:02:00.000Z`,...t}];return(e.state===`pr-open`||e.state===`merged`||e.state===`partial`)&&n.push({kind:`pr`,stage:`pr-open`,status:`pr-open`,prUrl:e.prUrl??`https://example.test/pr/${e.session}`,featureBranch:`feature/${e.session}`,timestamp:`2026-06-07T00:03:00.000Z`,...t}),(e.state===`merged`||e.state===`partial`)&&n.push({kind:`landing`,stage:`merged`,status:`landed`,featureBranch:`feature/${e.session}`,commitSha:e.commitSha??`abc123`,landedAt:`2026-06-07T00:04:00.000Z`,...t}),e.state===`failed`&&n.push({kind:`last-event`,stage:`failed`,status:`failed`,runId:`${e.session}-run`,timestamp:`2026-06-07T00:04:00.000Z`,...t}),n}var Zx=Xx({itemIds:[`add-import-preview`,`recommend-next-work`],session:`2026-06-07-planning-foundations`,state:`partial`,commitSha:`def456`}),Qx={epicId:`planning`,title:`Planning workstation`,lifecycleState:`partial`,totalItemCount:3,shippedItemCount:1,activeItemCount:1,failedItemCount:0,itemRows:[{itemId:`add-import-preview`,title:`Add import preview`,lifecycleState:`shipped`,shipped:!0,evidence:`Merged at def456.`},{itemId:`recommend-next-work`,title:`Maintain next-work recommendations`,lifecycleState:`active`,shipped:!1,evidence:`Build still running.`},{itemId:`plan-workstation`,title:`Move planning into workstation`,lifecycleState:`active`,shipped:!1,evidence:`Session plan active.`}]},$x=[Yx({id:`add-import-preview`,title:`Add import preview`,status:`planned`,lane:`ready`,priority:`high`,tags:[`ux`,`cli`],ready:!0,recRank:2,epic:`planning`,epicRef:{id:`planning`,title:`Planning workstation`,status:`active`,missing:!1},notes:{claim:`Users want a dry-run preview before importing.`,evidence:``,recheck:``,promotionPaths:``},lifecycleState:`partial`,userStatus:`planned`,effectiveLifecycle:`partial`,reasonCodes:[`partial-plan`],associatedLinks:Zx,lifecycleLinks:Zx,epicProgress:Qx,planEligible:!1,planEligibilityReasonCode:`partial-plan`,planEligibilityReasonMessage:`A partial session plan already covers add-import-preview.`,planEligibilityLinks:Zx}),Yx({id:`recommend-next-work`,title:`Maintain next-work recommendations`,status:`planned`,lane:`ready`,priority:`medium`,ready:!0,recRank:1,recLanes:[`Planning foundations`],epic:`planning`,epicRef:{id:`planning`,title:`Planning workstation`,status:`active`,missing:!1},dependents:[{id:`add-import-preview`,title:`Add import preview`,status:`planned`,missing:!1,blocking:!1}],lifecycleState:`pr-open`,userStatus:`planned`,effectiveLifecycle:`pr-open`,reasonCodes:[`open-pr`],associatedLinks:Xx({itemIds:[`recommend-next-work`],session:`2026-06-07-recommendations`,state:`pr-open`,prUrl:`https://example.test/pr/recommendations`}),lifecycleLinks:Xx({itemIds:[`recommend-next-work`],session:`2026-06-07-recommendations`,state:`pr-open`,prUrl:`https://example.test/pr/recommendations`}),planEligible:!0}),Yx({id:`plan-workstation`,title:`Move planning into workstation`,status:`active`,lane:`in-progress`,priority:`high`,activeTraceReasons:[`active build run trace run-12`],reasons:[`active build run trace run-12`],epic:`planning`,epicRef:{id:`planning`,title:`Planning workstation`,status:`active`,missing:!1},lifecycleState:`active`,userStatus:`active`,effectiveLifecycle:`build`,reasonCodes:[`running-build`],associatedLinks:Xx({itemIds:[`plan-workstation`],session:`2026-06-07-plan-workstation`,state:`active`}),lifecycleLinks:Xx({itemIds:[`plan-workstation`],session:`2026-06-07-plan-workstation`,state:`active`}),epicProgress:Qx,planEligible:!1,planEligibilityReasonCode:`running-build`,planEligibilityReasonMessage:`plan-workstation is covered by running-build.`}),Yx({id:`auto-mode`,title:`Explore auto-mode draining`,status:`planned`,lane:`blocked`,priority:`low`,blocked:!0,unresolvedDependsOn:[`traceability`],recUnblock:`Land traceability first, then re-scope.`,dependencies:[{id:`traceability`,title:`Trace sidecars`,status:`planned`,missing:!1,blocking:!0}],epic:`extensions`,epicRef:{id:`extensions`,title:`Extension platform`,status:`planned`,missing:!1},lifecycleState:`failed`,userStatus:`planned`,effectiveLifecycle:`failed`,reasonCodes:[`failed-result`],associatedLinks:Xx({itemIds:[`auto-mode`],session:`2026-06-07-auto-mode`,state:`failed`}),lifecycleLinks:Xx({itemIds:[`auto-mode`],session:`2026-06-07-auto-mode`,state:`failed`}),planEligible:!1,planEligibilityReasonCode:`failed-result`,planEligibilityReasonMessage:`auto-mode is covered by failed-result.`}),Yx({id:`traceability`,title:`Trace sidecars`,status:`planned`,lane:`ready`,priority:`medium`,ready:!0,dependents:[{id:`auto-mode`,title:`Explore auto-mode draining`,status:`planned`,missing:!1,blocking:!0}],planEligible:!0}),Yx({id:`legacy-cleanup`,title:`Remove legacy board renderer`,status:`shipped`,lane:`done`,priority:`low`,closed:!0,lifecycleState:`merged`,lifecycleLinks:Xx({itemIds:[`legacy-cleanup`],session:`2026-06-07-legacy-cleanup`,state:`merged`,prUrl:`https://example.test/pr/legacy-cleanup`,commitSha:`fedcba`}),planEligible:!1,planEligibilityReasonCode:`merged-result`,planEligibilityReasonMessage:`legacy-cleanup already has merged result evidence.`}),Yx({id:`stale-idea`,title:`Revisit cron triggers`,status:`planned`,lane:`inbox`,priority:`low`,reviewDue:!0})],eS={lanes:[`inbox`,`ready`,`blocked`,`in-progress`,`done`].map(e=>({lane:e,title:e.replace(/(^|-)([a-z])/g,(t,n,r)=>e===`in-progress`?`In progress`:r.toUpperCase()),items:$x.filter(t=>t.lane===e)})),items:$x,epics:[{id:`planning`,title:`Planning workstation`,status:`active`},{id:`extensions`,title:`Extension platform`,status:`planned`}],lifecycleLinks:$x.flatMap(e=>e.lifecycleLinks??[]),epicProgress:[Qx]};function tS(e={}){let t=typeof e.lane==`string`?e.lane:void 0,n=e.includeClosed===!0,r=typeof e.limit==`number`?e.limit:50,i=typeof e.offset==`number`?e.offset:0,a=$x.filter(e=>(!t||e.lane===t)&&(n||!e.closed)),o=a.slice(i,i+r),s=i+o.length,c={limit:r,offset:i,returned:o.length,hasMore:s<a.length,...s<a.length?{nextOffset:s}:{}};return{schemaVersion:1,items:o.map(iS),total:a.length,limit:r,offset:i,lanes:eS.lanes.map(e=>rS(e,t,c)),epics:(eS.epics??[]).map(e=>({...e,tags:[],itemCount:$x.filter(t=>t.epic===e.id).length,openItemCount:$x.filter(t=>t.epic===e.id&&!t.closed).length})),counts:{total:$x.length,open:$x.filter(e=>!e.closed).length,closed:$x.filter(e=>e.closed).length},pagination:c}}function nS(e){let t=$x.find(t=>t.id===e);if(!t)throw Error(`Backlog item "${e}" not found.`);let n=e=>iS($x.find(t=>t.id===e.id)??Yx({id:e.id,title:e.title,status:e.status??`candidate`,lane:`inbox`}));return{schemaVersion:1,item:{...iS(t),path:`mock://backlog/items/${t.id}.md`,body:`# ${t.title}\n\n${t.notes.claim||`${t.title} claim.`}`,sections:{Claim:t.notes.claim||`${t.title} claim.`,Evidence:t.notes.evidence,Recheck:t.notes.recheck,"Promotion Paths":t.notes.promotionPaths},linkRows:t.linkRows??t.lifecycleLinks??[],failureEvidence:t.failureEvidence??[]},dependencies:t.dependencies.filter(e=>!e.missing).map(n),dependents:t.dependents.filter(e=>!e.missing).map(n)}}function rS(e,t,n){let r=$x.filter(t=>t.lane===e.lane);return{lane:e.lane,title:e.title,count:r.length,openCount:r.filter(e=>!e.closed).length,closedCount:r.filter(e=>e.closed).length,...t===e.lane?{pagination:n}:{}}}function iS(e){return{id:e.id,title:e.title,status:e.status,priority:e.priority,tags:e.tags,lane:e.lane,reasons:e.reasons,dependsOn:e.dependencies.map(e=>e.id),unresolvedDependsOn:e.unresolvedDependsOn,activeTraceReasons:e.activeTraceReasons,blocked:e.blocked,ready:e.ready,reviewDue:e.reviewDue,closed:e.closed,...e.epic?{epic:e.epic}:{},lifecycleState:e.lifecycleState,userStatus:e.userStatus,effectiveLifecycle:e.effectiveLifecycle,reasonCodes:e.reasonCodes,associatedLinks:e.associatedLinks,planEligible:e.planEligible,planEligibilityReasonCode:e.planEligibilityReasonCode,planEligibilityReasonMessage:e.planEligibilityReasonMessage,planEligibilityLinks:e.planEligibilityLinks,linkRows:e.linkRows}}var aS={schemaVersion:1,activeWork:[],readyCandidates:[{ref:`ready-import-preview`,itemId:`add-import-preview`,rationale:`Originally recommended before same-draft shipped filtering.`},{ref:`ready-traceability`,itemId:`traceability`,rationale:`Still ready after curation filtering.`}],recommendedNextSequence:[{ref:`next-recommendations`,itemId:`recommend-next-work`,rationale:`Foundation for choosing useful follow-up work.`},{ref:`next-import-preview`,itemId:`add-import-preview`,rationale:`Ready, scoped, and user-visible.`}],safeParallelizableGroups:[{ref:`planning-foundations`,title:`Planning foundations`,itemIds:[`add-import-preview`,`recommend-next-work`],rationale:`Shared workflow layer; plan together and implement in sequence.`,recommendedProfile:`excursion`}],blockedChains:[{ref:`auto-mode-chain`,itemIds:[`auto-mode`],blockedBy:[`traceability`],rationale:`Land traceability first, then re-scope.`}],rationaleAndAssumptions:[`Favor extension-owned workflow UX over engine changes.`,`Keep recommendations in private extension storage.`]},oS={itemId:`add-import-preview`,state:`non-actionable`,disposition:`de-actioned`,lifecycleState:`planned`,reasonCode:`partial-plan`,reasonMessage:`A partial session plan already covers add-import-preview.`,associatedLinks:[{kind:`session-plan`,label:`Session plan 2026-06-07-import-preview`,itemIds:[`add-import-preview`],session:`2026-06-07-import-preview`,status:`planning`,path:`.eforge/session-plans/2026-06-07-import-preview.md`,timestamp:`2026-06-07T00:00:00.000Z`}]},sS={itemId:`recommend-next-work`,state:`actionable`,lifecycleState:`none`,associatedLinks:[]},cS={schemaVersion:1,activeWork:[],readyCandidates:[{lane:`readyCandidates`,ref:`ready-import-preview`,itemId:`add-import-preview`,actionability:oS},{lane:`readyCandidates`,ref:`ready-traceability`,itemId:`traceability`,actionability:{itemId:`traceability`,state:`actionable`,lifecycleState:`none`,associatedLinks:[]}}],recommendedNextSequence:[{lane:`recommendedNextSequence`,ref:`next-recommendations`,itemId:`recommend-next-work`,actionability:sS},{lane:`recommendedNextSequence`,ref:`next-import-preview`,itemId:`add-import-preview`,actionability:oS}],safeParallelizableGroups:[{ref:`planning-foundations`,state:`partially-actionable`,itemIds:[`add-import-preview`,`recommend-next-work`],actionableItemIds:[`recommend-next-work`],suppressedItemIds:[`add-import-preview`],items:[oS,sS]}]},lS={state:`fresh`,reason:`Recommendation model matches the current source fingerprint.`,storedSourceFingerprint:`fresh-source-fingerprint`,comparedSourceFingerprint:`fresh-source-fingerprint`,baselineTaskId:`task-refresh-recommendations`},uS={state:`stale`,reason:`Recommendation source fingerprint drifted since the model was last applied.`,storedSourceFingerprint:`old-source-fingerprint`,comparedSourceFingerprint:`current-source-fingerprint`,baselineTaskId:`task-backlog-curation-ready`},dS={state:`fresh`,currentPath:`mock://recommendations/current.json`,statusPath:`mock://recommendations/status.json`,freshAt:`2026-06-07T00:00:00.000Z`,lastRefreshedBy:`put-recommendations`,sourceFingerprint:`fresh-source-fingerprint`,lastAppliedSourceFingerprint:`fresh-source-fingerprint`,reasons:[],staleReasons:[]},fS={state:`stale`,currentPath:`mock://recommendations/current.json`,statusPath:`mock://recommendations/status.json`,staleSince:`2026-06-07T00:05:00.000Z`,lastRefreshedBy:`apply-planning-agent-task-result`,sourceFingerprint:`current-source-fingerprint`,lastAppliedSourceFingerprint:`old-source-fingerprint`,reasons:[{code:`source-fingerprint-drift`,message:`Recommendation source fingerprint drifted since the model was last applied.`,summary:`Recommendation source fingerprint drifted since the model was last applied.`,sourceFingerprint:`current-source-fingerprint`,lastAppliedSourceFingerprint:`old-source-fingerprint`},{eventType:`session:end`,itemIds:[`add-import-preview`],correlationKind:`single`,timestamp:`2026-06-07T00:05:00.000Z`,summary:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,code:`lifecycle:session:end`,message:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,refs:[`session-one`]}],staleReasons:[{code:`source-fingerprint-drift`,message:`Recommendation source fingerprint drifted since the model was last applied.`,summary:`Recommendation source fingerprint drifted since the model was last applied.`,sourceFingerprint:`current-source-fingerprint`,lastAppliedSourceFingerprint:`old-source-fingerprint`},{eventType:`session:end`,itemIds:[`add-import-preview`],correlationKind:`single`,timestamp:`2026-06-07T00:05:00.000Z`,summary:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,code:`lifecycle:session:end`,message:`Recommendations are stale after single lifecycle update session:end for add-import-preview.`,refs:[`session-one`]}]},pS={taskId:`task-mock-planning-draft`,kind:`eforge-plan.planning-draft`,status:`completed`,createdAt:`2026-06-07T00:00:00.000Z`,updatedAt:`2026-06-07T00:00:04.000Z`,startedAt:`2026-06-07T00:00:01.000Z`,completedAt:`2026-06-07T00:00:04.000Z`,metadata:{progressMessage:`Planner task completed`,summary:`Drafted focused planning output.`,outputSectionCount:2,warningCount:1},result:{summary:`Drafted recommendations and a session-plan patch for the selected backlog work.`,assumptionsOpenQuestions:[`Confirm whether import preview should be CLI-only or workstation-visible too.`],nextSteps:[`Preview the generated sections.`,`Apply only the pieces you want to keep.`],recommendations:aS,handoffDrafts:[{selection:{itemIds:[`import-preview`],status:`active`},session:`2026-06-07-import-preview`}],planDrafts:[{title:`Import preview plan`,body:`# Import preview plan
277
277
 
278
278
  ## Scope
279
279
 
@@ -367,15 +367,15 @@ ${e}</tr>
367
367
  `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${NE(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=PE(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+NE(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=PE(e);if(i===null)return NE(n);e=i;let a=`<img src="${e}" alt="${NE(n)}"`;return t&&(a+=` title="${NE(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:NE(e.text)}},GE=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},KE=class e{options;renderer;textRenderer;constructor(e){this.options=e||_T,this.options.renderer=this.options.renderer||new WE,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new GE}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},qE=class{options;block;constructor(e){this.options=e||_T}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?UE.lex:UE.lexInline}provideParser(e=this.block){return e?KE.parse:KE.parseInline}},JE=class{defaults=gT();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=KE;Renderer=WE;TextRenderer=GE;Lexer=UE;Tokenizer=HE;Hooks=qE;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new WE(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new HE(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new qE;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];qE.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async&&qE.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return UE.lex(e,t??this.defaults)}parser(e,t){return KE.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?UE.lex:UE.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?KE.parse:KE.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?UE.lex:UE.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?KE.parse:KE.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
368
368
  Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+NE(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},YE=new JE;function XE(e,t){return YE.parse(e,t)}XE.options=XE.setOptions=function(e){return YE.setOptions(e),XE.defaults=YE.defaults,vT(XE.defaults),XE},XE.getDefaults=gT,XE.defaults=_T,XE.use=function(...e){return YE.use(...e),XE.defaults=YE.defaults,vT(XE.defaults),XE},XE.walkTokens=function(e,t){return YE.walkTokens(e,t)},XE.parseInline=YE.parseInline,XE.Parser=KE,XE.parser=KE.parse,XE.Renderer=WE,XE.TextRenderer=GE,XE.Lexer=UE,XE.lexer=UE.lex,XE.Tokenizer=HE,XE.Hooks=qE,XE.parse=XE,XE.options,XE.setOptions,XE.use,XE.walkTokens,XE.parseInline,KE.parse,UE.lex;function ZE(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function QE(e){if(Array.isArray(e))return e}function $E(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function eD(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
369
369
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tD(e,t){return QE(e)||$E(e,t)||nD(e,t)||eD()}function nD(e,t){if(e){if(typeof e==`string`)return ZE(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ZE(e,t):void 0}}var rD=Object.entries,iD=Object.setPrototypeOf,aD=Object.isFrozen,oD=Object.getPrototypeOf,sD=Object.getOwnPropertyDescriptor,cD=Object.freeze,lD=Object.seal,uD=Object.create,dD=typeof Reflect<`u`&&Reflect,fD=dD.apply,pD=dD.construct;cD||=function(e){return e},lD||=function(e){return e},fD||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},pD||=function(e){return new e(...[...arguments].slice(1))};var mD=PD(Array.prototype.forEach),hD=PD(Array.prototype.lastIndexOf),gD=PD(Array.prototype.pop),_D=PD(Array.prototype.push),vD=PD(Array.prototype.splice),yD=Array.isArray,bD=PD(String.prototype.toLowerCase),xD=PD(String.prototype.toString),SD=PD(String.prototype.match),CD=PD(String.prototype.replace),wD=PD(String.prototype.indexOf),TD=PD(String.prototype.trim),ED=PD(Number.prototype.toString),DD=PD(Boolean.prototype.toString),OD=typeof BigInt>`u`?null:PD(BigInt.prototype.toString),kD=typeof Symbol>`u`?null:PD(Symbol.prototype.toString),AD=PD(Object.prototype.hasOwnProperty),jD=PD(Object.prototype.toString),MD=PD(RegExp.prototype.test),ND=FD(TypeError);function PD(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return fD(e,t,n)}}function FD(e){return function(){return pD(e,[...arguments])}}function ID(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:bD;if(iD&&iD(e,null),!yD(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(aD(t)||(t[r]=e),i=e)}e[i]=!0}return e}function LD(e){for(let t=0;t<e.length;t++)AD(e,t)||(e[t]=null);return e}function RD(e){let t=uD(null);for(let r of rD(e)){var n=tD(r,2);let i=n[0],a=n[1];AD(e,i)&&(yD(a)?t[i]=LD(a):a&&typeof a==`object`&&a.constructor===Object?t[i]=RD(a):t[i]=a)}return t}function zD(e){switch(typeof e){case`string`:return e;case`number`:return ED(e);case`boolean`:return DD(e);case`bigint`:return OD?OD(e):`0`;case`symbol`:return kD?kD(e):`Symbol()`;case`undefined`:return jD(e);case`function`:case`object`:{if(e===null)return jD(e);let t=e,n=BD(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:jD(e)}return jD(e)}default:return jD(e)}}function BD(e,t){for(;e!==null;){let n=sD(e,t);if(n){if(n.get)return PD(n.get);if(typeof n.value==`function`)return PD(n.value)}e=oD(e)}function n(){return null}return n}function VD(e){try{return MD(e,``),!0}catch{return!1}}var HD=cD(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),UD=cD(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),WD=cD([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),GD=cD([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),KD=cD(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),qD=cD([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),JD=cD([`#text`]),YD=cD(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),XD=cD(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),ZD=cD(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),QD=cD([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),$D=lD(/{{[\w\W]*|^[\w\W]*}}/g),eO=lD(/<%[\w\W]*|^[\w\W]*%>/g),tO=lD(/\${[\w\W]*/g),nO=lD(/^data-[\-\w.\u00B7-\uFFFF]+$/),rO=lD(/^aria-[\-\w]+$/),iO=lD(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),aO=lD(/^(?:\w+script|data):/i),oO=lD(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),sO=lD(/^html$/i),cO=lD(/^[a-z][.\w]*(-[.\w]+)+$/i),lO=lD(/<[/\w!]/g),uO=lD(/<[/\w]/g),dO=lD(/<\/no(script|embed|frames)/i),fO=lD(/\/>/i),pO={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},mO=function(){return typeof window>`u`?null:window},hO=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},gO=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},_O=function(e,t,n,r){return AD(e,t)&&yD(e[t])?ID(r.base?RD(r.base):{},e[t],r.transform):n};function vO(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:mO(),t=e=>vO(e);if(t.version=`3.4.11`,t.removed=[],!e||!e.document||e.document.nodeType!==pO.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=BD(d,`cloneNode`),p=BD(d,`remove`),m=BD(d,`nextSibling`),h=BD(d,`childNodes`),g=BD(d,`parentNode`),_=BD(d,`shadowRoot`),v=BD(d,`attributes`),y=o&&o.prototype?BD(o.prototype,`nodeType`):null,b=o&&o.prototype?BD(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C,w=!1,T=0,ee=function(){if(T>0)throw ND(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},E=function(e){ee(),T++;try{return x.createHTML(e)}finally{T--}},D=function(e){ee(),T++;try{return x.createScriptURL(e)}finally{T--}},te=function(){return w||=(C=hO(u,i),!0),C},O=n,ne=O.implementation,k=O.createNodeIterator,A=O.createDocumentFragment,re=O.getElementsByTagName,ie=r.importNode,j=gO();t.isSupported=typeof rD==`function`&&typeof g==`function`&&ne&&ne.createHTMLDocument!==void 0;let ae=$D,oe=eO,se=tO,ce=nO,le=rO,ue=aO,de=oO,fe=cO,pe=iO,me=null,he=ID({},[...HD,...UD,...WD,...KD,...JD]),ge=null,_e=ID({},[...YD,...XD,...ZD,...QD]),ve=Object.seal(uD(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),M=null,ye=null,be=Object.seal(uD(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),xe=!0,Se=!0,N=!1,Ce=!0,we=!1,Te=!0,Ee=!1,De=!1,Oe=null,ke=null,Ae=!1,je=!1,Me=!1,Ne=!1,Pe=!0,Fe=!1,Ie=`user-content-`,Le=!0,Re=!1,ze={},Be=null,Ve=ID({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),He=null,Ue=ID({},[`audio`,`video`,`img`,`source`,`image`,`track`]),We=null,Ge=ID({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Ke=`http://www.w3.org/1998/Math/MathML`,qe=`http://www.w3.org/2000/svg`,Je=`http://www.w3.org/1999/xhtml`,Ye=Je,Xe=!1,Ze=null,Qe=ID({},[Ke,qe,Je],xD),$e=cD([`mi`,`mo`,`mn`,`ms`,`mtext`]),et=ID({},$e),tt=cD([`annotation-xml`]),nt=ID({},tt),rt=ID({},[`title`,`style`,`font`,`a`,`script`]),it=null,at=[`application/xhtml+xml`,`text/html`],ot=null,st=null,ct=n.createElement(`form`),lt=function(e){return e instanceof RegExp||e instanceof Function},ut=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(st&&st===e)return;(!e||typeof e!=`object`)&&(e={}),e=RD(e),it=at.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,ot=it===`application/xhtml+xml`?xD:bD,me=_O(e,`ALLOWED_TAGS`,he,{transform:ot}),ge=_O(e,`ALLOWED_ATTR`,_e,{transform:ot}),Ze=_O(e,`ALLOWED_NAMESPACES`,Qe,{transform:xD}),We=_O(e,`ADD_URI_SAFE_ATTR`,Ge,{transform:ot,base:Ge}),He=_O(e,`ADD_DATA_URI_TAGS`,Ue,{transform:ot,base:Ue}),Be=_O(e,`FORBID_CONTENTS`,Ve,{transform:ot}),M=_O(e,`FORBID_TAGS`,RD({}),{transform:ot}),ye=_O(e,`FORBID_ATTR`,RD({}),{transform:ot}),ze=AD(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?RD(e.USE_PROFILES):e.USE_PROFILES:!1,xe=e.ALLOW_ARIA_ATTR!==!1,Se=e.ALLOW_DATA_ATTR!==!1,N=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Ce=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,we=e.SAFE_FOR_TEMPLATES||!1,Te=e.SAFE_FOR_XML!==!1,Ee=e.WHOLE_DOCUMENT||!1,je=e.RETURN_DOM||!1,Me=e.RETURN_DOM_FRAGMENT||!1,Ne=e.RETURN_TRUSTED_TYPE||!1,Ae=e.FORCE_BODY||!1,Pe=e.SANITIZE_DOM!==!1,Fe=e.SANITIZE_NAMED_PROPS||!1,Le=e.KEEP_CONTENT!==!1,Re=e.IN_PLACE||!1,pe=VD(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:iO,Ye=typeof e.NAMESPACE==`string`?e.NAMESPACE:Je,et=AD(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?RD(e.MATHML_TEXT_INTEGRATION_POINTS):ID({},$e),nt=AD(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?RD(e.HTML_INTEGRATION_POINTS):ID({},tt);let t=AD(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?RD(e.CUSTOM_ELEMENT_HANDLING):uD(null);if(ve=uD(null),AD(t,`tagNameCheck`)&&lt(t.tagNameCheck)&&(ve.tagNameCheck=t.tagNameCheck),AD(t,`attributeNameCheck`)&&lt(t.attributeNameCheck)&&(ve.attributeNameCheck=t.attributeNameCheck),AD(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(ve.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),lD(ve),we&&(Se=!1),Me&&(je=!0),ze&&(me=ID({},JD),ge=uD(null),ze.html===!0&&(ID(me,HD),ID(ge,YD)),ze.svg===!0&&(ID(me,UD),ID(ge,XD),ID(ge,QD)),ze.svgFilters===!0&&(ID(me,WD),ID(ge,XD),ID(ge,QD)),ze.mathMl===!0&&(ID(me,KD),ID(ge,ZD),ID(ge,QD))),be.tagCheck=null,be.attributeCheck=null,AD(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?be.tagCheck=e.ADD_TAGS:yD(e.ADD_TAGS)&&(me===he&&(me=RD(me)),ID(me,e.ADD_TAGS,ot))),AD(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?be.attributeCheck=e.ADD_ATTR:yD(e.ADD_ATTR)&&(ge===_e&&(ge=RD(ge)),ID(ge,e.ADD_ATTR,ot))),AD(e,`ADD_URI_SAFE_ATTR`)&&yD(e.ADD_URI_SAFE_ATTR)&&ID(We,e.ADD_URI_SAFE_ATTR,ot),AD(e,`FORBID_CONTENTS`)&&yD(e.FORBID_CONTENTS)&&(Be===Ve&&(Be=RD(Be)),ID(Be,e.FORBID_CONTENTS,ot)),AD(e,`ADD_FORBID_CONTENTS`)&&yD(e.ADD_FORBID_CONTENTS)&&(Be===Ve&&(Be=RD(Be)),ID(Be,e.ADD_FORBID_CONTENTS,ot)),Le&&(me[`#text`]=!0),Ee&&ID(me,[`html`,`head`,`body`]),me.table&&(ID(me,[`tbody`]),delete M.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw ND(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw ND(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=x;x=e.TRUSTED_TYPES_POLICY;try{S=E(``)}catch(e){throw x=t,e}}else e.TRUSTED_TYPES_POLICY===null?(x=void 0,S=``):(x===void 0&&(x=te()),x&&typeof S==`string`&&(S=E(``)));cD&&cD(e),st=e},dt=ID({},[...UD,...WD,...GD]),ft=ID({},[...KD,...qD]),pt=function(e,t,n){return t.namespaceURI===Je?e===`svg`:t.namespaceURI===Ke?e===`svg`&&(n===`annotation-xml`||et[n]):!!dt[e]},mt=function(e,t,n){return t.namespaceURI===Je?e===`math`:t.namespaceURI===qe?e===`math`&&nt[n]:!!ft[e]},ht=function(e,t,n){return t.namespaceURI===qe&&!nt[n]||t.namespaceURI===Ke&&!et[n]?!1:!ft[e]&&(rt[e]||!dt[e])},gt=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Ye,tagName:`template`});let n=bD(e.tagName),r=bD(t.tagName);return Ze[e.namespaceURI]?e.namespaceURI===qe?pt(n,t,r):e.namespaceURI===Ke?mt(n,t,r):e.namespaceURI===Je?ht(n,t,r):!!(it===`application/xhtml+xml`&&Ze[e.namespaceURI]):!1},_t=function(e){_D(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw ND(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},vt=function(e){let t=h(e);if(t){let e=[];mD(t,t=>{_D(e,t)}),mD(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},yt=function(e,n){try{_D(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{_D(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(je||Me)try{_t(n)}catch{}else try{n.setAttribute(e,``)}catch{}},bt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||ge[ot(i)]))try{e.removeAttribute(i)}catch{}}},xt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===pO.element&&bt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},St=function(e){let t=null,r=null;if(Ae)e=`<remove></remove>`+e;else{let t=SD(e,/^[\r\n\t ]+/);r=t&&t[0]}it===`application/xhtml+xml`&&Ye===Je&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=x?E(e):e;if(Ye===Je)try{t=new l().parseFromString(i,it)}catch{}if(!t||!t.documentElement){t=ne.createDocument(Ye,`template`,null);try{t.documentElement.innerHTML=Xe?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ye===Je?re.call(t,Ee?`html`:`body`)[0]:Ee?t.documentElement:a},Ct=function(e){return k.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},wt=function(e){return e=CD(e,ae,` `),e=CD(e,oe,` `),e=CD(e,se,` `),e},Tt=function(e){e.normalize();let t=k.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;)n.data=wt(n.data),n=t.nextNode();let r=e.querySelectorAll?.call(e,`template`);r&&mD(r,e=>{Dt(e.content)&&Tt(e.content)})},Et=function(e){let t=b?b(e):null;return typeof t!=`string`||ot(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},Dt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===pO.documentFragment}catch{return!1}},Ot=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function kt(e,n,r){e.length!==0&&mD(e,e=>{e.call(t,n,r,st)})}let At=function(e,t){return!!(Te&&e.hasChildNodes()&&!Ot(e.firstElementChild)&&MD(lO,e.textContent)&&MD(lO,e.innerHTML)||Te&&e.namespaceURI===Je&&t===`style`&&Ot(e.firstElementChild)||e.nodeType===pO.processingInstruction||Te&&e.nodeType===pO.comment&&MD(uO,e.data))},jt=function(e,t){if(!M[t]&&Ft(t)&&(ve.tagNameCheck instanceof RegExp&&MD(ve.tagNameCheck,t)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(t)))return!1;if(Le&&!Be[t]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=Re?n[i]:f(n[i],!0);t.insertBefore(r,m(e))}}}return _t(e),!0},Mt=function(e){if(kt(j.beforeSanitizeElements,e,null),Et(e))return _t(e),!0;let n=ot(b?b(e):e.nodeName);if(kt(j.uponSanitizeElement,e,{tagName:n,allowedTags:me}),At(e,n))return _t(e),!0;if(M[n]||!(be.tagCheck instanceof Function&&be.tagCheck(n))&&!me[n])return jt(e,n);if((y?y(e):e.nodeType)===pO.element&&!gt(e)||(n===`noscript`||n===`noembed`||n===`noframes`)&&MD(dO,e.innerHTML))return _t(e),!0;if(we&&e.nodeType===pO.text){let n=wt(e.textContent);e.textContent!==n&&(_D(t.removed,{element:e.cloneNode()}),e.textContent=n)}return kt(j.afterSanitizeElements,e,null),!1},Nt=function(e,t,r){if(ye[t]||Pe&&(t===`id`||t===`name`)&&(r in n||r in ct))return!1;let i=ge[t]||be.attributeCheck instanceof Function&&be.attributeCheck(t,e);if(!(Se&&MD(ce,t))&&!(xe&&MD(le,t))){if(!i){if(!(Ft(e)&&(ve.tagNameCheck instanceof RegExp&&MD(ve.tagNameCheck,e)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(e))&&(ve.attributeNameCheck instanceof RegExp&&MD(ve.attributeNameCheck,t)||ve.attributeNameCheck instanceof Function&&ve.attributeNameCheck(t,e))||t===`is`&&ve.allowCustomizedBuiltInElements&&(ve.tagNameCheck instanceof RegExp&&MD(ve.tagNameCheck,r)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(r))))return!1}else if(!We[t]&&!MD(pe,CD(r,de,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&wD(r,`data:`)===0&&He[e])&&!(N&&!MD(ue,CD(r,de,``)))&&r)return!1}return!0},Pt=ID({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Ft=function(e){return!Pt[bD(e)]&&MD(fe,e)},It=function(e,t,n,r){if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return E(r);case`TrustedScriptURL`:return D(r)}return r},Lt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),Et(e)?_t(e):gD(t.removed)}catch{yt(n,e)}},Rt=function(e){kt(j.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Et(e))return;let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:ge,forceKeepAttr:void 0},r=t.length,i=ot(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=ot(o),u=c,d=o===`value`?u:TD(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,kt(j.uponSanitizeAttribute,e,n),d=n.attrValue,Fe&&(l===`id`||l===`name`)&&wD(d,Ie)!==0&&(yt(o,e),d=Ie+d),Te&&MD(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){yt(o,e);continue}if(l===`attributename`&&SD(d,`href`)){yt(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){yt(o,e);continue}if(!Ce&&MD(fO,d)){yt(o,e);continue}if(we&&(d=wt(d)),!Nt(i,l,d)){yt(o,e);continue}d=It(i,l,s,d),d!==u&&Lt(e,o,s,d)}}kt(j.afterSanitizeAttributes,e,null)},zt=function(e){let t=null,n=Ct(e);for(kt(j.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(kt(j.uponSanitizeShadowNode,t,null),Mt(t),Rt(t),Dt(t.content)&&zt(t.content),(y?y(t):t.nodeType)===pO.element){let e=_(t);Dt(e)&&(Bt(e),zt(e))}kt(j.afterSanitizeShadowDOM,e,null)},Bt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){zt(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===pO.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&ot(e)===`template`){let e=n.content;Dt(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);Dt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Xe=!e,Xe&&(e=`<!-->`),typeof e!=`string`&&!Ot(e)&&(e=zD(e),typeof e!=`string`))throw ND(`dirty is not a string, aborting`);if(!t.isSupported)return e;De?(me=Oe,ge=ke):ut(n),(j.uponSanitizeElement.length>0||j.uponSanitizeAttribute.length>0)&&(me=RD(me)),j.uponSanitizeAttribute.length>0&&(ge=RD(ge)),t.removed=[];let c=Re&&typeof e!=`string`&&Ot(e);if(c){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=ot(t);if(!me[e]||M[e])throw ND(`root node is forbidden and cannot be sanitized in-place`)}if(Et(e))throw ND(`root node is clobbered and cannot be sanitized in-place`);try{Bt(e)}catch(t){throw vt(e),t}}else if(Ot(e))i=St(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===pO.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Bt(a);else{if(!je&&!we&&!Ee&&e.indexOf(`<`)===-1)return x&&Ne?E(e):e;if(i=St(e),!i)return je?null:Ne?S:``}i&&Ae&&_t(i.firstChild);let l=Ct(c?e:i);try{for(;o=l.nextNode();)Mt(o),Rt(o),Dt(o.content)&&zt(o.content)}catch(t){throw c&&vt(e),t}if(c)return mD(t.removed,e=>{e.element&&xt(e.element)}),we&&Tt(e),e;if(je){if(we&&Tt(i),Me)for(s=A.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(ge.shadowroot||ge.shadowrootmode)&&(s=ie.call(r,s,!0)),s}let u=Ee?i.outerHTML:i.innerHTML;return Ee&&me[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&MD(sO,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
370
- `+u),we&&(u=wt(u)),x&&Ne?E(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ut(e),De=!0,Oe=me,ke=ge},t.clearConfig=function(){st=null,De=!1,Oe=null,ke=null,x=C,S=``},t.isValidAttribute=function(e,t,n){st||ut({});let r=ot(e),i=ot(t);return Nt(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&AD(j,e)&&_D(j[e],t)},t.removeHook=function(e,t){if(AD(j,e)){if(t!==void 0){let n=hD(j[e],t);return n===-1?void 0:vD(j[e],n,1)[0]}return gD(j[e])}},t.removeHooks=function(e){AD(j,e)&&(j[e]=[])},t.removeAllHooks=function(){j=gO()},t}var yO=vO(),bO=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/mermaid-diagram.tsx`,xO={securityLevel:`strict`,startOnLoad:!1},SO=12e3,CO=0,wO=Promise.resolve();function TO(){return CO+=1,`eforge-mermaid-${CO}`}async function EO(){return(await _x(()=>import(`./assets/mermaid.core-7qPnBf_x.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]))).default}function DO(e){return yO.sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_TAGS:[`a`,`audio`,`embed`,`foreignObject`,`foreignobject`,`iframe`,`image`,`link`,`object`,`picture`,`script`,`source`,`style`,`video`],FORBID_CONTENTS:[`a`,`foreignObject`,`foreignobject`,`link`,`script`],FORBID_ATTR:[`href`,`poster`,`src`,`srcset`,`style`,`xlink:href`]})}function OO(e){return typeof e==`string`?e:e.svg}async function kO(e){let t=wO.then(e,e);return wO=t.then(()=>void 0,()=>void 0),t}function AO({source:e}){let t=w.useMemo(TO,[]),[n,r]=w.useState({kind:`loading`});return w.useEffect(()=>{let n=!1;async function i(){if(r({kind:`loading`}),e.length>SO){r({kind:`error`,message:`Mermaid source exceeds ${SO} characters.`});return}try{let i=await kO(async()=>{let n=await EO();return n.initialize(xO),await n.parse(e),DO(OO(await n.render(t,e)))});if(!i.includes(`<svg`))throw Error(`Mermaid did not return SVG output.`);n||r({kind:`rendered`,svg:i})}catch(e){n||r({kind:`error`,message:e instanceof Error?e.message:`Mermaid rendering failed.`})}}return i(),()=>{n=!0}},[t,e]),n.kind===`rendered`?(0,I.jsxDEV)(`figure`,{className:`plan-mermaid`,role:`img`,"aria-label":`Mermaid diagram`,children:(0,I.jsxDEV)(`div`,{className:`plan-mermaid-svg`,dangerouslySetInnerHTML:{__html:n.svg}},void 0,!1,{fileName:bO,lineNumber:120,columnNumber:9},this)},void 0,!1,{fileName:bO,lineNumber:119,columnNumber:7},this):n.kind===`error`?(0,I.jsxDEV)(`figure`,{className:`plan-mermaid plan-mermaid-error`,role:`group`,"aria-label":`Mermaid diagram failed to render`,children:[(0,I.jsxDEV)(`div`,{role:`alert`,children:[`Unable to render Mermaid diagram: `,n.message]},void 0,!0,{fileName:bO,lineNumber:132,columnNumber:9},this),(0,I.jsxDEV)(`pre`,{"aria-label":`Mermaid source fallback`,children:(0,I.jsxDEV)(`code`,{children:e},void 0,!1,{fileName:bO,lineNumber:133,columnNumber:51},this)},void 0,!1,{fileName:bO,lineNumber:133,columnNumber:9},this)]},void 0,!0,{fileName:bO,lineNumber:131,columnNumber:7},this):(0,I.jsxDEV)(`div`,{className:`plan-mermaid plan-mermaid-loading`,role:`status`,"aria-label":`Rendering Mermaid diagram`,children:`Rendering diagram…`},void 0,!1,{fileName:bO,lineNumber:138,columnNumber:10},this)}var jO=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/safe-markdown.tsx`,MO=`plan-mermaid-placeholder`,NO=[`img`,`picture`,`source`,`video`,`audio`,`object`,`embed`,`svg`,`style`,`link`],PO=[`poster`,`src`,`srcset`,`style`];function FO(e){return(e??``).trim().split(/\s+/)[0]?.toLowerCase()===`mermaid`}function IO(e){let t=e.replace(/<table>/g,`<div class="plan-table-scroll"><table>`).replace(/<\/table>/g,`</table></div>`);return yO.sanitize(t,{ADD_ATTR:[`data-mermaid-index`],FORBID_TAGS:NO,FORBID_ATTR:PO})}function LO(e){let t=[];return{html:IO(new JE({gfm:!0,renderer:{code(e){return FO(e.lang)?`<div class="${MO}" data-mermaid-index="${t.push(e.text)-1}"></div>`:!1}}}).parse(e,{async:!1})),mermaidBlocks:t}}function RO(e,t){let n=[];return e.querySelectorAll(`.${MO}[data-mermaid-index]`).forEach(e=>{let r=Number(e.dataset.mermaidIndex),i=Number.isInteger(r)?t[r]:void 0;if(i===void 0)return;let a=(0,He.createRoot)(e);a.render((0,I.jsxDEV)(AO,{source:i},void 0,!1,{fileName:jO,lineNumber:64,columnNumber:17},this)),n.push(a)}),n}function zO({markdown:e,className:t}){let n=w.useRef(null),r=w.useMemo(()=>LO(e),[e]),i=w.useMemo(()=>({__html:r.html}),[r]);return w.useEffect(()=>{let e=n.current;if(!e||r.mermaidBlocks.length===0)return;let t=RO(e,r.mermaidBlocks);return()=>{t.forEach(e=>e.unmount())}},[r]),(0,I.jsxDEV)(`div`,{ref:n,className:`plan-prose${t?` ${t}`:``}`,dangerouslySetInnerHTML:i},void 0,!1,{fileName:jO,lineNumber:102,columnNumber:5},this)}var BO=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/card.tsx`,VO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`rounded-lg border bg-card text-card-foreground shadow-sm`,e),...t},void 0,!1,{fileName:BO,lineNumber:5,columnNumber:3},void 0));VO.displayName=`Card`;var HO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`flex flex-col space-y-1.5 p-4`,e),...t},void 0,!1,{fileName:BO,lineNumber:10,columnNumber:3},void 0));HO.displayName=`CardHeader`;var UO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`font-semibold leading-none tracking-tight`,e),...t},void 0,!1,{fileName:BO,lineNumber:15,columnNumber:3},void 0));UO.displayName=`CardTitle`;var WO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`text-sm text-muted-foreground`,e),...t},void 0,!1,{fileName:BO,lineNumber:20,columnNumber:3},void 0));WO.displayName=`CardDescription`;var GO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`p-4 pt-0`,e),...t},void 0,!1,{fileName:BO,lineNumber:25,columnNumber:3},void 0));GO.displayName=`CardContent`;var KO=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/rail-card.tsx`;function qO({icon:e,iconClassName:t,title:n,action:r,className:i,contentClassName:a,headerExtra:o,children:s,...c}){return(0,I.jsxDEV)(VO,{className:xn(`min-w-0`,i),"aria-label":c[`aria-label`],children:[(0,I.jsxDEV)(HO,{className:`pb-2`,children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2 text-sm`,children:[e&&(0,I.jsxDEV)(e,{className:xn(`h-4 w-4 text-muted-foreground`,t)},void 0,!1,{fileName:KO,lineNumber:30,columnNumber:20},this),n,r]},void 0,!0,{fileName:KO,lineNumber:29,columnNumber:9},this),o]},void 0,!0,{fileName:KO,lineNumber:28,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:xn(`min-w-0 [&_*]:min-w-0`,a),children:s},void 0,!1,{fileName:KO,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:KO,lineNumber:27,columnNumber:5},this)}var JO=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/textarea.tsx`,YO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`textarea`,{className:xn(`flex min-h-24 w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),ref:n,...t},void 0,!1,{fileName:JO,lineNumber:5,columnNumber:3},void 0));YO.displayName=`Textarea`;var XO={neutral:`border-border text-muted-foreground`,info:`border-[color:var(--lane-ready)]/40 bg-[color:var(--lane-ready)]/10 text-[color:var(--lane-ready)]`,progress:`border-[color:var(--lane-progress)]/40 bg-[color:var(--lane-progress)]/10 text-[color:var(--lane-progress)]`,done:`border-[color:var(--lane-done)]/40 bg-[color:var(--lane-done)]/10 text-[color:var(--lane-done)]`,warn:`border-[color:var(--prio-medium)]/40 bg-[color:var(--prio-medium)]/10 text-[color:var(--prio-medium)]`,danger:`border-[color:var(--lane-blocked)]/40 bg-[color:var(--lane-blocked)]/10 text-[color:var(--lane-blocked)]`,destructive:`border-destructive/40 bg-destructive/10 text-destructive-foreground`,accent:`border-primary/40 bg-primary/10 text-text-bright`};function ZO(e){return XO[e]}function QO(e){switch(e){case`running`:return`progress`;case`queued`:return`warn`;case`completed`:return`done`;case`failed`:return`danger`;case`cancelled`:return`neutral`;default:return`neutral`}}function $O(e){return e===`fresh`?`info`:`warn`}function ek(e){switch(e){case`Plan`:return`accent`;case`Queue`:return`info`;case`Run`:return`progress`;case`PR open`:case`Partial`:return`warn`;case`Merged`:return`done`;case`Failed`:return`danger`;default:return`neutral`}}var tk=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/tone-chip.tsx`;function nk({tone:e,className:t,...n}){return(0,I.jsxDEV)(`span`,{className:xn(`inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-2xs font-semibold`,ZO(e),t),...n},void 0,!1,{fileName:tk,lineNumber:17,columnNumber:5},this)}var rk=new TextEncoder;function ik(e){return rk.encode(e).length}function ak(e,t=!1){let n=ik(e.draft),r=e.draft!==e.saved,i=n>e.maxBytes;return{bytes:n,maxBytes:e.maxBytes,dirty:r,overLimit:i,canSave:r&&!i&&!t}}function ok(e){return e?{local:+!!e.context.localSteering,configuredShared:e.context.sharedContextSources.filter(e=>e.configured).length,discovered:e.context.discoveredContextSources.length,conflicts:e.context.conflicts.length,assumptions:e.context.assumptions.length}:{local:0,configuredShared:0,discovered:0,conflicts:0,assumptions:0}}function sk(e){switch(e){case`local-focus`:return`Local focus`;case`configured-shared`:return`Configured shared context`;case`discovered-conventional`:return`Discovered context`}}function ck(e){return e.readError?`read error`:e.exists?e.sha256?`available`:`empty`:`missing`}function lk(e){return e?[{key:`local-focus`,title:sk(`local-focus`),sources:[e.context.localSteering]},{key:`configured-shared`,title:sk(`configured-shared`),sources:e.context.sharedContextSources},{key:`discovered-conventional`,title:sk(`discovered-conventional`),sources:e.context.discoveredContextSources}].filter(e=>e.sources.length>0):[]}function uk(e){return e?.status===`queued`||e?.status===`running`}function dk(e){return e.dirty?`Save the local focus roadmap before refreshing recommendations.`:e.saving?`Wait for the local focus roadmap save to finish.`:e.refreshing?`Recommendation refresh is starting.`:uk(e.activeTask)?`A recommendation refresh task is already queued or running.`:(e.freshness?.state??e.status?.state,null)}function fk(e){return`${e.toLocaleString()} bytes`}function pk(e){return e.label?.trim()||e.id?.trim()||e.path||sk(e.kind)}var q=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/roadmap/roadmap-panel.tsx`,mk=4e4;function hk({state:e,recommendationStatus:t,recommendationFreshness:n,activeRecommendationRefreshTask:r,onSaveLocalFocus:i,onRefreshRecommendations:a}){let o=$n(),[s,c]=w.useState(``),[l,u]=w.useState(!1),[d,f]=w.useState(!1),[p,m]=w.useState(!1),[h,g]=w.useState(!1),_=e?.context.localSteering.content??``,v=e?.context.localSteering.editable===!0,y=e?.context.localSteering.maxContentBytes??mk,b=e?.context.localSteering.contentTruncated===!0,x=ak({draft:s,saved:_,maxBytes:y},p),S=dk({dirty:x.dirty,saving:p,refreshing:h,activeTask:r,status:t,freshness:n}),C=uk(r);w.useEffect(()=>{l||c(_)},[l,_]),w.useEffect(()=>{v||(u(!1),f(!1),c(_))},[v,_]);async function T(){if(!(!e||!v||!x.canSave||b)){m(!0);try{await i({localFocusContent:s,...e.context.localSteering.sha256?{expectedLocalFocusSha256:e.context.localSteering.sha256}:{}}),u(!1),f(!1),o.push(`Saved local focus roadmap.`,`success`)}catch(e){o.push(e instanceof Error?e.message:String(e),`error`)}finally{m(!1)}}}function ee(){if(x.dirty&&!d){f(!0);return}c(_),u(!1),f(!1)}async function E(){if(!S){g(!0);try{let e=await a();o.push(`${e.reused?`Reusing`:`Started`} recommendation refresh ${e.task.taskId}.`,`success`)}catch(e){o.push(e instanceof Error?e.message:String(e),`error`)}finally{g(!1)}}}return e?(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(_e,{className:`h-4 w-4 text-primary`},void 0,!1,{fileName:q,lineNumber:105,columnNumber:58},this),` Local focus roadmap`]},void 0,!0,{fileName:q,lineNumber:105,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:[`Private editable steering doc at `,(0,I.jsxDEV)(`code`,{children:e.storagePaths.localFocus},void 0,!1,{fileName:q,lineNumber:106,columnNumber:61},this),`. The recommendation engine reads this to rank your backlog.`]},void 0,!0,{fileName:q,lineNumber:106,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:104,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex shrink-0 flex-col items-end gap-1 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:x.overLimit?`text-destructive-foreground`:`text-muted-foreground`,children:[fk(x.bytes),` / `,fk(x.maxBytes)]},void 0,!0,{fileName:q,lineNumber:109,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap justify-end gap-1`,children:[n?.state&&(0,I.jsxDEV)(xk,{tone:n.state===`fresh`?`good`:`warn`,children:[`recommendations `,n.state]},void 0,!0,{fileName:q,lineNumber:111,columnNumber:48},this),b&&(0,I.jsxDEV)(xk,{tone:`warn`,children:`truncated`},void 0,!1,{fileName:q,lineNumber:112,columnNumber:39},this)]},void 0,!0,{fileName:q,lineNumber:110,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:108,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:103,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3`,children:[l&&v?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(YO,{"aria-label":`Local focus roadmap`,value:s,onChange:e=>{c(e.target.value),f(!1)},className:`min-h-[24rem] font-mono text-xs`},void 0,!1,{fileName:q,lineNumber:119,columnNumber:13},this),x.overLimit&&(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:`Local focus exceeds the configured byte limit. Shorten it before saving.`},void 0,!1,{fileName:q,lineNumber:120,columnNumber:32},this),b&&(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:`Local focus content was truncated by the backend. Saving is disabled to avoid overwriting unsent content.`},void 0,!1,{fileName:q,lineNumber:121,columnNumber:39},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:!x.canSave||b,onClick:()=>void T(),children:[(0,I.jsxDEV)(Ne,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:123,columnNumber:111},this),` Save local focus`]},void 0,!0,{fileName:q,lineNumber:123,columnNumber:15},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:!x.dirty||p,onClick:()=>{c(_),f(!1)},children:[(0,I.jsxDEV)(Be,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:124,columnNumber:146},this),` Reset`]},void 0,!0,{fileName:q,lineNumber:124,columnNumber:15},this),(0,I.jsxDEV)(L,{size:`sm`,variant:d?`destructive`:`outline`,disabled:p,onClick:ee,children:d?`Discard edits`:`Cancel`},void 0,!1,{fileName:q,lineNumber:125,columnNumber:15},this),d&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:`Click Discard edits to leave edit mode without saving.`},void 0,!1,{fileName:q,lineNumber:126,columnNumber:33},this)]},void 0,!0,{fileName:q,lineNumber:122,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:118,columnNumber:11},this):(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-background/40 p-3`,children:_.trim()?(0,I.jsxDEV)(zO,{markdown:_},void 0,!1,{fileName:q,lineNumber:132,columnNumber:31},this):(0,I.jsxDEV)(`p`,{className:`text-sm text-muted-foreground`,children:`Local focus roadmap is empty.`},void 0,!1,{fileName:q,lineNumber:132,columnNumber:67},this)},void 0,!1,{fileName:q,lineNumber:131,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[`Source: `,(0,I.jsxDEV)(`code`,{children:e.storagePaths.localFocus},void 0,!1,{fileName:q,lineNumber:135,columnNumber:29},this)]},void 0,!0,{fileName:q,lineNumber:135,columnNumber:15},this),n?.reason&&(0,I.jsxDEV)(`span`,{children:n.reason},void 0,!1,{fileName:q,lineNumber:136,columnNumber:51},this)]},void 0,!0,{fileName:q,lineNumber:134,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:130,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[!l&&v&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,onClick:()=>{c(_),u(!0)},children:[(0,I.jsxDEV)(Oe,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:141,columnNumber:127},this),` Edit`]},void 0,!0,{fileName:q,lineNumber:141,columnNumber:36},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:!!S,title:S??`Refresh recommendations from saved roadmap state.`,onClick:()=>void E(),children:[h||C?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:q,lineNumber:143,columnNumber:45},this):(0,I.jsxDEV)(Ae,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:143,columnNumber:59},this),` Refresh recommendations from roadmap`]},void 0,!0,{fileName:q,lineNumber:142,columnNumber:11},this),S&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:S},void 0,!1,{fileName:q,lineNumber:145,columnNumber:30},this)]},void 0,!0,{fileName:q,lineNumber:140,columnNumber:9},this),C&&r&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[r.metadata?.progressMessage??`Refreshing recommendations…`,` `,(0,I.jsxDEV)(`span`,{title:r.taskId,children:[`(`,r.taskId,`)`]},void 0,!0,{fileName:q,lineNumber:147,columnNumber:201},this)]},void 0,!0,{fileName:q,lineNumber:147,columnNumber:63},this)]},void 0,!0,{fileName:q,lineNumber:116,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:102,columnNumber:5},this):(0,I.jsxDEV)(VO,{children:(0,I.jsxDEV)(GO,{className:`py-10 text-center text-sm text-muted-foreground`,children:`Roadmap state has not loaded yet.`},void 0,!1,{fileName:q,lineNumber:98,columnNumber:18},this)},void 0,!1,{fileName:q,lineNumber:98,columnNumber:12},this)}function gk({state:e,loading:t,recommendationStatus:n,recommendationFreshness:r,activeRecommendationRefreshTask:i,onReloadRoadmap:a}){let o=ok(e),s=r?.state??n?.state,c=uk(i);return(0,I.jsxDEV)(qO,{icon:_e,iconClassName:`text-primary`,title:`Roadmap sources`,action:(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,className:`ml-auto`,disabled:t,onClick:()=>void a(),children:[t?(0,I.jsxDEV)(Jn,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:q,lineNumber:180,columnNumber:22},this):(0,I.jsxDEV)(Ae,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:q,lineNumber:180,columnNumber:60},this),` Reload`]},void 0,!0,{fileName:q,lineNumber:179,columnNumber:9},this),headerExtra:(0,I.jsxDEV)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:[(0,I.jsxDEV)(xk,{children:[o.local,` local`]},void 0,!0,{fileName:q,lineNumber:185,columnNumber:11},this),(0,I.jsxDEV)(xk,{children:[o.configuredShared,` configured shared`]},void 0,!0,{fileName:q,lineNumber:186,columnNumber:11},this),(0,I.jsxDEV)(xk,{children:[o.discovered,` discovered`]},void 0,!0,{fileName:q,lineNumber:187,columnNumber:11},this),o.conflicts>0&&(0,I.jsxDEV)(xk,{tone:`warn`,children:[o.conflicts,` conflicts`]},void 0,!0,{fileName:q,lineNumber:188,columnNumber:37},this),s&&(0,I.jsxDEV)(xk,{tone:s===`fresh`?`good`:`warn`,children:[`recommendations `,s]},void 0,!0,{fileName:q,lineNumber:189,columnNumber:35},this),c&&(0,I.jsxDEV)(xk,{tone:`good`,children:[(0,I.jsxDEV)(Jn,{className:`h-3 w-3`},void 0,!1,{fileName:q,lineNumber:190,columnNumber:48},this),` refreshing`]},void 0,!0,{fileName:q,lineNumber:190,columnNumber:30},this)]},void 0,!0,{fileName:q,lineNumber:184,columnNumber:9},this),contentClassName:`grid gap-3`,children:e?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`section`,{className:`grid gap-3`,children:lk(e).map(e=>(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`h4`,{className:`mb-1.5 text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e.title},void 0,!1,{fileName:q,lineNumber:200,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:e.sources.map(e=>(0,I.jsxDEV)(_k,{source:e},`${e.kind}:${e.path}:${e.id??``}`,!1,{fileName:q,lineNumber:202,columnNumber:52},this))},void 0,!1,{fileName:q,lineNumber:201,columnNumber:19},this)]},e.key,!0,{fileName:q,lineNumber:199,columnNumber:17},this))},void 0,!1,{fileName:q,lineNumber:197,columnNumber:13},this),(e.context.assumptions.length>0||e.context.conflicts.length>0||e.context.truncation.sourceContent>0||e.context.truncation.sourceExcerpts>0)&&(0,I.jsxDEV)(`section`,{className:`grid gap-3 border-t border-border pt-3 text-xs`,children:[e.context.assumptions.length>0&&(0,I.jsxDEV)(yk,{title:`Assumptions`,items:e.context.assumptions},void 0,!1,{fileName:q,lineNumber:210,columnNumber:58},this),e.context.conflicts.length>0&&(0,I.jsxDEV)(yk,{title:`Conflicts`,items:e.context.conflicts.map(e=>`${e.message}${e.path?` (${e.path})`:``}`),tone:`warn`},void 0,!1,{fileName:q,lineNumber:211,columnNumber:56},this),(e.context.truncation.sourceContent>0||e.context.truncation.sourceExcerpts>0)&&(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:[`Truncation: `,e.context.truncation.sourceContent,` source content fields and `,e.context.truncation.sourceExcerpts,` source excerpts were truncated.`]},void 0,!0,{fileName:q,lineNumber:213,columnNumber:19},this)]},void 0,!0,{fileName:q,lineNumber:209,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:196,columnNumber:11},this):(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Roadmap state has not loaded yet.`},void 0,!1,{fileName:q,lineNumber:195,columnNumber:19},this)},void 0,!1,{fileName:q,lineNumber:174,columnNumber:5},this)}function _k({source:e}){return(0,I.jsxDEV)(`article`,{className:`rounded border border-border bg-background/40 p-2 text-2xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`font-semibold text-text-bright`,children:pk(e)},void 0,!1,{fileName:q,lineNumber:227,columnNumber:9},this),(0,I.jsxDEV)(xk,{tone:e.exists&&!e.readError?`good`:`warn`,children:ck(e)},void 0,!1,{fileName:q,lineNumber:228,columnNumber:9},this),(0,I.jsxDEV)(xk,{children:e.editable?`editable`:`read-only`},void 0,!1,{fileName:q,lineNumber:229,columnNumber:9},this),(0,I.jsxDEV)(xk,{children:e.configured?`configured`:`discovered`},void 0,!1,{fileName:q,lineNumber:230,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:226,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`mt-1 break-all text-muted-foreground`,children:e.path},void 0,!1,{fileName:q,lineNumber:232,columnNumber:7},this),(0,I.jsxDEV)(`dl`,{className:`mt-1 grid gap-1 text-muted-foreground`,children:[(0,I.jsxDEV)(vk,{label:`kind`,value:sk(e.kind)},void 0,!1,{fileName:q,lineNumber:234,columnNumber:9},this),(0,I.jsxDEV)(vk,{label:`role`,value:e.role},void 0,!1,{fileName:q,lineNumber:235,columnNumber:9},this),(0,I.jsxDEV)(vk,{label:`updated`,value:e.updatedAt},void 0,!1,{fileName:q,lineNumber:236,columnNumber:9},this),(0,I.jsxDEV)(vk,{label:`error`,value:e.readError},void 0,!1,{fileName:q,lineNumber:237,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:233,columnNumber:7},this),e.headings.length>0&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:[`Headings: `,e.headings.join(` · `)]},void 0,!0,{fileName:q,lineNumber:239,columnNumber:38},this),e.content?.trim()?(0,I.jsxDEV)(`div`,{className:`mt-2 rounded border border-border bg-card/50 p-2 text-xs`,children:(0,I.jsxDEV)(zO,{markdown:e.content},void 0,!1,{fileName:q,lineNumber:242,columnNumber:11},this)},void 0,!1,{fileName:q,lineNumber:241,columnNumber:9},this):e.excerpts.length>0?(0,I.jsxDEV)(`ul`,{className:`mt-1 list-disc pl-4 text-muted-foreground`,children:e.excerpts.map((e,t)=>(0,I.jsxDEV)(`li`,{children:e},t,!1,{fileName:q,lineNumber:244,columnNumber:139},this))},void 0,!1,{fileName:q,lineNumber:244,columnNumber:40},this):null]},void 0,!0,{fileName:q,lineNumber:225,columnNumber:5},this)}function vk({label:e,value:t}){return t?(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`dt`,{className:`inline font-medium text-foreground`,children:[e,`: `]},void 0,!0,{fileName:q,lineNumber:251,columnNumber:15},this),(0,I.jsxDEV)(`dd`,{className:`inline break-all`,children:t},void 0,!1,{fileName:q,lineNumber:251,columnNumber:80},this)]},void 0,!0,{fileName:q,lineNumber:251,columnNumber:10},this):null}function yk({title:e,items:t,tone:n}){return(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`h4`,{className:`mb-1 text-2xs font-semibold uppercase tracking-wide ${n===`warn`?`text-[color:var(--prio-medium)]`:`text-muted-foreground`}`,children:e},void 0,!1,{fileName:q,lineNumber:255,columnNumber:15},this),(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-muted-foreground`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:q,lineNumber:255,columnNumber:252},this))},void 0,!1,{fileName:q,lineNumber:255,columnNumber:178},this)]},void 0,!0,{fileName:q,lineNumber:255,columnNumber:10},this)}var bk={default:`neutral`,good:`info`,warn:`warn`};function xk({children:e,tone:t=`default`}){return(0,I.jsxDEV)(nk,{tone:bk[t]??`neutral`,className:`font-normal`,children:e},void 0,!1,{fileName:q,lineNumber:261,columnNumber:10},this)}var Sk=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/empty-state.tsx`;function Ck({className:e,children:t}){return(0,I.jsxDEV)(`p`,{className:xn(`rounded-md border border-dashed p-3 text-sm text-muted-foreground`,e),children:t},void 0,!1,{fileName:Sk,lineNumber:10,columnNumber:10},this)}var wk=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/input.tsx`,Tk=w.forwardRef(({className:e,type:t,...n},r)=>(0,I.jsxDEV)(`input`,{type:t,className:xn(`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),ref:r,...n},void 0,!1,{fileName:wk,lineNumber:5,columnNumber:3},void 0));Tk.displayName=`Input`;var Ek={"queued-build":{label:`Queued build`,tone:`info`},"running-build":{label:`Running build`,tone:`info`},"open-pr":{label:`Open PR`,tone:`warn`},"merged-result":{label:`Merged result`,tone:`done`},"shipped-result":{label:`Shipped result`,tone:`done`},"failed-result":{label:`Failed result`,tone:`danger`},"partial-plan":{label:`Partial plan`,tone:`warn`},"planned-session-plan":{label:`Planned session plan`,tone:`neutral`},"submitted-session-plan":{label:`Submitted session plan`,tone:`info`},"active-planning-task":{label:`Active planning task`,tone:`info`},"queued-trace":{label:`Queued build`,tone:`info`},"building-trace":{label:`Running build`,tone:`info`},"active-build-session-trace":{label:`Running build session`,tone:`info`},"open-pr-trace":{label:`Open PR`,tone:`warn`}},Dk={none:{label:`No lifecycle evidence`,tone:`neutral`},planned:{label:`Planned`,tone:`neutral`},active:{label:`Active`,tone:`info`},queue:{label:`Queued`,tone:`info`},build:{label:`Building`,tone:`info`},"pr-open":{label:`PR open`,tone:`warn`},merged:{label:`Merged`,tone:`done`},shipped:{label:`Shipped`,tone:`done`},failed:{label:`Failed`,tone:`danger`},partial:{label:`Partial`,tone:`warn`}};function Ok(e){return e?Ek[e]??{label:Nk(e),tone:`neutral`}:{label:`Lifecycle evidence`,tone:`neutral`}}function kk(e){return e?Dk[e]??{label:Nk(e),tone:`neutral`}:null}function Ak(e){if(e===void 0||!Number.isFinite(e))return`unknown size`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024,r=t[0];for(let e=1;n>=1024&&e<t.length;e+=1)n/=1024,r=t[e];return`${n>=10?n.toFixed(0):n.toFixed(1)} ${r}`}function jk(e,t,n=`${t}s`){let r=e??0;return`${r} ${r===1?t:n}`}function Mk(e,t){return t?{label:`status unavailable`,tone:`danger`}:e?e.initialized?e.searchIndexStatus?.dirty?{label:`dirty index`,tone:`warn`}:{label:`ready`,tone:`done`}:{label:`not initialized`,tone:`warn`}:{label:`loading`,tone:`neutral`}}function Nk(e){return e.replace(/[-_]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}var Pk=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/lifecycle-panel.tsx`,Fk=[`Failed`,`Partial`,`PR open`,`Merged`,`Run`,`Queue`,`PR`,`Plan`],Ik=new Set([`Failed`,`Partial`,`PR open`,`Run`]);function Lk(e){if((e.lifecycleLinks??[]).length===0&&!e.lifecycleState&&!e.effectiveLifecycle)return null;let t=new Set(zk(e)),n=Fk.find(e=>t.has(e))??[...t][0];return!n||n===`Plan`?null:{label:n,tone:Ik.has(n)?ek(n):`neutral`}}function Rk({item:e}){let t=[...e.lifecycleLinks??[],...e.associatedLinks??[]];if(t.length===0&&!e.lifecycleState&&!e.effectiveLifecycle&&!e.userStatus&&(e.reasonCodes??[]).length===0)return null;let n=zk(e),r=kk(e.effectiveLifecycle??e.lifecycleState);return(0,I.jsxDEV)(`div`,{className:`mt-2`,onClick:e=>e.stopPropagation(),children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,"aria-label":`Lifecycle chips`,children:[e.userStatus&&(0,I.jsxDEV)(nk,{tone:`neutral`,children:[`Authored status: `,e.userStatus]},void 0,!0,{fileName:Pk,lineNumber:37,columnNumber:29},this),r&&(0,I.jsxDEV)(nk,{tone:r.tone,children:[`Effective lifecycle: `,r.label]},void 0,!0,{fileName:Pk,lineNumber:38,columnNumber:23},this),n.map(e=>(0,I.jsxDEV)(Bk,{label:e},e,!1,{fileName:Pk,lineNumber:39,columnNumber:30},this)),(e.reasonCodes??[]).map(e=>{let t=Ok(e);return(0,I.jsxDEV)(nk,{tone:t.tone,children:t.label},e,!1,{fileName:Pk,lineNumber:40,columnNumber:99},this)})]},void 0,!0,{fileName:Pk,lineNumber:36,columnNumber:7},this),t.length>0&&(0,I.jsxDEV)(`details`,{className:`mt-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:`Lifecycle evidence`},void 0,!1,{fileName:Pk,lineNumber:44,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-1.5`,children:t.map((e,t)=>(0,I.jsxDEV)(Vk,{row:e},`${e.kind}-${e.stage??``}-${t}`,!1,{fileName:Pk,lineNumber:46,columnNumber:39},this))},void 0,!1,{fileName:Pk,lineNumber:45,columnNumber:11},this)]},void 0,!0,{fileName:Pk,lineNumber:43,columnNumber:9},this)]},void 0,!0,{fileName:Pk,lineNumber:35,columnNumber:5},this)}function zk(e){let t=new Set;for(let n of e.lifecycleLinks??[]){let e=(n.stage??n.status??``).toLowerCase();n.kind===`session-plan`&&t.add(`Plan`),n.kind===`queue-prd`&&t.add(`Queue`),(n.kind===`build-run`||n.kind===`build-session`)&&t.add(`Run`),n.kind===`pr`&&t.add(e.includes(`open`)?`PR open`:`PR`),n.kind===`landing`&&(e.includes(`landed`)||e.includes(`merge`))&&t.add(`Merged`),e.includes(`fail`)&&t.add(`Failed`)}let n=(e.effectiveLifecycle??e.lifecycleState??``).toLowerCase();return n===`partial`&&t.add(`Partial`),n===`failed`&&t.add(`Failed`),(n===`merged`||n===`shipped`||n===`landed`)&&t.add(`Merged`),t.size>0?[...t]:[`Plan`]}function Bk({label:e}){return(0,I.jsxDEV)(nk,{tone:ek(e),children:e},void 0,!1,{fileName:Pk,lineNumber:73,columnNumber:10},this)}function Vk({row:e}){let t=e.timestamp??e.completedAt??e.landedAt??e.startedAt??e.queuedAt??e.promotedAt,n=e.featureBranch??e.branch;return(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-background/50 p-2 text-2xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,I.jsxDEV)(`span`,{className:`rounded bg-secondary px-1.5 py-0.5 font-semibold uppercase tracking-wide text-muted-foreground`,children:Hk(e.kind)},void 0,!1,{fileName:Pk,lineNumber:82,columnNumber:9},this),e.stage&&(0,I.jsxDEV)(`span`,{className:`text-text-bright`,children:e.stage},void 0,!1,{fileName:Pk,lineNumber:83,columnNumber:23},this),e.status&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:e.status},void 0,!1,{fileName:Pk,lineNumber:84,columnNumber:24},this)]},void 0,!0,{fileName:Pk,lineNumber:81,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap gap-x-3 gap-y-1 text-muted-foreground`,children:[e.session&&(0,I.jsxDEV)(Uk,{label:`session`,value:e.session},void 0,!1,{fileName:Pk,lineNumber:87,columnNumber:25},this),e.prdId&&(0,I.jsxDEV)(Uk,{label:`prd`,value:e.prdId},void 0,!1,{fileName:Pk,lineNumber:88,columnNumber:23},this),e.runId&&(0,I.jsxDEV)(Uk,{label:`run`,value:e.runId},void 0,!1,{fileName:Pk,lineNumber:89,columnNumber:23},this),e.sessionId&&(0,I.jsxDEV)(Uk,{label:`build session`,value:e.sessionId},void 0,!1,{fileName:Pk,lineNumber:90,columnNumber:27},this),e.buildSessionId&&(0,I.jsxDEV)(Uk,{label:`build session`,value:e.buildSessionId},void 0,!1,{fileName:Pk,lineNumber:91,columnNumber:32},this),n&&(0,I.jsxDEV)(Uk,{label:`branch`,value:n},void 0,!1,{fileName:Pk,lineNumber:92,columnNumber:20},this),e.commitSha&&(0,I.jsxDEV)(Uk,{label:`commit`,value:e.commitSha},void 0,!1,{fileName:Pk,lineNumber:93,columnNumber:27},this),t&&(0,I.jsxDEV)(Uk,{label:`time`,value:t},void 0,!1,{fileName:Pk,lineNumber:94,columnNumber:23},this)]},void 0,!0,{fileName:Pk,lineNumber:86,columnNumber:7},this),e.prUrl&&(0,I.jsxDEV)(`a`,{className:`mt-1 block break-all text-[color:var(--lane-ready)] underline`,href:e.prUrl,target:`_blank`,rel:`noreferrer`,children:e.prUrl},void 0,!1,{fileName:Pk,lineNumber:96,columnNumber:21},this),e.affectedItemIds&&e.affectedItemIds.length>0&&(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap gap-1 text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:`affected`},void 0,!1,{fileName:Pk,lineNumber:99,columnNumber:11},this),e.affectedItemIds.map(e=>(0,I.jsxDEV)(`code`,{className:`rounded border px-1`,children:Xw(e)},e,!1,{fileName:Pk,lineNumber:100,columnNumber:44},this))]},void 0,!0,{fileName:Pk,lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:Pk,lineNumber:80,columnNumber:5},this)}function Hk(e){return e===`queue-prd`?`queue evidence`:e===`build-run`||e===`build-session`?`build evidence`:e===`session-plan`?`session evidence`:e===`pr`?`PR evidence`:e===`landing`?`landing evidence`:e}function Uk({label:e,value:t}){return(0,I.jsxDEV)(`span`,{children:[(0,I.jsxDEV)(`span`,{className:`uppercase tracking-wide`,children:[e,`:`]},void 0,!0,{fileName:Pk,lineNumber:117,columnNumber:16},this),` `,(0,I.jsxDEV)(`code`,{children:t},void 0,!1,{fileName:Pk,lineNumber:117,columnNumber:74},this)]},void 0,!0,{fileName:Pk,lineNumber:117,columnNumber:10},this)}var Wk=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/item-card.tsx`,Gk={high:`var(--prio-high)`,medium:`var(--prio-medium)`,low:`var(--prio-low)`},Kk=3,qk={dependency:`ring-2 ring-[color:var(--prio-medium)]/70`,dependent:`ring-2 ring-[color:var(--lane-ready)]/70`};function Jk({item:e,selected:t,relation:n=null,plannedIn:r,onOpenPlan:i,onToggle:a,onOpenDetail:o,onHoverChange:s}){let c=Gk[e.priority]??`var(--prio-low)`,l=Lk(e),u=t?`ring-2 ring-primary`:n?qk[n]:``,d=t||n?``:e.closed?`opacity-60`:``;return(0,I.jsxDEV)(`div`,{id:`board-item-${e.id}`,role:`button`,tabIndex:0,onClick:()=>a(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),a(e))},onMouseEnter:()=>s?.(e.id),onMouseLeave:()=>s?.(null),className:`group cursor-pointer rounded-md border border-border/70 bg-card p-3 transition-colors hover:border-muted-foreground/40 ${u} ${d}`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`mt-1.5 h-2 w-2 shrink-0 rounded-full`,style:{background:c},title:`${e.priority} priority`},void 0,!1,{fileName:Wk,lineNumber:61,columnNumber:9},this),(0,I.jsxDEV)(`h4`,{className:`min-w-0 flex-1 text-sm font-medium leading-snug text-text-bright`,children:e.title},void 0,!1,{fileName:Wk,lineNumber:62,columnNumber:9},this),(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":`Open details for ${e.title}`,title:`Open details`,className:`-mr-1 -mt-1 shrink-0 rounded p-1 text-muted-foreground/50 transition-colors hover:bg-secondary hover:text-foreground group-hover:text-muted-foreground`,onClick:t=>{t.stopPropagation(),o(e)},children:(0,I.jsxDEV)(Ee,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Wk,lineNumber:70,columnNumber:11},this)},void 0,!1,{fileName:Wk,lineNumber:63,columnNumber:9},this)]},void 0,!0,{fileName:Wk,lineNumber:60,columnNumber:7},this),(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate pl-4 text-2xs text-muted-foreground/70`,title:e.id,children:Xw(e.id)},void 0,!1,{fileName:Wk,lineNumber:73,columnNumber:7},this),(0,I.jsxDEV)(Xk,{item:e,lifecycle:l},void 0,!1,{fileName:Wk,lineNumber:75,columnNumber:7},this),(0,I.jsxDEV)(Yk,{plans:r,onOpen:i},void 0,!1,{fileName:Wk,lineNumber:76,columnNumber:7},this),(0,I.jsxDEV)(Zk,{item:e},void 0,!1,{fileName:Wk,lineNumber:77,columnNumber:7},this)]},void 0,!0,{fileName:Wk,lineNumber:50,columnNumber:5},this)}function Yk({plans:e,onOpen:t}){if(!e||e.length===0)return null;let n=e[0],r=e.length===1?n.title:`${e.length} plans`;return(0,I.jsxDEV)(`div`,{className:`mt-1.5 pl-4`,children:(0,I.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),t?.(n.key)},disabled:!t,title:e.length===1?`Open plan ${n.title}`:e.map(e=>e.title).join(`, `),className:`inline-flex max-w-full items-center gap-1 rounded border border-[color:var(--lane-progress)]/40 bg-[color:var(--lane-progress)]/10 px-1.5 py-0.5 text-2xs font-medium text-[color:var(--lane-progress)] transition-colors hover:border-[color:var(--lane-progress)] disabled:cursor-default`,children:[(0,I.jsxDEV)(me,{className:`h-3 w-3 shrink-0`},void 0,!1,{fileName:Wk,lineNumber:97,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`truncate`,children:[`Planned · `,r]},void 0,!0,{fileName:Wk,lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:Wk,lineNumber:90,columnNumber:7},this)},void 0,!1,{fileName:Wk,lineNumber:89,columnNumber:5},this)}function Xk({item:e,lifecycle:t}){let n=e.dependencies.filter(e=>e.blocking).length,r=[];return e.recRank!==void 0&&r.push((0,I.jsxDEV)(nk,{tone:`info`,className:`font-medium`,children:[`Next `,e.recRank]},`rec`,!0,{fileName:Wk,lineNumber:108,columnNumber:46},this)),e.blocked&&r.push((0,I.jsxDEV)(nk,{tone:`neutral`,className:`font-medium`,children:[(0,I.jsxDEV)(`span`,{className:`mr-1 inline-block h-1.5 w-1.5 rounded-full bg-[color:var(--lane-blocked)]`},void 0,!1,{fileName:Wk,lineNumber:112,columnNumber:9},this),n>0?`Blocked by ${n}`:`Blocked`]},`blocked`,!0,{fileName:Wk,lineNumber:111,columnNumber:7},this)),e.reviewDue&&r.push((0,I.jsxDEV)(nk,{tone:`warn`,className:`font-medium`,children:`Review due`},`review`,!1,{fileName:Wk,lineNumber:117,columnNumber:34},this)),t&&r.push((0,I.jsxDEV)(nk,{tone:t.tone,className:`font-medium`,children:t.label},`lifecycle`,!1,{fileName:Wk,lineNumber:118,columnNumber:29},this)),r.length===0?null:(0,I.jsxDEV)(`div`,{className:`mt-1.5 flex flex-wrap gap-1 pl-4`,children:r},void 0,!1,{fileName:Wk,lineNumber:120,columnNumber:10},this)}function Zk({item:e}){let t=e.tags.slice(0,Kk),n=e.tags.length-t.length;return!e.epicRef&&e.tags.length===0?null:(0,I.jsxDEV)(`div`,{className:`mt-1.5 flex flex-wrap items-baseline gap-x-2 gap-y-1 pl-4 text-2xs text-muted-foreground`,children:[e.epicRef&&(0,I.jsxDEV)(`span`,{className:`truncate ${e.epicRef.missing?`text-[color:var(--lane-blocked)]`:``}`,title:e.epicRef.missing?`Missing epic: ${e.epicRef.id}`:`Epic: ${e.epicRef.title}`,children:e.epicRef.missing?`Missing epic: ${e.epicRef.title}`:e.epicRef.title},void 0,!1,{fileName:Wk,lineNumber:131,columnNumber:9},this),e.epicRef&&t.length>0&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground/50`,children:`·`},void 0,!1,{fileName:Wk,lineNumber:138,columnNumber:50},this),t.map(e=>(0,I.jsxDEV)(`span`,{className:`text-muted-foreground/80`,children:e},e,!1,{fileName:Wk,lineNumber:140,columnNumber:9},this)),n>0&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground/60`,title:e.tags.slice(Kk).join(`, `),children:[`+`,n]},void 0,!0,{fileName:Wk,lineNumber:142,columnNumber:30},this)]},void 0,!0,{fileName:Wk,lineNumber:129,columnNumber:5},this)}var Qk=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/board.tsx`,$k=[{id:`lane`,label:`Lane`},{id:`epic`,label:`Epic`},{id:`recommended`,label:`Recommended`}],eA=new Set([`done`,`archive`,`closed`]),tA=`eforge-plan:board:expanded-closed`;function nA(){try{let e=window.localStorage.getItem(tA);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function rA({board:e,itemPlanIndex:t,onOpenPlan:n,query:r,onQuery:i,filter:a,onFilter:o,group:s,onGroup:c,epicFilter:l,onEpicFilter:u,selected:d,onToggle:f,onOpenDetail:p,onOpenEpic:m,onLoadMoreBoard:h,onLoadClosedLane:g}){let _=e.items??[],[v,y]=w.useState(null),[b,x]=w.useState(()=>nA()),S=w.useRef(new Set),C=w.useRef(!1),T=w.useMemo(()=>{let e=Bw(_,r,a);return l?e.filter(e=>(e.epic??``)===l):e},[_,r,a,l]),ee=w.useMemo(()=>{let t=Ww(e,T,s);if(a!==`closed`||s!==`lane`)return t;let n=new Set(t.map(e=>e.key)),r=(e.lanes??[]).filter(e=>(e.lane===`done`||e.lane===`archive`)&&!n.has(e.lane)&&(e.count??e.closedCount??0)>0).map(e=>({key:e.lane,title:e.title,tone:e.lane===`done`?`var(--lane-done)`:`var(--lane-archive)`,items:[],count:e.count,pagination:e.pagination}));return[...t,...r]},[e,T,s,a]),E=w.useMemo(()=>Jw(_),[_]),D=w.useMemo(()=>Qw(_,e.epics??[]),[_,e.epics]),te=w.useMemo(()=>$w(e.epics??[]),[e.epics]),O=w.useMemo(()=>Zw(_,e),[_,e]),ne=w.useMemo(()=>v?_.find(e=>e.id===v):void 0,[_,v]),k=w.useMemo(()=>new Set((ne?.dependencies??[]).map(e=>e.id)),[ne]),A=w.useMemo(()=>new Set((ne?.dependents??[]).map(e=>e.id)),[ne]),re=e=>k.has(e.id)?`dependency`:A.has(e.id)?`dependent`:null,ie=w.useCallback(e=>{(e===`done`||e===`archive`)&&g&&g(e)},[g]);w.useEffect(()=>{for(let t of e.lanes??[])t.lane!==`done`&&t.lane!==`archive`||!b.has(t.lane)||S.current.has(t.lane)||(t.count??0)<=t.items.length||t.pagination?.hasMore===!1||(S.current.add(t.lane),ie(t.lane))},[e.lanes,b,ie]),w.useEffect(()=>{if(a!==`closed`){C.current=!1;return}C.current||(C.current=!0,ie(`done`),ie(`archive`))},[a,ie]);let j=e=>{e===`closed`&&(C.current=!0,ie(`done`),ie(`archive`)),o(e)},ae=e=>{b.has(e)||(S.current.add(e),ie(e)),x(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{window.localStorage.setItem(tA,JSON.stringify([...n]))}catch{}return n})},se=[{id:`all`,label:`All`,count:e.counts?.total??_.length},{id:`open`,label:`Open`,count:O.open},{id:`ready`,label:`Plan eligible`,count:O.ready},{id:`blocked`,label:`Blocked`,count:O.blocked},{id:`review`,label:`Review due`,count:O.review},{id:`closed`,label:`Closed`,count:O.closed}].filter(e=>e.count>0||e.id===a||e.id===`all`);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxDEV)(Tk,{type:`search`,value:r,onChange:e=>i(e.target.value),placeholder:`Search title, id, tag, dependency…`,className:`h-8 min-w-64 flex-1`},void 0,!1,{fileName:Qk,lineNumber:159,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:se.map(e=>(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>j(e.id),className:`inline-flex items-baseline gap-1 rounded-md border px-2 py-1 text-xs transition-colors ${a===e.id?`border-primary bg-primary/10 text-text-bright`:`border-border bg-card text-muted-foreground hover:border-muted-foreground/50`}`,children:[(0,I.jsxDEV)(`strong`,{className:`text-sm ${a===e.id?`text-text-bright`:`text-foreground`}`,children:e.count},void 0,!1,{fileName:Qk,lineNumber:175,columnNumber:17},this),e.label]},e.id,!0,{fileName:Qk,lineNumber:169,columnNumber:15},this))},void 0,!1,{fileName:Qk,lineNumber:167,columnNumber:11},this),(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:`Group`},void 0,!1,{fileName:Qk,lineNumber:179,columnNumber:11},this),(0,I.jsxDEV)(aA,{options:$k,active:s,onSelect:e=>c(e)},void 0,!1,{fileName:Qk,lineNumber:180,columnNumber:11},this)]},void 0,!0,{fileName:Qk,lineNumber:166,columnNumber:9},this)]},void 0,!0,{fileName:Qk,lineNumber:158,columnNumber:7},this),D.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:D.map(e=>(0,I.jsxDEV)(`button`,{onClick:()=>u(l===e.id?``:e.id),className:`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs transition-colors ${l===e.id?`border-primary text-text-bright`:`border-border text-muted-foreground hover:border-muted-foreground/50`} ${e.missing?`border-dashed text-[color:var(--lane-blocked)]`:``}`,children:[e.title,(0,I.jsxDEV)(`span`,{className:`rounded-full border border-border px-1 text-2xs`,children:e.count},void 0,!1,{fileName:Qk,lineNumber:192,columnNumber:27},this)]},e.id,!0,{fileName:Qk,lineNumber:187,columnNumber:13},this))},void 0,!1,{fileName:Qk,lineNumber:185,columnNumber:9},this),te.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:`Horizon`},void 0,!1,{fileName:Qk,lineNumber:200,columnNumber:11},this),te.map(e=>(0,I.jsxDEV)(`button`,{type:`button`,title:`Open horizon epic ${e.title??e.id}`,onClick:()=>m(e.id),className:`inline-flex items-center gap-1 rounded-md border border-dashed border-border px-2 py-0.5 text-xs text-muted-foreground transition-colors hover:border-muted-foreground/50 hover:text-foreground`,children:[(0,I.jsxDEV)(_e,{className:`h-3 w-3`},void 0,!1,{fileName:Qk,lineNumber:209,columnNumber:15},this),e.title??e.id]},e.id,!0,{fileName:Qk,lineNumber:202,columnNumber:13},this))]},void 0,!0,{fileName:Qk,lineNumber:199,columnNumber:9},this),E.length>0&&(0,I.jsxDEV)(`div`,{className:`rounded-md border border-[color:var(--lane-blocked)]/40 bg-[color:var(--lane-blocked)]/10 p-2 text-xs text-[color:var(--lane-blocked)]`,children:[(0,I.jsxDEV)(`strong`,{className:`mr-2 uppercase tracking-wide`,children:`Dependency cycles`},void 0,!1,{fileName:Qk,lineNumber:217,columnNumber:11},this),E.map(e=>(0,I.jsxDEV)(`span`,{className:`mr-3 font-mono`,children:e.map(Xw).join(` → `)},e.join(`-`),!1,{fileName:Qk,lineNumber:218,columnNumber:34},this))]},void 0,!0,{fileName:Qk,lineNumber:216,columnNumber:9},this),ee.length===0?(0,I.jsxDEV)(Ck,{className:`p-6 text-center`,children:`No items match this view.`},void 0,!1,{fileName:Qk,lineNumber:223,columnNumber:11},this):(0,I.jsxDEV)(`div`,{className:`flex max-h-[78vh] items-start gap-3 overflow-auto pb-2`,children:ee.map(e=>{let r=s!==`epic`&&eA.has(e.key);return r&&!b.has(e.key)?(0,I.jsxDEV)(iA,{column:e,onExpand:()=>ae(e.key)},e.key,!1,{fileName:Qk,lineNumber:229,columnNumber:24},this):(0,I.jsxDEV)(`div`,{className:`flex w-80 shrink-0 flex-col overflow-hidden rounded-lg border border-border/60 bg-background/40`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 border-b border-border/60 px-3 py-2`,children:[(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full`,style:{background:e.tone}},void 0,!1,{fileName:Qk,lineNumber:234,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`text-sm font-semibold text-text-bright`,children:e.title},void 0,!1,{fileName:Qk,lineNumber:235,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`ml-auto rounded-full border border-border px-2 text-xs text-muted-foreground`,children:e.count??e.items.length},void 0,!1,{fileName:Qk,lineNumber:236,columnNumber:21},this),r&&(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":`Collapse ${e.title}`,title:`Collapse ${e.title}`,className:`rounded p-0.5 text-muted-foreground/60 transition-colors hover:bg-secondary hover:text-foreground`,onClick:()=>ae(e.key),children:(0,I.jsxDEV)(oe,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Qk,lineNumber:245,columnNumber:25},this)},void 0,!1,{fileName:Qk,lineNumber:238,columnNumber:23},this)]},void 0,!0,{fileName:Qk,lineNumber:233,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`flex flex-col gap-2 p-2`,children:[e.pagination?.hasMore&&(0,I.jsxDEV)(`p`,{className:`rounded border border-dashed border-border px-2 py-1 text-center text-2xs text-muted-foreground`,children:`More items available. Expand again or refresh to load the next page.`},void 0,!1,{fileName:Qk,lineNumber:250,columnNumber:52},this),e.items.length===0?(0,I.jsxDEV)(`p`,{className:`py-4 text-center text-xs text-muted-foreground`,children:(e.count??0)>0?`Cards not loaded yet`:`Nothing here`},void 0,!1,{fileName:Qk,lineNumber:252,columnNumber:25},this):e.items.map(e=>(0,I.jsxDEV)(Jk,{item:e,selected:d.has(e.id),relation:re(e),plannedIn:t?.get(e.id),onOpenPlan:n,onToggle:f,onOpenDetail:p,onHoverChange:y},e.id,!1,{fileName:Qk,lineNumber:254,columnNumber:27},this))]},void 0,!0,{fileName:Qk,lineNumber:249,columnNumber:19},this)]},e.key,!0,{fileName:Qk,lineNumber:232,columnNumber:17},this)})},void 0,!1,{fileName:Qk,lineNumber:225,columnNumber:11},this),h&&e.pagination?.hasMore&&a!==`closed`&&(0,I.jsxDEV)(L,{variant:`outline`,size:`sm`,className:`mx-auto`,onClick:()=>{h&&h()},children:`Load more board items`},void 0,!1,{fileName:Qk,lineNumber:274,columnNumber:9},this),ne&&(k.size>0||A.size>0)&&(0,I.jsxDEV)(`div`,{className:`pointer-events-none fixed bottom-4 left-4 z-20 flex items-center gap-3 rounded-full border border-border bg-card px-3 py-1.5 text-xs text-muted-foreground shadow-lg`,children:[(0,I.jsxDEV)(`span`,{className:`max-w-56 truncate font-medium text-foreground`,children:Xw(ne.id)},void 0,!1,{fileName:Qk,lineNumber:281,columnNumber:11},this),k.size>0&&(0,I.jsxDEV)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full bg-[color:var(--prio-medium)]`},void 0,!1,{fileName:Qk,lineNumber:284,columnNumber:15},this),` waits on `,k.size]},void 0,!0,{fileName:Qk,lineNumber:283,columnNumber:13},this),A.size>0&&(0,I.jsxDEV)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full bg-[color:var(--lane-ready)]`},void 0,!1,{fileName:Qk,lineNumber:289,columnNumber:15},this),` unblocks `,A.size]},void 0,!0,{fileName:Qk,lineNumber:288,columnNumber:13},this)]},void 0,!0,{fileName:Qk,lineNumber:280,columnNumber:9},this)]},void 0,!0,{fileName:Qk,lineNumber:157,columnNumber:5},this)}function iA({column:e,onExpand:t}){return(0,I.jsxDEV)(`button`,{type:`button`,onClick:t,title:`Expand ${e.title} (${e.count??e.items.length})`,className:`flex min-h-48 w-10 shrink-0 flex-col items-center gap-2 rounded-lg border border-border/60 bg-background/40 py-2 text-muted-foreground transition-colors hover:border-muted-foreground/50 hover:text-foreground`,children:[(0,I.jsxDEV)(ae,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Qk,lineNumber:308,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full`,style:{background:e.tone}},void 0,!1,{fileName:Qk,lineNumber:309,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold [text-orientation:mixed] [writing-mode:vertical-rl]`,children:e.title},void 0,!1,{fileName:Qk,lineNumber:310,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`rounded-full border border-border px-1.5 text-2xs`,children:e.count??e.items.length},void 0,!1,{fileName:Qk,lineNumber:311,columnNumber:7},this)]},void 0,!0,{fileName:Qk,lineNumber:302,columnNumber:5},this)}function aA({options:e,active:t,onSelect:n}){return(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:e.map(e=>(0,I.jsxDEV)(`button`,{onClick:()=>n(e.id),className:`rounded-md border px-2.5 py-1 text-xs transition-colors ${t===e.id?`border-primary bg-primary/10 text-text-bright`:`border-border text-muted-foreground hover:border-muted-foreground/50`}`,children:e.label},e.id,!1,{fileName:Qk,lineNumber:320,columnNumber:9},this))},void 0,!1,{fileName:Qk,lineNumber:318,columnNumber:5},this)}var oA=l(h(),1),sA=[];function cA(e,t=!0){w.useEffect(()=>{if(!t)return;let n=()=>e();sA.push(n);let r=t=>{t.key===`Escape`&&sA[sA.length-1]===n&&(t.stopPropagation(),e())};return window.addEventListener(`keydown`,r),()=>{window.removeEventListener(`keydown`,r);let e=sA.indexOf(n);e!==-1&&sA.splice(e,1)}},[e,t])}var lA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/drawer.tsx`,uA={sm:`w-[26rem]`,md:`w-[34rem]`},dA=`a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])`;function fA({ariaLabel:e,title:t,eyebrow:n,subtitle:r,width:i=`md`,headerAlign:a=`start`,closeLabel:o=`Close`,onClose:s,children:c}){let l=w.useRef(null);return cA(s),w.useEffect(()=>{let e=document.activeElement;return l.current?.focus(),()=>e?.focus?.()},[]),w.useEffect(()=>{let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[]),(0,oA.createPortal)((0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`div`,{className:`fixed inset-0 z-30 bg-background/70 backdrop-blur-sm animate-scrim-in`,"aria-hidden":`true`,onClick:s},void 0,!1,{fileName:lA,lineNumber:80,columnNumber:7},this),(0,I.jsxDEV)(`aside`,{ref:l,role:`dialog`,"aria-modal":`true`,"aria-label":e,tabIndex:-1,onKeyDown:e=>{if(e.key!==`Tab`)return;let t=l.current?.querySelectorAll(dA);if(!t||t.length===0){e.preventDefault(),l.current?.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())},className:xn(`fixed inset-y-0 right-0 z-40 flex max-w-full flex-col border-l border-border bg-card shadow-2xl outline-none animate-drawer-in`,uA[i]),children:[(0,I.jsxDEV)(`header`,{className:xn(`flex gap-2 border-b border-border p-4`,a===`center`?`items-center`:`items-start`),children:[(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[n&&(0,I.jsxDEV)(`p`,{className:`text-2xs font-semibold uppercase tracking-wide text-[color:var(--lane-archive)]`,children:n},void 0,!1,{fileName:lA,lineNumber:92,columnNumber:25},this),(0,I.jsxDEV)(`h3`,{className:xn(`text-sm font-semibold leading-snug text-text-bright`,n&&`mt-0.5`),children:t},void 0,!1,{fileName:lA,lineNumber:93,columnNumber:13},this),r]},void 0,!0,{fileName:lA,lineNumber:91,columnNumber:11},this),(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":o,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-secondary hover:text-foreground`,onClick:s,children:(0,I.jsxDEV)(Ve,{className:`h-4 w-4`},void 0,!1,{fileName:lA,lineNumber:102,columnNumber:13},this)},void 0,!1,{fileName:lA,lineNumber:96,columnNumber:11},this)]},void 0,!0,{fileName:lA,lineNumber:90,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:c},void 0,!1,{fileName:lA,lineNumber:105,columnNumber:9},this)]},void 0,!0,{fileName:lA,lineNumber:81,columnNumber:7},this)]},void 0,!0,{fileName:lA,lineNumber:79,columnNumber:5},this),document.body)}var pA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/select.tsx`,mA=w.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxDEV)(`select`,{ref:r,className:xn(`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),...n,children:t},void 0,!1,{fileName:pA,lineNumber:7,columnNumber:3},void 0));mA.displayName=`Select`;var hA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/sub-block.tsx`;function gA({title:e,className:t,children:n}){return(0,I.jsxDEV)(`div`,{className:xn(`grid gap-2 border-t border-border pt-2`,t),children:[e&&(0,I.jsxDEV)(`span`,{className:`text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e},void 0,!1,{fileName:hA,lineNumber:12,columnNumber:17},this),n]},void 0,!0,{fileName:hA,lineNumber:11,columnNumber:5},this)}var J=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/item-drawer.tsx`,_A=[`candidate`,`planned`,`active`,`shipped`,`stale`,`superseded`],vA=[`high`,`medium`,`low`],yA=``;function bA({item:e,epics:t,plans:n=[],onOpenPlan:r,onClose:i,onRefresh:a}){let o=$n(),[s,c]=w.useState(e.status),[l,u]=w.useState(e.priority),[d,f]=w.useState(e.epic??yA),[p,m]=w.useState(!1),[h,g]=w.useState(null),[_,v]=w.useState(!1),[y,b]=w.useState(null);w.useEffect(()=>{c(e.status),u(e.priority),f(e.epic??yA),g(null)},[e.id,e.status,e.priority,e.epic]),w.useEffect(()=>{let t=!1;return v(!0),b(null),sw().invokeAction(`get-item`,{id:e.id,includeBody:!0}).then(n=>{t||g(pw(e,n))}).catch(e=>{t||b(e instanceof Error?e.message:String(e))}).finally(()=>{t||v(!1)}),()=>{t=!0}},[e]);let x=h??e,S=s!==e.status||l!==e.priority||d!==(e.epic??yA),C=x.unresolvedDependsOn.length>0&&[`candidate`,`planned`,`active`].includes(s),T=async()=>{m(!0);try{await sw().invokeAction(`update-item`,{id:e.id,...s!==e.status&&{status:s},...l!==e.priority&&{priority:l},...d!==(e.epic??yA)&&{epic:d}}),await a(),o.push(`Updated ${Xw(e.id)}.`,`success`)}catch(e){o.push(e instanceof Error?e.message:String(e),`error`)}finally{m(!1)}};return(0,I.jsxDEV)(fA,{ariaLabel:`Details for ${e.title}`,width:`sm`,title:e.title,subtitle:(0,I.jsxDEV)(`code`,{className:`mt-1 block break-all text-2xs text-muted-foreground`,children:e.id},void 0,!1,{fileName:J,lineNumber:97,columnNumber:17},this),closeLabel:`Close details`,onClose:i,children:[(0,I.jsxDEV)(`section`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(xA,{label:`Status`,children:(0,I.jsxDEV)(mA,{value:s,onChange:e=>c(e.target.value),className:`h-8 text-xs capitalize`,children:_A.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:J,lineNumber:104,columnNumber:48},this))},void 0,!1,{fileName:J,lineNumber:103,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:102,columnNumber:11},this),(0,I.jsxDEV)(xA,{label:`Priority`,children:(0,I.jsxDEV)(mA,{value:l,onChange:e=>u(e.target.value),className:`h-8 text-xs capitalize`,children:vA.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:J,lineNumber:109,columnNumber:42},this))},void 0,!1,{fileName:J,lineNumber:108,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:107,columnNumber:11},this),(0,I.jsxDEV)(xA,{label:`Epic`,children:(0,I.jsxDEV)(mA,{value:d,onChange:e=>f(e.target.value),className:`h-8 text-xs`,children:[(0,I.jsxDEV)(`option`,{value:yA,children:`No epic`},void 0,!1,{fileName:J,lineNumber:114,columnNumber:15},this),t.map(e=>(0,I.jsxDEV)(`option`,{value:e.id,children:e.title??e.id},e.id,!1,{fileName:J,lineNumber:115,columnNumber:37},this)),d!==yA&&!t.some(e=>e.id===d)&&(0,I.jsxDEV)(`option`,{value:d,children:[d,` (missing)`]},void 0,!0,{fileName:J,lineNumber:116,columnNumber:81},this)]},void 0,!0,{fileName:J,lineNumber:113,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:112,columnNumber:11},this),C&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:[`Unresolved dependencies (`,x.unresolvedDependsOn.map(Xw).join(`, `),`) keep this item in the Blocked lane regardless of status.`]},void 0,!0,{fileName:J,lineNumber:120,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:!S||p,onClick:()=>void T(),children:p?`Saving…`:`Save`},void 0,!1,{fileName:J,lineNumber:125,columnNumber:13},this),S&&!p&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>{c(e.status),u(e.priority),f(e.epic??yA)},children:`Reset`},void 0,!1,{fileName:J,lineNumber:127,columnNumber:15},this)]},void 0,!0,{fileName:J,lineNumber:124,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:101,columnNumber:7},this),n.length>0&&(0,I.jsxDEV)(SA,{title:`Planned in ${n.length===1?`plan`:`${n.length} plans`}`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:n.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>r?.(e.key),disabled:!r,title:`Open plan ${e.title}`,className:`flex w-full items-center gap-2 rounded border border-border bg-card p-2 text-left text-xs transition-colors hover:border-primary disabled:cursor-default disabled:hover:border-border`,children:[(0,I.jsxDEV)(me,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`},void 0,!1,{fileName:J,lineNumber:144,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:e.title},void 0,!1,{fileName:J,lineNumber:145,columnNumber:21},this),e.status&&(0,I.jsxDEV)(Tn,{variant:`outline`,className:`shrink-0`,children:e.status},void 0,!1,{fileName:J,lineNumber:146,columnNumber:37},this)]},void 0,!0,{fileName:J,lineNumber:137,columnNumber:19},this)},e.key,!1,{fileName:J,lineNumber:136,columnNumber:17},this))},void 0,!1,{fileName:J,lineNumber:134,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:133,columnNumber:11},this),_&&(0,I.jsxDEV)(`p`,{className:`mt-4 rounded border border-border bg-background p-2 text-xs text-muted-foreground`,children:`Loading item details…`},void 0,!1,{fileName:J,lineNumber:154,columnNumber:27},this),y&&(0,I.jsxDEV)(Kn,{className:`mt-4`,children:y},void 0,!1,{fileName:J,lineNumber:155,columnNumber:25},this),x.reasons.length>0&&(0,I.jsxDEV)(SA,{title:`Lane`,children:(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`capitalize text-foreground`,children:x.lane},void 0,!1,{fileName:J,lineNumber:159,columnNumber:58},this),` · `,x.reasons.join(`; `)]},void 0,!0,{fileName:J,lineNumber:159,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:158,columnNumber:11},this),x.tags.length>0&&(0,I.jsxDEV)(SA,{title:`Tags`,children:(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:x.tags.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:e},e,!1,{fileName:J,lineNumber:166,columnNumber:46},this))},void 0,!1,{fileName:J,lineNumber:165,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:164,columnNumber:11},this),x.body?.trim()&&(0,I.jsxDEV)(SA,{title:`Body`,children:(0,I.jsxDEV)(zO,{markdown:x.body},void 0,!1,{fileName:J,lineNumber:173,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:172,columnNumber:11},this),(0,I.jsxDEV)(CA,{title:`Depends on`,refs:x.dependencies},void 0,!1,{fileName:J,lineNumber:177,columnNumber:9},this),(0,I.jsxDEV)(CA,{title:`Enables`,refs:x.dependents},void 0,!1,{fileName:J,lineNumber:178,columnNumber:9},this),(x.recLanes.length>0||x.recUnblock)&&(0,I.jsxDEV)(SA,{title:`Recommendations`,children:[x.recLanes.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:x.recLanes.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:e},e,!1,{fileName:J,lineNumber:184,columnNumber:53},this))},void 0,!1,{fileName:J,lineNumber:183,columnNumber:15},this),x.recUnblock&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-[color:var(--prio-medium)]`,children:x.recUnblock},void 0,!1,{fileName:J,lineNumber:187,columnNumber:40},this)]},void 0,!0,{fileName:J,lineNumber:181,columnNumber:11},this),(0,I.jsxDEV)(wA,{title:`Claim`,content:x.notes.claim},void 0,!1,{fileName:J,lineNumber:191,columnNumber:9},this),(0,I.jsxDEV)(wA,{title:`Evidence`,content:x.notes.evidence},void 0,!1,{fileName:J,lineNumber:192,columnNumber:9},this),(0,I.jsxDEV)(wA,{title:`Recheck`,content:x.notes.recheck},void 0,!1,{fileName:J,lineNumber:193,columnNumber:9},this),(0,I.jsxDEV)(wA,{title:`Promotion paths`,content:x.notes.promotionPaths},void 0,!1,{fileName:J,lineNumber:194,columnNumber:9},this),(0,I.jsxDEV)(SA,{title:`Lifecycle`,children:(0,I.jsxDEV)(Rk,{item:x},void 0,!1,{fileName:J,lineNumber:197,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:196,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:93,columnNumber:5},this)}function xA({label:e,children:t}){return(0,I.jsxDEV)(`label`,{className:`grid grid-cols-[5rem_1fr] items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:J,lineNumber:206,columnNumber:7},this),t]},void 0,!0,{fileName:J,lineNumber:205,columnNumber:5},this)}function SA({title:e,children:t}){return(0,I.jsxDEV)(gA,{title:e,className:`mt-4 pt-3`,children:t},void 0,!1,{fileName:J,lineNumber:214,columnNumber:10},this)}function CA({title:e,refs:t}){return t.length===0?null:(0,I.jsxDEV)(SA,{title:e,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:t.map(e=>(0,I.jsxDEV)(`li`,{className:`flex items-baseline gap-2 text-xs`,children:[(0,I.jsxDEV)(`code`,{className:`min-w-0 truncate rounded border px-1 text-2xs ${e.blocking?`border-[color:var(--lane-blocked)]/40 text-[color:var(--lane-blocked)]`:e.missing?`border-dashed border-[color:var(--lane-blocked)]/50 text-[color:var(--lane-blocked)]`:`border-border text-muted-foreground`}`,title:e.id,children:Xw(e.id)},void 0,!1,{fileName:J,lineNumber:224,columnNumber:13},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 truncate text-muted-foreground`,title:e.title,children:e.missing?`Missing: ${e.id}`:e.title},void 0,!1,{fileName:J,lineNumber:227,columnNumber:13},this),e.status&&(0,I.jsxDEV)(`span`,{className:`ml-auto shrink-0 text-2xs capitalize text-muted-foreground/70`,children:e.status},void 0,!1,{fileName:J,lineNumber:228,columnNumber:28},this)]},e.id,!0,{fileName:J,lineNumber:223,columnNumber:11},this))},void 0,!1,{fileName:J,lineNumber:221,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:220,columnNumber:5},this)}function wA({title:e,content:t}){return t.trim()?(0,I.jsxDEV)(SA,{title:e,children:(0,I.jsxDEV)(`pre`,{className:`whitespace-pre-wrap break-words rounded border border-border bg-background p-2 text-2xs text-foreground`,children:t.trim()},void 0,!1,{fileName:J,lineNumber:240,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:239,columnNumber:5},this):null}var TA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/epic-drawer.tsx`;function EA({epicId:e,onClose:t}){let[n,r]=w.useState(null),[i,a]=w.useState(!1),[o,s]=w.useState(null);w.useEffect(()=>{let t=!1;return a(!0),s(null),sw().invokeAction(`get-epic`,{id:e,includeBody:!0,includeItems:!1}).then(e=>{t||r(e.epic)}).catch(e=>{t||s(e instanceof Error?e.message:String(e))}).finally(()=>{t||a(!1)}),()=>{t=!0}},[e]);let c=n?.title??e;return(0,I.jsxDEV)(fA,{ariaLabel:`Horizon epic ${c}`,eyebrow:`Horizon epic · no items`,title:c,subtitle:(0,I.jsxDEV)(`code`,{className:`mt-1 block break-all text-2xs text-muted-foreground`,children:e},void 0,!1,{fileName:TA,lineNumber:51,columnNumber:17},this),onClose:t,children:[i&&(0,I.jsxDEV)(`p`,{className:`rounded border border-border bg-background p-2 text-xs text-muted-foreground`,children:`Loading epic…`},void 0,!1,{fileName:TA,lineNumber:54,columnNumber:19},this),o&&(0,I.jsxDEV)(Kn,{children:o},void 0,!1,{fileName:TA,lineNumber:55,columnNumber:17},this),n&&(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[`Status `,(0,I.jsxDEV)(`span`,{className:`capitalize text-foreground`,children:n.status},void 0,!1,{fileName:TA,lineNumber:60,columnNumber:26},this)]},void 0,!0,{fileName:TA,lineNumber:60,columnNumber:13},this),n.priority&&(0,I.jsxDEV)(`span`,{children:[`Priority `,(0,I.jsxDEV)(`span`,{className:`capitalize text-foreground`,children:n.priority},void 0,!1,{fileName:TA,lineNumber:61,columnNumber:46},this)]},void 0,!0,{fileName:TA,lineNumber:61,columnNumber:31},this)]},void 0,!0,{fileName:TA,lineNumber:59,columnNumber:11},this),n.tags.length>0&&(0,I.jsxDEV)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:n.tags.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:e},e,!1,{fileName:TA,lineNumber:65,columnNumber:39},this))},void 0,!1,{fileName:TA,lineNumber:64,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`mt-4 border-t border-border pt-3`,children:n.body?.trim()?(0,I.jsxDEV)(zO,{markdown:n.body},void 0,!1,{fileName:TA,lineNumber:70,columnNumber:17},this):(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`This epic has no body content.`},void 0,!1,{fileName:TA,lineNumber:71,columnNumber:17},this)},void 0,!1,{fileName:TA,lineNumber:68,columnNumber:11},this)]},void 0,!0,{fileName:TA,lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:TA,lineNumber:47,columnNumber:5},this)}var DA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/board-focus.tsx`,OA=[`lane`,`epic`,`recommended`],kA=[`all`,`open`,`ready`,`blocked`,`review`,`closed`];function AA({board:e,selection:t,itemPlanIndex:n,onRefresh:r,onLoadMoreBoard:i,onLoadClosedLane:a}){let o=qx(),s=hT(),c=o.query.get(`item`),l=w.useCallback(e=>{o.setQuery(t=>{e?t.set(`item`,e):t.delete(`item`)})},[o]),[u,d]=w.useState(null),f=w.useMemo(()=>c?(e.items??[]).find(e=>e.id===c)??null:null,[e.items,c]),p=jA(o.query.get(`group`),OA,`lane`),m=jA(o.query.get(`filter`),kA,`all`),h=o.query.get(`q`)??``,g=o.query.get(`epic`)??``,_=w.useCallback((e,t,n)=>{o.setQuery(r=>{!t||t===n?r.delete(e):r.set(e,t)})},[o]);return(0,I.jsxDEV)(`div`,{className:`grid gap-4`,children:[(0,I.jsxDEV)(rA,{board:e,itemPlanIndex:n,onOpenPlan:s.openPlan,query:h,onQuery:e=>_(`q`,e,``),filter:m,onFilter:e=>_(`filter`,e,`all`),group:p,onGroup:e=>_(`group`,e,`lane`),epicFilter:g,onEpicFilter:e=>_(`epic`,e,``),selected:t.selected,onToggle:t.toggleItem,onOpenDetail:e=>{d(null),l(e.id)},onOpenEpic:e=>{l(null),d(e)},onLoadMoreBoard:i,onLoadClosedLane:a},void 0,!1,{fileName:DA,lineNumber:57,columnNumber:7},this),f&&(0,I.jsxDEV)(bA,{item:f,epics:e.epics??[],plans:n.get(f.id)??[],onOpenPlan:s.openPlan,onClose:()=>l(null),onRefresh:r,selectedItemIds:t.selectedIds},void 0,!1,{fileName:DA,lineNumber:77,columnNumber:9},this),u&&(0,I.jsxDEV)(EA,{epicId:u,onClose:()=>d(null)},void 0,!1,{fileName:DA,lineNumber:87,columnNumber:24},this)]},void 0,!0,{fileName:DA,lineNumber:56,columnNumber:5},this)}function jA(e,t,n){return e&&t.includes(e)?e:n}var MA=6e4,NA=60*MA,PA=24*NA;function FA(e,t=Date.now()){if(!e)return null;let n=Date.parse(e);if(Number.isNaN(n))return null;let r=t-n,i=Math.abs(r);if(i<MA)return`just now`;if(i>=7*PA){let e=new Date(n),r=e.getFullYear()===new Date(t).getFullYear();return e.toLocaleDateString(void 0,r?{month:`short`,day:`numeric`}:{month:`short`,day:`numeric`,year:`numeric`})}let a=i<NA?`${Math.floor(i/MA)}m`:i<PA?`${Math.floor(i/NA)}h`:`${Math.floor(i/PA)}d`;return r<0?`in ${a}`:`${a} ago`}function IA(e){let t=/^(task-[0-9a-f]{8})-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.exec(e);return t?t[1]:e}function LA(e){if(!e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}function RA(...e){for(let t of e){let e=LA(t);if(e)return e}return null}function zA(e){let t=null,n=-1/0;for(let r of e){let e=LA(r);if(!e)continue;let i=Date.parse(e);i>n&&(t=e,n=i)}return t}function BA(e){return e?RA(e.lastBuildActivityAt,zA([...UA(e.lifecycleLinks),...UA(e.linkRows),...UA(e.failureEvidence),...(e.prRefs??[]).flatMap(e=>[e.updatedAt,e.createdAt]),...(e.landingRefs??[]).flatMap(e=>[e.landedAt,e.updatedAt])])):null}function VA(e){return e?zA([e.updatedAt,e.readyAt,e.submittedAt,e.createdAt,BA(e)]):null}function HA(e,t){let n=e?.plan,r=t,i={...r,...n,lifecycleLinks:n?.lifecycleLinks??t?.lifecycleLinks??e?.lifecycle?.linkRows,linkRows:n?.linkRows??t?.linkRows??e?.lifecycle?.linkRows,failureEvidence:n?.failureEvidence??t?.failureEvidence??e?.lifecycle?.failureEvidence,prRefs:n?.prRefs??t?.prRefs,landingRefs:n?.landingRefs??t?.landingRefs};return{createdAt:RA(n?.createdAt,r?.createdAt),updatedAt:RA(n?.updatedAt,r?.updatedAt),readyAt:RA(n?.readyAt,r?.readyAt),submittedAt:RA(n?.submittedAt,r?.submittedAt),lastBuildActivityAt:BA(i)}}function UA(e){return(e??[]).flatMap(e=>[e.timestamp,e.promotedAt,e.queuedAt,e.startedAt,e.completedAt,e.landedAt])}var WA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/timestamp.tsx`;function GA({value:e,placeholder:t=`—`,className:n,prefix:r}){let i=LA(e);if(!i)return(0,I.jsxDEV)(`span`,{className:n,children:t},void 0,!1,{fileName:WA,lineNumber:19,columnNumber:20},this);let a=FA(i)??t;return(0,I.jsxDEV)(`time`,{className:n,dateTime:i,title:i,children:r?`${r} ${a}`:a},void 0,!1,{fileName:WA,lineNumber:21,columnNumber:10},this)}var KA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/checkbox.tsx`,qA=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`input`,{ref:n,type:`checkbox`,className:xn(`h-3.5 w-3.5 shrink-0 cursor-pointer accent-primary disabled:cursor-not-allowed disabled:opacity-50`,e),...t},void 0,!1,{fileName:KA,lineNumber:12,columnNumber:3},void 0));qA.displayName=`Checkbox`;var JA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plan-context-rail.tsx`;function YA(e){if(e)try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.href:void 0}catch{return}}function XA(e){return YA(e.prRefs?.find(e=>e.url)?.url??e.linkRows?.find(e=>e.prUrl)?.prUrl)}function ZA({artifact:e,titles:t}){let{openItem:n}=hT();if(!e)return(0,I.jsxDEV)(Ck,{className:`p-2 text-xs`,children:`Select a plan to see where it came from and how far it has built.`},void 0,!1,{fileName:JA,lineNumber:40,columnNumber:12},this);let r=dT(e),i=fT(e),a=pT(e),o=XA(e);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`min-w-0 flex-1 truncate text-xs text-text-bright`,title:rT(e.title,e.session??e.key),children:rT(e.title,e.session??e.key)},void 0,!1,{fileName:JA,lineNumber:51,columnNumber:9},this),a&&(0,I.jsxDEV)(Tn,{variant:`outline`,className:`shrink-0 capitalize`,children:a},void 0,!1,{fileName:JA,lineNumber:54,columnNumber:24},this)]},void 0,!0,{fileName:JA,lineNumber:50,columnNumber:7},this),r.length>0&&(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`span`,{className:`mb-1 block text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[`Built from `,r.length,` backlog item`,r.length===1?``:`s`]},void 0,!0,{fileName:JA,lineNumber:59,columnNumber:11},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-0.5`,children:r.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>n(e),title:`Open ${e} on the board`,className:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-left text-2xs leading-snug text-foreground transition-colors hover:bg-accent`,children:(0,I.jsxDEV)(`span`,{className:`line-clamp-2 min-w-0 flex-1`,children:t.get(e)??e},void 0,!1,{fileName:JA,lineNumber:71,columnNumber:19},this)},void 0,!1,{fileName:JA,lineNumber:65,columnNumber:17},this)},e,!1,{fileName:JA,lineNumber:64,columnNumber:15},this))},void 0,!1,{fileName:JA,lineNumber:62,columnNumber:11},this)]},void 0,!0,{fileName:JA,lineNumber:58,columnNumber:9},this),i.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:`Epics`},void 0,!1,{fileName:JA,lineNumber:81,columnNumber:11},this),i.map(e=>(0,I.jsxDEV)(`code`,{className:`rounded border border-border bg-card px-1 text-text-bright`,children:e},e,!1,{fileName:JA,lineNumber:82,columnNumber:32},this))]},void 0,!0,{fileName:JA,lineNumber:80,columnNumber:9},this),r.length===0&&i.length===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`No source backlog items recorded for this plan.`},void 0,!1,{fileName:JA,lineNumber:87,columnNumber:9},this),o&&(0,I.jsxDEV)(`a`,{href:o,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 text-2xs text-[color:var(--lane-ready)] hover:underline`,children:[(0,I.jsxDEV)(ge,{className:`h-3 w-3`},void 0,!1,{fileName:JA,lineNumber:92,columnNumber:11},this),` View pull request`]},void 0,!0,{fileName:JA,lineNumber:91,columnNumber:9},this),(0,I.jsxDEV)(`p`,{className:`text-2xs leading-relaxed text-muted-foreground`,children:`Builds run in the global queue (see the top bar). Full build trace is in the plan footer.`},void 0,!1,{fileName:JA,lineNumber:96,columnNumber:7},this)]},void 0,!0,{fileName:JA,lineNumber:49,columnNumber:5},this)}var QA=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/collapsible-panel.tsx`;function $A(e,t){try{let n=window.localStorage.getItem(e);return n===null?t:n===`true`}catch{return t}}function ej({storageKey:e,defaultOpen:t=!1,className:n,icon:r,title:i,summary:a,actions:o,children:s}){let c=w.useRef(!1),[l,u]=w.useState(()=>{try{c.current=window.localStorage.getItem(e)!==null}catch{c.current=!1}return $A(e,t)});return w.useEffect(()=>{t&&!c.current&&u(!0)},[t]),(0,I.jsxDEV)(`details`,{open:l,className:xn(`rounded-lg border p-3`,n),children:[(0,I.jsxDEV)(`summary`,{onClick:t=>{t.preventDefault(),u(t=>{let n=!t;try{window.localStorage.setItem(e,String(n)),c.current=!0}catch{}return n})},className:`flex cursor-pointer flex-wrap items-center gap-2 [&::-webkit-details-marker]:hidden`,style:{listStyle:`none`},children:[(0,I.jsxDEV)(j,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform ${l?`rotate-90`:``}`},void 0,!1,{fileName:QA,lineNumber:66,columnNumber:9},this),r,(0,I.jsxDEV)(`h3`,{className:`text-sm font-semibold text-text-bright`,children:i},void 0,!1,{fileName:QA,lineNumber:68,columnNumber:9},this),a,o&&(0,I.jsxDEV)(`span`,{className:`ml-auto flex items-center gap-2`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:o},void 0,!1,{fileName:QA,lineNumber:71,columnNumber:11},this)]},void 0,!0,{fileName:QA,lineNumber:65,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2`,children:s},void 0,!1,{fileName:QA,lineNumber:87,columnNumber:7},this)]},void 0,!0,{fileName:QA,lineNumber:64,columnNumber:5},this)}function tj(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function nj(e){return tj(e).replace(/-/g,` `)}function rj(e){return e.split(/[-\s]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function ij(e,t){if(!e)return``;let n=tj(t);return e[nj(n)]??e[n]??e[t]??``}function aj(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function oj(e){return e===`queued`||e===`running`}function sj(e){return e.available===!1||!e.task?`unavailable`:e.task.status===`queued`?`queued`:e.task.status===`running`?`running`:e.task.status===`failed`?`failed`:e.task.status===`cancelled`?`cancelled`:e.task.result?.decision===`needs-input`?`needs-input`:lj(e).length>0?`patch`:e.task.result?.planRevisionTurn?`answer`:`unavailable`}function cj(e){return e.reduce((e,t)=>{let n=sj(t);return(n===`queued`||n===`running`)&&(e.running+=1),(n===`failed`||n===`cancelled`||n===`unavailable`)&&(e.failed+=1),n===`patch`&&(e.patchReady+=1),n===`needs-input`&&(e.needsInput+=1),e.appliedSections+=t.appliedSections?.length??0,e},{running:0,failed:0,patchReady:0,needsInput:0,appliedSections:0})}function lj(e){return e.task?.result?.planRevisionTurn?.proposedPatch?.sections??[]}function uj(e){return e.some(e=>oj(e.task?.status??e.status))}function dj(e){return e.task?.status?e.task.status:e.staleReason?`missing task`:`unknown`}function fj(e){if(!e)return null;let t=e.metadata?.sectionProgress,n=[e.metadata?.progressMessage,t?.currentSection?`Current section: ${t.currentSection}`:void 0,pj(`Covered`,t?.coveredSections),pj(`Remaining`,t?.remainingSections)].filter(Boolean);return n.length>0?n.join(` · `):null}function pj(e,t){if(!Array.isArray(t)||t.length===0)return;let n=t.map(String).filter(Boolean);if(n.length===0)return;let r=n.slice(0,3).join(`, `),i=n.length>3?` +${n.length-3}`:``;return`${e} (${n.length}): ${r}${i}`}var mj=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-patch-summary.tsx`;function hj({turn:e}){let t=lj(e);if(t.length===0)return null;let n=e.task?.result?.planRevisionTurn?.proposedPatch?.skippedDimensions??[];return(0,I.jsxDEV)(`details`,{className:`rounded-md border bg-background/50 p-2 text-xs`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer font-medium text-muted-foreground`,children:[`View changes (`,t.length,` `,t.length===1?`section`:`sections`,`)`]},void 0,!0,{fileName:mj,lineNumber:21,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[t.map(e=>(0,I.jsxDEV)(`section`,{className:`grid gap-1 rounded border bg-background p-2`,children:[(0,I.jsxDEV)(Tn,{variant:`outline`,className:`w-fit`,children:rj(e.dimension)},void 0,!1,{fileName:mj,lineNumber:27,columnNumber:13},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:mj,lineNumber:28,columnNumber:35},this),(0,I.jsxDEV)(zO,{markdown:e.content},void 0,!1,{fileName:mj,lineNumber:29,columnNumber:13},this)]},e.dimension,!0,{fileName:mj,lineNumber:26,columnNumber:11},this)),n.length>0&&(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:[`Skipped: `,n.map(e=>`${rj(e.dimension)} (${e.reason})`).join(`; `)]},void 0,!0,{fileName:mj,lineNumber:32,columnNumber:32},this)]},void 0,!0,{fileName:mj,lineNumber:24,columnNumber:7},this)]},void 0,!0,{fileName:mj,lineNumber:20,columnNumber:5},this)}var gj=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-thread.tsx`;function _j({turn:e,busy:t,onRedraft:n}){let r=e.task?.result?.clarificationQuestions??[],[i,a]=w.useState({}),[o,s]=w.useState(``);return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:e.task?.result?.rationale},void 0,!1,{fileName:gj,lineNumber:31,columnNumber:5},this),r.map((e,t)=>(0,I.jsxDEV)(`label`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium`,children:e.question},void 0,!1,{fileName:gj,lineNumber:32,columnNumber:117},this),e.why&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:e.why},void 0,!1,{fileName:gj,lineNumber:32,columnNumber:190},this),(0,I.jsxDEV)(YO,{value:i[t]??``,onChange:e=>a(n=>({...n,[t]:e.target.value}))},void 0,!1,{fileName:gj,lineNumber:32,columnNumber:252},this)]},`${e.question}-${t}`,!0,{fileName:gj,lineNumber:32,columnNumber:41},this)),(0,I.jsxDEV)(`label`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium`,children:`Optional steering`},void 0,!1,{fileName:gj,lineNumber:33,columnNumber:43},this),(0,I.jsxDEV)(YO,{value:o,onChange:e=>s(e.target.value)},void 0,!1,{fileName:gj,lineNumber:33,columnNumber:97},this)]},void 0,!0,{fileName:gj,lineNumber:33,columnNumber:5},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,disabled:t,onClick:()=>{n(e,r.map((e,t)=>({prompt:e.question,answer:i[t]??``})).filter(e=>e.answer.trim().length>0),o)},children:`Answer and redraft`},void 0,!1,{fileName:gj,lineNumber:34,columnNumber:10},this)},void 0,!1,{fileName:gj,lineNumber:34,columnNumber:5},this)]},void 0,!0,{fileName:gj,lineNumber:30,columnNumber:10},this)}function vj({turns:e,busy:t,onCancel:n,onRetry:r,onRedraft:i}){return e.length===0?(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`No revision turns yet. Ask a question or request a targeted plan change.`},void 0,!1,{fileName:gj,lineNumber:39,columnNumber:34},this):(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:aj(e).map(e=>{let a=e.task,o=sj(e),s=a?.result?.planRevisionTurn,c=fj(a),l=o===`queued`||o===`running`;return(0,I.jsxDEV)(`article`,{className:`grid gap-2 rounded-md border p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Tn,{variant:`outline`,children:dj(e)},void 0,!1,{fileName:gj,lineNumber:49,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:a?.taskId?IA(a.taskId):e.taskId},void 0,!1,{fileName:gj,lineNumber:50,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:FA(e.createdAt)??e.createdAt},void 0,!1,{fileName:gj,lineNumber:51,columnNumber:11},this),e.staleReason&&(0,I.jsxDEV)(`span`,{children:e.staleReason},void 0,!1,{fileName:gj,lineNumber:52,columnNumber:32},this)]},void 0,!0,{fileName:gj,lineNumber:48,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`rounded-md bg-secondary/40 p-2 text-sm`,children:[(0,I.jsxDEV)(`strong`,{children:`You:`},void 0,!1,{fileName:gj,lineNumber:54,columnNumber:65},this),` `,e.userMessage]},void 0,!0,{fileName:gj,lineNumber:54,columnNumber:9},this),l&&(0,I.jsxDEV)(`p`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:gj,lineNumber:55,columnNumber:90},this),c??`Working on this revision…`]},void 0,!0,{fileName:gj,lineNumber:55,columnNumber:21},this),!l&&c&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:c},void 0,!1,{fileName:gj,lineNumber:56,columnNumber:34},this),l&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t,onClick:()=>void n(e),children:[(0,I.jsxDEV)(de,{className:`h-4 w-4`},void 0,!1,{fileName:gj,lineNumber:57,columnNumber:114},this),` Cancel`]},void 0,!0,{fileName:gj,lineNumber:57,columnNumber:26},this)},void 0,!1,{fileName:gj,lineNumber:57,columnNumber:21},this),(o===`failed`||o===`cancelled`)&&(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:a?.errorMessage??`Revision turn did not complete.`},void 0,!1,{fileName:gj,lineNumber:58,columnNumber:85},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t,onClick:()=>void r(e),children:[(0,I.jsxDEV)(Me,{className:`h-4 w-4`},void 0,!1,{fileName:gj,lineNumber:58,columnNumber:289},this),` Retry with preserved context`]},void 0,!0,{fileName:gj,lineNumber:58,columnNumber:202},this)},void 0,!1,{fileName:gj,lineNumber:58,columnNumber:197},this)]},void 0,!0,{fileName:gj,lineNumber:58,columnNumber:57},this),o===`unavailable`&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`Revision task unavailable: `,e.staleReason??`missing linked task record`,`.`]},void 0,!0,{fileName:gj,lineNumber:59,columnNumber:36},this),o===`needs-input`&&(0,I.jsxDEV)(_j,{turn:e,busy:t,onRedraft:i},void 0,!1,{fileName:gj,lineNumber:60,columnNumber:36},this),s?.assistantMessage&&(0,I.jsxDEV)(`div`,{className:`rounded-md border bg-background/50 p-2 text-sm`,children:(0,I.jsxDEV)(zO,{markdown:s.assistantMessage},void 0,!1,{fileName:gj,lineNumber:61,columnNumber:104},this)},void 0,!1,{fileName:gj,lineNumber:61,columnNumber:40},this),(s?.citations?.length??0)>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1 text-xs`,children:s?.citations?.map((e,t)=>(0,I.jsxDEV)(Tn,{variant:`outline`,children:[e.label,e.excerpt?`: ${e.excerpt}`:``]},`${e.label}-${t}`,!0,{fileName:gj,lineNumber:62,columnNumber:145},this))},void 0,!1,{fileName:gj,lineNumber:62,columnNumber:52},this),o===`answer`&&lj(e).length===0&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Answer-only revision turn.`},void 0,!1,{fileName:gj,lineNumber:63,columnNumber:67},this),o===`patch`&&(0,I.jsxDEV)(hj,{turn:e},void 0,!1,{fileName:gj,lineNumber:64,columnNumber:30},this),(e.appliedSections?.length??0)>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[`Applied `,e.appliedAt?FA(e.appliedAt)??``:``,`:`]},void 0,!0,{fileName:gj,lineNumber:65,columnNumber:134},this),e.appliedSections?.map(e=>(0,I.jsxDEV)(Tn,{variant:`outline`,children:rj(e)},e,!1,{fileName:gj,lineNumber:65,columnNumber:262},this))]},void 0,!0,{fileName:gj,lineNumber:65,columnNumber:53},this)]},e.turnId,!0,{fileName:gj,lineNumber:47,columnNumber:14},this)})},void 0,!1,{fileName:gj,lineNumber:40,columnNumber:10},this)}var yj=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-panel.tsx`;function bj({plan:e,api:t,rail:n=!1,composer:r,hasAnnotations:i=!1}){let a=cj(t.revisionSession?.turns??[]),o=t.revisionSession?.turns??[],s=o.length>0||t.hasRunningTurn,c=(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:[a.running>0&&(0,I.jsxDEV)(Tn,{children:[a.running,` running`]},void 0,!0,{fileName:yj,lineNumber:32,columnNumber:28},this),a.patchReady>0&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[a.patchReady,` patch ready`]},void 0,!0,{fileName:yj,lineNumber:33,columnNumber:31},this),a.needsInput>0&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[a.needsInput,` needs input`]},void 0,!0,{fileName:yj,lineNumber:34,columnNumber:31},this),a.failed>0&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[a.failed,` failed`]},void 0,!0,{fileName:yj,lineNumber:35,columnNumber:27},this),a.appliedSections>0&&(0,I.jsxDEV)(Tn,{children:[a.appliedSections,` applied sections`]},void 0,!0,{fileName:yj,lineNumber:36,columnNumber:36},this)]},void 0,!0,{fileName:yj,lineNumber:31,columnNumber:19},this);return(0,I.jsxDEV)(ej,{storageKey:`eforge-plan.revision.${n?`rail.`:``}${e.session}`,defaultOpen:n&&(s||i),className:n?`bg-background/70`:void 0,title:`Revise with AI`,icon:(0,I.jsxDEV)(re,{className:`h-4 w-4`},void 0,!1,{fileName:yj,lineNumber:39,columnNumber:230},this),summary:c,actions:t.initialized?(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t.loading,onClick:()=>void t.reload({includePlan:!0}),children:[(0,I.jsxDEV)(Ae,{className:`h-4 w-4`},void 0,!1,{fileName:yj,lineNumber:39,columnNumber:418},this),` Refresh revision thread`]},void 0,!0,{fileName:yj,lineNumber:39,columnNumber:304},this):void 0,children:(0,I.jsxDEV)(`div`,{className:`grid gap-3 text-sm`,children:[!t.initialized&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t.loading,onClick:()=>void t.ensureSession(),children:`Start or resume revision session`},void 0,!1,{fileName:yj,lineNumber:41,columnNumber:35},this)},void 0,!1,{fileName:yj,lineNumber:41,columnNumber:30},this),r,r&&o.length>0&&(0,I.jsxDEV)(`hr`,{className:`border-border`},void 0,!1,{fileName:yj,lineNumber:43,columnNumber:42},this),(0,I.jsxDEV)(vj,{turns:o,busy:t.busy,onCancel:t.cancel,onRetry:t.retry,onRedraft:t.redraft},void 0,!1,{fileName:yj,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:yj,lineNumber:40,columnNumber:7},this)},void 0,!1,{fileName:yj,lineNumber:39,columnNumber:5},this)}var xj=6e3,Sj=1e3,Cj=4e3;function wj(e){return e.replace(/\s+/g,` `).trim()}function Tj(e,t){let n=e.trim();return n.length>t?n.slice(0,t).trimEnd():n}function Ej(e){return wj(e.innerText||e.textContent||``)}function Dj(e,t){return Tj(e?.trim()||t,200)}function Oj(e,t){let n=wj(e),r=Tj(wj(t),xj);if(!r)return{exact:r};let i=n.indexOf(r);if(i<0)return{exact:r};let a=Tj(n.slice(Math.max(0,i-Sj),i),Sj),o=Tj(n.slice(i+r.length,i+r.length+Sj),Sj);return{exact:r,...a&&{prefix:a},...o&&{suffix:o}}}function kj(e,t,n,r,i){let a=Tj(wj(r),xj);return a?{kind:e,...t&&{dimension:t},label:Dj(n,rj(t??e)),capturedText:a,quoteContext:Oj(i,a)}:null}function Aj(e,t,n,r){if(!e||e.isCollapsed||e.rangeCount===0)return null;let i=e.getRangeAt(0),a=i.commonAncestorContainer.nodeType===Node.ELEMENT_NODE?i.commonAncestorContainer:i.commonAncestorContainer.parentElement??i.commonAncestorContainer.parentNode,o=e.toString();return a&&t.contains(a)?kj(`selection`,n,r??`${rj(n)} selection`,o,Ej(t)):null}function jj(e,t,n,r){return!e||!t.contains(e)?null:kj(`block`,n,r??`${rj(n)} block`,e.innerText||e.textContent||``,Ej(t))}function Mj(e,t,n){return kj(`section`,e,t??rj(e),n,n)}function Nj(e){let t=[`# ${e.topic||e.session}`,`Session: ${e.session}`];for(let[n,r]of Object.entries(e.sections??{}))r.trim()&&t.push(`## ${rj(n)}`,r);return Tj(t.join(`
370
+ `+u),we&&(u=wt(u)),x&&Ne?E(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ut(e),De=!0,Oe=me,ke=ge},t.clearConfig=function(){st=null,De=!1,Oe=null,ke=null,x=C,S=``},t.isValidAttribute=function(e,t,n){st||ut({});let r=ot(e),i=ot(t);return Nt(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&AD(j,e)&&_D(j[e],t)},t.removeHook=function(e,t){if(AD(j,e)){if(t!==void 0){let n=hD(j[e],t);return n===-1?void 0:vD(j[e],n,1)[0]}return gD(j[e])}},t.removeHooks=function(e){AD(j,e)&&(j[e]=[])},t.removeAllHooks=function(){j=gO()},t}var yO=vO(),bO=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/mermaid-diagram.tsx`,xO={securityLevel:`strict`,startOnLoad:!1},SO=12e3,CO=0,wO=Promise.resolve();function TO(){return CO+=1,`eforge-mermaid-${CO}`}async function EO(){return(await _x(()=>import(`./assets/mermaid.core-7qPnBf_x.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]))).default}function DO(e){return yO.sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_TAGS:[`a`,`audio`,`embed`,`foreignObject`,`foreignobject`,`iframe`,`image`,`link`,`object`,`picture`,`script`,`source`,`style`,`video`],FORBID_CONTENTS:[`a`,`foreignObject`,`foreignobject`,`link`,`script`],FORBID_ATTR:[`href`,`poster`,`src`,`srcset`,`style`,`xlink:href`]})}function OO(e){return typeof e==`string`?e:e.svg}async function kO(e){let t=wO.then(e,e);return wO=t.then(()=>void 0,()=>void 0),t}function AO({source:e}){let t=w.useMemo(TO,[]),[n,r]=w.useState({kind:`loading`});return w.useEffect(()=>{let n=!1;async function i(){if(r({kind:`loading`}),e.length>SO){r({kind:`error`,message:`Mermaid source exceeds ${SO} characters.`});return}try{let i=await kO(async()=>{let n=await EO();return n.initialize(xO),await n.parse(e),DO(OO(await n.render(t,e)))});if(!i.includes(`<svg`))throw Error(`Mermaid did not return SVG output.`);n||r({kind:`rendered`,svg:i})}catch(e){n||r({kind:`error`,message:e instanceof Error?e.message:`Mermaid rendering failed.`})}}return i(),()=>{n=!0}},[t,e]),n.kind===`rendered`?(0,I.jsxDEV)(`figure`,{className:`plan-mermaid`,role:`img`,"aria-label":`Mermaid diagram`,children:(0,I.jsxDEV)(`div`,{className:`plan-mermaid-svg`,dangerouslySetInnerHTML:{__html:n.svg}},void 0,!1,{fileName:bO,lineNumber:120,columnNumber:9},this)},void 0,!1,{fileName:bO,lineNumber:119,columnNumber:7},this):n.kind===`error`?(0,I.jsxDEV)(`figure`,{className:`plan-mermaid plan-mermaid-error`,role:`group`,"aria-label":`Mermaid diagram failed to render`,children:[(0,I.jsxDEV)(`div`,{role:`alert`,children:[`Unable to render Mermaid diagram: `,n.message]},void 0,!0,{fileName:bO,lineNumber:132,columnNumber:9},this),(0,I.jsxDEV)(`pre`,{"aria-label":`Mermaid source fallback`,children:(0,I.jsxDEV)(`code`,{children:e},void 0,!1,{fileName:bO,lineNumber:133,columnNumber:51},this)},void 0,!1,{fileName:bO,lineNumber:133,columnNumber:9},this)]},void 0,!0,{fileName:bO,lineNumber:131,columnNumber:7},this):(0,I.jsxDEV)(`div`,{className:`plan-mermaid plan-mermaid-loading`,role:`status`,"aria-label":`Rendering Mermaid diagram`,children:`Rendering diagram…`},void 0,!1,{fileName:bO,lineNumber:138,columnNumber:10},this)}var jO=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/safe-markdown.tsx`,MO=`plan-mermaid-placeholder`,NO=[`img`,`picture`,`source`,`video`,`audio`,`object`,`embed`,`svg`,`style`,`link`],PO=[`poster`,`src`,`srcset`,`style`];function FO(e){return(e??``).trim().split(/\s+/)[0]?.toLowerCase()===`mermaid`}function IO(e){let t=e.replace(/<table>/g,`<div class="plan-table-scroll"><table>`).replace(/<\/table>/g,`</table></div>`);return yO.sanitize(t,{ADD_ATTR:[`data-mermaid-index`],FORBID_TAGS:NO,FORBID_ATTR:PO})}function LO(e){let t=[];return{html:IO(new JE({gfm:!0,renderer:{code(e){return FO(e.lang)?`<div class="${MO}" data-mermaid-index="${t.push(e.text)-1}"></div>`:!1}}}).parse(e,{async:!1})),mermaidBlocks:t}}function RO(e,t){let n=[];return e.querySelectorAll(`.${MO}[data-mermaid-index]`).forEach(e=>{let r=Number(e.dataset.mermaidIndex),i=Number.isInteger(r)?t[r]:void 0;if(i===void 0)return;let a=(0,He.createRoot)(e);a.render((0,I.jsxDEV)(AO,{source:i},void 0,!1,{fileName:jO,lineNumber:64,columnNumber:17},this)),n.push(a)}),n}function zO({markdown:e,className:t}){let n=w.useRef(null),r=w.useMemo(()=>LO(e),[e]),i=w.useMemo(()=>({__html:r.html}),[r]);return w.useEffect(()=>{let e=n.current;if(!e||r.mermaidBlocks.length===0)return;let t=RO(e,r.mermaidBlocks);return()=>{t.forEach(e=>e.unmount())}},[r]),(0,I.jsxDEV)(`div`,{ref:n,className:`plan-prose${t?` ${t}`:``}`,dangerouslySetInnerHTML:i},void 0,!1,{fileName:jO,lineNumber:102,columnNumber:5},this)}var BO=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/card.tsx`,VO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`rounded-lg border bg-card text-card-foreground shadow-sm`,e),...t},void 0,!1,{fileName:BO,lineNumber:5,columnNumber:3},void 0));VO.displayName=`Card`;var HO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`flex flex-col space-y-1.5 p-4`,e),...t},void 0,!1,{fileName:BO,lineNumber:10,columnNumber:3},void 0));HO.displayName=`CardHeader`;var UO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`font-semibold leading-none tracking-tight`,e),...t},void 0,!1,{fileName:BO,lineNumber:15,columnNumber:3},void 0));UO.displayName=`CardTitle`;var WO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`text-sm text-muted-foreground`,e),...t},void 0,!1,{fileName:BO,lineNumber:20,columnNumber:3},void 0));WO.displayName=`CardDescription`;var GO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`div`,{ref:n,className:xn(`p-4 pt-0`,e),...t},void 0,!1,{fileName:BO,lineNumber:25,columnNumber:3},void 0));GO.displayName=`CardContent`;var KO=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/rail-card.tsx`;function qO({icon:e,iconClassName:t,title:n,action:r,className:i,contentClassName:a,headerExtra:o,children:s,...c}){return(0,I.jsxDEV)(VO,{className:xn(`min-w-0`,i),"aria-label":c[`aria-label`],children:[(0,I.jsxDEV)(HO,{className:`pb-2`,children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2 text-sm`,children:[e&&(0,I.jsxDEV)(e,{className:xn(`h-4 w-4 text-muted-foreground`,t)},void 0,!1,{fileName:KO,lineNumber:30,columnNumber:20},this),n,r]},void 0,!0,{fileName:KO,lineNumber:29,columnNumber:9},this),o]},void 0,!0,{fileName:KO,lineNumber:28,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:xn(`min-w-0 [&_*]:min-w-0`,a),children:s},void 0,!1,{fileName:KO,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:KO,lineNumber:27,columnNumber:5},this)}var JO=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/textarea.tsx`,YO=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`textarea`,{className:xn(`flex min-h-24 w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),ref:n,...t},void 0,!1,{fileName:JO,lineNumber:5,columnNumber:3},void 0));YO.displayName=`Textarea`;var XO={neutral:`border-border text-muted-foreground`,info:`border-[color:var(--lane-ready)]/40 bg-[color:var(--lane-ready)]/10 text-[color:var(--lane-ready)]`,progress:`border-[color:var(--lane-progress)]/40 bg-[color:var(--lane-progress)]/10 text-[color:var(--lane-progress)]`,done:`border-[color:var(--lane-done)]/40 bg-[color:var(--lane-done)]/10 text-[color:var(--lane-done)]`,warn:`border-[color:var(--prio-medium)]/40 bg-[color:var(--prio-medium)]/10 text-[color:var(--prio-medium)]`,danger:`border-[color:var(--lane-blocked)]/40 bg-[color:var(--lane-blocked)]/10 text-[color:var(--lane-blocked)]`,destructive:`border-destructive/40 bg-destructive/10 text-destructive-foreground`,accent:`border-primary/40 bg-primary/10 text-text-bright`};function ZO(e){return XO[e]}function QO(e){switch(e){case`running`:return`progress`;case`queued`:return`warn`;case`completed`:return`done`;case`failed`:return`danger`;case`cancelled`:return`neutral`;default:return`neutral`}}function $O(e){return e===`fresh`?`info`:`warn`}function ek(e){switch(e){case`Plan`:return`accent`;case`Queue`:return`info`;case`Run`:return`progress`;case`PR open`:case`Partial`:return`warn`;case`Merged`:return`done`;case`Failed`:return`danger`;default:return`neutral`}}var tk=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/tone-chip.tsx`;function nk({tone:e,className:t,...n}){return(0,I.jsxDEV)(`span`,{className:xn(`inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-2xs font-semibold`,ZO(e),t),...n},void 0,!1,{fileName:tk,lineNumber:17,columnNumber:5},this)}var rk=new TextEncoder;function ik(e){return rk.encode(e).length}function ak(e,t=!1){let n=ik(e.draft),r=e.draft!==e.saved,i=n>e.maxBytes;return{bytes:n,maxBytes:e.maxBytes,dirty:r,overLimit:i,canSave:r&&!i&&!t}}function ok(e){return e?{local:+!!e.context.localSteering,configuredShared:e.context.sharedContextSources.filter(e=>e.configured).length,discovered:e.context.discoveredContextSources.length,conflicts:e.context.conflicts.length,assumptions:e.context.assumptions.length}:{local:0,configuredShared:0,discovered:0,conflicts:0,assumptions:0}}function sk(e){switch(e){case`local-focus`:return`Local focus`;case`configured-shared`:return`Configured shared context`;case`discovered-conventional`:return`Discovered context`}}function ck(e){return e.readError?`read error`:e.exists?e.sha256?`available`:`empty`:`missing`}function lk(e){return e?[{key:`local-focus`,title:sk(`local-focus`),sources:[e.context.localSteering]},{key:`configured-shared`,title:sk(`configured-shared`),sources:e.context.sharedContextSources},{key:`discovered-conventional`,title:sk(`discovered-conventional`),sources:e.context.discoveredContextSources}].filter(e=>e.sources.length>0):[]}function uk(e){return e?.status===`queued`||e?.status===`running`}function dk(e){return e.dirty?`Save the local focus roadmap before refreshing recommendations.`:e.saving?`Wait for the local focus roadmap save to finish.`:e.refreshing?`Recommendation refresh is starting.`:uk(e.activeTask)?`A recommendation refresh task is already queued or running.`:(e.freshness?.state??e.status?.state,null)}function fk(e){return`${e.toLocaleString()} bytes`}function pk(e){return e.label?.trim()||e.id?.trim()||e.path||sk(e.kind)}var q=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/roadmap/roadmap-panel.tsx`,mk=4e4;function hk({state:e,recommendationStatus:t,recommendationFreshness:n,activeRecommendationRefreshTask:r,onSaveLocalFocus:i,onRefreshRecommendations:a}){let o=$n(),[s,c]=w.useState(``),[l,u]=w.useState(!1),[d,f]=w.useState(!1),[p,m]=w.useState(!1),[h,g]=w.useState(!1),_=e?.context.localSteering.content??``,v=e?.context.localSteering.editable===!0,y=e?.context.localSteering.maxContentBytes??mk,b=e?.context.localSteering.contentTruncated===!0,x=ak({draft:s,saved:_,maxBytes:y},p),S=dk({dirty:x.dirty,saving:p,refreshing:h,activeTask:r,status:t,freshness:n}),C=uk(r);w.useEffect(()=>{l||c(_)},[l,_]),w.useEffect(()=>{v||(u(!1),f(!1),c(_))},[v,_]);async function T(){if(!(!e||!v||!x.canSave||b)){m(!0);try{await i({localFocusContent:s,...e.context.localSteering.sha256?{expectedLocalFocusSha256:e.context.localSteering.sha256}:{}}),u(!1),f(!1),o.push(`Saved local focus roadmap.`,`success`)}catch(e){o.push(e instanceof Error?e.message:String(e),`error`)}finally{m(!1)}}}function ee(){if(x.dirty&&!d){f(!0);return}c(_),u(!1),f(!1)}async function E(){if(!S){g(!0);try{let e=await a();o.push(`${e.reused?`Reusing`:`Started`} recommendation refresh ${e.task.taskId}.`,`success`)}catch(e){o.push(e instanceof Error?e.message:String(e),`error`)}finally{g(!1)}}}return e?(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(_e,{className:`h-4 w-4 text-primary`},void 0,!1,{fileName:q,lineNumber:105,columnNumber:58},this),` Local focus roadmap`]},void 0,!0,{fileName:q,lineNumber:105,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:[`Private editable steering doc at `,(0,I.jsxDEV)(`code`,{children:e.storagePaths.localFocus},void 0,!1,{fileName:q,lineNumber:106,columnNumber:61},this),`. The recommendation engine reads this to rank your backlog.`]},void 0,!0,{fileName:q,lineNumber:106,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:104,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex shrink-0 flex-col items-end gap-1 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:x.overLimit?`text-destructive-foreground`:`text-muted-foreground`,children:[fk(x.bytes),` / `,fk(x.maxBytes)]},void 0,!0,{fileName:q,lineNumber:109,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap justify-end gap-1`,children:[n?.state&&(0,I.jsxDEV)(xk,{tone:n.state===`fresh`?`good`:`warn`,children:[`recommendations `,n.state]},void 0,!0,{fileName:q,lineNumber:111,columnNumber:48},this),b&&(0,I.jsxDEV)(xk,{tone:`warn`,children:`truncated`},void 0,!1,{fileName:q,lineNumber:112,columnNumber:39},this)]},void 0,!0,{fileName:q,lineNumber:110,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:108,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:103,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3`,children:[l&&v?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(YO,{"aria-label":`Local focus roadmap`,value:s,onChange:e=>{c(e.target.value),f(!1)},className:`min-h-[24rem] font-mono text-xs`},void 0,!1,{fileName:q,lineNumber:119,columnNumber:13},this),x.overLimit&&(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:`Local focus exceeds the configured byte limit. Shorten it before saving.`},void 0,!1,{fileName:q,lineNumber:120,columnNumber:32},this),b&&(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:`Local focus content was truncated by the backend. Saving is disabled to avoid overwriting unsent content.`},void 0,!1,{fileName:q,lineNumber:121,columnNumber:39},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:!x.canSave||b,onClick:()=>void T(),children:[(0,I.jsxDEV)(Ne,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:123,columnNumber:111},this),` Save local focus`]},void 0,!0,{fileName:q,lineNumber:123,columnNumber:15},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:!x.dirty||p,onClick:()=>{c(_),f(!1)},children:[(0,I.jsxDEV)(Be,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:124,columnNumber:146},this),` Reset`]},void 0,!0,{fileName:q,lineNumber:124,columnNumber:15},this),(0,I.jsxDEV)(L,{size:`sm`,variant:d?`destructive`:`outline`,disabled:p,onClick:ee,children:d?`Discard edits`:`Cancel`},void 0,!1,{fileName:q,lineNumber:125,columnNumber:15},this),d&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:`Click Discard edits to leave edit mode without saving.`},void 0,!1,{fileName:q,lineNumber:126,columnNumber:33},this)]},void 0,!0,{fileName:q,lineNumber:122,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:118,columnNumber:11},this):(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-background/40 p-3`,children:_.trim()?(0,I.jsxDEV)(zO,{markdown:_},void 0,!1,{fileName:q,lineNumber:132,columnNumber:31},this):(0,I.jsxDEV)(`p`,{className:`text-sm text-muted-foreground`,children:`Local focus roadmap is empty.`},void 0,!1,{fileName:q,lineNumber:132,columnNumber:67},this)},void 0,!1,{fileName:q,lineNumber:131,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[`Source: `,(0,I.jsxDEV)(`code`,{children:e.storagePaths.localFocus},void 0,!1,{fileName:q,lineNumber:135,columnNumber:29},this)]},void 0,!0,{fileName:q,lineNumber:135,columnNumber:15},this),n?.reason&&(0,I.jsxDEV)(`span`,{children:n.reason},void 0,!1,{fileName:q,lineNumber:136,columnNumber:51},this)]},void 0,!0,{fileName:q,lineNumber:134,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:130,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[!l&&v&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,onClick:()=>{c(_),u(!0)},children:[(0,I.jsxDEV)(Oe,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:141,columnNumber:127},this),` Edit`]},void 0,!0,{fileName:q,lineNumber:141,columnNumber:36},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:!!S,title:S??`Refresh recommendations from saved roadmap state.`,onClick:()=>void E(),children:[h||C?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:q,lineNumber:143,columnNumber:45},this):(0,I.jsxDEV)(Ae,{className:`h-4 w-4`},void 0,!1,{fileName:q,lineNumber:143,columnNumber:59},this),` Refresh recommendations from roadmap`]},void 0,!0,{fileName:q,lineNumber:142,columnNumber:11},this),S&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:S},void 0,!1,{fileName:q,lineNumber:145,columnNumber:30},this)]},void 0,!0,{fileName:q,lineNumber:140,columnNumber:9},this),C&&r&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[r.metadata?.progressMessage??`Refreshing recommendations…`,` `,(0,I.jsxDEV)(`span`,{title:r.taskId,children:[`(`,r.taskId,`)`]},void 0,!0,{fileName:q,lineNumber:147,columnNumber:201},this)]},void 0,!0,{fileName:q,lineNumber:147,columnNumber:63},this)]},void 0,!0,{fileName:q,lineNumber:116,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:102,columnNumber:5},this):(0,I.jsxDEV)(VO,{children:(0,I.jsxDEV)(GO,{className:`py-10 text-center text-sm text-muted-foreground`,children:`Roadmap state has not loaded yet.`},void 0,!1,{fileName:q,lineNumber:98,columnNumber:18},this)},void 0,!1,{fileName:q,lineNumber:98,columnNumber:12},this)}function gk({state:e,loading:t,recommendationStatus:n,recommendationFreshness:r,activeRecommendationRefreshTask:i,onReloadRoadmap:a}){let o=ok(e),s=r?.state??n?.state,c=uk(i);return(0,I.jsxDEV)(qO,{icon:_e,iconClassName:`text-primary`,title:`Roadmap sources`,action:(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,className:`ml-auto`,disabled:t,onClick:()=>void a(),children:[t?(0,I.jsxDEV)(Jn,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:q,lineNumber:180,columnNumber:22},this):(0,I.jsxDEV)(Ae,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:q,lineNumber:180,columnNumber:60},this),` Reload`]},void 0,!0,{fileName:q,lineNumber:179,columnNumber:9},this),headerExtra:(0,I.jsxDEV)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:[(0,I.jsxDEV)(xk,{children:[o.local,` local`]},void 0,!0,{fileName:q,lineNumber:185,columnNumber:11},this),(0,I.jsxDEV)(xk,{children:[o.configuredShared,` configured shared`]},void 0,!0,{fileName:q,lineNumber:186,columnNumber:11},this),(0,I.jsxDEV)(xk,{children:[o.discovered,` discovered`]},void 0,!0,{fileName:q,lineNumber:187,columnNumber:11},this),o.conflicts>0&&(0,I.jsxDEV)(xk,{tone:`warn`,children:[o.conflicts,` conflicts`]},void 0,!0,{fileName:q,lineNumber:188,columnNumber:37},this),s&&(0,I.jsxDEV)(xk,{tone:s===`fresh`?`good`:`warn`,children:[`recommendations `,s]},void 0,!0,{fileName:q,lineNumber:189,columnNumber:35},this),c&&(0,I.jsxDEV)(xk,{tone:`good`,children:[(0,I.jsxDEV)(Jn,{className:`h-3 w-3`},void 0,!1,{fileName:q,lineNumber:190,columnNumber:48},this),` refreshing`]},void 0,!0,{fileName:q,lineNumber:190,columnNumber:30},this)]},void 0,!0,{fileName:q,lineNumber:184,columnNumber:9},this),contentClassName:`grid gap-3`,children:e?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`section`,{className:`grid gap-3`,children:lk(e).map(e=>(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`h4`,{className:`mb-1.5 text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e.title},void 0,!1,{fileName:q,lineNumber:200,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:e.sources.map(e=>(0,I.jsxDEV)(_k,{source:e},`${e.kind}:${e.path}:${e.id??``}`,!1,{fileName:q,lineNumber:202,columnNumber:52},this))},void 0,!1,{fileName:q,lineNumber:201,columnNumber:19},this)]},e.key,!0,{fileName:q,lineNumber:199,columnNumber:17},this))},void 0,!1,{fileName:q,lineNumber:197,columnNumber:13},this),(e.context.assumptions.length>0||e.context.conflicts.length>0||e.context.truncation.sourceContent>0||e.context.truncation.sourceExcerpts>0)&&(0,I.jsxDEV)(`section`,{className:`grid gap-3 border-t border-border pt-3 text-xs`,children:[e.context.assumptions.length>0&&(0,I.jsxDEV)(yk,{title:`Assumptions`,items:e.context.assumptions},void 0,!1,{fileName:q,lineNumber:210,columnNumber:58},this),e.context.conflicts.length>0&&(0,I.jsxDEV)(yk,{title:`Conflicts`,items:e.context.conflicts.map(e=>`${e.message}${e.path?` (${e.path})`:``}`),tone:`warn`},void 0,!1,{fileName:q,lineNumber:211,columnNumber:56},this),(e.context.truncation.sourceContent>0||e.context.truncation.sourceExcerpts>0)&&(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:[`Truncation: `,e.context.truncation.sourceContent,` source content fields and `,e.context.truncation.sourceExcerpts,` source excerpts were truncated.`]},void 0,!0,{fileName:q,lineNumber:213,columnNumber:19},this)]},void 0,!0,{fileName:q,lineNumber:209,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:196,columnNumber:11},this):(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Roadmap state has not loaded yet.`},void 0,!1,{fileName:q,lineNumber:195,columnNumber:19},this)},void 0,!1,{fileName:q,lineNumber:174,columnNumber:5},this)}function _k({source:e}){return(0,I.jsxDEV)(`article`,{className:`rounded border border-border bg-background/40 p-2 text-2xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`font-semibold text-text-bright`,children:pk(e)},void 0,!1,{fileName:q,lineNumber:227,columnNumber:9},this),(0,I.jsxDEV)(xk,{tone:e.exists&&!e.readError?`good`:`warn`,children:ck(e)},void 0,!1,{fileName:q,lineNumber:228,columnNumber:9},this),(0,I.jsxDEV)(xk,{children:e.editable?`editable`:`read-only`},void 0,!1,{fileName:q,lineNumber:229,columnNumber:9},this),(0,I.jsxDEV)(xk,{children:e.configured?`configured`:`discovered`},void 0,!1,{fileName:q,lineNumber:230,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:226,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`mt-1 break-all text-muted-foreground`,children:e.path},void 0,!1,{fileName:q,lineNumber:232,columnNumber:7},this),(0,I.jsxDEV)(`dl`,{className:`mt-1 grid gap-1 text-muted-foreground`,children:[(0,I.jsxDEV)(vk,{label:`kind`,value:sk(e.kind)},void 0,!1,{fileName:q,lineNumber:234,columnNumber:9},this),(0,I.jsxDEV)(vk,{label:`role`,value:e.role},void 0,!1,{fileName:q,lineNumber:235,columnNumber:9},this),(0,I.jsxDEV)(vk,{label:`updated`,value:e.updatedAt},void 0,!1,{fileName:q,lineNumber:236,columnNumber:9},this),(0,I.jsxDEV)(vk,{label:`error`,value:e.readError},void 0,!1,{fileName:q,lineNumber:237,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:233,columnNumber:7},this),e.headings.length>0&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:[`Headings: `,e.headings.join(` · `)]},void 0,!0,{fileName:q,lineNumber:239,columnNumber:38},this),e.content?.trim()?(0,I.jsxDEV)(`div`,{className:`mt-2 rounded border border-border bg-card/50 p-2 text-xs`,children:(0,I.jsxDEV)(zO,{markdown:e.content},void 0,!1,{fileName:q,lineNumber:242,columnNumber:11},this)},void 0,!1,{fileName:q,lineNumber:241,columnNumber:9},this):e.excerpts.length>0?(0,I.jsxDEV)(`ul`,{className:`mt-1 list-disc pl-4 text-muted-foreground`,children:e.excerpts.map((e,t)=>(0,I.jsxDEV)(`li`,{children:e},t,!1,{fileName:q,lineNumber:244,columnNumber:139},this))},void 0,!1,{fileName:q,lineNumber:244,columnNumber:40},this):null]},void 0,!0,{fileName:q,lineNumber:225,columnNumber:5},this)}function vk({label:e,value:t}){return t?(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`dt`,{className:`inline font-medium text-foreground`,children:[e,`: `]},void 0,!0,{fileName:q,lineNumber:251,columnNumber:15},this),(0,I.jsxDEV)(`dd`,{className:`inline break-all`,children:t},void 0,!1,{fileName:q,lineNumber:251,columnNumber:80},this)]},void 0,!0,{fileName:q,lineNumber:251,columnNumber:10},this):null}function yk({title:e,items:t,tone:n}){return(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`h4`,{className:`mb-1 text-2xs font-semibold uppercase tracking-wide ${n===`warn`?`text-[color:var(--prio-medium)]`:`text-muted-foreground`}`,children:e},void 0,!1,{fileName:q,lineNumber:255,columnNumber:15},this),(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-muted-foreground`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:q,lineNumber:255,columnNumber:252},this))},void 0,!1,{fileName:q,lineNumber:255,columnNumber:178},this)]},void 0,!0,{fileName:q,lineNumber:255,columnNumber:10},this)}var bk={default:`neutral`,good:`info`,warn:`warn`};function xk({children:e,tone:t=`default`}){return(0,I.jsxDEV)(nk,{tone:bk[t]??`neutral`,className:`font-normal`,children:e},void 0,!1,{fileName:q,lineNumber:261,columnNumber:10},this)}var Sk=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/empty-state.tsx`;function Ck({className:e,children:t}){return(0,I.jsxDEV)(`p`,{className:xn(`rounded-md border border-dashed p-3 text-sm text-muted-foreground`,e),children:t},void 0,!1,{fileName:Sk,lineNumber:10,columnNumber:10},this)}var wk=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/input.tsx`,Tk=w.forwardRef(({className:e,type:t,...n},r)=>(0,I.jsxDEV)(`input`,{type:t,className:xn(`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),ref:r,...n},void 0,!1,{fileName:wk,lineNumber:5,columnNumber:3},void 0));Tk.displayName=`Input`;var Ek={"queued-build":{label:`Queued build`,tone:`info`},"running-build":{label:`Running build`,tone:`info`},"open-pr":{label:`Open PR`,tone:`warn`},"merged-result":{label:`Merged result`,tone:`done`},"shipped-result":{label:`Shipped result`,tone:`done`},"failed-result":{label:`Failed result`,tone:`danger`},"partial-plan":{label:`Partial plan`,tone:`warn`},"planned-session-plan":{label:`Planned session plan`,tone:`neutral`},"submitted-session-plan":{label:`Submitted session plan`,tone:`info`},"active-planning-task":{label:`Active planning task`,tone:`info`},"queued-trace":{label:`Queued build`,tone:`info`},"building-trace":{label:`Running build`,tone:`info`},"active-build-session-trace":{label:`Running build session`,tone:`info`},"open-pr-trace":{label:`Open PR`,tone:`warn`}},Dk={none:{label:`No lifecycle evidence`,tone:`neutral`},planned:{label:`Planned`,tone:`neutral`},active:{label:`Active`,tone:`info`},queue:{label:`Queued`,tone:`info`},build:{label:`Building`,tone:`info`},"pr-open":{label:`PR open`,tone:`warn`},merged:{label:`Merged`,tone:`done`},shipped:{label:`Shipped`,tone:`done`},failed:{label:`Failed`,tone:`danger`},partial:{label:`Partial`,tone:`warn`}};function Ok(e){return e?Ek[e]??{label:Nk(e),tone:`neutral`}:{label:`Lifecycle evidence`,tone:`neutral`}}function kk(e){return e?Dk[e]??{label:Nk(e),tone:`neutral`}:null}function Ak(e){if(e===void 0||!Number.isFinite(e))return`unknown size`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024,r=t[0];for(let e=1;n>=1024&&e<t.length;e+=1)n/=1024,r=t[e];return`${n>=10?n.toFixed(0):n.toFixed(1)} ${r}`}function jk(e,t,n=`${t}s`){let r=e??0;return`${r} ${r===1?t:n}`}function Mk(e,t){return t?{label:`status unavailable`,tone:`danger`}:e?e.initialized?e.searchIndexStatus?.dirty?{label:`dirty index`,tone:`warn`}:{label:`ready`,tone:`done`}:{label:`not initialized`,tone:`warn`}:{label:`loading`,tone:`neutral`}}function Nk(e){return e.replace(/[-_]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}var Pk=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/lifecycle-panel.tsx`,Fk=[`Failed`,`Partial`,`PR open`,`Merged`,`Run`,`Queue`,`PR`,`Plan`],Ik=new Set([`Failed`,`Partial`,`PR open`,`Run`]);function Lk(e){if((e.lifecycleLinks??[]).length===0&&!e.lifecycleState&&!e.effectiveLifecycle)return null;let t=new Set(zk(e)),n=Fk.find(e=>t.has(e))??[...t][0];return!n||n===`Plan`?null:{label:n,tone:Ik.has(n)?ek(n):`neutral`}}function Rk({item:e}){let t=[...e.lifecycleLinks??[],...e.associatedLinks??[]];if(t.length===0&&!e.lifecycleState&&!e.effectiveLifecycle&&!e.userStatus&&(e.reasonCodes??[]).length===0)return null;let n=zk(e),r=kk(e.effectiveLifecycle??e.lifecycleState);return(0,I.jsxDEV)(`div`,{className:`mt-2`,onClick:e=>e.stopPropagation(),children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,"aria-label":`Lifecycle chips`,children:[e.userStatus&&(0,I.jsxDEV)(nk,{tone:`neutral`,children:[`Authored status: `,e.userStatus]},void 0,!0,{fileName:Pk,lineNumber:37,columnNumber:29},this),r&&(0,I.jsxDEV)(nk,{tone:r.tone,children:[`Effective lifecycle: `,r.label]},void 0,!0,{fileName:Pk,lineNumber:38,columnNumber:23},this),n.map(e=>(0,I.jsxDEV)(Bk,{label:e},e,!1,{fileName:Pk,lineNumber:39,columnNumber:30},this)),(e.reasonCodes??[]).map(e=>{let t=Ok(e);return(0,I.jsxDEV)(nk,{tone:t.tone,children:t.label},e,!1,{fileName:Pk,lineNumber:40,columnNumber:99},this)})]},void 0,!0,{fileName:Pk,lineNumber:36,columnNumber:7},this),t.length>0&&(0,I.jsxDEV)(`details`,{className:`mt-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:`Lifecycle evidence`},void 0,!1,{fileName:Pk,lineNumber:44,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-1.5`,children:t.map((e,t)=>(0,I.jsxDEV)(Vk,{row:e},`${e.kind}-${e.stage??``}-${t}`,!1,{fileName:Pk,lineNumber:46,columnNumber:39},this))},void 0,!1,{fileName:Pk,lineNumber:45,columnNumber:11},this)]},void 0,!0,{fileName:Pk,lineNumber:43,columnNumber:9},this)]},void 0,!0,{fileName:Pk,lineNumber:35,columnNumber:5},this)}function zk(e){let t=new Set;for(let n of e.lifecycleLinks??[]){let e=(n.stage??n.status??``).toLowerCase();n.kind===`session-plan`&&t.add(`Plan`),n.kind===`queue-prd`&&t.add(`Queue`),(n.kind===`build-run`||n.kind===`build-session`)&&t.add(`Run`),n.kind===`pr`&&t.add(e.includes(`open`)?`PR open`:`PR`),n.kind===`landing`&&(e.includes(`landed`)||e.includes(`merge`))&&t.add(`Merged`),e.includes(`fail`)&&t.add(`Failed`)}let n=(e.effectiveLifecycle??e.lifecycleState??``).toLowerCase();return n===`partial`&&t.add(`Partial`),n===`failed`&&t.add(`Failed`),(n===`merged`||n===`shipped`||n===`landed`)&&t.add(`Merged`),t.size>0?[...t]:[`Plan`]}function Bk({label:e}){return(0,I.jsxDEV)(nk,{tone:ek(e),children:e},void 0,!1,{fileName:Pk,lineNumber:73,columnNumber:10},this)}function Vk({row:e}){let t=e.timestamp??e.completedAt??e.landedAt??e.startedAt??e.queuedAt??e.promotedAt,n=e.featureBranch??e.branch;return(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-background/50 p-2 text-2xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,I.jsxDEV)(`span`,{className:`rounded bg-secondary px-1.5 py-0.5 font-semibold uppercase tracking-wide text-muted-foreground`,children:Hk(e.kind)},void 0,!1,{fileName:Pk,lineNumber:82,columnNumber:9},this),e.stage&&(0,I.jsxDEV)(`span`,{className:`text-text-bright`,children:e.stage},void 0,!1,{fileName:Pk,lineNumber:83,columnNumber:23},this),e.status&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:e.status},void 0,!1,{fileName:Pk,lineNumber:84,columnNumber:24},this)]},void 0,!0,{fileName:Pk,lineNumber:81,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap gap-x-3 gap-y-1 text-muted-foreground`,children:[e.session&&(0,I.jsxDEV)(Uk,{label:`session`,value:e.session},void 0,!1,{fileName:Pk,lineNumber:87,columnNumber:25},this),e.prdId&&(0,I.jsxDEV)(Uk,{label:`prd`,value:e.prdId},void 0,!1,{fileName:Pk,lineNumber:88,columnNumber:23},this),e.runId&&(0,I.jsxDEV)(Uk,{label:`run`,value:e.runId},void 0,!1,{fileName:Pk,lineNumber:89,columnNumber:23},this),e.sessionId&&(0,I.jsxDEV)(Uk,{label:`build session`,value:e.sessionId},void 0,!1,{fileName:Pk,lineNumber:90,columnNumber:27},this),e.buildSessionId&&(0,I.jsxDEV)(Uk,{label:`build session`,value:e.buildSessionId},void 0,!1,{fileName:Pk,lineNumber:91,columnNumber:32},this),n&&(0,I.jsxDEV)(Uk,{label:`branch`,value:n},void 0,!1,{fileName:Pk,lineNumber:92,columnNumber:20},this),e.commitSha&&(0,I.jsxDEV)(Uk,{label:`commit`,value:e.commitSha},void 0,!1,{fileName:Pk,lineNumber:93,columnNumber:27},this),t&&(0,I.jsxDEV)(Uk,{label:`time`,value:t},void 0,!1,{fileName:Pk,lineNumber:94,columnNumber:23},this)]},void 0,!0,{fileName:Pk,lineNumber:86,columnNumber:7},this),e.prUrl&&(0,I.jsxDEV)(`a`,{className:`mt-1 block break-all text-[color:var(--lane-ready)] underline`,href:e.prUrl,target:`_blank`,rel:`noreferrer`,children:e.prUrl},void 0,!1,{fileName:Pk,lineNumber:96,columnNumber:21},this),e.affectedItemIds&&e.affectedItemIds.length>0&&(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap gap-1 text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:`affected`},void 0,!1,{fileName:Pk,lineNumber:99,columnNumber:11},this),e.affectedItemIds.map(e=>(0,I.jsxDEV)(`code`,{className:`rounded border px-1`,children:Xw(e)},e,!1,{fileName:Pk,lineNumber:100,columnNumber:44},this))]},void 0,!0,{fileName:Pk,lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:Pk,lineNumber:80,columnNumber:5},this)}function Hk(e){return e===`queue-prd`?`queue evidence`:e===`build-run`||e===`build-session`?`build evidence`:e===`session-plan`?`session evidence`:e===`pr`?`PR evidence`:e===`landing`?`landing evidence`:e}function Uk({label:e,value:t}){return(0,I.jsxDEV)(`span`,{children:[(0,I.jsxDEV)(`span`,{className:`uppercase tracking-wide`,children:[e,`:`]},void 0,!0,{fileName:Pk,lineNumber:117,columnNumber:16},this),` `,(0,I.jsxDEV)(`code`,{children:t},void 0,!1,{fileName:Pk,lineNumber:117,columnNumber:74},this)]},void 0,!0,{fileName:Pk,lineNumber:117,columnNumber:10},this)}var Wk=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/item-card.tsx`,Gk={high:`var(--prio-high)`,medium:`var(--prio-medium)`,low:`var(--prio-low)`},Kk=3,qk={dependency:`ring-2 ring-[color:var(--prio-medium)]/70`,dependent:`ring-2 ring-[color:var(--lane-ready)]/70`};function Jk({item:e,selected:t,relation:n=null,plannedIn:r,onOpenPlan:i,onToggle:a,onOpenDetail:o,onHoverChange:s}){let c=Gk[e.priority]??`var(--prio-low)`,l=Lk(e),u=t?`ring-2 ring-primary`:n?qk[n]:``,d=t||n?``:e.closed?`opacity-60`:``;return(0,I.jsxDEV)(`div`,{id:`board-item-${e.id}`,role:`button`,tabIndex:0,onClick:()=>a(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),a(e))},onMouseEnter:()=>s?.(e.id),onMouseLeave:()=>s?.(null),className:`group cursor-pointer rounded-md border border-border/70 bg-card p-3 transition-colors hover:border-muted-foreground/40 ${u} ${d}`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`mt-1.5 h-2 w-2 shrink-0 rounded-full`,style:{background:c},title:`${e.priority} priority`},void 0,!1,{fileName:Wk,lineNumber:61,columnNumber:9},this),(0,I.jsxDEV)(`h4`,{className:`min-w-0 flex-1 text-sm font-medium leading-snug text-text-bright`,children:e.title},void 0,!1,{fileName:Wk,lineNumber:62,columnNumber:9},this),(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":`Open details for ${e.title}`,title:`Open details`,className:`-mr-1 -mt-1 shrink-0 rounded p-1 text-muted-foreground/50 transition-colors hover:bg-secondary hover:text-foreground group-hover:text-muted-foreground`,onClick:t=>{t.stopPropagation(),o(e)},children:(0,I.jsxDEV)(Ee,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Wk,lineNumber:70,columnNumber:11},this)},void 0,!1,{fileName:Wk,lineNumber:63,columnNumber:9},this)]},void 0,!0,{fileName:Wk,lineNumber:60,columnNumber:7},this),(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate pl-4 text-2xs text-muted-foreground/70`,title:e.id,children:Xw(e.id)},void 0,!1,{fileName:Wk,lineNumber:73,columnNumber:7},this),(0,I.jsxDEV)(Xk,{item:e,lifecycle:l},void 0,!1,{fileName:Wk,lineNumber:75,columnNumber:7},this),(0,I.jsxDEV)(Yk,{plans:r,onOpen:i},void 0,!1,{fileName:Wk,lineNumber:76,columnNumber:7},this),(0,I.jsxDEV)(Zk,{item:e},void 0,!1,{fileName:Wk,lineNumber:77,columnNumber:7},this)]},void 0,!0,{fileName:Wk,lineNumber:50,columnNumber:5},this)}function Yk({plans:e,onOpen:t}){if(!e||e.length===0)return null;let n=e[0],r=e.length===1?n.title:`${e.length} plans`;return(0,I.jsxDEV)(`div`,{className:`mt-1.5 pl-4`,children:(0,I.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),t?.(n.key)},disabled:!t,title:e.length===1?`Open plan ${n.title}`:e.map(e=>e.title).join(`, `),className:`inline-flex max-w-full items-center gap-1 rounded border border-[color:var(--lane-progress)]/40 bg-[color:var(--lane-progress)]/10 px-1.5 py-0.5 text-2xs font-medium text-[color:var(--lane-progress)] transition-colors hover:border-[color:var(--lane-progress)] disabled:cursor-default`,children:[(0,I.jsxDEV)(me,{className:`h-3 w-3 shrink-0`},void 0,!1,{fileName:Wk,lineNumber:97,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`truncate`,children:[`Planned · `,r]},void 0,!0,{fileName:Wk,lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:Wk,lineNumber:90,columnNumber:7},this)},void 0,!1,{fileName:Wk,lineNumber:89,columnNumber:5},this)}function Xk({item:e,lifecycle:t}){let n=e.dependencies.filter(e=>e.blocking).length,r=[];return e.recRank!==void 0&&r.push((0,I.jsxDEV)(nk,{tone:`info`,className:`font-medium`,children:[`Next `,e.recRank]},`rec`,!0,{fileName:Wk,lineNumber:108,columnNumber:46},this)),e.blocked&&r.push((0,I.jsxDEV)(nk,{tone:`neutral`,className:`font-medium`,children:[(0,I.jsxDEV)(`span`,{className:`mr-1 inline-block h-1.5 w-1.5 rounded-full bg-[color:var(--lane-blocked)]`},void 0,!1,{fileName:Wk,lineNumber:112,columnNumber:9},this),n>0?`Blocked by ${n}`:`Blocked`]},`blocked`,!0,{fileName:Wk,lineNumber:111,columnNumber:7},this)),e.reviewDue&&r.push((0,I.jsxDEV)(nk,{tone:`warn`,className:`font-medium`,children:`Review due`},`review`,!1,{fileName:Wk,lineNumber:117,columnNumber:34},this)),t&&r.push((0,I.jsxDEV)(nk,{tone:t.tone,className:`font-medium`,children:t.label},`lifecycle`,!1,{fileName:Wk,lineNumber:118,columnNumber:29},this)),r.length===0?null:(0,I.jsxDEV)(`div`,{className:`mt-1.5 flex flex-wrap gap-1 pl-4`,children:r},void 0,!1,{fileName:Wk,lineNumber:120,columnNumber:10},this)}function Zk({item:e}){let t=e.tags.slice(0,Kk),n=e.tags.length-t.length;return!e.epicRef&&e.tags.length===0?null:(0,I.jsxDEV)(`div`,{className:`mt-1.5 flex flex-wrap items-baseline gap-x-2 gap-y-1 pl-4 text-2xs text-muted-foreground`,children:[e.epicRef&&(0,I.jsxDEV)(`span`,{className:`truncate ${e.epicRef.missing?`text-[color:var(--lane-blocked)]`:``}`,title:e.epicRef.missing?`Missing epic: ${e.epicRef.id}`:`Epic: ${e.epicRef.title}`,children:e.epicRef.missing?`Missing epic: ${e.epicRef.title}`:e.epicRef.title},void 0,!1,{fileName:Wk,lineNumber:131,columnNumber:9},this),e.epicRef&&t.length>0&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground/50`,children:`·`},void 0,!1,{fileName:Wk,lineNumber:138,columnNumber:50},this),t.map(e=>(0,I.jsxDEV)(`span`,{className:`text-muted-foreground/80`,children:e},e,!1,{fileName:Wk,lineNumber:140,columnNumber:9},this)),n>0&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground/60`,title:e.tags.slice(Kk).join(`, `),children:[`+`,n]},void 0,!0,{fileName:Wk,lineNumber:142,columnNumber:30},this)]},void 0,!0,{fileName:Wk,lineNumber:129,columnNumber:5},this)}var Qk=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/board.tsx`,$k=[{id:`lane`,label:`Lane`},{id:`epic`,label:`Epic`},{id:`recommended`,label:`Recommended`}],eA=new Set([`done`,`archive`,`closed`]),tA=`eforge-plan:board:expanded-closed`;function nA(){try{let e=window.localStorage.getItem(tA);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function rA({board:e,itemPlanIndex:t,onOpenPlan:n,query:r,onQuery:i,filter:a,onFilter:o,group:s,onGroup:c,epicFilter:l,onEpicFilter:u,selected:d,onToggle:f,onOpenDetail:p,onOpenEpic:m,onLoadMoreBoard:h,onLoadClosedLane:g}){let _=e.items??[],[v,y]=w.useState(null),[b,x]=w.useState(()=>nA()),S=w.useRef(new Set),C=w.useRef(!1),T=w.useMemo(()=>{let e=Bw(_,r,a);return l?e.filter(e=>(e.epic??``)===l):e},[_,r,a,l]),ee=w.useMemo(()=>{let t=Ww(e,T,s);if(a!==`closed`||s!==`lane`)return t;let n=new Set(t.map(e=>e.key)),r=(e.lanes??[]).filter(e=>(e.lane===`done`||e.lane===`archive`)&&!n.has(e.lane)&&(e.count??e.closedCount??0)>0).map(e=>({key:e.lane,title:e.title,tone:e.lane===`done`?`var(--lane-done)`:`var(--lane-archive)`,items:[],count:e.count,pagination:e.pagination}));return[...t,...r]},[e,T,s,a]),E=w.useMemo(()=>Jw(_),[_]),D=w.useMemo(()=>Qw(_,e.epics??[]),[_,e.epics]),te=w.useMemo(()=>$w(e.epics??[]),[e.epics]),O=w.useMemo(()=>Zw(_,e),[_,e]),ne=w.useMemo(()=>v?_.find(e=>e.id===v):void 0,[_,v]),k=w.useMemo(()=>new Set((ne?.dependencies??[]).map(e=>e.id)),[ne]),A=w.useMemo(()=>new Set((ne?.dependents??[]).map(e=>e.id)),[ne]),re=e=>k.has(e.id)?`dependency`:A.has(e.id)?`dependent`:null,ie=w.useCallback(e=>{(e===`done`||e===`archive`)&&g&&g(e)},[g]);w.useEffect(()=>{for(let t of e.lanes??[])t.lane!==`done`&&t.lane!==`archive`||!b.has(t.lane)||S.current.has(t.lane)||(t.count??0)<=t.items.length||t.pagination?.hasMore===!1||(S.current.add(t.lane),ie(t.lane))},[e.lanes,b,ie]),w.useEffect(()=>{if(a!==`closed`){C.current=!1;return}C.current||(C.current=!0,ie(`done`),ie(`archive`))},[a,ie]);let j=e=>{e===`closed`&&(C.current=!0,ie(`done`),ie(`archive`)),o(e)},ae=e=>{b.has(e)||(S.current.add(e),ie(e)),x(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{window.localStorage.setItem(tA,JSON.stringify([...n]))}catch{}return n})},se=[{id:`all`,label:`All`,count:e.counts?.total??_.length},{id:`open`,label:`Open`,count:O.open},{id:`ready`,label:`Plan eligible`,count:O.ready},{id:`blocked`,label:`Blocked`,count:O.blocked},{id:`review`,label:`Review due`,count:O.review},{id:`closed`,label:`Closed`,count:O.closed}].filter(e=>e.count>0||e.id===a||e.id===`all`);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxDEV)(Tk,{type:`search`,value:r,onChange:e=>i(e.target.value),placeholder:`Search title, id, tag, dependency…`,className:`h-8 min-w-64 flex-1`},void 0,!1,{fileName:Qk,lineNumber:159,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:se.map(e=>(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>j(e.id),className:`inline-flex items-baseline gap-1 rounded-md border px-2 py-1 text-xs transition-colors ${a===e.id?`border-primary bg-primary/10 text-text-bright`:`border-border bg-card text-muted-foreground hover:border-muted-foreground/50`}`,children:[(0,I.jsxDEV)(`strong`,{className:`text-sm ${a===e.id?`text-text-bright`:`text-foreground`}`,children:e.count},void 0,!1,{fileName:Qk,lineNumber:175,columnNumber:17},this),e.label]},e.id,!0,{fileName:Qk,lineNumber:169,columnNumber:15},this))},void 0,!1,{fileName:Qk,lineNumber:167,columnNumber:11},this),(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:`Group`},void 0,!1,{fileName:Qk,lineNumber:179,columnNumber:11},this),(0,I.jsxDEV)(aA,{options:$k,active:s,onSelect:e=>c(e)},void 0,!1,{fileName:Qk,lineNumber:180,columnNumber:11},this)]},void 0,!0,{fileName:Qk,lineNumber:166,columnNumber:9},this)]},void 0,!0,{fileName:Qk,lineNumber:158,columnNumber:7},this),D.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:D.map(e=>(0,I.jsxDEV)(`button`,{onClick:()=>u(l===e.id?``:e.id),className:`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs transition-colors ${l===e.id?`border-primary text-text-bright`:`border-border text-muted-foreground hover:border-muted-foreground/50`} ${e.missing?`border-dashed text-[color:var(--lane-blocked)]`:``}`,children:[e.title,(0,I.jsxDEV)(`span`,{className:`rounded-full border border-border px-1 text-2xs`,children:e.count},void 0,!1,{fileName:Qk,lineNumber:192,columnNumber:27},this)]},e.id,!0,{fileName:Qk,lineNumber:187,columnNumber:13},this))},void 0,!1,{fileName:Qk,lineNumber:185,columnNumber:9},this),te.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:`Horizon`},void 0,!1,{fileName:Qk,lineNumber:200,columnNumber:11},this),te.map(e=>(0,I.jsxDEV)(`button`,{type:`button`,title:`Open horizon epic ${e.title??e.id}`,onClick:()=>m(e.id),className:`inline-flex items-center gap-1 rounded-md border border-dashed border-border px-2 py-0.5 text-xs text-muted-foreground transition-colors hover:border-muted-foreground/50 hover:text-foreground`,children:[(0,I.jsxDEV)(_e,{className:`h-3 w-3`},void 0,!1,{fileName:Qk,lineNumber:209,columnNumber:15},this),e.title??e.id]},e.id,!0,{fileName:Qk,lineNumber:202,columnNumber:13},this))]},void 0,!0,{fileName:Qk,lineNumber:199,columnNumber:9},this),E.length>0&&(0,I.jsxDEV)(`div`,{className:`rounded-md border border-[color:var(--lane-blocked)]/40 bg-[color:var(--lane-blocked)]/10 p-2 text-xs text-[color:var(--lane-blocked)]`,children:[(0,I.jsxDEV)(`strong`,{className:`mr-2 uppercase tracking-wide`,children:`Dependency cycles`},void 0,!1,{fileName:Qk,lineNumber:217,columnNumber:11},this),E.map(e=>(0,I.jsxDEV)(`span`,{className:`mr-3 font-mono`,children:e.map(Xw).join(` → `)},e.join(`-`),!1,{fileName:Qk,lineNumber:218,columnNumber:34},this))]},void 0,!0,{fileName:Qk,lineNumber:216,columnNumber:9},this),ee.length===0?(0,I.jsxDEV)(Ck,{className:`p-6 text-center`,children:`No items match this view.`},void 0,!1,{fileName:Qk,lineNumber:223,columnNumber:11},this):(0,I.jsxDEV)(`div`,{className:`flex max-h-[78vh] items-start gap-3 overflow-auto pb-2`,children:ee.map(e=>{let r=s!==`epic`&&eA.has(e.key);return r&&!b.has(e.key)?(0,I.jsxDEV)(iA,{column:e,onExpand:()=>ae(e.key)},e.key,!1,{fileName:Qk,lineNumber:229,columnNumber:24},this):(0,I.jsxDEV)(`div`,{className:`flex w-80 shrink-0 flex-col overflow-hidden rounded-lg border border-border/60 bg-background/40`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 border-b border-border/60 px-3 py-2`,children:[(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full`,style:{background:e.tone}},void 0,!1,{fileName:Qk,lineNumber:234,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`text-sm font-semibold text-text-bright`,children:e.title},void 0,!1,{fileName:Qk,lineNumber:235,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`ml-auto rounded-full border border-border px-2 text-xs text-muted-foreground`,children:e.count??e.items.length},void 0,!1,{fileName:Qk,lineNumber:236,columnNumber:21},this),r&&(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":`Collapse ${e.title}`,title:`Collapse ${e.title}`,className:`rounded p-0.5 text-muted-foreground/60 transition-colors hover:bg-secondary hover:text-foreground`,onClick:()=>ae(e.key),children:(0,I.jsxDEV)(oe,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Qk,lineNumber:245,columnNumber:25},this)},void 0,!1,{fileName:Qk,lineNumber:238,columnNumber:23},this)]},void 0,!0,{fileName:Qk,lineNumber:233,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`flex flex-col gap-2 p-2`,children:[e.pagination?.hasMore&&(0,I.jsxDEV)(`p`,{className:`rounded border border-dashed border-border px-2 py-1 text-center text-2xs text-muted-foreground`,children:`More items available. Expand again or refresh to load the next page.`},void 0,!1,{fileName:Qk,lineNumber:250,columnNumber:52},this),e.items.length===0?(0,I.jsxDEV)(`p`,{className:`py-4 text-center text-xs text-muted-foreground`,children:(e.count??0)>0?`Cards not loaded yet`:`Nothing here`},void 0,!1,{fileName:Qk,lineNumber:252,columnNumber:25},this):e.items.map(e=>(0,I.jsxDEV)(Jk,{item:e,selected:d.has(e.id),relation:re(e),plannedIn:t?.get(e.id),onOpenPlan:n,onToggle:f,onOpenDetail:p,onHoverChange:y},e.id,!1,{fileName:Qk,lineNumber:254,columnNumber:27},this))]},void 0,!0,{fileName:Qk,lineNumber:249,columnNumber:19},this)]},e.key,!0,{fileName:Qk,lineNumber:232,columnNumber:17},this)})},void 0,!1,{fileName:Qk,lineNumber:225,columnNumber:11},this),h&&e.pagination?.hasMore&&a!==`closed`&&(0,I.jsxDEV)(L,{variant:`outline`,size:`sm`,className:`mx-auto`,onClick:()=>{h&&h()},children:`Load more board items`},void 0,!1,{fileName:Qk,lineNumber:274,columnNumber:9},this),ne&&(k.size>0||A.size>0)&&(0,I.jsxDEV)(`div`,{className:`pointer-events-none fixed bottom-4 left-4 z-20 flex items-center gap-3 rounded-full border border-border bg-card px-3 py-1.5 text-xs text-muted-foreground shadow-lg`,children:[(0,I.jsxDEV)(`span`,{className:`max-w-56 truncate font-medium text-foreground`,children:Xw(ne.id)},void 0,!1,{fileName:Qk,lineNumber:281,columnNumber:11},this),k.size>0&&(0,I.jsxDEV)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full bg-[color:var(--prio-medium)]`},void 0,!1,{fileName:Qk,lineNumber:284,columnNumber:15},this),` waits on `,k.size]},void 0,!0,{fileName:Qk,lineNumber:283,columnNumber:13},this),A.size>0&&(0,I.jsxDEV)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full bg-[color:var(--lane-ready)]`},void 0,!1,{fileName:Qk,lineNumber:289,columnNumber:15},this),` unblocks `,A.size]},void 0,!0,{fileName:Qk,lineNumber:288,columnNumber:13},this)]},void 0,!0,{fileName:Qk,lineNumber:280,columnNumber:9},this)]},void 0,!0,{fileName:Qk,lineNumber:157,columnNumber:5},this)}function iA({column:e,onExpand:t}){return(0,I.jsxDEV)(`button`,{type:`button`,onClick:t,title:`Expand ${e.title} (${e.count??e.items.length})`,className:`flex min-h-48 w-10 shrink-0 flex-col items-center gap-2 rounded-lg border border-border/60 bg-background/40 py-2 text-muted-foreground transition-colors hover:border-muted-foreground/50 hover:text-foreground`,children:[(0,I.jsxDEV)(ae,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Qk,lineNumber:308,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`h-2 w-2 rounded-full`,style:{background:e.tone}},void 0,!1,{fileName:Qk,lineNumber:309,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold [text-orientation:mixed] [writing-mode:vertical-rl]`,children:e.title},void 0,!1,{fileName:Qk,lineNumber:310,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`rounded-full border border-border px-1.5 text-2xs`,children:e.count??e.items.length},void 0,!1,{fileName:Qk,lineNumber:311,columnNumber:7},this)]},void 0,!0,{fileName:Qk,lineNumber:302,columnNumber:5},this)}function aA({options:e,active:t,onSelect:n}){return(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:e.map(e=>(0,I.jsxDEV)(`button`,{onClick:()=>n(e.id),className:`rounded-md border px-2.5 py-1 text-xs transition-colors ${t===e.id?`border-primary bg-primary/10 text-text-bright`:`border-border text-muted-foreground hover:border-muted-foreground/50`}`,children:e.label},e.id,!1,{fileName:Qk,lineNumber:320,columnNumber:9},this))},void 0,!1,{fileName:Qk,lineNumber:318,columnNumber:5},this)}var oA=l(h(),1),sA=[];function cA(e,t=!0){w.useEffect(()=>{if(!t)return;let n=()=>e();sA.push(n);let r=t=>{t.key===`Escape`&&sA[sA.length-1]===n&&(t.stopPropagation(),e())};return window.addEventListener(`keydown`,r),()=>{window.removeEventListener(`keydown`,r);let e=sA.indexOf(n);e!==-1&&sA.splice(e,1)}},[e,t])}var lA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/drawer.tsx`,uA={sm:`w-[26rem]`,md:`w-[34rem]`},dA=`a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])`;function fA({ariaLabel:e,title:t,eyebrow:n,subtitle:r,width:i=`md`,headerAlign:a=`start`,closeLabel:o=`Close`,onClose:s,children:c}){let l=w.useRef(null);return cA(s),w.useEffect(()=>{let e=document.activeElement;return l.current?.focus(),()=>e?.focus?.()},[]),w.useEffect(()=>{let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[]),(0,oA.createPortal)((0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`div`,{className:`fixed inset-0 z-30 bg-background/70 backdrop-blur-sm animate-scrim-in`,"aria-hidden":`true`,onClick:s},void 0,!1,{fileName:lA,lineNumber:80,columnNumber:7},this),(0,I.jsxDEV)(`aside`,{ref:l,role:`dialog`,"aria-modal":`true`,"aria-label":e,tabIndex:-1,onKeyDown:e=>{if(e.key!==`Tab`)return;let t=l.current?.querySelectorAll(dA);if(!t||t.length===0){e.preventDefault(),l.current?.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())},className:xn(`fixed inset-y-0 right-0 z-40 flex max-w-full flex-col border-l border-border bg-card shadow-2xl outline-none animate-drawer-in`,uA[i]),children:[(0,I.jsxDEV)(`header`,{className:xn(`flex gap-2 border-b border-border p-4`,a===`center`?`items-center`:`items-start`),children:[(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[n&&(0,I.jsxDEV)(`p`,{className:`text-2xs font-semibold uppercase tracking-wide text-[color:var(--lane-archive)]`,children:n},void 0,!1,{fileName:lA,lineNumber:92,columnNumber:25},this),(0,I.jsxDEV)(`h3`,{className:xn(`text-sm font-semibold leading-snug text-text-bright`,n&&`mt-0.5`),children:t},void 0,!1,{fileName:lA,lineNumber:93,columnNumber:13},this),r]},void 0,!0,{fileName:lA,lineNumber:91,columnNumber:11},this),(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":o,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-secondary hover:text-foreground`,onClick:s,children:(0,I.jsxDEV)(Ve,{className:`h-4 w-4`},void 0,!1,{fileName:lA,lineNumber:102,columnNumber:13},this)},void 0,!1,{fileName:lA,lineNumber:96,columnNumber:11},this)]},void 0,!0,{fileName:lA,lineNumber:90,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:c},void 0,!1,{fileName:lA,lineNumber:105,columnNumber:9},this)]},void 0,!0,{fileName:lA,lineNumber:81,columnNumber:7},this)]},void 0,!0,{fileName:lA,lineNumber:79,columnNumber:5},this),document.body)}var pA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/select.tsx`,mA=w.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxDEV)(`select`,{ref:r,className:xn(`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),...n,children:t},void 0,!1,{fileName:pA,lineNumber:7,columnNumber:3},void 0));mA.displayName=`Select`;var hA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/sub-block.tsx`;function gA({title:e,className:t,children:n}){return(0,I.jsxDEV)(`div`,{className:xn(`grid gap-2 border-t border-border pt-2`,t),children:[e&&(0,I.jsxDEV)(`span`,{className:`text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e},void 0,!1,{fileName:hA,lineNumber:12,columnNumber:17},this),n]},void 0,!0,{fileName:hA,lineNumber:11,columnNumber:5},this)}var J=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/item-drawer.tsx`,_A=[`candidate`,`planned`,`active`,`shipped`,`stale`,`superseded`],vA=[`high`,`medium`,`low`],yA=``;function bA({item:e,epics:t,plans:n=[],onOpenPlan:r,onClose:i,onRefresh:a}){let o=$n(),[s,c]=w.useState(e.status),[l,u]=w.useState(e.priority),[d,f]=w.useState(e.epic??yA),[p,m]=w.useState(!1),[h,g]=w.useState(null),[_,v]=w.useState(!1),[y,b]=w.useState(null);w.useEffect(()=>{c(e.status),u(e.priority),f(e.epic??yA),g(null)},[e.id,e.status,e.priority,e.epic]),w.useEffect(()=>{let t=!1;return v(!0),b(null),sw().invokeAction(`get-item`,{id:e.id,includeBody:!0}).then(n=>{t||g(pw(e,n))}).catch(e=>{t||b(e instanceof Error?e.message:String(e))}).finally(()=>{t||v(!1)}),()=>{t=!0}},[e]);let x=h??e,S=s!==e.status||l!==e.priority||d!==(e.epic??yA),C=x.unresolvedDependsOn.length>0&&[`candidate`,`planned`,`active`].includes(s),T=async()=>{m(!0);try{await sw().invokeAction(`update-item`,{id:e.id,...s!==e.status&&{status:s},...l!==e.priority&&{priority:l},...d!==(e.epic??yA)&&{epic:d}}),await a(),o.push(`Updated ${Xw(e.id)}.`,`success`)}catch(e){o.push(e instanceof Error?e.message:String(e),`error`)}finally{m(!1)}};return(0,I.jsxDEV)(fA,{ariaLabel:`Details for ${e.title}`,width:`sm`,title:e.title,subtitle:(0,I.jsxDEV)(`code`,{className:`mt-1 block break-all text-2xs text-muted-foreground`,children:e.id},void 0,!1,{fileName:J,lineNumber:97,columnNumber:17},this),closeLabel:`Close details`,onClose:i,children:[(0,I.jsxDEV)(`section`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(xA,{label:`Status`,children:(0,I.jsxDEV)(mA,{value:s,onChange:e=>c(e.target.value),className:`h-8 text-xs capitalize`,children:_A.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:J,lineNumber:104,columnNumber:48},this))},void 0,!1,{fileName:J,lineNumber:103,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:102,columnNumber:11},this),(0,I.jsxDEV)(xA,{label:`Priority`,children:(0,I.jsxDEV)(mA,{value:l,onChange:e=>u(e.target.value),className:`h-8 text-xs capitalize`,children:vA.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:J,lineNumber:109,columnNumber:42},this))},void 0,!1,{fileName:J,lineNumber:108,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:107,columnNumber:11},this),(0,I.jsxDEV)(xA,{label:`Epic`,children:(0,I.jsxDEV)(mA,{value:d,onChange:e=>f(e.target.value),className:`h-8 text-xs`,children:[(0,I.jsxDEV)(`option`,{value:yA,children:`No epic`},void 0,!1,{fileName:J,lineNumber:114,columnNumber:15},this),t.map(e=>(0,I.jsxDEV)(`option`,{value:e.id,children:e.title??e.id},e.id,!1,{fileName:J,lineNumber:115,columnNumber:37},this)),d!==yA&&!t.some(e=>e.id===d)&&(0,I.jsxDEV)(`option`,{value:d,children:[d,` (missing)`]},void 0,!0,{fileName:J,lineNumber:116,columnNumber:81},this)]},void 0,!0,{fileName:J,lineNumber:113,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:112,columnNumber:11},this),C&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:[`Unresolved dependencies (`,x.unresolvedDependsOn.map(Xw).join(`, `),`) keep this item in the Blocked lane regardless of status.`]},void 0,!0,{fileName:J,lineNumber:120,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:!S||p,onClick:()=>void T(),children:p?`Saving…`:`Save`},void 0,!1,{fileName:J,lineNumber:125,columnNumber:13},this),S&&!p&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>{c(e.status),u(e.priority),f(e.epic??yA)},children:`Reset`},void 0,!1,{fileName:J,lineNumber:127,columnNumber:15},this)]},void 0,!0,{fileName:J,lineNumber:124,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:101,columnNumber:7},this),n.length>0&&(0,I.jsxDEV)(SA,{title:`Planned in ${n.length===1?`plan`:`${n.length} plans`}`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:n.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>r?.(e.key),disabled:!r,title:`Open plan ${e.title}`,className:`flex w-full items-center gap-2 rounded border border-border bg-card p-2 text-left text-xs transition-colors hover:border-primary disabled:cursor-default disabled:hover:border-border`,children:[(0,I.jsxDEV)(me,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`},void 0,!1,{fileName:J,lineNumber:144,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:e.title},void 0,!1,{fileName:J,lineNumber:145,columnNumber:21},this),e.status&&(0,I.jsxDEV)(Tn,{variant:`outline`,className:`shrink-0`,children:e.status},void 0,!1,{fileName:J,lineNumber:146,columnNumber:37},this)]},void 0,!0,{fileName:J,lineNumber:137,columnNumber:19},this)},e.key,!1,{fileName:J,lineNumber:136,columnNumber:17},this))},void 0,!1,{fileName:J,lineNumber:134,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:133,columnNumber:11},this),_&&(0,I.jsxDEV)(`p`,{className:`mt-4 rounded border border-border bg-background p-2 text-xs text-muted-foreground`,children:`Loading item details…`},void 0,!1,{fileName:J,lineNumber:154,columnNumber:27},this),y&&(0,I.jsxDEV)(Kn,{className:`mt-4`,children:y},void 0,!1,{fileName:J,lineNumber:155,columnNumber:25},this),x.reasons.length>0&&(0,I.jsxDEV)(SA,{title:`Lane`,children:(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`capitalize text-foreground`,children:x.lane},void 0,!1,{fileName:J,lineNumber:159,columnNumber:58},this),` · `,x.reasons.join(`; `)]},void 0,!0,{fileName:J,lineNumber:159,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:158,columnNumber:11},this),x.tags.length>0&&(0,I.jsxDEV)(SA,{title:`Tags`,children:(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:x.tags.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:e},e,!1,{fileName:J,lineNumber:166,columnNumber:46},this))},void 0,!1,{fileName:J,lineNumber:165,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:164,columnNumber:11},this),x.body?.trim()&&(0,I.jsxDEV)(SA,{title:`Body`,children:(0,I.jsxDEV)(zO,{markdown:x.body},void 0,!1,{fileName:J,lineNumber:173,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:172,columnNumber:11},this),(0,I.jsxDEV)(CA,{title:`Depends on`,refs:x.dependencies},void 0,!1,{fileName:J,lineNumber:177,columnNumber:9},this),(0,I.jsxDEV)(CA,{title:`Enables`,refs:x.dependents},void 0,!1,{fileName:J,lineNumber:178,columnNumber:9},this),(x.recLanes.length>0||x.recUnblock)&&(0,I.jsxDEV)(SA,{title:`Recommendations`,children:[x.recLanes.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:x.recLanes.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:e},e,!1,{fileName:J,lineNumber:184,columnNumber:53},this))},void 0,!1,{fileName:J,lineNumber:183,columnNumber:15},this),x.recUnblock&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-[color:var(--prio-medium)]`,children:x.recUnblock},void 0,!1,{fileName:J,lineNumber:187,columnNumber:40},this)]},void 0,!0,{fileName:J,lineNumber:181,columnNumber:11},this),(0,I.jsxDEV)(wA,{title:`Claim`,content:x.notes.claim},void 0,!1,{fileName:J,lineNumber:191,columnNumber:9},this),(0,I.jsxDEV)(wA,{title:`Evidence`,content:x.notes.evidence},void 0,!1,{fileName:J,lineNumber:192,columnNumber:9},this),(0,I.jsxDEV)(wA,{title:`Recheck`,content:x.notes.recheck},void 0,!1,{fileName:J,lineNumber:193,columnNumber:9},this),(0,I.jsxDEV)(wA,{title:`Promotion paths`,content:x.notes.promotionPaths},void 0,!1,{fileName:J,lineNumber:194,columnNumber:9},this),(0,I.jsxDEV)(SA,{title:`Lifecycle`,children:(0,I.jsxDEV)(Rk,{item:x},void 0,!1,{fileName:J,lineNumber:197,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:196,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:93,columnNumber:5},this)}function xA({label:e,children:t}){return(0,I.jsxDEV)(`label`,{className:`grid grid-cols-[5rem_1fr] items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:J,lineNumber:206,columnNumber:7},this),t]},void 0,!0,{fileName:J,lineNumber:205,columnNumber:5},this)}function SA({title:e,children:t}){return(0,I.jsxDEV)(gA,{title:e,className:`mt-4 pt-3`,children:t},void 0,!1,{fileName:J,lineNumber:214,columnNumber:10},this)}function CA({title:e,refs:t}){return t.length===0?null:(0,I.jsxDEV)(SA,{title:e,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:t.map(e=>(0,I.jsxDEV)(`li`,{className:`flex items-baseline gap-2 text-xs`,children:[(0,I.jsxDEV)(`code`,{className:`min-w-0 truncate rounded border px-1 text-2xs ${e.blocking?`border-[color:var(--lane-blocked)]/40 text-[color:var(--lane-blocked)]`:e.missing?`border-dashed border-[color:var(--lane-blocked)]/50 text-[color:var(--lane-blocked)]`:`border-border text-muted-foreground`}`,title:e.id,children:Xw(e.id)},void 0,!1,{fileName:J,lineNumber:224,columnNumber:13},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 truncate text-muted-foreground`,title:e.title,children:e.missing?`Missing: ${e.id}`:e.title},void 0,!1,{fileName:J,lineNumber:227,columnNumber:13},this),e.status&&(0,I.jsxDEV)(`span`,{className:`ml-auto shrink-0 text-2xs capitalize text-muted-foreground/70`,children:e.status},void 0,!1,{fileName:J,lineNumber:228,columnNumber:28},this)]},e.id,!0,{fileName:J,lineNumber:223,columnNumber:11},this))},void 0,!1,{fileName:J,lineNumber:221,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:220,columnNumber:5},this)}function wA({title:e,content:t}){return t.trim()?(0,I.jsxDEV)(SA,{title:e,children:(0,I.jsxDEV)(`pre`,{className:`whitespace-pre-wrap break-words rounded border border-border bg-background p-2 text-2xs text-foreground`,children:t.trim()},void 0,!1,{fileName:J,lineNumber:240,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:239,columnNumber:5},this):null}var TA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/epic-drawer.tsx`;function EA({epicId:e,onClose:t}){let[n,r]=w.useState(null),[i,a]=w.useState(!1),[o,s]=w.useState(null);w.useEffect(()=>{let t=!1;return a(!0),s(null),sw().invokeAction(`get-epic`,{id:e,includeBody:!0,includeItems:!1}).then(e=>{t||r(e.epic)}).catch(e=>{t||s(e instanceof Error?e.message:String(e))}).finally(()=>{t||a(!1)}),()=>{t=!0}},[e]);let c=n?.title??e;return(0,I.jsxDEV)(fA,{ariaLabel:`Horizon epic ${c}`,eyebrow:`Horizon epic · no items`,title:c,subtitle:(0,I.jsxDEV)(`code`,{className:`mt-1 block break-all text-2xs text-muted-foreground`,children:e},void 0,!1,{fileName:TA,lineNumber:51,columnNumber:17},this),onClose:t,children:[i&&(0,I.jsxDEV)(`p`,{className:`rounded border border-border bg-background p-2 text-xs text-muted-foreground`,children:`Loading epic…`},void 0,!1,{fileName:TA,lineNumber:54,columnNumber:19},this),o&&(0,I.jsxDEV)(Kn,{children:o},void 0,!1,{fileName:TA,lineNumber:55,columnNumber:17},this),n&&(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[`Status `,(0,I.jsxDEV)(`span`,{className:`capitalize text-foreground`,children:n.status},void 0,!1,{fileName:TA,lineNumber:60,columnNumber:26},this)]},void 0,!0,{fileName:TA,lineNumber:60,columnNumber:13},this),n.priority&&(0,I.jsxDEV)(`span`,{children:[`Priority `,(0,I.jsxDEV)(`span`,{className:`capitalize text-foreground`,children:n.priority},void 0,!1,{fileName:TA,lineNumber:61,columnNumber:46},this)]},void 0,!0,{fileName:TA,lineNumber:61,columnNumber:31},this)]},void 0,!0,{fileName:TA,lineNumber:59,columnNumber:11},this),n.tags.length>0&&(0,I.jsxDEV)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:n.tags.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:e},e,!1,{fileName:TA,lineNumber:65,columnNumber:39},this))},void 0,!1,{fileName:TA,lineNumber:64,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`mt-4 border-t border-border pt-3`,children:n.body?.trim()?(0,I.jsxDEV)(zO,{markdown:n.body},void 0,!1,{fileName:TA,lineNumber:70,columnNumber:17},this):(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`This epic has no body content.`},void 0,!1,{fileName:TA,lineNumber:71,columnNumber:17},this)},void 0,!1,{fileName:TA,lineNumber:68,columnNumber:11},this)]},void 0,!0,{fileName:TA,lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:TA,lineNumber:47,columnNumber:5},this)}var DA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/board-focus.tsx`,OA=[`lane`,`epic`,`recommended`],kA=[`all`,`open`,`ready`,`blocked`,`review`,`closed`];function AA({board:e,selection:t,itemPlanIndex:n,onRefresh:r,onLoadMoreBoard:i,onLoadClosedLane:a}){let o=qx(),s=hT(),c=o.query.get(`item`),l=w.useCallback(e=>{o.setQuery(t=>{e?t.set(`item`,e):t.delete(`item`)})},[o]),[u,d]=w.useState(null),f=w.useMemo(()=>c?(e.items??[]).find(e=>e.id===c)??null:null,[e.items,c]),p=jA(o.query.get(`group`),OA,`lane`),m=jA(o.query.get(`filter`),kA,`all`),h=o.query.get(`q`)??``,g=o.query.get(`epic`)??``,_=w.useCallback((e,t,n)=>{o.setQuery(r=>{!t||t===n?r.delete(e):r.set(e,t)})},[o]);return(0,I.jsxDEV)(`div`,{className:`grid gap-4`,children:[(0,I.jsxDEV)(rA,{board:e,itemPlanIndex:n,onOpenPlan:s.openPlan,query:h,onQuery:e=>_(`q`,e,``),filter:m,onFilter:e=>_(`filter`,e,`all`),group:p,onGroup:e=>_(`group`,e,`lane`),epicFilter:g,onEpicFilter:e=>_(`epic`,e,``),selected:t.selected,onToggle:t.toggleItem,onOpenDetail:e=>{d(null),l(e.id)},onOpenEpic:e=>{l(null),d(e)},onLoadMoreBoard:i,onLoadClosedLane:a},void 0,!1,{fileName:DA,lineNumber:57,columnNumber:7},this),f&&(0,I.jsxDEV)(bA,{item:f,epics:e.epics??[],plans:n.get(f.id)??[],onOpenPlan:s.openPlan,onClose:()=>l(null),onRefresh:r,selectedItemIds:t.selectedIds},void 0,!1,{fileName:DA,lineNumber:77,columnNumber:9},this),u&&(0,I.jsxDEV)(EA,{epicId:u,onClose:()=>d(null)},void 0,!1,{fileName:DA,lineNumber:87,columnNumber:24},this)]},void 0,!0,{fileName:DA,lineNumber:56,columnNumber:5},this)}function jA(e,t,n){return e&&t.includes(e)?e:n}var MA=6e4,NA=60*MA,PA=24*NA;function FA(e,t=Date.now()){if(!e)return null;let n=Date.parse(e);if(Number.isNaN(n))return null;let r=t-n,i=Math.abs(r);if(i<MA)return`just now`;if(i>=7*PA){let e=new Date(n),r=e.getFullYear()===new Date(t).getFullYear();return e.toLocaleDateString(void 0,r?{month:`short`,day:`numeric`}:{month:`short`,day:`numeric`,year:`numeric`})}let a=i<NA?`${Math.floor(i/MA)}m`:i<PA?`${Math.floor(i/NA)}h`:`${Math.floor(i/PA)}d`;return r<0?`in ${a}`:`${a} ago`}function IA(e){let t=/^(task-[0-9a-f]{8})-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.exec(e);return t?t[1]:e}function LA(e){if(!e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}function RA(...e){for(let t of e){let e=LA(t);if(e)return e}return null}function zA(e){let t=null,n=-1/0;for(let r of e){let e=LA(r);if(!e)continue;let i=Date.parse(e);i>n&&(t=e,n=i)}return t}function BA(e){return e?RA(e.lastBuildActivityAt,zA([...UA(e.lifecycleLinks),...UA(e.linkRows),...UA(e.failureEvidence),...(e.prRefs??[]).flatMap(e=>[e.updatedAt,e.createdAt]),...(e.landingRefs??[]).flatMap(e=>[e.landedAt,e.updatedAt])])):null}function VA(e){return e?zA([e.updatedAt,e.readyAt,e.submittedAt,e.createdAt,BA(e)]):null}function HA(e,t){let n=e?.plan,r=t,i={...r,...n,lifecycleLinks:n?.lifecycleLinks??t?.lifecycleLinks??e?.lifecycle?.linkRows,linkRows:n?.linkRows??t?.linkRows??e?.lifecycle?.linkRows,failureEvidence:n?.failureEvidence??t?.failureEvidence??e?.lifecycle?.failureEvidence,prRefs:n?.prRefs??t?.prRefs,landingRefs:n?.landingRefs??t?.landingRefs};return{createdAt:RA(n?.createdAt,r?.createdAt),updatedAt:RA(n?.updatedAt,r?.updatedAt),readyAt:RA(n?.readyAt,r?.readyAt),submittedAt:RA(n?.submittedAt,r?.submittedAt),lastBuildActivityAt:BA(i)}}function UA(e){return(e??[]).flatMap(e=>[e.timestamp,e.promotedAt,e.queuedAt,e.startedAt,e.completedAt,e.landedAt])}var WA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/timestamp.tsx`;function GA({value:e,placeholder:t=`—`,className:n,prefix:r}){let i=LA(e);if(!i)return(0,I.jsxDEV)(`span`,{className:n,children:t},void 0,!1,{fileName:WA,lineNumber:19,columnNumber:20},this);let a=FA(i)??t;return(0,I.jsxDEV)(`time`,{className:n,dateTime:i,title:i,children:r?`${r} ${a}`:a},void 0,!1,{fileName:WA,lineNumber:21,columnNumber:10},this)}var KA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/checkbox.tsx`,qA=w.forwardRef(({className:e,...t},n)=>(0,I.jsxDEV)(`input`,{ref:n,type:`checkbox`,className:xn(`h-3.5 w-3.5 shrink-0 cursor-pointer accent-primary disabled:cursor-not-allowed disabled:opacity-50`,e),...t},void 0,!1,{fileName:KA,lineNumber:12,columnNumber:3},void 0));qA.displayName=`Checkbox`;var JA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plan-context-rail.tsx`;function YA(e){if(e)try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.href:void 0}catch{return}}function XA(e){return YA(e.prRefs?.find(e=>e.url)?.url??e.linkRows?.find(e=>e.prUrl)?.prUrl)}function ZA({artifact:e,titles:t}){let{openItem:n}=hT();if(!e)return(0,I.jsxDEV)(Ck,{className:`p-2 text-xs`,children:`Select a plan to see where it came from and how far it has built.`},void 0,!1,{fileName:JA,lineNumber:40,columnNumber:12},this);let r=dT(e),i=fT(e),a=pT(e),o=XA(e);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`min-w-0 flex-1 truncate text-xs text-text-bright`,title:rT(e.title,e.session??e.key),children:rT(e.title,e.session??e.key)},void 0,!1,{fileName:JA,lineNumber:51,columnNumber:9},this),a&&(0,I.jsxDEV)(Tn,{variant:`outline`,className:`shrink-0 capitalize`,children:a},void 0,!1,{fileName:JA,lineNumber:54,columnNumber:24},this)]},void 0,!0,{fileName:JA,lineNumber:50,columnNumber:7},this),r.length>0&&(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`span`,{className:`mb-1 block text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[`Built from `,r.length,` backlog item`,r.length===1?``:`s`]},void 0,!0,{fileName:JA,lineNumber:59,columnNumber:11},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-0.5`,children:r.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>n(e),title:`Open ${e} on the board`,className:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-left text-2xs leading-snug text-foreground transition-colors hover:bg-accent`,children:(0,I.jsxDEV)(`span`,{className:`line-clamp-2 min-w-0 flex-1`,children:t.get(e)??e},void 0,!1,{fileName:JA,lineNumber:71,columnNumber:19},this)},void 0,!1,{fileName:JA,lineNumber:65,columnNumber:17},this)},e,!1,{fileName:JA,lineNumber:64,columnNumber:15},this))},void 0,!1,{fileName:JA,lineNumber:62,columnNumber:11},this)]},void 0,!0,{fileName:JA,lineNumber:58,columnNumber:9},this),i.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:`Epics`},void 0,!1,{fileName:JA,lineNumber:81,columnNumber:11},this),i.map(e=>(0,I.jsxDEV)(`code`,{className:`rounded border border-border bg-card px-1 text-text-bright`,children:e},e,!1,{fileName:JA,lineNumber:82,columnNumber:32},this))]},void 0,!0,{fileName:JA,lineNumber:80,columnNumber:9},this),r.length===0&&i.length===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`No source backlog items recorded for this plan.`},void 0,!1,{fileName:JA,lineNumber:87,columnNumber:9},this),o&&(0,I.jsxDEV)(`a`,{href:o,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 text-2xs text-[color:var(--lane-ready)] hover:underline`,children:[(0,I.jsxDEV)(ge,{className:`h-3 w-3`},void 0,!1,{fileName:JA,lineNumber:92,columnNumber:11},this),` View pull request`]},void 0,!0,{fileName:JA,lineNumber:91,columnNumber:9},this),(0,I.jsxDEV)(`p`,{className:`text-2xs leading-relaxed text-muted-foreground`,children:`Builds run in the global queue (see the top bar). Full build trace is in the plan footer.`},void 0,!1,{fileName:JA,lineNumber:96,columnNumber:7},this)]},void 0,!0,{fileName:JA,lineNumber:49,columnNumber:5},this)}var QA=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/collapsible-panel.tsx`;function $A(e,t){try{let n=window.localStorage.getItem(e);return n===null?t:n===`true`}catch{return t}}function ej({storageKey:e,defaultOpen:t=!1,className:n,icon:r,title:i,summary:a,actions:o,children:s}){let c=w.useRef(!1),[l,u]=w.useState(()=>{try{c.current=window.localStorage.getItem(e)!==null}catch{c.current=!1}return $A(e,t)});return w.useEffect(()=>{t&&!c.current&&u(!0)},[t]),(0,I.jsxDEV)(`details`,{open:l,className:xn(`rounded-lg border p-3`,n),children:[(0,I.jsxDEV)(`summary`,{onClick:t=>{t.preventDefault(),u(t=>{let n=!t;try{window.localStorage.setItem(e,String(n)),c.current=!0}catch{}return n})},className:`flex cursor-pointer flex-wrap items-center gap-2 [&::-webkit-details-marker]:hidden`,style:{listStyle:`none`},children:[(0,I.jsxDEV)(j,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform ${l?`rotate-90`:``}`},void 0,!1,{fileName:QA,lineNumber:66,columnNumber:9},this),r,(0,I.jsxDEV)(`h3`,{className:`text-sm font-semibold text-text-bright`,children:i},void 0,!1,{fileName:QA,lineNumber:68,columnNumber:9},this),a,o&&(0,I.jsxDEV)(`span`,{className:`ml-auto flex items-center gap-2`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:o},void 0,!1,{fileName:QA,lineNumber:71,columnNumber:11},this)]},void 0,!0,{fileName:QA,lineNumber:65,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2`,children:s},void 0,!1,{fileName:QA,lineNumber:87,columnNumber:7},this)]},void 0,!0,{fileName:QA,lineNumber:64,columnNumber:5},this)}function tj(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function nj(e){return tj(e).replace(/-/g,` `)}function rj(e){return e.split(/[-\s]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function ij(e,t){if(!e)return``;let n=tj(t);return e[nj(n)]??e[n]??e[t]??``}function aj(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function oj(e){return e===`queued`||e===`running`}function sj(e){return e.available===!1||!e.task?`unavailable`:e.task.status===`queued`?`queued`:e.task.status===`running`?`running`:e.task.status===`failed`?`failed`:e.task.status===`cancelled`?`cancelled`:e.task.result?.decision===`needs-input`?`needs-input`:lj(e).length>0?`patch`:e.task.result?.planRevisionTurn?`answer`:`unavailable`}function cj(e){return e.reduce((e,t)=>{let n=sj(t);return(n===`queued`||n===`running`)&&(e.running+=1),(n===`failed`||n===`cancelled`||n===`unavailable`)&&(e.failed+=1),n===`patch`&&(e.patchReady+=1),n===`needs-input`&&(e.needsInput+=1),e.appliedSections+=t.appliedSections?.length??0,e},{running:0,failed:0,patchReady:0,needsInput:0,appliedSections:0})}function lj(e){return e.task?.result?.planRevisionTurn?.proposedPatch?.sections??[]}function uj(e){return e.some(e=>oj(e.task?.status??e.status))}function dj(e){return e.task?.status?e.task.status:e.staleReason?`missing task`:`unknown`}function fj(e){if(!e)return null;let t=e.metadata?.sectionProgress,n=[e.metadata?.progressMessage,t?.currentSection?`Current section: ${t.currentSection}`:void 0,pj(`Covered`,t?.coveredSections),pj(`Remaining`,t?.remainingSections)].filter(Boolean);return n.length>0?n.join(` · `):null}function pj(e,t){if(!Array.isArray(t)||t.length===0)return;let n=t.map(String).filter(Boolean);if(n.length===0)return;let r=n.slice(0,3).join(`, `),i=n.length>3?` +${n.length-3}`:``;return`${e} (${n.length}): ${r}${i}`}var mj=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-patch-summary.tsx`;function hj({turn:e}){let t=lj(e);if(t.length===0)return null;let n=e.task?.result?.planRevisionTurn?.proposedPatch?.skippedDimensions??[];return(0,I.jsxDEV)(`details`,{className:`rounded-md border bg-background/50 p-2 text-xs`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer font-medium text-muted-foreground`,children:[`View changes (`,t.length,` `,t.length===1?`section`:`sections`,`)`]},void 0,!0,{fileName:mj,lineNumber:21,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[t.map(e=>(0,I.jsxDEV)(`section`,{className:`grid gap-1 rounded border bg-background p-2`,children:[(0,I.jsxDEV)(Tn,{variant:`outline`,className:`w-fit`,children:rj(e.dimension)},void 0,!1,{fileName:mj,lineNumber:27,columnNumber:13},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:mj,lineNumber:28,columnNumber:35},this),(0,I.jsxDEV)(zO,{markdown:e.content},void 0,!1,{fileName:mj,lineNumber:29,columnNumber:13},this)]},e.dimension,!0,{fileName:mj,lineNumber:26,columnNumber:11},this)),n.length>0&&(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:[`Skipped: `,n.map(e=>`${rj(e.dimension)} (${e.reason})`).join(`; `)]},void 0,!0,{fileName:mj,lineNumber:32,columnNumber:32},this)]},void 0,!0,{fileName:mj,lineNumber:24,columnNumber:7},this)]},void 0,!0,{fileName:mj,lineNumber:20,columnNumber:5},this)}var gj=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-thread.tsx`;function _j({turn:e,busy:t,onRedraft:n}){let r=e.task?.result?.clarificationQuestions??[],[i,a]=w.useState({}),[o,s]=w.useState(``);return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:e.task?.result?.rationale},void 0,!1,{fileName:gj,lineNumber:31,columnNumber:5},this),r.map((e,t)=>(0,I.jsxDEV)(`label`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium`,children:e.question},void 0,!1,{fileName:gj,lineNumber:32,columnNumber:117},this),e.why&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:e.why},void 0,!1,{fileName:gj,lineNumber:32,columnNumber:190},this),(0,I.jsxDEV)(YO,{value:i[t]??``,onChange:e=>a(n=>({...n,[t]:e.target.value}))},void 0,!1,{fileName:gj,lineNumber:32,columnNumber:252},this)]},`${e.question}-${t}`,!0,{fileName:gj,lineNumber:32,columnNumber:41},this)),(0,I.jsxDEV)(`label`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium`,children:`Optional steering`},void 0,!1,{fileName:gj,lineNumber:33,columnNumber:43},this),(0,I.jsxDEV)(YO,{value:o,onChange:e=>s(e.target.value)},void 0,!1,{fileName:gj,lineNumber:33,columnNumber:97},this)]},void 0,!0,{fileName:gj,lineNumber:33,columnNumber:5},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,disabled:t,onClick:()=>{n(e,r.map((e,t)=>({prompt:e.question,answer:i[t]??``})).filter(e=>e.answer.trim().length>0),o)},children:`Answer and redraft`},void 0,!1,{fileName:gj,lineNumber:34,columnNumber:10},this)},void 0,!1,{fileName:gj,lineNumber:34,columnNumber:5},this)]},void 0,!0,{fileName:gj,lineNumber:30,columnNumber:10},this)}function vj({turns:e,busy:t,onCancel:n,onRetry:r,onRedraft:i}){return e.length===0?(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`No revision turns yet. Ask a question or request a targeted plan change.`},void 0,!1,{fileName:gj,lineNumber:39,columnNumber:34},this):(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:aj(e).map(e=>{let a=e.task,o=sj(e),s=a?.result?.planRevisionTurn,c=fj(a),l=o===`queued`||o===`running`;return(0,I.jsxDEV)(`article`,{className:`grid gap-2 rounded-md border p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Tn,{variant:`outline`,children:dj(e)},void 0,!1,{fileName:gj,lineNumber:49,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:a?.taskId?IA(a.taskId):e.taskId},void 0,!1,{fileName:gj,lineNumber:50,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:FA(e.createdAt)??e.createdAt},void 0,!1,{fileName:gj,lineNumber:51,columnNumber:11},this),e.staleReason&&(0,I.jsxDEV)(`span`,{children:e.staleReason},void 0,!1,{fileName:gj,lineNumber:52,columnNumber:32},this)]},void 0,!0,{fileName:gj,lineNumber:48,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`rounded-md bg-secondary/40 p-2 text-sm`,children:[(0,I.jsxDEV)(`strong`,{children:`You:`},void 0,!1,{fileName:gj,lineNumber:54,columnNumber:65},this),` `,e.userMessage]},void 0,!0,{fileName:gj,lineNumber:54,columnNumber:9},this),l&&(0,I.jsxDEV)(`p`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:gj,lineNumber:55,columnNumber:90},this),c??`Working on this revision…`]},void 0,!0,{fileName:gj,lineNumber:55,columnNumber:21},this),!l&&c&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:c},void 0,!1,{fileName:gj,lineNumber:56,columnNumber:34},this),l&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t,onClick:()=>void n(e),children:[(0,I.jsxDEV)(de,{className:`h-4 w-4`},void 0,!1,{fileName:gj,lineNumber:57,columnNumber:114},this),` Cancel`]},void 0,!0,{fileName:gj,lineNumber:57,columnNumber:26},this)},void 0,!1,{fileName:gj,lineNumber:57,columnNumber:21},this),(o===`failed`||o===`cancelled`)&&(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:a?.errorMessage??`Revision turn did not complete.`},void 0,!1,{fileName:gj,lineNumber:58,columnNumber:85},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t,onClick:()=>void r(e),children:[(0,I.jsxDEV)(Me,{className:`h-4 w-4`},void 0,!1,{fileName:gj,lineNumber:58,columnNumber:289},this),` Retry with preserved context`]},void 0,!0,{fileName:gj,lineNumber:58,columnNumber:202},this)},void 0,!1,{fileName:gj,lineNumber:58,columnNumber:197},this)]},void 0,!0,{fileName:gj,lineNumber:58,columnNumber:57},this),o===`unavailable`&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`Revision task unavailable: `,e.staleReason??`missing linked task record`,`.`]},void 0,!0,{fileName:gj,lineNumber:59,columnNumber:36},this),o===`needs-input`&&(0,I.jsxDEV)(_j,{turn:e,busy:t,onRedraft:i},void 0,!1,{fileName:gj,lineNumber:60,columnNumber:36},this),s?.assistantMessage&&(0,I.jsxDEV)(`div`,{className:`rounded-md border bg-background/50 p-2 text-sm`,children:(0,I.jsxDEV)(zO,{markdown:s.assistantMessage},void 0,!1,{fileName:gj,lineNumber:61,columnNumber:104},this)},void 0,!1,{fileName:gj,lineNumber:61,columnNumber:40},this),(s?.citations?.length??0)>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1 text-xs`,children:s?.citations?.map((e,t)=>(0,I.jsxDEV)(Tn,{variant:`outline`,children:[e.label,e.excerpt?`: ${e.excerpt}`:``]},`${e.label}-${t}`,!0,{fileName:gj,lineNumber:62,columnNumber:145},this))},void 0,!1,{fileName:gj,lineNumber:62,columnNumber:52},this),o===`answer`&&lj(e).length===0&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Answer-only revision turn.`},void 0,!1,{fileName:gj,lineNumber:63,columnNumber:67},this),o===`patch`&&(0,I.jsxDEV)(hj,{turn:e},void 0,!1,{fileName:gj,lineNumber:64,columnNumber:30},this),(e.appliedSections?.length??0)>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[`Applied `,e.appliedAt?FA(e.appliedAt)??``:``,`:`]},void 0,!0,{fileName:gj,lineNumber:65,columnNumber:134},this),e.appliedSections?.map(e=>(0,I.jsxDEV)(Tn,{variant:`outline`,children:rj(e)},e,!1,{fileName:gj,lineNumber:65,columnNumber:262},this))]},void 0,!0,{fileName:gj,lineNumber:65,columnNumber:53},this)]},e.turnId,!0,{fileName:gj,lineNumber:47,columnNumber:14},this)})},void 0,!1,{fileName:gj,lineNumber:40,columnNumber:10},this)}var yj=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-panel.tsx`;function bj({plan:e,api:t,rail:n=!1,composer:r,hasAnnotations:i=!1}){let a=cj(t.revisionSession?.turns??[]),o=t.revisionSession?.turns??[],s=o.length>0||t.hasRunningTurn,c=(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:[a.running>0&&(0,I.jsxDEV)(Tn,{children:[a.running,` running`]},void 0,!0,{fileName:yj,lineNumber:32,columnNumber:28},this),a.patchReady>0&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[a.patchReady,` patch ready`]},void 0,!0,{fileName:yj,lineNumber:33,columnNumber:31},this),a.needsInput>0&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[a.needsInput,` needs input`]},void 0,!0,{fileName:yj,lineNumber:34,columnNumber:31},this),a.failed>0&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[a.failed,` failed`]},void 0,!0,{fileName:yj,lineNumber:35,columnNumber:27},this),a.appliedSections>0&&(0,I.jsxDEV)(Tn,{children:[a.appliedSections,` applied sections`]},void 0,!0,{fileName:yj,lineNumber:36,columnNumber:36},this)]},void 0,!0,{fileName:yj,lineNumber:31,columnNumber:19},this);return(0,I.jsxDEV)(ej,{storageKey:`eforge-plan.revision.${n?`rail.`:``}${e.session}`,defaultOpen:n&&(s||i),className:n?`bg-background/70`:void 0,title:`Revise with AI`,icon:(0,I.jsxDEV)(re,{className:`h-4 w-4`},void 0,!1,{fileName:yj,lineNumber:39,columnNumber:230},this),summary:c,actions:t.initialized?(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t.loading,onClick:()=>void t.reload({includePlan:!0}),children:[(0,I.jsxDEV)(Ae,{className:`h-4 w-4`},void 0,!1,{fileName:yj,lineNumber:39,columnNumber:418},this),` Refresh revision thread`]},void 0,!0,{fileName:yj,lineNumber:39,columnNumber:304},this):void 0,children:(0,I.jsxDEV)(`div`,{className:`grid gap-3 text-sm`,children:[!t.initialized&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t.loading,onClick:()=>void t.ensureSession(),children:`Start or resume revision session`},void 0,!1,{fileName:yj,lineNumber:41,columnNumber:35},this)},void 0,!1,{fileName:yj,lineNumber:41,columnNumber:30},this),r,r&&o.length>0&&(0,I.jsxDEV)(`hr`,{className:`border-border`},void 0,!1,{fileName:yj,lineNumber:43,columnNumber:42},this),(0,I.jsxDEV)(vj,{turns:o,busy:t.busy,onCancel:t.cancel,onRetry:t.retry,onRedraft:t.redraft},void 0,!1,{fileName:yj,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:yj,lineNumber:40,columnNumber:7},this)},void 0,!1,{fileName:yj,lineNumber:39,columnNumber:5},this)}var xj=6e3,Sj=1e3,Cj=4e3;function wj(e){return e.replace(/\s+/g,` `).trim()}function Tj(e,t){let n=e.trim();return n.length>t?n.slice(0,t).trimEnd():n}function Ej(e){return wj(e.innerText||e.textContent||``)}function Dj(e,t){return Tj(e?.trim()||t,200)}function Oj(e,t){let n=wj(e),r=Tj(wj(t),xj);if(!r)return{exact:r};let i=n.indexOf(r);if(i<0)return{exact:r};let a=Tj(n.slice(Math.max(0,i-Sj),i),Sj),o=Tj(n.slice(i+r.length,i+r.length+Sj),Sj);return{exact:r,...a&&{prefix:a},...o&&{suffix:o}}}function kj(e,t,n,r,i){let a=Tj(wj(r),xj);return a?{kind:e,...t&&{dimension:t},label:Dj(n,rj(t??e)),capturedText:a,quoteContext:Oj(i,a)}:null}function Aj(e,t,n,r){if(!e||e.isCollapsed||e.rangeCount===0)return null;let i=e.getRangeAt(0),a=i.commonAncestorContainer.nodeType===Node.ELEMENT_NODE?i.commonAncestorContainer:i.commonAncestorContainer.parentElement??i.commonAncestorContainer.parentNode,o=e.toString();return a&&t.contains(a)?kj(`selection`,n,r??`${rj(n)} selection`,o,Ej(t)):null}function jj(e,t,n,r){return!e||!t.contains(e)?null:kj(`block`,n,r??`${rj(n)} block`,e.innerText||e.textContent||``,Ej(t))}function Mj(e,t,n){return kj(`section`,e,t??rj(e),n,n)}function Nj(e){let t=[`# ${e.topic||e.session}`,`Session: ${e.session}`];for(let[n,r]of Object.entries(e.sections??{}))r.trim()&&t.push(`## ${rj(n)}`,r);return Tj(t.join(`
371
371
 
372
- `),xj)}function Pj(e){let t=Nj(e);return kj(`whole-plan`,void 0,`${e.topic||e.session} whole plan`,t,t)}function Fj(e){return!e.resolvedAt&&!e.dismissedAt}function Ij(e){return Lj((e??[]).filter(Fj))}function Lj(e){return[...e].sort((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.annotationId.localeCompare(t.annotationId))}function Rj(e,t){let n=t.map(e=>e.annotationId),r=e.filter(e=>n.includes(e));for(let e of n)r.includes(e)||r.push(e);return r}function zj(e){return e.length>10?e.slice(0,10):e}function Bj(e){let t=e.target,n=rj(t.kind),r=t.dimension?rj(t.dimension):``,i=t.label||n;return r&&i!==r?`${r} · ${i}`:i}function Vj(e){let{capturedText:t,quoteContext:n}=e.target,r=n.prefix?`…${n.prefix} `:``,i=n.suffix?` ${n.suffix}…`:``;return`${r}${t||n.exact}${i}`}function Hj(e){return e.disabled?`Plan is locked.`:e.loading||e.busy?`Revision actions are busy.`:e.hasRunningTurn?`A revision turn is already running.`:e.message.length>4e3?`Message is too long.`:!e.grounded&&e.message.trim().length===0?`Add a message or include annotations.`:null}var Uj=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-annotations-panel.tsx`;function Wj({plan:e,api:t,disabled:n}){let r=Ij(t.revisionSession?.annotations),[i,a]=w.useState([]),[o,s]=w.useState(``);w.useEffect(()=>{a(e=>Rj(e,r))},[r.map(e=>e.annotationId).join(`
373
- `)]);let c=r.length>0,l=t.hasRunningTurn,u=i.length>0,d=Hj({loading:t.loading,busy:t.busy,hasRunningTurn:l,disabled:n,grounded:u,message:o}),f=`${r.length} open annotation${r.length===1?``:`s`}`,p=(e,t)=>a(n=>t?Array.from(new Set([...n,e])):n.filter(t=>t!==e)),m=async()=>{let e=o.trim();(u?await t.submitAnnotationRevision({annotationIds:i,includeOpenAnnotations:!1,steering:e}):await t.submit(e))&&s(``)},h=(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[l&&(0,I.jsxDEV)(`p`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Uj,lineNumber:50,columnNumber:88},this),` The AI is revising this plan. Its changes apply automatically when it finishes; plan edits and new requests are paused until then.`]},void 0,!0,{fileName:Uj,lineNumber:50,columnNumber:19},this),(0,I.jsxDEV)(`label`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium`,children:`Message to AI`},void 0,!1,{fileName:Uj,lineNumber:52,columnNumber:9},this),(0,I.jsxDEV)(YO,{"aria-label":`Message to AI`,value:o,maxLength:Cj+1,disabled:t.busy||t.loading||l,onChange:e=>s(e.target.value),placeholder:c?`Steer how the AI uses the included annotations, ask a question, or request a global change…`:`Ask a question or request a plan change…`},void 0,!1,{fileName:Uj,lineNumber:53,columnNumber:9},this)]},void 0,!0,{fileName:Uj,lineNumber:51,columnNumber:7},this),c&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:u?`Including ${i.length} of ${r.length} annotation${r.length===1?``:`s`}.`:`No annotations included - sends a plain message.`},void 0,!1,{fileName:Uj,lineNumber:56,columnNumber:9},this),d&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:d},void 0,!1,{fileName:Uj,lineNumber:58,columnNumber:26},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,disabled:!!d,onClick:()=>void m(),children:[(0,I.jsxDEV)(Ie,{className:`h-4 w-4`},void 0,!1,{fileName:Uj,lineNumber:59,columnNumber:95},this),` Send to AI`]},void 0,!0,{fileName:Uj,lineNumber:59,columnNumber:12},this)},void 0,!1,{fileName:Uj,lineNumber:59,columnNumber:7},this)]},void 0,!0,{fileName:Uj,lineNumber:49,columnNumber:5},this);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[c&&(0,I.jsxDEV)(`div`,{className:`grid gap-2`,"aria-label":`Revision annotations for ${e.session}`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Open annotations`},void 0,!1,{fileName:Uj,lineNumber:68,columnNumber:13},this),(0,I.jsxDEV)(Tn,{variant:`outline`,children:f},void 0,!1,{fileName:Uj,lineNumber:69,columnNumber:13},this)]},void 0,!0,{fileName:Uj,lineNumber:67,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:r.map(e=>(0,I.jsxDEV)(Gj,{annotation:e,api:t,disabled:n,selected:i.includes(e.annotationId),onToggle:p},e.annotationId,!1,{fileName:Uj,lineNumber:73,columnNumber:15},this))},void 0,!1,{fileName:Uj,lineNumber:71,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:66,columnNumber:9},this),(0,I.jsxDEV)(bj,{plan:e,api:t,rail:!0,hasAnnotations:c,composer:h},void 0,!1,{fileName:Uj,lineNumber:79,columnNumber:7},this)]},void 0,!0,{fileName:Uj,lineNumber:64,columnNumber:5},this)}function Gj({annotation:e,api:t,disabled:n,selected:r,onToggle:i}){let[a,o]=w.useState(!1),[s,c]=w.useState(``),l=e.annotationId,u=zj(l),d=t.busy||n,f=e.body?.trim(),p=e.updatedAt||e.createdAt;return(0,I.jsxDEV)(`article`,{className:`grid gap-2 rounded-md border bg-background/80 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Tn,{variant:`secondary`,className:`shrink-0`,children:e.target.kind},void 0,!1,{fileName:Uj,lineNumber:99,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,title:Bj(e),children:Bj(e)},void 0,!1,{fileName:Uj,lineNumber:100,columnNumber:9},this),(0,I.jsxDEV)(`label`,{className:`flex shrink-0 items-center gap-1 text-2xs`,title:`Include this annotation when you send the plan to the AI`,children:[(0,I.jsxDEV)(qA,{"aria-label":`Select annotation ${u} for revision`,checked:r,onChange:e=>i(l,e.target.checked)},void 0,!1,{fileName:Uj,lineNumber:102,columnNumber:11},this),` Include`]},void 0,!0,{fileName:Uj,lineNumber:101,columnNumber:9},this)]},void 0,!0,{fileName:Uj,lineNumber:98,columnNumber:7},this),(0,I.jsxDEV)(`blockquote`,{className:`line-clamp-2 border-l-2 border-border pl-2 text-xs italic text-muted-foreground`,title:Vj(e),children:Vj(e)},void 0,!1,{fileName:Uj,lineNumber:106,columnNumber:7},this),a?(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(YO,{"aria-label":`Note for annotation ${u}`,value:s,disabled:t.busy,onChange:e=>c(e.target.value)},void 0,!1,{fileName:Uj,lineNumber:110,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,"aria-label":`Save note for annotation ${u}`,disabled:t.busy,onClick:()=>void t.updateAnnotation({annotationId:l,body:s.trim()}).then(e=>{e&&o(!1)}),children:[(0,I.jsxDEV)(ie,{className:`h-4 w-4`},void 0,!1,{fileName:Uj,lineNumber:112,columnNumber:237},this),` Save note`]},void 0,!0,{fileName:Uj,lineNumber:112,columnNumber:13},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,"aria-label":`Cancel editing annotation ${u}`,onClick:()=>o(!1),children:`Cancel`},void 0,!1,{fileName:Uj,lineNumber:113,columnNumber:13},this)]},void 0,!0,{fileName:Uj,lineNumber:111,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:109,columnNumber:9},this):(0,I.jsxDEV)(`p`,{className:`flex items-start gap-1.5 text-sm leading-snug text-text-bright`,children:[(0,I.jsxDEV)(Te,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground`,"aria-hidden":!0},void 0,!1,{fileName:Uj,lineNumber:118,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:f||(0,I.jsxDEV)(`span`,{className:`italic text-muted-foreground`,children:`No note yet - add one to tell the AI what to change.`},void 0,!1,{fileName:Uj,lineNumber:119,columnNumber:26},this)},void 0,!1,{fileName:Uj,lineNumber:119,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:117,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2 text-muted-foreground`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:[(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Edit note`,"aria-label":`Edit note for annotation ${u}`,disabled:d,onClick:()=>{o(!0),c(e.body??``)},children:(0,I.jsxDEV)(De,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:125,columnNumber:212},this)},void 0,!1,{fileName:Uj,lineNumber:125,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Resolve (mark addressed)`,"aria-label":`Resolve annotation ${u}`,disabled:d,onClick:()=>void t.resolveAnnotation(l),children:(0,I.jsxDEV)(ie,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:126,columnNumber:197},this)},void 0,!1,{fileName:Uj,lineNumber:126,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Dismiss (won't change)`,"aria-label":`Dismiss annotation ${u}`,disabled:d,onClick:()=>void t.dismissAnnotation(l),children:(0,I.jsxDEV)(Ve,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:127,columnNumber:195},this)},void 0,!1,{fileName:Uj,lineNumber:127,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Delete annotation`,"aria-label":`Delete annotation ${u}`,disabled:d,onClick:()=>void t.deleteAnnotation(l),children:(0,I.jsxDEV)(Re,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:128,columnNumber:188},this)},void 0,!1,{fileName:Uj,lineNumber:128,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:124,columnNumber:9},this),(0,I.jsxDEV)(`time`,{className:`shrink-0 text-2xs`,dateTime:p,title:`Created ${e.createdAt}`,children:[`Updated `,FA(p)??p]},void 0,!0,{fileName:Uj,lineNumber:130,columnNumber:9},this)]},void 0,!0,{fileName:Uj,lineNumber:123,columnNumber:7},this)]},void 0,!0,{fileName:Uj,lineNumber:97,columnNumber:5},this)}var Kj=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plan-review-rail.tsx`;function qj({artifact:e,titles:t,plan:n,revision:r}){let[i,a]=w.useState(`review`);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,"aria-label":`Plan review rail for ${n.session}`,children:[(0,I.jsxDEV)(`div`,{className:`flex gap-1 rounded-md border bg-background/50 p-1`,role:`tablist`,"aria-label":`Rail mode`,children:[(0,I.jsxDEV)(Jj,{active:i===`review`,icon:re,onClick:()=>a(`review`),children:`Review`},void 0,!1,{fileName:Kj,lineNumber:29,columnNumber:9},this),(0,I.jsxDEV)(Jj,{active:i===`context`,icon:me,onClick:()=>a(`context`),children:`Context`},void 0,!1,{fileName:Kj,lineNumber:30,columnNumber:9},this)]},void 0,!0,{fileName:Kj,lineNumber:28,columnNumber:7},this),i===`review`?(0,I.jsxDEV)(qO,{icon:re,title:`Review controls`,contentClassName:`grid gap-3`,children:(0,I.jsxDEV)(Wj,{plan:n,api:r,disabled:r.hasRunningTurn},void 0,!1,{fileName:Kj,lineNumber:35,columnNumber:11},this)},void 0,!1,{fileName:Kj,lineNumber:34,columnNumber:9},this):(0,I.jsxDEV)(qO,{icon:me,title:`Plan context`,children:(0,I.jsxDEV)(ZA,{artifact:e,titles:t},void 0,!1,{fileName:Kj,lineNumber:39,columnNumber:11},this)},void 0,!1,{fileName:Kj,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:Kj,lineNumber:27,columnNumber:5},this)}function Jj({active:e,icon:t,onClick:n,children:r}){return(0,I.jsxDEV)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:n,className:xn(`flex flex-1 items-center justify-center gap-1.5 rounded px-2 py-1 text-xs font-medium transition-colors`,e?`bg-card text-text-bright shadow-sm`:`text-muted-foreground hover:text-foreground`),children:[(0,I.jsxDEV)(t,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Kj,lineNumber:58,columnNumber:7},this),` `,r]},void 0,!0,{fileName:Kj,lineNumber:48,columnNumber:5},this)}var Yj=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/section-editor.tsx`;function Xj({dimension:e,initialContent:t=``,disabled:n,onSave:r,onCancel:i}){let[a,o]=w.useState(t),[s,c]=w.useState(!1),l=async()=>{if(a.trim()){c(!0);try{await r(a)}finally{c(!1)}}};return(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2 rounded-md border bg-background/60 p-3`,children:[(0,I.jsxDEV)(`label`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:rj(e)},void 0,!1,{fileName:Yj,lineNumber:36,columnNumber:7},this),(0,I.jsxDEV)(YO,{autoFocus:!0,value:a,disabled:n,onChange:e=>o(e.target.value),placeholder:`Write the ${rj(e)} section in Markdown…`,className:`min-h-32 font-mono text-xs`},void 0,!1,{fileName:Yj,lineNumber:37,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:n||s||!a.trim(),onClick:()=>void l(),children:[s?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Yj,lineNumber:47,columnNumber:21},this):null,` Save section`]},void 0,!0,{fileName:Yj,lineNumber:46,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:s,onClick:i,children:`Cancel`},void 0,!1,{fileName:Yj,lineNumber:49,columnNumber:9},this)]},void 0,!0,{fileName:Yj,lineNumber:45,columnNumber:7},this)]},void 0,!0,{fileName:Yj,lineNumber:35,columnNumber:5},this)}var Zj=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/readiness-checklist.tsx`,Qj=[`bugfix`,`feature`,`refactor`,`architecture`,`docs`,`maintenance`],$j=[`quick`,`focused`,`deep`],eM=`acceptance-criteria`;function tM({plan:e,readiness:t,disabled:n,onSetSection:r,onSelectDimensions:i}){let[a,o]=w.useState(null),s=new Set,c=e=>{let t=[];for(let n of e??[])s.has(n)||(s.add(n),t.push(n));return t},l=c(t.missingDimensions),u=c(t.skippedDimensions),d=c(t.coveredDimensions),f=t.acDiagnostics??[],p=l.length===0&&d.length===0&&u.length===0&&(e.required_dimensions??[]).length===0,m=async(e,t)=>{await r(e,t),o(null)};return(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Readiness`},void 0,!1,{fileName:Zj,lineNumber:56,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold ${t.ready?`text-[color:var(--lane-ready)]`:`text-[color:var(--prio-medium)]`}`,children:t.ready?`${d.length} covered`:`${l.length+f.length} item(s) to resolve`},void 0,!1,{fileName:Zj,lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:Zj,lineNumber:55,columnNumber:7},this),p?(0,I.jsxDEV)(iM,{plan:e,disabled:n,onSelect:i},void 0,!1,{fileName:Zj,lineNumber:63,columnNumber:11},this):(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5`,children:[l.map(e=>(0,I.jsxDEV)(`li`,{className:`rounded border border-dashed border-[color:var(--prio-medium)]/40 p-2`,children:[(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(pe,{className:`h-4 w-4 text-[color:var(--prio-medium)]`},void 0,!1,{fileName:Zj,lineNumber:68,columnNumber:28},this),label:rj(e),hint:`missing`,children:a!==e&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:n,onClick:()=>o(e),children:[(0,I.jsxDEV)(ke,{className:`h-4 w-4`},void 0,!1,{fileName:Zj,lineNumber:70,columnNumber:115},this),` Add`]},void 0,!0,{fileName:Zj,lineNumber:70,columnNumber:21},this)},void 0,!1,{fileName:Zj,lineNumber:68,columnNumber:17},this),a===e&&(0,I.jsxDEV)(Xj,{dimension:e,disabled:n,onSave:t=>m(e,t),onCancel:()=>o(null)},void 0,!1,{fileName:Zj,lineNumber:74,columnNumber:19},this)]},e,!0,{fileName:Zj,lineNumber:67,columnNumber:15},this)),f.length>0&&(0,I.jsxDEV)(`li`,{className:`rounded border border-dashed border-[color:var(--lane-blocked)]/40 p-2`,children:[(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(ze,{className:`h-4 w-4 text-[color:var(--lane-blocked)]`},void 0,!1,{fileName:Zj,lineNumber:81,columnNumber:28},this),label:`Acceptance criteria quality`,hint:`needs revision`,children:a!==eM&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:n,onClick:()=>o(eM),children:`Revise`},void 0,!1,{fileName:Zj,lineNumber:83,columnNumber:21},this)},void 0,!1,{fileName:Zj,lineNumber:81,columnNumber:17},this),(0,I.jsxDEV)(rM,{diagnostics:f},void 0,!1,{fileName:Zj,lineNumber:86,columnNumber:17},this),a===eM&&(0,I.jsxDEV)(Xj,{dimension:eM,disabled:n,initialContent:ij(e.sections,eM),onSave:e=>m(eM,e),onCancel:()=>o(null)},void 0,!1,{fileName:Zj,lineNumber:88,columnNumber:19},this)]},void 0,!0,{fileName:Zj,lineNumber:80,columnNumber:15},this),d.filter(e=>!(e===eM&&f.length>0)).map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(se,{className:`h-4 w-4 text-[color:var(--lane-ready)]`},void 0,!1,{fileName:Zj,lineNumber:101,columnNumber:28},this),label:rj(e),hint:`covered`},void 0,!1,{fileName:Zj,lineNumber:101,columnNumber:17},this)},e,!1,{fileName:Zj,lineNumber:100,columnNumber:15},this)),u.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(le,{className:`h-4 w-4 text-muted-foreground`},void 0,!1,{fileName:Zj,lineNumber:107,columnNumber:28},this),label:rj(e),hint:`skipped`},void 0,!1,{fileName:Zj,lineNumber:107,columnNumber:17},this)},e,!1,{fileName:Zj,lineNumber:106,columnNumber:15},this))]},void 0,!0,{fileName:Zj,lineNumber:65,columnNumber:11},this)]},void 0,!0,{fileName:Zj,lineNumber:54,columnNumber:5},this)}function nM({icon:e,label:t,hint:n,children:r}){return(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-sm`,children:[e,(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:t},void 0,!1,{fileName:Zj,lineNumber:120,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:n},void 0,!1,{fileName:Zj,lineNumber:121,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`ml-auto`,children:r},void 0,!1,{fileName:Zj,lineNumber:122,columnNumber:7},this)]},void 0,!0,{fileName:Zj,lineNumber:118,columnNumber:5},this)}function rM({diagnostics:e}){return(0,I.jsxDEV)(`ul`,{className:`mt-2 grid gap-1.5`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`rounded bg-background p-2 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:e.message},void 0,!1,{fileName:Zj,lineNumber:132,columnNumber:11},this),e.line&&(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate text-2xs text-muted-foreground`,children:e.line},void 0,!1,{fileName:Zj,lineNumber:133,columnNumber:31},this),e.suggestion&&(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-[color:var(--lane-ready)]`,children:e.suggestion},void 0,!1,{fileName:Zj,lineNumber:134,columnNumber:37},this)]},t,!0,{fileName:Zj,lineNumber:131,columnNumber:9},this))},void 0,!1,{fileName:Zj,lineNumber:129,columnNumber:5},this)}function iM({plan:e,disabled:t,onSelect:n}){let[r,i]=w.useState(e.planning_type??`feature`),[a,o]=w.useState(e.planning_depth??`focused`),[s,c]=w.useState(!1),l=async()=>{c(!0);try{await n(r,a)}finally{c(!1)}};return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded border border-dashed p-2 text-sm`,children:[(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:`No dimensions selected yet. Choose a planning type and depth to derive the required sections.`},void 0,!1,{fileName:Zj,lineNumber:157,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(mA,{value:r,onChange:e=>i(e.target.value),className:`w-40`,children:Qj.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:Zj,lineNumber:160,columnNumber:41},this))},void 0,!1,{fileName:Zj,lineNumber:159,columnNumber:9},this),(0,I.jsxDEV)(mA,{value:a,onChange:e=>o(e.target.value),className:`w-40`,children:$j.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:Zj,lineNumber:163,columnNumber:43},this))},void 0,!1,{fileName:Zj,lineNumber:162,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:t||s,onClick:()=>void l(),children:[s?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Zj,lineNumber:166,columnNumber:23},this):null,` Apply dimensions`]},void 0,!0,{fileName:Zj,lineNumber:165,columnNumber:9},this)]},void 0,!0,{fileName:Zj,lineNumber:158,columnNumber:7},this)]},void 0,!0,{fileName:Zj,lineNumber:156,columnNumber:5},this)}var aM=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/metadata-editor.tsx`,oM=[`errand`,`excursion`,`expedition`];function sM({plan:e,disabled:t,profileOptions:n={status:`idle`,profiles:[]},onSave:r}){let[i,a]=w.useState(!1);return i?(0,I.jsxDEV)(uM,{plan:e,profileOptions:n,onSave:r,onClose:()=>a(!1)},void 0,!1,{fileName:aM,lineNumber:47,columnNumber:10},this):(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Metadata`},void 0,!1,{fileName:aM,lineNumber:35,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:t,onClick:()=>a(!0),children:[(0,I.jsxDEV)(Oe,{className:`h-4 w-4`},void 0,!1,{fileName:aM,lineNumber:36,columnNumber:98},this),` Edit`]},void 0,!0,{fileName:aM,lineNumber:36,columnNumber:11},this)]},void 0,!0,{fileName:aM,lineNumber:34,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-2 text-sm`,children:[(0,I.jsxDEV)(Tn,{variant:`secondary`,children:[`profile: `,e.profile??`none`]},void 0,!0,{fileName:aM,lineNumber:39,columnNumber:11},this),e.agent_profile&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[`agent: `,e.agent_profile]},void 0,!0,{fileName:aM,lineNumber:40,columnNumber:34},this),e.confidence&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[`confidence: `,e.confidence]},void 0,!0,{fileName:aM,lineNumber:41,columnNumber:31},this)]},void 0,!0,{fileName:aM,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:aM,lineNumber:33,columnNumber:7},this)}function cM(e,t){let n=[e.name,e.scope];return e.name===t&&n.push(`active`),e.shadowedBy&&n.push(`shadowed by ${e.shadowedBy}`),n.join(` · `)}function lM(e){return e.status===`loading`?`Loading profile options; saving and clearing remain available.`:e.status===`empty`?`No named profiles were found; clearing remains available.`:e.status===`error`?`Could not load profile options (${e.error}); clearing remains available.`:`Choose a known profile or leave unset to inherit the active eforge profile.`}function uM({plan:e,profileOptions:t,onSave:n,onClose:r}){let[i,a]=w.useState(e.profile??``),[o,s]=w.useState(e.agent_profile??``),[c,l]=w.useState(!1),u=async()=>{l(!0);try{await n({profile:i||null,agentProfile:o.trim()||null,openQuestions:e.open_questions??[]})!==!1&&r()}finally{l(!1)}},d=t.profiles.filter(e=>!e.shadowedBy),f=d.map(e=>e.name).includes(o),p=o.trim().length>0&&!f;return(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Edit metadata`},void 0,!1,{fileName:aM,lineNumber:90,columnNumber:7},this),(0,I.jsxDEV)(`label`,{className:`text-xs text-muted-foreground`,htmlFor:`session-plan-planning-profile`,children:`Planning profile`},void 0,!1,{fileName:aM,lineNumber:91,columnNumber:7},this),(0,I.jsxDEV)(mA,{id:`session-plan-planning-profile`,value:i,onChange:e=>a(e.target.value),children:[(0,I.jsxDEV)(`option`,{value:``,children:`none`},void 0,!1,{fileName:aM,lineNumber:93,columnNumber:9},this),oM.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:aM,lineNumber:94,columnNumber:43},this))]},void 0,!0,{fileName:aM,lineNumber:92,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Planning profile controls plan scope and depth presets (errand, excursion, expedition).`},void 0,!1,{fileName:aM,lineNumber:96,columnNumber:7},this),(0,I.jsxDEV)(`label`,{className:`text-xs text-muted-foreground`,htmlFor:`session-plan-agent-profile`,children:`Build agent profile`},void 0,!1,{fileName:aM,lineNumber:97,columnNumber:7},this),(0,I.jsxDEV)(mA,{id:`session-plan-agent-profile`,value:o,"aria-describedby":`session-plan-agent-profile-help`,onChange:e=>s(e.target.value),children:[(0,I.jsxDEV)(`option`,{value:``,children:`Default/active eforge profile (leave agent_profile unset)`},void 0,!1,{fileName:aM,lineNumber:99,columnNumber:9},this),p&&(0,I.jsxDEV)(`option`,{value:o,children:[o,` (current value missing/deleted)`]},void 0,!0,{fileName:aM,lineNumber:100,columnNumber:38},this),d.map(e=>(0,I.jsxDEV)(`option`,{value:e.name,children:cM(e,t.active)},`${e.scope}:${e.name}`,!1,{fileName:aM,lineNumber:101,columnNumber:45},this))]},void 0,!0,{fileName:aM,lineNumber:98,columnNumber:7},this),(0,I.jsxDEV)(`p`,{id:`session-plan-agent-profile-help`,className:`text-xs text-muted-foreground`,children:[`Agent runtime profile sets the build agent runtime stored as agent_profile. `,lM(t)]},void 0,!0,{fileName:aM,lineNumber:103,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:c,onClick:()=>void u(),children:[c?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:aM,lineNumber:108,columnNumber:21},this):null,` Save`]},void 0,!0,{fileName:aM,lineNumber:107,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:c,onClick:r,children:`Cancel`},void 0,!1,{fileName:aM,lineNumber:110,columnNumber:9},this)]},void 0,!0,{fileName:aM,lineNumber:106,columnNumber:7},this)]},void 0,!0,{fileName:aM,lineNumber:89,columnNumber:5},this)}var dM=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/open-questions-panel.tsx`;function fM({plan:e}){let t=e.open_questions??[];return t.length===0?null:(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`h4`,{className:`flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,I.jsxDEV)(ue,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:dM,lineNumber:22,columnNumber:9},this),` Open questions `,(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[`(`,t.length,`)`]},void 0,!0,{fileName:dM,lineNumber:22,columnNumber:63},this)]},void 0,!0,{fileName:dM,lineNumber:21,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-sm text-foreground`,children:t.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`list-inside list-disc`,children:e},t,!1,{fileName:dM,lineNumber:25,columnNumber:49},this))},void 0,!1,{fileName:dM,lineNumber:24,columnNumber:7},this)]},void 0,!0,{fileName:dM,lineNumber:20,columnNumber:5},this)}var pM=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/lifecycle-evidence-panel.tsx`;function mM(e,t){return t?.sourceRefs??t?.lifecycle?.sourceRefs??e.sourceRefs}var hM=new Set([`queue-prd`,`build-run`,`build-session`,`pr`,`landing`,`last-event`]);function gM({plan:e,detail:t}){let n=(t?.lifecycle?.linkRows??e.linkRows??e.lifecycleLinks??[]).filter(e=>hM.has(e.kind)),r=t?.lifecycle?.lifecycleState??e.lifecycleState,i=mM(e,t),a=new Set(i?.sourceItemIds??i?.itemIds??[]);return(0,I.jsxDEV)(`section`,{children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Build trace`},void 0,!1,{fileName:pM,lineNumber:33,columnNumber:9},this),r&&(0,I.jsxDEV)(Tn,{variant:`outline`,className:`capitalize`,children:r},void 0,!1,{fileName:pM,lineNumber:34,columnNumber:28},this)]},void 0,!0,{fileName:pM,lineNumber:32,columnNumber:7},this),r===`partial`&&(t?.lifecycle?.partialReasons??e.partialReasons??[]).map(e=>(0,I.jsxDEV)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e.message},e.code,!1,{fileName:pM,lineNumber:37,columnNumber:9},this)),n.length===0?(0,I.jsxDEV)(Ck,{className:`mt-2 p-2 text-xs`,children:`Not queued for a build yet. Queue, run, PR, and landing activity appears here after handoff.`},void 0,!1,{fileName:pM,lineNumber:40,columnNumber:9},this):(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-1`,children:n.map((e,t)=>(0,I.jsxDEV)(_M,{row:e,knownItemIds:a},`${e.kind}-${e.stage??``}-${t}`,!1,{fileName:pM,lineNumber:45,columnNumber:37},this))},void 0,!1,{fileName:pM,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:pM,lineNumber:31,columnNumber:5},this)}function _M({row:e,knownItemIds:t}){let n=e.timestamp??e.completedAt??e.landedAt??e.startedAt??e.queuedAt??e.promotedAt,r=(e.affectedItemIds??[]).filter(e=>!t.has(e));return(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-card p-2 text-xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(Tn,{variant:`secondary`,children:e.stage??e.kind},void 0,!1,{fileName:pM,lineNumber:60,columnNumber:9},this),e.status&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:e.status},void 0,!1,{fileName:pM,lineNumber:61,columnNumber:24},this),n&&(0,I.jsxDEV)(`code`,{className:`ml-auto text-2xs text-muted-foreground`,children:n},void 0,!1,{fileName:pM,lineNumber:62,columnNumber:23},this)]},void 0,!0,{fileName:pM,lineNumber:59,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap gap-x-3 gap-y-1 text-muted-foreground`,children:[e.runId&&(0,I.jsxDEV)(vM,{label:`run`,value:e.runId},void 0,!1,{fileName:pM,lineNumber:65,columnNumber:23},this),(e.sessionId??e.buildSessionId)&&(0,I.jsxDEV)(vM,{label:`build session`,value:e.sessionId??e.buildSessionId??``},void 0,!1,{fileName:pM,lineNumber:66,columnNumber:51},this),(e.featureBranch??e.branch)&&(0,I.jsxDEV)(vM,{label:`branch`,value:e.featureBranch??e.branch??``},void 0,!1,{fileName:pM,lineNumber:67,columnNumber:47},this),e.commitSha&&(0,I.jsxDEV)(vM,{label:`commit`,value:e.commitSha},void 0,!1,{fileName:pM,lineNumber:68,columnNumber:27},this)]},void 0,!0,{fileName:pM,lineNumber:64,columnNumber:7},this),e.prUrl&&(0,I.jsxDEV)(`a`,{className:`mt-1 block break-all text-[color:var(--lane-ready)] underline`,href:e.prUrl,target:`_blank`,rel:`noreferrer`,children:e.prUrl},void 0,!1,{fileName:pM,lineNumber:70,columnNumber:21},this),r.length>0&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:[`Affected: `,r.join(`, `)]},void 0,!0,{fileName:pM,lineNumber:71,columnNumber:43},this)]},void 0,!0,{fileName:pM,lineNumber:58,columnNumber:5},this)}function vM({label:e,value:t}){return(0,I.jsxDEV)(`span`,{children:[(0,I.jsxDEV)(`span`,{className:`uppercase tracking-wide`,children:[e,`:`]},void 0,!0,{fileName:pM,lineNumber:77,columnNumber:16},this),` `,(0,I.jsxDEV)(`code`,{children:t},void 0,!1,{fileName:pM,lineNumber:77,columnNumber:74},this)]},void 0,!0,{fileName:pM,lineNumber:77,columnNumber:10},this)}typeof window<`u`&&window.document&&window.document.createElement;function yM(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)}}var bM=o((e=>{(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case w:return`Suspense`;case T:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case _:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ee:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case E:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===v)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===E)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=O.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(ne.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){re||(re=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return ie[e]||(ie[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:g,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function f(e,n,i,o,l,d){var f=n.children;if(f!==void 0)if(o)if(k(f)){for(o=0;o<f.length;o++)p(f[o]);Object.freeze&&Object.freeze(f)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else p(f);if(ne.call(n,`key`)){f=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,oe[f+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
372
+ `),xj)}function Pj(e){let t=Nj(e);return kj(`whole-plan`,void 0,`${e.topic||e.session} whole plan`,t,t)}function Fj(e){return!e.resolvedAt&&!e.dismissedAt}function Ij(e){return Lj((e??[]).filter(Fj))}function Lj(e){return[...e].sort((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.annotationId.localeCompare(t.annotationId))}function Rj(e,t){let n=t.map(e=>e.annotationId),r=e.filter(e=>n.includes(e));for(let e of n)r.includes(e)||r.push(e);return r}function zj(e){return e.length>10?e.slice(0,10):e}function Bj(e){let t=e.target,n=rj(t.kind),r=t.dimension?rj(t.dimension):``,i=t.label||n;return r&&i!==r?`${r} · ${i}`:i}function Vj(e){let{capturedText:t,quoteContext:n}=e.target,r=n.prefix?`…${n.prefix} `:``,i=n.suffix?` ${n.suffix}…`:``;return`${r}${t||n.exact}${i}`}function Hj(e){return e.disabled?`Plan is locked.`:e.loading||e.busy?`Revision actions are busy.`:e.hasRunningTurn?`A revision turn is already running.`:e.message.length>4e3?`Message is too long.`:!e.grounded&&e.message.trim().length===0?`Add a message or include annotations.`:null}var Uj=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-revision-annotations-panel.tsx`;function Wj({plan:e,api:t,disabled:n}){let r=Ij(t.revisionSession?.annotations),[i,a]=w.useState([]),[o,s]=w.useState(``);w.useEffect(()=>{a(e=>Rj(e,r))},[r.map(e=>e.annotationId).join(`
373
+ `)]);let c=r.length>0,l=t.hasRunningTurn,u=i.length>0,d=Hj({loading:t.loading,busy:t.busy,hasRunningTurn:l,disabled:n,grounded:u,message:o}),f=`${r.length} open annotation${r.length===1?``:`s`}`,p=(e,t)=>a(n=>t?Array.from(new Set([...n,e])):n.filter(t=>t!==e)),m=async()=>{let e=o.trim();(u?await t.submitAnnotationRevision({annotationIds:i,includeOpenAnnotations:!1,steering:e}):await t.submit(e))&&s(``)},h=(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[l&&(0,I.jsxDEV)(`p`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Uj,lineNumber:50,columnNumber:88},this),` The AI is revising this plan. Its changes apply automatically when it finishes; plan edits and new requests are paused until then.`]},void 0,!0,{fileName:Uj,lineNumber:50,columnNumber:19},this),(0,I.jsxDEV)(`label`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium`,children:`Message to AI`},void 0,!1,{fileName:Uj,lineNumber:52,columnNumber:9},this),(0,I.jsxDEV)(YO,{"aria-label":`Message to AI`,value:o,maxLength:Cj+1,disabled:t.busy||t.loading||l,onChange:e=>s(e.target.value),placeholder:c?`Steer how the AI uses the included annotations, ask a question, or request a global change…`:`Ask a question or request a plan change…`},void 0,!1,{fileName:Uj,lineNumber:53,columnNumber:9},this)]},void 0,!0,{fileName:Uj,lineNumber:51,columnNumber:7},this),c&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:u?`Including ${i.length} of ${r.length} annotation${r.length===1?``:`s`}.`:`No annotations included - sends a plain message.`},void 0,!1,{fileName:Uj,lineNumber:56,columnNumber:9},this),d&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:d},void 0,!1,{fileName:Uj,lineNumber:58,columnNumber:26},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,disabled:!!d,onClick:()=>void m(),children:[(0,I.jsxDEV)(Ie,{className:`h-4 w-4`},void 0,!1,{fileName:Uj,lineNumber:59,columnNumber:95},this),` Send to AI`]},void 0,!0,{fileName:Uj,lineNumber:59,columnNumber:12},this)},void 0,!1,{fileName:Uj,lineNumber:59,columnNumber:7},this)]},void 0,!0,{fileName:Uj,lineNumber:49,columnNumber:5},this);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[c&&(0,I.jsxDEV)(`div`,{className:`grid gap-2`,"aria-label":`Revision annotations for ${e.session}`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Open annotations`},void 0,!1,{fileName:Uj,lineNumber:68,columnNumber:13},this),(0,I.jsxDEV)(Tn,{variant:`outline`,children:f},void 0,!1,{fileName:Uj,lineNumber:69,columnNumber:13},this)]},void 0,!0,{fileName:Uj,lineNumber:67,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:r.map(e=>(0,I.jsxDEV)(Gj,{annotation:e,api:t,disabled:n,selected:i.includes(e.annotationId),onToggle:p},e.annotationId,!1,{fileName:Uj,lineNumber:73,columnNumber:15},this))},void 0,!1,{fileName:Uj,lineNumber:71,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:66,columnNumber:9},this),(0,I.jsxDEV)(bj,{plan:e,api:t,rail:!0,hasAnnotations:c,composer:h},void 0,!1,{fileName:Uj,lineNumber:79,columnNumber:7},this)]},void 0,!0,{fileName:Uj,lineNumber:64,columnNumber:5},this)}function Gj({annotation:e,api:t,disabled:n,selected:r,onToggle:i}){let[a,o]=w.useState(!1),[s,c]=w.useState(``),l=e.annotationId,u=zj(l),d=t.busy||n,f=e.body?.trim(),p=e.updatedAt||e.createdAt;return(0,I.jsxDEV)(`article`,{className:`grid gap-2 rounded-md border bg-background/80 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Tn,{variant:`secondary`,className:`shrink-0`,children:e.target.kind},void 0,!1,{fileName:Uj,lineNumber:99,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,title:Bj(e),children:Bj(e)},void 0,!1,{fileName:Uj,lineNumber:100,columnNumber:9},this),(0,I.jsxDEV)(`label`,{className:`flex shrink-0 items-center gap-1 text-2xs`,title:`Include this annotation when you send the plan to the AI`,children:[(0,I.jsxDEV)(qA,{"aria-label":`Select annotation ${u} for revision`,checked:r,onChange:e=>i(l,e.target.checked)},void 0,!1,{fileName:Uj,lineNumber:102,columnNumber:11},this),` Include`]},void 0,!0,{fileName:Uj,lineNumber:101,columnNumber:9},this)]},void 0,!0,{fileName:Uj,lineNumber:98,columnNumber:7},this),(0,I.jsxDEV)(`blockquote`,{className:`line-clamp-2 border-l-2 border-border pl-2 text-xs italic text-muted-foreground`,title:Vj(e),children:Vj(e)},void 0,!1,{fileName:Uj,lineNumber:106,columnNumber:7},this),a?(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(YO,{"aria-label":`Note for annotation ${u}`,value:s,disabled:t.busy,onChange:e=>c(e.target.value)},void 0,!1,{fileName:Uj,lineNumber:110,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,"aria-label":`Save note for annotation ${u}`,disabled:t.busy,onClick:()=>void t.updateAnnotation({annotationId:l,body:s.trim()}).then(e=>{e&&o(!1)}),children:[(0,I.jsxDEV)(ie,{className:`h-4 w-4`},void 0,!1,{fileName:Uj,lineNumber:112,columnNumber:237},this),` Save note`]},void 0,!0,{fileName:Uj,lineNumber:112,columnNumber:13},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,"aria-label":`Cancel editing annotation ${u}`,onClick:()=>o(!1),children:`Cancel`},void 0,!1,{fileName:Uj,lineNumber:113,columnNumber:13},this)]},void 0,!0,{fileName:Uj,lineNumber:111,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:109,columnNumber:9},this):(0,I.jsxDEV)(`p`,{className:`flex items-start gap-1.5 text-sm leading-snug text-text-bright`,children:[(0,I.jsxDEV)(Te,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground`,"aria-hidden":!0},void 0,!1,{fileName:Uj,lineNumber:118,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:f||(0,I.jsxDEV)(`span`,{className:`italic text-muted-foreground`,children:`No note yet - add one to tell the AI what to change.`},void 0,!1,{fileName:Uj,lineNumber:119,columnNumber:26},this)},void 0,!1,{fileName:Uj,lineNumber:119,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:117,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2 text-muted-foreground`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:[(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Edit note`,"aria-label":`Edit note for annotation ${u}`,disabled:d,onClick:()=>{o(!0),c(e.body??``)},children:(0,I.jsxDEV)(De,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:125,columnNumber:212},this)},void 0,!1,{fileName:Uj,lineNumber:125,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Resolve (mark addressed)`,"aria-label":`Resolve annotation ${u}`,disabled:d,onClick:()=>void t.resolveAnnotation(l),children:(0,I.jsxDEV)(ie,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:126,columnNumber:197},this)},void 0,!1,{fileName:Uj,lineNumber:126,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Dismiss (won't change)`,"aria-label":`Dismiss annotation ${u}`,disabled:d,onClick:()=>void t.dismissAnnotation(l),children:(0,I.jsxDEV)(Ve,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:127,columnNumber:195},this)},void 0,!1,{fileName:Uj,lineNumber:127,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,title:`Delete annotation`,"aria-label":`Delete annotation ${u}`,disabled:d,onClick:()=>void t.deleteAnnotation(l),children:(0,I.jsxDEV)(Re,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Uj,lineNumber:128,columnNumber:188},this)},void 0,!1,{fileName:Uj,lineNumber:128,columnNumber:11},this)]},void 0,!0,{fileName:Uj,lineNumber:124,columnNumber:9},this),(0,I.jsxDEV)(`time`,{className:`shrink-0 text-2xs`,dateTime:p,title:`Created ${e.createdAt}`,children:[`Updated `,FA(p)??p]},void 0,!0,{fileName:Uj,lineNumber:130,columnNumber:9},this)]},void 0,!0,{fileName:Uj,lineNumber:123,columnNumber:7},this)]},void 0,!0,{fileName:Uj,lineNumber:97,columnNumber:5},this)}var Kj=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plan-review-rail.tsx`;function qj({artifact:e,titles:t,plan:n,revision:r}){let[i,a]=w.useState(`review`);return(0,I.jsxDEV)(`div`,{className:`grid gap-3`,"aria-label":`Plan review rail for ${n.session}`,children:[(0,I.jsxDEV)(`div`,{className:`flex gap-1 rounded-md border bg-background/50 p-1`,role:`tablist`,"aria-label":`Rail mode`,children:[(0,I.jsxDEV)(Jj,{active:i===`review`,icon:re,onClick:()=>a(`review`),children:`Review`},void 0,!1,{fileName:Kj,lineNumber:29,columnNumber:9},this),(0,I.jsxDEV)(Jj,{active:i===`context`,icon:me,onClick:()=>a(`context`),children:`Context`},void 0,!1,{fileName:Kj,lineNumber:30,columnNumber:9},this)]},void 0,!0,{fileName:Kj,lineNumber:28,columnNumber:7},this),i===`review`?(0,I.jsxDEV)(qO,{icon:re,title:`Review controls`,contentClassName:`grid gap-3`,children:(0,I.jsxDEV)(Wj,{plan:n,api:r,disabled:r.hasRunningTurn},void 0,!1,{fileName:Kj,lineNumber:35,columnNumber:11},this)},void 0,!1,{fileName:Kj,lineNumber:34,columnNumber:9},this):(0,I.jsxDEV)(qO,{icon:me,title:`Plan context`,children:(0,I.jsxDEV)(ZA,{artifact:e,titles:t},void 0,!1,{fileName:Kj,lineNumber:39,columnNumber:11},this)},void 0,!1,{fileName:Kj,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:Kj,lineNumber:27,columnNumber:5},this)}function Jj({active:e,icon:t,onClick:n,children:r}){return(0,I.jsxDEV)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:n,className:xn(`flex flex-1 items-center justify-center gap-1.5 rounded px-2 py-1 text-xs font-medium transition-colors`,e?`bg-card text-text-bright shadow-sm`:`text-muted-foreground hover:text-foreground`),children:[(0,I.jsxDEV)(t,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:Kj,lineNumber:58,columnNumber:7},this),` `,r]},void 0,!0,{fileName:Kj,lineNumber:48,columnNumber:5},this)}var Yj=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/section-editor.tsx`;function Xj({dimension:e,initialContent:t=``,disabled:n,onSave:r,onCancel:i}){let[a,o]=w.useState(t),[s,c]=w.useState(!1),l=async()=>{if(a.trim()){c(!0);try{await r(a)}finally{c(!1)}}};return(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2 rounded-md border bg-background/60 p-3`,children:[(0,I.jsxDEV)(`label`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:rj(e)},void 0,!1,{fileName:Yj,lineNumber:36,columnNumber:7},this),(0,I.jsxDEV)(YO,{autoFocus:!0,value:a,disabled:n,onChange:e=>o(e.target.value),placeholder:`Write the ${rj(e)} section in Markdown…`,className:`min-h-32 font-mono text-xs`},void 0,!1,{fileName:Yj,lineNumber:37,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:n||s||!a.trim(),onClick:()=>void l(),children:[s?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Yj,lineNumber:47,columnNumber:21},this):null,` Save section`]},void 0,!0,{fileName:Yj,lineNumber:46,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:s,onClick:i,children:`Cancel`},void 0,!1,{fileName:Yj,lineNumber:49,columnNumber:9},this)]},void 0,!0,{fileName:Yj,lineNumber:45,columnNumber:7},this)]},void 0,!0,{fileName:Yj,lineNumber:35,columnNumber:5},this)}var Zj=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/readiness-checklist.tsx`,Qj=[`bugfix`,`feature`,`refactor`,`architecture`,`docs`,`maintenance`],$j=[`quick`,`focused`,`deep`],eM=`acceptance-criteria`;function tM({plan:e,readiness:t,disabled:n,onSetSection:r,onSelectDimensions:i}){let[a,o]=w.useState(null),s=new Set,c=e=>{let t=[];for(let n of e??[])s.has(n)||(s.add(n),t.push(n));return t},l=c(t.missingDimensions),u=c(t.skippedDimensions),d=c(t.coveredDimensions),f=t.acDiagnostics??[],p=l.length===0&&d.length===0&&u.length===0&&(e.required_dimensions??[]).length===0,m=async(e,t)=>{await r(e,t),o(null)};return(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Readiness`},void 0,!1,{fileName:Zj,lineNumber:56,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold ${t.ready?`text-[color:var(--lane-ready)]`:`text-[color:var(--prio-medium)]`}`,children:t.ready?`${d.length} covered`:`${l.length+f.length} item(s) to resolve`},void 0,!1,{fileName:Zj,lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:Zj,lineNumber:55,columnNumber:7},this),p?(0,I.jsxDEV)(iM,{plan:e,disabled:n,onSelect:i},void 0,!1,{fileName:Zj,lineNumber:63,columnNumber:11},this):(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5`,children:[l.map(e=>(0,I.jsxDEV)(`li`,{className:`rounded border border-dashed border-[color:var(--prio-medium)]/40 p-2`,children:[(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(pe,{className:`h-4 w-4 text-[color:var(--prio-medium)]`},void 0,!1,{fileName:Zj,lineNumber:68,columnNumber:28},this),label:rj(e),hint:`missing`,children:a!==e&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:n,onClick:()=>o(e),children:[(0,I.jsxDEV)(ke,{className:`h-4 w-4`},void 0,!1,{fileName:Zj,lineNumber:70,columnNumber:115},this),` Add`]},void 0,!0,{fileName:Zj,lineNumber:70,columnNumber:21},this)},void 0,!1,{fileName:Zj,lineNumber:68,columnNumber:17},this),a===e&&(0,I.jsxDEV)(Xj,{dimension:e,disabled:n,onSave:t=>m(e,t),onCancel:()=>o(null)},void 0,!1,{fileName:Zj,lineNumber:74,columnNumber:19},this)]},e,!0,{fileName:Zj,lineNumber:67,columnNumber:15},this)),f.length>0&&(0,I.jsxDEV)(`li`,{className:`rounded border border-dashed border-[color:var(--lane-blocked)]/40 p-2`,children:[(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(ze,{className:`h-4 w-4 text-[color:var(--lane-blocked)]`},void 0,!1,{fileName:Zj,lineNumber:81,columnNumber:28},this),label:`Acceptance criteria quality`,hint:`needs revision`,children:a!==eM&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:n,onClick:()=>o(eM),children:`Revise`},void 0,!1,{fileName:Zj,lineNumber:83,columnNumber:21},this)},void 0,!1,{fileName:Zj,lineNumber:81,columnNumber:17},this),(0,I.jsxDEV)(rM,{diagnostics:f},void 0,!1,{fileName:Zj,lineNumber:86,columnNumber:17},this),a===eM&&(0,I.jsxDEV)(Xj,{dimension:eM,disabled:n,initialContent:ij(e.sections,eM),onSave:e=>m(eM,e),onCancel:()=>o(null)},void 0,!1,{fileName:Zj,lineNumber:88,columnNumber:19},this)]},void 0,!0,{fileName:Zj,lineNumber:80,columnNumber:15},this),d.filter(e=>!(e===eM&&f.length>0)).map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(se,{className:`h-4 w-4 text-[color:var(--lane-ready)]`},void 0,!1,{fileName:Zj,lineNumber:101,columnNumber:28},this),label:rj(e),hint:`covered`},void 0,!1,{fileName:Zj,lineNumber:101,columnNumber:17},this)},e,!1,{fileName:Zj,lineNumber:100,columnNumber:15},this)),u.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(nM,{icon:(0,I.jsxDEV)(le,{className:`h-4 w-4 text-muted-foreground`},void 0,!1,{fileName:Zj,lineNumber:107,columnNumber:28},this),label:rj(e),hint:`skipped`},void 0,!1,{fileName:Zj,lineNumber:107,columnNumber:17},this)},e,!1,{fileName:Zj,lineNumber:106,columnNumber:15},this))]},void 0,!0,{fileName:Zj,lineNumber:65,columnNumber:11},this)]},void 0,!0,{fileName:Zj,lineNumber:54,columnNumber:5},this)}function nM({icon:e,label:t,hint:n,children:r}){return(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-sm`,children:[e,(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:t},void 0,!1,{fileName:Zj,lineNumber:120,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:n},void 0,!1,{fileName:Zj,lineNumber:121,columnNumber:7},this),(0,I.jsxDEV)(`span`,{className:`ml-auto`,children:r},void 0,!1,{fileName:Zj,lineNumber:122,columnNumber:7},this)]},void 0,!0,{fileName:Zj,lineNumber:118,columnNumber:5},this)}function rM({diagnostics:e}){return(0,I.jsxDEV)(`ul`,{className:`mt-2 grid gap-1.5`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`rounded bg-background p-2 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:e.message},void 0,!1,{fileName:Zj,lineNumber:132,columnNumber:11},this),e.line&&(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate text-2xs text-muted-foreground`,children:e.line},void 0,!1,{fileName:Zj,lineNumber:133,columnNumber:31},this),e.suggestion&&(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-[color:var(--lane-ready)]`,children:e.suggestion},void 0,!1,{fileName:Zj,lineNumber:134,columnNumber:37},this)]},t,!0,{fileName:Zj,lineNumber:131,columnNumber:9},this))},void 0,!1,{fileName:Zj,lineNumber:129,columnNumber:5},this)}function iM({plan:e,disabled:t,onSelect:n}){let[r,i]=w.useState(e.planning_type??`feature`),[a,o]=w.useState(e.planning_depth??`focused`),[s,c]=w.useState(!1),l=async()=>{c(!0);try{await n(r,a)}finally{c(!1)}};return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded border border-dashed p-2 text-sm`,children:[(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:`No dimensions selected yet. Choose a planning type and depth to derive the required sections.`},void 0,!1,{fileName:Zj,lineNumber:157,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(mA,{value:r,onChange:e=>i(e.target.value),className:`w-40`,children:Qj.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:Zj,lineNumber:160,columnNumber:41},this))},void 0,!1,{fileName:Zj,lineNumber:159,columnNumber:9},this),(0,I.jsxDEV)(mA,{value:a,onChange:e=>o(e.target.value),className:`w-40`,children:$j.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:Zj,lineNumber:163,columnNumber:43},this))},void 0,!1,{fileName:Zj,lineNumber:162,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:t||s,onClick:()=>void l(),children:[s?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Zj,lineNumber:166,columnNumber:23},this):null,` Apply dimensions`]},void 0,!0,{fileName:Zj,lineNumber:165,columnNumber:9},this)]},void 0,!0,{fileName:Zj,lineNumber:158,columnNumber:7},this)]},void 0,!0,{fileName:Zj,lineNumber:156,columnNumber:5},this)}var aM=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/metadata-editor.tsx`,oM=[`errand`,`excursion`,`expedition`];function sM({plan:e,disabled:t,profileOptions:n={status:`idle`,profiles:[]},onSave:r}){let[i,a]=w.useState(!1);return i?(0,I.jsxDEV)(uM,{plan:e,profileOptions:n,onSave:r,onClose:()=>a(!1)},void 0,!1,{fileName:aM,lineNumber:47,columnNumber:10},this):(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Metadata`},void 0,!1,{fileName:aM,lineNumber:35,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:t,onClick:()=>a(!0),children:[(0,I.jsxDEV)(Oe,{className:`h-4 w-4`},void 0,!1,{fileName:aM,lineNumber:36,columnNumber:98},this),` Edit`]},void 0,!0,{fileName:aM,lineNumber:36,columnNumber:11},this)]},void 0,!0,{fileName:aM,lineNumber:34,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-2 text-sm`,children:[(0,I.jsxDEV)(Tn,{variant:`secondary`,children:[`profile: `,e.profile??`none`]},void 0,!0,{fileName:aM,lineNumber:39,columnNumber:11},this),e.agent_profile&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[`agent: `,e.agent_profile]},void 0,!0,{fileName:aM,lineNumber:40,columnNumber:34},this),e.confidence&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:[`confidence: `,e.confidence]},void 0,!0,{fileName:aM,lineNumber:41,columnNumber:31},this)]},void 0,!0,{fileName:aM,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:aM,lineNumber:33,columnNumber:7},this)}function cM(e,t){let n=[e.name,e.scope];return e.name===t&&n.push(`active`),e.shadowedBy&&n.push(`shadowed by ${e.shadowedBy}`),n.join(` · `)}function lM(e){return e.status===`loading`?`Loading profile options; saving and clearing remain available.`:e.status===`empty`?`No named profiles were found; clearing remains available.`:e.status===`error`?`Could not load profile options (${e.error}); clearing remains available.`:`Choose a known profile or leave unset to inherit the active eforge profile.`}function uM({plan:e,profileOptions:t,onSave:n,onClose:r}){let[i,a]=w.useState(e.profile??``),[o,s]=w.useState(e.agent_profile??``),[c,l]=w.useState(!1),u=async()=>{l(!0);try{await n({profile:i||null,agentProfile:o.trim()||null,openQuestions:e.open_questions??[]})!==!1&&r()}finally{l(!1)}},d=t.profiles.filter(e=>!e.shadowedBy),f=d.map(e=>e.name).includes(o),p=o.trim().length>0&&!f;return(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Edit metadata`},void 0,!1,{fileName:aM,lineNumber:90,columnNumber:7},this),(0,I.jsxDEV)(`label`,{className:`text-xs text-muted-foreground`,htmlFor:`session-plan-planning-profile`,children:`Planning profile`},void 0,!1,{fileName:aM,lineNumber:91,columnNumber:7},this),(0,I.jsxDEV)(mA,{id:`session-plan-planning-profile`,value:i,onChange:e=>a(e.target.value),children:[(0,I.jsxDEV)(`option`,{value:``,children:`none`},void 0,!1,{fileName:aM,lineNumber:93,columnNumber:9},this),oM.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:aM,lineNumber:94,columnNumber:43},this))]},void 0,!0,{fileName:aM,lineNumber:92,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Planning profile controls plan scope and depth presets (errand, excursion, expedition).`},void 0,!1,{fileName:aM,lineNumber:96,columnNumber:7},this),(0,I.jsxDEV)(`label`,{className:`text-xs text-muted-foreground`,htmlFor:`session-plan-agent-profile`,children:`Build agent profile`},void 0,!1,{fileName:aM,lineNumber:97,columnNumber:7},this),(0,I.jsxDEV)(mA,{id:`session-plan-agent-profile`,value:o,"aria-describedby":`session-plan-agent-profile-help`,onChange:e=>s(e.target.value),children:[(0,I.jsxDEV)(`option`,{value:``,children:`Default/active eforge profile (leave agent_profile unset)`},void 0,!1,{fileName:aM,lineNumber:99,columnNumber:9},this),p&&(0,I.jsxDEV)(`option`,{value:o,children:[o,` (current value missing/deleted)`]},void 0,!0,{fileName:aM,lineNumber:100,columnNumber:38},this),d.map(e=>(0,I.jsxDEV)(`option`,{value:e.name,children:cM(e,t.active)},`${e.scope}:${e.name}`,!1,{fileName:aM,lineNumber:101,columnNumber:45},this))]},void 0,!0,{fileName:aM,lineNumber:98,columnNumber:7},this),(0,I.jsxDEV)(`p`,{id:`session-plan-agent-profile-help`,className:`text-xs text-muted-foreground`,children:[`Agent runtime profile sets the build agent runtime stored as agent_profile. `,lM(t)]},void 0,!0,{fileName:aM,lineNumber:103,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:c,onClick:()=>void u(),children:[c?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:aM,lineNumber:108,columnNumber:21},this):null,` Save`]},void 0,!0,{fileName:aM,lineNumber:107,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:c,onClick:r,children:`Cancel`},void 0,!1,{fileName:aM,lineNumber:110,columnNumber:9},this)]},void 0,!0,{fileName:aM,lineNumber:106,columnNumber:7},this)]},void 0,!0,{fileName:aM,lineNumber:89,columnNumber:5},this)}var dM=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/open-questions-panel.tsx`;function fM({plan:e}){let t=e.open_questions??[];return t.length===0?null:(0,I.jsxDEV)(`section`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`h4`,{className:`flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,I.jsxDEV)(ue,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:dM,lineNumber:22,columnNumber:9},this),` Open questions `,(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[`(`,t.length,`)`]},void 0,!0,{fileName:dM,lineNumber:22,columnNumber:63},this)]},void 0,!0,{fileName:dM,lineNumber:21,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-sm text-foreground`,children:t.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`list-inside list-disc`,children:e},t,!1,{fileName:dM,lineNumber:25,columnNumber:49},this))},void 0,!1,{fileName:dM,lineNumber:24,columnNumber:7},this)]},void 0,!0,{fileName:dM,lineNumber:20,columnNumber:5},this)}var pM=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/lifecycle-evidence-panel.tsx`;function mM(e,t){return t?.sourceRefs??t?.lifecycle?.sourceRefs??e.sourceRefs}var hM=new Set([`queue-prd`,`build-run`,`build-session`,`pr`,`landing`,`last-event`]);function gM({plan:e,detail:t}){let n=(t?.lifecycle?.linkRows??e.linkRows??e.lifecycleLinks??[]).filter(e=>hM.has(e.kind)),r=t?.lifecycle?.lifecycleState??e.lifecycleState,i=mM(e,t),a=new Set(i?.sourceItemIds??i?.itemIds??[]);return(0,I.jsxDEV)(`section`,{children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Build trace`},void 0,!1,{fileName:pM,lineNumber:33,columnNumber:9},this),r&&(0,I.jsxDEV)(Tn,{variant:`outline`,className:`capitalize`,children:r},void 0,!1,{fileName:pM,lineNumber:34,columnNumber:28},this)]},void 0,!0,{fileName:pM,lineNumber:32,columnNumber:7},this),r===`partial`&&(t?.lifecycle?.partialReasons??e.partialReasons??[]).map(e=>(0,I.jsxDEV)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e.message},e.code,!1,{fileName:pM,lineNumber:37,columnNumber:9},this)),n.length===0?(0,I.jsxDEV)(Ck,{className:`mt-2 p-2 text-xs`,children:`Not queued for a build yet. Queue, run, PR, and landing activity appears here after handoff.`},void 0,!1,{fileName:pM,lineNumber:40,columnNumber:9},this):(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-1`,children:n.map((e,t)=>(0,I.jsxDEV)(_M,{row:e,knownItemIds:a},`${e.kind}-${e.stage??``}-${t}`,!1,{fileName:pM,lineNumber:45,columnNumber:37},this))},void 0,!1,{fileName:pM,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:pM,lineNumber:31,columnNumber:5},this)}function _M({row:e,knownItemIds:t}){let n=e.timestamp??e.completedAt??e.landedAt??e.startedAt??e.queuedAt??e.promotedAt,r=(e.affectedItemIds??[]).filter(e=>!t.has(e));return(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-card p-2 text-xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(Tn,{variant:`secondary`,children:e.stage??e.kind},void 0,!1,{fileName:pM,lineNumber:60,columnNumber:9},this),e.status&&(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:e.status},void 0,!1,{fileName:pM,lineNumber:61,columnNumber:24},this),n&&(0,I.jsxDEV)(`code`,{className:`ml-auto text-2xs text-muted-foreground`,children:n},void 0,!1,{fileName:pM,lineNumber:62,columnNumber:23},this)]},void 0,!0,{fileName:pM,lineNumber:59,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap gap-x-3 gap-y-1 text-muted-foreground`,children:[e.runId&&(0,I.jsxDEV)(vM,{label:`run`,value:e.runId},void 0,!1,{fileName:pM,lineNumber:65,columnNumber:23},this),(e.sessionId??e.buildSessionId)&&(0,I.jsxDEV)(vM,{label:`build session`,value:e.sessionId??e.buildSessionId??``},void 0,!1,{fileName:pM,lineNumber:66,columnNumber:51},this),(e.featureBranch??e.branch)&&(0,I.jsxDEV)(vM,{label:`branch`,value:e.featureBranch??e.branch??``},void 0,!1,{fileName:pM,lineNumber:67,columnNumber:47},this),e.commitSha&&(0,I.jsxDEV)(vM,{label:`commit`,value:e.commitSha},void 0,!1,{fileName:pM,lineNumber:68,columnNumber:27},this)]},void 0,!0,{fileName:pM,lineNumber:64,columnNumber:7},this),e.prUrl&&(0,I.jsxDEV)(`a`,{className:`mt-1 block break-all text-[color:var(--lane-ready)] underline`,href:e.prUrl,target:`_blank`,rel:`noreferrer`,children:e.prUrl},void 0,!1,{fileName:pM,lineNumber:70,columnNumber:21},this),r.length>0&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:[`Affected: `,r.join(`, `)]},void 0,!0,{fileName:pM,lineNumber:71,columnNumber:43},this)]},void 0,!0,{fileName:pM,lineNumber:58,columnNumber:5},this)}function vM({label:e,value:t}){return(0,I.jsxDEV)(`span`,{children:[(0,I.jsxDEV)(`span`,{className:`uppercase tracking-wide`,children:[e,`:`]},void 0,!0,{fileName:pM,lineNumber:77,columnNumber:16},this),` `,(0,I.jsxDEV)(`code`,{children:t},void 0,!1,{fileName:pM,lineNumber:77,columnNumber:74},this)]},void 0,!0,{fileName:pM,lineNumber:77,columnNumber:10},this)}typeof window<`u`&&window.document&&window.document.createElement;function yM(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)}}var bM=o((e=>{(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case w:return`Suspense`;case T:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case _:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ee:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case E:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===v)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===E)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=O.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(ne.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){re||(re=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return ie[e]||(ie[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:g,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function f(e,n,i,o,l,d){var f=n.children;if(f!==void 0)if(o)if(k(f)){for(o=0;o<f.length;o++)p(f[o]);Object.freeze&&Object.freeze(f)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else p(f);if(ne.call(n,`key`)){f=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,oe[f+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
374
374
  let props = %s;
375
375
  <%s {...props} />
376
376
  React keys must be passed directly to JSX without using spread:
377
377
  let props = %s;
378
- <%s key={someKey} {...props} />`,o,f,m,f),oe[f+o]=!0)}if(f=null,i!==void 0&&(r(i),f=``+i),s(n)&&(r(n.key),f=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return f&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,f,i,a(),l,d)}function p(e){m(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?m(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function m(e){return typeof e==`object`&&!!e&&e.$$typeof===g}var h=d(),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),ee=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),te=Symbol.for(`react.client.reference`),O=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne=Object.prototype.hasOwnProperty,k=Array.isArray,A=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var re,ie={},j=h.react_stack_bottom_frame.bind(h,o)(),ae=A(i(o)),oe={};e.Fragment=v,e.jsx=function(e,t,n){var r=1e4>O.recentlyCreatedOwnerStacks++;return f(e,t,n,!1,r?Error(`react-stack-top-frame`):j,r?A(i(e)):ae)},e.jsxs=function(e,t,n){var r=1e4>O.recentlyCreatedOwnerStacks++;return f(e,t,n,!0,r?Error(`react-stack-top-frame`):j,r?A(i(e)):ae)}})()})),xM=o(((e,t)=>{t.exports=bM()}))();function SM(e,t=[]){let n=[];function r(t,r){let i=w.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=w.useMemo(()=>o,Object.values(o));return(0,xM.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=w.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>w.createContext(e));return function(n){let r=n?.[e]||t;return w.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,CM(i,...t)]}function CM(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return w.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var wM=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=kn(`Primitive.${t}`),r=w.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,xM.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function TM(e,t){e&&oA.flushSync(()=>e.dispatchEvent(t))}function EM(e){let t=w.useRef(e);return w.useEffect(()=>{t.current=e}),w.useMemo(()=>((...e)=>t.current?.(...e)),[])}var DM=`DismissableLayer`,OM=`dismissableLayer.update`,kM=`dismissableLayer.pointerDownOutside`,AM=`dismissableLayer.focusOutside`,jM,MM=w.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),NM=w.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=w.useContext(MM),[d,f]=w.useState(null),p=d?.ownerDocument??globalThis?.document,[,m]=w.useState({}),h=On(t,f),g=Array.from(u.layers),[_]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=_?g.indexOf(_):-1,y=d?g.indexOf(d):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,x=y>=v,S=w.useRef(!1),C=LM(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:w.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return x&&!t},[u.branches,x])}),T=RM(e=>{if(r&&S.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),ee=d?y===g.length-1:!1,E=EM(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return w.useEffect(()=>{if(ee)return p.addEventListener(`keydown`,E,{capture:!0}),()=>p.removeEventListener(`keydown`,E,{capture:!0})},[p,ee,E]),w.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(jM=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),zM(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=jM))}},[d,p,n,u]),w.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),zM())},[d,u]),w.useEffect(()=>{let e=()=>m({});return document.addEventListener(OM,e),()=>document.removeEventListener(OM,e)},[]),(0,xM.jsx)(wM.div,{...l,ref:h,style:{pointerEvents:b?x?`auto`:`none`:void 0,...e.style},onFocusCapture:yM(e.onFocusCapture,T.onFocusCapture),onBlurCapture:yM(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:yM(e.onPointerDownCapture,C.onPointerDownCapture)})});NM.displayName=DM;var PM=`DismissableLayerBranch`,FM=w.forwardRef((e,t)=>{let n=w.useContext(MM),r=w.useRef(null),i=On(t,r);return w.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,xM.jsx)(wM.div,{...e,ref:i})});FM.displayName=PM;var IM=()=>!0;function LM(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=IM}=t,s=EM(e),c=w.useRef(!1),l=w.useRef(!1),u=w.useRef(new Map),d=w.useRef(()=>{});return w.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}function t(){return Array.from(u.current.values()).some(Boolean)}function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}function p(e){l.current&&u.current.set(e.type,!1)}let m=a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||BM(kM,s,p,{discrete:!0})};if(!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:()=>c.current=!0}}function RM(e,t=globalThis?.document){let n=EM(e),r=w.useRef(!1);return w.useEffect(()=>{let e=e=>{e.target&&!r.current&&BM(AM,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function zM(){let e=new CustomEvent(OM);document.dispatchEvent(e)}function BM(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?TM(i,a):i.dispatchEvent(a)}var VM=globalThis?.document?w.useLayoutEffect:()=>{},HM=w.useId||(()=>void 0),UM=0;function WM(e){let[t,n]=w.useState(HM());return VM(()=>{e||n(e=>e??String(UM++))},[e]),e||(t?`radix-${t}`:``)}var GM=[`top`,`right`,`bottom`,`left`],KM=Math.min,qM=Math.max,JM=Math.round,YM=Math.floor,XM=e=>({x:e,y:e}),ZM={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function QM(e,t,n){return qM(e,KM(t,n))}function $M(e,t){return typeof e==`function`?e(t):e}function eN(e){return e.split(`-`)[0]}function tN(e){return e.split(`-`)[1]}function nN(e){return e===`x`?`y`:`x`}function rN(e){return e===`y`?`height`:`width`}function iN(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function aN(e){return nN(iN(e))}function oN(e,t,n){n===void 0&&(n=!1);let r=tN(e),i=aN(e),a=rN(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=hN(o)),[o,hN(o)]}function sN(e){let t=hN(e);return[cN(e),t,cN(t)]}function cN(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var lN=[`left`,`right`],uN=[`right`,`left`],dN=[`top`,`bottom`],fN=[`bottom`,`top`];function pN(e,t,n){switch(e){case`top`:case`bottom`:return n?t?uN:lN:t?lN:uN;case`left`:case`right`:return t?dN:fN;default:return[]}}function mN(e,t,n,r){let i=tN(e),a=pN(eN(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(cN)))),a}function hN(e){let t=eN(e);return ZM[t]+e.slice(t.length)}function gN(e){return{top:0,right:0,bottom:0,left:0,...e}}function _N(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:gN(e)}function vN(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function yN(e,t,n){let{reference:r,floating:i}=e,a=iN(t),o=aN(t),s=rN(o),c=eN(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(tN(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function bN(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=$M(t,e),p=_N(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=vN(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=vN(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var xN=50,SN=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:bN},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=yN(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<xN&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=yN(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},CN=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=$M(e,t)||{};if(l==null)return{};let d=_N(u),f={x:n,y:r},p=aN(i),m=rN(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,ee=KM(d[_],T),E=KM(d[v],T),D=ee,te=C-h[m]-E,O=C/2-h[m]/2+w,ne=QM(D,O,te),k=!c.arrow&&tN(i)!=null&&O!==ne&&a.reference[m]/2-(O<D?ee:E)-h[m]/2<0,A=k?O<D?O-D:O-te:0;return{[p]:f[p]+A,data:{[p]:ne,centerOffset:O-ne-A,...k&&{alignmentOffset:A}},reset:k}}}),wN=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=$M(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=eN(r),_=iN(o),v=eN(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[hN(o)]:sN(o)),x=p!==`none`;!d&&x&&b.push(...mN(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=oN(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==iN(t))||T.every(e=>iN(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=iN(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function TN(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function EN(e){return GM.some(t=>e[t]>=0)}var DN=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=$M(e,t);switch(i){case`referenceHidden`:{let e=TN(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:EN(e)}}}case`escaped`:{let e=TN(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:EN(e)}}}default:return{}}}}},ON=new Set([`left`,`top`]);async function kN(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=eN(n),s=tN(n),c=iN(n)===`y`,l=ON.has(o)?-1:1,u=a&&c?-1:1,d=$M(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var AN=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await kN(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},jN=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=$M(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=iN(eN(i)),p=nN(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=QM(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=QM(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},MN=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=$M(e,t),u={x:n,y:r},d=iN(i),f=nN(d),p=u[f],m=u[d],h=$M(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=ON.has(eN(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},NN=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=$M(e,t),u=await o.detectOverflow(t,l),d=eN(i),f=tN(i),p=iN(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=KM(h-u[g],v),x=KM(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=qM(u.left,0),t=qM(u.right,0),n=qM(u.top,0),r=qM(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:qM(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:qM(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function PN(){return typeof window<`u`}function FN(e){return RN(e)?(e.nodeName||``).toLowerCase():`#document`}function IN(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function LN(e){return((RN(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function RN(e){return PN()?e instanceof Node||e instanceof IN(e).Node:!1}function zN(e){return PN()?e instanceof Element||e instanceof IN(e).Element:!1}function BN(e){return PN()?e instanceof HTMLElement||e instanceof IN(e).HTMLElement:!1}function VN(e){return!PN()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof IN(e).ShadowRoot}function HN(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=$N(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function UN(e){return/^(table|td|th)$/.test(FN(e))}function WN(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var GN=/transform|translate|scale|rotate|perspective|filter/,KN=/paint|layout|strict|content/,qN=e=>!!e&&e!==`none`,JN;function YN(e){let t=zN(e)?$N(e):e;return qN(t.transform)||qN(t.translate)||qN(t.scale)||qN(t.rotate)||qN(t.perspective)||!ZN()&&(qN(t.backdropFilter)||qN(t.filter))||GN.test(t.willChange||``)||KN.test(t.contain||``)}function XN(e){let t=tP(e);for(;BN(t)&&!QN(t);){if(YN(t))return t;if(WN(t))return null;t=tP(t)}return null}function ZN(){return JN??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),JN}function QN(e){return/^(html|body|#document)$/.test(FN(e))}function $N(e){return IN(e).getComputedStyle(e)}function eP(e){return zN(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function tP(e){if(FN(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||VN(e)&&e.host||LN(e);return VN(t)?t.host:t}function nP(e){let t=tP(e);return QN(t)?e.ownerDocument?e.ownerDocument.body:e.body:BN(t)&&HN(t)?t:nP(t)}function rP(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=nP(e),i=r===e.ownerDocument?.body,a=IN(r);if(i){let e=iP(a);return t.concat(a,a.visualViewport||[],HN(r)?r:[],e&&n?rP(e):[])}else return t.concat(r,rP(r,[],n))}function iP(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function aP(e){let t=$N(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=BN(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=JM(n)!==a||JM(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function oP(e){return zN(e)?e:e.contextElement}function sP(e){let t=oP(e);if(!BN(t))return XM(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=aP(t),o=(a?JM(n.width):n.width)/r,s=(a?JM(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var cP=XM(0);function lP(e){let t=IN(e);return!ZN()||!t.visualViewport?cP:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function uP(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==IN(e)?!1:t}function dP(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=oP(e),o=XM(1);t&&(r?zN(r)&&(o=sP(r)):o=sP(e));let s=uP(a,n,r)?lP(a):XM(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=IN(a),t=r&&zN(r)?IN(r):r,n=e,i=iP(n);for(;i&&r&&t!==n;){let e=sP(i),t=i.getBoundingClientRect(),r=$N(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=IN(i),i=iP(n)}}return vN({width:u,height:d,x:c,y:l})}function fP(e,t){let n=eP(e).scrollLeft;return t?t.left+n:dP(LN(e)).left+n}function pP(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-fP(e,n),y:n.top+t.scrollTop}}function mP(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=LN(r),s=t?WN(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=XM(1),u=XM(0),d=BN(r);if((d||!d&&!a)&&((FN(r)!==`body`||HN(o))&&(c=eP(r)),d)){let e=dP(r);l=sP(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?pP(o,c):XM(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function hP(e){return Array.from(e.getClientRects())}function gP(e){let t=LN(e),n=eP(e),r=e.ownerDocument.body,i=qM(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=qM(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+fP(e),s=-n.scrollTop;return $N(r).direction===`rtl`&&(o+=qM(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var _P=25;function vP(e,t){let n=IN(e),r=LN(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=ZN();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=fP(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=_P&&(a-=o)}else l<=_P&&(a+=l);return{width:a,height:o,x:s,y:c}}function yP(e,t){let n=dP(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=BN(e)?sP(e):XM(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function bP(e,t,n){let r;if(t===`viewport`)r=vP(e,n);else if(t===`document`)r=gP(LN(e));else if(zN(t))r=yP(t,n);else{let n=lP(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return vN(r)}function xP(e,t){let n=tP(e);return n===t||!zN(n)||QN(n)?!1:$N(n).position===`fixed`||xP(n,t)}function SP(e,t){let n=t.get(e);if(n)return n;let r=rP(e,[],!1).filter(e=>zN(e)&&FN(e)!==`body`),i=null,a=$N(e).position===`fixed`,o=a?tP(e):e;for(;zN(o)&&!QN(o);){let t=$N(o),n=YN(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||HN(o)&&!n&&xP(e,o))?r=r.filter(e=>e!==o):i=t,o=tP(o)}return t.set(e,r),r}function CP(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?WN(t)?[]:SP(t,this._c):[].concat(n),r],o=bP(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=bP(t,a[e],i);s=qM(n.top,s),c=KM(n.right,c),l=KM(n.bottom,l),u=qM(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function wP(e){let{width:t,height:n}=aP(e);return{width:t,height:n}}function TP(e,t,n){let r=BN(t),i=LN(t),a=n===`fixed`,o=dP(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=XM(0);function l(){c.x=fP(i)}if(r||!r&&!a)if((FN(t)!==`body`||HN(i))&&(s=eP(t)),r){let e=dP(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?pP(i,s):XM(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function EP(e){return $N(e).position===`static`}function DP(e,t){if(!BN(e)||$N(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return LN(e)===n&&(n=n.ownerDocument.body),n}function OP(e,t){let n=IN(e);if(WN(e))return n;if(!BN(e)){let t=tP(e);for(;t&&!QN(t);){if(zN(t)&&!EP(t))return t;t=tP(t)}return n}let r=DP(e,t);for(;r&&UN(r)&&EP(r);)r=DP(r,t);return r&&QN(r)&&EP(r)&&!YN(r)?n:r||XN(e)||n}var kP=async function(e){let t=this.getOffsetParent||OP,n=this.getDimensions,r=await n(e.floating);return{reference:TP(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function AP(e){return $N(e).direction===`rtl`}var jP={convertOffsetParentRelativeRectToViewportRelativeRect:mP,getDocumentElement:LN,getClippingRect:CP,getOffsetParent:OP,getElementRects:kP,getClientRects:hP,getDimensions:wP,getScale:sP,isElement:zN,isRTL:AP};function MP(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function NP(e,t){let n=null,r,i=LN(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=YM(d),h=YM(i.clientWidth-(u+f)),g=YM(i.clientHeight-(d+p)),_=YM(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:qM(0,KM(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!MP(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function PP(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=oP(e),u=i||a?[...l?rP(l):[],...t?rP(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?NP(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?dP(e):null;c&&g();function g(){let t=dP(e);h&&!MP(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var FP=AN,IP=jN,LP=wN,RP=NN,zP=DN,BP=CN,VP=MN,HP=(e,t,n)=>{let r=new Map,i={platform:jP,...n},a={...i.platform,_c:r};return SN(e,t,{...i,platform:a})},UP=typeof document<`u`?w.useLayoutEffect:function(){};function WP(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!WP(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!WP(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function GP(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function KP(e,t){let n=GP(e);return Math.round(t*n)/n}function qP(e){let t=w.useRef(e);return UP(()=>{t.current=e}),t}function JP(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=w.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=w.useState(r);WP(f,r)||p(r);let[m,h]=w.useState(null),[g,_]=w.useState(null),v=w.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=w.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=w.useRef(null),C=w.useRef(null),T=w.useRef(u),ee=c!=null,E=qP(c),D=qP(i),te=qP(l),O=w.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),HP(S.current,C.current,e).then(e=>{let t={...e,isPositioned:te.current!==!1};ne.current&&!WP(T.current,t)&&(T.current=t,oA.flushSync(()=>{d(t)}))})},[f,t,n,D,te]);UP(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let ne=w.useRef(!1);UP(()=>(ne.current=!0,()=>{ne.current=!1}),[]),UP(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,O);O()}},[b,x,O,E,ee]);let k=w.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),A=w.useMemo(()=>({reference:b,floating:x}),[b,x]),re=w.useMemo(()=>{let e={position:n,left:0,top:0};if(!A.floating)return e;let t=KP(A.floating,u.x),r=KP(A.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...GP(A.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,A.floating,u.x,u.y]);return w.useMemo(()=>({...u,update:O,refs:k,elements:A,floatingStyles:re}),[u,O,k,A,re])}var YP=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:BP({element:r.current,padding:i}).fn(n):r?BP({element:r,padding:i}).fn(n):{}}}},XP=(e,t)=>{let n=FP(e);return{name:n.name,fn:n.fn,options:[e,t]}},ZP=(e,t)=>{let n=IP(e);return{name:n.name,fn:n.fn,options:[e,t]}},QP=(e,t)=>({fn:VP(e).fn,options:[e,t]}),$P=(e,t)=>{let n=LP(e);return{name:n.name,fn:n.fn,options:[e,t]}},eF=(e,t)=>{let n=RP(e);return{name:n.name,fn:n.fn,options:[e,t]}},tF=(e,t)=>{let n=zP(e);return{name:n.name,fn:n.fn,options:[e,t]}},nF=(e,t)=>{let n=YP(e);return{name:n.name,fn:n.fn,options:[e,t]}},rF=`Arrow`,iF=w.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,xM.jsx)(wM.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,xM.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});iF.displayName=rF;var aF=iF;function oF(e){let[t,n]=w.useState(void 0);return VM(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var sF=`Popper`,[cF,lF]=SM(sF),[uF,dF]=cF(sF),fF=e=>{let{__scopePopper:t,children:n}=e,[r,i]=w.useState(null),[a,o]=w.useState(void 0);return(0,xM.jsx)(uF,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})};fF.displayName=sF;var pF=`PopperAnchor`,mF=w.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=dF(pF,n),o=w.useRef(null),s=a.onAnchorChange,c=On(t,w.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=w.useRef(null);w.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&wF(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,xM.jsx)(wM.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})});mF.displayName=pF;var hF=`PopperContent`,[gF,_F]=cF(hF),vF=w.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=dF(hF,n),[_,v]=w.useState(null),y=On(t,v),[b,x]=w.useState(null),S=oF(b),C=S?.width??0,T=S?.height??0,ee=r+(a===`center`?``:`-`+a),E=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},D=Array.isArray(l)?l:[l],te=D.length>0,O={padding:E,boundary:D.filter(SF),altBoundary:te},{refs:ne,floatingStyles:k,placement:A,isPositioned:re,middlewareData:ie}=JP({strategy:`fixed`,placement:ee,whileElementsMounted:(...e)=>PP(...e,{animationFrame:p===`always`}),elements:{reference:g.anchor},middleware:[XP({mainAxis:i+T,alignmentAxis:o}),c&&ZP({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?QP():void 0,...O}),c&&$P({...O}),eF({...O,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),b&&nF({element:b,padding:s}),CF({arrowWidth:C,arrowHeight:T}),f&&tF({strategy:`referenceHidden`,...O,boundary:te?O.boundary:void 0})]}),j=g.setPlacementState;VM(()=>(j(A),()=>{j(void 0)}),[A,j]);let[ae,oe]=wF(A),se=EM(m);VM(()=>{re&&se?.()},[re,se]);let ce=ie.arrow?.x,le=ie.arrow?.y,ue=ie.arrow?.centerOffset!==0,[de,fe]=w.useState();return VM(()=>{_&&fe(window.getComputedStyle(_).zIndex)},[_]),(0,xM.jsx)(`div`,{ref:ne.setFloating,"data-radix-popper-content-wrapper":``,style:{...k,transform:re?k.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:de,"--radix-popper-transform-origin":[ie.transformOrigin?.x,ie.transformOrigin?.y].join(` `),...ie.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,xM.jsx)(gF,{scope:n,placedSide:ae,placedAlign:oe,onArrowChange:x,arrowX:ce,arrowY:le,shouldHideArrow:ue,children:(0,xM.jsx)(wM.div,{"data-side":ae,"data-align":oe,...h,ref:y,style:{...h.style,animation:re?void 0:`none`}})})})});vF.displayName=hF;var yF=`PopperArrow`,bF={top:`bottom`,right:`left`,bottom:`top`,left:`right`},xF=w.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=_F(yF,n),a=bF[i.placedSide];return(0,xM.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,xM.jsx)(aF,{...r,ref:t,style:{...r.style,display:`block`}})})});xF.displayName=yF;function SF(e){return e!==null}var CF=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=wF(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function wF(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var TF=fF,EF=mF,DF=vF,OF=xF,kF=`Portal`,AF=w.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=w.useState(!1);VM(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?oA.createPortal((0,xM.jsx)(wM.div,{...r,ref:t}),o):null});AF.displayName=kF;function jF(e,t){return w.useReducer((e,n)=>t[e][n]??e,e)}var MF=e=>{let{present:t,children:n}=e,r=NF(t),i=typeof n==`function`?n({present:r.isPresent}):w.Children.only(n),a=FF(r.ref,LF(i));return typeof n==`function`||r.isPresent?w.cloneElement(i,{ref:a}):null};MF.displayName=`Presence`;function NF(e){let[t,n]=w.useState(),r=w.useRef(null),i=w.useRef(e),a=w.useRef(`none`),o=w.useRef(void 0),[s,c]=jF(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return w.useEffect(()=>{s===`mounted`?(a.current=o.current??IF(r.current),o.current=void 0):a.current=`none`},[s]),VM(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=IF(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),VM(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=IF(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(a.current=IF(r.current))};return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:w.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=IF(t)}else r.current=null;n(e)},[])}}function PF(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function FF(...e){let t=w.useRef(e);return t.current=e,w.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=PF(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():PF(n[e],null)}}},[])}function IF(e){return e?.animationName||`none`}function LF(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var RF=w.useInsertionEffect||VM;function zF({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=BF({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=w.useRef(e!==void 0);w.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,w.useCallback(t=>{if(s){let n=VF(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function BF({defaultProp:e,onChange:t}){let[n,r]=w.useState(e),i=w.useRef(n),a=w.useRef(t);return RF(()=>{a.current=t},[t]),w.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function VF(e){return typeof e==`function`}var HF=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),UF=`VisuallyHidden`,WF=w.forwardRef((e,t)=>(0,xM.jsx)(wM.span,{...e,ref:t,style:{...HF,...e.style}}));WF.displayName=UF;var GF=WF,[KF,qF]=SM(`Tooltip`,[lF]),JF=lF(),YF=`TooltipProvider`,XF=700,ZF=`tooltip.open`,[QF,$F]=KF(YF),eI=e=>{let{__scopeTooltip:t,delayDuration:n=XF,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=w.useRef(!0),s=w.useRef(!1),c=w.useRef(0);return w.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,xM.jsx)(QF,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:w.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:w.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:w.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};eI.displayName=YF;var tI=`Tooltip`,[nI,rI]=KF(tI),iI=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=$F(tI,e.__scopeTooltip),l=JF(t),[u,d]=w.useState(null),f=WM(),p=w.useRef(0),m=o??c.disableHoverableContent,h=s??c.delayDuration,g=w.useRef(!1),[_,v]=zF({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(ZF))):c.onClose(),a?.(e)},caller:tI}),y=w.useMemo(()=>_?g.current?`delayed-open`:`instant-open`:`closed`,[_]),b=w.useCallback(()=>{window.clearTimeout(p.current),p.current=0,g.current=!1,v(!0)},[v]),x=w.useCallback(()=>{window.clearTimeout(p.current),p.current=0,v(!1)},[v]),S=w.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,v(!0),p.current=0},h)},[h,v]);return w.useEffect(()=>()=>{p.current&&=(window.clearTimeout(p.current),0)},[]),(0,xM.jsx)(TF,{...l,children:(0,xM.jsx)(nI,{scope:t,contentId:f,open:_,stateAttribute:y,trigger:u,onTriggerChange:d,onTriggerEnter:w.useCallback(()=>{c.isOpenDelayedRef.current?S():b()},[c.isOpenDelayedRef,S,b]),onTriggerLeave:w.useCallback(()=>{m?x():(window.clearTimeout(p.current),p.current=0)},[x,m]),onOpen:b,onClose:x,disableHoverableContent:m,children:n})})};iI.displayName=tI;var aI=`TooltipTrigger`,oI=w.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=rI(aI,n),a=$F(aI,n),o=JF(n),s=On(t,w.useRef(null),i.onTriggerChange),c=w.useRef(!1),l=w.useRef(!1),u=w.useCallback(()=>c.current=!1,[]);return w.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,xM.jsx)(EF,{asChild:!0,...o,children:(0,xM.jsx)(wM.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:yM(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:yM(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:yM(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:yM(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:yM(e.onBlur,i.onClose),onClick:yM(e.onClick,i.onClose)})})});oI.displayName=aI;var sI=`TooltipPortal`,[cI,lI]=KF(sI,{forceMount:void 0}),uI=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=rI(sI,t);return(0,xM.jsx)(cI,{scope:t,forceMount:n,children:(0,xM.jsx)(MF,{present:n||a.open,children:(0,xM.jsx)(AF,{asChild:!0,container:i,children:r})})})};uI.displayName=sI;var dI=`TooltipContent`,fI=w.forwardRef((e,t)=>{let n=lI(dI,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=rI(dI,e.__scopeTooltip);return(0,xM.jsx)(MF,{present:r||o.open,children:o.disableHoverableContent?(0,xM.jsx)(_I,{side:i,...a,ref:t}):(0,xM.jsx)(pI,{side:i,...a,ref:t})})}),pI=w.forwardRef((e,t)=>{let n=rI(dI,e.__scopeTooltip),r=$F(dI,e.__scopeTooltip),i=w.useRef(null),a=On(t,i),[o,s]=w.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=w.useCallback(()=>{s(null),d(!1)},[d]),p=w.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=xI(r,bI(r,n.getBoundingClientRect())),a=SI(t.getBoundingClientRect()),o=wI([...i,...a]);s(o),d(!0)},[d]);return w.useEffect(()=>()=>f(),[f]),w.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),w.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!CI(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,xM.jsx)(_I,{...e,ref:a})}),[mI,hI]=KF(tI,{isInside:!1}),gI=Mn(`TooltipContent`),_I=w.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=rI(dI,n),l=JF(n),{onClose:u}=c;return w.useEffect(()=>(document.addEventListener(ZF,u),()=>document.removeEventListener(ZF,u)),[u]),w.useEffect(()=>{if(c.trigger){let e=e=>{e.target instanceof Node&&e.target.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,xM.jsx)(NM,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,xM.jsxs)(DF,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,xM.jsx)(gI,{children:r}),(0,xM.jsx)(mI,{scope:n,isInside:!0,children:(0,xM.jsx)(GF,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});fI.displayName=dI;var vI=`TooltipArrow`,yI=w.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=JF(n);return hI(vI,n).isInside?null:(0,xM.jsx)(OF,{...i,...r,ref:t})});yI.displayName=vI;function bI(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function xI(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function SI(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function CI(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function wI(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),TI(t)}function TI(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var EI=eI,DI=iI,OI=oI,kI=uI,AI=fI,jI=yI,MI=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/tooltip.tsx`;function NI({delayDuration:e=0,...t}){return(0,I.jsxDEV)(EI,{"data-slot":`tooltip-provider`,delayDuration:e,...t},void 0,!1,{fileName:MI,lineNumber:13,columnNumber:10},this)}function PI({...e}){return(0,I.jsxDEV)(DI,{"data-slot":`tooltip`,...e},void 0,!1,{fileName:MI,lineNumber:17,columnNumber:10},this)}function FI({...e}){return(0,I.jsxDEV)(OI,{"data-slot":`tooltip-trigger`,...e},void 0,!1,{fileName:MI,lineNumber:21,columnNumber:10},this)}function II({className:e,sideOffset:t=4,children:n,...r}){return(0,I.jsxDEV)(kI,{children:(0,I.jsxDEV)(AI,{"data-slot":`tooltip-content`,sideOffset:t,className:xn(`z-50 w-fit rounded-md border border-border bg-card px-2.5 py-1 text-2xs text-card-foreground shadow-lg shadow-black/40`,e),...r,children:[n,(0,I.jsxDEV)(jI,{className:`z-50 size-2 translate-y-[calc(-50%_-_1px)] rotate-45 rounded-[2px] border-border bg-card fill-card`},void 0,!1,{fileName:MI,lineNumber:37,columnNumber:9},this)]},void 0,!0,{fileName:MI,lineNumber:27,columnNumber:7},this)},void 0,!1,{fileName:MI,lineNumber:26,columnNumber:5},this)}var LI=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-annotatable-section.tsx`;function RI(e){let t=[];for(let n of Array.from(e.children)){let e=n.tagName.toLowerCase();if(e===`ul`||e===`ol`)for(let e of Array.from(n.children))e.tagName.toLowerCase()===`li`&&t.push(e);else t.push(n)}return t}function zI({label:e,icon:t,variant:n=`ghost`,...r}){return(0,I.jsxDEV)(PI,{children:[(0,I.jsxDEV)(FI,{asChild:!0,children:(0,I.jsxDEV)(L,{type:`button`,variant:n,"aria-label":e,...r,size:`icon-xs`,children:t},void 0,!1,{fileName:LI,lineNumber:55,columnNumber:9},this)},void 0,!1,{fileName:LI,lineNumber:54,columnNumber:7},this),(0,I.jsxDEV)(II,{children:e},void 0,!1,{fileName:LI,lineNumber:57,columnNumber:7},this)]},void 0,!0,{fileName:LI,lineNumber:53,columnNumber:5},this)}function BI({plan:e,dimension:t,content:n,disabled:r,defaultOpen:i=!1,onSaveSection:a,onSelectAnnotationTarget:o}){let s=w.useRef(null),[c,l]=w.useState(null),[u,d]=w.useState(null),[f,p]=w.useState(i),[m,h]=w.useState(!1),g=rj(t),_=n.trim().length>0,v=w.useCallback(()=>{let e=s.current;if(!e||!f||m)return l(null);let n=window.getSelection(),r=Aj(n,e,t,`${g} selection`);if(!r||!n||n.rangeCount===0)return l(null);let i=n.getRangeAt(0),a=typeof i.getBoundingClientRect==`function`?i.getBoundingClientRect():null,o=e.getBoundingClientRect();l({target:r,top:a?a.top-o.top:0,bottom:a?a.bottom-o.top:0,left:a?a.left-o.left+a.width/2:0})},[t,g,f,m]);w.useLayoutEffect(()=>{let e=s.current;if(!f||!e)return;let t=()=>{let t=e.querySelector(`.plan-prose`);t&&RI(t).forEach((e,t)=>{e.tabIndex=0,e.setAttribute(`role`,`group`),e.setAttribute(`aria-label`,`${g} block ${t+1}`),e.dataset.planAnnotationBlock=String(t+1)})};t();let n=new MutationObserver(t);return n.observe(e,{childList:!0,subtree:!0}),()=>n.disconnect()},[n,f,g]),w.useEffect(()=>(document.addEventListener(`selectionchange`,v),()=>document.removeEventListener(`selectionchange`,v)),[v]),w.useEffect(()=>{p(i),h(!1),l(null),d(null)},[e.session,t,i]),w.useEffect(()=>{l(null),d(null)},[n]),w.useEffect(()=>{(!f||m)&&(l(null),d(null))},[m,f]);let y=(e,t)=>{e&&(o(e,t??null),l(null),d(null),window.getSelection()?.removeAllRanges())},b=e=>{let n=s.current,r=e.target?.closest(`[data-plan-annotation-block]`);if(!n||!r||!n.contains(r))return;let i=jj(r,n,t,`${g} block`);if(!i)return;let a=r.getBoundingClientRect(),o=n.getBoundingClientRect();d({target:i,top:a.top-o.top,left:a.right-o.left})},x=async e=>{a&&(await a(t,e),h(!1))},S=c!==null&&c.top<32,C=c?S?c.bottom??c.top:c.top:0,T=S?`translate(-50%, 6px)`:`translate(-50%, calc(-100% - 6px))`;return(0,I.jsxDEV)(NI,{children:(0,I.jsxDEV)(`section`,{className:`rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex w-full items-center gap-2`,children:[(0,I.jsxDEV)(`button`,{type:`button`,className:`flex flex-1 items-center gap-2 text-left`,"aria-label":`Toggle ${g} section`,"aria-expanded":f,onClick:()=>p(e=>!e),children:[(0,I.jsxDEV)(j,{className:`h-4 w-4 text-muted-foreground transition-transform ${f?`rotate-90`:``}`},void 0,!1,{fileName:LI,lineNumber:169,columnNumber:13},this),(0,I.jsxDEV)(`h5`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:g},void 0,!1,{fileName:LI,lineNumber:170,columnNumber:13},this)]},void 0,!0,{fileName:LI,lineNumber:168,columnNumber:11},this),f&&(0,I.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:[a&&!m&&(0,I.jsxDEV)(zI,{label:`Edit ${g}`,icon:(0,I.jsxDEV)(Oe,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:175,columnNumber:59},this),disabled:r,onClick:()=>h(!0)},void 0,!1,{fileName:LI,lineNumber:175,columnNumber:17},this),(0,I.jsxDEV)(zI,{label:`Annotate the entire ${g} section`,icon:(0,I.jsxDEV)(we,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:177,columnNumber:80},this),disabled:r||!_,onClick:e=>y(Mj(t,g,n),e.currentTarget.getBoundingClientRect())},void 0,!1,{fileName:LI,lineNumber:177,columnNumber:15},this)]},void 0,!0,{fileName:LI,lineNumber:173,columnNumber:13},this)]},void 0,!0,{fileName:LI,lineNumber:167,columnNumber:9},this),f&&(m&&a?(0,I.jsxDEV)(Xj,{dimension:t,disabled:r,initialContent:n,onSave:x,onCancel:()=>h(!1)},void 0,!1,{fileName:LI,lineNumber:182,columnNumber:13},this):(0,I.jsxDEV)(`div`,{ref:s,className:`relative mt-2`,onMouseOver:b,onFocus:b,onMouseLeave:()=>d(null),children:[(0,I.jsxDEV)(zO,{markdown:n},void 0,!1,{fileName:LI,lineNumber:185,columnNumber:15},this),c&&!r&&(0,I.jsxDEV)(`div`,{className:`absolute z-20`,style:{top:C,left:c.left,transform:T},children:(0,I.jsxDEV)(L,{type:`button`,size:`xs`,className:`shadow-md`,onMouseDown:e=>e.preventDefault(),onClick:e=>y(c.target,e.currentTarget.getBoundingClientRect()),children:[(0,I.jsxDEV)(we,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:189,columnNumber:21},this),` Annotate`]},void 0,!0,{fileName:LI,lineNumber:188,columnNumber:19},this)},void 0,!1,{fileName:LI,lineNumber:187,columnNumber:17},this),u&&!c&&!r&&(0,I.jsxDEV)(`div`,{className:`absolute z-10`,style:{top:u.top+4,left:u.left,transform:`translateX(-100%)`},children:(0,I.jsxDEV)(zI,{label:`Annotate this block in ${g}`,icon:(0,I.jsxDEV)(we,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:195,columnNumber:79},this),variant:`secondary`,className:`border border-border shadow-sm`,onClick:e=>y(u.target,e.currentTarget.getBoundingClientRect())},void 0,!1,{fileName:LI,lineNumber:195,columnNumber:19},this)},void 0,!1,{fileName:LI,lineNumber:194,columnNumber:17},this)]},void 0,!0,{fileName:LI,lineNumber:184,columnNumber:13},this))]},void 0,!0,{fileName:LI,lineNumber:166,columnNumber:7},this)},void 0,!1,{fileName:LI,lineNumber:165,columnNumber:5},this)}var VI=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-detail.tsx`,HI=sw();function UI({detail:e,artifact:t,revision:n,locked:r,onSelectAnnotationTarget:i,onApply:a,onRefresh:o,onHandoff:s,onDeleted:c,onClose:l}){let u=$n(),d=e.plan,f=e.readiness??{},[p,m]=w.useState(!1),[h,g]=w.useState(!1),[_,v]=w.useState(!1),[y,b]=w.useState({status:`loading`,profiles:[]}),x=async(e,t,n)=>{try{let r=await HI.invokeAction(e,{session:d.session,...t});return a(r),u.push(n,`success`),await o(),r}catch(e){return u.push(e instanceof Error?e.message:String(e),`error`),null}},S=(e,t)=>x(`set-session-plan-section`,{dimension:e,content:t},`Saved ${rj(e)}.`).then(()=>void 0),C=(e,t)=>x(`select-session-plan-dimensions`,{planningType:e,planningDepth:t},`Applied dimension selection.`).then(()=>void 0),T=e=>x(`update-session-plan-metadata`,{profile:e.profile,agentProfile:e.agentProfile,openQuestions:e.openQuestions},`Updated metadata.`).then(e=>e!==null),ee=()=>void x(`set-session-plan-ready`,{},`Marked ready.`),E=f.ready===!0,D=d.status===`ready`,te=E&&!D,O=E&&D,k=E&&(d.status===`submitted`||d.status===`removed`),A=HA(e,t);w.useEffect(()=>{O||m(!1)},[O]),w.useEffect(()=>{k||g(!1)},[k]),w.useEffect(()=>{let e=!0;return b(e=>({status:`loading`,profiles:e.profiles,active:e.active})),HI.invokeAction(`list-agent-runtime-profiles`,{scope:`all`}).then(t=>{e&&b({status:t.profiles.length>0?`success`:`empty`,profiles:t.profiles,active:t.active})}).catch(t=>{e&&b({status:`error`,profiles:[],error:t instanceof Error?t.message:String(t)})}),()=>{e=!1}},[d.session]);let re=async()=>{if(O){if(!p){m(!0),g(!1),v(!1);return}m(!1),await s(d.session)}},ie=async()=>{if(k){if(!h){g(!0),m(!1),v(!1);return}g(!1);try{let e=await sw().invokeAction(`resubmit-session-plan`,{session:d.session});u.push(e.message??`Resubmitted ${d.session}.`,e.kind===`enqueued`?`success`:`error`),await o()}catch(e){u.push(e instanceof Error?e.message:String(e),`error`)}}},j=async()=>{if(!_){v(!0),m(!1),g(!1);return}v(!1);try{let e=await HI.invokeAction(`delete-session-plan`,{session:d.session});u.push(e.message??`Deleted ${d.session}.`,`success`),await c()}catch(e){u.push(e instanceof Error?e.message:String(e),`error`)}},ae=Object.entries(d.sections??{}),oe=ae.find(([e])=>qI(e)),ce=ae.filter(([e])=>!qI(e)),le=(f.missingDimensions?.length??0)+(f.acDiagnostics?.length??0),ue=f.coveredDimensions?.length??0,de=ue+(f.missingDimensions?.length??0)+(f.skippedDimensions?.length??0),fe=O?`Ready for handoff`:E?`Checks pass · mark ready to hand off`:de>0?`${ue}/${de} covered · ${le} to resolve`:`Not started`;return(0,I.jsxDEV)(VO,{"aria-label":`Plan ${d.session}`,children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{children:rT(d.topic,d.session)},void 0,!1,{fileName:VI,lineNumber:159,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:d.session},void 0,!1,{fileName:VI,lineNumber:160,columnNumber:11},this)]},void 0,!0,{fileName:VI,lineNumber:158,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[te&&(0,I.jsxDEV)(L,{variant:`secondary`,size:`sm`,disabled:r,onClick:ee,children:[(0,I.jsxDEV)(se,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:163,columnNumber:103},this),` Mark ready`]},void 0,!0,{fileName:VI,lineNumber:163,columnNumber:28},this),k&&(0,I.jsxDEV)(L,{variant:h?`destructive`:`secondary`,size:`sm`,disabled:r,onClick:()=>void ie(),onBlur:()=>g(!1),children:[(0,I.jsxDEV)(Me,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:164,columnNumber:198},this),` `,h?`Confirm resubmit`:`Resubmit`]},void 0,!0,{fileName:VI,lineNumber:164,columnNumber:27},this),(0,I.jsxDEV)(L,{variant:_?`destructive`:`outline`,size:`sm`,disabled:r,onClick:()=>void j(),onBlur:()=>v(!1),children:[(0,I.jsxDEV)(Re,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:166,columnNumber:13},this),` `,_?`Confirm delete`:`Delete`]},void 0,!0,{fileName:VI,lineNumber:165,columnNumber:11},this),(0,I.jsxDEV)(L,{variant:p?`destructive`:`secondary`,size:`sm`,disabled:r||!O,title:O?void 0:E?`Mark ready before handoff.`:`Resolve readiness issues before handoff.`,onClick:()=>void re(),onBlur:()=>m(!1),children:[p?`Confirm handoff`:`Handoff`,` `,(0,I.jsxDEV)(ne,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:176,columnNumber:65},this)]},void 0,!0,{fileName:VI,lineNumber:168,columnNumber:11},this),(0,I.jsxDEV)(L,{variant:`ghost`,size:`icon-xs`,"aria-label":`Close plan`,title:`Close`,className:`ml-1`,onClick:l,children:(0,I.jsxDEV)(Ve,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:178,columnNumber:123},this)},void 0,!1,{fileName:VI,lineNumber:178,columnNumber:11},this)]},void 0,!0,{fileName:VI,lineNumber:162,columnNumber:9},this)]},void 0,!0,{fileName:VI,lineNumber:157,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3 text-sm`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[!D&&(0,I.jsxDEV)(Tn,{children:d.status},void 0,!1,{fileName:VI,lineNumber:183,columnNumber:28},this),!O&&(0,I.jsxDEV)(Tn,{variant:E?`default`:`outline`,children:E?`checks pass`:`not ready`},void 0,!1,{fileName:VI,lineNumber:184,columnNumber:27},this),e.lifecycle?.lifecycleState===`partial`&&(0,I.jsxDEV)(Tn,{variant:`outline`,title:e.lifecycle.partialReasons?.map(e=>e.message).join(` `),children:`partial lifecycle`},void 0,!1,{fileName:VI,lineNumber:185,columnNumber:62},this),d.planning_type&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:d.planning_type},void 0,!1,{fileName:VI,lineNumber:186,columnNumber:34},this),d.planning_depth&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:d.planning_depth},void 0,!1,{fileName:VI,lineNumber:187,columnNumber:35},this),(0,I.jsxDEV)(`span`,{className:`ml-auto text-xs font-semibold ${O?`text-[color:var(--lane-ready)]`:`text-[color:var(--prio-medium)]`}`,children:fe},void 0,!1,{fileName:VI,lineNumber:188,columnNumber:11},this)]},void 0,!0,{fileName:VI,lineNumber:182,columnNumber:9},this),(0,I.jsxDEV)(KI,{timestamps:A},void 0,!1,{fileName:VI,lineNumber:191,columnNumber:9},this),(0,I.jsxDEV)(WI,{detail:e},void 0,!1,{fileName:VI,lineNumber:192,columnNumber:9},this),(0,I.jsxDEV)(GI,{detail:e},void 0,!1,{fileName:VI,lineNumber:193,columnNumber:9},this),oe!==void 0&&(0,I.jsxDEV)(BI,{plan:d,dimension:`executive-summary`,content:oe[1],disabled:r||n.busy||n.loading,defaultOpen:!0,onSaveSection:S,onSelectAnnotationTarget:i},void 0,!1,{fileName:VI,lineNumber:196,columnNumber:11},this),(0,I.jsxDEV)(tM,{plan:d,readiness:f,disabled:r,onSetSection:S,onSelectDimensions:C},void 0,!1,{fileName:VI,lineNumber:207,columnNumber:9},this),(0,I.jsxDEV)(fM,{plan:d},void 0,!1,{fileName:VI,lineNumber:208,columnNumber:9},this),ce.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Sections`},void 0,!1,{fileName:VI,lineNumber:213,columnNumber:15},this),(0,I.jsxDEV)(L,{className:`ml-auto`,size:`sm`,variant:`outline`,disabled:r||n.busy||n.loading,onClick:e=>{let t=Pj(d);t&&i(t,e.currentTarget.getBoundingClientRect())},children:`Annotate whole plan`},void 0,!1,{fileName:VI,lineNumber:214,columnNumber:15},this)]},void 0,!0,{fileName:VI,lineNumber:212,columnNumber:13},this),ce.map(([e,t])=>(0,I.jsxDEV)(BI,{plan:d,dimension:e,content:t,disabled:r||n.busy||n.loading,onSaveSection:S,onSelectAnnotationTarget:i},e,!1,{fileName:VI,lineNumber:217,columnNumber:15},this))]},void 0,!0,{fileName:VI,lineNumber:211,columnNumber:11},this),(0,I.jsxDEV)(ej,{storageKey:`eforge-plan.provenance.${d.session}`,title:`Build activity & metadata`,children:(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(gM,{plan:d,detail:e},void 0,!1,{fileName:VI,lineNumber:224,columnNumber:13},this),(0,I.jsxDEV)(sM,{plan:d,disabled:r,profileOptions:y,onSave:T},void 0,!1,{fileName:VI,lineNumber:225,columnNumber:13},this)]},void 0,!0,{fileName:VI,lineNumber:223,columnNumber:11},this)},void 0,!1,{fileName:VI,lineNumber:222,columnNumber:9},this)]},void 0,!0,{fileName:VI,lineNumber:181,columnNumber:7},this)]},void 0,!0,{fileName:VI,lineNumber:156,columnNumber:5},this)}function WI({detail:e}){let t=e.statusSourceDisclosure??e.plan?.statusSourceDisclosure;return t?(0,I.jsxDEV)(`p`,{className:`rounded border border-border bg-background/40 p-2 text-xs text-muted-foreground`,children:t},void 0,!1,{fileName:VI,lineNumber:236,columnNumber:10},this):null}function GI({detail:e}){let t=e.lifecycle?.partialReasons??e.plan?.partialReasons??[];return e.lifecycle?.lifecycleState!==`partial`||t.length===0?null:(0,I.jsxDEV)(`div`,{className:`rounded border border-amber-500/30 bg-amber-500/10 p-2 text-xs text-amber-900 dark:text-amber-100`,children:[(0,I.jsxDEV)(`div`,{className:`font-semibold`,children:`Partial lifecycle projection`},void 0,!1,{fileName:VI,lineNumber:244,columnNumber:7},this),t.map(e=>(0,I.jsxDEV)(`p`,{children:e.message},e.code,!1,{fileName:VI,lineNumber:245,columnNumber:32},this))]},void 0,!0,{fileName:VI,lineNumber:243,columnNumber:5},this)}function KI({timestamps:e}){return(0,I.jsxDEV)(`dl`,{className:`grid gap-1 rounded border border-border bg-background/40 p-2 text-xs sm:grid-cols-2`,children:[[`Created`,e.createdAt],[`Updated`,e.updatedAt],[`Ready`,e.readyAt],[`Submitted`,e.submittedAt],[`Last build activity`,e.lastBuildActivityAt]].map(([e,t])=>(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`dt`,{className:`text-muted-foreground`,children:e},void 0,!1,{fileName:VI,lineNumber:262,columnNumber:11},this),(0,I.jsxDEV)(`dd`,{className:`font-medium text-text-bright`,children:(0,I.jsxDEV)(GA,{value:t},void 0,!1,{fileName:VI,lineNumber:263,columnNumber:56},this)},void 0,!1,{fileName:VI,lineNumber:263,columnNumber:11},this)]},e,!0,{fileName:VI,lineNumber:261,columnNumber:9},this))},void 0,!1,{fileName:VI,lineNumber:259,columnNumber:5},this)}function qI(e){return e.trim().toLowerCase().replace(/-/g,` `)===`executive summary`}var JI=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/pending-annotation-composer.tsx`,YI=320,XI=4e3;function ZI(e){return e.label?.trim()||(e.dimension?rj(e.dimension):rj(e.kind))}function QI(e){if(!e)return{top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`};let t=Math.max(8,Math.min(e.left,window.innerWidth-YI-8));return e.bottom>window.innerHeight*.6?{left:t,bottom:Math.max(8,window.innerHeight-e.top+6)}:{left:t,top:Math.min(e.bottom+6,window.innerHeight-8)}}function $I({target:e,anchor:t,busy:n,onSave:r,onCancel:i}){let[a,o]=w.useState(``),[s,c]=w.useState(null),l=e.quoteContext,u=a.length,d=u>XI;w.useEffect(()=>{o(``),c(null)},[e]);let f=async()=>{if(d)return;c(null);let e=await r(a.trim());e.ok?o(``):c(e.error??`Annotation could not be saved. Keep the draft open and retry.`)};return(0,oA.createPortal)((0,I.jsxDEV)(`div`,{role:`dialog`,"aria-label":`Pending annotation composer`,className:`fixed z-50 grid gap-2 rounded-md border border-primary/40 bg-card p-3 shadow-lg shadow-black/40`,style:{width:YI,...QI(t)},onKeyDown:e=>{e.key===`Escape`&&i()},children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(we,{className:`h-4 w-4 text-primary`},void 0,!1,{fileName:JI,lineNumber:72,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-semibold text-text-bright`,title:ZI(e),children:ZI(e)},void 0,!1,{fileName:JI,lineNumber:73,columnNumber:9},this),(0,I.jsxDEV)(Tn,{variant:`outline`,children:e.kind},void 0,!1,{fileName:JI,lineNumber:74,columnNumber:9},this)]},void 0,!0,{fileName:JI,lineNumber:71,columnNumber:7},this),(0,I.jsxDEV)(`blockquote`,{className:`max-h-20 overflow-auto rounded border-l-2 border-primary/40 bg-background/80 px-2 py-1 text-2xs leading-snug text-muted-foreground`,children:[l.prefix&&(0,I.jsxDEV)(`span`,{children:l.prefix},void 0,!1,{fileName:JI,lineNumber:77,columnNumber:26},this),(0,I.jsxDEV)(`span`,{className:`text-text-bright`,children:l.exact},void 0,!1,{fileName:JI,lineNumber:78,columnNumber:9},this),l.suffix&&(0,I.jsxDEV)(`span`,{children:l.suffix},void 0,!1,{fileName:JI,lineNumber:79,columnNumber:26},this)]},void 0,!0,{fileName:JI,lineNumber:76,columnNumber:7},this),(0,I.jsxDEV)(YO,{autoFocus:!0,"aria-label":`Annotation note`,value:a,disabled:n,onChange:e=>{o(e.target.value),c(null)},placeholder:`Describe what should change or what needs review…`},void 0,!1,{fileName:JI,lineNumber:81,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2 text-2xs`,children:[(0,I.jsxDEV)(`span`,{className:d?`text-destructive-foreground`:`text-muted-foreground`,children:[u,` / `,XI,` characters`]},void 0,!0,{fileName:JI,lineNumber:83,columnNumber:9},this),d&&(0,I.jsxDEV)(`span`,{className:`text-destructive-foreground`,children:`Shorten before saving.`},void 0,!1,{fileName:JI,lineNumber:84,columnNumber:23},this)]},void 0,!0,{fileName:JI,lineNumber:82,columnNumber:7},this),s&&(0,I.jsxDEV)(`p`,{role:`alert`,className:`rounded border border-destructive/40 bg-destructive/10 px-2 py-1 text-xs text-destructive-foreground`,children:s},void 0,!1,{fileName:JI,lineNumber:86,columnNumber:21},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:n||d,title:d?`Annotation exceeds the backend body limit.`:void 0,onClick:()=>void f(),children:`Save annotation`},void 0,!1,{fileName:JI,lineNumber:88,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:i,children:`Cancel annotation`},void 0,!1,{fileName:JI,lineNumber:89,columnNumber:9},this)]},void 0,!0,{fileName:JI,lineNumber:87,columnNumber:7},this)]},void 0,!0,{fileName:JI,lineNumber:64,columnNumber:5},this),document.body)}var eL=1600;function tL(e){let t=e instanceof Error?e.message:String(e);return/no revision session|not found|missing revision session|does not exist/i.test(t)}function nL({session:e,onApply:t,onRefresh:n,autoLoadExisting:r=!1}){let i=$n(),[a,o]=w.useState(null),[s,c]=w.useState(!1),[l,u]=w.useState(!1),[d,f]=w.useState(!1),p=w.useRef(new Set),m=w.useRef(new Set),h=w.useRef(new Set),g=w.useRef(0),_=w.useRef(e);_.current=e;let v=w.useCallback(e=>e.targetSession===_.current?(g.current+=1,o(e),c(!0),e):e,[]);w.useEffect(()=>{o(null),c(!1),u(!1),f(!1),p.current=new Set,m.current=new Set,h.current=new Set,g.current=0},[e]);let y=w.useCallback(async()=>{u(!0);try{return v(await sw().invokeAction(`get-plan-revision-session`,{session:e,includePlan:!1}))}catch(e){return tL(e)||i.push(e instanceof Error?e.message:String(e),`error`),null}finally{u(!1)}},[e,v,i]);w.useEffect(()=>{r&&y()},[r,y]);let b=w.useCallback(async()=>{if(a?.targetSession===e)return a;u(!0);try{return v(await sw().invokeAction(`start-plan-revision-session`,{session:e}))}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{u(!1)}},[a,e,v,i]),x=w.useCallback(async(t={})=>{if(!s&&!a)return null;u(!0);try{return v(await sw().invokeAction(`get-plan-revision-session`,{session:e,includePlan:t.includePlan===!0}))}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{u(!1)}},[s,a,e,v,i]),S=w.useCallback(async t=>{let n=t.trim();if(!n||!await b())return null;f(!0);try{let t=await sw().invokeAction(`start-plan-revision-turn`,{session:e,message:n});return v(t.session)}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[b,e,v,i]),C=w.useCallback(async(t,n,r)=>{f(!0);try{let a=await sw().invokeAction(t,{session:e,...n}),o=v(a);return i.push(r,`success`),o}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[e,v,i]),T=w.useCallback(async(e,t)=>{let n={target:e,...t?.trim()&&{body:t.trim()}};return C(`create-plan-revision-annotation`,n,`Created plan annotation.`)},[C]),ee=w.useCallback(async(t,n)=>{let r={target:t,...n?.trim()&&{body:n.trim()}};f(!0);try{let t=await sw().invokeAction(`create-plan-revision-annotation`,{session:e,...r}),n=v(t);return i.push(`Created plan annotation.`,`success`),{session:n,error:null}}catch(e){let t=e instanceof Error?e.message:String(e);return i.push(t,`error`),{session:null,error:t}}finally{f(!1)}},[e,v,i]),E=w.useCallback(e=>C(`update-plan-revision-annotation`,{annotationId:e.annotationId,body:e.body},`Updated plan annotation.`),[C]),D=w.useCallback(e=>C(`delete-plan-revision-annotation`,{annotationId:e},`Deleted plan annotation.`),[C]),te=w.useCallback(e=>C(`resolve-plan-revision-annotation`,{annotationId:e},`Resolved plan annotation.`),[C]),O=w.useCallback(e=>C(`dismiss-plan-revision-annotation`,{annotationId:e},`Dismissed plan annotation.`),[C]),ne=w.useCallback(async t=>{if(!(a?.targetSession===e?a:await b()))return null;f(!0);try{let n=t.steering?.trim(),r=t.annotationIds??[],i=await sw().invokeAction(`start-plan-revision-turn`,{session:e,...r.length>0&&{annotationIds:r},includeOpenAnnotations:t.includeOpenAnnotations===!0,...n&&{steering:n}});return v(i.session)}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[b,a,e,v,i]),k=w.useCallback(async t=>{f(!0);try{v(await sw().invokeAction(`cancel-plan-revision-turn`,{session:e,turnId:t.turnId}))}catch(e){i.push(e instanceof Error?e.message:String(e),`error`)}finally{f(!1)}},[e,v,i]),A=w.useCallback(async t=>{f(!0);try{v((await sw().invokeAction(`retry-plan-revision-turn`,{session:e,turnId:t.turnId})).session)}catch(e){i.push(e instanceof Error?e.message:String(e),`error`)}finally{f(!1)}},[e,v,i]),re=w.useCallback(async(t,n,r)=>{let a=n.filter(e=>e.answer.trim().length>0).map(e=>({...e,answer:e.answer.trim()})),o=r?.trim();if(!(a.length===0&&!o)){f(!0);try{v((await sw().invokeAction(`retry-plan-revision-turn`,{session:e,turnId:t.turnId,...a.length>0&&{answers:a},...o&&{steering:o}})).session)}catch(e){i.push(e instanceof Error?e.message:String(e),`error`)}finally{f(!1)}}},[e,v,i]),ie=w.useCallback(async r=>{f(!0);try{let a=await sw().invokeAction(`apply-plan-revision-turn`,{session:e,turnId:r.turnId});return a.kind===`applied`?(t({plan:a.plan,readiness:a.readiness}),await n(),await x({includePlan:!0}),i.push(`Applied AI plan revision.`,`success`)):i.push(a.message,`error`),a}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[t,n,x,e,i]),j=uj(a?.turns??[]);return w.useEffect(()=>{if(!s||!j)return;let e=window.setInterval(()=>{x()},eL);return()=>window.clearInterval(e)},[j,s,x]),w.useEffect(()=>{let e=g.current;for(let t of a?.turns??[]){let n=`${e}:${t.turnId}`;t.appliedAt||p.current.has(t.turnId)||m.current.has(t.turnId)||h.current.has(n)||sj(t)===`patch`&&(h.current.add(n),m.current.add(t.turnId),ie(t).then(e=>{e?.kind===`applied`&&p.current.add(t.turnId)}).finally(()=>{m.current.delete(t.turnId)}))}},[a,ie]),{revisionSession:a,loading:l,busy:d,initialized:s,hasRunningTurn:j,loadExistingSession:y,ensureSession:b,reload:x,submit:S,createAnnotation:T,createAnnotationWithError:ee,updateAnnotation:E,deleteAnnotation:D,resolveAnnotation:te,dismissAnnotation:O,submitAnnotationRevision:ne,cancel:k,retry:A,redraft:re,apply:ie}}var rL=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-detail-workspace.tsx`;function iL({detail:e,artifact:t,titles:n,onApply:r,onRefresh:i,onHandoff:a,onDeleted:o,onClose:s}){let c=e.plan,l=nL({session:c.session,onApply:r,onRefresh:i,autoLoadExisting:!0}),[u,d]=w.useState(null);w.useEffect(()=>{d(null)},[c.session]);let f=w.useCallback((e,t)=>{d({target:e,anchor:t??null})},[]),p=w.useCallback(async e=>{if(!u||l.hasRunningTurn)return{ok:!1,error:`A revision is already running. Try again after it finishes.`};let t=await l.createAnnotationWithError(u.target,e.trim());return t.session&&d(null),{ok:!!t.session,error:t.error??void 0}},[u,l]);return(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`section`,{className:`min-w-0`,children:(0,I.jsxDEV)(UI,{detail:e,artifact:t,revision:l,locked:l.hasRunningTurn,onSelectAnnotationTarget:f,onApply:r,onRefresh:i,onHandoff:a,onDeleted:o,onClose:s},void 0,!1,{fileName:rL,lineNumber:46,columnNumber:9},this)},void 0,!1,{fileName:rL,lineNumber:45,columnNumber:7},this),(0,I.jsxDEV)(`aside`,{className:`grid min-w-0 content-start gap-3 lg:sticky lg:top-[5.5rem]`,children:(0,I.jsxDEV)(qj,{artifact:t,titles:n,plan:c,revision:l},void 0,!1,{fileName:rL,lineNumber:49,columnNumber:9},this)},void 0,!1,{fileName:rL,lineNumber:48,columnNumber:7},this),u&&(0,I.jsxDEV)($I,{target:u.target,anchor:u.anchor,busy:l.busy||l.loading||l.hasRunningTurn,onSave:p,onCancel:()=>d(null)},void 0,!1,{fileName:rL,lineNumber:52,columnNumber:9},this)]},void 0,!0,{fileName:rL,lineNumber:44,columnNumber:5},this)}var aL=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-set-detail.tsx`;function oL({detail:e}){let t=e.planSet,n=t?.children??[],r=t?.strategy??`sequential`,i=e.validation?.diagnostics??t?.diagnostics??[],a=e.validation?.ok??i.length===0;return(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{children:t?.title??t?.id??`Plan set`},void 0,!1,{fileName:aL,lineNumber:24,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:e.manifestPath},void 0,!1,{fileName:aL,lineNumber:25,columnNumber:11},this)]},void 0,!0,{fileName:aL,lineNumber:23,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[t?.status&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:t.status},void 0,!1,{fileName:aL,lineNumber:28,columnNumber:31},this),(0,I.jsxDEV)(Tn,{variant:`secondary`,children:[(0,I.jsxDEV)(ye,{className:`mr-1 h-3.5 w-3.5`},void 0,!1,{fileName:aL,lineNumber:29,columnNumber:38},this),` `,r]},void 0,!0,{fileName:aL,lineNumber:29,columnNumber:11},this),(0,I.jsxDEV)(Tn,{variant:a?`default`:`destructive`,children:a?`valid`:`${i.length} issue(s)`},void 0,!1,{fileName:aL,lineNumber:30,columnNumber:11},this)]},void 0,!0,{fileName:aL,lineNumber:27,columnNumber:9},this)]},void 0,!0,{fileName:aL,lineNumber:22,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3 text-sm`,children:[n.length===0?(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:`This plan set has no children.`},void 0,!1,{fileName:aL,lineNumber:35,columnNumber:13},this):(0,I.jsxDEV)(sL,{children:n,strategy:r},void 0,!1,{fileName:aL,lineNumber:36,columnNumber:13},this),i.length>0&&(0,I.jsxDEV)(lL,{diagnostics:i},void 0,!1,{fileName:aL,lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:aL,lineNumber:33,columnNumber:7},this)]},void 0,!0,{fileName:aL,lineNumber:21,columnNumber:5},this)}function sL({children:e,strategy:t}){return t===`parallel`?(0,I.jsxDEV)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:e.map(e=>(0,I.jsxDEV)(cL,{child:e},e.id,!1,{fileName:aL,lineNumber:47,columnNumber:34},this))},void 0,!1,{fileName:aL,lineNumber:46,columnNumber:7},this):(0,I.jsxDEV)(`ol`,{className:`grid gap-2`,children:e.map((e,n)=>(0,I.jsxDEV)(`li`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`mt-1 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full border text-2xs text-muted-foreground`,children:n+1},void 0,!1,{fileName:aL,lineNumber:57,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,I.jsxDEV)(cL,{child:e,showDeps:t===`dag`},void 0,!1,{fileName:aL,lineNumber:58,columnNumber:43},this)},void 0,!1,{fileName:aL,lineNumber:58,columnNumber:11},this)]},e.id,!0,{fileName:aL,lineNumber:56,columnNumber:9},this))},void 0,!1,{fileName:aL,lineNumber:54,columnNumber:5},this)}function cL({child:e,showDeps:t}){let n=e.dependsOn??[];return(0,I.jsxDEV)(`div`,{className:`rounded-md border bg-card p-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[e.validation?.ok??!0?(0,I.jsxDEV)(se,{className:`h-4 w-4 text-[color:var(--lane-ready)]`},void 0,!1,{fileName:aL,lineNumber:72,columnNumber:13},this):(0,I.jsxDEV)(ze,{className:`h-4 w-4 text-[color:var(--lane-blocked)]`},void 0,!1,{fileName:aL,lineNumber:73,columnNumber:13},this),(0,I.jsxDEV)(`strong`,{className:`truncate text-text-bright`,children:e.id},void 0,!1,{fileName:aL,lineNumber:74,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`ml-auto flex flex-wrap gap-1`,children:[(0,I.jsxDEV)(Tn,{variant:`outline`,children:e.status},void 0,!1,{fileName:aL,lineNumber:76,columnNumber:11},this),e.kind&&e.kind!==`plan`&&(0,I.jsxDEV)(Tn,{variant:`secondary`,children:e.kind},void 0,!1,{fileName:aL,lineNumber:77,columnNumber:51},this),e.buildable===!1&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:`not buildable`},void 0,!1,{fileName:aL,lineNumber:78,columnNumber:41},this),e.exists===!1&&(0,I.jsxDEV)(Tn,{variant:`destructive`,children:`missing file`},void 0,!1,{fileName:aL,lineNumber:79,columnNumber:38},this)]},void 0,!0,{fileName:aL,lineNumber:75,columnNumber:9},this)]},void 0,!0,{fileName:aL,lineNumber:70,columnNumber:7},this),e.file&&(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate text-2xs text-muted-foreground`,children:e.file},void 0,!1,{fileName:aL,lineNumber:82,columnNumber:22},this),t&&n.length>0&&(0,I.jsxDEV)(`p`,{className:`mt-1 flex flex-wrap items-baseline gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:`Depends on`},void 0,!1,{fileName:aL,lineNumber:85,columnNumber:11},this),n.map(e=>(0,I.jsxDEV)(`code`,{className:`rounded border border-border px-1 text-2xs`,children:e},e,!1,{fileName:aL,lineNumber:86,columnNumber:35},this))]},void 0,!0,{fileName:aL,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:aL,lineNumber:69,columnNumber:5},this)}function lL({diagnostics:e}){return(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Validation`},void 0,!1,{fileName:aL,lineNumber:96,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`rounded border border-[color:var(--lane-blocked)]/40 bg-background p-2 text-xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(ze,{className:`h-3.5 w-3.5 text-[color:var(--lane-blocked)]`},void 0,!1,{fileName:aL,lineNumber:101,columnNumber:15},this),(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:e.message},void 0,!1,{fileName:aL,lineNumber:102,columnNumber:15},this),e.code&&(0,I.jsxDEV)(`span`,{className:`ml-auto text-2xs uppercase tracking-wide text-muted-foreground`,children:e.code},void 0,!1,{fileName:aL,lineNumber:103,columnNumber:35},this)]},void 0,!0,{fileName:aL,lineNumber:100,columnNumber:13},this),(e.childId||e.file)&&(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate text-2xs text-muted-foreground`,children:e.childId??e.file},void 0,!1,{fileName:aL,lineNumber:106,columnNumber:15},this)]},t,!0,{fileName:aL,lineNumber:99,columnNumber:11},this))},void 0,!1,{fileName:aL,lineNumber:97,columnNumber:7},this)]},void 0,!0,{fileName:aL,lineNumber:95,columnNumber:5},this)}var uL=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-unit-advisory.tsx`;function dL({advisory:e,className:t=``}){let n=e.severity===`caution`,r=n?ze:se,i=n?`var(--prio-medium)`:`var(--lane-done)`;return(0,I.jsxDEV)(`div`,{className:`rounded-md border p-2 ${t}`,style:{borderColor:`color-mix(in srgb, ${i} 40%, transparent)`,background:`color-mix(in srgb, ${i} 8%, transparent)`},role:`status`,"aria-live":`polite`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-2xs font-semibold uppercase tracking-wide`,style:{color:i},children:[(0,I.jsxDEV)(r,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:uL,lineNumber:17,columnNumber:9},this),` `,n?`Dependency caution`:`Dependencies look consistent`]},void 0,!0,{fileName:uL,lineNumber:16,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1 text-xs text-muted-foreground`,children:e.findings.map((e,t)=>(0,I.jsxDEV)(`li`,{children:e.message},`${e.code}-${t}`,!1,{fileName:uL,lineNumber:21,columnNumber:11},this))},void 0,!1,{fileName:uL,lineNumber:19,columnNumber:7},this)]},void 0,!0,{fileName:uL,lineNumber:15,columnNumber:5},this)}var fL=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-unit-split-panel.tsx`;function pL({unit:e,titles:t,onAdvise:n,onSplit:r,onClose:i,onOpenUnit:a}){let o=$n(),[s,c]=w.useState(new Set),[l,u]=w.useState(``),[d,f]=w.useState(null),[p,m]=w.useState(!1),h=e=>t.get(e)??e;cA(i,!p);let g=w.useMemo(()=>e.items.filter(e=>s.has(e.itemId)).map(e=>e.itemId),[e.items,s]),_=g.length>0&&g.length<e.items.length;w.useEffect(()=>{if(!_){f(null);return}let t=!0;return n(e.unitId,g).then(e=>{t&&f(e)}).catch(()=>{t&&f(null)}),()=>{t=!1}},[_,g,e.unitId,n]);let v=e=>c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border border-dashed border-border p-3`,"aria-label":`Split draft unit`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,I.jsxDEV)(Pe,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:fL,lineNumber:64,columnNumber:9},this),` Split into a new unit`,(0,I.jsxDEV)(L,{variant:`ghost`,size:`icon-xs`,className:`ml-auto`,"aria-label":`Close split panel`,disabled:p,onClick:i,children:(0,I.jsxDEV)(Ve,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:fL,lineNumber:65,columnNumber:133},this)},void 0,!1,{fileName:fL,lineNumber:65,columnNumber:9},this)]},void 0,!0,{fileName:fL,lineNumber:63,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Pick the items to peel off. The original keeps the rest; both sides must keep at least one item.`},void 0,!1,{fileName:fL,lineNumber:67,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:e.items.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`label`,{className:`flex items-center gap-2 rounded border border-border p-1.5 text-xs`,children:[(0,I.jsxDEV)(qA,{disabled:p,checked:s.has(e.itemId),onChange:()=>v(e.itemId)},void 0,!1,{fileName:fL,lineNumber:72,columnNumber:15},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:h(e.itemId)},void 0,!1,{fileName:fL,lineNumber:73,columnNumber:15},this)]},void 0,!0,{fileName:fL,lineNumber:71,columnNumber:13},this)},e.itemId,!1,{fileName:fL,lineNumber:70,columnNumber:11},this))},void 0,!1,{fileName:fL,lineNumber:68,columnNumber:7},this),(0,I.jsxDEV)(Tk,{value:l,disabled:p,className:`h-8 text-xs`,placeholder:`Title for the new unit`,onChange:e=>u(e.target.value)},void 0,!1,{fileName:fL,lineNumber:78,columnNumber:7},this),d&&(0,I.jsxDEV)(dL,{advisory:d},void 0,!1,{fileName:fL,lineNumber:79,columnNumber:20},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:p||!_||!l.trim(),onClick:()=>{!_||!l.trim()||(m(!0),r({unitId:e.unitId,itemIds:g,title:l.trim()}).then(e=>{o.push(`Split ${g.length} item${g.length===1?``:`s`} into “${e.created.title}”.`,`success`),i(),a?.(sT(e.created.unitId))}).catch(e=>o.push(e instanceof Error?e.message:String(e),`error`)).finally(()=>m(!1)))},title:_?`Split off the selected items.`:`Keep at least one item on each side.`,children:[p?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:fL,lineNumber:82,columnNumber:19},this):(0,I.jsxDEV)(Pe,{className:`h-4 w-4`},void 0,!1,{fileName:fL,lineNumber:82,columnNumber:33},this),` Split off `,g.length||``,` `,g.length===1?`item`:`items`]},void 0,!0,{fileName:fL,lineNumber:81,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:p,onClick:i,children:`Cancel`},void 0,!1,{fileName:fL,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:fL,lineNumber:80,columnNumber:7},this)]},void 0,!0,{fileName:fL,lineNumber:62,columnNumber:5},this)}var Y=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-unit-detail.tsx`;function mL({unit:e,titles:t,onUpdate:n,onDelete:r,onPromote:i,onSplit:a,onAdviseSplit:o,onOpenItem:s,onOpenPlan:c}){let l=$n(),[u,d]=w.useState(!1),[f,p]=w.useState(!1),[m,h]=w.useState(!1),g=e.status===`promoted`,_=!!(a&&o)&&!g&&e.items.length>=2,v=e.promotedSession,y=e=>t.get(e)??e,b=w.useMemo(()=>{let n=new Set(e.items.map(e=>e.itemId));return Array.from(t.entries()).filter(([e])=>!n.has(e)).map(([e,t])=>({id:e,title:t}))},[t,e.items]),x=w.useCallback(async e=>{d(!0);try{await e()}catch(e){l.push(e instanceof Error?e.message:String(e),`error`)}finally{d(!1)}},[l]),S=(t,r)=>{if(u||g)return;let i=[...e.items],a=t+r;a<0||a>=i.length||([i[t],i[a]]=[i[a],i[t]],x(()=>n({unitId:e.unitId,itemOrder:i.map(e=>e.itemId)})))};return(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(me,{className:`h-4 w-4 text-[color:var(--lane-progress)]`},void 0,!1,{fileName:Y,lineNumber:80,columnNumber:11},this),(0,I.jsxDEV)(UO,{className:`text-base`,children:`Draft plan unit`},void 0,!1,{fileName:Y,lineNumber:81,columnNumber:11},this),(0,I.jsxDEV)(Tn,{variant:e.provenance===`recommendation`?`secondary`:`outline`,children:e.provenance===`recommendation`?`from a lane`:`user-authored`},void 0,!1,{fileName:Y,lineNumber:82,columnNumber:11},this),(0,I.jsxDEV)(Tn,{variant:g?`default`:`outline`,className:`capitalize`,children:e.status},void 0,!1,{fileName:Y,lineNumber:85,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:79,columnNumber:9},this),(0,I.jsxDEV)(WO,{children:g?v?(0,I.jsxDEV)(I.Fragment,{children:[`Promoted to `,(0,I.jsxDEV)(`button`,{type:`button`,className:`underline`,onClick:()=>c?.(cT(v)),children:v},void 0,!1,{fileName:Y,lineNumber:90,columnNumber:31},this),`. This draft is now read-only.`]},void 0,!0,{fileName:Y,lineNumber:90,columnNumber:17},this):(0,I.jsxDEV)(I.Fragment,{children:`Promoted to a session plan. This draft is now read-only.`},void 0,!1,{fileName:Y,lineNumber:91,columnNumber:17},this):`Curate the grouping and intent, then promote into a session plan.`},void 0,!1,{fileName:Y,lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:78,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-4`,children:[(0,I.jsxDEV)(gL,{label:`Title`,children:(0,I.jsxDEV)(Tk,{defaultValue:e.title,disabled:u||g,onBlur:t=>{let r=t.target.value.trim();r&&r!==e.title&&x(()=>n({unitId:e.unitId,title:r}))}},void 0,!1,{fileName:Y,lineNumber:98,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:97,columnNumber:9},this),(0,I.jsxDEV)(gL,{label:`Intent`,children:(0,I.jsxDEV)(YO,{defaultValue:e.intent??``,disabled:u||g,className:`min-h-20 text-xs`,placeholder:`Why these items belong together (grouping rationale, not scope).`,onBlur:t=>{let r=t.target.value;r!==(e.intent??``)&&x(()=>n({unitId:e.unitId,intent:r}))}},void 0,!1,{fileName:Y,lineNumber:106,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:105,columnNumber:9},this),(0,I.jsxDEV)(gL,{label:`Profile`,children:(0,I.jsxDEV)(mA,{value:e.profile??``,disabled:u||g,onChange:t=>void x(()=>n({unitId:e.unitId,profile:t.target.value})),children:[(0,I.jsxDEV)(`option`,{value:``,children:`none`},void 0,!1,{fileName:Y,lineNumber:121,columnNumber:13},this),nC.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:Y,lineNumber:122,columnNumber:47},this))]},void 0,!0,{fileName:Y,lineNumber:116,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:115,columnNumber:9},this),(0,I.jsxDEV)(`section`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[`Items (`,e.items.length,`)`]},void 0,!0,{fileName:Y,lineNumber:128,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[e.sourceRecommendationRef&&(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:[`lane: `,e.sourceRecommendationRef]},void 0,!0,{fileName:Y,lineNumber:130,columnNumber:48},this),!g&&(0,I.jsxDEV)(L,{size:`xs`,variant:`ghost`,disabled:u,"aria-expanded":f,onClick:()=>p(e=>!e),children:[(0,I.jsxDEV)(ke,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:133,columnNumber:19},this),` Add items`]},void 0,!0,{fileName:Y,lineNumber:132,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:129,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:127,columnNumber:11},this),f&&!g&&(0,I.jsxDEV)(hL,{candidates:b,disabled:u,onAdd:t=>void x(()=>n({unitId:e.unitId,addItemIds:[t]}))},void 0,!1,{fileName:Y,lineNumber:139,columnNumber:13},this),e.items.length===0?(0,I.jsxDEV)(Ck,{className:`p-3 text-xs`,children:`No items. Remove leaves nothing to promote.`},void 0,!1,{fileName:Y,lineNumber:142,columnNumber:15},this):(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:e.items.map((t,r)=>(0,I.jsxDEV)(`li`,{className:`flex items-center gap-2 rounded-md border border-border p-2`,children:[(0,I.jsxDEV)(`button`,{type:`button`,className:`min-w-0 flex-1 truncate text-left text-xs text-text-bright hover:underline`,title:t.itemId,onClick:()=>s?.(t.itemId),children:y(t.itemId)},void 0,!1,{fileName:Y,lineNumber:146,columnNumber:21},this),(0,I.jsxDEV)(Tn,{variant:t.origin===`recommendation`?`secondary`:`outline`,className:`shrink-0 text-2xs`,children:t.origin===`recommendation`?`AI`:`you`},void 0,!1,{fileName:Y,lineNumber:149,columnNumber:21},this),!g&&(0,I.jsxDEV)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,disabled:u||r===0,title:`Move up`,onClick:()=>S(r,-1),children:(0,I.jsxDEV)(k,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:146},this)},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:25},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,disabled:u||r===e.items.length-1,title:`Move down`,onClick:()=>S(r,1),children:(0,I.jsxDEV)(O,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:153,columnNumber:167},this)},void 0,!1,{fileName:Y,lineNumber:153,columnNumber:25},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,className:`text-[color:var(--lane-blocked)]`,disabled:u,title:`Remove from unit`,onClick:()=>void x(()=>n({unitId:e.unitId,removeItemIds:[t.itemId]})),children:(0,I.jsxDEV)(Ve,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:154,columnNumber:246},this)},void 0,!1,{fileName:Y,lineNumber:154,columnNumber:25},this)]},void 0,!0,{fileName:Y,lineNumber:151,columnNumber:23},this)]},t.itemId,!0,{fileName:Y,lineNumber:145,columnNumber:19},this))},void 0,!1,{fileName:Y,lineNumber:143,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:126,columnNumber:9},this),m&&_&&a&&o&&(0,I.jsxDEV)(pL,{unit:e,titles:t,onAdvise:o,onSplit:a,onClose:()=>h(!1),onOpenUnit:c},void 0,!1,{fileName:Y,lineNumber:163,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 border-t pt-3`,children:[(0,I.jsxDEV)(L,{disabled:u||g||e.items.length===0,onClick:()=>x(async()=>{let t=await i(e.unitId);l.push(`Promoted to ${t.promotion.session}.`,`success`),c?.(cT(t.promotion.session))}),title:e.items.length===0?`Add at least one item before promoting.`:`Promote plan-first into a session plan.`,children:[u?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Y,lineNumber:168,columnNumber:21},this):(0,I.jsxDEV)(je,{className:`h-4 w-4`},void 0,!1,{fileName:Y,lineNumber:168,columnNumber:35},this),` Promote to a build plan`]},void 0,!0,{fileName:Y,lineNumber:167,columnNumber:11},this),_&&(0,I.jsxDEV)(L,{variant:`outline`,disabled:u,"aria-expanded":m,onClick:()=>h(e=>!e),title:`Split this unit's items into two units.`,children:[(0,I.jsxDEV)(Pe,{className:`h-4 w-4`},void 0,!1,{fileName:Y,lineNumber:172,columnNumber:15},this),` Split`]},void 0,!0,{fileName:Y,lineNumber:171,columnNumber:13},this),(0,I.jsxDEV)(L,{variant:`ghost`,className:`text-[color:var(--lane-blocked)]`,disabled:u,onClick:()=>void x(()=>r(e.unitId)),children:[(0,I.jsxDEV)(Re,{className:`h-4 w-4`},void 0,!1,{fileName:Y,lineNumber:176,columnNumber:13},this),` Delete`]},void 0,!0,{fileName:Y,lineNumber:175,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:166,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:96,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:77,columnNumber:5},this)}function hL({candidates:e,disabled:t,onAdd:n}){let[r,i]=w.useState(``),a=w.useMemo(()=>{let t=r.trim().toLowerCase();return(t?e.filter(e=>e.title.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)):e).slice(0,50)},[e,r]);return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border border-dashed border-border p-2`,children:e.length===0?(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Every board item is already in this unit.`},void 0,!1,{fileName:Y,lineNumber:206,columnNumber:9},this):(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(Tk,{value:r,disabled:t,className:`h-8 text-xs`,placeholder:`Search board items to add…`,onChange:e=>i(e.target.value)},void 0,!1,{fileName:Y,lineNumber:209,columnNumber:11},this),a.length===0?(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:[`No board items match “`,r,`”.`]},void 0,!0,{fileName:Y,lineNumber:211,columnNumber:13},this):(0,I.jsxDEV)(`ul`,{className:`grid max-h-48 gap-1 overflow-auto`,children:a.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`button`,{type:`button`,disabled:t,title:e.id,onClick:()=>n(e.id),className:`flex w-full items-center gap-2 rounded border border-border p-1.5 text-left text-xs hover:border-primary disabled:opacity-50`,children:[(0,I.jsxDEV)(ke,{className:`h-3 w-3 shrink-0 text-muted-foreground`},void 0,!1,{fileName:Y,lineNumber:223,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:e.title},void 0,!1,{fileName:Y,lineNumber:224,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:216,columnNumber:19},this)},e.id,!1,{fileName:Y,lineNumber:215,columnNumber:17},this))},void 0,!1,{fileName:Y,lineNumber:213,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:208,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:204,columnNumber:5},this)}function gL({label:e,children:t}){return(0,I.jsxDEV)(`label`,{className:`grid gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e},void 0,!1,{fileName:Y,lineNumber:239,columnNumber:7},this),t]},void 0,!0,{fileName:Y,lineNumber:238,columnNumber:5},this)}var _L=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-merge-panel.tsx`;function vL({units:e,onAdvise:t,onMerge:n,onClose:r,onOpenUnit:i}){let a=$n(),o=w.useMemo(()=>e.map(e=>e.unitId),[e]),[s,c]=w.useState(e[0]?.title??``),[l,u]=w.useState(null),[d,f]=w.useState(!1);return cA(r,!d),w.useEffect(()=>{let e=!0;return t(o).then(t=>{e&&u(t)}).catch(()=>{e&&u(null)}),()=>{e=!1}},[o,t]),(0,I.jsxDEV)(VO,{"aria-label":`Merge ${o.length} draft units`,children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2 text-base`,children:[(0,I.jsxDEV)(ye,{className:`h-4 w-4`},void 0,!1,{fileName:_L,lineNumber:56,columnNumber:68},this),` Merge `,o.length,` draft units`]},void 0,!0,{fileName:_L,lineNumber:56,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:`Combine the selected units into one. The originals are consumed; their items are pooled into the new unit.`},void 0,!1,{fileName:_L,lineNumber:57,columnNumber:11},this)]},void 0,!0,{fileName:_L,lineNumber:55,columnNumber:9},this),(0,I.jsxDEV)(L,{variant:`ghost`,size:`icon-xs`,"aria-label":`Close merge panel`,disabled:d,onClick:r,children:(0,I.jsxDEV)(Ve,{className:`h-4 w-4`},void 0,!1,{fileName:_L,lineNumber:59,columnNumber:113},this)},void 0,!1,{fileName:_L,lineNumber:59,columnNumber:9},this)]},void 0,!0,{fileName:_L,lineNumber:54,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:e.map(e=>(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2 rounded-md border border-border p-2 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:e.title},void 0,!1,{fileName:_L,lineNumber:65,columnNumber:15},this),(0,I.jsxDEV)(Tn,{variant:`outline`,className:`shrink-0 text-2xs`,children:[e.itemCount,` item`,e.itemCount===1?``:`s`]},void 0,!0,{fileName:_L,lineNumber:66,columnNumber:15},this)]},e.unitId,!0,{fileName:_L,lineNumber:64,columnNumber:13},this))},void 0,!1,{fileName:_L,lineNumber:62,columnNumber:9},this),(0,I.jsxDEV)(`label`,{className:`grid gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Merged unit title`},void 0,!1,{fileName:_L,lineNumber:71,columnNumber:11},this),(0,I.jsxDEV)(Tk,{value:s,disabled:d,onChange:e=>c(e.target.value)},void 0,!1,{fileName:_L,lineNumber:72,columnNumber:11},this)]},void 0,!0,{fileName:_L,lineNumber:70,columnNumber:9},this),l&&(0,I.jsxDEV)(dL,{advisory:l},void 0,!1,{fileName:_L,lineNumber:74,columnNumber:22},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 border-t pt-3`,children:[(0,I.jsxDEV)(L,{disabled:d||!s.trim(),onClick:()=>{s.trim()&&(f(!0),n({unitIds:o,title:s.trim()}).then(e=>{a.push(`Merged ${o.length} units into “${e.unit.title}”.`,`success`),r(),i?.(sT(e.unit.unitId))}).catch(e=>a.push(e instanceof Error?e.message:String(e),`error`)).finally(()=>f(!1)))},children:[d?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:_L,lineNumber:77,columnNumber:21},this):(0,I.jsxDEV)(ye,{className:`h-4 w-4`},void 0,!1,{fileName:_L,lineNumber:77,columnNumber:35},this),` Merge units`]},void 0,!0,{fileName:_L,lineNumber:76,columnNumber:11},this),(0,I.jsxDEV)(L,{variant:`ghost`,disabled:d,onClick:r,children:`Cancel`},void 0,!1,{fileName:_L,lineNumber:79,columnNumber:11},this)]},void 0,!0,{fileName:_L,lineNumber:75,columnNumber:9},this)]},void 0,!0,{fileName:_L,lineNumber:61,columnNumber:7},this)]},void 0,!0,{fileName:_L,lineNumber:53,columnNumber:5},this)}var X=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans-view.tsx`,yL=sw();function bL({artifacts:e,draftUnits:t,titles:n,onRefresh:r,onUpdateDraftUnit:i,onDeleteDraftUnit:a,onPromoteDraftUnit:o,onMergeDraftUnits:s,onSplitDraftUnit:c,onAdviseMergeDraftUnits:l,onAdviseSplitDraftUnit:u}){let d=qx(),f=$n(),p=hT(),m=d.query.get(`plan`)??``,h=w.useCallback(e=>{d.setQuery(t=>{e?t.set(`plan`,e):t.delete(`plan`)})},[d]),[g,_]=w.useState(!1),[v,y]=w.useState(new Set),[b,x]=w.useState(!1),S=w.useMemo(()=>t.filter(e=>e.status===`draft`).length,[t]),C=w.useCallback(e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),T=w.useCallback(()=>{_(!1),x(!1),y(new Set)},[]),ee=w.useMemo(()=>t.filter(e=>v.has(e.unitId)),[t,v]),E=lT(m),D=E===null?null:t.find(e=>e.unitId===E)??null,[te,O]=w.useState(null),ne=te?.unitId===E?te:null,k=E!==null&&D===null,[A,re]=w.useState(null),[ie,j]=w.useState(!1),[ae,oe]=w.useState({}),se=w.useMemo(()=>new Set(Object.values(ae).filter(e=>e.status===`pending`).map(e=>e.session)),[ae]),ce=w.useMemo(()=>e.filter(e=>!e.session||!se.has(e.session)),[e,se]);w.useEffect(()=>{oe(t=>{let n=!1,r={...t};for(let[i,a]of Object.entries(t)){if(a.status!==`pending`)continue;let t=e.find(e=>e.session===a.session);(!t||t.status===`submitted`)&&(delete r[i],n=!0)}return n?r:t})},[e]),w.useEffect(()=>{if(E===null||D===null){O(null);return}let e=!0;return yL.invokeAction(`get-draft-unit`,{unitId:E}).then(t=>{e&&O(t.unit)}).catch(()=>{e&&O(null)}),()=>{e=!1}},[E,D]),w.useEffect(()=>{if(!m||lT(m)!==null){re(null);return}let t=e.find(e=>e.key===m),n=!0;return(async()=>{try{let e=t?.kind===`plan-set`?await yL.invokeAction(`show-session-plan-set`,{planSetId:t.planSetId??``}):await yL.invokeAction(`show-session-plan`,{session:t?.session??m.replace(/^plan:/,``)});n&&re(e)}catch(e){n&&f.push(e instanceof Error?e.message:String(e),`error`)}})(),()=>{n=!1}},[m,e,f]);let le=w.useCallback(e=>{re(t=>EL(t)?{...t,plan:e.plan??t.plan,readiness:e.readiness??t.readiness}:t)},[]),ue=e.find(e=>e.key===m)??null,de=w.useCallback(async t=>{let n=e.find(e=>e.session===t)??ue,i=n?.key??`plan:${t}`,a=n?TL(n):rT(void 0,t);oe(e=>({...e,[i]:{id:i,session:t,title:a,status:`pending`,message:`Handoff is enqueueing in the background…`}})),m===i&&(re(null),h(``));let o;try{o=await yL.invokeAction(`handoff-session-plan`,{session:t})}catch(e){let n=e instanceof Error?e.message:String(e);oe(e=>({...e,[i]:{id:i,session:t,title:a,status:`failed`,message:`${n||`Handoff failed.`} Retry from the restored plan row or enqueue the session plan manually.`}})),f.push(n,`error`);try{await r()}catch(e){f.push(e instanceof Error?e.message:String(e),`error`)}return}if(o.kind===`not-ready`||o.kind===`enqueue-failed`){let e=o.message??o.command??`Handoff failed. The plan remains ready; retry handoff or enqueue it manually.`;oe(n=>({...n,[i]:{id:i,session:t,title:a,status:`failed`,message:e}})),f.push(e,`error`);try{await r()}catch(e){f.push(e instanceof Error?e.message:String(e),`error`)}return}f.push(o.message??o.command??`Handoff prepared.`,`success`);try{await r()}catch(e){f.push(e instanceof Error?e.message:String(e),`error`)}},[e,r,h,ue,m,f]);return(0,I.jsxDEV)(`div`,{className:`grid gap-4 lg:grid-cols-[22rem_minmax(0,1fr)_20rem] lg:items-start`,children:[(0,I.jsxDEV)(`aside`,{className:`grid content-start gap-4`,children:[(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(me,{className:`h-4 w-4`},void 0,!1,{fileName:X,lineNumber:171,columnNumber:62},this),` Plans`]},void 0,!0,{fileName:X,lineNumber:171,columnNumber:15},this),(0,I.jsxDEV)(WO,{children:`Session plans and plan sets.`},void 0,!1,{fileName:X,lineNumber:172,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:170,columnNumber:13},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,onClick:()=>j(e=>!e),children:[(0,I.jsxDEV)(ke,{className:`h-4 w-4`},void 0,!1,{fileName:X,lineNumber:174,columnNumber:96},this),` New`]},void 0,!0,{fileName:X,lineNumber:174,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:169,columnNumber:11},this),(0,I.jsxDEV)(GO,{className:`grid gap-2`,children:[ie&&(0,I.jsxDEV)(SL,{onClose:()=>j(!1),onCreated:r},void 0,!1,{fileName:X,lineNumber:177,columnNumber:26},this),t.length>0&&(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Drafts`},void 0,!1,{fileName:X,lineNumber:181,columnNumber:19},this),S>=2&&(g?(0,I.jsxDEV)(`button`,{type:`button`,className:`text-2xs text-muted-foreground hover:text-foreground`,onClick:T,children:`Cancel`},void 0,!1,{fileName:X,lineNumber:184,columnNumber:25},this):(0,I.jsxDEV)(`button`,{type:`button`,className:`inline-flex items-center gap-0.5 text-2xs text-muted-foreground hover:text-foreground`,onClick:()=>_(!0),title:`Select draft units to merge`,children:[(0,I.jsxDEV)(ye,{className:`h-3 w-3`},void 0,!1,{fileName:X,lineNumber:185,columnNumber:216},this),` Merge`]},void 0,!0,{fileName:X,lineNumber:185,columnNumber:25},this))]},void 0,!0,{fileName:X,lineNumber:180,columnNumber:17},this),t.map(e=>{let t=sT(e.unitId),n=v.has(e.unitId),r=g&&e.status===`draft`;return(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2 rounded-md border p-3 transition-colors hover:bg-accent ${m===t&&!g?`border-primary bg-accent`:n?`border-primary bg-primary/10`:`border-border`}`,children:[r&&(0,I.jsxDEV)(qA,{className:`mt-1`,checked:n,"aria-label":`Select ${e.title} to merge`,onChange:()=>C(e.unitId)},void 0,!1,{fileName:X,lineNumber:198,columnNumber:25},this),(0,I.jsxDEV)(`button`,{type:`button`,className:`min-w-0 flex-1 text-left`,onClick:()=>r?C(e.unitId):h(t),children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`truncate font-medium text-text-bright`,children:e.title},void 0,!1,{fileName:X,lineNumber:202,columnNumber:27},this),(0,I.jsxDEV)(Tn,{variant:e.status===`promoted`?`default`:`outline`,children:e.status},void 0,!1,{fileName:X,lineNumber:203,columnNumber:27},this)]},void 0,!0,{fileName:X,lineNumber:201,columnNumber:25},this),(0,I.jsxDEV)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[e.itemCount,` item`,e.itemCount===1?``:`s`,e.sourceRecommendationRef?` · ${e.sourceRecommendationRef}`:``]},void 0,!0,{fileName:X,lineNumber:205,columnNumber:25},this)]},void 0,!0,{fileName:X,lineNumber:200,columnNumber:23},this)]},t,!0,{fileName:X,lineNumber:193,columnNumber:21},this)}),g&&(0,I.jsxDEV)(L,{size:`sm`,disabled:v.size<2,onClick:()=>x(!0),title:v.size<2?`Select at least two draft units.`:`Review and confirm the merge.`,children:[(0,I.jsxDEV)(ye,{className:`h-4 w-4`},void 0,!1,{fileName:X,lineNumber:212,columnNumber:21},this),` Merge `,v.size||``,` selected`]},void 0,!0,{fileName:X,lineNumber:211,columnNumber:19},this),(0,I.jsxDEV)(`span`,{className:`mt-1 text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Plans`},void 0,!1,{fileName:X,lineNumber:215,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:179,columnNumber:15},this),ce.length===0?(0,I.jsxDEV)(Ck,{children:`No planning artifacts found.`},void 0,!1,{fileName:X,lineNumber:219,columnNumber:17},this):ce.map(e=>(0,I.jsxDEV)(`button`,{onClick:()=>h(e.key),className:`rounded-md border p-3 text-left transition-colors hover:bg-accent ${m===e.key?`border-primary bg-accent`:`border-border`}`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-text-bright`,children:TL(e)},void 0,!1,{fileName:X,lineNumber:227,columnNumber:21},this),(0,I.jsxDEV)(Tn,{variant:e.ready?`default`:`outline`,children:e.status??`unknown`},void 0,!1,{fileName:X,lineNumber:228,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:226,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:e.kind===`plan-set`?`${e.childCount??0} child plans`:e.session},void 0,!1,{fileName:X,lineNumber:231,columnNumber:21},this),(0,I.jsxDEV)(wL,{artifact:e},void 0,!1,{fileName:X,lineNumber:232,columnNumber:21},this),e.lifecycleState===`partial`&&e.partialReasons?.[0]&&(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:e.partialReasons[0].message},void 0,!1,{fileName:X,lineNumber:233,columnNumber:95},this),(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:(0,I.jsxDEV)(GA,{value:VA(e),prefix:`Updated`},void 0,!1,{fileName:X,lineNumber:234,columnNumber:70},this)},void 0,!1,{fileName:X,lineNumber:234,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:230,columnNumber:19},this)]},e.key,!0,{fileName:X,lineNumber:221,columnNumber:17},this))]},void 0,!0,{fileName:X,lineNumber:176,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:168,columnNumber:9},this),(0,I.jsxDEV)(xL,{handoffs:Object.values(ae)},void 0,!1,{fileName:X,lineNumber:240,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:167,columnNumber:7},this),EL(A)&&A.plan&&!b&&!ne&&!k?(0,I.jsxDEV)(iL,{detail:{...A,plan:A.plan},artifact:ue,titles:n,onApply:le,onRefresh:r,onHandoff:de,onDeleted:async()=>{re(null),h(``),await r()},onClose:()=>{re(null),h(``)}},void 0,!1,{fileName:X,lineNumber:244,columnNumber:9},this):(0,I.jsxDEV)(`section`,{className:`min-w-0 lg:col-span-2`,children:b&&ee.length>=2?(0,I.jsxDEV)(vL,{units:ee,onAdvise:l,onMerge:s,onClose:T,onOpenUnit:e=>{T(),h(e)}},void 0,!1,{fileName:X,lineNumber:261,columnNumber:15},this):ne?(0,I.jsxDEV)(mL,{unit:ne,titles:n,onUpdate:i,onDelete:async e=>{await a(e),h(``)},onPromote:o,onSplit:c,onAdviseSplit:u,onOpenItem:p.openItem,onOpenPlan:h},ne.unitId,!1,{fileName:X,lineNumber:269,columnNumber:15},this):k?(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(UO,{children:`Draft not found`},void 0,!1,{fileName:X,lineNumber:284,columnNumber:19},this),(0,I.jsxDEV)(WO,{children:`This draft plan unit no longer exists. It may have been deleted or promoted.`},void 0,!1,{fileName:X,lineNumber:285,columnNumber:19},this)]},void 0,!0,{fileName:X,lineNumber:283,columnNumber:17},this),(0,I.jsxDEV)(GO,{children:(0,I.jsxDEV)(L,{variant:`outline`,size:`sm`,onClick:()=>h(``),children:`Clear selection`},void 0,!1,{fileName:X,lineNumber:288,columnNumber:19},this)},void 0,!1,{fileName:X,lineNumber:287,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:282,columnNumber:15},this):A?(0,I.jsxDEV)(oL,{detail:A},void 0,!1,{fileName:X,lineNumber:292,columnNumber:17},this):(0,I.jsxDEV)(VO,{children:(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(UO,{children:`Details`},void 0,!1,{fileName:X,lineNumber:293,columnNumber:35},this),(0,I.jsxDEV)(WO,{children:`Select an artifact to inspect it.`},void 0,!1,{fileName:X,lineNumber:293,columnNumber:65},this)]},void 0,!0,{fileName:X,lineNumber:293,columnNumber:23},this)},void 0,!1,{fileName:X,lineNumber:293,columnNumber:17},this)},void 0,!1,{fileName:X,lineNumber:259,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:166,columnNumber:5},this)}function xL({handoffs:e}){return e.length===0?null:(0,I.jsxDEV)(VO,{"aria-label":`Planning activity handoff status`,children:[(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(UO,{className:`text-sm`,children:`Planning activity`},void 0,!1,{fileName:X,lineNumber:305,columnNumber:9},this),(0,I.jsxDEV)(WO,{children:`Recent plan handoff status.`},void 0,!1,{fileName:X,lineNumber:306,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:304,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-2 text-xs`,children:e.map(e=>(0,I.jsxDEV)(`div`,{className:`rounded border p-2 ${e.status===`failed`?`border-destructive/40 bg-destructive/10`:`border-primary/30 bg-primary/10`}`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 font-medium text-text-bright`,children:[e.status===`failed`&&(0,I.jsxDEV)(ze,{className:`h-3.5 w-3.5 text-destructive-foreground`},void 0,!1,{fileName:X,lineNumber:312,columnNumber:45},this),(0,I.jsxDEV)(`span`,{children:e.title},void 0,!1,{fileName:X,lineNumber:313,columnNumber:15},this),(0,I.jsxDEV)(nk,{tone:e.status===`failed`?`danger`:`progress`,children:e.status===`failed`?`handoff failed`:`handoff pending`},void 0,!1,{fileName:X,lineNumber:314,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:311,columnNumber:13},this),(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:e.message},void 0,!1,{fileName:X,lineNumber:316,columnNumber:13},this),e.status===`failed`&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:`The plan row is restored. Retry Handoff after checking the message above, or enqueue the session plan manually.`},void 0,!1,{fileName:X,lineNumber:317,columnNumber:43},this)]},e.id,!0,{fileName:X,lineNumber:310,columnNumber:11},this))},void 0,!1,{fileName:X,lineNumber:308,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:303,columnNumber:5},this)}function SL({onClose:e,onCreated:t}){let n=$n();async function r(r){r.preventDefault();let i=new FormData(r.currentTarget),a=String(i.get(`session`)??``).trim(),o=String(i.get(`topic`)??``).trim();if(!a||!o){n.push(`Session and topic are required.`,`error`);return}try{await yL.invokeAction(`create-session-plan`,{session:a,topic:o,planningType:String(i.get(`planningType`)??`feature`),planningDepth:String(i.get(`planningDepth`)??`focused`)}),n.push(`Created ${a}.`,`success`),e(),await t()}catch(e){n.push(e instanceof Error?e.message:String(e),`error`)}}return(0,I.jsxDEV)(`form`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,onSubmit:e=>void r(e),children:[(0,I.jsxDEV)(Tk,{name:`session`,placeholder:`session-id`,required:!0},void 0,!1,{fileName:X,lineNumber:349,columnNumber:7},this),(0,I.jsxDEV)(Tk,{name:`topic`,placeholder:`Topic`,required:!0},void 0,!1,{fileName:X,lineNumber:350,columnNumber:7},this),(0,I.jsxDEV)(mA,{name:`planningType`,defaultValue:`feature`,children:[(0,I.jsxDEV)(`option`,{value:`feature`,children:`feature`},void 0,!1,{fileName:X,lineNumber:351,columnNumber:58},this),(0,I.jsxDEV)(`option`,{value:`bugfix`,children:`bugfix`},void 0,!1,{fileName:X,lineNumber:351,columnNumber:98},this),(0,I.jsxDEV)(`option`,{value:`architecture`,children:`architecture`},void 0,!1,{fileName:X,lineNumber:351,columnNumber:136},this)]},void 0,!0,{fileName:X,lineNumber:351,columnNumber:7},this),(0,I.jsxDEV)(mA,{name:`planningDepth`,defaultValue:`focused`,children:[(0,I.jsxDEV)(`option`,{value:`quick`,children:`quick`},void 0,!1,{fileName:X,lineNumber:352,columnNumber:59},this),(0,I.jsxDEV)(`option`,{value:`focused`,children:`focused`},void 0,!1,{fileName:X,lineNumber:352,columnNumber:95},this),(0,I.jsxDEV)(`option`,{value:`deep`,children:`deep`},void 0,!1,{fileName:X,lineNumber:352,columnNumber:135},this)]},void 0,!0,{fileName:X,lineNumber:352,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,I.jsxDEV)(L,{type:`submit`,variant:`secondary`,size:`sm`,children:`Create`},void 0,!1,{fileName:X,lineNumber:354,columnNumber:9},this),(0,I.jsxDEV)(L,{type:`button`,variant:`ghost`,size:`sm`,onClick:e,children:`Cancel`},void 0,!1,{fileName:X,lineNumber:355,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:353,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:348,columnNumber:5},this)}var CL={queue:{label:`Queued`,tone:`info`},queued:{label:`Queued`,tone:`info`},build:{label:`Building`,tone:`progress`},building:{label:`Building`,tone:`progress`},active:{label:`Building`,tone:`progress`},"pr-open":{label:`PR open`,tone:`warn`},partial:{label:`Partial`,tone:`warn`},failed:{label:`Failed`,tone:`danger`},merged:{label:`Shipped`,tone:`done`},shipped:{label:`Shipped`,tone:`done`},landed:{label:`Shipped`,tone:`done`}};function wL({artifact:e}){let t=CL[(e.lifecycleState??``).toLowerCase()];return t?(0,I.jsxDEV)(nk,{tone:t.tone,children:t.label},void 0,!1,{fileName:X,lineNumber:383,columnNumber:10},this):null}function TL(e){return e.kind===`plan-set`?e.title||e.planSetId||e.key:rT(e.title,e.session??e.key)}function EL(e){return!!(e&&`plan`in e)}var DL=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-activity.tsx`;function OL(e){return e&&e.length>0?e[e.length-1]:void 0}function kL({timestamp:e}){return(0,I.jsxDEV)(`time`,{dateTime:e,title:e,children:FA(e)??e},void 0,!1,{fileName:DL,lineNumber:10,columnNumber:10},this)}function AL({activityLog:e}){let t=OL(e);return t?(0,I.jsxDEV)(`p`,{className:`mt-2 min-w-0 break-words text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-foreground`,children:`Latest activity:`},void 0,!1,{fileName:DL,lineNumber:18,columnNumber:7},this),` `,(0,I.jsxDEV)(`span`,{children:t.message},void 0,!1,{fileName:DL,lineNumber:19,columnNumber:7},this),` `,(0,I.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:[`· `,(0,I.jsxDEV)(kL,{timestamp:t.timestamp},void 0,!1,{fileName:DL,lineNumber:20,columnNumber:45},this)]},void 0,!0,{fileName:DL,lineNumber:20,columnNumber:7},this)]},void 0,!0,{fileName:DL,lineNumber:17,columnNumber:5},this):null}function jL({activityLog:e}){let t=OL(e);return!t||!e||e.length===0?null:(0,I.jsxDEV)(`section`,{className:`mt-3 rounded-md border border-border bg-background/60 p-3 text-sm`,"aria-label":`Recent planning task activity`,children:[(0,I.jsxDEV)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Recent activity`},void 0,!1,{fileName:DL,lineNumber:30,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2 rounded-md border border-primary/30 bg-primary/10 p-2 text-xs`,children:[(0,I.jsxDEV)(`div`,{className:`font-medium text-text-bright`,children:`Latest activity`},void 0,!1,{fileName:DL,lineNumber:32,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`mt-1 break-words text-foreground`,children:t.message},void 0,!1,{fileName:DL,lineNumber:33,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`mt-1 text-muted-foreground`,children:(0,I.jsxDEV)(kL,{timestamp:t.timestamp},void 0,!1,{fileName:DL,lineNumber:34,columnNumber:53},this)},void 0,!1,{fileName:DL,lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:DL,lineNumber:31,columnNumber:7},this),(0,I.jsxDEV)(`ol`,{className:`mt-3 grid gap-2 text-xs`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`grid gap-0.5 rounded border border-border/70 bg-muted/20 p-2`,children:[(0,I.jsxDEV)(`span`,{className:`break-words text-foreground`,children:e.message},void 0,!1,{fileName:DL,lineNumber:39,columnNumber:13},this),(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:(0,I.jsxDEV)(kL,{timestamp:e.timestamp},void 0,!1,{fileName:DL,lineNumber:40,columnNumber:53},this)},void 0,!1,{fileName:DL,lineNumber:40,columnNumber:13},this)]},`${e.timestamp}-${t}`,!0,{fileName:DL,lineNumber:38,columnNumber:11},this))},void 0,!1,{fileName:DL,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:DL,lineNumber:29,columnNumber:5},this)}var ML={status:`Status`,priority:`Priority`,tags:`Tags`,depends_on:`Depends on`,epic:`Epic`,last_checked:`Last checked`,stale_after:`Stale after`};function NL(e,t){return{itemChanges:e.itemChanges.length,epicChanges:e.epicChanges.length,noOpRechecks:e.noOpRechecks.length,skipped:e.skipped.length,needsInput:e.needsInput.length,generatedRecommendations:zL(t?.effectiveRecommendations).total}}function PL(e,t){let n=e===`epic`?`Epic`:e===`item`?`Item`:`Record`;return t?`${n} ${t}`:n}function FL(e){return e?Object.entries(e).map(([e,t])=>({label:ML[e]??e,value:lR(t)})):[]}function IL(e){return e===`append`?`Append section content`:e===`replace`?`Replace section content`:e}function LL(e){return e?e.length<=16?e:`${e.slice(0,8)}…${e.slice(-8)}`:`unknown`}function RL(e){let t=e.kind===`epic`?`Epic`:`Item`,n=e.status?` · status ${e.status}`:``;return`${e.path}: ${t} ${e.id} (${e.reason}${n})`}function zL(e){let t=e?.activeWork?.length??0,n=e?.readyCandidates?.length??0,r=e?.recommendedNextSequence.length??0,i=e?.safeParallelizableGroups.length??0,a=e?.blockedChains?.length??0;return{activeWork:t,readyCandidates:n,nextSequence:r,safeParallelGroups:i,blockedChains:a,total:t+n+r+i+a}}function BL(e){let t=e?.coverage;return t?[{label:`Audited items`,value:String(t.auditedItemCount)},JL(`Current-state files`,t.currentStateFileCount),JL(`Git commits`,t.gitHistoryCommitCount),JL(`Pull requests`,t.pullRequestCount)].filter(e=>!!e):[]}function VL(e){let t=e?.caps;return t?[JL(`File scan cap`,t.fileScanCount),YL(`File byte cap`,t.fileBytes),JL(`Evidence per item cap`,t.evidencePerItem),JL(`Paths per category cap`,t.pathsPerCategory),YL(`Excerpt byte cap`,t.excerptBytes),JL(`Diagnostic cap`,t.diagnosticCount),JL(`Git commit scan cap`,t.gitCommitScanCount),JL(`PR enrichment cap`,t.prEnrichmentCount)].filter(e=>!!e):[]}function HL(e){let t=e?.settings;return t?[JL(`Item audit concurrency`,t.itemAuditConcurrency),JL(`Maximum item audit concurrency`,t.maxItemAuditConcurrency),t.closureAuthority?{label:`Closure authority`,value:t.closureAuthority===`current-source-only`?`current source only`:t.closureAuthority}:void 0].filter(e=>!!e):[]}function UL(e,t){if(t.kind!==`item`||!t.id)return[];let n=e?.itemSummaries?.find(e=>e.itemId===t.id),r=t.metadata?.status===`shipped`||t.metadata?.status===`superseded`?t.metadata.status:void 0,i=r===void 0?n?.evidence??[]:(n?.closureCandidates??[]).filter(e=>WL(e,r));if(i.length===0)return[];let a=(t.evidence??[]).join(`
379
- `).toLowerCase();return i.filter(KL).filter(e=>qL(e,a)).map(e=>({source:e.source.trim(),confidence:e.confidence.trim(),path:e.path??e.citations?.find(e=>e.path)?.path,excerpt:e.excerpt??e.citations?.find(e=>e.excerpt)?.excerpt,matchedBy:e.matchedBy??[],citations:e.citations}))}function WL(e,t){return e.intent===t&&e.confidence.trim().toLowerCase()===`strong`&&(e.evidenceSource===`current-source`||e.source===`current-source`)}function GL(e){return e.split(`-`).filter(Boolean).map(e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(` `)}function KL(e){return e.source.trim().length>0&&e.confidence.trim().length>0}function qL(e,t){if(t.length===0)return!0;let n=e.excerpt?.toLowerCase();if(n&&t.includes(n.slice(0,Math.min(n.length,80)))||e.path&&t.includes(e.path.toLowerCase())||e.evidence&&t.includes(e.evidence.toLowerCase().slice(0,Math.min(e.evidence.length,80)))||e.citation&&t.includes(e.citation.toLowerCase()))return!0;for(let n of e.citations??[])if(n.path&&t.includes(n.path.toLowerCase())||n.excerpt&&t.includes(n.excerpt.toLowerCase().slice(0,Math.min(n.excerpt.length,80))))return!0;return t.includes(e.source.toLowerCase())}function JL(e,t){return t===void 0?void 0:{label:e,value:t.toLocaleString()}}function YL(e,t){if(t!==void 0)return t<1024?{label:e,value:`${t} B`}:t<1024*1024?{label:e,value:`${(t/1024).toFixed(1)} KiB`}:{label:e,value:`${(t/(1024*1024)).toFixed(1)} MiB`}}var XL=`Shipped evidence: current source`,ZL=`Superseded evidence: current source`,QL=`Shipped evidence: lifecycle trace`,$L=`Shipped evidence: inferred from git/PR history`,eR=`Superseded evidence: lifecycle trace`,tR=`Superseded evidence: inferred from git/PR history`,nR=`Ambiguous shipped candidate: needs input`,rR=`Ambiguous superseded candidate: needs input`,iR=[/\bPR\s+#(\d{1,10})\b/gi,/(?:^|[^\w/])#(\d{1,10})\b/g,/\/pull\/(\d{1,10})\b/gi],aR=/\b(?:merge\s+commit|commit|git)\s+([a-f0-9]{7,40})\b/gi;function oR(e){let t=new Set,n=new Set,r=new Set;for(let i of e)if(i){i.includes(XL)&&t.add(XL),i.includes(ZL)&&t.add(ZL),i.includes(QL)&&t.add(QL),i.includes($L)&&t.add($L),i.includes(eR)&&t.add(eR),i.includes(tR)&&t.add(tR),i.includes(nR)&&t.add(nR),i.includes(rR)&&t.add(rR);for(let e of iR){e.lastIndex=0;for(let t of i.matchAll(e))t[1]&&n.add(`#${t[1]}`)}aR.lastIndex=0;for(let e of i.matchAll(aR))e[1]&&r.add(e[1])}return{labels:[XL,ZL,QL,$L,eR,tR,nR,rR].filter(e=>t.has(e)),prIds:[...n],commitIds:[...r]}}function sR(e){return e?.effectiveRecommendations}function cR(e){return{removedItemIds:[...e?.removed.itemIds??[]].sort(),removedEpicIds:[...e?.removed.epicIds??[]].sort(),repositioned:[...e?.repositioned??[]].sort((e,t)=>e.itemId.localeCompare(t.itemId)||e.from.localeCompare(t.from)||e.to.localeCompare(t.to)).map(e=>`${e.itemId}: ${e.from} → ${e.to}`)}}function lR(e){return Array.isArray(e)?e.join(`, `):e===null?`none`:e===void 0?``:String(e)}var uR=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/recommendation-freshness.tsx`;function dR(e){return e?e.length<=16?e:`${e.slice(0,8)}…${e.slice(-8)}`:`unknown`}function fR(e,t){return e?.state??t?.state??null}function pR({freshness:e,status:t,prefix:n}){let r=fR(e,t);return r?(0,I.jsxDEV)(nk,{tone:$O(r),className:`font-normal uppercase tracking-wide`,children:n?`${n} ${r}`:r},void 0,!1,{fileName:uR,lineNumber:18,columnNumber:10},this):null}function mR({freshness:e,status:t}){if(e)return(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-2xs text-muted-foreground`,children:[e.reason,(0,I.jsxDEV)(hR,{label:`stored`,value:e.storedSourceFingerprint},void 0,!1,{fileName:uR,lineNumber:26,columnNumber:9},this),(0,I.jsxDEV)(hR,{label:`compared`,value:e.comparedSourceFingerprint},void 0,!1,{fileName:uR,lineNumber:27,columnNumber:9},this),e.baselineTaskId&&(0,I.jsxDEV)(I.Fragment,{children:[` · baseline task `,(0,I.jsxDEV)(`span`,{title:e.baselineTaskId,children:e.baselineTaskId},void 0,!1,{fileName:uR,lineNumber:28,columnNumber:57},this)]},void 0,!0,{fileName:uR,lineNumber:28,columnNumber:38},this)]},void 0,!0,{fileName:uR,lineNumber:24,columnNumber:7},this);if(!t)return null;let n=[];return t.sourceFingerprint&&n.push((0,I.jsxDEV)(hR,{label:`source`,value:t.sourceFingerprint},`source`,!1,{fileName:uR,lineNumber:34,columnNumber:44},this)),t.lastAppliedSourceFingerprint&&n.push((0,I.jsxDEV)(hR,{label:`applied`,value:t.lastAppliedSourceFingerprint},`applied`,!1,{fileName:uR,lineNumber:35,columnNumber:55},this)),n.length>0?(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-2xs text-muted-foreground`,children:n},void 0,!1,{fileName:uR,lineNumber:36,columnNumber:29},this):null}function hR({label:e,value:t}){return t?(0,I.jsxDEV)(I.Fragment,{children:[` · `,e,` `,(0,I.jsxDEV)(`span`,{title:t,children:dR(t)},void 0,!1,{fileName:uR,lineNumber:41,columnNumber:23},this)]},void 0,!0,{fileName:uR,lineNumber:41,columnNumber:10},this):null}var gR=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/backlog-curation-full-audit-panel.tsx`;function _R({audit:e}){if(!e)return null;let t=BL(e),n=VL(e),r=HL(e),i=[...e.diagnostics??[]].sort((e,t)=>SR(e.severity)-SR(t.severity)||e.code.localeCompare(t.code)),a=[...e.itemSummaries??[]].sort((e,t)=>e.itemId.localeCompare(t.itemId));return(0,I.jsxDEV)(gA,{title:`Analysis metadata`,className:`gap-2`,children:[e.scope&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`Scope: `,e.scope.openItemCount??e.scope.itemIds.length,` open item`,(e.scope.openItemCount??e.scope.itemIds.length)===1?``:`s`,e.scope.itemIds.length>0?` · ${e.scope.itemIds.join(`, `)}`:``]},void 0,!0,{fileName:gR,lineNumber:16,columnNumber:23},this),t.length>0&&(0,I.jsxDEV)(xR,{title:`Coverage`,rows:t},void 0,!1,{fileName:gR,lineNumber:17,columnNumber:31},this),r.length>0&&(0,I.jsxDEV)(xR,{title:`Concurrency and authority`,rows:r},void 0,!1,{fileName:gR,lineNumber:18,columnNumber:31},this),n.length>0&&(0,I.jsxDEV)(xR,{title:`Caps`,rows:n},void 0,!1,{fileName:gR,lineNumber:19,columnNumber:27},this),i.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:`Diagnostics`},void 0,!1,{fileName:gR,lineNumber:22,columnNumber:11},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-muted-foreground`,children:i.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:e.severity===`warning`?`text-[color:var(--prio-medium)]`:`text-foreground`,children:e.severity},void 0,!1,{fileName:gR,lineNumber:26,columnNumber:17},this),` `,(0,I.jsxDEV)(`span`,{className:`font-mono`,children:e.code},void 0,!1,{fileName:gR,lineNumber:26,columnNumber:154},this),e.message?`: ${e.message}`:``,e.path?` · ${e.path}`:``]},`${e.severity}:${e.code}:${e.path??``}:${e.message??``}`,!0,{fileName:gR,lineNumber:25,columnNumber:15},this))},void 0,!1,{fileName:gR,lineNumber:23,columnNumber:11},this)]},void 0,!0,{fileName:gR,lineNumber:21,columnNumber:9},this),a.length>0&&(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:[a.length,` audited item summaries`]},void 0,!0,{fileName:gR,lineNumber:34,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2 text-xs text-muted-foreground`,children:a.map(e=>(0,I.jsxDEV)(`div`,{className:`grid gap-1 rounded border border-border p-2`,children:[(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.itemId},void 0,!1,{fileName:gR,lineNumber:38,columnNumber:20},this),` · `,e.candidateIntent,e.sourceFirstResult?.intent?` · result ${e.sourceFirstResult.intent}`:``,e.confidence?` · confidence ${e.confidence}`:``,e.evidenceCount===void 0?``:` · ${e.evidenceCount} evidence`]},void 0,!0,{fileName:gR,lineNumber:38,columnNumber:17},this),e.sourceFirstResult?.rationale&&(0,I.jsxDEV)(`p`,{children:e.sourceFirstResult.rationale},void 0,!1,{fileName:gR,lineNumber:39,columnNumber:55},this),(0,I.jsxDEV)(yR,{title:`Current-source citations`,citations:e.sourceFirstResult?.citations??e.closureCandidates?.flatMap(e=>e.citations??[])??[]},void 0,!1,{fileName:gR,lineNumber:40,columnNumber:17},this),(0,I.jsxDEV)(bR,{hints:e.historicalHints??e.sourceFirstResult?.historicalHints??[]},void 0,!1,{fileName:gR,lineNumber:41,columnNumber:17},this),e.sourceFirstResult?.diagnostics&&e.sourceFirstResult.diagnostics.length>0&&(0,I.jsxDEV)(`ul`,{children:e.sourceFirstResult.diagnostics.map(e=>(0,I.jsxDEV)(`li`,{children:[`diagnostic `,e.severity,` · `,e.code,e.path?` · ${e.path}`:``]},`${e.code}:${e.path??``}`,!0,{fileName:gR,lineNumber:42,columnNumber:166},this))},void 0,!1,{fileName:gR,lineNumber:42,columnNumber:106},this)]},e.itemId,!0,{fileName:gR,lineNumber:37,columnNumber:15},this))},void 0,!1,{fileName:gR,lineNumber:35,columnNumber:11},this)]},void 0,!0,{fileName:gR,lineNumber:33,columnNumber:9},this)]},void 0,!0,{fileName:gR,lineNumber:15,columnNumber:5},this)}function vR({evidence:e}){return e.length===0?null:(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-text-bright`,children:[GL(e.source),` · `,e.confidence,e.path?` · ${e.path}`:``]},`${e.source}:${e.confidence}:${e.path??``}:${t}`,!0,{fileName:gR,lineNumber:56,columnNumber:39},this))},void 0,!1,{fileName:gR,lineNumber:55,columnNumber:5},this)}function yR({title:e,citations:t}){let n=t.filter(e=>e.path||e.excerpt);return n.length===0?null:(0,I.jsxDEV)(`ul`,{className:`grid gap-0.5`,children:[(0,I.jsxDEV)(`li`,{className:`font-medium text-foreground`,children:e},void 0,!1,{fileName:gR,lineNumber:64,columnNumber:39},this),n.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[e.kind?`${e.kind}: `:``,e.path??`current source`,e.excerpt?` — ${e.excerpt}`:``]},`${e.path??``}:${e.excerpt??``}:${t}`,!0,{fileName:gR,lineNumber:64,columnNumber:133},this))]},void 0,!0,{fileName:gR,lineNumber:64,columnNumber:10},this)}function bR({hints:e}){return e.length===0?null:(0,I.jsxDEV)(`ul`,{className:`grid gap-0.5`,children:[(0,I.jsxDEV)(`li`,{className:`font-medium text-foreground`,children:`Historical navigation hints (not closure evidence)`},void 0,!1,{fileName:gR,lineNumber:69,columnNumber:39},this),e.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[GL(e.source??`historical`),` · `,e.intent??`hint`,e.confidence?` · ${e.confidence}`:``,e.path?` · ${e.path}`:``,e.citation??e.evidence?` — ${e.citation??e.evidence}`:``]},`${e.source??``}:${e.citation??e.evidence??``}:${t}`,!0,{fileName:gR,lineNumber:69,columnNumber:166},this))]},void 0,!0,{fileName:gR,lineNumber:69,columnNumber:10},this)}function xR({title:e,rows:t}){return(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:e},void 0,!1,{fileName:gR,lineNumber:75,columnNumber:7},this),(0,I.jsxDEV)(`dl`,{className:`grid gap-1`,children:t.map(e=>(0,I.jsxDEV)(`div`,{className:`grid grid-cols-[10rem_1fr] gap-2`,children:[(0,I.jsxDEV)(`dt`,{className:`text-muted-foreground`,children:e.label},void 0,!1,{fileName:gR,lineNumber:77,columnNumber:94},this),(0,I.jsxDEV)(`dd`,{className:`text-foreground`,children:e.value},void 0,!1,{fileName:gR,lineNumber:77,columnNumber:148},this)]},e.label,!0,{fileName:gR,lineNumber:77,columnNumber:28},this))},void 0,!1,{fileName:gR,lineNumber:76,columnNumber:7},this)]},void 0,!0,{fileName:gR,lineNumber:74,columnNumber:5},this)}function SR(e){return e===`warning`?0:1}var CR=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/backlog-curation-git-delta-panel.tsx`;function wR(e){return e?e.length<=12?e:e.slice(0,12):`unknown`}function TR(e=[]){return[...e].sort((e,t)=>{let n=OR(e.severity)-OR(t.severity);return n===0?`${e.code}\u0000${e.message??``}\u0000${e.commit??``}`.localeCompare(`${t.code}\u0000${t.message??``}\u0000${t.commit??``}`):n})}function ER({gitDelta:e}){if(!e)return null;let t=TR(e.diagnostics),n=kR(e.affectedItemCandidates),r=e.caps;return(0,I.jsxDEV)(gA,{title:`Delta git diagnostics`,className:`gap-1.5`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[`Baseline `,(0,I.jsxDEV)(DR,{value:e.baseline?.commit??void 0},void 0,!1,{fileName:CR,lineNumber:28,columnNumber:20},this),e.baseline?.time?` · ${e.baseline.time}`:e.baseline?.generatedAt?` · ${e.baseline.generatedAt}`:``,e.baseline?.sourceFingerprint?(0,I.jsxDEV)(I.Fragment,{children:[` · source `,(0,I.jsxDEV)(`span`,{title:e.baseline.sourceFingerprint,children:dR(e.baseline.sourceFingerprint)},void 0,!1,{fileName:CR,lineNumber:28,columnNumber:263},this)]},void 0,!0,{fileName:CR,lineNumber:28,columnNumber:251},this):null]},void 0,!0,{fileName:CR,lineNumber:27,columnNumber:9},this),(0,I.jsxDEV)(`p`,{children:[`Current HEAD `,(0,I.jsxDEV)(DR,{value:e.currentHead?.commit},void 0,!1,{fileName:CR,lineNumber:31,columnNumber:24},this),e.currentHead?.time?` · ${e.currentHead.time}`:e.currentHead?.generatedAt?` · ${e.currentHead.generatedAt}`:``,e.currentHead?.sourceFingerprint?(0,I.jsxDEV)(I.Fragment,{children:[` · source `,(0,I.jsxDEV)(`span`,{title:e.currentHead.sourceFingerprint,children:dR(e.currentHead.sourceFingerprint)},void 0,!1,{fileName:CR,lineNumber:31,columnNumber:272},this)]},void 0,!0,{fileName:CR,lineNumber:31,columnNumber:260},this):null]},void 0,!0,{fileName:CR,lineNumber:30,columnNumber:9},this),(0,I.jsxDEV)(`p`,{children:[`Delta coverage `,e.coverage?.kind??`unknown`,e.coverage?.message?` · ${e.coverage.message}`:``]},void 0,!0,{fileName:CR,lineNumber:33,columnNumber:9},this),(0,I.jsxDEV)(`p`,{children:[`Scanned commits: `,e.scannedCommitCount??e.scannedCommits?.length??0,r?` · caps ${AR(r)}`:``]},void 0,!0,{fileName:CR,lineNumber:34,columnNumber:9},this),e.affectedItemCandidates&&(0,I.jsxDEV)(`p`,{children:[`Affected candidates: `,n.total,n.ambiguousShipped>0?` · ambiguous shipped ${n.ambiguousShipped}`:``,n.ambiguousSuperseded>0?` · ambiguous superseded ${n.ambiguousSuperseded}`:``]},void 0,!0,{fileName:CR,lineNumber:35,columnNumber:45},this)]},void 0,!0,{fileName:CR,lineNumber:26,columnNumber:7},this),t.length>0&&(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-xs text-muted-foreground`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:e.severity===`warning`?`text-[color:var(--prio-medium)]`:`text-foreground`,children:e.severity},void 0,!1,{fileName:CR,lineNumber:41,columnNumber:15},this),` `,(0,I.jsxDEV)(`span`,{className:`font-mono`,children:e.code},void 0,!1,{fileName:CR,lineNumber:41,columnNumber:152},this),e.message?`: ${e.message}`:``,e.commit?(0,I.jsxDEV)(I.Fragment,{children:[` · commit `,(0,I.jsxDEV)(DR,{value:e.commit},void 0,!1,{fileName:CR,lineNumber:41,columnNumber:290},this)]},void 0,!0,{fileName:CR,lineNumber:41,columnNumber:278},this):null]},`${e.severity}:${e.code}:${e.message??``}:${e.commit??``}`,!0,{fileName:CR,lineNumber:40,columnNumber:13},this))},void 0,!1,{fileName:CR,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:CR,lineNumber:25,columnNumber:5},this)}function DR({value:e}){return(0,I.jsxDEV)(`span`,{title:e,className:`font-mono`,children:wR(e)},void 0,!1,{fileName:CR,lineNumber:51,columnNumber:10},this)}function OR(e){return e===`warning`?0:1}function kR(e){return(e??[]).reduce((e,t)=>(e.total+=1,t.intent===`ambiguous-shipped`&&(e.ambiguousShipped+=1),t.intent===`ambiguous-superseded`&&(e.ambiguousSuperseded+=1),e),{total:0,ambiguousShipped:0,ambiguousSuperseded:0})}function AR(e){return[e.commitScanCount===void 0?void 0:`${e.commitScanCount} commits`,e.changedPathCount===void 0?void 0:`${e.changedPathCount} paths`,e.excerptCount===void 0?void 0:`${e.excerptCount} excerpts`].filter(Boolean).join(`, `)}var Z=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/backlog-curation-preview.tsx`;function jR({taskId:e,entry:t,draft:n,recommendations:r,curationPreview:i,busy:a,onApply:o,onRedraft:s}){let[c,l]=w.useState(!1),[u,d]=w.useState(``),[f,p]=w.useState(i??null),[m,h]=w.useState(i===void 0),g=i??f??void 0,_=g?.recommendationProjection,v=sR(_),y=cR(_),b=NL(n,_),x=!!t.appliedAt,S=n.summary.length>0||n.itemChanges.length>0||n.epicChanges.length>0||n.noOpRechecks.length>0||n.skipped.length>0||n.needsInput.length>0||!!v||m||g!==void 0,C=u.trim().length>0,T=_?.validation??g?.generatedRecommendationValidation,ee=T?.valid===!1,E=g?.errors??[],D=g!==void 0,te=D&&g.valid&&E.length===0&&!ee,O=D&&ee&&E.length===0;return w.useEffect(()=>{if(i!==void 0){p(i),h(!1);return}let t=!0;return h(!0),sw().invokeAction(`preview-backlog-curation-task`,{taskId:e}).then(e=>{t&&p(e)}).catch(e=>{t&&p({valid:!1,errors:[{path:``,message:e instanceof Error?e.message:String(e)}]})}).finally(()=>{t&&h(!1)}),()=>{t=!1}},[i,e]),(0,I.jsxDEV)(gA,{className:`mt-3 gap-3 pt-3 text-sm`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Backlog curation preview`},void 0,!1,{fileName:Z,lineNumber:72,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`Read-only draft from source `,LL(n.sourceFingerprint),n.generatedAt?` · generated ${FA(n.generatedAt)}`:``]},void 0,!0,{fileName:Z,lineNumber:73,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:71,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,I.jsxDEV)(MR,{label:`item changes`,value:b.itemChanges},void 0,!1,{fileName:Z,lineNumber:76,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`epic changes`,value:b.epicChanges},void 0,!1,{fileName:Z,lineNumber:77,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`no-op rechecks`,value:b.noOpRechecks},void 0,!1,{fileName:Z,lineNumber:78,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`unresolved exceptions`,value:b.skipped},void 0,!1,{fileName:Z,lineNumber:79,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`needs input`,value:b.needsInput},void 0,!1,{fileName:Z,lineNumber:80,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`recommendation entries`,value:b.generatedRecommendations},void 0,!1,{fileName:Z,lineNumber:81,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:75,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:70,columnNumber:7},this),g?.recommendationFreshness&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-border bg-card p-2 text-xs`,children:[(0,I.jsxDEV)(pR,{freshness:g.recommendationFreshness,prefix:`recommendations`},void 0,!1,{fileName:Z,lineNumber:87,columnNumber:11},this),(0,I.jsxDEV)(mR,{freshness:g.recommendationFreshness},void 0,!1,{fileName:Z,lineNumber:88,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:86,columnNumber:9},this),(0,I.jsxDEV)(ER,{gitDelta:g?.gitDelta},void 0,!1,{fileName:Z,lineNumber:91,columnNumber:7},this),(0,I.jsxDEV)(_R,{audit:g?.fullImplementationAudit},void 0,!1,{fileName:Z,lineNumber:92,columnNumber:7},this),m&&(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-card p-2 text-xs text-muted-foreground`,children:`Validating curation apply preconditions and effective recommendation projection…`},void 0,!1,{fileName:Z,lineNumber:93,columnNumber:26},this),!m&&g&&!_&&r&&(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-card p-2 text-xs text-muted-foreground`,children:`Effective recommendation projection unavailable; raw generated recommendations are available as provenance only and normal apply remains disabled.`},void 0,!1,{fileName:Z,lineNumber:94,columnNumber:81},this),T&&(0,I.jsxDEV)(RR,{validation:T},void 0,!1,{fileName:Z,lineNumber:95,columnNumber:36},this),E.length>0&&(0,I.jsxDEV)(PR,{title:`Curation preview validation errors`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5 text-xs text-destructive-foreground`,children:E.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono`,children:e.path},void 0,!1,{fileName:Z,lineNumber:99,columnNumber:86},this),` — `,e.message]},`${e.path}:${e.message}`,!0,{fileName:Z,lineNumber:99,columnNumber:43},this))},void 0,!1,{fileName:Z,lineNumber:98,columnNumber:11},this)},void 0,!1,{fileName:Z,lineNumber:97,columnNumber:9},this),S&&(0,I.jsxDEV)(`details`,{className:`border-t border-border pt-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer list-none text-xs text-muted-foreground hover:text-foreground [&::-webkit-details-marker]:hidden`,children:`Review curation details`},void 0,!1,{fileName:Z,lineNumber:106,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-3`,children:[n.summary.length>0&&(0,I.jsxDEV)(FR,{title:`Summary`,entries:n.summary},void 0,!1,{fileName:Z,lineNumber:108,columnNumber:42},this),(0,I.jsxDEV)(IR,{title:`Item changes`,patches:n.itemChanges,applied:x,fullAudit:g?.fullImplementationAudit},void 0,!1,{fileName:Z,lineNumber:109,columnNumber:13},this),(0,I.jsxDEV)(IR,{title:`Epic changes`,patches:n.epicChanges,applied:x,fullAudit:g?.fullImplementationAudit},void 0,!1,{fileName:Z,lineNumber:110,columnNumber:13},this),n.noOpRechecks.length>0&&(0,I.jsxDEV)(PR,{title:`No-op rechecks`,children:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:[n.noOpRechecks.length,` freshness-only rechecks proposed; expand for details`]},void 0,!0,{fileName:Z,lineNumber:114,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:n.noOpRechecks.map(e=>(0,I.jsxDEV)(`div`,{className:`rounded border border-border p-2`,children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:118,columnNumber:68},this)},void 0,!1,{fileName:Z,lineNumber:118,columnNumber:25},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`last_checked `,e.last_checked,` · stale_after `,e.stale_after]},void 0,!0,{fileName:Z,lineNumber:119,columnNumber:25},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:120,columnNumber:45},this)]},`${e.kind}:${e.id}`,!0,{fileName:Z,lineNumber:117,columnNumber:23},this))},void 0,!1,{fileName:Z,lineNumber:115,columnNumber:19},this)]},void 0,!0,{fileName:Z,lineNumber:113,columnNumber:17},this)},void 0,!1,{fileName:Z,lineNumber:112,columnNumber:15},this),n.skipped.length>0&&(0,I.jsxDEV)(PR,{title:`Unresolved exceptions`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5 text-xs text-muted-foreground`,children:n.skipped.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:130,columnNumber:115},this),` — `,e.reason]},`${e.kind??`record`}:${e.id??t}`,!0,{fileName:Z,lineNumber:130,columnNumber:56},this))},void 0,!1,{fileName:Z,lineNumber:129,columnNumber:17},this)},void 0,!1,{fileName:Z,lineNumber:128,columnNumber:15},this),n.needsInput.length>0&&(0,I.jsxDEV)(PR,{title:`Needs-input cases`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5 text-xs text-muted-foreground`,children:n.needsInput.map((e,t)=>{let n=oR([e.reason,e.question]);return(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:139,columnNumber:121},this),`:`]},void 0,!0,{fileName:Z,lineNumber:139,columnNumber:87},this),` `,n.labels.map(e=>(0,I.jsxDEV)(`span`,{className:`mr-1 rounded border px-1 ${ZO(`warn`)}`,children:e},e,!1,{fileName:Z,lineNumber:139,columnNumber:209},this)),e.question,e.reason?` — ${e.reason}`:``]},`${e.kind??`record`}:${e.id??t}`,!0,{fileName:Z,lineNumber:139,columnNumber:28},this)})},void 0,!1,{fileName:Z,lineNumber:136,columnNumber:17},this)},void 0,!1,{fileName:Z,lineNumber:135,columnNumber:15},this),v&&(0,I.jsxDEV)(zR,{recommendations:v,metadata:y},void 0,!1,{fileName:Z,lineNumber:144,columnNumber:40},this)]},void 0,!0,{fileName:Z,lineNumber:107,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:105,columnNumber:9},this),(0,I.jsxDEV)(gA,{title:`Redraft curation`,children:[(0,I.jsxDEV)(YO,{className:`min-h-16`,value:u,onChange:e=>d(e.target.value),placeholder:`Optional steering for a curation redraft`},void 0,!1,{fileName:Z,lineNumber:150,columnNumber:9},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:a||!C,onClick:()=>void s(e,{steering:u.trim()}),children:`Redraft curation`},void 0,!1,{fileName:Z,lineNumber:151,columnNumber:14},this)},void 0,!1,{fileName:Z,lineNumber:151,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:149,columnNumber:7},this),x?(0,I.jsxDEV)(`div`,{className:`rounded border border-primary/30 bg-primary/10 p-2 text-xs text-text-bright`,children:[`Curation applied `,t.appliedAt?FA(t.appliedAt):``,`.`]},void 0,!0,{fileName:Z,lineNumber:155,columnNumber:9},this):(0,I.jsxDEV)(gA,{className:`flex flex-wrap items-center`,children:c?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(L,{size:`sm`,variant:`destructive`,disabled:a||m||!te,onClick:()=>void o(e,{applyBacklogCurationDraft:{previewAcknowledged:!0,confirmApply:!0}}),children:`Confirm apply curation`},void 0,!1,{fileName:Z,lineNumber:162,columnNumber:15},this),ee&&(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:a||m||!O,onClick:()=>void o(e,{applyBacklogCurationDraft:{previewAcknowledged:!0,confirmApply:!0,applyCurationOnly:!0}}),children:`Apply curation only / discard generated recommendations`},void 0,!1,{fileName:Z,lineNumber:163,columnNumber:54},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:a,onClick:()=>l(!1),children:`Cancel`},void 0,!1,{fileName:Z,lineNumber:164,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:161,columnNumber:13},this):(0,I.jsxDEV)(L,{size:`sm`,disabled:a,onClick:()=>l(!0),children:`I reviewed this curation preview`},void 0,!1,{fileName:Z,lineNumber:159,columnNumber:13},this)},void 0,!1,{fileName:Z,lineNumber:157,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:69,columnNumber:5},this)}function MR({label:e,value:t}){return(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-2xs text-text-bright`,children:[t,` `,e]},void 0,!0,{fileName:Z,lineNumber:174,columnNumber:10},this)}function NR({kind:e,id:t}){let n=PL(e,t);return e!==`item`||!t?(0,I.jsxDEV)(I.Fragment,{children:n},void 0,!1,{fileName:Z,lineNumber:182,columnNumber:38},this):(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>jw(t),title:`Show ${t} on the board`,className:`rounded-sm text-[color:var(--lane-ready)] hover:underline focus-visible:underline focus-visible:outline focus-visible:outline-1 focus-visible:outline-[color:var(--color-ring)]`,children:n},void 0,!1,{fileName:Z,lineNumber:184,columnNumber:5},this)}function PR({title:e,children:t}){return(0,I.jsxDEV)(gA,{title:e,className:`gap-1.5`,children:t},void 0,!1,{fileName:Z,lineNumber:191,columnNumber:10},this)}function FR({title:e,entries:t}){return(0,I.jsxDEV)(PR,{title:e,children:(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Z,lineNumber:195,columnNumber:123},this))},void 0,!1,{fileName:Z,lineNumber:195,columnNumber:38},this)},void 0,!1,{fileName:Z,lineNumber:195,columnNumber:10},this)}function IR({title:e,patches:t,applied:n,fullAudit:r}){return t.length===0?null:(0,I.jsxDEV)(PR,{title:e,children:(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:t.map(e=>(0,I.jsxDEV)(LR,{patch:e,applied:n,fullAudit:r},`${e.kind}:${e.id}`,!1,{fileName:Z,lineNumber:205,columnNumber:33},this))},void 0,!1,{fileName:Z,lineNumber:204,columnNumber:7},this)},void 0,!1,{fileName:Z,lineNumber:203,columnNumber:5},this)}function LR({patch:e,applied:t,fullAudit:n}){let r=FL(e.metadata),i=oR(e.evidence??[]),a=UL(n,e);return(0,I.jsxDEV)(`article`,{className:`grid gap-2 rounded border border-border p-2`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:218,columnNumber:52},this)},void 0,!1,{fileName:Z,lineNumber:218,columnNumber:9},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:219,columnNumber:29},this)]},void 0,!0,{fileName:Z,lineNumber:217,columnNumber:7},this),r.length>0&&(0,I.jsxDEV)(`dl`,{className:`grid gap-1 text-xs`,children:r.map(e=>(0,I.jsxDEV)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-2`,children:[(0,I.jsxDEV)(`dt`,{className:`text-muted-foreground`,children:e.label},void 0,!1,{fileName:Z,lineNumber:221,columnNumber:146},this),(0,I.jsxDEV)(`dd`,{className:`text-foreground`,children:e.value},void 0,!1,{fileName:Z,lineNumber:221,columnNumber:200},this)]},e.label,!0,{fileName:Z,lineNumber:221,columnNumber:81},this))},void 0,!1,{fileName:Z,lineNumber:221,columnNumber:27},this),e.sectionOperations&&e.sectionOperations.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:e.sectionOperations.map(e=>(0,I.jsxDEV)(`details`,{className:`border-l-2 border-border pl-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:[IL(e.action),` · `,e.heading]},void 0,!0,{fileName:Z,lineNumber:222,columnNumber:245},this),(0,I.jsxDEV)(zO,{markdown:e.content},void 0,!1,{fileName:Z,lineNumber:222,columnNumber:384},this)]},`${e.heading}:${e.action}`,!0,{fileName:Z,lineNumber:222,columnNumber:145},this))},void 0,!1,{fileName:Z,lineNumber:222,columnNumber:73},this),(i.labels.length>0||a.length>0)&&(0,I.jsxDEV)(`div`,{className:`grid gap-1 rounded border border-primary/20 bg-primary/5 p-2 text-xs text-muted-foreground`,children:[i.labels.length>0&&(0,I.jsxDEV)(`p`,{children:n?`Draft evidence labels (historical labels are navigation hints; current-source labels are closure evidence):`:t?`Applied closure metadata evidence:`:`Proposed closure metadata evidence in this draft:`},void 0,!1,{fileName:Z,lineNumber:225,columnNumber:42},this),i.labels.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:i.labels.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-text-bright`,children:e},e,!1,{fileName:Z,lineNumber:226,columnNumber:112},this))},void 0,!1,{fileName:Z,lineNumber:226,columnNumber:42},this),a.length>0&&(0,I.jsxDEV)(vR,{evidence:a},void 0,!1,{fileName:Z,lineNumber:227,columnNumber:44},this),i.prIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`PR identifiers: `,i.prIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:228,columnNumber:41},this),i.commitIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`Commit identifiers: `,i.commitIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:229,columnNumber:45},this)]},void 0,!0,{fileName:Z,lineNumber:224,columnNumber:9},this),e.evidence&&e.evidence.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:e.evidence.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Z,lineNumber:232,columnNumber:147},this))},void 0,!1,{fileName:Z,lineNumber:232,columnNumber:55},this)]},void 0,!0,{fileName:Z,lineNumber:216,columnNumber:5},this)}function RR({validation:e}){return e.valid?null:(0,I.jsxDEV)(PR,{title:`Invalid generated recommendation references`,children:(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded border border-destructive/40 bg-destructive/10 p-2 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`text-destructive-foreground`,children:`Generated recommendations reference backlog records that are closed, missing, or otherwise invalid. Normal curation apply is disabled until you explicitly discard generated recommendations.`},void 0,!1,{fileName:Z,lineNumber:242,columnNumber:9},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-muted-foreground`,children:e.issues.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:RL(e)},void 0,!1,{fileName:Z,lineNumber:246,columnNumber:15},this),e.title?` — ${e.title}`:``,(0,I.jsxDEV)(`span`,{className:`block text-destructive-foreground`,children:e.message},void 0,!1,{fileName:Z,lineNumber:246,columnNumber:135},this)]},`${e.path}:${e.kind}:${e.id}:${e.reason}`,!0,{fileName:Z,lineNumber:245,columnNumber:13},this))},void 0,!1,{fileName:Z,lineNumber:243,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:241,columnNumber:7},this)},void 0,!1,{fileName:Z,lineNumber:240,columnNumber:5},this)}function zR({recommendations:e,metadata:t}){let n=zL(e);return(0,I.jsxDEV)(PR,{title:`Effective generated recommendations (read-only)`,children:(0,I.jsxDEV)(`div`,{className:`grid gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[n.activeWork,` active work items · `,n.readyCandidates,` ready candidates · `,n.nextSequence,` next-sequence items · `,n.safeParallelGroups,` safe-parallel groups · `,n.blockedChains,` blocked chains`]},void 0,!0,{fileName:Z,lineNumber:261,columnNumber:9},this),t.removedItemIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`Removed item ids: `,t.removedItemIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:262,columnNumber:48},this),t.removedEpicIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`Removed epic ids: `,t.removedEpicIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:263,columnNumber:48},this),t.repositioned.length>0&&(0,I.jsxDEV)(`p`,{children:[`Repositioned item ids: `,t.repositioned.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:264,columnNumber:46},this),(0,I.jsxDEV)(BR,{title:`Active work`,entries:e.activeWork??[]},void 0,!1,{fileName:Z,lineNumber:265,columnNumber:9},this),(0,I.jsxDEV)(BR,{title:`Ready candidates`,entries:e.readyCandidates??[]},void 0,!1,{fileName:Z,lineNumber:266,columnNumber:9},this),(0,I.jsxDEV)(BR,{title:`Recommended next sequence`,entries:e.recommendedNextSequence??[]},void 0,!1,{fileName:Z,lineNumber:267,columnNumber:9},this),(0,I.jsxDEV)(VR,{title:`Safe-parallel groups`,groups:e.safeParallelizableGroups??[]},void 0,!1,{fileName:Z,lineNumber:268,columnNumber:9},this),(0,I.jsxDEV)(HR,{chains:e.blockedChains??[]},void 0,!1,{fileName:Z,lineNumber:269,columnNumber:9},this),e.rationaleAndAssumptions&&e.rationaleAndAssumptions.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4`,children:e.rationaleAndAssumptions.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Z,lineNumber:270,columnNumber:194},this))},void 0,!1,{fileName:Z,lineNumber:270,columnNumber:107},this)]},void 0,!0,{fileName:Z,lineNumber:260,columnNumber:7},this)},void 0,!1,{fileName:Z,lineNumber:259,columnNumber:5},this)}function BR({title:e,entries:t}){return t.length===0?null:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,open:!0,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-medium text-foreground`,children:[e,` (`,t.length,`)`]},void 0,!0,{fileName:Z,lineNumber:280,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1.5`,children:t.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.itemId},void 0,!1,{fileName:Z,lineNumber:284,columnNumber:13},this),e.title?` — ${e.title}`:``,e.rationale?(0,I.jsxDEV)(`span`,{className:`block`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:284,columnNumber:137},this):null]},`${e.ref??e.itemId}:${t}`,!0,{fileName:Z,lineNumber:283,columnNumber:11},this))},void 0,!1,{fileName:Z,lineNumber:281,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:279,columnNumber:5},this)}function VR({title:e,groups:t}){return t.length===0?null:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,open:!0,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-medium text-foreground`,children:[e,` (`,t.length,`)`]},void 0,!0,{fileName:Z,lineNumber:296,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1.5`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.ref},void 0,!1,{fileName:Z,lineNumber:300,columnNumber:13},this),e.title?` — ${e.title}`:``,(0,I.jsxDEV)(`span`,{className:`block`,children:[`Items: `,e.itemIds.join(`, `)||`none`,e.epicIds&&e.epicIds.length>0?` · Epics: ${e.epicIds.join(`, `)}`:``,e.recommendedProfile?` · Profile: ${e.recommendedProfile}`:``]},void 0,!0,{fileName:Z,lineNumber:301,columnNumber:13},this),e.rationale?(0,I.jsxDEV)(`span`,{className:`block`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:302,columnNumber:32},this):null]},e.ref,!0,{fileName:Z,lineNumber:299,columnNumber:11},this))},void 0,!1,{fileName:Z,lineNumber:297,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:295,columnNumber:5},this)}function HR({chains:e}){return e.length===0?null:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,open:!0,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-medium text-foreground`,children:[`Blocked chains (`,e.length,`)`]},void 0,!0,{fileName:Z,lineNumber:314,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1.5`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.ref??`chain-${t+1}`},void 0,!1,{fileName:Z,lineNumber:318,columnNumber:13},this),(0,I.jsxDEV)(`span`,{className:`block`,children:[`Items: `,e.itemIds.join(`, `)||`none`,` · Blocked by: `,e.blockedBy.join(`, `)||`none`]},void 0,!0,{fileName:Z,lineNumber:319,columnNumber:13},this),e.rationale?(0,I.jsxDEV)(`span`,{className:`block`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:320,columnNumber:32},this):null]},`${e.ref??e.itemIds.join(`,`)}:${t}`,!0,{fileName:Z,lineNumber:317,columnNumber:11},this))},void 0,!1,{fileName:Z,lineNumber:315,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:313,columnNumber:5},this)}var Q=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-result-preview.tsx`;function UR({item:e,busy:t,onRedraft:n,onApply:r,applyError:i}){let a=e.entry.taskId,o=e.task?.result;return o?o.decision===`needs-input`&&o.clarificationQuestions&&o.clarificationQuestions.length>0?(0,I.jsxDEV)(GR,{taskId:a,busy:t,summary:o.summary,rationale:o.rationale,questions:o.clarificationQuestions,onRedraft:n},void 0,!1,{fileName:Q,lineNumber:31,columnNumber:7},this):e.entry.purpose===`backlog-curation`?o.backlogCurationDraft?(0,I.jsxDEV)(jR,{taskId:a,entry:e.entry,draft:o.backlogCurationDraft,recommendations:o.recommendations,curationPreview:e.backlogCurationPreview,busy:t,onApply:r,onRedraft:n},void 0,!1,{fileName:Q,lineNumber:43,columnNumber:45},this):(0,I.jsxDEV)(WR,{taskId:a,result:o,busy:t,onRedraft:n,canRedraft:!0},void 0,!1,{fileName:Q,lineNumber:44,columnNumber:12},this):o.backlogCurationDraft?(0,I.jsxDEV)(WR,{taskId:a,result:o,busy:t,onRedraft:n},void 0,!1,{fileName:Q,lineNumber:47,columnNumber:43},this):(0,I.jsxDEV)(KR,{taskId:a,result:o,sessionHint:e.entry.session,busy:t,onApply:r,applyError:i},void 0,!1,{fileName:Q,lineNumber:49,columnNumber:10},this):null}function WR({taskId:e,result:t,busy:n,onRedraft:r,canRedraft:i=!1}){let[a,o]=w.useState(``),s=a.trim();return(0,I.jsxDEV)(gA,{className:`mt-3 pt-3 text-sm`,children:[(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:t.summary},void 0,!1,{fileName:Q,lineNumber:66,columnNumber:7},this),t.nextSteps&&t.nextSteps.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:t.nextSteps.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Q,lineNumber:68,columnNumber:102},this))},void 0,!1,{fileName:Q,lineNumber:68,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Backlog curation draft unavailable`},void 0,!1,{fileName:Q,lineNumber:70,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`This result cannot be applied as backlog curation because it did not include an applicable curation draft.`},void 0,!1,{fileName:Q,lineNumber:71,columnNumber:7},this),i&&(0,I.jsxDEV)(gA,{children:[(0,I.jsxDEV)(YO,{className:`min-h-16`,value:a,onChange:e=>o(e.target.value),placeholder:`Optional steering for a curation redraft`},void 0,!1,{fileName:Q,lineNumber:74,columnNumber:11},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:n||s.length===0,onClick:()=>void r(e,{steering:s}),children:`Redraft curation`},void 0,!1,{fileName:Q,lineNumber:75,columnNumber:16},this)},void 0,!1,{fileName:Q,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:73,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:65,columnNumber:5},this)}function GR({taskId:e,busy:t,summary:n,rationale:r,questions:i,onRedraft:a}){let[o,s]=w.useState(()=>i.map(()=>``)),[c,l]=w.useState(``),u=o.map(e=>e.trim()),d=u.some(e=>e.length>0)||c.trim().length>0;return(0,I.jsxDEV)(gA,{className:`mt-3 pt-3`,children:[(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:n},void 0,!1,{fileName:Q,lineNumber:111,columnNumber:7},this),r&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:r},void 0,!1,{fileName:Q,lineNumber:112,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Needs input before drafting`},void 0,!1,{fileName:Q,lineNumber:113,columnNumber:7},this),(0,I.jsxDEV)(`ol`,{className:`grid gap-2`,children:i.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`grid gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[t+1,`. `,e.question]},void 0,!0,{fileName:Q,lineNumber:117,columnNumber:13},this),e.why&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:e.why},void 0,!1,{fileName:Q,lineNumber:118,columnNumber:30},this),e.options&&e.options.length>0&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:[`Options: `,e.options.join(`, `)]},void 0,!0,{fileName:Q,lineNumber:119,columnNumber:65},this),(0,I.jsxDEV)(YO,{className:`min-h-16`,value:o[t],onChange:e=>s(n=>n.map((n,r)=>r===t?e.target.value:n)),placeholder:`Your answer`},void 0,!1,{fileName:Q,lineNumber:120,columnNumber:13},this)]},e.question,!0,{fileName:Q,lineNumber:116,columnNumber:11},this))},void 0,!1,{fileName:Q,lineNumber:114,columnNumber:7},this),(0,I.jsxDEV)(YO,{className:`min-h-16`,value:c,onChange:e=>l(e.target.value),placeholder:`Optional steering for the redraft`},void 0,!1,{fileName:Q,lineNumber:129,columnNumber:7},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,disabled:t||!d,onClick:()=>{let t={},n=i.map((e,t)=>({question:e.question,answer:u[t]??``})).filter(e=>e.answer.length>0).map(e=>`Q: ${e.question}\nA: ${e.answer}`);n.length>0&&(t.answers=n),c.trim().length>0&&(t.steering=c.trim()),a(e,t)},children:`Answer and redraft`},void 0,!1,{fileName:Q,lineNumber:131,columnNumber:9},this)},void 0,!1,{fileName:Q,lineNumber:130,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:110,columnNumber:5},this)}function KR({taskId:e,result:t,sessionHint:n,busy:r,onApply:i,applyError:a}){let[o,s]=w.useState(null),c=t.sessionPlanCreationDraft,l=t.recommendations,u=t.handoffDrafts??(t.handoffDraft?[t.handoffDraft]:[]),d=t.sessionPlanPatch?.sections??[],f=(n??c?.session??``).trim(),p=(t,n)=>{if(o!==t){s(t);return}s(null),i(e,n)},m=t.assumptionsOpenQuestions??[],h=!!t.summary||(t.nextSteps?.length??0)>0||(c?.sections.length??0)>0||d.length>0||m.length>0;return(0,I.jsxDEV)(gA,{className:`mt-3 pt-3 text-sm`,children:[a&&c&&(0,I.jsxDEV)(`div`,{className:`rounded-md border border-destructive/30 bg-destructive/10 p-2 text-xs text-destructive-foreground`,children:[a.automatic?`Automatic session-plan creation failed`:`Session-plan creation failed`,`: `,(0,I.jsxDEV)(`span`,{className:`break-words`,children:a.message},void 0,!1,{fileName:Q,lineNumber:175,columnNumber:111},this),`. Manual creation remains available below after review.`]},void 0,!0,{fileName:Q,lineNumber:174,columnNumber:9},this),c&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:[`Session-plan draft · `,c.planningType,`/`,c.planningDepth,` · `,c.sections.length,` section`,c.sections.length===1?``:`s`]},void 0,!0,{fileName:Q,lineNumber:181,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:o===`creation`?`destructive`:`default`,disabled:r,onClick:()=>p(`creation`,{applySessionPlanCreationDraft:{}}),children:o===`creation`?`Confirm create session plan`:`Create session plan`},void 0,!1,{fileName:Q,lineNumber:183,columnNumber:13},this),o===`creation`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:184,columnNumber:43},this)]},void 0,!0,{fileName:Q,lineNumber:182,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:180,columnNumber:9},this),l&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:`Generated recommendations are available.`},void 0,!1,{fileName:Q,lineNumber:191,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:o===`recommendations`?`destructive`:`secondary`,disabled:r,onClick:()=>p(`recommendations`,{applyRecommendations:!0}),children:o===`recommendations`?`Confirm apply recommendations`:`Apply recommendations`},void 0,!1,{fileName:Q,lineNumber:192,columnNumber:11},this),o===`recommendations`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:193,columnNumber:48},this)]},void 0,!0,{fileName:Q,lineNumber:190,columnNumber:9},this),u.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:[`Generated handoff draft`,u.length===1?``:`s`,` are available.`]},void 0,!0,{fileName:Q,lineNumber:199,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:o===`handoff`?`destructive`:`secondary`,disabled:r,onClick:()=>p(`handoff`,{applyHandoffDrafts:u.map((e,t)=>({index:t}))}),children:o===`handoff`?`Confirm apply handoff drafts`:`Apply handoff drafts`},void 0,!1,{fileName:Q,lineNumber:200,columnNumber:11},this),o===`handoff`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:201,columnNumber:40},this)]},void 0,!0,{fileName:Q,lineNumber:198,columnNumber:9},this),d.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:[`Session-plan patch`,f?` · ${f}`:``,` · `,d.length,` section`,d.length===1?``:`s`]},void 0,!0,{fileName:Q,lineNumber:207,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:o===`patch`?`destructive`:`default`,disabled:r||f.length===0,onClick:()=>p(`patch`,{applySessionPlanDrafts:[{session:f,sections:d.map(e=>e.dimension)}]}),children:o===`patch`?`Confirm apply session-plan content`:`Apply session-plan content`},void 0,!1,{fileName:Q,lineNumber:209,columnNumber:13},this),o===`patch`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:210,columnNumber:40},this)]},void 0,!0,{fileName:Q,lineNumber:208,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:206,columnNumber:9},this),d.length>0&&f.length===0&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:`No target session is associated with this task; patch apply is unavailable.`},void 0,!1,{fileName:Q,lineNumber:214,columnNumber:68},this),h&&(0,I.jsxDEV)(`details`,{className:`mt-0.5`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer list-none text-xs text-muted-foreground hover:text-foreground [&::-webkit-details-marker]:hidden`,children:`Review draft details`},void 0,!1,{fileName:Q,lineNumber:218,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[t.summary&&(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:t.summary},void 0,!1,{fileName:Q,lineNumber:220,columnNumber:32},this),t.nextSteps&&t.nextSteps.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:t.nextSteps.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Q,lineNumber:222,columnNumber:108},this))},void 0,!1,{fileName:Q,lineNumber:222,columnNumber:15},this),c&&c.sections.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:c.sections.map(e=>(0,I.jsxDEV)(qR,{title:e.dimension,body:e.content},e.dimension,!1,{fileName:Q,lineNumber:225,columnNumber:84},this))},void 0,!1,{fileName:Q,lineNumber:225,columnNumber:15},this),d.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:d.map(e=>(0,I.jsxDEV)(qR,{title:e.dimension,body:e.content},e.dimension,!1,{fileName:Q,lineNumber:228,columnNumber:75},this))},void 0,!1,{fileName:Q,lineNumber:228,columnNumber:15},this),m.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:m.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Q,lineNumber:231,columnNumber:104},this))},void 0,!1,{fileName:Q,lineNumber:231,columnNumber:15},this),c&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Creating the plan opens it in the Plans tab, where you can keep iterating.`},void 0,!1,{fileName:Q,lineNumber:233,columnNumber:31},this)]},void 0,!0,{fileName:Q,lineNumber:219,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:217,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:169,columnNumber:5},this)}function qR({title:e,body:t}){let n=t.split(`
380
- `).length;return(0,I.jsxDEV)(`details`,{className:`border-l-2 border-border pl-2 open:border-primary/50`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-semibold uppercase tracking-wide text-muted-foreground hover:text-foreground`,children:[e,` `,(0,I.jsxDEV)(`span`,{className:`ml-1 font-normal normal-case tracking-normal text-muted-foreground/70`,children:[n,` line`,n===1?``:`s`]},void 0,!0,{fileName:Q,lineNumber:249,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:248,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1`,children:(0,I.jsxDEV)(zO,{markdown:t},void 0,!1,{fileName:Q,lineNumber:252,columnNumber:9},this)},void 0,!1,{fileName:Q,lineNumber:251,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:247,columnNumber:5},this)}var $=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-card.tsx`;function JR({item:e,busy:t,titles:n,onCancel:r,onRemove:i,onRetry:a,onRedraft:o,onApply:s,applyError:c,detailLoading:l=!1,detailError:u}){let{entry:d,task:f}=e,p=f?.status??e.status??`queued`,m=p===`queued`||p===`running`,h=YR(e,n),g=d.selection.recommendationRef??d.selection.sourceRecommendationRef,_=(p===`failed`||p===`cancelled`)&&e.available,v=!m;return(0,I.jsxDEV)(`article`,{className:`rounded-md border border-border bg-background/60 p-3 text-sm`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(nk,{tone:QO(p),className:`shrink-0 text-xs`,children:p},void 0,!1,{fileName:$,lineNumber:45,columnNumber:13},this),(0,I.jsxDEV)(`p`,{className:`line-clamp-2 min-w-0 flex-1 break-words font-medium leading-snug text-foreground`,title:h.full,children:h.title},void 0,!1,{fileName:$,lineNumber:46,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:44,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-2xs text-muted-foreground`,children:[d.purpose===`recommendation-refresh`&&(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 text-text-bright`,children:`Recommendation refresh`},void 0,!1,{fileName:$,lineNumber:49,columnNumber:60},this),d.purpose===`backlog-curation`&&(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 text-text-bright`,children:`Backlog analysis`},void 0,!1,{fileName:$,lineNumber:50,columnNumber:54},this),(0,I.jsxDEV)(ZR,{taskId:d.taskId},void 0,!1,{fileName:$,lineNumber:51,columnNumber:13},this),g&&(0,I.jsxDEV)(`span`,{className:`max-w-full truncate`,title:g,children:g},void 0,!1,{fileName:$,lineNumber:52,columnNumber:26},this),d.parentTaskId&&(0,I.jsxDEV)(`span`,{title:d.parentTaskId,children:[`↳ `,IA(d.parentTaskId)]},void 0,!0,{fileName:$,lineNumber:53,columnNumber:36},this),d.createdAt&&(0,I.jsxDEV)(`span`,{title:d.createdAt,children:[`started `,FA(d.createdAt)]},void 0,!0,{fileName:$,lineNumber:54,columnNumber:33},this),d.appliedAt&&(0,I.jsxDEV)(`span`,{title:d.appliedAt,children:[`applied `,FA(d.appliedAt)]},void 0,!0,{fileName:$,lineNumber:55,columnNumber:33},this)]},void 0,!0,{fileName:$,lineNumber:48,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:43,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2`,children:[m&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t,onClick:()=>void r(d.taskId),children:[(0,I.jsxDEV)(fe,{className:`h-4 w-4`},void 0,!1,{fileName:$,lineNumber:60,columnNumber:109},this),` Cancel`]},void 0,!0,{fileName:$,lineNumber:60,columnNumber:13},this),v&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:t,onClick:()=>void i(d.taskId),children:[(0,I.jsxDEV)(Re,{className:`h-4 w-4`},void 0,!1,{fileName:$,lineNumber:63,columnNumber:107},this),` Dismiss`]},void 0,!0,{fileName:$,lineNumber:63,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:42,columnNumber:7},this),!e.available&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:e.staleReason??`Task record is no longer available from the daemon.`},void 0,!1,{fileName:$,lineNumber:68,columnNumber:27},this),m&&(0,I.jsxDEV)(QR,{task:f},void 0,!1,{fileName:$,lineNumber:70,columnNumber:19},this),(0,I.jsxDEV)(AL,{activityLog:f?.metadata?.activityLog},void 0,!1,{fileName:$,lineNumber:71,columnNumber:7},this),l&&(0,I.jsxDEV)(`p`,{className:`mt-2 flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Jn,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:$,lineNumber:74,columnNumber:83},this),` Loading full task result…`]},void 0,!0,{fileName:$,lineNumber:74,columnNumber:9},this),u&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-destructive-foreground`,children:[`Could not load full task result: `,u]},void 0,!0,{fileName:$,lineNumber:77,columnNumber:9},this),c&&(0,I.jsxDEV)(`div`,{className:`mt-2 rounded-md border border-destructive/30 bg-destructive/10 p-2 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`font-semibold text-destructive-foreground`,children:c.automatic?`Automatic session-plan creation failed.`:`Session-plan creation failed.`},void 0,!1,{fileName:$,lineNumber:82,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`mt-1 break-words text-destructive-foreground`,children:c.message},void 0,!1,{fileName:$,lineNumber:83,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:`Review the draft below, resolve any collision or validation issue, then use Create session plan to retry manually.`},void 0,!1,{fileName:$,lineNumber:84,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:81,columnNumber:9},this),p===`failed`&&(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:f?.errorMessage??f?.errorCode??`Task failed.`},void 0,!1,{fileName:$,lineNumber:90,columnNumber:11},this),_&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:t,onClick:()=>void a(d.taskId),children:`Retry with preserved context`},void 0,!1,{fileName:$,lineNumber:91,columnNumber:30},this)},void 0,!1,{fileName:$,lineNumber:91,columnNumber:25},this)]},void 0,!0,{fileName:$,lineNumber:89,columnNumber:9},this),p===`cancelled`&&(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:f?.errorMessage??`Task cancelled.`},void 0,!1,{fileName:$,lineNumber:97,columnNumber:11},this),_&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:t,onClick:()=>void a(d.taskId),children:`Retry with preserved context`},void 0,!1,{fileName:$,lineNumber:98,columnNumber:30},this)},void 0,!1,{fileName:$,lineNumber:98,columnNumber:25},this)]},void 0,!0,{fileName:$,lineNumber:96,columnNumber:9},this),p===`completed`&&f?.result&&(0,I.jsxDEV)(UR,{item:e,busy:t,onRedraft:o,onApply:s,applyError:c},void 0,!1,{fileName:$,lineNumber:103,columnNumber:9},this),p===`completed`&&!f?.result&&e.resultOmitted&&!l&&!u&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:`Open the task details to load the full generated result.`},void 0,!1,{fileName:$,lineNumber:106,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:41,columnNumber:5},this)}function YR(e,t){let{entry:n,task:r}=e,i=r?.result?.sessionPlanCreationDraft?.topic?.trim(),a=n.derivedRequest?.trim()??``;if(i&&!nT(i))return{title:i,full:i};if(a&&!nT(a))return{title:a,full:a};let o=`Plan ${XR(n,t)}`;return{title:o,full:a||o}}function XR(e,t){let n=e.selection.recommendationRef??e.selection.sourceRecommendationRef;return n?`lane ${n}`:tT(e.selection,t)||(e.selection.epicId?`epic ${e.selection.epicId}`:IA(e.taskId))}function ZR({taskId:e}){let t=$n(),n=async()=>{try{await navigator.clipboard.writeText(e),t.push(`Task id copied`,`success`)}catch{t.push(`Could not copy task id`,`error`)}};return(0,I.jsxDEV)(`button`,{type:`button`,title:`${e}\n\nClick to copy the full task id.`,onClick:()=>void n(),className:`font-mono text-xs text-muted-foreground hover:text-foreground`,children:IA(e)},void 0,!1,{fileName:$,lineNumber:149,columnNumber:5},this)}function QR({task:e}){let t=e?.metadata?.sectionProgress,n=e?.metadata?.backlogCurationProgress,r=e?.metadata?.progressMessage;return(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(Jn,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`},void 0,!1,{fileName:$,lineNumber:161,columnNumber:48},this),` `,(0,I.jsxDEV)(`span`,{className:`min-w-0 break-words text-foreground`,children:r??`Planning in progress…`},void 0,!1,{fileName:$,lineNumber:161,columnNumber:100},this)]},void 0,!0,{fileName:$,lineNumber:161,columnNumber:7},this),n&&(0,I.jsxDEV)($R,{progress:n},void 0,!1,{fileName:$,lineNumber:162,columnNumber:35},this),t&&(0,I.jsxDEV)(oz,{progress:t},void 0,!1,{fileName:$,lineNumber:163,columnNumber:20},this)]},void 0,!0,{fileName:$,lineNumber:160,columnNumber:5},this)}function $R({progress:e}){let t=Math.max(0,e.total),n=t===0?0:Math.min(100,Math.round(e.completed/t*100)),r=ez(e.items);return(0,I.jsxDEV)(`div`,{className:`rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-foreground`,children:`Backlog item agents`},void 0,!1,{fileName:$,lineNumber:182,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[e.completed,`/`,t,` analyzed`]},void 0,!0,{fileName:$,lineNumber:184,columnNumber:11},this),e.running>0&&(0,I.jsxDEV)(`span`,{className:`ml-2 text-[color:var(--lane-progress)]`,children:[e.running,` running`]},void 0,!0,{fileName:$,lineNumber:185,columnNumber:36},this),e.remaining>0&&(0,I.jsxDEV)(`span`,{className:`ml-2`,children:[e.remaining,` queued`]},void 0,!0,{fileName:$,lineNumber:186,columnNumber:38},this)]},void 0,!0,{fileName:$,lineNumber:183,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:181,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2 h-1.5 overflow-hidden rounded-full bg-muted`,children:(0,I.jsxDEV)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${n}%`}},void 0,!1,{fileName:$,lineNumber:190,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:189,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-3 grid gap-3`,children:r.map(e=>(0,I.jsxDEV)(nz,{group:e},e.key,!1,{fileName:$,lineNumber:193,columnNumber:32},this))},void 0,!1,{fileName:$,lineNumber:192,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:180,columnNumber:5},this)}function ez(e){let t={running:[],attention:[],pending:[],done:[]};for(let n of e)t[tz(n.status)].push(n);return[{key:`running`,label:`Running`,cap:1/0},{key:`attention`,label:`Needs attention`,cap:1/0},{key:`pending`,label:`Queued`,cap:10},{key:`done`,label:`Analyzed`,cap:10}].filter(e=>t[e.key].length>0).map(e=>({...e,items:t[e.key]}))}function tz(e){return e===`running`?`running`:e===`failed`||e===`cancelled`?`attention`:e===`pending`?`pending`:`done`}function nz({group:e}){let t=e.items.slice(0,e.cap),n=e.items.length-t.length;return(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`div`,{className:`mb-1.5 flex items-center gap-2 text-2xs uppercase tracking-wide text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:$,lineNumber:229,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`h-px flex-1 bg-border/60`},void 0,!1,{fileName:$,lineNumber:230,columnNumber:9},this),(0,I.jsxDEV)(`span`,{children:e.items.length},void 0,!1,{fileName:$,lineNumber:231,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:228,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:[t.map(e=>(0,I.jsxDEV)(rz,{item:e},e.itemId,!1,{fileName:$,lineNumber:234,columnNumber:30},this)),n>0&&(0,I.jsxDEV)(`p`,{className:`px-1 text-2xs text-muted-foreground`,children:[`+`,n,` more`]},void 0,!0,{fileName:$,lineNumber:235,columnNumber:24},this)]},void 0,!0,{fileName:$,lineNumber:233,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:227,columnNumber:5},this)}function rz({item:e}){let t=iz(e.status);return(0,I.jsxDEV)(`div`,{title:e.summary??e.itemId,className:`flex items-start gap-2 rounded border border-border/60 bg-background/60 px-2.5 py-1.5`,children:[e.status===`running`?(0,I.jsxDEV)(Jn,{className:xn(`mt-0.5 h-3.5 w-3.5 shrink-0`,t.className)},void 0,!1,{fileName:$,lineNumber:246,columnNumber:11},this):(0,I.jsxDEV)(t.icon,{className:xn(`mt-0.5 h-3.5 w-3.5 shrink-0`,t.className),"aria-hidden":`true`},void 0,!1,{fileName:$,lineNumber:247,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`min-w-0 line-clamp-2 leading-snug text-foreground`,children:e.title??e.itemId},void 0,!1,{fileName:$,lineNumber:250,columnNumber:11},this),e.verdict&&(0,I.jsxDEV)(nk,{tone:az(e.verdict),className:`shrink-0`,children:e.verdict},void 0,!1,{fileName:$,lineNumber:251,columnNumber:28},this)]},void 0,!0,{fileName:$,lineNumber:249,columnNumber:9},this),e.summary&&(0,I.jsxDEV)(`p`,{className:`mt-0.5 line-clamp-2 text-2xs text-muted-foreground`,children:e.summary},void 0,!1,{fileName:$,lineNumber:253,columnNumber:26},this)]},void 0,!0,{fileName:$,lineNumber:248,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:244,columnNumber:5},this)}function iz(e){switch(e){case`running`:return{icon:ce,className:`text-[color:var(--lane-progress)]`};case`completed`:case`cache-hit`:return{icon:se,className:`text-[color:var(--lane-done)]`};case`failed`:return{icon:ze,className:`text-[color:var(--lane-blocked)]`};case`cancelled`:return{icon:A,className:`text-muted-foreground`};default:return{icon:ce,className:`text-muted-foreground/60`}}}function az(e){let t=e.toLowerCase();return t.includes(`ship`)||t===`done`||t===`complete`?`done`:t.includes(`partial`)||t.includes(`progress`)?`warn`:t.includes(`need`)||t.includes(`keep`)?`info`:(t.includes(`archive`)||t.includes(`drop`)||t.includes(`remove`),`neutral`)}function oz({progress:e}){let t=e.coveredSections??[],n=e.remainingSections??[];return!e.currentSection&&t.length===0&&n.length===0?null:(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-foreground`,children:`Draft sections`},void 0,!1,{fileName:$,lineNumber:292,columnNumber:7},this),e.currentSection&&(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(Jn,{className:`h-3 w-3 shrink-0 text-[color:var(--lane-progress)]`},void 0,!1,{fileName:$,lineNumber:295,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:[`Current section: `,(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.currentSection},void 0,!1,{fileName:$,lineNumber:296,columnNumber:34},this)]},void 0,!0,{fileName:$,lineNumber:296,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:294,columnNumber:9},this),t.length>0&&(0,I.jsxDEV)(sz,{label:`Covered`,sections:t,tone:`done`},void 0,!1,{fileName:$,lineNumber:299,columnNumber:30},this),n.length>0&&(0,I.jsxDEV)(sz,{label:`Remaining`,sections:n,tone:`neutral`},void 0,!1,{fileName:$,lineNumber:300,columnNumber:32},this)]},void 0,!0,{fileName:$,lineNumber:291,columnNumber:5},this)}function sz({label:e,sections:t,tone:n}){return(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`mr-1 text-2xs uppercase tracking-wide text-muted-foreground`,children:e},void 0,!1,{fileName:$,lineNumber:308,columnNumber:7},this),t.map(e=>(0,I.jsxDEV)(nk,{tone:n,className:`font-mono normal-case`,children:e},e,!1,{fileName:$,lineNumber:309,columnNumber:34},this))]},void 0,!0,{fileName:$,lineNumber:307,columnNumber:5},this)}var cz=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-drawer.tsx`,lz=sw();function uz({item:e,busy:t,titles:n,onCancel:r,onRemove:i,onRetry:a,onRedraft:o,onApply:s,applyError:c,onClose:l}){let[u,d]=w.useState(e),[f,p]=w.useState(`idle`),[m,h]=w.useState();return w.useEffect(()=>{if(d(e),h(void 0),e.resultOmitted!==!0){p(`idle`);return}let t=!0;return p(`loading`),lz.invokeAction(`get-planning-agent-task`,{taskId:e.entry.taskId}).then(n=>{t&&(d({...e,available:!0,status:n.task.status,task:n.task,resultOmitted:!1}),p(`idle`))}).catch(e=>{t&&(h(e instanceof Error?e.message:String(e)),p(`error`))}),()=>{t=!1}},[e]),(0,I.jsxDEV)(fA,{ariaLabel:`Planning task details`,title:`Planning task`,headerAlign:`center`,closeLabel:`Close planning task`,onClose:l,children:[(0,I.jsxDEV)(JR,{item:u,busy:t,titles:n,onCancel:r,onRemove:async e=>{await i(e),l()},onRetry:a,onRedraft:o,onApply:s,applyError:c,detailLoading:f===`loading`,detailError:m},void 0,!1,{fileName:cz,lineNumber:59,columnNumber:7},this),(0,I.jsxDEV)(jL,{activityLog:u.task?.metadata?.activityLog},void 0,!1,{fileName:cz,lineNumber:72,columnNumber:7},this)]},void 0,!0,{fileName:cz,lineNumber:58,columnNumber:5},this)}var dz=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/activity-rail.tsx`,fz=4;function pz(e){return e.task?.status??e.status}function mz(e){let t=pz(e);return t===`queued`||t===`running`}function hz(e){return pz(e)===`completed`&&!!e.task?.result&&e.available}function gz(e,t){if(e.purpose===`recommendation-refresh`)return`Recommendation refresh`;if(e.purpose===`backlog-curation`)return`Backlog audit`;if(e.session)return`Plan ${e.session}`;let n=e.selection?.recommendationRef??e.selection?.sourceRecommendationRef;if(n)return`Plan lane ${n}`;let r=e.selection?tT(e.selection,t):null;return r?`Plan: ${r}`:e.selection?.epicId?`Plan epic ${e.selection.epicId}`:`Planning task`}function _z({workflows:e,titles:t}){let n=e.items.filter(mz),r=e.items.filter(t=>!mz(t)&&!!e.applyErrors[t.entry.taskId]),i=new Set([...n,...r].map(e=>e.entry.taskId)),a=e.items.filter(e=>!mz(e)&&!i.has(e.entry.taskId)).slice(0,fz),o=[...n,...r,...a],[s,c]=w.useState(null),l=s?e.items.find(e=>e.entry.taskId===s)??null:null;return w.useEffect(()=>{s&&!e.items.some(e=>e.entry.taskId===s)&&c(null)},[s,e.items]),(0,I.jsxDEV)(`div`,{className:`grid gap-3`,"aria-label":`Workstation activity`,children:[(0,I.jsxDEV)(qO,{icon:te,iconClassName:`text-primary`,title:`Planning activity`,action:n.length>0?(0,I.jsxDEV)(Tn,{variant:`outline`,className:`ml-auto`,children:[n.length,` running`]},void 0,!0,{fileName:dz,lineNumber:84,columnNumber:38},this):void 0,contentClassName:`grid gap-2`,children:e.loading&&o.length===0?(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading tasks…`},void 0,!1,{fileName:dz,lineNumber:88,columnNumber:13},this):o.length===0?(0,I.jsxDEV)(Ck,{className:`p-2 text-xs`,children:`No planning tasks yet.`},void 0,!1,{fileName:dz,lineNumber:90,columnNumber:15},this):o.map(n=>(0,I.jsxDEV)(vz,{item:n,busy:e.busy,titles:t,applyError:e.applyErrors[n.entry.taskId],onOpen:()=>c(n.entry.taskId),onCancel:()=>void e.cancel(n.entry.taskId)},n.entry.taskId,!1,{fileName:dz,lineNumber:92,columnNumber:15},this))},void 0,!1,{fileName:dz,lineNumber:80,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`px-1 text-2xs leading-relaxed text-muted-foreground`,children:`Builds run in the global queue (see the top bar). Open a plan to follow its build.`},void 0,!1,{fileName:dz,lineNumber:104,columnNumber:7},this),l&&(0,I.jsxDEV)(uz,{item:l,busy:e.busy,titles:t,onCancel:e.cancel,onRemove:e.remove,onRetry:e.retry,onRedraft:e.redraft,onApply:e.apply,applyError:e.applyErrors[l.entry.taskId],onClose:()=>c(null)},void 0,!1,{fileName:dz,lineNumber:109,columnNumber:9},this)]},void 0,!0,{fileName:dz,lineNumber:79,columnNumber:5},this)}function vz({item:e,busy:t,titles:n,applyError:r,onOpen:i,onCancel:a}){let o=pz(e),s=gz(e.entry,n),c=r?.message??e.task?.metadata?.progressMessage??e.staleReason,l=FA(e.task?.startedAt??e.entry.createdAt);return(0,I.jsxDEV)(`div`,{role:`button`,tabIndex:0,onClick:i,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:`cursor-pointer rounded-md border border-border bg-background/40 p-2 text-left transition-colors hover:border-primary`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-text-bright`,title:s,children:s},void 0,!1,{fileName:dz,lineNumber:140,columnNumber:9},this),r&&(0,I.jsxDEV)(nk,{tone:`destructive`,className:`shrink-0`,children:`Apply failed`},void 0,!1,{fileName:dz,lineNumber:141,columnNumber:24},this),hz(e)&&(0,I.jsxDEV)(nk,{tone:`accent`,className:`shrink-0`,children:`Review`},void 0,!1,{fileName:dz,lineNumber:142,columnNumber:32},this),o&&(0,I.jsxDEV)(nk,{tone:QO(o),className:`shrink-0 uppercase tracking-wide`,children:o},void 0,!1,{fileName:dz,lineNumber:143,columnNumber:20},this),(0,I.jsxDEV)(j,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`},void 0,!1,{fileName:dz,lineNumber:144,columnNumber:9},this)]},void 0,!0,{fileName:dz,lineNumber:139,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex items-center gap-2 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`code`,{title:e.entry.taskId,children:IA(e.entry.taskId)},void 0,!1,{fileName:dz,lineNumber:147,columnNumber:9},this),l&&(0,I.jsxDEV)(`span`,{children:[`· `,l]},void 0,!0,{fileName:dz,lineNumber:148,columnNumber:18},this),mz(e)&&(0,I.jsxDEV)(L,{variant:`ghost`,size:`sm`,className:`ml-auto h-6 px-2 text-2xs`,disabled:t,onClick:e=>{e.stopPropagation(),a()},children:[(0,I.jsxDEV)(Ve,{className:`h-3 w-3`},void 0,!1,{fileName:dz,lineNumber:151,columnNumber:13},this),` Cancel`]},void 0,!0,{fileName:dz,lineNumber:150,columnNumber:11},this)]},void 0,!0,{fileName:dz,lineNumber:146,columnNumber:7},this),c&&(0,I.jsxDEV)(`p`,{className:`mt-1 truncate text-2xs text-muted-foreground`,title:c,children:c},void 0,!1,{fileName:dz,lineNumber:155,columnNumber:19},this)]},void 0,!0,{fileName:dz,lineNumber:132,columnNumber:5},this)}var yz=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/analyze-backlog-control.tsx`;function bz({busy:e,analyzing:t,onAnalyze:n}){let[r,i]=w.useState(!1),a=e||t;return(0,I.jsxDEV)(`div`,{className:`relative flex items-center gap-1.5`,children:[(0,I.jsxDEV)(L,{size:`sm`,className:`h-7 flex-1 gap-1 px-2 text-2xs`,disabled:a,title:t?`Backlog analysis is already running - see Planning activity below`:`Analyze backlog and refresh recommendations`,onClick:()=>void n(),children:[a?(0,I.jsxDEV)(Jn,{className:`h-3 w-3`},void 0,!1,{fileName:yz,lineNumber:30,columnNumber:21},this):(0,I.jsxDEV)(re,{className:`h-3 w-3`},void 0,!1,{fileName:yz,lineNumber:30,columnNumber:55},this),` `,t?`Analyzing…`:`Analyze backlog`]},void 0,!0,{fileName:yz,lineNumber:23,columnNumber:7},this),(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":`About backlog analysis`,"aria-expanded":r,className:`grid h-7 w-7 place-items-center rounded border border-border text-muted-foreground hover:text-foreground`,onClick:()=>i(e=>!e),children:(0,I.jsxDEV)(be,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:yz,lineNumber:39,columnNumber:9},this)},void 0,!1,{fileName:yz,lineNumber:32,columnNumber:7},this),r&&(0,I.jsxDEV)(`div`,{className:`absolute right-0 top-8 z-20 w-72 rounded-md border border-border bg-card p-2 text-xs text-foreground shadow-lg`,children:`Checks open backlog items against current source, then prepares a reviewable curation draft and refreshed recommendations. Current source is the authority for shipped/superseded status; git, PR, lifecycle, and session history are navigation hints.`},void 0,!1,{fileName:yz,lineNumber:42,columnNumber:9},this)]},void 0,!0,{fileName:yz,lineNumber:22,columnNumber:5},this)}var xz=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/recommendations-rail.tsx`,Sz=5;function Cz(e){if(!e)return null;let t=e.reasons?.[0]??e.staleReasons?.[0];if(e.state===`stale`){let n=FA(e.staleSince);return{text:n?`Stale since ${n}`:`Stale - re-analyze before planning`,detail:t?.summary??t?.message}}if(e.state===`fresh`){let t=FA(e.freshAt);return{text:t?`Fresh as of ${t}`:`Fresh with the current backlog`}}return null}function wz({recommendations:e,actionability:t,status:n,freshness:r,selection:i,busy:a,analyzing:o,onAnalyze:s,onForkLane:c}){let[l,u]=w.useState(null),d=e=>{u(e),c(e).finally(()=>u(null))},f=(e?.recommendedNextSequence??[]).slice(0,Sz),p=e?.safeParallelizableGroups??[],m=e?.blockedChains??[],h=e?.rationaleAndAssumptions??[],g=e=>i.titles.get(e)??e,_=Cz(n),v=w.useMemo(()=>Tz(t),[t]);return(0,I.jsxDEV)(qO,{icon:xe,iconClassName:`text-[color:var(--lane-ready)]`,title:`Recommendations`,action:(0,I.jsxDEV)(pR,{freshness:r,status:n},void 0,!1,{fileName:xz,lineNumber:74,columnNumber:15},this),contentClassName:`grid gap-3`,children:[(0,I.jsxDEV)(bz,{busy:a,analyzing:o,onAnalyze:s},void 0,!1,{fileName:xz,lineNumber:77,columnNumber:9},this),_&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,title:_.detail,children:_.text},void 0,!1,{fileName:xz,lineNumber:78,columnNumber:27},this),f.length===0&&p.length===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`No planning guidance yet. Analyze the backlog to generate recommendations.`},void 0,!1,{fileName:xz,lineNumber:80,columnNumber:11},this),f.length>0&&(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`span`,{className:`mb-1 block text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Next up`},void 0,!1,{fileName:xz,lineNumber:85,columnNumber:13},this),(0,I.jsxDEV)(`ol`,{className:`grid gap-1`,children:f.map((e,t)=>{let n=v?Ez(v,e):void 0;return(0,I.jsxDEV)(`li`,{children:v!==null&&n?.state!==`actionable`?(0,I.jsxDEV)(kz,{ordinal:t+1,label:g(e.itemId),actionability:n??Dz(e.itemId)},void 0,!1,{fileName:xz,lineNumber:93,columnNumber:23},this):(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>i.pickItem(e.itemId),title:`Toggle this item in the backlog selection`,className:`flex w-full items-center gap-2 rounded border px-1.5 py-1 text-left transition-colors hover:border-primary ${i.selected.has(e.itemId)?`border-primary bg-primary/10`:`border-border`}`,children:[(0,I.jsxDEV)(`span`,{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-[color:var(--lane-ready)]/20 text-2xs font-bold text-[color:var(--lane-ready)]`,children:t+1},void 0,!1,{fileName:xz,lineNumber:101,columnNumber:25},this),(0,I.jsxDEV)(`span`,{className:`line-clamp-2 min-w-0 break-words text-2xs leading-snug text-foreground`,children:g(e.itemId)},void 0,!1,{fileName:xz,lineNumber:102,columnNumber:25},this)]},void 0,!0,{fileName:xz,lineNumber:95,columnNumber:23},this)},e.ref??`seq-${t}-${e.itemId}`,!1,{fileName:xz,lineNumber:91,columnNumber:19},this)})},void 0,!1,{fileName:xz,lineNumber:86,columnNumber:13},this)]},void 0,!0,{fileName:xz,lineNumber:84,columnNumber:11},this),p.length>0&&(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`span`,{className:`mb-1 block text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Lanes · safe in parallel`},void 0,!1,{fileName:xz,lineNumber:114,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:p.map(e=>{let t=e.title??e.ref,n=v?.groupsByRef.get(e.ref),r=n?n.actionableItemIds:v?[]:e.itemIds.filter(e=>i.planEligibleIds.has(e)),o=v!==null&&(n===void 0||n.state===`non-actionable`||r.length===0),s=n?.state===`partially-actionable`;return(0,I.jsxDEV)(`div`,{className:`rounded-md border border-border p-2`,children:[(0,I.jsxDEV)(`span`,{className:`block min-w-0 truncate text-2xs font-semibold text-text-bright`,title:t,children:t},void 0,!1,{fileName:xz,lineNumber:124,columnNumber:21},this),n?.items.some(e=>e.state===`non-actionable`)&&(0,I.jsxDEV)(Oz,{group:n,label:g},void 0,!1,{fileName:xz,lineNumber:126,columnNumber:23},this),o?(0,I.jsxDEV)(`p`,{className:`mt-1.5 rounded border border-border bg-muted/20 px-1.5 py-1 text-2xs text-muted-foreground`,children:`No actionable items remain in this lane.`},void 0,!1,{fileName:xz,lineNumber:129,columnNumber:23},this):(0,I.jsxDEV)(`div`,{className:`mt-1.5 flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`xs`,disabled:a||r.length===0,title:r.length===0?`No items in this lane are eligible for a new plan.`:`Start an AI planning task for this lane’s actionable items.`,onClick:()=>void i.planLane(r,e.ref),children:[`Plan`,r.length<e.itemIds.length?` (${r.length})`:``]},void 0,!0,{fileName:xz,lineNumber:132,columnNumber:25},this),(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>i.pickItems(r),className:`text-2xs text-muted-foreground hover:text-foreground`,title:s?`Toggle the actionable items in this lane in the backlog selection`:`Toggle every item in this lane in the backlog selection`,children:s?`Select actionable`:`Select`},void 0,!1,{fileName:xz,lineNumber:140,columnNumber:25},this),n?.state!==`partially-actionable`&&(0,I.jsxDEV)(`button`,{type:`button`,disabled:l!==null,onClick:()=>d(e.ref),className:`ml-auto inline-flex items-center gap-0.5 text-2xs text-muted-foreground hover:text-foreground disabled:opacity-50`,title:`Fork this lane into an editable draft plan unit`,children:[(0,I.jsxDEV)(M,{className:`h-3 w-3`},void 0,!1,{fileName:xz,lineNumber:156,columnNumber:29},this),` `,l===e.ref?`Forking…`:`Fork to draft`]},void 0,!0,{fileName:xz,lineNumber:149,columnNumber:27},this)]},void 0,!0,{fileName:xz,lineNumber:131,columnNumber:23},this)]},e.ref,!0,{fileName:xz,lineNumber:123,columnNumber:19},this)})},void 0,!1,{fileName:xz,lineNumber:115,columnNumber:13},this)]},void 0,!0,{fileName:xz,lineNumber:113,columnNumber:11},this),(m.length>0||h.length>0)&&(0,I.jsxDEV)(`details`,{className:`border-t border-border pt-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-2xs text-muted-foreground`,children:`Blocked chains & rationale`},void 0,!1,{fileName:xz,lineNumber:170,columnNumber:13},this),m.length>0&&(0,I.jsxDEV)(`ul`,{className:`mt-1.5 grid gap-1.5`,children:m.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`text-2xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[e.itemIds.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-[color:var(--lane-blocked)]/30 bg-[color:var(--lane-blocked)]/10 px-1 text-[color:var(--lane-blocked)]`,children:g(e)},e,!1,{fileName:xz,lineNumber:176,columnNumber:50},this)),(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:`blocked by`},void 0,!1,{fileName:xz,lineNumber:177,columnNumber:23},this),e.blockedBy.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-[color:var(--prio-medium)]/30 bg-[color:var(--prio-medium)]/10 px-1 text-[color:var(--prio-medium)]`,children:g(e)},e,!1,{fileName:xz,lineNumber:178,columnNumber:52},this))]},void 0,!0,{fileName:xz,lineNumber:175,columnNumber:21},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:xz,lineNumber:180,columnNumber:41},this)]},e.ref??t,!0,{fileName:xz,lineNumber:174,columnNumber:19},this))},void 0,!1,{fileName:xz,lineNumber:172,columnNumber:15},this),h.length>0&&(0,I.jsxDEV)(`ul`,{className:`mt-1.5 list-disc pl-4 text-2xs text-muted-foreground`,children:h.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:xz,lineNumber:187,columnNumber:43},this))},void 0,!1,{fileName:xz,lineNumber:186,columnNumber:15},this)]},void 0,!0,{fileName:xz,lineNumber:169,columnNumber:11},this)]},void 0,!0,{fileName:xz,lineNumber:70,columnNumber:5},this)}function Tz(e){if(e===null)return null;let t=[...e.activeWork,...e.readyCandidates,...e.recommendedNextSequence];return{entriesByRef:new Map(t.flatMap(e=>e.ref?[[e.ref,e.actionability]]:[])),entriesByItemId:new Map(t.map(e=>[e.itemId,e.actionability])),groupsByRef:new Map(e.safeParallelizableGroups.map(e=>[e.ref,e]))}}function Ez(e,t){return(t.ref?e.entriesByRef.get(t.ref):void 0)??e.entriesByItemId.get(t.itemId)}function Dz(e){return{itemId:e,state:`non-actionable`,lifecycleState:`none`,reasonMessage:`This recommendation is not currently available for planning.`,associatedLinks:[]}}function Oz({group:e,label:t}){let n=e.items.filter(e=>e.state===`non-actionable`);return n.length===0?null:(0,I.jsxDEV)(`div`,{className:`mt-1.5 grid gap-1`,children:n.map(e=>(0,I.jsxDEV)(kz,{label:t(e.itemId),actionability:e},e.itemId,!1,{fileName:xz,lineNumber:226,columnNumber:9},this))},void 0,!1,{fileName:xz,lineNumber:224,columnNumber:5},this)}function kz({ordinal:e,label:t,actionability:n}){return(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-muted/20 px-1.5 py-1 text-left`,children:(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[e!==void 0&&(0,I.jsxDEV)(`span`,{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-muted text-2xs font-bold text-muted-foreground`,children:e},void 0,!1,{fileName:xz,lineNumber:236,columnNumber:35},this),(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxDEV)(`p`,{className:`line-clamp-2 break-words text-2xs leading-snug text-foreground`,children:t},void 0,!1,{fileName:xz,lineNumber:238,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-2xs text-muted-foreground`,children:n.reasonMessage??`This recommendation is not currently actionable.`},void 0,!1,{fileName:xz,lineNumber:239,columnNumber:11},this),(0,I.jsxDEV)(Az,{links:n.associatedLinks},void 0,!1,{fileName:xz,lineNumber:240,columnNumber:11},this)]},void 0,!0,{fileName:xz,lineNumber:237,columnNumber:9},this)]},void 0,!0,{fileName:xz,lineNumber:235,columnNumber:7},this)},void 0,!1,{fileName:xz,lineNumber:234,columnNumber:5},this)}function Az({links:e}){return e.length===0?null:(0,I.jsxDEV)(`ul`,{className:`mt-1 flex flex-wrap gap-1`,"aria-label":`Suppression evidence links`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{children:e.prUrl?(0,I.jsxDEV)(`a`,{className:`rounded border border-border px-1 text-2xs text-[color:var(--lane-ready)] underline`,href:e.prUrl,target:`_blank`,rel:`noreferrer`,title:Mz(e),children:jz(e)},void 0,!1,{fileName:xz,lineNumber:254,columnNumber:13},this):(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1 text-2xs text-muted-foreground`,title:Mz(e),children:jz(e)},void 0,!1,{fileName:xz,lineNumber:256,columnNumber:13},this)},`${e.kind}-${e.label}-${t}`,!1,{fileName:xz,lineNumber:252,columnNumber:9},this))},void 0,!1,{fileName:xz,lineNumber:250,columnNumber:5},this)}function jz(e){return e.label||e.session||e.taskId||e.prdId||e.runId||e.sessionId||e.prUrl||e.kind}function Mz(e){return[e.label||e.kind,e.status?`status: ${e.status}`:void 0,e.session?`session: ${e.session}`:void 0,e.taskId?`task: ${e.taskId}`:void 0,e.prdId?`prd: ${e.prdId}`:void 0,e.runId?`run: ${e.runId}`:void 0,e.sessionId?`build session: ${e.sessionId}`:void 0,e.featureBranch?`branch: ${e.featureBranch}`:void 0,e.commitSha?`commit: ${e.commitSha}`:void 0,e.path?`path: ${e.path}`:void 0].filter(e=>!!e).join(`
381
- `)}var Nz=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/selection-rail.tsx`,Pz=8;function Fz({selection:e,busy:t}){let n=e.selectedIds;if(n.length===0)return null;let r=e.selectedPlanEligibleIds.length,i=n.slice(0,Pz),a=n.length-i.length;return(0,I.jsxDEV)(qO,{className:`border-primary/50`,icon:Se,iconClassName:`text-primary`,title:`Build plan`,action:(0,I.jsxDEV)(`span`,{className:`ml-auto text-2xs font-normal text-muted-foreground`,children:[n.length,` selected`,r===n.length?``:` · ${r} eligible`]},void 0,!0,{fileName:Nz,lineNumber:29,columnNumber:9},this),contentClassName:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:[i.map(t=>(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>e.toggle(t),title:`Remove from selection`,className:`inline-flex items-center gap-1 rounded border border-border bg-background/40 px-1.5 py-0.5 text-2xs text-foreground transition-colors hover:border-primary`,children:[(0,I.jsxDEV)(`span`,{className:`max-w-40 truncate`,children:e.titles.get(t)??t},void 0,!1,{fileName:Nz,lineNumber:44,columnNumber:15},this),(0,I.jsxDEV)(Ve,{className:`h-3 w-3 text-muted-foreground`},void 0,!1,{fileName:Nz,lineNumber:45,columnNumber:15},this)]},t,!0,{fileName:Nz,lineNumber:37,columnNumber:13},this)),a>0&&(0,I.jsxDEV)(`span`,{className:`px-1 text-2xs text-muted-foreground`,children:[`+`,a,` more`]},void 0,!0,{fileName:Nz,lineNumber:48,columnNumber:26},this)]},void 0,!0,{fileName:Nz,lineNumber:35,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,className:`flex-1`,disabled:t||r===0,onClick:()=>void e.promote(),children:`Promote to a build plan`},void 0,!1,{fileName:Nz,lineNumber:51,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:e.clear,children:`Clear`},void 0,!1,{fileName:Nz,lineNumber:54,columnNumber:11},this)]},void 0,!0,{fileName:Nz,lineNumber:50,columnNumber:9},this),r===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`None of the selected items are eligible for a new plan.`},void 0,!1,{fileName:Nz,lineNumber:56,columnNumber:33},this)]},void 0,!0,{fileName:Nz,lineNumber:23,columnNumber:5},this)}function Iz(e){if(e.type===`backlog_item`)return{kind:`item`,itemId:e.id};if(e.type===`session_plan`){let t=e.refs?.session??e.id.replace(/^plan:/,``);return{kind:`plan`,planKey:t.startsWith(`plan:`)?t:`plan:${t}`}}return{kind:`display`}}var Lz=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/search/planning-search-panel.tsx`,Rz=[`backlog_item`,`epic`,`session_plan`,`recommendation`],zz=20;function Bz({openItem:e,openPlan:t}){let[n,r]=w.useState(``),[i,a]=w.useState(Rz),[o,s]=w.useState(null),[c,l]=w.useState(!1),[u,d]=w.useState(null),f=w.useCallback(async(e=0)=>{let t=n.trim();if(t){if(i.length===0){d(`Select at least one result type.`),s(null);return}l(!0),d(null);try{let n=await sw().invokeAction(`search-planning-records`,{query:t,limit:zz,offset:e,fields:[`rank`,`snippet`,`refs`,`updatedAt`],types:i});s(n)}catch(e){d(e instanceof Error?e.message:String(e))}finally{l(!1)}}},[n,i]);return(0,I.jsxDEV)(qO,{icon:Fe,title:`Planning search`,contentClassName:`grid gap-2`,children:[(0,I.jsxDEV)(`form`,{className:`grid gap-2`,onSubmit:e=>{e.preventDefault(),f(0)},children:[(0,I.jsxDEV)(`input`,{"aria-label":`Search planning records`,value:n,onChange:e=>r(e.target.value),placeholder:`Search items, epics, plans…`,className:`h-8 rounded border border-input bg-background px-2 text-xs`},void 0,!1,{fileName:Lz,lineNumber:44,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:Rz.map(e=>(0,I.jsxDEV)(`label`,{className:`inline-flex items-center gap-1 rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`input`,{type:`checkbox`,checked:i.includes(e),onChange:()=>a(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},void 0,!1,{fileName:Lz,lineNumber:48,columnNumber:15},this),e.replace(`_`,` `)]},e,!0,{fileName:Lz,lineNumber:47,columnNumber:13},this))},void 0,!1,{fileName:Lz,lineNumber:45,columnNumber:9},this),i.length===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-destructive`,children:`Select at least one result type.`},void 0,!1,{fileName:Lz,lineNumber:53,columnNumber:40},this),(0,I.jsxDEV)(L,{size:`sm`,type:`submit`,disabled:c||n.trim().length===0||i.length===0,children:c?`Searching…`:`Search`},void 0,!1,{fileName:Lz,lineNumber:54,columnNumber:9},this)]},void 0,!0,{fileName:Lz,lineNumber:43,columnNumber:7},this),u&&(0,I.jsxDEV)(Kn,{children:u},void 0,!1,{fileName:Lz,lineNumber:56,columnNumber:17},this),o?.indexDirty&&(0,I.jsxDEV)(`p`,{className:`rounded border border-[color:var(--prio-medium)]/40 bg-[color:var(--prio-medium)]/10 p-1.5 text-2xs text-[color:var(--prio-medium)]`,children:[`Search index dirty: `,o.indexStatus.dirtyCount,` documents need rebuild.`]},void 0,!0,{fileName:Lz,lineNumber:57,columnNumber:28},this),o&&(0,I.jsxDEV)(Vz,{counts:o.countsByType},void 0,!1,{fileName:Lz,lineNumber:58,columnNumber:16},this),(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:o?.results.map(n=>(0,I.jsxDEV)(Hz,{result:n,openItem:e,openPlan:t},`${n.type}:${n.id}`,!1,{fileName:Lz,lineNumber:60,columnNumber:40},this))},void 0,!1,{fileName:Lz,lineNumber:59,columnNumber:7},this),o&&(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[o.page.returned,` of `,o.total,` results · offset `,o.page.offset]},void 0,!0,{fileName:Lz,lineNumber:64,columnNumber:11},this),o.page.hasMore&&(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,onClick:()=>void f(o.page.nextOffset??o.page.offset+o.page.returned),children:`Next`},void 0,!1,{fileName:Lz,lineNumber:65,columnNumber:33},this)]},void 0,!0,{fileName:Lz,lineNumber:63,columnNumber:9},this)]},void 0,!0,{fileName:Lz,lineNumber:42,columnNumber:5},this)}function Vz({counts:e}){return(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1 text-2xs text-muted-foreground`,children:Rz.map(t=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1`,children:[t.replace(`_`,` `),`: `,e[t]??0]},t,!0,{fileName:Lz,lineNumber:73,columnNumber:100},this))},void 0,!1,{fileName:Lz,lineNumber:73,columnNumber:10},this)}function Hz({result:e,openItem:t,openPlan:n}){let r=Iz(e),i=(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`span`,{className:`block text-2xs uppercase tracking-wide text-muted-foreground`,children:e.type.replace(`_`,` `)},void 0,!1,{fileName:Lz,lineNumber:78,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`block text-xs font-medium text-text-bright`,children:e.title},void 0,!1,{fileName:Lz,lineNumber:78,columnNumber:138},this),e.snippet&&(0,I.jsxDEV)(Uz,{text:e.snippet.text},void 0,!1,{fileName:Lz,lineNumber:78,columnNumber:239},this)]},void 0,!0,{fileName:Lz,lineNumber:78,columnNumber:19},this);return r.kind===`item`?(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>t(r.itemId),className:`rounded border border-border p-2 text-left hover:border-primary`,children:i},void 0,!1,{fileName:Lz,lineNumber:79,columnNumber:38},this):r.kind===`plan`?(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>n(r.planKey),className:`rounded border border-border p-2 text-left hover:border-primary`,children:i},void 0,!1,{fileName:Lz,lineNumber:80,columnNumber:38},this):(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-muted/20 p-2`,children:i},void 0,!1,{fileName:Lz,lineNumber:81,columnNumber:10},this)}function Uz({text:e}){let t=e.split(/(<mark>|<\/mark>)/g),n=!1;return(0,I.jsxDEV)(`p`,{className:`mt-1 text-2xs text-muted-foreground`,children:t.map((e,t)=>e===`<mark>`?(n=!0,null):e===`</mark>`?(n=!1,null):n?(0,I.jsxDEV)(`mark`,{className:`rounded bg-primary/20 px-0.5 text-foreground`,children:e},t,!1,{fileName:Lz,lineNumber:87,columnNumber:219},this):(0,I.jsxDEV)(w.Fragment,{children:e},t,!1,{fileName:Lz,lineNumber:87,columnNumber:310},this))},void 0,!1,{fileName:Lz,lineNumber:87,columnNumber:10},this)}var Wz=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/storage/store-status-card.tsx`;function Gz({status:e,error:t}){return(0,I.jsxDEV)(`span`,{className:`inline-flex items-center rounded-full border border-border px-2 py-0.5 text-xs text-muted-foreground`,children:[`SQLite store · `,Mk(e,t).label]},void 0,!0,{fileName:Wz,lineNumber:13,columnNumber:10},this)}function Kz({status:e,error:t,onRefresh:n}){let[r,i]=w.useState(null),[a,o]=w.useState(null),[s,c]=w.useState(null),[l,u]=w.useState(!1),d=async(e,t={})=>{i(e),c(null);try{let r=await sw().invokeAction(e,t);o(r),await n()}catch(e){c(e instanceof Error?e.message:String(e))}finally{i(null)}};return(0,I.jsxDEV)(qO,{icon:he,title:`SQLite store`,contentClassName:`grid gap-2`,children:[t&&(0,I.jsxDEV)(Kn,{children:t},void 0,!1,{fileName:Wz,lineNumber:34,columnNumber:17},this),s&&(0,I.jsxDEV)(Kn,{children:s},void 0,!1,{fileName:Wz,lineNumber:35,columnNumber:23},this),e?e.initialized?(0,I.jsxDEV)(Xz,{status:e},void 0,!1,{fileName:Wz,lineNumber:36,columnNumber:124},this):(0,I.jsxDEV)(qz,{status:e},void 0,!1,{fileName:Wz,lineNumber:36,columnNumber:164},this):(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Store status has not loaded yet.`},void 0,!1,{fileName:Wz,lineNumber:36,columnNumber:18},this),e?.initialized&&(0,I.jsxDEV)(`div`,{className:`grid gap-1.5 border-t border-border pt-2`,children:[(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,disabled:r!==null,onClick:()=>void d(`compact-planning-store`,{dryRun:!0,sampleLimit:5}),children:`Dry-run compaction`},void 0,!1,{fileName:Wz,lineNumber:39,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,disabled:r!==null,onClick:()=>void d(`rebuild-search-index`,{}),children:`Rebuild search index`},void 0,!1,{fileName:Wz,lineNumber:40,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,disabled:r!==null,onClick:()=>void d(`optimize-search-index`,{}),children:`Optimize search index`},void 0,!1,{fileName:Wz,lineNumber:41,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`xs`,variant:l?`destructive`:`outline`,disabled:r!==null,onClick:()=>{if(!l){u(!0);return}d(`vacuum-planning-store`,{}),u(!1)},children:l?`Confirm VACUUM`:`Vacuum store…`},void 0,!1,{fileName:Wz,lineNumber:42,columnNumber:11},this),r&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:[`Running `,r,`…`]},void 0,!0,{fileName:Wz,lineNumber:43,columnNumber:20},this)]},void 0,!0,{fileName:Wz,lineNumber:38,columnNumber:9},this),a&&(0,I.jsxDEV)(Jz,{report:a},void 0,!1,{fileName:Wz,lineNumber:46,columnNumber:18},this)]},void 0,!0,{fileName:Wz,lineNumber:33,columnNumber:5},this)}function qz({status:e}){return(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[`Store not initialized at `,(0,I.jsxDEV)(`code`,{children:e.storePath},void 0,!1,{fileName:Wz,lineNumber:54,columnNumber:35},this),`.`]},void 0,!0,{fileName:Wz,lineNumber:54,columnNumber:7},this),(0,I.jsxDEV)(`p`,{children:`The store is initialized automatically when eforge-plan writes canonical planning data. Use the backlog, recommendation, and planning actions to create records.`},void 0,!1,{fileName:Wz,lineNumber:55,columnNumber:7},this)]},void 0,!0,{fileName:Wz,lineNumber:53,columnNumber:5},this)}function Jz({report:e}){let t=[e.summary,e.status?`status: ${e.status}`:void 0,e.runId?`run: ${e.runId}`:void 0,e.category?`category: ${e.category}`:void 0,Yz(`pruned`,e.prunedCounts),Yz(`archived`,e.archivedCounts),e.searchRefresh?`search: refreshed ${e.searchRefresh.refreshed??0}, deleted ${e.searchRefresh.deleted??0}, cleared ${e.searchRefresh.clearedDirty??0}`:void 0,e.beforeBytes!==void 0&&e.afterBytes!==void 0?`db: ${Ak(e.beforeBytes)} → ${Ak(e.afterBytes)}`:void 0,e.walBytesBefore!==void 0&&e.walBytesAfter!==void 0?`wal: ${Ak(e.walBytesBefore)} → ${Ak(e.walBytesAfter)}`:void 0].filter(Boolean);return(0,I.jsxDEV)(`p`,{className:`rounded border border-border bg-muted/20 p-1.5 text-2xs text-muted-foreground`,children:t.length>0?t.join(` · `):`${e.actionId??`Maintenance`} complete.`},void 0,!1,{fileName:Wz,lineNumber:72,columnNumber:10},this)}function Yz(e,t){if(t)return`${e}: ${Object.values(t).reduce((e,t)=>e+t,0)}`}function Xz({status:e}){let t=e.searchIndexStatus,n=e.recentMaintenanceRuns[0],r=n?[n.summary,n.status,n.runId??n.actionId,n.finishedAt??n.completedAt??n.startedAt].filter(Boolean).join(` · `):void 0,i=Object.entries(e.retentionEligibilityCounts).filter(([,e])=>e>0),a=i.reduce((e,[,t])=>e+t,0),o=i.map(([e,t])=>`${e}: ${t}`).join(` · `);return(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Schema:`},void 0,!1,{fileName:Wz,lineNumber:90,columnNumber:10},this),` `,e.sqliteSchemaVersion??`unknown`,` · `,(0,I.jsxDEV)(`code`,{children:e.storePath},void 0,!1,{fileName:Wz,lineNumber:90,columnNumber:103},this)]},void 0,!0,{fileName:Wz,lineNumber:90,columnNumber:7},this),(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Files:`},void 0,!1,{fileName:Wz,lineNumber:91,columnNumber:10},this),` SQLite `,Ak(e.fileSizes.dbBytes),` · WAL `,Ak(e.fileSizes.walBytes),` · SHM `,Ak(e.fileSizes.shmBytes)]},void 0,!0,{fileName:Wz,lineNumber:91,columnNumber:7},this),t&&(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Search:`},void 0,!1,{fileName:Wz,lineNumber:92,columnNumber:21},this),` `,t.dirty?`index dirty (${t.dirtyCount} docs)`:`index current`,t.lastRebuiltAt?` · rebuilt ${t.lastRebuiltAt}`:``]},void 0,!0,{fileName:Wz,lineNumber:92,columnNumber:18},this),(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Retention:`},void 0,!1,{fileName:Wz,lineNumber:93,columnNumber:10},this),` `,jk(a,`eligible record`),o?` · ${o}`:``]},void 0,!0,{fileName:Wz,lineNumber:93,columnNumber:7},this),r&&(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Recent:`},void 0,!1,{fileName:Wz,lineNumber:94,columnNumber:28},this),` `,r]},void 0,!0,{fileName:Wz,lineNumber:94,columnNumber:25},this)]},void 0,!0,{fileName:Wz,lineNumber:89,columnNumber:5},this)}var Zz=sw(),Qz=1600,$z=`eforge-plan:auto-apply-attempted:`;function eB(e){return`${$z}${e}`}function tB(e){try{return window.localStorage.getItem(eB(e))!==null}catch{return!1}}function nB(e){try{window.localStorage.setItem(eB(e),new Date().toISOString())}catch{}}function rB(e){try{window.localStorage.removeItem(eB(e))}catch{}}function iB(e){return e instanceof Error?e.message:String(e)}function aB(e){return typeof e==`string`&&e.trim().length>0}function oB(e){let t=e.entry.requestedOutputSections;return t.length===0||t.length===1&&t[0]===`sessionPlanCreationDraft`}function sB(e){return!!(e.backlogCurationDraft||e.recommendations||e.handoffDraft||e.handoffDrafts&&e.handoffDrafts.length>0||e.sessionPlanPatch||e.planRevisionTurn||e.planDrafts)}function cB(e){let t=e.sessionPlanCreationDraft;return e.decision===`ready`&&!!t&&aB(t?.session)&&aB(t?.topic)&&aB(t?.planningType)&&aB(t?.planningDepth)&&!!t?.sections.length}function lB(e){let t=e.task?.status??e.status,n=e.task?.result;return!e.available||t!==`completed`||e.entry.appliedAt||e.entry.purpose||!n||!oB(e)||sB(n)?!1:cB(n)}function uB(e){return Object.prototype.hasOwnProperty.call(e,`applySessionPlanCreationDraft`)}function dB(e,t){if(!e[t])return e;let n={...e};return delete n[t],n}function fB(e){let t=e.task?.status??e.status;return t===`queued`||t===`running`}function pB(e){return e===`completed`||e===`failed`||e===`cancelled`}function mB(e,t){let n=$n(),[r,i]=w.useState([]),[a,o]=w.useState(!0),[s,c]=w.useState(!1),[l,u]=w.useState({}),d=w.useRef(new Set),f=w.useRef(new Set),p=w.useRef(new Set),m=w.useRef(new Set),h=w.useCallback(e=>{n.push(iB(e),`error`)},[n]),g=w.useCallback(async()=>{o(!0);try{let e=await Zz.invokeAction(`list-planning-agent-tasks`,{});i((e.tasks??[]).filter(e=>!m.current.has(e.entry.taskId)))}catch(e){h(e)}finally{o(!1)}},[h]);w.useEffect(()=>{g()},[g]);let _=w.useRef(r);_.current=r;let v=r.some(fB),y=w.useRef(new Map);w.useEffect(()=>{if(!v)return;let e=!1,t=window.setInterval(()=>{for(let t of _.current.filter(fB))Zz.invokeAction(`get-planning-agent-task`,{taskId:t.entry.taskId}).then(n=>{e||(y.current.delete(t.entry.taskId),i(e=>e.map(e=>e.entry.taskId===t.entry.taskId?{...e,task:n.task,status:n.task.status,available:!0}:e)),pB(n.task.status)&&g())}).catch(n=>{if(e)return;let r=iB(n);y.current.get(t.entry.taskId)!==r&&(y.current.set(t.entry.taskId,r),h(n))})},Qz);return()=>{e=!0,window.clearInterval(t)}},[v,g,h]);let b=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`start-planning-agent-task`,e);return n.push(`Started planning task ${t.task.taskId}.`,`success`),await g(),t.task}catch(e){return h(e),null}finally{c(!1)}},[g,h,n]),x=w.useCallback(async(e={})=>{c(!0);try{let t=e.itemAuditConcurrency===void 0?{}:{itemAuditConcurrency:e.itemAuditConcurrency},r=await Zz.invokeAction(`analyze-all-backlog`,t);return n.push(`${r.reused?`Reusing`:`Started`} backlog analysis task ${r.task.taskId}.`,`success`),await g(),r.task}catch(e){return h(e),null}finally{c(!1)}},[g,h,n]),S=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`retry-planning-agent-task`,{taskId:e});n.push(`Retrying as ${t.task.taskId}.`,`success`),rB(e),u(t=>dB(t,e)),await g()}catch(e){h(e)}finally{c(!1)}},[g,h,n]),C=w.useCallback(async(e,t)=>{c(!0);try{let r={taskId:e};t.answers&&t.answers.length>0&&(r.answers=t.answers),t.steering&&t.steering.trim().length>0&&(r.steering=t.steering.trim());let i=await Zz.invokeAction(`redraft-planning-agent-task`,r);n.push(`Redrafting as ${i.task.taskId}.`,`success`),rB(e),u(t=>dB(t,e)),await g()}catch(e){h(e)}finally{c(!1)}},[g,h,n]),T=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`cancel-planning-agent-task`,{taskId:e,reason:`user requested cancellation`});n.push(`Cancelled ${t.task.taskId}.`,`success`),i(n=>n.map(n=>n.entry.taskId===e?{...n,task:t.task,status:t.task.status}:n))}catch(e){h(e)}finally{c(!1)}},[h,n]),ee=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`remove-planning-agent-task`,{taskId:e});n.push(t.removed?`Removed ${t.taskId} from the planning task list.`:`${t.taskId} was not in the planning task list.`,`success`),i(t=>t.filter(t=>t.entry.taskId!==e)),u(t=>dB(t,e)),await g()}catch(e){h(e)}finally{c(!1)}},[g,h,n]),E=w.useCallback(async(r,a,o={})=>{o.automatic||c(!0);try{let s;try{s=await Zz.invokeAction(`apply-planning-agent-task-result`,{taskId:r,...a})}catch(e){let t=iB(e);return(o.automatic||uB(a))&&(o.automatic&&p.current.add(r),u(e=>({...e,[r]:{taskId:r,message:t,automatic:!!o.automatic,occurredAt:new Date().toISOString()}}))),o.automatic||h(e),null}o.suppressSuccessToast||n.push(`Applied generated output from ${s.taskId}.`,`success`),rB(r),u(e=>dB(e,r)),p.current.delete(r);let c=s.sessionPlanCreationDraft;c!==void 0&&(m.current.add(r),i(e=>e.filter(e=>e.entry.taskId!==r)));try{await e()}catch(e){h(e)}try{await g()}catch(e){h(e)}if(c!==void 0&&o.automatic)try{t?.(c)}catch(e){h(e)}return s}finally{o.automatic||c(!1)}},[t,e,g,h,n]);return w.useEffect(()=>{for(let e of r){let t=e.entry.taskId;lB(e)&&(m.current.has(t)||f.current.has(t)||d.current.has(t)||p.current.has(t)||tB(t)||(f.current.add(t),nB(t),d.current.add(t),E(t,{applySessionPlanCreationDraft:{}},{automatic:!0,suppressSuccessToast:!0}).finally(()=>{d.current.delete(t)})))}},[E,r]),{items:r,loading:a,busy:s,applyErrors:l,reload:g,start:b,analyzeAllBacklog:x,retry:S,redraft:C,cancel:T,remove:ee,apply:w.useCallback(async(e,t)=>uB(t)&&d.current.has(e)?null:E(e,t),[E])}}var hB=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/workstation-view.tsx`,gB=[{id:`roadmap`,label:`Roadmap`,icon:Ce},{id:`board`,label:`Backlog`,icon:ve},{id:`plans`,label:`Plans`,icon:me}];function _B({data:e}){let t=qx(),n=w.useCallback(e=>{t.setQuery(t=>{t.set(`focus`,`plans`),t.set(`plan`,cT(e.session))})},[t]),r=mB(e.refresh,n),i=eT(e.board,r),a=w.useMemo(()=>r.items.some(e=>{let t=e.task?.status??e.status;return(t===`queued`||t===`running`)&&e.entry.purpose===`backlog-curation`}),[r.items]),o=vB(t.query.get(`focus`)),s=w.useCallback(e=>{t.setQuery(t=>{e===`board`?t.delete(`focus`):t.set(`focus`,e)})},[t]),c=w.useCallback(async(e,t)=>{let i=await r.apply(e,t);return i?.sessionPlanCreationDraft&&n(i.sessionPlanCreationDraft),i},[r,n]),l=w.useMemo(()=>({...r,apply:c}),[r,c]),u=e.board.items??[],d=w.useCallback(e=>{t.setQuery(t=>{t.delete(`focus`),t.set(`item`,e)})},[t]),f=w.useCallback(e=>{t.setQuery(t=>{t.set(`focus`,`plans`),t.set(`plan`,e)})},[t]),p=w.useCallback(async n=>{let r=await e.forkRecommendationToDraftUnit(n);t.setQuery(e=>{e.set(`focus`,`plans`),e.set(`plan`,sT(r.unitId))})},[e,t]),m=w.useMemo(()=>mT(e.artifacts),[e.artifacts]),h=ok(e.roadmapState),g={roadmap:h.local+h.configuredShared+h.discovered,board:e.board.counts?.open??u.length,plans:e.artifacts.length};return(0,I.jsxDEV)(`div`,{className:`grid gap-4`,children:(0,I.jsxDEV)(`div`,{className:o===`plans`?`grid gap-4`:`grid gap-4 lg:grid-cols-[minmax(0,1fr)_22rem] lg:items-start`,children:[(0,I.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,I.jsxDEV)(`nav`,{className:`mb-4 flex flex-wrap gap-1 border-b pb-2`,children:gB.map(e=>{let t=e.icon,n=e.id===o;return(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>s(e.id),"aria-current":n?`page`:void 0,className:`inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-sm font-medium transition-colors ${n?`bg-accent text-text-bright`:`text-muted-foreground hover:bg-accent/60`}`,children:[(0,I.jsxDEV)(t,{className:`h-4 w-4`},void 0,!1,{fileName:hB,lineNumber:111,columnNumber:19},this),` `,(0,I.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:hB,lineNumber:111,columnNumber:48},this),(0,I.jsxDEV)(`span`,{className:`rounded-full border px-1.5 text-2xs ${n?`border-border text-muted-foreground`:`border-transparent text-muted-foreground/70`}`,children:g[e.id]},void 0,!1,{fileName:hB,lineNumber:112,columnNumber:19},this)]},e.id,!0,{fileName:hB,lineNumber:104,columnNumber:17},this)})},void 0,!1,{fileName:hB,lineNumber:99,columnNumber:11},this),o===`roadmap`?(0,I.jsxDEV)(hk,{state:e.roadmapState,recommendationStatus:e.recommendationStatus,recommendationFreshness:e.recommendationFreshness,activeRecommendationRefreshTask:e.activeRecommendationRefreshTask,onSaveLocalFocus:e.saveRoadmapState,onRefreshRecommendations:e.refreshRecommendations},void 0,!1,{fileName:hB,lineNumber:119,columnNumber:13},this):o===`plans`?(0,I.jsxDEV)(bL,{artifacts:e.artifacts,draftUnits:e.draftUnits,titles:i.titles,onRefresh:e.refresh,onUpdateDraftUnit:e.updateDraftUnit,onDeleteDraftUnit:e.deleteDraftUnit,onPromoteDraftUnit:t=>e.promoteDraftUnit(t),onMergeDraftUnits:e.mergeDraftUnits,onSplitDraftUnit:e.splitDraftUnit,onAdviseMergeDraftUnits:e.adviseMergeDraftUnits,onAdviseSplitDraftUnit:e.adviseSplitDraftUnit},void 0,!1,{fileName:hB,lineNumber:128,columnNumber:13},this):(0,I.jsxDEV)(AA,{board:e.board,selection:i,itemPlanIndex:m,onRefresh:e.refresh,onLoadMoreBoard:e.loadMoreBoard,onLoadClosedLane:e.loadClosedLane},void 0,!1,{fileName:hB,lineNumber:142,columnNumber:13},this)]},void 0,!0,{fileName:hB,lineNumber:98,columnNumber:9},this),o!==`plans`&&(0,I.jsxDEV)(`aside`,{className:`grid min-w-0 gap-3 lg:sticky lg:top-[5.5rem]`,children:o===`roadmap`?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(gk,{state:e.roadmapState,loading:e.loading,recommendationStatus:e.recommendationStatus,recommendationFreshness:e.recommendationFreshness,activeRecommendationRefreshTask:e.activeRecommendationRefreshTask,onReloadRoadmap:e.refresh},void 0,!1,{fileName:hB,lineNumber:157,columnNumber:17},this),(0,I.jsxDEV)(Kz,{status:e.storeStatus,error:e.storeStatusError,onRefresh:e.refreshStoreStatus},void 0,!1,{fileName:hB,lineNumber:165,columnNumber:17},this)]},void 0,!0,{fileName:hB,lineNumber:156,columnNumber:15},this):(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(Bz,{openItem:d,openPlan:f},void 0,!1,{fileName:hB,lineNumber:169,columnNumber:17},this),(0,I.jsxDEV)(Fz,{selection:i,busy:r.busy},void 0,!1,{fileName:hB,lineNumber:170,columnNumber:17},this),(0,I.jsxDEV)(wz,{recommendations:e.recommendations,actionability:e.recommendationActionability,status:e.recommendationStatus,freshness:e.recommendationFreshness,selection:i,busy:r.busy,analyzing:a,onAnalyze:r.analyzeAllBacklog,onForkLane:p},void 0,!1,{fileName:hB,lineNumber:171,columnNumber:17},this),(0,I.jsxDEV)(_z,{workflows:l,titles:i.titles},void 0,!1,{fileName:hB,lineNumber:182,columnNumber:17},this)]},void 0,!0,{fileName:hB,lineNumber:168,columnNumber:15},this)},void 0,!1,{fileName:hB,lineNumber:154,columnNumber:11},this)]},void 0,!0,{fileName:hB,lineNumber:97,columnNumber:7},this)},void 0,!1,{fileName:hB,lineNumber:96,columnNumber:5},this)}function vB(e){return e===`roadmap`||e===`plans`?e:`board`}var yB=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/App.tsx`;function bB(){return(0,I.jsxDEV)(Qn,{children:(0,I.jsxDEV)(Kx,{children:(0,I.jsxDEV)(xB,{},void 0,!1,{fileName:yB,lineNumber:16,columnNumber:9},this)},void 0,!1,{fileName:yB,lineNumber:15,columnNumber:7},this)},void 0,!1,{fileName:yB,lineNumber:14,columnNumber:5},this)}function xB(){let e=kw();return(0,I.jsxDEV)(`div`,{className:`min-h-screen bg-background text-foreground`,children:[(0,I.jsxDEV)(`header`,{className:`sticky top-0 z-10 border-b bg-background/95 px-5 py-3 backdrop-blur`,children:(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-lg font-semibold text-text-bright`,children:[(0,I.jsxDEV)(Le,{className:`h-5 w-5 text-primary`},void 0,!1,{fileName:yB,lineNumber:30,columnNumber:13},this),` eforge-plan`]},void 0,!0,{fileName:yB,lineNumber:29,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(Gz,{status:e.storeStatus,error:e.storeStatusError},void 0,!1,{fileName:yB,lineNumber:33,columnNumber:13},this),(0,I.jsxDEV)(Tn,{variant:`outline`,children:e.bridgeVersion?`bridge v${e.bridgeVersion}`:`mock bridge`},void 0,!1,{fileName:yB,lineNumber:34,columnNumber:13},this),(0,I.jsxDEV)(L,{variant:`outline`,size:`sm`,onClick:()=>void e.refresh(),disabled:e.loading,children:[e.loading?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:yB,lineNumber:36,columnNumber:31},this):(0,I.jsxDEV)(Ae,{className:`h-4 w-4`},void 0,!1,{fileName:yB,lineNumber:36,columnNumber:45},this),` Refresh`]},void 0,!0,{fileName:yB,lineNumber:35,columnNumber:13},this)]},void 0,!0,{fileName:yB,lineNumber:32,columnNumber:11},this)]},void 0,!0,{fileName:yB,lineNumber:28,columnNumber:9},this)},void 0,!1,{fileName:yB,lineNumber:27,columnNumber:7},this),(0,I.jsxDEV)(`main`,{className:`p-4`,children:[e.error&&(0,I.jsxDEV)(Kn,{className:`mb-3 rounded-md p-3 text-sm`,children:e.error},void 0,!1,{fileName:yB,lineNumber:43,columnNumber:24},this),(0,I.jsxDEV)(_B,{data:e},void 0,!1,{fileName:yB,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:yB,lineNumber:42,columnNumber:7},this)]},void 0,!0,{fileName:yB,lineNumber:26,columnNumber:5},this)}var SB=`/Users/markschaake/projects/eforge-build/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/main.tsx`;(0,He.createRoot)(document.getElementById(`root`)).render((0,I.jsxDEV)(w.StrictMode,{children:(0,I.jsxDEV)(bB,{},void 0,!1,{fileName:SB,lineNumber:8,columnNumber:5},void 0)},void 0,!1,{fileName:SB,lineNumber:7,columnNumber:3},void 0));export{l as i,_x as n,o as r,yO as t};
378
+ <%s key={someKey} {...props} />`,o,f,m,f),oe[f+o]=!0)}if(f=null,i!==void 0&&(r(i),f=``+i),s(n)&&(r(n.key),f=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return f&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,f,i,a(),l,d)}function p(e){m(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?m(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function m(e){return typeof e==`object`&&!!e&&e.$$typeof===g}var h=d(),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),ee=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),te=Symbol.for(`react.client.reference`),O=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne=Object.prototype.hasOwnProperty,k=Array.isArray,A=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var re,ie={},j=h.react_stack_bottom_frame.bind(h,o)(),ae=A(i(o)),oe={};e.Fragment=v,e.jsx=function(e,t,n){var r=1e4>O.recentlyCreatedOwnerStacks++;return f(e,t,n,!1,r?Error(`react-stack-top-frame`):j,r?A(i(e)):ae)},e.jsxs=function(e,t,n){var r=1e4>O.recentlyCreatedOwnerStacks++;return f(e,t,n,!0,r?Error(`react-stack-top-frame`):j,r?A(i(e)):ae)}})()})),xM=o(((e,t)=>{t.exports=bM()}))();function SM(e,t=[]){let n=[];function r(t,r){let i=w.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=w.useMemo(()=>o,Object.values(o));return(0,xM.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=w.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>w.createContext(e));return function(n){let r=n?.[e]||t;return w.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,CM(i,...t)]}function CM(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return w.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var wM=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=kn(`Primitive.${t}`),r=w.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,xM.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function TM(e,t){e&&oA.flushSync(()=>e.dispatchEvent(t))}function EM(e){let t=w.useRef(e);return w.useEffect(()=>{t.current=e}),w.useMemo(()=>((...e)=>t.current?.(...e)),[])}var DM=`DismissableLayer`,OM=`dismissableLayer.update`,kM=`dismissableLayer.pointerDownOutside`,AM=`dismissableLayer.focusOutside`,jM,MM=w.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),NM=w.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=w.useContext(MM),[d,f]=w.useState(null),p=d?.ownerDocument??globalThis?.document,[,m]=w.useState({}),h=On(t,f),g=Array.from(u.layers),[_]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=_?g.indexOf(_):-1,y=d?g.indexOf(d):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,x=y>=v,S=w.useRef(!1),C=LM(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:w.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return x&&!t},[u.branches,x])}),T=RM(e=>{if(r&&S.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),ee=d?y===g.length-1:!1,E=EM(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return w.useEffect(()=>{if(ee)return p.addEventListener(`keydown`,E,{capture:!0}),()=>p.removeEventListener(`keydown`,E,{capture:!0})},[p,ee,E]),w.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(jM=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),zM(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=jM))}},[d,p,n,u]),w.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),zM())},[d,u]),w.useEffect(()=>{let e=()=>m({});return document.addEventListener(OM,e),()=>document.removeEventListener(OM,e)},[]),(0,xM.jsx)(wM.div,{...l,ref:h,style:{pointerEvents:b?x?`auto`:`none`:void 0,...e.style},onFocusCapture:yM(e.onFocusCapture,T.onFocusCapture),onBlurCapture:yM(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:yM(e.onPointerDownCapture,C.onPointerDownCapture)})});NM.displayName=DM;var PM=`DismissableLayerBranch`,FM=w.forwardRef((e,t)=>{let n=w.useContext(MM),r=w.useRef(null),i=On(t,r);return w.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,xM.jsx)(wM.div,{...e,ref:i})});FM.displayName=PM;var IM=()=>!0;function LM(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=IM}=t,s=EM(e),c=w.useRef(!1),l=w.useRef(!1),u=w.useRef(new Map),d=w.useRef(()=>{});return w.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}function t(){return Array.from(u.current.values()).some(Boolean)}function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}function p(e){l.current&&u.current.set(e.type,!1)}let m=a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||BM(kM,s,p,{discrete:!0})};if(!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:()=>c.current=!0}}function RM(e,t=globalThis?.document){let n=EM(e),r=w.useRef(!1);return w.useEffect(()=>{let e=e=>{e.target&&!r.current&&BM(AM,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function zM(){let e=new CustomEvent(OM);document.dispatchEvent(e)}function BM(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?TM(i,a):i.dispatchEvent(a)}var VM=globalThis?.document?w.useLayoutEffect:()=>{},HM=w.useId||(()=>void 0),UM=0;function WM(e){let[t,n]=w.useState(HM());return VM(()=>{e||n(e=>e??String(UM++))},[e]),e||(t?`radix-${t}`:``)}var GM=[`top`,`right`,`bottom`,`left`],KM=Math.min,qM=Math.max,JM=Math.round,YM=Math.floor,XM=e=>({x:e,y:e}),ZM={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function QM(e,t,n){return qM(e,KM(t,n))}function $M(e,t){return typeof e==`function`?e(t):e}function eN(e){return e.split(`-`)[0]}function tN(e){return e.split(`-`)[1]}function nN(e){return e===`x`?`y`:`x`}function rN(e){return e===`y`?`height`:`width`}function iN(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function aN(e){return nN(iN(e))}function oN(e,t,n){n===void 0&&(n=!1);let r=tN(e),i=aN(e),a=rN(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=hN(o)),[o,hN(o)]}function sN(e){let t=hN(e);return[cN(e),t,cN(t)]}function cN(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var lN=[`left`,`right`],uN=[`right`,`left`],dN=[`top`,`bottom`],fN=[`bottom`,`top`];function pN(e,t,n){switch(e){case`top`:case`bottom`:return n?t?uN:lN:t?lN:uN;case`left`:case`right`:return t?dN:fN;default:return[]}}function mN(e,t,n,r){let i=tN(e),a=pN(eN(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(cN)))),a}function hN(e){let t=eN(e);return ZM[t]+e.slice(t.length)}function gN(e){return{top:0,right:0,bottom:0,left:0,...e}}function _N(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:gN(e)}function vN(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function yN(e,t,n){let{reference:r,floating:i}=e,a=iN(t),o=aN(t),s=rN(o),c=eN(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(tN(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function bN(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=$M(t,e),p=_N(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=vN(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=vN(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var xN=50,SN=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:bN},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=yN(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<xN&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=yN(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},CN=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=$M(e,t)||{};if(l==null)return{};let d=_N(u),f={x:n,y:r},p=aN(i),m=rN(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,ee=KM(d[_],T),E=KM(d[v],T),D=ee,te=C-h[m]-E,O=C/2-h[m]/2+w,ne=QM(D,O,te),k=!c.arrow&&tN(i)!=null&&O!==ne&&a.reference[m]/2-(O<D?ee:E)-h[m]/2<0,A=k?O<D?O-D:O-te:0;return{[p]:f[p]+A,data:{[p]:ne,centerOffset:O-ne-A,...k&&{alignmentOffset:A}},reset:k}}}),wN=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=$M(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=eN(r),_=iN(o),v=eN(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[hN(o)]:sN(o)),x=p!==`none`;!d&&x&&b.push(...mN(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=oN(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==iN(t))||T.every(e=>iN(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=iN(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function TN(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function EN(e){return GM.some(t=>e[t]>=0)}var DN=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=$M(e,t);switch(i){case`referenceHidden`:{let e=TN(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:EN(e)}}}case`escaped`:{let e=TN(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:EN(e)}}}default:return{}}}}},ON=new Set([`left`,`top`]);async function kN(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=eN(n),s=tN(n),c=iN(n)===`y`,l=ON.has(o)?-1:1,u=a&&c?-1:1,d=$M(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var AN=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await kN(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},jN=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=$M(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=iN(eN(i)),p=nN(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=QM(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=QM(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},MN=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=$M(e,t),u={x:n,y:r},d=iN(i),f=nN(d),p=u[f],m=u[d],h=$M(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=ON.has(eN(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},NN=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=$M(e,t),u=await o.detectOverflow(t,l),d=eN(i),f=tN(i),p=iN(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=KM(h-u[g],v),x=KM(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=qM(u.left,0),t=qM(u.right,0),n=qM(u.top,0),r=qM(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:qM(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:qM(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function PN(){return typeof window<`u`}function FN(e){return RN(e)?(e.nodeName||``).toLowerCase():`#document`}function IN(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function LN(e){return((RN(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function RN(e){return PN()?e instanceof Node||e instanceof IN(e).Node:!1}function zN(e){return PN()?e instanceof Element||e instanceof IN(e).Element:!1}function BN(e){return PN()?e instanceof HTMLElement||e instanceof IN(e).HTMLElement:!1}function VN(e){return!PN()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof IN(e).ShadowRoot}function HN(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=$N(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function UN(e){return/^(table|td|th)$/.test(FN(e))}function WN(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var GN=/transform|translate|scale|rotate|perspective|filter/,KN=/paint|layout|strict|content/,qN=e=>!!e&&e!==`none`,JN;function YN(e){let t=zN(e)?$N(e):e;return qN(t.transform)||qN(t.translate)||qN(t.scale)||qN(t.rotate)||qN(t.perspective)||!ZN()&&(qN(t.backdropFilter)||qN(t.filter))||GN.test(t.willChange||``)||KN.test(t.contain||``)}function XN(e){let t=tP(e);for(;BN(t)&&!QN(t);){if(YN(t))return t;if(WN(t))return null;t=tP(t)}return null}function ZN(){return JN??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),JN}function QN(e){return/^(html|body|#document)$/.test(FN(e))}function $N(e){return IN(e).getComputedStyle(e)}function eP(e){return zN(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function tP(e){if(FN(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||VN(e)&&e.host||LN(e);return VN(t)?t.host:t}function nP(e){let t=tP(e);return QN(t)?e.ownerDocument?e.ownerDocument.body:e.body:BN(t)&&HN(t)?t:nP(t)}function rP(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=nP(e),i=r===e.ownerDocument?.body,a=IN(r);if(i){let e=iP(a);return t.concat(a,a.visualViewport||[],HN(r)?r:[],e&&n?rP(e):[])}else return t.concat(r,rP(r,[],n))}function iP(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function aP(e){let t=$N(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=BN(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=JM(n)!==a||JM(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function oP(e){return zN(e)?e:e.contextElement}function sP(e){let t=oP(e);if(!BN(t))return XM(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=aP(t),o=(a?JM(n.width):n.width)/r,s=(a?JM(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var cP=XM(0);function lP(e){let t=IN(e);return!ZN()||!t.visualViewport?cP:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function uP(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==IN(e)?!1:t}function dP(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=oP(e),o=XM(1);t&&(r?zN(r)&&(o=sP(r)):o=sP(e));let s=uP(a,n,r)?lP(a):XM(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=IN(a),t=r&&zN(r)?IN(r):r,n=e,i=iP(n);for(;i&&r&&t!==n;){let e=sP(i),t=i.getBoundingClientRect(),r=$N(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=IN(i),i=iP(n)}}return vN({width:u,height:d,x:c,y:l})}function fP(e,t){let n=eP(e).scrollLeft;return t?t.left+n:dP(LN(e)).left+n}function pP(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-fP(e,n),y:n.top+t.scrollTop}}function mP(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=LN(r),s=t?WN(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=XM(1),u=XM(0),d=BN(r);if((d||!d&&!a)&&((FN(r)!==`body`||HN(o))&&(c=eP(r)),d)){let e=dP(r);l=sP(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?pP(o,c):XM(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function hP(e){return Array.from(e.getClientRects())}function gP(e){let t=LN(e),n=eP(e),r=e.ownerDocument.body,i=qM(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=qM(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+fP(e),s=-n.scrollTop;return $N(r).direction===`rtl`&&(o+=qM(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var _P=25;function vP(e,t){let n=IN(e),r=LN(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=ZN();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=fP(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=_P&&(a-=o)}else l<=_P&&(a+=l);return{width:a,height:o,x:s,y:c}}function yP(e,t){let n=dP(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=BN(e)?sP(e):XM(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function bP(e,t,n){let r;if(t===`viewport`)r=vP(e,n);else if(t===`document`)r=gP(LN(e));else if(zN(t))r=yP(t,n);else{let n=lP(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return vN(r)}function xP(e,t){let n=tP(e);return n===t||!zN(n)||QN(n)?!1:$N(n).position===`fixed`||xP(n,t)}function SP(e,t){let n=t.get(e);if(n)return n;let r=rP(e,[],!1).filter(e=>zN(e)&&FN(e)!==`body`),i=null,a=$N(e).position===`fixed`,o=a?tP(e):e;for(;zN(o)&&!QN(o);){let t=$N(o),n=YN(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||HN(o)&&!n&&xP(e,o))?r=r.filter(e=>e!==o):i=t,o=tP(o)}return t.set(e,r),r}function CP(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?WN(t)?[]:SP(t,this._c):[].concat(n),r],o=bP(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=bP(t,a[e],i);s=qM(n.top,s),c=KM(n.right,c),l=KM(n.bottom,l),u=qM(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function wP(e){let{width:t,height:n}=aP(e);return{width:t,height:n}}function TP(e,t,n){let r=BN(t),i=LN(t),a=n===`fixed`,o=dP(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=XM(0);function l(){c.x=fP(i)}if(r||!r&&!a)if((FN(t)!==`body`||HN(i))&&(s=eP(t)),r){let e=dP(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?pP(i,s):XM(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function EP(e){return $N(e).position===`static`}function DP(e,t){if(!BN(e)||$N(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return LN(e)===n&&(n=n.ownerDocument.body),n}function OP(e,t){let n=IN(e);if(WN(e))return n;if(!BN(e)){let t=tP(e);for(;t&&!QN(t);){if(zN(t)&&!EP(t))return t;t=tP(t)}return n}let r=DP(e,t);for(;r&&UN(r)&&EP(r);)r=DP(r,t);return r&&QN(r)&&EP(r)&&!YN(r)?n:r||XN(e)||n}var kP=async function(e){let t=this.getOffsetParent||OP,n=this.getDimensions,r=await n(e.floating);return{reference:TP(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function AP(e){return $N(e).direction===`rtl`}var jP={convertOffsetParentRelativeRectToViewportRelativeRect:mP,getDocumentElement:LN,getClippingRect:CP,getOffsetParent:OP,getElementRects:kP,getClientRects:hP,getDimensions:wP,getScale:sP,isElement:zN,isRTL:AP};function MP(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function NP(e,t){let n=null,r,i=LN(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=YM(d),h=YM(i.clientWidth-(u+f)),g=YM(i.clientHeight-(d+p)),_=YM(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:qM(0,KM(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!MP(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function PP(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=oP(e),u=i||a?[...l?rP(l):[],...t?rP(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?NP(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?dP(e):null;c&&g();function g(){let t=dP(e);h&&!MP(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var FP=AN,IP=jN,LP=wN,RP=NN,zP=DN,BP=CN,VP=MN,HP=(e,t,n)=>{let r=new Map,i={platform:jP,...n},a={...i.platform,_c:r};return SN(e,t,{...i,platform:a})},UP=typeof document<`u`?w.useLayoutEffect:function(){};function WP(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!WP(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!WP(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function GP(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function KP(e,t){let n=GP(e);return Math.round(t*n)/n}function qP(e){let t=w.useRef(e);return UP(()=>{t.current=e}),t}function JP(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=w.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=w.useState(r);WP(f,r)||p(r);let[m,h]=w.useState(null),[g,_]=w.useState(null),v=w.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=w.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=w.useRef(null),C=w.useRef(null),T=w.useRef(u),ee=c!=null,E=qP(c),D=qP(i),te=qP(l),O=w.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),HP(S.current,C.current,e).then(e=>{let t={...e,isPositioned:te.current!==!1};ne.current&&!WP(T.current,t)&&(T.current=t,oA.flushSync(()=>{d(t)}))})},[f,t,n,D,te]);UP(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let ne=w.useRef(!1);UP(()=>(ne.current=!0,()=>{ne.current=!1}),[]),UP(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,O);O()}},[b,x,O,E,ee]);let k=w.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),A=w.useMemo(()=>({reference:b,floating:x}),[b,x]),re=w.useMemo(()=>{let e={position:n,left:0,top:0};if(!A.floating)return e;let t=KP(A.floating,u.x),r=KP(A.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...GP(A.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,A.floating,u.x,u.y]);return w.useMemo(()=>({...u,update:O,refs:k,elements:A,floatingStyles:re}),[u,O,k,A,re])}var YP=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:BP({element:r.current,padding:i}).fn(n):r?BP({element:r,padding:i}).fn(n):{}}}},XP=(e,t)=>{let n=FP(e);return{name:n.name,fn:n.fn,options:[e,t]}},ZP=(e,t)=>{let n=IP(e);return{name:n.name,fn:n.fn,options:[e,t]}},QP=(e,t)=>({fn:VP(e).fn,options:[e,t]}),$P=(e,t)=>{let n=LP(e);return{name:n.name,fn:n.fn,options:[e,t]}},eF=(e,t)=>{let n=RP(e);return{name:n.name,fn:n.fn,options:[e,t]}},tF=(e,t)=>{let n=zP(e);return{name:n.name,fn:n.fn,options:[e,t]}},nF=(e,t)=>{let n=YP(e);return{name:n.name,fn:n.fn,options:[e,t]}},rF=`Arrow`,iF=w.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,xM.jsx)(wM.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,xM.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});iF.displayName=rF;var aF=iF;function oF(e){let[t,n]=w.useState(void 0);return VM(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var sF=`Popper`,[cF,lF]=SM(sF),[uF,dF]=cF(sF),fF=e=>{let{__scopePopper:t,children:n}=e,[r,i]=w.useState(null),[a,o]=w.useState(void 0);return(0,xM.jsx)(uF,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})};fF.displayName=sF;var pF=`PopperAnchor`,mF=w.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=dF(pF,n),o=w.useRef(null),s=a.onAnchorChange,c=On(t,w.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=w.useRef(null);w.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&wF(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,xM.jsx)(wM.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})});mF.displayName=pF;var hF=`PopperContent`,[gF,_F]=cF(hF),vF=w.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=dF(hF,n),[_,v]=w.useState(null),y=On(t,v),[b,x]=w.useState(null),S=oF(b),C=S?.width??0,T=S?.height??0,ee=r+(a===`center`?``:`-`+a),E=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},D=Array.isArray(l)?l:[l],te=D.length>0,O={padding:E,boundary:D.filter(SF),altBoundary:te},{refs:ne,floatingStyles:k,placement:A,isPositioned:re,middlewareData:ie}=JP({strategy:`fixed`,placement:ee,whileElementsMounted:(...e)=>PP(...e,{animationFrame:p===`always`}),elements:{reference:g.anchor},middleware:[XP({mainAxis:i+T,alignmentAxis:o}),c&&ZP({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?QP():void 0,...O}),c&&$P({...O}),eF({...O,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),b&&nF({element:b,padding:s}),CF({arrowWidth:C,arrowHeight:T}),f&&tF({strategy:`referenceHidden`,...O,boundary:te?O.boundary:void 0})]}),j=g.setPlacementState;VM(()=>(j(A),()=>{j(void 0)}),[A,j]);let[ae,oe]=wF(A),se=EM(m);VM(()=>{re&&se?.()},[re,se]);let ce=ie.arrow?.x,le=ie.arrow?.y,ue=ie.arrow?.centerOffset!==0,[de,fe]=w.useState();return VM(()=>{_&&fe(window.getComputedStyle(_).zIndex)},[_]),(0,xM.jsx)(`div`,{ref:ne.setFloating,"data-radix-popper-content-wrapper":``,style:{...k,transform:re?k.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:de,"--radix-popper-transform-origin":[ie.transformOrigin?.x,ie.transformOrigin?.y].join(` `),...ie.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,xM.jsx)(gF,{scope:n,placedSide:ae,placedAlign:oe,onArrowChange:x,arrowX:ce,arrowY:le,shouldHideArrow:ue,children:(0,xM.jsx)(wM.div,{"data-side":ae,"data-align":oe,...h,ref:y,style:{...h.style,animation:re?void 0:`none`}})})})});vF.displayName=hF;var yF=`PopperArrow`,bF={top:`bottom`,right:`left`,bottom:`top`,left:`right`},xF=w.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=_F(yF,n),a=bF[i.placedSide];return(0,xM.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,xM.jsx)(aF,{...r,ref:t,style:{...r.style,display:`block`}})})});xF.displayName=yF;function SF(e){return e!==null}var CF=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=wF(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function wF(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var TF=fF,EF=mF,DF=vF,OF=xF,kF=`Portal`,AF=w.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=w.useState(!1);VM(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?oA.createPortal((0,xM.jsx)(wM.div,{...r,ref:t}),o):null});AF.displayName=kF;function jF(e,t){return w.useReducer((e,n)=>t[e][n]??e,e)}var MF=e=>{let{present:t,children:n}=e,r=NF(t),i=typeof n==`function`?n({present:r.isPresent}):w.Children.only(n),a=FF(r.ref,LF(i));return typeof n==`function`||r.isPresent?w.cloneElement(i,{ref:a}):null};MF.displayName=`Presence`;function NF(e){let[t,n]=w.useState(),r=w.useRef(null),i=w.useRef(e),a=w.useRef(`none`),o=w.useRef(void 0),[s,c]=jF(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return w.useEffect(()=>{s===`mounted`?(a.current=o.current??IF(r.current),o.current=void 0):a.current=`none`},[s]),VM(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=IF(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),VM(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=IF(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(a.current=IF(r.current))};return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:w.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=IF(t)}else r.current=null;n(e)},[])}}function PF(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function FF(...e){let t=w.useRef(e);return t.current=e,w.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=PF(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():PF(n[e],null)}}},[])}function IF(e){return e?.animationName||`none`}function LF(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var RF=w.useInsertionEffect||VM;function zF({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=BF({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=w.useRef(e!==void 0);w.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,w.useCallback(t=>{if(s){let n=VF(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function BF({defaultProp:e,onChange:t}){let[n,r]=w.useState(e),i=w.useRef(n),a=w.useRef(t);return RF(()=>{a.current=t},[t]),w.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function VF(e){return typeof e==`function`}var HF=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),UF=`VisuallyHidden`,WF=w.forwardRef((e,t)=>(0,xM.jsx)(wM.span,{...e,ref:t,style:{...HF,...e.style}}));WF.displayName=UF;var GF=WF,[KF,qF]=SM(`Tooltip`,[lF]),JF=lF(),YF=`TooltipProvider`,XF=700,ZF=`tooltip.open`,[QF,$F]=KF(YF),eI=e=>{let{__scopeTooltip:t,delayDuration:n=XF,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=w.useRef(!0),s=w.useRef(!1),c=w.useRef(0);return w.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,xM.jsx)(QF,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:w.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:w.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:w.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};eI.displayName=YF;var tI=`Tooltip`,[nI,rI]=KF(tI),iI=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=$F(tI,e.__scopeTooltip),l=JF(t),[u,d]=w.useState(null),f=WM(),p=w.useRef(0),m=o??c.disableHoverableContent,h=s??c.delayDuration,g=w.useRef(!1),[_,v]=zF({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(ZF))):c.onClose(),a?.(e)},caller:tI}),y=w.useMemo(()=>_?g.current?`delayed-open`:`instant-open`:`closed`,[_]),b=w.useCallback(()=>{window.clearTimeout(p.current),p.current=0,g.current=!1,v(!0)},[v]),x=w.useCallback(()=>{window.clearTimeout(p.current),p.current=0,v(!1)},[v]),S=w.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,v(!0),p.current=0},h)},[h,v]);return w.useEffect(()=>()=>{p.current&&=(window.clearTimeout(p.current),0)},[]),(0,xM.jsx)(TF,{...l,children:(0,xM.jsx)(nI,{scope:t,contentId:f,open:_,stateAttribute:y,trigger:u,onTriggerChange:d,onTriggerEnter:w.useCallback(()=>{c.isOpenDelayedRef.current?S():b()},[c.isOpenDelayedRef,S,b]),onTriggerLeave:w.useCallback(()=>{m?x():(window.clearTimeout(p.current),p.current=0)},[x,m]),onOpen:b,onClose:x,disableHoverableContent:m,children:n})})};iI.displayName=tI;var aI=`TooltipTrigger`,oI=w.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=rI(aI,n),a=$F(aI,n),o=JF(n),s=On(t,w.useRef(null),i.onTriggerChange),c=w.useRef(!1),l=w.useRef(!1),u=w.useCallback(()=>c.current=!1,[]);return w.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,xM.jsx)(EF,{asChild:!0,...o,children:(0,xM.jsx)(wM.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:yM(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:yM(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:yM(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:yM(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:yM(e.onBlur,i.onClose),onClick:yM(e.onClick,i.onClose)})})});oI.displayName=aI;var sI=`TooltipPortal`,[cI,lI]=KF(sI,{forceMount:void 0}),uI=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=rI(sI,t);return(0,xM.jsx)(cI,{scope:t,forceMount:n,children:(0,xM.jsx)(MF,{present:n||a.open,children:(0,xM.jsx)(AF,{asChild:!0,container:i,children:r})})})};uI.displayName=sI;var dI=`TooltipContent`,fI=w.forwardRef((e,t)=>{let n=lI(dI,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=rI(dI,e.__scopeTooltip);return(0,xM.jsx)(MF,{present:r||o.open,children:o.disableHoverableContent?(0,xM.jsx)(_I,{side:i,...a,ref:t}):(0,xM.jsx)(pI,{side:i,...a,ref:t})})}),pI=w.forwardRef((e,t)=>{let n=rI(dI,e.__scopeTooltip),r=$F(dI,e.__scopeTooltip),i=w.useRef(null),a=On(t,i),[o,s]=w.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=w.useCallback(()=>{s(null),d(!1)},[d]),p=w.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=xI(r,bI(r,n.getBoundingClientRect())),a=SI(t.getBoundingClientRect()),o=wI([...i,...a]);s(o),d(!0)},[d]);return w.useEffect(()=>()=>f(),[f]),w.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),w.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!CI(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,xM.jsx)(_I,{...e,ref:a})}),[mI,hI]=KF(tI,{isInside:!1}),gI=Mn(`TooltipContent`),_I=w.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=rI(dI,n),l=JF(n),{onClose:u}=c;return w.useEffect(()=>(document.addEventListener(ZF,u),()=>document.removeEventListener(ZF,u)),[u]),w.useEffect(()=>{if(c.trigger){let e=e=>{e.target instanceof Node&&e.target.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,xM.jsx)(NM,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,xM.jsxs)(DF,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,xM.jsx)(gI,{children:r}),(0,xM.jsx)(mI,{scope:n,isInside:!0,children:(0,xM.jsx)(GF,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});fI.displayName=dI;var vI=`TooltipArrow`,yI=w.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=JF(n);return hI(vI,n).isInside?null:(0,xM.jsx)(OF,{...i,...r,ref:t})});yI.displayName=vI;function bI(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function xI(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function SI(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function CI(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function wI(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),TI(t)}function TI(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var EI=eI,DI=iI,OI=oI,kI=uI,AI=fI,jI=yI,MI=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/ui/tooltip.tsx`;function NI({delayDuration:e=0,...t}){return(0,I.jsxDEV)(EI,{"data-slot":`tooltip-provider`,delayDuration:e,...t},void 0,!1,{fileName:MI,lineNumber:13,columnNumber:10},this)}function PI({...e}){return(0,I.jsxDEV)(DI,{"data-slot":`tooltip`,...e},void 0,!1,{fileName:MI,lineNumber:17,columnNumber:10},this)}function FI({...e}){return(0,I.jsxDEV)(OI,{"data-slot":`tooltip-trigger`,...e},void 0,!1,{fileName:MI,lineNumber:21,columnNumber:10},this)}function II({className:e,sideOffset:t=4,children:n,...r}){return(0,I.jsxDEV)(kI,{children:(0,I.jsxDEV)(AI,{"data-slot":`tooltip-content`,sideOffset:t,className:xn(`z-50 w-fit rounded-md border border-border bg-card px-2.5 py-1 text-2xs text-card-foreground shadow-lg shadow-black/40`,e),...r,children:[n,(0,I.jsxDEV)(jI,{className:`z-50 size-2 translate-y-[calc(-50%_-_1px)] rotate-45 rounded-[2px] border-border bg-card fill-card`},void 0,!1,{fileName:MI,lineNumber:37,columnNumber:9},this)]},void 0,!0,{fileName:MI,lineNumber:27,columnNumber:7},this)},void 0,!1,{fileName:MI,lineNumber:26,columnNumber:5},this)}var LI=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-annotatable-section.tsx`;function RI(e){let t=[];for(let n of Array.from(e.children)){let e=n.tagName.toLowerCase();if(e===`ul`||e===`ol`)for(let e of Array.from(n.children))e.tagName.toLowerCase()===`li`&&t.push(e);else t.push(n)}return t}function zI({label:e,icon:t,variant:n=`ghost`,...r}){return(0,I.jsxDEV)(PI,{children:[(0,I.jsxDEV)(FI,{asChild:!0,children:(0,I.jsxDEV)(L,{type:`button`,variant:n,"aria-label":e,...r,size:`icon-xs`,children:t},void 0,!1,{fileName:LI,lineNumber:55,columnNumber:9},this)},void 0,!1,{fileName:LI,lineNumber:54,columnNumber:7},this),(0,I.jsxDEV)(II,{children:e},void 0,!1,{fileName:LI,lineNumber:57,columnNumber:7},this)]},void 0,!0,{fileName:LI,lineNumber:53,columnNumber:5},this)}function BI({plan:e,dimension:t,content:n,disabled:r,defaultOpen:i=!1,onSaveSection:a,onSelectAnnotationTarget:o}){let s=w.useRef(null),[c,l]=w.useState(null),[u,d]=w.useState(null),[f,p]=w.useState(i),[m,h]=w.useState(!1),g=rj(t),_=n.trim().length>0,v=w.useCallback(()=>{let e=s.current;if(!e||!f||m)return l(null);let n=window.getSelection(),r=Aj(n,e,t,`${g} selection`);if(!r||!n||n.rangeCount===0)return l(null);let i=n.getRangeAt(0),a=typeof i.getBoundingClientRect==`function`?i.getBoundingClientRect():null,o=e.getBoundingClientRect();l({target:r,top:a?a.top-o.top:0,bottom:a?a.bottom-o.top:0,left:a?a.left-o.left+a.width/2:0})},[t,g,f,m]);w.useLayoutEffect(()=>{let e=s.current;if(!f||!e)return;let t=()=>{let t=e.querySelector(`.plan-prose`);t&&RI(t).forEach((e,t)=>{e.tabIndex=0,e.setAttribute(`role`,`group`),e.setAttribute(`aria-label`,`${g} block ${t+1}`),e.dataset.planAnnotationBlock=String(t+1)})};t();let n=new MutationObserver(t);return n.observe(e,{childList:!0,subtree:!0}),()=>n.disconnect()},[n,f,g]),w.useEffect(()=>(document.addEventListener(`selectionchange`,v),()=>document.removeEventListener(`selectionchange`,v)),[v]),w.useEffect(()=>{p(i),h(!1),l(null),d(null)},[e.session,t,i]),w.useEffect(()=>{l(null),d(null)},[n]),w.useEffect(()=>{(!f||m)&&(l(null),d(null))},[m,f]);let y=(e,t)=>{e&&(o(e,t??null),l(null),d(null),window.getSelection()?.removeAllRanges())},b=e=>{let n=s.current,r=e.target?.closest(`[data-plan-annotation-block]`);if(!n||!r||!n.contains(r))return;let i=jj(r,n,t,`${g} block`);if(!i)return;let a=r.getBoundingClientRect(),o=n.getBoundingClientRect();d({target:i,top:a.top-o.top,left:a.right-o.left})},x=async e=>{a&&(await a(t,e),h(!1))},S=c!==null&&c.top<32,C=c?S?c.bottom??c.top:c.top:0,T=S?`translate(-50%, 6px)`:`translate(-50%, calc(-100% - 6px))`;return(0,I.jsxDEV)(NI,{children:(0,I.jsxDEV)(`section`,{className:`rounded-md border bg-background/50 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex w-full items-center gap-2`,children:[(0,I.jsxDEV)(`button`,{type:`button`,className:`flex flex-1 items-center gap-2 text-left`,"aria-label":`Toggle ${g} section`,"aria-expanded":f,onClick:()=>p(e=>!e),children:[(0,I.jsxDEV)(j,{className:`h-4 w-4 text-muted-foreground transition-transform ${f?`rotate-90`:``}`},void 0,!1,{fileName:LI,lineNumber:169,columnNumber:13},this),(0,I.jsxDEV)(`h5`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:g},void 0,!1,{fileName:LI,lineNumber:170,columnNumber:13},this)]},void 0,!0,{fileName:LI,lineNumber:168,columnNumber:11},this),f&&(0,I.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:[a&&!m&&(0,I.jsxDEV)(zI,{label:`Edit ${g}`,icon:(0,I.jsxDEV)(Oe,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:175,columnNumber:59},this),disabled:r,onClick:()=>h(!0)},void 0,!1,{fileName:LI,lineNumber:175,columnNumber:17},this),(0,I.jsxDEV)(zI,{label:`Annotate the entire ${g} section`,icon:(0,I.jsxDEV)(we,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:177,columnNumber:80},this),disabled:r||!_,onClick:e=>y(Mj(t,g,n),e.currentTarget.getBoundingClientRect())},void 0,!1,{fileName:LI,lineNumber:177,columnNumber:15},this)]},void 0,!0,{fileName:LI,lineNumber:173,columnNumber:13},this)]},void 0,!0,{fileName:LI,lineNumber:167,columnNumber:9},this),f&&(m&&a?(0,I.jsxDEV)(Xj,{dimension:t,disabled:r,initialContent:n,onSave:x,onCancel:()=>h(!1)},void 0,!1,{fileName:LI,lineNumber:182,columnNumber:13},this):(0,I.jsxDEV)(`div`,{ref:s,className:`relative mt-2`,onMouseOver:b,onFocus:b,onMouseLeave:()=>d(null),children:[(0,I.jsxDEV)(zO,{markdown:n},void 0,!1,{fileName:LI,lineNumber:185,columnNumber:15},this),c&&!r&&(0,I.jsxDEV)(`div`,{className:`absolute z-20`,style:{top:C,left:c.left,transform:T},children:(0,I.jsxDEV)(L,{type:`button`,size:`xs`,className:`shadow-md`,onMouseDown:e=>e.preventDefault(),onClick:e=>y(c.target,e.currentTarget.getBoundingClientRect()),children:[(0,I.jsxDEV)(we,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:189,columnNumber:21},this),` Annotate`]},void 0,!0,{fileName:LI,lineNumber:188,columnNumber:19},this)},void 0,!1,{fileName:LI,lineNumber:187,columnNumber:17},this),u&&!c&&!r&&(0,I.jsxDEV)(`div`,{className:`absolute z-10`,style:{top:u.top+4,left:u.left,transform:`translateX(-100%)`},children:(0,I.jsxDEV)(zI,{label:`Annotate this block in ${g}`,icon:(0,I.jsxDEV)(we,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:LI,lineNumber:195,columnNumber:79},this),variant:`secondary`,className:`border border-border shadow-sm`,onClick:e=>y(u.target,e.currentTarget.getBoundingClientRect())},void 0,!1,{fileName:LI,lineNumber:195,columnNumber:19},this)},void 0,!1,{fileName:LI,lineNumber:194,columnNumber:17},this)]},void 0,!0,{fileName:LI,lineNumber:184,columnNumber:13},this))]},void 0,!0,{fileName:LI,lineNumber:166,columnNumber:7},this)},void 0,!1,{fileName:LI,lineNumber:165,columnNumber:5},this)}var VI=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-detail.tsx`,HI=sw();function UI({detail:e,artifact:t,revision:n,locked:r,onSelectAnnotationTarget:i,onApply:a,onRefresh:o,onHandoff:s,onDeleted:c,onClose:l}){let u=$n(),d=e.plan,f=e.readiness??{},[p,m]=w.useState(!1),[h,g]=w.useState(!1),[_,v]=w.useState(!1),[y,b]=w.useState({status:`loading`,profiles:[]}),x=async(e,t,n)=>{try{let r=await HI.invokeAction(e,{session:d.session,...t});return a(r),u.push(n,`success`),await o(),r}catch(e){return u.push(e instanceof Error?e.message:String(e),`error`),null}},S=(e,t)=>x(`set-session-plan-section`,{dimension:e,content:t},`Saved ${rj(e)}.`).then(()=>void 0),C=(e,t)=>x(`select-session-plan-dimensions`,{planningType:e,planningDepth:t},`Applied dimension selection.`).then(()=>void 0),T=e=>x(`update-session-plan-metadata`,{profile:e.profile,agentProfile:e.agentProfile,openQuestions:e.openQuestions},`Updated metadata.`).then(e=>e!==null),ee=()=>void x(`set-session-plan-ready`,{},`Marked ready.`),E=f.ready===!0,D=d.status===`ready`,te=E&&!D,O=E&&D,k=E&&(d.status===`submitted`||d.status===`removed`),A=HA(e,t);w.useEffect(()=>{O||m(!1)},[O]),w.useEffect(()=>{k||g(!1)},[k]),w.useEffect(()=>{let e=!0;return b(e=>({status:`loading`,profiles:e.profiles,active:e.active})),HI.invokeAction(`list-agent-runtime-profiles`,{scope:`all`}).then(t=>{e&&b({status:t.profiles.length>0?`success`:`empty`,profiles:t.profiles,active:t.active})}).catch(t=>{e&&b({status:`error`,profiles:[],error:t instanceof Error?t.message:String(t)})}),()=>{e=!1}},[d.session]);let re=async()=>{if(O){if(!p){m(!0),g(!1),v(!1);return}m(!1),await s(d.session)}},ie=async()=>{if(k){if(!h){g(!0),m(!1),v(!1);return}g(!1);try{let e=await sw().invokeAction(`resubmit-session-plan`,{session:d.session});u.push(e.message??`Resubmitted ${d.session}.`,e.kind===`enqueued`?`success`:`error`),await o()}catch(e){u.push(e instanceof Error?e.message:String(e),`error`)}}},j=async()=>{if(!_){v(!0),m(!1),g(!1);return}v(!1);try{let e=await HI.invokeAction(`delete-session-plan`,{session:d.session});u.push(e.message??`Deleted ${d.session}.`,`success`),await c()}catch(e){u.push(e instanceof Error?e.message:String(e),`error`)}},ae=Object.entries(d.sections??{}),oe=ae.find(([e])=>qI(e)),ce=ae.filter(([e])=>!qI(e)),le=(f.missingDimensions?.length??0)+(f.acDiagnostics?.length??0),ue=f.coveredDimensions?.length??0,de=ue+(f.missingDimensions?.length??0)+(f.skippedDimensions?.length??0),fe=O?`Ready for handoff`:E?`Checks pass · mark ready to hand off`:de>0?`${ue}/${de} covered · ${le} to resolve`:`Not started`;return(0,I.jsxDEV)(VO,{"aria-label":`Plan ${d.session}`,children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{children:rT(d.topic,d.session)},void 0,!1,{fileName:VI,lineNumber:159,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:d.session},void 0,!1,{fileName:VI,lineNumber:160,columnNumber:11},this)]},void 0,!0,{fileName:VI,lineNumber:158,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[te&&(0,I.jsxDEV)(L,{variant:`secondary`,size:`sm`,disabled:r,onClick:ee,children:[(0,I.jsxDEV)(se,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:163,columnNumber:103},this),` Mark ready`]},void 0,!0,{fileName:VI,lineNumber:163,columnNumber:28},this),k&&(0,I.jsxDEV)(L,{variant:h?`destructive`:`secondary`,size:`sm`,disabled:r,onClick:()=>void ie(),onBlur:()=>g(!1),children:[(0,I.jsxDEV)(Me,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:164,columnNumber:198},this),` `,h?`Confirm resubmit`:`Resubmit`]},void 0,!0,{fileName:VI,lineNumber:164,columnNumber:27},this),(0,I.jsxDEV)(L,{variant:_?`destructive`:`outline`,size:`sm`,disabled:r,onClick:()=>void j(),onBlur:()=>v(!1),children:[(0,I.jsxDEV)(Re,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:166,columnNumber:13},this),` `,_?`Confirm delete`:`Delete`]},void 0,!0,{fileName:VI,lineNumber:165,columnNumber:11},this),(0,I.jsxDEV)(L,{variant:p?`destructive`:`secondary`,size:`sm`,disabled:r||!O,title:O?void 0:E?`Mark ready before handoff.`:`Resolve readiness issues before handoff.`,onClick:()=>void re(),onBlur:()=>m(!1),children:[p?`Confirm handoff`:`Handoff`,` `,(0,I.jsxDEV)(ne,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:176,columnNumber:65},this)]},void 0,!0,{fileName:VI,lineNumber:168,columnNumber:11},this),(0,I.jsxDEV)(L,{variant:`ghost`,size:`icon-xs`,"aria-label":`Close plan`,title:`Close`,className:`ml-1`,onClick:l,children:(0,I.jsxDEV)(Ve,{className:`h-4 w-4`},void 0,!1,{fileName:VI,lineNumber:178,columnNumber:123},this)},void 0,!1,{fileName:VI,lineNumber:178,columnNumber:11},this)]},void 0,!0,{fileName:VI,lineNumber:162,columnNumber:9},this)]},void 0,!0,{fileName:VI,lineNumber:157,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3 text-sm`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[!D&&(0,I.jsxDEV)(Tn,{children:d.status},void 0,!1,{fileName:VI,lineNumber:183,columnNumber:28},this),!O&&(0,I.jsxDEV)(Tn,{variant:E?`default`:`outline`,children:E?`checks pass`:`not ready`},void 0,!1,{fileName:VI,lineNumber:184,columnNumber:27},this),e.lifecycle?.lifecycleState===`partial`&&(0,I.jsxDEV)(Tn,{variant:`outline`,title:e.lifecycle.partialReasons?.map(e=>e.message).join(` `),children:`partial lifecycle`},void 0,!1,{fileName:VI,lineNumber:185,columnNumber:62},this),d.planning_type&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:d.planning_type},void 0,!1,{fileName:VI,lineNumber:186,columnNumber:34},this),d.planning_depth&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:d.planning_depth},void 0,!1,{fileName:VI,lineNumber:187,columnNumber:35},this),(0,I.jsxDEV)(`span`,{className:`ml-auto text-xs font-semibold ${O?`text-[color:var(--lane-ready)]`:`text-[color:var(--prio-medium)]`}`,children:fe},void 0,!1,{fileName:VI,lineNumber:188,columnNumber:11},this)]},void 0,!0,{fileName:VI,lineNumber:182,columnNumber:9},this),(0,I.jsxDEV)(KI,{timestamps:A},void 0,!1,{fileName:VI,lineNumber:191,columnNumber:9},this),(0,I.jsxDEV)(WI,{detail:e},void 0,!1,{fileName:VI,lineNumber:192,columnNumber:9},this),(0,I.jsxDEV)(GI,{detail:e},void 0,!1,{fileName:VI,lineNumber:193,columnNumber:9},this),oe!==void 0&&(0,I.jsxDEV)(BI,{plan:d,dimension:`executive-summary`,content:oe[1],disabled:r||n.busy||n.loading,defaultOpen:!0,onSaveSection:S,onSelectAnnotationTarget:i},void 0,!1,{fileName:VI,lineNumber:196,columnNumber:11},this),(0,I.jsxDEV)(tM,{plan:d,readiness:f,disabled:r,onSetSection:S,onSelectDimensions:C},void 0,!1,{fileName:VI,lineNumber:207,columnNumber:9},this),(0,I.jsxDEV)(fM,{plan:d},void 0,!1,{fileName:VI,lineNumber:208,columnNumber:9},this),ce.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Sections`},void 0,!1,{fileName:VI,lineNumber:213,columnNumber:15},this),(0,I.jsxDEV)(L,{className:`ml-auto`,size:`sm`,variant:`outline`,disabled:r||n.busy||n.loading,onClick:e=>{let t=Pj(d);t&&i(t,e.currentTarget.getBoundingClientRect())},children:`Annotate whole plan`},void 0,!1,{fileName:VI,lineNumber:214,columnNumber:15},this)]},void 0,!0,{fileName:VI,lineNumber:212,columnNumber:13},this),ce.map(([e,t])=>(0,I.jsxDEV)(BI,{plan:d,dimension:e,content:t,disabled:r||n.busy||n.loading,onSaveSection:S,onSelectAnnotationTarget:i},e,!1,{fileName:VI,lineNumber:217,columnNumber:15},this))]},void 0,!0,{fileName:VI,lineNumber:211,columnNumber:11},this),(0,I.jsxDEV)(ej,{storageKey:`eforge-plan.provenance.${d.session}`,title:`Build activity & metadata`,children:(0,I.jsxDEV)(`div`,{className:`grid gap-3`,children:[(0,I.jsxDEV)(gM,{plan:d,detail:e},void 0,!1,{fileName:VI,lineNumber:224,columnNumber:13},this),(0,I.jsxDEV)(sM,{plan:d,disabled:r,profileOptions:y,onSave:T},void 0,!1,{fileName:VI,lineNumber:225,columnNumber:13},this)]},void 0,!0,{fileName:VI,lineNumber:223,columnNumber:11},this)},void 0,!1,{fileName:VI,lineNumber:222,columnNumber:9},this)]},void 0,!0,{fileName:VI,lineNumber:181,columnNumber:7},this)]},void 0,!0,{fileName:VI,lineNumber:156,columnNumber:5},this)}function WI({detail:e}){let t=e.statusSourceDisclosure??e.plan?.statusSourceDisclosure;return t?(0,I.jsxDEV)(`p`,{className:`rounded border border-border bg-background/40 p-2 text-xs text-muted-foreground`,children:t},void 0,!1,{fileName:VI,lineNumber:236,columnNumber:10},this):null}function GI({detail:e}){let t=e.lifecycle?.partialReasons??e.plan?.partialReasons??[];return e.lifecycle?.lifecycleState!==`partial`||t.length===0?null:(0,I.jsxDEV)(`div`,{className:`rounded border border-amber-500/30 bg-amber-500/10 p-2 text-xs text-amber-900 dark:text-amber-100`,children:[(0,I.jsxDEV)(`div`,{className:`font-semibold`,children:`Partial lifecycle projection`},void 0,!1,{fileName:VI,lineNumber:244,columnNumber:7},this),t.map(e=>(0,I.jsxDEV)(`p`,{children:e.message},e.code,!1,{fileName:VI,lineNumber:245,columnNumber:32},this))]},void 0,!0,{fileName:VI,lineNumber:243,columnNumber:5},this)}function KI({timestamps:e}){return(0,I.jsxDEV)(`dl`,{className:`grid gap-1 rounded border border-border bg-background/40 p-2 text-xs sm:grid-cols-2`,children:[[`Created`,e.createdAt],[`Updated`,e.updatedAt],[`Ready`,e.readyAt],[`Submitted`,e.submittedAt],[`Last build activity`,e.lastBuildActivityAt]].map(([e,t])=>(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`dt`,{className:`text-muted-foreground`,children:e},void 0,!1,{fileName:VI,lineNumber:262,columnNumber:11},this),(0,I.jsxDEV)(`dd`,{className:`font-medium text-text-bright`,children:(0,I.jsxDEV)(GA,{value:t},void 0,!1,{fileName:VI,lineNumber:263,columnNumber:56},this)},void 0,!1,{fileName:VI,lineNumber:263,columnNumber:11},this)]},e,!0,{fileName:VI,lineNumber:261,columnNumber:9},this))},void 0,!1,{fileName:VI,lineNumber:259,columnNumber:5},this)}function qI(e){return e.trim().toLowerCase().replace(/-/g,` `)===`executive summary`}var JI=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/pending-annotation-composer.tsx`,YI=320,XI=4e3;function ZI(e){return e.label?.trim()||(e.dimension?rj(e.dimension):rj(e.kind))}function QI(e){if(!e)return{top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`};let t=Math.max(8,Math.min(e.left,window.innerWidth-YI-8));return e.bottom>window.innerHeight*.6?{left:t,bottom:Math.max(8,window.innerHeight-e.top+6)}:{left:t,top:Math.min(e.bottom+6,window.innerHeight-8)}}function $I({target:e,anchor:t,busy:n,onSave:r,onCancel:i}){let[a,o]=w.useState(``),[s,c]=w.useState(null),l=e.quoteContext,u=a.length,d=u>XI;w.useEffect(()=>{o(``),c(null)},[e]);let f=async()=>{if(d)return;c(null);let e=await r(a.trim());e.ok?o(``):c(e.error??`Annotation could not be saved. Keep the draft open and retry.`)};return(0,oA.createPortal)((0,I.jsxDEV)(`div`,{role:`dialog`,"aria-label":`Pending annotation composer`,className:`fixed z-50 grid gap-2 rounded-md border border-primary/40 bg-card p-3 shadow-lg shadow-black/40`,style:{width:YI,...QI(t)},onKeyDown:e=>{e.key===`Escape`&&i()},children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(we,{className:`h-4 w-4 text-primary`},void 0,!1,{fileName:JI,lineNumber:72,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-semibold text-text-bright`,title:ZI(e),children:ZI(e)},void 0,!1,{fileName:JI,lineNumber:73,columnNumber:9},this),(0,I.jsxDEV)(Tn,{variant:`outline`,children:e.kind},void 0,!1,{fileName:JI,lineNumber:74,columnNumber:9},this)]},void 0,!0,{fileName:JI,lineNumber:71,columnNumber:7},this),(0,I.jsxDEV)(`blockquote`,{className:`max-h-20 overflow-auto rounded border-l-2 border-primary/40 bg-background/80 px-2 py-1 text-2xs leading-snug text-muted-foreground`,children:[l.prefix&&(0,I.jsxDEV)(`span`,{children:l.prefix},void 0,!1,{fileName:JI,lineNumber:77,columnNumber:26},this),(0,I.jsxDEV)(`span`,{className:`text-text-bright`,children:l.exact},void 0,!1,{fileName:JI,lineNumber:78,columnNumber:9},this),l.suffix&&(0,I.jsxDEV)(`span`,{children:l.suffix},void 0,!1,{fileName:JI,lineNumber:79,columnNumber:26},this)]},void 0,!0,{fileName:JI,lineNumber:76,columnNumber:7},this),(0,I.jsxDEV)(YO,{autoFocus:!0,"aria-label":`Annotation note`,value:a,disabled:n,onChange:e=>{o(e.target.value),c(null)},placeholder:`Describe what should change or what needs review…`},void 0,!1,{fileName:JI,lineNumber:81,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2 text-2xs`,children:[(0,I.jsxDEV)(`span`,{className:d?`text-destructive-foreground`:`text-muted-foreground`,children:[u,` / `,XI,` characters`]},void 0,!0,{fileName:JI,lineNumber:83,columnNumber:9},this),d&&(0,I.jsxDEV)(`span`,{className:`text-destructive-foreground`,children:`Shorten before saving.`},void 0,!1,{fileName:JI,lineNumber:84,columnNumber:23},this)]},void 0,!0,{fileName:JI,lineNumber:82,columnNumber:7},this),s&&(0,I.jsxDEV)(`p`,{role:`alert`,className:`rounded border border-destructive/40 bg-destructive/10 px-2 py-1 text-xs text-destructive-foreground`,children:s},void 0,!1,{fileName:JI,lineNumber:86,columnNumber:21},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:n||d,title:d?`Annotation exceeds the backend body limit.`:void 0,onClick:()=>void f(),children:`Save annotation`},void 0,!1,{fileName:JI,lineNumber:88,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:i,children:`Cancel annotation`},void 0,!1,{fileName:JI,lineNumber:89,columnNumber:9},this)]},void 0,!0,{fileName:JI,lineNumber:87,columnNumber:7},this)]},void 0,!0,{fileName:JI,lineNumber:64,columnNumber:5},this),document.body)}var eL=1600;function tL(e){let t=e instanceof Error?e.message:String(e);return/no revision session|not found|missing revision session|does not exist/i.test(t)}function nL({session:e,onApply:t,onRefresh:n,autoLoadExisting:r=!1}){let i=$n(),[a,o]=w.useState(null),[s,c]=w.useState(!1),[l,u]=w.useState(!1),[d,f]=w.useState(!1),p=w.useRef(new Set),m=w.useRef(new Set),h=w.useRef(new Set),g=w.useRef(0),_=w.useRef(e);_.current=e;let v=w.useCallback(e=>e.targetSession===_.current?(g.current+=1,o(e),c(!0),e):e,[]);w.useEffect(()=>{o(null),c(!1),u(!1),f(!1),p.current=new Set,m.current=new Set,h.current=new Set,g.current=0},[e]);let y=w.useCallback(async()=>{u(!0);try{return v(await sw().invokeAction(`get-plan-revision-session`,{session:e,includePlan:!1}))}catch(e){return tL(e)||i.push(e instanceof Error?e.message:String(e),`error`),null}finally{u(!1)}},[e,v,i]);w.useEffect(()=>{r&&y()},[r,y]);let b=w.useCallback(async()=>{if(a?.targetSession===e)return a;u(!0);try{return v(await sw().invokeAction(`start-plan-revision-session`,{session:e}))}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{u(!1)}},[a,e,v,i]),x=w.useCallback(async(t={})=>{if(!s&&!a)return null;u(!0);try{return v(await sw().invokeAction(`get-plan-revision-session`,{session:e,includePlan:t.includePlan===!0}))}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{u(!1)}},[s,a,e,v,i]),S=w.useCallback(async t=>{let n=t.trim();if(!n||!await b())return null;f(!0);try{let t=await sw().invokeAction(`start-plan-revision-turn`,{session:e,message:n});return v(t.session)}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[b,e,v,i]),C=w.useCallback(async(t,n,r)=>{f(!0);try{let a=await sw().invokeAction(t,{session:e,...n}),o=v(a);return i.push(r,`success`),o}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[e,v,i]),T=w.useCallback(async(e,t)=>{let n={target:e,...t?.trim()&&{body:t.trim()}};return C(`create-plan-revision-annotation`,n,`Created plan annotation.`)},[C]),ee=w.useCallback(async(t,n)=>{let r={target:t,...n?.trim()&&{body:n.trim()}};f(!0);try{let t=await sw().invokeAction(`create-plan-revision-annotation`,{session:e,...r}),n=v(t);return i.push(`Created plan annotation.`,`success`),{session:n,error:null}}catch(e){let t=e instanceof Error?e.message:String(e);return i.push(t,`error`),{session:null,error:t}}finally{f(!1)}},[e,v,i]),E=w.useCallback(e=>C(`update-plan-revision-annotation`,{annotationId:e.annotationId,body:e.body},`Updated plan annotation.`),[C]),D=w.useCallback(e=>C(`delete-plan-revision-annotation`,{annotationId:e},`Deleted plan annotation.`),[C]),te=w.useCallback(e=>C(`resolve-plan-revision-annotation`,{annotationId:e},`Resolved plan annotation.`),[C]),O=w.useCallback(e=>C(`dismiss-plan-revision-annotation`,{annotationId:e},`Dismissed plan annotation.`),[C]),ne=w.useCallback(async t=>{if(!(a?.targetSession===e?a:await b()))return null;f(!0);try{let n=t.steering?.trim(),r=t.annotationIds??[],i=await sw().invokeAction(`start-plan-revision-turn`,{session:e,...r.length>0&&{annotationIds:r},includeOpenAnnotations:t.includeOpenAnnotations===!0,...n&&{steering:n}});return v(i.session)}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[b,a,e,v,i]),k=w.useCallback(async t=>{f(!0);try{v(await sw().invokeAction(`cancel-plan-revision-turn`,{session:e,turnId:t.turnId}))}catch(e){i.push(e instanceof Error?e.message:String(e),`error`)}finally{f(!1)}},[e,v,i]),A=w.useCallback(async t=>{f(!0);try{v((await sw().invokeAction(`retry-plan-revision-turn`,{session:e,turnId:t.turnId})).session)}catch(e){i.push(e instanceof Error?e.message:String(e),`error`)}finally{f(!1)}},[e,v,i]),re=w.useCallback(async(t,n,r)=>{let a=n.filter(e=>e.answer.trim().length>0).map(e=>({...e,answer:e.answer.trim()})),o=r?.trim();if(!(a.length===0&&!o)){f(!0);try{v((await sw().invokeAction(`retry-plan-revision-turn`,{session:e,turnId:t.turnId,...a.length>0&&{answers:a},...o&&{steering:o}})).session)}catch(e){i.push(e instanceof Error?e.message:String(e),`error`)}finally{f(!1)}}},[e,v,i]),ie=w.useCallback(async r=>{f(!0);try{let a=await sw().invokeAction(`apply-plan-revision-turn`,{session:e,turnId:r.turnId});return a.kind===`applied`?(t({plan:a.plan,readiness:a.readiness}),await n(),await x({includePlan:!0}),i.push(`Applied AI plan revision.`,`success`)):i.push(a.message,`error`),a}catch(e){return i.push(e instanceof Error?e.message:String(e),`error`),null}finally{f(!1)}},[t,n,x,e,i]),j=uj(a?.turns??[]);return w.useEffect(()=>{if(!s||!j)return;let e=window.setInterval(()=>{x()},eL);return()=>window.clearInterval(e)},[j,s,x]),w.useEffect(()=>{let e=g.current;for(let t of a?.turns??[]){let n=`${e}:${t.turnId}`;t.appliedAt||p.current.has(t.turnId)||m.current.has(t.turnId)||h.current.has(n)||sj(t)===`patch`&&(h.current.add(n),m.current.add(t.turnId),ie(t).then(e=>{e?.kind===`applied`&&p.current.add(t.turnId)}).finally(()=>{m.current.delete(t.turnId)}))}},[a,ie]),{revisionSession:a,loading:l,busy:d,initialized:s,hasRunningTurn:j,loadExistingSession:y,ensureSession:b,reload:x,submit:S,createAnnotation:T,createAnnotationWithError:ee,updateAnnotation:E,deleteAnnotation:D,resolveAnnotation:te,dismissAnnotation:O,submitAnnotationRevision:ne,cancel:k,retry:A,redraft:re,apply:ie}}var rL=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-detail-workspace.tsx`;function iL({detail:e,artifact:t,titles:n,onApply:r,onRefresh:i,onHandoff:a,onDeleted:o,onClose:s}){let c=e.plan,l=nL({session:c.session,onApply:r,onRefresh:i,autoLoadExisting:!0}),[u,d]=w.useState(null);w.useEffect(()=>{d(null)},[c.session]);let f=w.useCallback((e,t)=>{d({target:e,anchor:t??null})},[]),p=w.useCallback(async e=>{if(!u||l.hasRunningTurn)return{ok:!1,error:`A revision is already running. Try again after it finishes.`};let t=await l.createAnnotationWithError(u.target,e.trim());return t.session&&d(null),{ok:!!t.session,error:t.error??void 0}},[u,l]);return(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`section`,{className:`min-w-0`,children:(0,I.jsxDEV)(UI,{detail:e,artifact:t,revision:l,locked:l.hasRunningTurn,onSelectAnnotationTarget:f,onApply:r,onRefresh:i,onHandoff:a,onDeleted:o,onClose:s},void 0,!1,{fileName:rL,lineNumber:46,columnNumber:9},this)},void 0,!1,{fileName:rL,lineNumber:45,columnNumber:7},this),(0,I.jsxDEV)(`aside`,{className:`grid min-w-0 content-start gap-3 lg:sticky lg:top-[5.5rem]`,children:(0,I.jsxDEV)(qj,{artifact:t,titles:n,plan:c,revision:l},void 0,!1,{fileName:rL,lineNumber:49,columnNumber:9},this)},void 0,!1,{fileName:rL,lineNumber:48,columnNumber:7},this),u&&(0,I.jsxDEV)($I,{target:u.target,anchor:u.anchor,busy:l.busy||l.loading||l.hasRunningTurn,onSave:p,onCancel:()=>d(null)},void 0,!1,{fileName:rL,lineNumber:52,columnNumber:9},this)]},void 0,!0,{fileName:rL,lineNumber:44,columnNumber:5},this)}var aL=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/plan-set-detail.tsx`;function oL({detail:e}){let t=e.planSet,n=t?.children??[],r=t?.strategy??`sequential`,i=e.validation?.diagnostics??t?.diagnostics??[],a=e.validation?.ok??i.length===0;return(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{children:t?.title??t?.id??`Plan set`},void 0,!1,{fileName:aL,lineNumber:24,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:e.manifestPath},void 0,!1,{fileName:aL,lineNumber:25,columnNumber:11},this)]},void 0,!0,{fileName:aL,lineNumber:23,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[t?.status&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:t.status},void 0,!1,{fileName:aL,lineNumber:28,columnNumber:31},this),(0,I.jsxDEV)(Tn,{variant:`secondary`,children:[(0,I.jsxDEV)(ye,{className:`mr-1 h-3.5 w-3.5`},void 0,!1,{fileName:aL,lineNumber:29,columnNumber:38},this),` `,r]},void 0,!0,{fileName:aL,lineNumber:29,columnNumber:11},this),(0,I.jsxDEV)(Tn,{variant:a?`default`:`destructive`,children:a?`valid`:`${i.length} issue(s)`},void 0,!1,{fileName:aL,lineNumber:30,columnNumber:11},this)]},void 0,!0,{fileName:aL,lineNumber:27,columnNumber:9},this)]},void 0,!0,{fileName:aL,lineNumber:22,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3 text-sm`,children:[n.length===0?(0,I.jsxDEV)(`p`,{className:`text-muted-foreground`,children:`This plan set has no children.`},void 0,!1,{fileName:aL,lineNumber:35,columnNumber:13},this):(0,I.jsxDEV)(sL,{children:n,strategy:r},void 0,!1,{fileName:aL,lineNumber:36,columnNumber:13},this),i.length>0&&(0,I.jsxDEV)(lL,{diagnostics:i},void 0,!1,{fileName:aL,lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:aL,lineNumber:33,columnNumber:7},this)]},void 0,!0,{fileName:aL,lineNumber:21,columnNumber:5},this)}function sL({children:e,strategy:t}){return t===`parallel`?(0,I.jsxDEV)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:e.map(e=>(0,I.jsxDEV)(cL,{child:e},e.id,!1,{fileName:aL,lineNumber:47,columnNumber:34},this))},void 0,!1,{fileName:aL,lineNumber:46,columnNumber:7},this):(0,I.jsxDEV)(`ol`,{className:`grid gap-2`,children:e.map((e,n)=>(0,I.jsxDEV)(`li`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`mt-1 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full border text-2xs text-muted-foreground`,children:n+1},void 0,!1,{fileName:aL,lineNumber:57,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,I.jsxDEV)(cL,{child:e,showDeps:t===`dag`},void 0,!1,{fileName:aL,lineNumber:58,columnNumber:43},this)},void 0,!1,{fileName:aL,lineNumber:58,columnNumber:11},this)]},e.id,!0,{fileName:aL,lineNumber:56,columnNumber:9},this))},void 0,!1,{fileName:aL,lineNumber:54,columnNumber:5},this)}function cL({child:e,showDeps:t}){let n=e.dependsOn??[];return(0,I.jsxDEV)(`div`,{className:`rounded-md border bg-card p-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[e.validation?.ok??!0?(0,I.jsxDEV)(se,{className:`h-4 w-4 text-[color:var(--lane-ready)]`},void 0,!1,{fileName:aL,lineNumber:72,columnNumber:13},this):(0,I.jsxDEV)(ze,{className:`h-4 w-4 text-[color:var(--lane-blocked)]`},void 0,!1,{fileName:aL,lineNumber:73,columnNumber:13},this),(0,I.jsxDEV)(`strong`,{className:`truncate text-text-bright`,children:e.id},void 0,!1,{fileName:aL,lineNumber:74,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`ml-auto flex flex-wrap gap-1`,children:[(0,I.jsxDEV)(Tn,{variant:`outline`,children:e.status},void 0,!1,{fileName:aL,lineNumber:76,columnNumber:11},this),e.kind&&e.kind!==`plan`&&(0,I.jsxDEV)(Tn,{variant:`secondary`,children:e.kind},void 0,!1,{fileName:aL,lineNumber:77,columnNumber:51},this),e.buildable===!1&&(0,I.jsxDEV)(Tn,{variant:`outline`,children:`not buildable`},void 0,!1,{fileName:aL,lineNumber:78,columnNumber:41},this),e.exists===!1&&(0,I.jsxDEV)(Tn,{variant:`destructive`,children:`missing file`},void 0,!1,{fileName:aL,lineNumber:79,columnNumber:38},this)]},void 0,!0,{fileName:aL,lineNumber:75,columnNumber:9},this)]},void 0,!0,{fileName:aL,lineNumber:70,columnNumber:7},this),e.file&&(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate text-2xs text-muted-foreground`,children:e.file},void 0,!1,{fileName:aL,lineNumber:82,columnNumber:22},this),t&&n.length>0&&(0,I.jsxDEV)(`p`,{className:`mt-1 flex flex-wrap items-baseline gap-1 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:`Depends on`},void 0,!1,{fileName:aL,lineNumber:85,columnNumber:11},this),n.map(e=>(0,I.jsxDEV)(`code`,{className:`rounded border border-border px-1 text-2xs`,children:e},e,!1,{fileName:aL,lineNumber:86,columnNumber:35},this))]},void 0,!0,{fileName:aL,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:aL,lineNumber:69,columnNumber:5},this)}function lL({diagnostics:e}){return(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Validation`},void 0,!1,{fileName:aL,lineNumber:96,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`rounded border border-[color:var(--lane-blocked)]/40 bg-background p-2 text-xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(ze,{className:`h-3.5 w-3.5 text-[color:var(--lane-blocked)]`},void 0,!1,{fileName:aL,lineNumber:101,columnNumber:15},this),(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:e.message},void 0,!1,{fileName:aL,lineNumber:102,columnNumber:15},this),e.code&&(0,I.jsxDEV)(`span`,{className:`ml-auto text-2xs uppercase tracking-wide text-muted-foreground`,children:e.code},void 0,!1,{fileName:aL,lineNumber:103,columnNumber:35},this)]},void 0,!0,{fileName:aL,lineNumber:100,columnNumber:13},this),(e.childId||e.file)&&(0,I.jsxDEV)(`code`,{className:`mt-0.5 block truncate text-2xs text-muted-foreground`,children:e.childId??e.file},void 0,!1,{fileName:aL,lineNumber:106,columnNumber:15},this)]},t,!0,{fileName:aL,lineNumber:99,columnNumber:11},this))},void 0,!1,{fileName:aL,lineNumber:97,columnNumber:7},this)]},void 0,!0,{fileName:aL,lineNumber:95,columnNumber:5},this)}var uL=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-unit-advisory.tsx`;function dL({advisory:e,className:t=``}){let n=e.severity===`caution`,r=n?ze:se,i=n?`var(--prio-medium)`:`var(--lane-done)`;return(0,I.jsxDEV)(`div`,{className:`rounded-md border p-2 ${t}`,style:{borderColor:`color-mix(in srgb, ${i} 40%, transparent)`,background:`color-mix(in srgb, ${i} 8%, transparent)`},role:`status`,"aria-live":`polite`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-2xs font-semibold uppercase tracking-wide`,style:{color:i},children:[(0,I.jsxDEV)(r,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:uL,lineNumber:17,columnNumber:9},this),` `,n?`Dependency caution`:`Dependencies look consistent`]},void 0,!0,{fileName:uL,lineNumber:16,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1 text-xs text-muted-foreground`,children:e.findings.map((e,t)=>(0,I.jsxDEV)(`li`,{children:e.message},`${e.code}-${t}`,!1,{fileName:uL,lineNumber:21,columnNumber:11},this))},void 0,!1,{fileName:uL,lineNumber:19,columnNumber:7},this)]},void 0,!0,{fileName:uL,lineNumber:15,columnNumber:5},this)}var fL=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-unit-split-panel.tsx`;function pL({unit:e,titles:t,onAdvise:n,onSplit:r,onClose:i,onOpenUnit:a}){let o=$n(),[s,c]=w.useState(new Set),[l,u]=w.useState(``),[d,f]=w.useState(null),[p,m]=w.useState(!1),h=e=>t.get(e)??e;cA(i,!p);let g=w.useMemo(()=>e.items.filter(e=>s.has(e.itemId)).map(e=>e.itemId),[e.items,s]),_=g.length>0&&g.length<e.items.length;w.useEffect(()=>{if(!_){f(null);return}let t=!0;return n(e.unitId,g).then(e=>{t&&f(e)}).catch(()=>{t&&f(null)}),()=>{t=!1}},[_,g,e.unitId,n]);let v=e=>c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border border-dashed border-border p-3`,"aria-label":`Split draft unit`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,I.jsxDEV)(Pe,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:fL,lineNumber:64,columnNumber:9},this),` Split into a new unit`,(0,I.jsxDEV)(L,{variant:`ghost`,size:`icon-xs`,className:`ml-auto`,"aria-label":`Close split panel`,disabled:p,onClick:i,children:(0,I.jsxDEV)(Ve,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:fL,lineNumber:65,columnNumber:133},this)},void 0,!1,{fileName:fL,lineNumber:65,columnNumber:9},this)]},void 0,!0,{fileName:fL,lineNumber:63,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Pick the items to peel off. The original keeps the rest; both sides must keep at least one item.`},void 0,!1,{fileName:fL,lineNumber:67,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:e.items.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`label`,{className:`flex items-center gap-2 rounded border border-border p-1.5 text-xs`,children:[(0,I.jsxDEV)(qA,{disabled:p,checked:s.has(e.itemId),onChange:()=>v(e.itemId)},void 0,!1,{fileName:fL,lineNumber:72,columnNumber:15},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:h(e.itemId)},void 0,!1,{fileName:fL,lineNumber:73,columnNumber:15},this)]},void 0,!0,{fileName:fL,lineNumber:71,columnNumber:13},this)},e.itemId,!1,{fileName:fL,lineNumber:70,columnNumber:11},this))},void 0,!1,{fileName:fL,lineNumber:68,columnNumber:7},this),(0,I.jsxDEV)(Tk,{value:l,disabled:p,className:`h-8 text-xs`,placeholder:`Title for the new unit`,onChange:e=>u(e.target.value)},void 0,!1,{fileName:fL,lineNumber:78,columnNumber:7},this),d&&(0,I.jsxDEV)(dL,{advisory:d},void 0,!1,{fileName:fL,lineNumber:79,columnNumber:20},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,disabled:p||!_||!l.trim(),onClick:()=>{!_||!l.trim()||(m(!0),r({unitId:e.unitId,itemIds:g,title:l.trim()}).then(e=>{o.push(`Split ${g.length} item${g.length===1?``:`s`} into “${e.created.title}”.`,`success`),i(),a?.(sT(e.created.unitId))}).catch(e=>o.push(e instanceof Error?e.message:String(e),`error`)).finally(()=>m(!1)))},title:_?`Split off the selected items.`:`Keep at least one item on each side.`,children:[p?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:fL,lineNumber:82,columnNumber:19},this):(0,I.jsxDEV)(Pe,{className:`h-4 w-4`},void 0,!1,{fileName:fL,lineNumber:82,columnNumber:33},this),` Split off `,g.length||``,` `,g.length===1?`item`:`items`]},void 0,!0,{fileName:fL,lineNumber:81,columnNumber:9},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:p,onClick:i,children:`Cancel`},void 0,!1,{fileName:fL,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:fL,lineNumber:80,columnNumber:7},this)]},void 0,!0,{fileName:fL,lineNumber:62,columnNumber:5},this)}var Y=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-unit-detail.tsx`;function mL({unit:e,titles:t,onUpdate:n,onDelete:r,onPromote:i,onSplit:a,onAdviseSplit:o,onOpenItem:s,onOpenPlan:c}){let l=$n(),[u,d]=w.useState(!1),[f,p]=w.useState(!1),[m,h]=w.useState(!1),g=e.status===`promoted`,_=!!(a&&o)&&!g&&e.items.length>=2,v=e.promotedSession,y=e=>t.get(e)??e,b=w.useMemo(()=>{let n=new Set(e.items.map(e=>e.itemId));return Array.from(t.entries()).filter(([e])=>!n.has(e)).map(([e,t])=>({id:e,title:t}))},[t,e.items]),x=w.useCallback(async e=>{d(!0);try{await e()}catch(e){l.push(e instanceof Error?e.message:String(e),`error`)}finally{d(!1)}},[l]),S=(t,r)=>{if(u||g)return;let i=[...e.items],a=t+r;a<0||a>=i.length||([i[t],i[a]]=[i[a],i[t]],x(()=>n({unitId:e.unitId,itemOrder:i.map(e=>e.itemId)})))};return(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(me,{className:`h-4 w-4 text-[color:var(--lane-progress)]`},void 0,!1,{fileName:Y,lineNumber:80,columnNumber:11},this),(0,I.jsxDEV)(UO,{className:`text-base`,children:`Draft plan unit`},void 0,!1,{fileName:Y,lineNumber:81,columnNumber:11},this),(0,I.jsxDEV)(Tn,{variant:e.provenance===`recommendation`?`secondary`:`outline`,children:e.provenance===`recommendation`?`from a lane`:`user-authored`},void 0,!1,{fileName:Y,lineNumber:82,columnNumber:11},this),(0,I.jsxDEV)(Tn,{variant:g?`default`:`outline`,className:`capitalize`,children:e.status},void 0,!1,{fileName:Y,lineNumber:85,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:79,columnNumber:9},this),(0,I.jsxDEV)(WO,{children:g?v?(0,I.jsxDEV)(I.Fragment,{children:[`Promoted to `,(0,I.jsxDEV)(`button`,{type:`button`,className:`underline`,onClick:()=>c?.(cT(v)),children:v},void 0,!1,{fileName:Y,lineNumber:90,columnNumber:31},this),`. This draft is now read-only.`]},void 0,!0,{fileName:Y,lineNumber:90,columnNumber:17},this):(0,I.jsxDEV)(I.Fragment,{children:`Promoted to a session plan. This draft is now read-only.`},void 0,!1,{fileName:Y,lineNumber:91,columnNumber:17},this):`Curate the grouping and intent, then promote into a session plan.`},void 0,!1,{fileName:Y,lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:78,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-4`,children:[(0,I.jsxDEV)(gL,{label:`Title`,children:(0,I.jsxDEV)(Tk,{defaultValue:e.title,disabled:u||g,onBlur:t=>{let r=t.target.value.trim();r&&r!==e.title&&x(()=>n({unitId:e.unitId,title:r}))}},void 0,!1,{fileName:Y,lineNumber:98,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:97,columnNumber:9},this),(0,I.jsxDEV)(gL,{label:`Intent`,children:(0,I.jsxDEV)(YO,{defaultValue:e.intent??``,disabled:u||g,className:`min-h-20 text-xs`,placeholder:`Why these items belong together (grouping rationale, not scope).`,onBlur:t=>{let r=t.target.value;r!==(e.intent??``)&&x(()=>n({unitId:e.unitId,intent:r}))}},void 0,!1,{fileName:Y,lineNumber:106,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:105,columnNumber:9},this),(0,I.jsxDEV)(gL,{label:`Profile`,children:(0,I.jsxDEV)(mA,{value:e.profile??``,disabled:u||g,onChange:t=>void x(()=>n({unitId:e.unitId,profile:t.target.value})),children:[(0,I.jsxDEV)(`option`,{value:``,children:`none`},void 0,!1,{fileName:Y,lineNumber:121,columnNumber:13},this),nC.map(e=>(0,I.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:Y,lineNumber:122,columnNumber:47},this))]},void 0,!0,{fileName:Y,lineNumber:116,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:115,columnNumber:9},this),(0,I.jsxDEV)(`section`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:[`Items (`,e.items.length,`)`]},void 0,!0,{fileName:Y,lineNumber:128,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[e.sourceRecommendationRef&&(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:[`lane: `,e.sourceRecommendationRef]},void 0,!0,{fileName:Y,lineNumber:130,columnNumber:48},this),!g&&(0,I.jsxDEV)(L,{size:`xs`,variant:`ghost`,disabled:u,"aria-expanded":f,onClick:()=>p(e=>!e),children:[(0,I.jsxDEV)(ke,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:133,columnNumber:19},this),` Add items`]},void 0,!0,{fileName:Y,lineNumber:132,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:129,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:127,columnNumber:11},this),f&&!g&&(0,I.jsxDEV)(hL,{candidates:b,disabled:u,onAdd:t=>void x(()=>n({unitId:e.unitId,addItemIds:[t]}))},void 0,!1,{fileName:Y,lineNumber:139,columnNumber:13},this),e.items.length===0?(0,I.jsxDEV)(Ck,{className:`p-3 text-xs`,children:`No items. Remove leaves nothing to promote.`},void 0,!1,{fileName:Y,lineNumber:142,columnNumber:15},this):(0,I.jsxDEV)(`ul`,{className:`grid gap-1`,children:e.items.map((t,r)=>(0,I.jsxDEV)(`li`,{className:`flex items-center gap-2 rounded-md border border-border p-2`,children:[(0,I.jsxDEV)(`button`,{type:`button`,className:`min-w-0 flex-1 truncate text-left text-xs text-text-bright hover:underline`,title:t.itemId,onClick:()=>s?.(t.itemId),children:y(t.itemId)},void 0,!1,{fileName:Y,lineNumber:146,columnNumber:21},this),(0,I.jsxDEV)(Tn,{variant:t.origin===`recommendation`?`secondary`:`outline`,className:`shrink-0 text-2xs`,children:t.origin===`recommendation`?`AI`:`you`},void 0,!1,{fileName:Y,lineNumber:149,columnNumber:21},this),!g&&(0,I.jsxDEV)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,disabled:u||r===0,title:`Move up`,onClick:()=>S(r,-1),children:(0,I.jsxDEV)(k,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:146},this)},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:25},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,disabled:u||r===e.items.length-1,title:`Move down`,onClick:()=>S(r,1),children:(0,I.jsxDEV)(O,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:153,columnNumber:167},this)},void 0,!1,{fileName:Y,lineNumber:153,columnNumber:25},this),(0,I.jsxDEV)(L,{size:`icon-xs`,variant:`ghost`,className:`text-[color:var(--lane-blocked)]`,disabled:u,title:`Remove from unit`,onClick:()=>void x(()=>n({unitId:e.unitId,removeItemIds:[t.itemId]})),children:(0,I.jsxDEV)(Ve,{className:`h-3 w-3`},void 0,!1,{fileName:Y,lineNumber:154,columnNumber:246},this)},void 0,!1,{fileName:Y,lineNumber:154,columnNumber:25},this)]},void 0,!0,{fileName:Y,lineNumber:151,columnNumber:23},this)]},t.itemId,!0,{fileName:Y,lineNumber:145,columnNumber:19},this))},void 0,!1,{fileName:Y,lineNumber:143,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:126,columnNumber:9},this),m&&_&&a&&o&&(0,I.jsxDEV)(pL,{unit:e,titles:t,onAdvise:o,onSplit:a,onClose:()=>h(!1),onOpenUnit:c},void 0,!1,{fileName:Y,lineNumber:163,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 border-t pt-3`,children:[(0,I.jsxDEV)(L,{disabled:u||g||e.items.length===0,onClick:()=>x(async()=>{let t=await i(e.unitId);l.push(`Promoted to ${t.promotion.session}.`,`success`),c?.(cT(t.promotion.session))}),title:e.items.length===0?`Add at least one item before promoting.`:`Promote plan-first into a session plan.`,children:[u?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:Y,lineNumber:168,columnNumber:21},this):(0,I.jsxDEV)(je,{className:`h-4 w-4`},void 0,!1,{fileName:Y,lineNumber:168,columnNumber:35},this),` Promote to a build plan`]},void 0,!0,{fileName:Y,lineNumber:167,columnNumber:11},this),_&&(0,I.jsxDEV)(L,{variant:`outline`,disabled:u,"aria-expanded":m,onClick:()=>h(e=>!e),title:`Split this unit's items into two units.`,children:[(0,I.jsxDEV)(Pe,{className:`h-4 w-4`},void 0,!1,{fileName:Y,lineNumber:172,columnNumber:15},this),` Split`]},void 0,!0,{fileName:Y,lineNumber:171,columnNumber:13},this),(0,I.jsxDEV)(L,{variant:`ghost`,className:`text-[color:var(--lane-blocked)]`,disabled:u,onClick:()=>void x(()=>r(e.unitId)),children:[(0,I.jsxDEV)(Re,{className:`h-4 w-4`},void 0,!1,{fileName:Y,lineNumber:176,columnNumber:13},this),` Delete`]},void 0,!0,{fileName:Y,lineNumber:175,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:166,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:96,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:77,columnNumber:5},this)}function hL({candidates:e,disabled:t,onAdd:n}){let[r,i]=w.useState(``),a=w.useMemo(()=>{let t=r.trim().toLowerCase();return(t?e.filter(e=>e.title.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)):e).slice(0,50)},[e,r]);return(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border border-dashed border-border p-2`,children:e.length===0?(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Every board item is already in this unit.`},void 0,!1,{fileName:Y,lineNumber:206,columnNumber:9},this):(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(Tk,{value:r,disabled:t,className:`h-8 text-xs`,placeholder:`Search board items to add…`,onChange:e=>i(e.target.value)},void 0,!1,{fileName:Y,lineNumber:209,columnNumber:11},this),a.length===0?(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:[`No board items match “`,r,`”.`]},void 0,!0,{fileName:Y,lineNumber:211,columnNumber:13},this):(0,I.jsxDEV)(`ul`,{className:`grid max-h-48 gap-1 overflow-auto`,children:a.map(e=>(0,I.jsxDEV)(`li`,{children:(0,I.jsxDEV)(`button`,{type:`button`,disabled:t,title:e.id,onClick:()=>n(e.id),className:`flex w-full items-center gap-2 rounded border border-border p-1.5 text-left text-xs hover:border-primary disabled:opacity-50`,children:[(0,I.jsxDEV)(ke,{className:`h-3 w-3 shrink-0 text-muted-foreground`},void 0,!1,{fileName:Y,lineNumber:223,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:e.title},void 0,!1,{fileName:Y,lineNumber:224,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:216,columnNumber:19},this)},e.id,!1,{fileName:Y,lineNumber:215,columnNumber:17},this))},void 0,!1,{fileName:Y,lineNumber:213,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:208,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:204,columnNumber:5},this)}function gL({label:e,children:t}){return(0,I.jsxDEV)(`label`,{className:`grid gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e},void 0,!1,{fileName:Y,lineNumber:239,columnNumber:7},this),t]},void 0,!0,{fileName:Y,lineNumber:238,columnNumber:5},this)}var _L=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans/draft-merge-panel.tsx`;function vL({units:e,onAdvise:t,onMerge:n,onClose:r,onOpenUnit:i}){let a=$n(),o=w.useMemo(()=>e.map(e=>e.unitId),[e]),[s,c]=w.useState(e[0]?.title??``),[l,u]=w.useState(null),[d,f]=w.useState(!1);return cA(r,!d),w.useEffect(()=>{let e=!0;return t(o).then(t=>{e&&u(t)}).catch(()=>{e&&u(null)}),()=>{e=!1}},[o,t]),(0,I.jsxDEV)(VO,{"aria-label":`Merge ${o.length} draft units`,children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2 text-base`,children:[(0,I.jsxDEV)(ye,{className:`h-4 w-4`},void 0,!1,{fileName:_L,lineNumber:56,columnNumber:68},this),` Merge `,o.length,` draft units`]},void 0,!0,{fileName:_L,lineNumber:56,columnNumber:11},this),(0,I.jsxDEV)(WO,{children:`Combine the selected units into one. The originals are consumed; their items are pooled into the new unit.`},void 0,!1,{fileName:_L,lineNumber:57,columnNumber:11},this)]},void 0,!0,{fileName:_L,lineNumber:55,columnNumber:9},this),(0,I.jsxDEV)(L,{variant:`ghost`,size:`icon-xs`,"aria-label":`Close merge panel`,disabled:d,onClick:r,children:(0,I.jsxDEV)(Ve,{className:`h-4 w-4`},void 0,!1,{fileName:_L,lineNumber:59,columnNumber:113},this)},void 0,!1,{fileName:_L,lineNumber:59,columnNumber:9},this)]},void 0,!0,{fileName:_L,lineNumber:54,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:e.map(e=>(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2 rounded-md border border-border p-2 text-xs`,children:[(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-text-bright`,children:e.title},void 0,!1,{fileName:_L,lineNumber:65,columnNumber:15},this),(0,I.jsxDEV)(Tn,{variant:`outline`,className:`shrink-0 text-2xs`,children:[e.itemCount,` item`,e.itemCount===1?``:`s`]},void 0,!0,{fileName:_L,lineNumber:66,columnNumber:15},this)]},e.unitId,!0,{fileName:_L,lineNumber:64,columnNumber:13},this))},void 0,!1,{fileName:_L,lineNumber:62,columnNumber:9},this),(0,I.jsxDEV)(`label`,{className:`grid gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Merged unit title`},void 0,!1,{fileName:_L,lineNumber:71,columnNumber:11},this),(0,I.jsxDEV)(Tk,{value:s,disabled:d,onChange:e=>c(e.target.value)},void 0,!1,{fileName:_L,lineNumber:72,columnNumber:11},this)]},void 0,!0,{fileName:_L,lineNumber:70,columnNumber:9},this),l&&(0,I.jsxDEV)(dL,{advisory:l},void 0,!1,{fileName:_L,lineNumber:74,columnNumber:22},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 border-t pt-3`,children:[(0,I.jsxDEV)(L,{disabled:d||!s.trim(),onClick:()=>{s.trim()&&(f(!0),n({unitIds:o,title:s.trim()}).then(e=>{a.push(`Merged ${o.length} units into “${e.unit.title}”.`,`success`),r(),i?.(sT(e.unit.unitId))}).catch(e=>a.push(e instanceof Error?e.message:String(e),`error`)).finally(()=>f(!1)))},children:[d?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:_L,lineNumber:77,columnNumber:21},this):(0,I.jsxDEV)(ye,{className:`h-4 w-4`},void 0,!1,{fileName:_L,lineNumber:77,columnNumber:35},this),` Merge units`]},void 0,!0,{fileName:_L,lineNumber:76,columnNumber:11},this),(0,I.jsxDEV)(L,{variant:`ghost`,disabled:d,onClick:r,children:`Cancel`},void 0,!1,{fileName:_L,lineNumber:79,columnNumber:11},this)]},void 0,!0,{fileName:_L,lineNumber:75,columnNumber:9},this)]},void 0,!0,{fileName:_L,lineNumber:61,columnNumber:7},this)]},void 0,!0,{fileName:_L,lineNumber:53,columnNumber:5},this)}var X=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/plans-view.tsx`,yL=sw();function bL({artifacts:e,draftUnits:t,titles:n,onRefresh:r,onUpdateDraftUnit:i,onDeleteDraftUnit:a,onPromoteDraftUnit:o,onMergeDraftUnits:s,onSplitDraftUnit:c,onAdviseMergeDraftUnits:l,onAdviseSplitDraftUnit:u}){let d=qx(),f=$n(),p=hT(),m=d.query.get(`plan`)??``,h=w.useCallback(e=>{d.setQuery(t=>{e?t.set(`plan`,e):t.delete(`plan`)})},[d]),[g,_]=w.useState(!1),[v,y]=w.useState(new Set),[b,x]=w.useState(!1),S=w.useMemo(()=>t.filter(e=>e.status===`draft`).length,[t]),C=w.useCallback(e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),T=w.useCallback(()=>{_(!1),x(!1),y(new Set)},[]),ee=w.useMemo(()=>t.filter(e=>v.has(e.unitId)),[t,v]),E=lT(m),D=E===null?null:t.find(e=>e.unitId===E)??null,[te,O]=w.useState(null),ne=te?.unitId===E?te:null,k=E!==null&&D===null,[A,re]=w.useState(null),[ie,j]=w.useState(!1),[ae,oe]=w.useState({}),se=w.useMemo(()=>new Set(Object.values(ae).filter(e=>e.status===`pending`).map(e=>e.session)),[ae]),ce=w.useMemo(()=>e.filter(e=>!e.session||!se.has(e.session)),[e,se]);w.useEffect(()=>{oe(t=>{let n=!1,r={...t};for(let[i,a]of Object.entries(t)){if(a.status!==`pending`)continue;let t=e.find(e=>e.session===a.session);(!t||t.status===`submitted`)&&(delete r[i],n=!0)}return n?r:t})},[e]),w.useEffect(()=>{if(E===null||D===null){O(null);return}let e=!0;return yL.invokeAction(`get-draft-unit`,{unitId:E}).then(t=>{e&&O(t.unit)}).catch(()=>{e&&O(null)}),()=>{e=!1}},[E,D]),w.useEffect(()=>{if(!m||lT(m)!==null){re(null);return}let t=e.find(e=>e.key===m),n=!0;return(async()=>{try{let e=t?.kind===`plan-set`?await yL.invokeAction(`show-session-plan-set`,{planSetId:t.planSetId??``}):await yL.invokeAction(`show-session-plan`,{session:t?.session??m.replace(/^plan:/,``)});n&&re(e)}catch(e){n&&f.push(e instanceof Error?e.message:String(e),`error`)}})(),()=>{n=!1}},[m,e,f]);let le=w.useCallback(e=>{re(t=>EL(t)?{...t,plan:e.plan??t.plan,readiness:e.readiness??t.readiness}:t)},[]),ue=e.find(e=>e.key===m)??null,de=w.useCallback(async t=>{let n=e.find(e=>e.session===t)??ue,i=n?.key??`plan:${t}`,a=n?TL(n):rT(void 0,t);oe(e=>({...e,[i]:{id:i,session:t,title:a,status:`pending`,message:`Handoff is enqueueing in the background…`}})),m===i&&(re(null),h(``));let o;try{o=await yL.invokeAction(`handoff-session-plan`,{session:t})}catch(e){let n=e instanceof Error?e.message:String(e);oe(e=>({...e,[i]:{id:i,session:t,title:a,status:`failed`,message:`${n||`Handoff failed.`} Retry from the restored plan row or enqueue the session plan manually.`}})),f.push(n,`error`);try{await r()}catch(e){f.push(e instanceof Error?e.message:String(e),`error`)}return}if(o.kind===`not-ready`||o.kind===`enqueue-failed`){let e=o.message??o.command??`Handoff failed. The plan remains ready; retry handoff or enqueue it manually.`;oe(n=>({...n,[i]:{id:i,session:t,title:a,status:`failed`,message:e}})),f.push(e,`error`);try{await r()}catch(e){f.push(e instanceof Error?e.message:String(e),`error`)}return}f.push(o.message??o.command??`Handoff prepared.`,`success`);try{await r()}catch(e){f.push(e instanceof Error?e.message:String(e),`error`)}},[e,r,h,ue,m,f]);return(0,I.jsxDEV)(`div`,{className:`grid gap-4 lg:grid-cols-[22rem_minmax(0,1fr)_20rem] lg:items-start`,children:[(0,I.jsxDEV)(`aside`,{className:`grid content-start gap-4`,children:[(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{className:`flex-row items-start justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(UO,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(me,{className:`h-4 w-4`},void 0,!1,{fileName:X,lineNumber:171,columnNumber:62},this),` Plans`]},void 0,!0,{fileName:X,lineNumber:171,columnNumber:15},this),(0,I.jsxDEV)(WO,{children:`Session plans and plan sets.`},void 0,!1,{fileName:X,lineNumber:172,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:170,columnNumber:13},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,onClick:()=>j(e=>!e),children:[(0,I.jsxDEV)(ke,{className:`h-4 w-4`},void 0,!1,{fileName:X,lineNumber:174,columnNumber:96},this),` New`]},void 0,!0,{fileName:X,lineNumber:174,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:169,columnNumber:11},this),(0,I.jsxDEV)(GO,{className:`grid gap-2`,children:[ie&&(0,I.jsxDEV)(SL,{onClose:()=>j(!1),onCreated:r},void 0,!1,{fileName:X,lineNumber:177,columnNumber:26},this),t.length>0&&(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Drafts`},void 0,!1,{fileName:X,lineNumber:181,columnNumber:19},this),S>=2&&(g?(0,I.jsxDEV)(`button`,{type:`button`,className:`text-2xs text-muted-foreground hover:text-foreground`,onClick:T,children:`Cancel`},void 0,!1,{fileName:X,lineNumber:184,columnNumber:25},this):(0,I.jsxDEV)(`button`,{type:`button`,className:`inline-flex items-center gap-0.5 text-2xs text-muted-foreground hover:text-foreground`,onClick:()=>_(!0),title:`Select draft units to merge`,children:[(0,I.jsxDEV)(ye,{className:`h-3 w-3`},void 0,!1,{fileName:X,lineNumber:185,columnNumber:216},this),` Merge`]},void 0,!0,{fileName:X,lineNumber:185,columnNumber:25},this))]},void 0,!0,{fileName:X,lineNumber:180,columnNumber:17},this),t.map(e=>{let t=sT(e.unitId),n=v.has(e.unitId),r=g&&e.status===`draft`;return(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2 rounded-md border p-3 transition-colors hover:bg-accent ${m===t&&!g?`border-primary bg-accent`:n?`border-primary bg-primary/10`:`border-border`}`,children:[r&&(0,I.jsxDEV)(qA,{className:`mt-1`,checked:n,"aria-label":`Select ${e.title} to merge`,onChange:()=>C(e.unitId)},void 0,!1,{fileName:X,lineNumber:198,columnNumber:25},this),(0,I.jsxDEV)(`button`,{type:`button`,className:`min-w-0 flex-1 text-left`,onClick:()=>r?C(e.unitId):h(t),children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`truncate font-medium text-text-bright`,children:e.title},void 0,!1,{fileName:X,lineNumber:202,columnNumber:27},this),(0,I.jsxDEV)(Tn,{variant:e.status===`promoted`?`default`:`outline`,children:e.status},void 0,!1,{fileName:X,lineNumber:203,columnNumber:27},this)]},void 0,!0,{fileName:X,lineNumber:201,columnNumber:25},this),(0,I.jsxDEV)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[e.itemCount,` item`,e.itemCount===1?``:`s`,e.sourceRecommendationRef?` · ${e.sourceRecommendationRef}`:``]},void 0,!0,{fileName:X,lineNumber:205,columnNumber:25},this)]},void 0,!0,{fileName:X,lineNumber:200,columnNumber:23},this)]},t,!0,{fileName:X,lineNumber:193,columnNumber:21},this)}),g&&(0,I.jsxDEV)(L,{size:`sm`,disabled:v.size<2,onClick:()=>x(!0),title:v.size<2?`Select at least two draft units.`:`Review and confirm the merge.`,children:[(0,I.jsxDEV)(ye,{className:`h-4 w-4`},void 0,!1,{fileName:X,lineNumber:212,columnNumber:21},this),` Merge `,v.size||``,` selected`]},void 0,!0,{fileName:X,lineNumber:211,columnNumber:19},this),(0,I.jsxDEV)(`span`,{className:`mt-1 text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Plans`},void 0,!1,{fileName:X,lineNumber:215,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:179,columnNumber:15},this),ce.length===0?(0,I.jsxDEV)(Ck,{children:`No planning artifacts found.`},void 0,!1,{fileName:X,lineNumber:219,columnNumber:17},this):ce.map(e=>(0,I.jsxDEV)(`button`,{onClick:()=>h(e.key),className:`rounded-md border p-3 text-left transition-colors hover:bg-accent ${m===e.key?`border-primary bg-accent`:`border-border`}`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-text-bright`,children:TL(e)},void 0,!1,{fileName:X,lineNumber:227,columnNumber:21},this),(0,I.jsxDEV)(Tn,{variant:e.ready?`default`:`outline`,children:e.status??`unknown`},void 0,!1,{fileName:X,lineNumber:228,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:226,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:e.kind===`plan-set`?`${e.childCount??0} child plans`:e.session},void 0,!1,{fileName:X,lineNumber:231,columnNumber:21},this),(0,I.jsxDEV)(wL,{artifact:e},void 0,!1,{fileName:X,lineNumber:232,columnNumber:21},this),e.lifecycleState===`partial`&&e.partialReasons?.[0]&&(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:e.partialReasons[0].message},void 0,!1,{fileName:X,lineNumber:233,columnNumber:95},this),(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:(0,I.jsxDEV)(GA,{value:VA(e),prefix:`Updated`},void 0,!1,{fileName:X,lineNumber:234,columnNumber:70},this)},void 0,!1,{fileName:X,lineNumber:234,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:230,columnNumber:19},this)]},e.key,!0,{fileName:X,lineNumber:221,columnNumber:17},this))]},void 0,!0,{fileName:X,lineNumber:176,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:168,columnNumber:9},this),(0,I.jsxDEV)(xL,{handoffs:Object.values(ae)},void 0,!1,{fileName:X,lineNumber:240,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:167,columnNumber:7},this),EL(A)&&A.plan&&!b&&!ne&&!k?(0,I.jsxDEV)(iL,{detail:{...A,plan:A.plan},artifact:ue,titles:n,onApply:le,onRefresh:r,onHandoff:de,onDeleted:async()=>{re(null),h(``),await r()},onClose:()=>{re(null),h(``)}},void 0,!1,{fileName:X,lineNumber:244,columnNumber:9},this):(0,I.jsxDEV)(`section`,{className:`min-w-0 lg:col-span-2`,children:b&&ee.length>=2?(0,I.jsxDEV)(vL,{units:ee,onAdvise:l,onMerge:s,onClose:T,onOpenUnit:e=>{T(),h(e)}},void 0,!1,{fileName:X,lineNumber:261,columnNumber:15},this):ne?(0,I.jsxDEV)(mL,{unit:ne,titles:n,onUpdate:i,onDelete:async e=>{await a(e),h(``)},onPromote:o,onSplit:c,onAdviseSplit:u,onOpenItem:p.openItem,onOpenPlan:h},ne.unitId,!1,{fileName:X,lineNumber:269,columnNumber:15},this):k?(0,I.jsxDEV)(VO,{children:[(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(UO,{children:`Draft not found`},void 0,!1,{fileName:X,lineNumber:284,columnNumber:19},this),(0,I.jsxDEV)(WO,{children:`This draft plan unit no longer exists. It may have been deleted or promoted.`},void 0,!1,{fileName:X,lineNumber:285,columnNumber:19},this)]},void 0,!0,{fileName:X,lineNumber:283,columnNumber:17},this),(0,I.jsxDEV)(GO,{children:(0,I.jsxDEV)(L,{variant:`outline`,size:`sm`,onClick:()=>h(``),children:`Clear selection`},void 0,!1,{fileName:X,lineNumber:288,columnNumber:19},this)},void 0,!1,{fileName:X,lineNumber:287,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:282,columnNumber:15},this):A?(0,I.jsxDEV)(oL,{detail:A},void 0,!1,{fileName:X,lineNumber:292,columnNumber:17},this):(0,I.jsxDEV)(VO,{children:(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(UO,{children:`Details`},void 0,!1,{fileName:X,lineNumber:293,columnNumber:35},this),(0,I.jsxDEV)(WO,{children:`Select an artifact to inspect it.`},void 0,!1,{fileName:X,lineNumber:293,columnNumber:65},this)]},void 0,!0,{fileName:X,lineNumber:293,columnNumber:23},this)},void 0,!1,{fileName:X,lineNumber:293,columnNumber:17},this)},void 0,!1,{fileName:X,lineNumber:259,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:166,columnNumber:5},this)}function xL({handoffs:e}){return e.length===0?null:(0,I.jsxDEV)(VO,{"aria-label":`Planning activity handoff status`,children:[(0,I.jsxDEV)(HO,{children:[(0,I.jsxDEV)(UO,{className:`text-sm`,children:`Planning activity`},void 0,!1,{fileName:X,lineNumber:305,columnNumber:9},this),(0,I.jsxDEV)(WO,{children:`Recent plan handoff status.`},void 0,!1,{fileName:X,lineNumber:306,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:304,columnNumber:7},this),(0,I.jsxDEV)(GO,{className:`grid gap-2 text-xs`,children:e.map(e=>(0,I.jsxDEV)(`div`,{className:`rounded border p-2 ${e.status===`failed`?`border-destructive/40 bg-destructive/10`:`border-primary/30 bg-primary/10`}`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 font-medium text-text-bright`,children:[e.status===`failed`&&(0,I.jsxDEV)(ze,{className:`h-3.5 w-3.5 text-destructive-foreground`},void 0,!1,{fileName:X,lineNumber:312,columnNumber:45},this),(0,I.jsxDEV)(`span`,{children:e.title},void 0,!1,{fileName:X,lineNumber:313,columnNumber:15},this),(0,I.jsxDEV)(nk,{tone:e.status===`failed`?`danger`:`progress`,children:e.status===`failed`?`handoff failed`:`handoff pending`},void 0,!1,{fileName:X,lineNumber:314,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:311,columnNumber:13},this),(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:e.message},void 0,!1,{fileName:X,lineNumber:316,columnNumber:13},this),e.status===`failed`&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:`The plan row is restored. Retry Handoff after checking the message above, or enqueue the session plan manually.`},void 0,!1,{fileName:X,lineNumber:317,columnNumber:43},this)]},e.id,!0,{fileName:X,lineNumber:310,columnNumber:11},this))},void 0,!1,{fileName:X,lineNumber:308,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:303,columnNumber:5},this)}function SL({onClose:e,onCreated:t}){let n=$n();async function r(r){r.preventDefault();let i=new FormData(r.currentTarget),a=String(i.get(`session`)??``).trim(),o=String(i.get(`topic`)??``).trim();if(!a||!o){n.push(`Session and topic are required.`,`error`);return}try{await yL.invokeAction(`create-session-plan`,{session:a,topic:o,planningType:String(i.get(`planningType`)??`feature`),planningDepth:String(i.get(`planningDepth`)??`focused`)}),n.push(`Created ${a}.`,`success`),e(),await t()}catch(e){n.push(e instanceof Error?e.message:String(e),`error`)}}return(0,I.jsxDEV)(`form`,{className:`grid gap-2 rounded-md border bg-background/50 p-3`,onSubmit:e=>void r(e),children:[(0,I.jsxDEV)(Tk,{name:`session`,placeholder:`session-id`,required:!0},void 0,!1,{fileName:X,lineNumber:349,columnNumber:7},this),(0,I.jsxDEV)(Tk,{name:`topic`,placeholder:`Topic`,required:!0},void 0,!1,{fileName:X,lineNumber:350,columnNumber:7},this),(0,I.jsxDEV)(mA,{name:`planningType`,defaultValue:`feature`,children:[(0,I.jsxDEV)(`option`,{value:`feature`,children:`feature`},void 0,!1,{fileName:X,lineNumber:351,columnNumber:58},this),(0,I.jsxDEV)(`option`,{value:`bugfix`,children:`bugfix`},void 0,!1,{fileName:X,lineNumber:351,columnNumber:98},this),(0,I.jsxDEV)(`option`,{value:`architecture`,children:`architecture`},void 0,!1,{fileName:X,lineNumber:351,columnNumber:136},this)]},void 0,!0,{fileName:X,lineNumber:351,columnNumber:7},this),(0,I.jsxDEV)(mA,{name:`planningDepth`,defaultValue:`focused`,children:[(0,I.jsxDEV)(`option`,{value:`quick`,children:`quick`},void 0,!1,{fileName:X,lineNumber:352,columnNumber:59},this),(0,I.jsxDEV)(`option`,{value:`focused`,children:`focused`},void 0,!1,{fileName:X,lineNumber:352,columnNumber:95},this),(0,I.jsxDEV)(`option`,{value:`deep`,children:`deep`},void 0,!1,{fileName:X,lineNumber:352,columnNumber:135},this)]},void 0,!0,{fileName:X,lineNumber:352,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,I.jsxDEV)(L,{type:`submit`,variant:`secondary`,size:`sm`,children:`Create`},void 0,!1,{fileName:X,lineNumber:354,columnNumber:9},this),(0,I.jsxDEV)(L,{type:`button`,variant:`ghost`,size:`sm`,onClick:e,children:`Cancel`},void 0,!1,{fileName:X,lineNumber:355,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:353,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:348,columnNumber:5},this)}var CL={queue:{label:`Queued`,tone:`info`},queued:{label:`Queued`,tone:`info`},build:{label:`Building`,tone:`progress`},building:{label:`Building`,tone:`progress`},active:{label:`Building`,tone:`progress`},"pr-open":{label:`PR open`,tone:`warn`},partial:{label:`Partial`,tone:`warn`},failed:{label:`Failed`,tone:`danger`},merged:{label:`Shipped`,tone:`done`},shipped:{label:`Shipped`,tone:`done`},landed:{label:`Shipped`,tone:`done`}};function wL({artifact:e}){let t=CL[(e.lifecycleState??``).toLowerCase()];return t?(0,I.jsxDEV)(nk,{tone:t.tone,children:t.label},void 0,!1,{fileName:X,lineNumber:383,columnNumber:10},this):null}function TL(e){return e.kind===`plan-set`?e.title||e.planSetId||e.key:rT(e.title,e.session??e.key)}function EL(e){return!!(e&&`plan`in e)}var DL=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-activity.tsx`;function OL(e){return e&&e.length>0?e[e.length-1]:void 0}function kL({timestamp:e}){return(0,I.jsxDEV)(`time`,{dateTime:e,title:e,children:FA(e)??e},void 0,!1,{fileName:DL,lineNumber:10,columnNumber:10},this)}function AL({activityLog:e}){let t=OL(e);return t?(0,I.jsxDEV)(`p`,{className:`mt-2 min-w-0 break-words text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-foreground`,children:`Latest activity:`},void 0,!1,{fileName:DL,lineNumber:18,columnNumber:7},this),` `,(0,I.jsxDEV)(`span`,{children:t.message},void 0,!1,{fileName:DL,lineNumber:19,columnNumber:7},this),` `,(0,I.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:[`· `,(0,I.jsxDEV)(kL,{timestamp:t.timestamp},void 0,!1,{fileName:DL,lineNumber:20,columnNumber:45},this)]},void 0,!0,{fileName:DL,lineNumber:20,columnNumber:7},this)]},void 0,!0,{fileName:DL,lineNumber:17,columnNumber:5},this):null}function jL({activityLog:e}){let t=OL(e);return!t||!e||e.length===0?null:(0,I.jsxDEV)(`section`,{className:`mt-3 rounded-md border border-border bg-background/60 p-3 text-sm`,"aria-label":`Recent planning task activity`,children:[(0,I.jsxDEV)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Recent activity`},void 0,!1,{fileName:DL,lineNumber:30,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2 rounded-md border border-primary/30 bg-primary/10 p-2 text-xs`,children:[(0,I.jsxDEV)(`div`,{className:`font-medium text-text-bright`,children:`Latest activity`},void 0,!1,{fileName:DL,lineNumber:32,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`mt-1 break-words text-foreground`,children:t.message},void 0,!1,{fileName:DL,lineNumber:33,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`mt-1 text-muted-foreground`,children:(0,I.jsxDEV)(kL,{timestamp:t.timestamp},void 0,!1,{fileName:DL,lineNumber:34,columnNumber:53},this)},void 0,!1,{fileName:DL,lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:DL,lineNumber:31,columnNumber:7},this),(0,I.jsxDEV)(`ol`,{className:`mt-3 grid gap-2 text-xs`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`grid gap-0.5 rounded border border-border/70 bg-muted/20 p-2`,children:[(0,I.jsxDEV)(`span`,{className:`break-words text-foreground`,children:e.message},void 0,!1,{fileName:DL,lineNumber:39,columnNumber:13},this),(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:(0,I.jsxDEV)(kL,{timestamp:e.timestamp},void 0,!1,{fileName:DL,lineNumber:40,columnNumber:53},this)},void 0,!1,{fileName:DL,lineNumber:40,columnNumber:13},this)]},`${e.timestamp}-${t}`,!0,{fileName:DL,lineNumber:38,columnNumber:11},this))},void 0,!1,{fileName:DL,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:DL,lineNumber:29,columnNumber:5},this)}var ML={status:`Status`,priority:`Priority`,tags:`Tags`,depends_on:`Depends on`,epic:`Epic`,last_checked:`Last checked`,stale_after:`Stale after`};function NL(e,t){return{itemChanges:e.itemChanges.length,epicChanges:e.epicChanges.length,noOpRechecks:e.noOpRechecks.length,skipped:e.skipped.length,needsInput:e.needsInput.length,generatedRecommendations:zL(t?.effectiveRecommendations).total}}function PL(e,t){let n=e===`epic`?`Epic`:e===`item`?`Item`:`Record`;return t?`${n} ${t}`:n}function FL(e){return e?Object.entries(e).map(([e,t])=>({label:ML[e]??e,value:lR(t)})):[]}function IL(e){return e===`append`?`Append section content`:e===`replace`?`Replace section content`:e}function LL(e){return e?e.length<=16?e:`${e.slice(0,8)}…${e.slice(-8)}`:`unknown`}function RL(e){let t=e.kind===`epic`?`Epic`:`Item`,n=e.status?` · status ${e.status}`:``;return`${e.path}: ${t} ${e.id} (${e.reason}${n})`}function zL(e){let t=e?.activeWork?.length??0,n=e?.readyCandidates?.length??0,r=e?.recommendedNextSequence.length??0,i=e?.safeParallelizableGroups.length??0,a=e?.blockedChains?.length??0;return{activeWork:t,readyCandidates:n,nextSequence:r,safeParallelGroups:i,blockedChains:a,total:t+n+r+i+a}}function BL(e){let t=e?.coverage;return t?[{label:`Audited items`,value:String(t.auditedItemCount)},JL(`Current-state files`,t.currentStateFileCount),JL(`Git commits`,t.gitHistoryCommitCount),JL(`Pull requests`,t.pullRequestCount)].filter(e=>!!e):[]}function VL(e){let t=e?.caps;return t?[JL(`File scan cap`,t.fileScanCount),YL(`File byte cap`,t.fileBytes),JL(`Evidence per item cap`,t.evidencePerItem),JL(`Paths per category cap`,t.pathsPerCategory),YL(`Excerpt byte cap`,t.excerptBytes),JL(`Diagnostic cap`,t.diagnosticCount),JL(`Git commit scan cap`,t.gitCommitScanCount),JL(`PR enrichment cap`,t.prEnrichmentCount)].filter(e=>!!e):[]}function HL(e){let t=e?.settings;return t?[JL(`Item audit concurrency`,t.itemAuditConcurrency),JL(`Maximum item audit concurrency`,t.maxItemAuditConcurrency),t.closureAuthority?{label:`Closure authority`,value:t.closureAuthority===`current-source-only`?`current source only`:t.closureAuthority}:void 0].filter(e=>!!e):[]}function UL(e,t){if(t.kind!==`item`||!t.id)return[];let n=e?.itemSummaries?.find(e=>e.itemId===t.id),r=t.metadata?.status===`shipped`||t.metadata?.status===`superseded`?t.metadata.status:void 0,i=r===void 0?n?.evidence??[]:(n?.closureCandidates??[]).filter(e=>WL(e,r));if(i.length===0)return[];let a=(t.evidence??[]).join(`
379
+ `).toLowerCase();return i.filter(KL).filter(e=>qL(e,a)).map(e=>({source:e.source.trim(),confidence:e.confidence.trim(),path:e.path??e.citations?.find(e=>e.path)?.path,excerpt:e.excerpt??e.citations?.find(e=>e.excerpt)?.excerpt,matchedBy:e.matchedBy??[],citations:e.citations}))}function WL(e,t){return e.intent===t&&e.confidence.trim().toLowerCase()===`strong`&&(e.evidenceSource===`current-source`||e.source===`current-source`)}function GL(e){return e.split(`-`).filter(Boolean).map(e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(` `)}function KL(e){return e.source.trim().length>0&&e.confidence.trim().length>0}function qL(e,t){if(t.length===0)return!0;let n=e.excerpt?.toLowerCase();if(n&&t.includes(n.slice(0,Math.min(n.length,80)))||e.path&&t.includes(e.path.toLowerCase())||e.evidence&&t.includes(e.evidence.toLowerCase().slice(0,Math.min(e.evidence.length,80)))||e.citation&&t.includes(e.citation.toLowerCase()))return!0;for(let n of e.citations??[])if(n.path&&t.includes(n.path.toLowerCase())||n.excerpt&&t.includes(n.excerpt.toLowerCase().slice(0,Math.min(n.excerpt.length,80))))return!0;return t.includes(e.source.toLowerCase())}function JL(e,t){return t===void 0?void 0:{label:e,value:t.toLocaleString()}}function YL(e,t){if(t!==void 0)return t<1024?{label:e,value:`${t} B`}:t<1024*1024?{label:e,value:`${(t/1024).toFixed(1)} KiB`}:{label:e,value:`${(t/(1024*1024)).toFixed(1)} MiB`}}var XL=`Shipped evidence: current source`,ZL=`Superseded evidence: current source`,QL=`Shipped evidence: lifecycle trace`,$L=`Shipped evidence: inferred from git/PR history`,eR=`Superseded evidence: lifecycle trace`,tR=`Superseded evidence: inferred from git/PR history`,nR=`Ambiguous shipped candidate: needs input`,rR=`Ambiguous superseded candidate: needs input`,iR=[/\bPR\s+#(\d{1,10})\b/gi,/(?:^|[^\w/])#(\d{1,10})\b/g,/\/pull\/(\d{1,10})\b/gi],aR=/\b(?:merge\s+commit|commit|git)\s+([a-f0-9]{7,40})\b/gi;function oR(e){let t=new Set,n=new Set,r=new Set;for(let i of e)if(i){i.includes(XL)&&t.add(XL),i.includes(ZL)&&t.add(ZL),i.includes(QL)&&t.add(QL),i.includes($L)&&t.add($L),i.includes(eR)&&t.add(eR),i.includes(tR)&&t.add(tR),i.includes(nR)&&t.add(nR),i.includes(rR)&&t.add(rR);for(let e of iR){e.lastIndex=0;for(let t of i.matchAll(e))t[1]&&n.add(`#${t[1]}`)}aR.lastIndex=0;for(let e of i.matchAll(aR))e[1]&&r.add(e[1])}return{labels:[XL,ZL,QL,$L,eR,tR,nR,rR].filter(e=>t.has(e)),prIds:[...n],commitIds:[...r]}}function sR(e){return e?.effectiveRecommendations}function cR(e){return{removedItemIds:[...e?.removed.itemIds??[]].sort(),removedEpicIds:[...e?.removed.epicIds??[]].sort(),repositioned:[...e?.repositioned??[]].sort((e,t)=>e.itemId.localeCompare(t.itemId)||e.from.localeCompare(t.from)||e.to.localeCompare(t.to)).map(e=>`${e.itemId}: ${e.from} → ${e.to}`)}}function lR(e){return Array.isArray(e)?e.join(`, `):e===null?`none`:e===void 0?``:String(e)}var uR=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/components/recommendation-freshness.tsx`;function dR(e){return e?e.length<=16?e:`${e.slice(0,8)}…${e.slice(-8)}`:`unknown`}function fR(e,t){return e?.state??t?.state??null}function pR({freshness:e,status:t,prefix:n}){let r=fR(e,t);return r?(0,I.jsxDEV)(nk,{tone:$O(r),className:`font-normal uppercase tracking-wide`,children:n?`${n} ${r}`:r},void 0,!1,{fileName:uR,lineNumber:18,columnNumber:10},this):null}function mR({freshness:e,status:t}){if(e)return(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-2xs text-muted-foreground`,children:[e.reason,(0,I.jsxDEV)(hR,{label:`stored`,value:e.storedSourceFingerprint},void 0,!1,{fileName:uR,lineNumber:26,columnNumber:9},this),(0,I.jsxDEV)(hR,{label:`compared`,value:e.comparedSourceFingerprint},void 0,!1,{fileName:uR,lineNumber:27,columnNumber:9},this),e.baselineTaskId&&(0,I.jsxDEV)(I.Fragment,{children:[` · baseline task `,(0,I.jsxDEV)(`span`,{title:e.baselineTaskId,children:e.baselineTaskId},void 0,!1,{fileName:uR,lineNumber:28,columnNumber:57},this)]},void 0,!0,{fileName:uR,lineNumber:28,columnNumber:38},this)]},void 0,!0,{fileName:uR,lineNumber:24,columnNumber:7},this);if(!t)return null;let n=[];return t.sourceFingerprint&&n.push((0,I.jsxDEV)(hR,{label:`source`,value:t.sourceFingerprint},`source`,!1,{fileName:uR,lineNumber:34,columnNumber:44},this)),t.lastAppliedSourceFingerprint&&n.push((0,I.jsxDEV)(hR,{label:`applied`,value:t.lastAppliedSourceFingerprint},`applied`,!1,{fileName:uR,lineNumber:35,columnNumber:55},this)),n.length>0?(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-2xs text-muted-foreground`,children:n},void 0,!1,{fileName:uR,lineNumber:36,columnNumber:29},this):null}function hR({label:e,value:t}){return t?(0,I.jsxDEV)(I.Fragment,{children:[` · `,e,` `,(0,I.jsxDEV)(`span`,{title:t,children:dR(t)},void 0,!1,{fileName:uR,lineNumber:41,columnNumber:23},this)]},void 0,!0,{fileName:uR,lineNumber:41,columnNumber:10},this):null}var gR=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/backlog-curation-full-audit-panel.tsx`;function _R({audit:e}){if(!e)return null;let t=BL(e),n=VL(e),r=HL(e),i=[...e.diagnostics??[]].sort((e,t)=>SR(e.severity)-SR(t.severity)||e.code.localeCompare(t.code)),a=[...e.itemSummaries??[]].sort((e,t)=>e.itemId.localeCompare(t.itemId));return(0,I.jsxDEV)(gA,{title:`Analysis metadata`,className:`gap-2`,children:[e.scope&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`Scope: `,e.scope.openItemCount??e.scope.itemIds.length,` open item`,(e.scope.openItemCount??e.scope.itemIds.length)===1?``:`s`,e.scope.itemIds.length>0?` · ${e.scope.itemIds.join(`, `)}`:``]},void 0,!0,{fileName:gR,lineNumber:16,columnNumber:23},this),t.length>0&&(0,I.jsxDEV)(xR,{title:`Coverage`,rows:t},void 0,!1,{fileName:gR,lineNumber:17,columnNumber:31},this),r.length>0&&(0,I.jsxDEV)(xR,{title:`Concurrency and authority`,rows:r},void 0,!1,{fileName:gR,lineNumber:18,columnNumber:31},this),n.length>0&&(0,I.jsxDEV)(xR,{title:`Caps`,rows:n},void 0,!1,{fileName:gR,lineNumber:19,columnNumber:27},this),i.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:`Diagnostics`},void 0,!1,{fileName:gR,lineNumber:22,columnNumber:11},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-muted-foreground`,children:i.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:e.severity===`warning`?`text-[color:var(--prio-medium)]`:`text-foreground`,children:e.severity},void 0,!1,{fileName:gR,lineNumber:26,columnNumber:17},this),` `,(0,I.jsxDEV)(`span`,{className:`font-mono`,children:e.code},void 0,!1,{fileName:gR,lineNumber:26,columnNumber:154},this),e.message?`: ${e.message}`:``,e.path?` · ${e.path}`:``]},`${e.severity}:${e.code}:${e.path??``}:${e.message??``}`,!0,{fileName:gR,lineNumber:25,columnNumber:15},this))},void 0,!1,{fileName:gR,lineNumber:23,columnNumber:11},this)]},void 0,!0,{fileName:gR,lineNumber:21,columnNumber:9},this),a.length>0&&(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:[a.length,` audited item summaries`]},void 0,!0,{fileName:gR,lineNumber:34,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2 text-xs text-muted-foreground`,children:a.map(e=>(0,I.jsxDEV)(`div`,{className:`grid gap-1 rounded border border-border p-2`,children:[(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.itemId},void 0,!1,{fileName:gR,lineNumber:38,columnNumber:20},this),` · `,e.candidateIntent,e.sourceFirstResult?.intent?` · result ${e.sourceFirstResult.intent}`:``,e.confidence?` · confidence ${e.confidence}`:``,e.evidenceCount===void 0?``:` · ${e.evidenceCount} evidence`]},void 0,!0,{fileName:gR,lineNumber:38,columnNumber:17},this),e.sourceFirstResult?.rationale&&(0,I.jsxDEV)(`p`,{children:e.sourceFirstResult.rationale},void 0,!1,{fileName:gR,lineNumber:39,columnNumber:55},this),(0,I.jsxDEV)(yR,{title:`Current-source citations`,citations:e.sourceFirstResult?.citations??e.closureCandidates?.flatMap(e=>e.citations??[])??[]},void 0,!1,{fileName:gR,lineNumber:40,columnNumber:17},this),(0,I.jsxDEV)(bR,{hints:e.historicalHints??e.sourceFirstResult?.historicalHints??[]},void 0,!1,{fileName:gR,lineNumber:41,columnNumber:17},this),e.sourceFirstResult?.diagnostics&&e.sourceFirstResult.diagnostics.length>0&&(0,I.jsxDEV)(`ul`,{children:e.sourceFirstResult.diagnostics.map(e=>(0,I.jsxDEV)(`li`,{children:[`diagnostic `,e.severity,` · `,e.code,e.path?` · ${e.path}`:``]},`${e.code}:${e.path??``}`,!0,{fileName:gR,lineNumber:42,columnNumber:166},this))},void 0,!1,{fileName:gR,lineNumber:42,columnNumber:106},this)]},e.itemId,!0,{fileName:gR,lineNumber:37,columnNumber:15},this))},void 0,!1,{fileName:gR,lineNumber:35,columnNumber:11},this)]},void 0,!0,{fileName:gR,lineNumber:33,columnNumber:9},this)]},void 0,!0,{fileName:gR,lineNumber:15,columnNumber:5},this)}function vR({evidence:e}){return e.length===0?null:(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-text-bright`,children:[GL(e.source),` · `,e.confidence,e.path?` · ${e.path}`:``]},`${e.source}:${e.confidence}:${e.path??``}:${t}`,!0,{fileName:gR,lineNumber:56,columnNumber:39},this))},void 0,!1,{fileName:gR,lineNumber:55,columnNumber:5},this)}function yR({title:e,citations:t}){let n=t.filter(e=>e.path||e.excerpt);return n.length===0?null:(0,I.jsxDEV)(`ul`,{className:`grid gap-0.5`,children:[(0,I.jsxDEV)(`li`,{className:`font-medium text-foreground`,children:e},void 0,!1,{fileName:gR,lineNumber:64,columnNumber:39},this),n.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[e.kind?`${e.kind}: `:``,e.path??`current source`,e.excerpt?` — ${e.excerpt}`:``]},`${e.path??``}:${e.excerpt??``}:${t}`,!0,{fileName:gR,lineNumber:64,columnNumber:133},this))]},void 0,!0,{fileName:gR,lineNumber:64,columnNumber:10},this)}function bR({hints:e}){return e.length===0?null:(0,I.jsxDEV)(`ul`,{className:`grid gap-0.5`,children:[(0,I.jsxDEV)(`li`,{className:`font-medium text-foreground`,children:`Historical navigation hints (not closure evidence)`},void 0,!1,{fileName:gR,lineNumber:69,columnNumber:39},this),e.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[GL(e.source??`historical`),` · `,e.intent??`hint`,e.confidence?` · ${e.confidence}`:``,e.path?` · ${e.path}`:``,e.citation??e.evidence?` — ${e.citation??e.evidence}`:``]},`${e.source??``}:${e.citation??e.evidence??``}:${t}`,!0,{fileName:gR,lineNumber:69,columnNumber:166},this))]},void 0,!0,{fileName:gR,lineNumber:69,columnNumber:10},this)}function xR({title:e,rows:t}){return(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:e},void 0,!1,{fileName:gR,lineNumber:75,columnNumber:7},this),(0,I.jsxDEV)(`dl`,{className:`grid gap-1`,children:t.map(e=>(0,I.jsxDEV)(`div`,{className:`grid grid-cols-[10rem_1fr] gap-2`,children:[(0,I.jsxDEV)(`dt`,{className:`text-muted-foreground`,children:e.label},void 0,!1,{fileName:gR,lineNumber:77,columnNumber:94},this),(0,I.jsxDEV)(`dd`,{className:`text-foreground`,children:e.value},void 0,!1,{fileName:gR,lineNumber:77,columnNumber:148},this)]},e.label,!0,{fileName:gR,lineNumber:77,columnNumber:28},this))},void 0,!1,{fileName:gR,lineNumber:76,columnNumber:7},this)]},void 0,!0,{fileName:gR,lineNumber:74,columnNumber:5},this)}function SR(e){return e===`warning`?0:1}var CR=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/backlog-curation-git-delta-panel.tsx`;function wR(e){return e?e.length<=12?e:e.slice(0,12):`unknown`}function TR(e=[]){return[...e].sort((e,t)=>{let n=OR(e.severity)-OR(t.severity);return n===0?`${e.code}\u0000${e.message??``}\u0000${e.commit??``}`.localeCompare(`${t.code}\u0000${t.message??``}\u0000${t.commit??``}`):n})}function ER({gitDelta:e}){if(!e)return null;let t=TR(e.diagnostics),n=kR(e.affectedItemCandidates),r=e.caps;return(0,I.jsxDEV)(gA,{title:`Delta git diagnostics`,className:`gap-1.5`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[`Baseline `,(0,I.jsxDEV)(DR,{value:e.baseline?.commit??void 0},void 0,!1,{fileName:CR,lineNumber:28,columnNumber:20},this),e.baseline?.time?` · ${e.baseline.time}`:e.baseline?.generatedAt?` · ${e.baseline.generatedAt}`:``,e.baseline?.sourceFingerprint?(0,I.jsxDEV)(I.Fragment,{children:[` · source `,(0,I.jsxDEV)(`span`,{title:e.baseline.sourceFingerprint,children:dR(e.baseline.sourceFingerprint)},void 0,!1,{fileName:CR,lineNumber:28,columnNumber:263},this)]},void 0,!0,{fileName:CR,lineNumber:28,columnNumber:251},this):null]},void 0,!0,{fileName:CR,lineNumber:27,columnNumber:9},this),(0,I.jsxDEV)(`p`,{children:[`Current HEAD `,(0,I.jsxDEV)(DR,{value:e.currentHead?.commit},void 0,!1,{fileName:CR,lineNumber:31,columnNumber:24},this),e.currentHead?.time?` · ${e.currentHead.time}`:e.currentHead?.generatedAt?` · ${e.currentHead.generatedAt}`:``,e.currentHead?.sourceFingerprint?(0,I.jsxDEV)(I.Fragment,{children:[` · source `,(0,I.jsxDEV)(`span`,{title:e.currentHead.sourceFingerprint,children:dR(e.currentHead.sourceFingerprint)},void 0,!1,{fileName:CR,lineNumber:31,columnNumber:272},this)]},void 0,!0,{fileName:CR,lineNumber:31,columnNumber:260},this):null]},void 0,!0,{fileName:CR,lineNumber:30,columnNumber:9},this),(0,I.jsxDEV)(`p`,{children:[`Delta coverage `,e.coverage?.kind??`unknown`,e.coverage?.message?` · ${e.coverage.message}`:``]},void 0,!0,{fileName:CR,lineNumber:33,columnNumber:9},this),(0,I.jsxDEV)(`p`,{children:[`Scanned commits: `,e.scannedCommitCount??e.scannedCommits?.length??0,r?` · caps ${AR(r)}`:``]},void 0,!0,{fileName:CR,lineNumber:34,columnNumber:9},this),e.affectedItemCandidates&&(0,I.jsxDEV)(`p`,{children:[`Affected candidates: `,n.total,n.ambiguousShipped>0?` · ambiguous shipped ${n.ambiguousShipped}`:``,n.ambiguousSuperseded>0?` · ambiguous superseded ${n.ambiguousSuperseded}`:``]},void 0,!0,{fileName:CR,lineNumber:35,columnNumber:45},this)]},void 0,!0,{fileName:CR,lineNumber:26,columnNumber:7},this),t.length>0&&(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-xs text-muted-foreground`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:e.severity===`warning`?`text-[color:var(--prio-medium)]`:`text-foreground`,children:e.severity},void 0,!1,{fileName:CR,lineNumber:41,columnNumber:15},this),` `,(0,I.jsxDEV)(`span`,{className:`font-mono`,children:e.code},void 0,!1,{fileName:CR,lineNumber:41,columnNumber:152},this),e.message?`: ${e.message}`:``,e.commit?(0,I.jsxDEV)(I.Fragment,{children:[` · commit `,(0,I.jsxDEV)(DR,{value:e.commit},void 0,!1,{fileName:CR,lineNumber:41,columnNumber:290},this)]},void 0,!0,{fileName:CR,lineNumber:41,columnNumber:278},this):null]},`${e.severity}:${e.code}:${e.message??``}:${e.commit??``}`,!0,{fileName:CR,lineNumber:40,columnNumber:13},this))},void 0,!1,{fileName:CR,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:CR,lineNumber:25,columnNumber:5},this)}function DR({value:e}){return(0,I.jsxDEV)(`span`,{title:e,className:`font-mono`,children:wR(e)},void 0,!1,{fileName:CR,lineNumber:51,columnNumber:10},this)}function OR(e){return e===`warning`?0:1}function kR(e){return(e??[]).reduce((e,t)=>(e.total+=1,t.intent===`ambiguous-shipped`&&(e.ambiguousShipped+=1),t.intent===`ambiguous-superseded`&&(e.ambiguousSuperseded+=1),e),{total:0,ambiguousShipped:0,ambiguousSuperseded:0})}function AR(e){return[e.commitScanCount===void 0?void 0:`${e.commitScanCount} commits`,e.changedPathCount===void 0?void 0:`${e.changedPathCount} paths`,e.excerptCount===void 0?void 0:`${e.excerptCount} excerpts`].filter(Boolean).join(`, `)}var Z=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/backlog-curation-preview.tsx`;function jR({taskId:e,entry:t,draft:n,recommendations:r,curationPreview:i,busy:a,onApply:o,onRedraft:s}){let[c,l]=w.useState(!1),[u,d]=w.useState(``),[f,p]=w.useState(i??null),[m,h]=w.useState(i===void 0),g=i??f??void 0,_=g?.recommendationProjection,v=sR(_),y=cR(_),b=NL(n,_),x=!!t.appliedAt,S=n.summary.length>0||n.itemChanges.length>0||n.epicChanges.length>0||n.noOpRechecks.length>0||n.skipped.length>0||n.needsInput.length>0||!!v||m||g!==void 0,C=u.trim().length>0,T=_?.validation??g?.generatedRecommendationValidation,ee=T?.valid===!1,E=g?.errors??[],D=g!==void 0,te=D&&g.valid&&E.length===0&&!ee,O=D&&ee&&E.length===0;return w.useEffect(()=>{if(i!==void 0){p(i),h(!1);return}let t=!0;return h(!0),sw().invokeAction(`preview-backlog-curation-task`,{taskId:e}).then(e=>{t&&p(e)}).catch(e=>{t&&p({valid:!1,errors:[{path:``,message:e instanceof Error?e.message:String(e)}]})}).finally(()=>{t&&h(!1)}),()=>{t=!1}},[i,e]),(0,I.jsxDEV)(gA,{className:`mt-3 gap-3 pt-3 text-sm`,children:[(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Backlog curation preview`},void 0,!1,{fileName:Z,lineNumber:72,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`Read-only draft from source `,LL(n.sourceFingerprint),n.generatedAt?` · generated ${FA(n.generatedAt)}`:``]},void 0,!0,{fileName:Z,lineNumber:73,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:71,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,I.jsxDEV)(MR,{label:`item changes`,value:b.itemChanges},void 0,!1,{fileName:Z,lineNumber:76,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`epic changes`,value:b.epicChanges},void 0,!1,{fileName:Z,lineNumber:77,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`no-op rechecks`,value:b.noOpRechecks},void 0,!1,{fileName:Z,lineNumber:78,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`unresolved exceptions`,value:b.skipped},void 0,!1,{fileName:Z,lineNumber:79,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`needs input`,value:b.needsInput},void 0,!1,{fileName:Z,lineNumber:80,columnNumber:11},this),(0,I.jsxDEV)(MR,{label:`recommendation entries`,value:b.generatedRecommendations},void 0,!1,{fileName:Z,lineNumber:81,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:75,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:70,columnNumber:7},this),g?.recommendationFreshness&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-border bg-card p-2 text-xs`,children:[(0,I.jsxDEV)(pR,{freshness:g.recommendationFreshness,prefix:`recommendations`},void 0,!1,{fileName:Z,lineNumber:87,columnNumber:11},this),(0,I.jsxDEV)(mR,{freshness:g.recommendationFreshness},void 0,!1,{fileName:Z,lineNumber:88,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:86,columnNumber:9},this),(0,I.jsxDEV)(ER,{gitDelta:g?.gitDelta},void 0,!1,{fileName:Z,lineNumber:91,columnNumber:7},this),(0,I.jsxDEV)(_R,{audit:g?.fullImplementationAudit},void 0,!1,{fileName:Z,lineNumber:92,columnNumber:7},this),m&&(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-card p-2 text-xs text-muted-foreground`,children:`Validating curation apply preconditions and effective recommendation projection…`},void 0,!1,{fileName:Z,lineNumber:93,columnNumber:26},this),!m&&g&&!_&&r&&(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-card p-2 text-xs text-muted-foreground`,children:`Effective recommendation projection unavailable; raw generated recommendations are available as provenance only and normal apply remains disabled.`},void 0,!1,{fileName:Z,lineNumber:94,columnNumber:81},this),T&&(0,I.jsxDEV)(RR,{validation:T},void 0,!1,{fileName:Z,lineNumber:95,columnNumber:36},this),E.length>0&&(0,I.jsxDEV)(PR,{title:`Curation preview validation errors`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5 text-xs text-destructive-foreground`,children:E.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono`,children:e.path},void 0,!1,{fileName:Z,lineNumber:99,columnNumber:86},this),` — `,e.message]},`${e.path}:${e.message}`,!0,{fileName:Z,lineNumber:99,columnNumber:43},this))},void 0,!1,{fileName:Z,lineNumber:98,columnNumber:11},this)},void 0,!1,{fileName:Z,lineNumber:97,columnNumber:9},this),S&&(0,I.jsxDEV)(`details`,{className:`border-t border-border pt-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer list-none text-xs text-muted-foreground hover:text-foreground [&::-webkit-details-marker]:hidden`,children:`Review curation details`},void 0,!1,{fileName:Z,lineNumber:106,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-3`,children:[n.summary.length>0&&(0,I.jsxDEV)(FR,{title:`Summary`,entries:n.summary},void 0,!1,{fileName:Z,lineNumber:108,columnNumber:42},this),(0,I.jsxDEV)(IR,{title:`Item changes`,patches:n.itemChanges,applied:x,fullAudit:g?.fullImplementationAudit},void 0,!1,{fileName:Z,lineNumber:109,columnNumber:13},this),(0,I.jsxDEV)(IR,{title:`Epic changes`,patches:n.epicChanges,applied:x,fullAudit:g?.fullImplementationAudit},void 0,!1,{fileName:Z,lineNumber:110,columnNumber:13},this),n.noOpRechecks.length>0&&(0,I.jsxDEV)(PR,{title:`No-op rechecks`,children:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:[n.noOpRechecks.length,` freshness-only rechecks proposed; expand for details`]},void 0,!0,{fileName:Z,lineNumber:114,columnNumber:19},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:n.noOpRechecks.map(e=>(0,I.jsxDEV)(`div`,{className:`rounded border border-border p-2`,children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:118,columnNumber:68},this)},void 0,!1,{fileName:Z,lineNumber:118,columnNumber:25},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:[`last_checked `,e.last_checked,` · stale_after `,e.stale_after]},void 0,!0,{fileName:Z,lineNumber:119,columnNumber:25},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:120,columnNumber:45},this)]},`${e.kind}:${e.id}`,!0,{fileName:Z,lineNumber:117,columnNumber:23},this))},void 0,!1,{fileName:Z,lineNumber:115,columnNumber:19},this)]},void 0,!0,{fileName:Z,lineNumber:113,columnNumber:17},this)},void 0,!1,{fileName:Z,lineNumber:112,columnNumber:15},this),n.skipped.length>0&&(0,I.jsxDEV)(PR,{title:`Unresolved exceptions`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5 text-xs text-muted-foreground`,children:n.skipped.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:130,columnNumber:115},this),` — `,e.reason]},`${e.kind??`record`}:${e.id??t}`,!0,{fileName:Z,lineNumber:130,columnNumber:56},this))},void 0,!1,{fileName:Z,lineNumber:129,columnNumber:17},this)},void 0,!1,{fileName:Z,lineNumber:128,columnNumber:15},this),n.needsInput.length>0&&(0,I.jsxDEV)(PR,{title:`Needs-input cases`,children:(0,I.jsxDEV)(`ul`,{className:`grid gap-1.5 text-xs text-muted-foreground`,children:n.needsInput.map((e,t)=>{let n=oR([e.reason,e.question]);return(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:139,columnNumber:121},this),`:`]},void 0,!0,{fileName:Z,lineNumber:139,columnNumber:87},this),` `,n.labels.map(e=>(0,I.jsxDEV)(`span`,{className:`mr-1 rounded border px-1 ${ZO(`warn`)}`,children:e},e,!1,{fileName:Z,lineNumber:139,columnNumber:209},this)),e.question,e.reason?` — ${e.reason}`:``]},`${e.kind??`record`}:${e.id??t}`,!0,{fileName:Z,lineNumber:139,columnNumber:28},this)})},void 0,!1,{fileName:Z,lineNumber:136,columnNumber:17},this)},void 0,!1,{fileName:Z,lineNumber:135,columnNumber:15},this),v&&(0,I.jsxDEV)(zR,{recommendations:v,metadata:y},void 0,!1,{fileName:Z,lineNumber:144,columnNumber:40},this)]},void 0,!0,{fileName:Z,lineNumber:107,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:105,columnNumber:9},this),(0,I.jsxDEV)(gA,{title:`Redraft curation`,children:[(0,I.jsxDEV)(YO,{className:`min-h-16`,value:u,onChange:e=>d(e.target.value),placeholder:`Optional steering for a curation redraft`},void 0,!1,{fileName:Z,lineNumber:150,columnNumber:9},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:a||!C,onClick:()=>void s(e,{steering:u.trim()}),children:`Redraft curation`},void 0,!1,{fileName:Z,lineNumber:151,columnNumber:14},this)},void 0,!1,{fileName:Z,lineNumber:151,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:149,columnNumber:7},this),x?(0,I.jsxDEV)(`div`,{className:`rounded border border-primary/30 bg-primary/10 p-2 text-xs text-text-bright`,children:[`Curation applied `,t.appliedAt?FA(t.appliedAt):``,`.`]},void 0,!0,{fileName:Z,lineNumber:155,columnNumber:9},this):(0,I.jsxDEV)(gA,{className:`flex flex-wrap items-center`,children:c?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(L,{size:`sm`,variant:`destructive`,disabled:a||m||!te,onClick:()=>void o(e,{applyBacklogCurationDraft:{previewAcknowledged:!0,confirmApply:!0}}),children:`Confirm apply curation`},void 0,!1,{fileName:Z,lineNumber:162,columnNumber:15},this),ee&&(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:a||m||!O,onClick:()=>void o(e,{applyBacklogCurationDraft:{previewAcknowledged:!0,confirmApply:!0,applyCurationOnly:!0}}),children:`Apply curation only / discard generated recommendations`},void 0,!1,{fileName:Z,lineNumber:163,columnNumber:54},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:a,onClick:()=>l(!1),children:`Cancel`},void 0,!1,{fileName:Z,lineNumber:164,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:161,columnNumber:13},this):(0,I.jsxDEV)(L,{size:`sm`,disabled:a,onClick:()=>l(!0),children:`I reviewed this curation preview`},void 0,!1,{fileName:Z,lineNumber:159,columnNumber:13},this)},void 0,!1,{fileName:Z,lineNumber:157,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:69,columnNumber:5},this)}function MR({label:e,value:t}){return(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-2xs text-text-bright`,children:[t,` `,e]},void 0,!0,{fileName:Z,lineNumber:174,columnNumber:10},this)}function NR({kind:e,id:t}){let n=PL(e,t);return e!==`item`||!t?(0,I.jsxDEV)(I.Fragment,{children:n},void 0,!1,{fileName:Z,lineNumber:182,columnNumber:38},this):(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>jw(t),title:`Show ${t} on the board`,className:`rounded-sm text-[color:var(--lane-ready)] hover:underline focus-visible:underline focus-visible:outline focus-visible:outline-1 focus-visible:outline-[color:var(--color-ring)]`,children:n},void 0,!1,{fileName:Z,lineNumber:184,columnNumber:5},this)}function PR({title:e,children:t}){return(0,I.jsxDEV)(gA,{title:e,className:`gap-1.5`,children:t},void 0,!1,{fileName:Z,lineNumber:191,columnNumber:10},this)}function FR({title:e,entries:t}){return(0,I.jsxDEV)(PR,{title:e,children:(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Z,lineNumber:195,columnNumber:123},this))},void 0,!1,{fileName:Z,lineNumber:195,columnNumber:38},this)},void 0,!1,{fileName:Z,lineNumber:195,columnNumber:10},this)}function IR({title:e,patches:t,applied:n,fullAudit:r}){return t.length===0?null:(0,I.jsxDEV)(PR,{title:e,children:(0,I.jsxDEV)(`div`,{className:`grid gap-2`,children:t.map(e=>(0,I.jsxDEV)(LR,{patch:e,applied:n,fullAudit:r},`${e.kind}:${e.id}`,!1,{fileName:Z,lineNumber:205,columnNumber:33},this))},void 0,!1,{fileName:Z,lineNumber:204,columnNumber:7},this)},void 0,!1,{fileName:Z,lineNumber:203,columnNumber:5},this)}function LR({patch:e,applied:t,fullAudit:n}){let r=FL(e.metadata),i=oR(e.evidence??[]),a=UL(n,e);return(0,I.jsxDEV)(`article`,{className:`grid gap-2 rounded border border-border p-2`,children:[(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`p`,{className:`font-medium text-foreground`,children:(0,I.jsxDEV)(NR,{kind:e.kind,id:e.id},void 0,!1,{fileName:Z,lineNumber:218,columnNumber:52},this)},void 0,!1,{fileName:Z,lineNumber:218,columnNumber:9},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:219,columnNumber:29},this)]},void 0,!0,{fileName:Z,lineNumber:217,columnNumber:7},this),r.length>0&&(0,I.jsxDEV)(`dl`,{className:`grid gap-1 text-xs`,children:r.map(e=>(0,I.jsxDEV)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-2`,children:[(0,I.jsxDEV)(`dt`,{className:`text-muted-foreground`,children:e.label},void 0,!1,{fileName:Z,lineNumber:221,columnNumber:146},this),(0,I.jsxDEV)(`dd`,{className:`text-foreground`,children:e.value},void 0,!1,{fileName:Z,lineNumber:221,columnNumber:200},this)]},e.label,!0,{fileName:Z,lineNumber:221,columnNumber:81},this))},void 0,!1,{fileName:Z,lineNumber:221,columnNumber:27},this),e.sectionOperations&&e.sectionOperations.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:e.sectionOperations.map(e=>(0,I.jsxDEV)(`details`,{className:`border-l-2 border-border pl-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground`,children:[IL(e.action),` · `,e.heading]},void 0,!0,{fileName:Z,lineNumber:222,columnNumber:245},this),(0,I.jsxDEV)(zO,{markdown:e.content},void 0,!1,{fileName:Z,lineNumber:222,columnNumber:384},this)]},`${e.heading}:${e.action}`,!0,{fileName:Z,lineNumber:222,columnNumber:145},this))},void 0,!1,{fileName:Z,lineNumber:222,columnNumber:73},this),(i.labels.length>0||a.length>0)&&(0,I.jsxDEV)(`div`,{className:`grid gap-1 rounded border border-primary/20 bg-primary/5 p-2 text-xs text-muted-foreground`,children:[i.labels.length>0&&(0,I.jsxDEV)(`p`,{children:n?`Draft evidence labels (historical labels are navigation hints; current-source labels are closure evidence):`:t?`Applied closure metadata evidence:`:`Proposed closure metadata evidence in this draft:`},void 0,!1,{fileName:Z,lineNumber:225,columnNumber:42},this),i.labels.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:i.labels.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-text-bright`,children:e},e,!1,{fileName:Z,lineNumber:226,columnNumber:112},this))},void 0,!1,{fileName:Z,lineNumber:226,columnNumber:42},this),a.length>0&&(0,I.jsxDEV)(vR,{evidence:a},void 0,!1,{fileName:Z,lineNumber:227,columnNumber:44},this),i.prIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`PR identifiers: `,i.prIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:228,columnNumber:41},this),i.commitIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`Commit identifiers: `,i.commitIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:229,columnNumber:45},this)]},void 0,!0,{fileName:Z,lineNumber:224,columnNumber:9},this),e.evidence&&e.evidence.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:e.evidence.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Z,lineNumber:232,columnNumber:147},this))},void 0,!1,{fileName:Z,lineNumber:232,columnNumber:55},this)]},void 0,!0,{fileName:Z,lineNumber:216,columnNumber:5},this)}function RR({validation:e}){return e.valid?null:(0,I.jsxDEV)(PR,{title:`Invalid generated recommendation references`,children:(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded border border-destructive/40 bg-destructive/10 p-2 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`text-destructive-foreground`,children:`Generated recommendations reference backlog records that are closed, missing, or otherwise invalid. Normal curation apply is disabled until you explicitly discard generated recommendations.`},void 0,!1,{fileName:Z,lineNumber:242,columnNumber:9},this),(0,I.jsxDEV)(`ul`,{className:`grid gap-1 text-muted-foreground`,children:e.issues.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:RL(e)},void 0,!1,{fileName:Z,lineNumber:246,columnNumber:15},this),e.title?` — ${e.title}`:``,(0,I.jsxDEV)(`span`,{className:`block text-destructive-foreground`,children:e.message},void 0,!1,{fileName:Z,lineNumber:246,columnNumber:135},this)]},`${e.path}:${e.kind}:${e.id}:${e.reason}`,!0,{fileName:Z,lineNumber:245,columnNumber:13},this))},void 0,!1,{fileName:Z,lineNumber:243,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:241,columnNumber:7},this)},void 0,!1,{fileName:Z,lineNumber:240,columnNumber:5},this)}function zR({recommendations:e,metadata:t}){let n=zL(e);return(0,I.jsxDEV)(PR,{title:`Effective generated recommendations (read-only)`,children:(0,I.jsxDEV)(`div`,{className:`grid gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[n.activeWork,` active work items · `,n.readyCandidates,` ready candidates · `,n.nextSequence,` next-sequence items · `,n.safeParallelGroups,` safe-parallel groups · `,n.blockedChains,` blocked chains`]},void 0,!0,{fileName:Z,lineNumber:261,columnNumber:9},this),t.removedItemIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`Removed item ids: `,t.removedItemIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:262,columnNumber:48},this),t.removedEpicIds.length>0&&(0,I.jsxDEV)(`p`,{children:[`Removed epic ids: `,t.removedEpicIds.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:263,columnNumber:48},this),t.repositioned.length>0&&(0,I.jsxDEV)(`p`,{children:[`Repositioned item ids: `,t.repositioned.join(`, `)]},void 0,!0,{fileName:Z,lineNumber:264,columnNumber:46},this),(0,I.jsxDEV)(BR,{title:`Active work`,entries:e.activeWork??[]},void 0,!1,{fileName:Z,lineNumber:265,columnNumber:9},this),(0,I.jsxDEV)(BR,{title:`Ready candidates`,entries:e.readyCandidates??[]},void 0,!1,{fileName:Z,lineNumber:266,columnNumber:9},this),(0,I.jsxDEV)(BR,{title:`Recommended next sequence`,entries:e.recommendedNextSequence??[]},void 0,!1,{fileName:Z,lineNumber:267,columnNumber:9},this),(0,I.jsxDEV)(VR,{title:`Safe-parallel groups`,groups:e.safeParallelizableGroups??[]},void 0,!1,{fileName:Z,lineNumber:268,columnNumber:9},this),(0,I.jsxDEV)(HR,{chains:e.blockedChains??[]},void 0,!1,{fileName:Z,lineNumber:269,columnNumber:9},this),e.rationaleAndAssumptions&&e.rationaleAndAssumptions.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4`,children:e.rationaleAndAssumptions.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Z,lineNumber:270,columnNumber:194},this))},void 0,!1,{fileName:Z,lineNumber:270,columnNumber:107},this)]},void 0,!0,{fileName:Z,lineNumber:260,columnNumber:7},this)},void 0,!1,{fileName:Z,lineNumber:259,columnNumber:5},this)}function BR({title:e,entries:t}){return t.length===0?null:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,open:!0,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-medium text-foreground`,children:[e,` (`,t.length,`)`]},void 0,!0,{fileName:Z,lineNumber:280,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1.5`,children:t.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.itemId},void 0,!1,{fileName:Z,lineNumber:284,columnNumber:13},this),e.title?` — ${e.title}`:``,e.rationale?(0,I.jsxDEV)(`span`,{className:`block`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:284,columnNumber:137},this):null]},`${e.ref??e.itemId}:${t}`,!0,{fileName:Z,lineNumber:283,columnNumber:11},this))},void 0,!1,{fileName:Z,lineNumber:281,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:279,columnNumber:5},this)}function VR({title:e,groups:t}){return t.length===0?null:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,open:!0,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-medium text-foreground`,children:[e,` (`,t.length,`)`]},void 0,!0,{fileName:Z,lineNumber:296,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1.5`,children:t.map(e=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.ref},void 0,!1,{fileName:Z,lineNumber:300,columnNumber:13},this),e.title?` — ${e.title}`:``,(0,I.jsxDEV)(`span`,{className:`block`,children:[`Items: `,e.itemIds.join(`, `)||`none`,e.epicIds&&e.epicIds.length>0?` · Epics: ${e.epicIds.join(`, `)}`:``,e.recommendedProfile?` · Profile: ${e.recommendedProfile}`:``]},void 0,!0,{fileName:Z,lineNumber:301,columnNumber:13},this),e.rationale?(0,I.jsxDEV)(`span`,{className:`block`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:302,columnNumber:32},this):null]},e.ref,!0,{fileName:Z,lineNumber:299,columnNumber:11},this))},void 0,!1,{fileName:Z,lineNumber:297,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:295,columnNumber:5},this)}function HR({chains:e}){return e.length===0?null:(0,I.jsxDEV)(`details`,{className:`rounded border border-border p-2`,open:!0,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-medium text-foreground`,children:[`Blocked chains (`,e.length,`)`]},void 0,!0,{fileName:Z,lineNumber:314,columnNumber:7},this),(0,I.jsxDEV)(`ul`,{className:`mt-1 grid gap-1.5`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{children:[(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.ref??`chain-${t+1}`},void 0,!1,{fileName:Z,lineNumber:318,columnNumber:13},this),(0,I.jsxDEV)(`span`,{className:`block`,children:[`Items: `,e.itemIds.join(`, `)||`none`,` · Blocked by: `,e.blockedBy.join(`, `)||`none`]},void 0,!0,{fileName:Z,lineNumber:319,columnNumber:13},this),e.rationale?(0,I.jsxDEV)(`span`,{className:`block`,children:e.rationale},void 0,!1,{fileName:Z,lineNumber:320,columnNumber:32},this):null]},`${e.ref??e.itemIds.join(`,`)}:${t}`,!0,{fileName:Z,lineNumber:317,columnNumber:11},this))},void 0,!1,{fileName:Z,lineNumber:315,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:313,columnNumber:5},this)}var Q=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-result-preview.tsx`;function UR({item:e,busy:t,onRedraft:n,onApply:r,applyError:i}){let a=e.entry.taskId,o=e.task?.result;return o?o.decision===`needs-input`&&o.clarificationQuestions&&o.clarificationQuestions.length>0?(0,I.jsxDEV)(GR,{taskId:a,busy:t,summary:o.summary,rationale:o.rationale,questions:o.clarificationQuestions,onRedraft:n},void 0,!1,{fileName:Q,lineNumber:31,columnNumber:7},this):e.entry.purpose===`backlog-curation`?o.backlogCurationDraft?(0,I.jsxDEV)(jR,{taskId:a,entry:e.entry,draft:o.backlogCurationDraft,recommendations:o.recommendations,curationPreview:e.backlogCurationPreview,busy:t,onApply:r,onRedraft:n},void 0,!1,{fileName:Q,lineNumber:43,columnNumber:45},this):(0,I.jsxDEV)(WR,{taskId:a,result:o,busy:t,onRedraft:n,canRedraft:!0},void 0,!1,{fileName:Q,lineNumber:44,columnNumber:12},this):o.backlogCurationDraft?(0,I.jsxDEV)(WR,{taskId:a,result:o,busy:t,onRedraft:n},void 0,!1,{fileName:Q,lineNumber:47,columnNumber:43},this):(0,I.jsxDEV)(KR,{taskId:a,result:o,sessionHint:e.entry.session,busy:t,onApply:r,applyError:i},void 0,!1,{fileName:Q,lineNumber:49,columnNumber:10},this):null}function WR({taskId:e,result:t,busy:n,onRedraft:r,canRedraft:i=!1}){let[a,o]=w.useState(``),s=a.trim();return(0,I.jsxDEV)(gA,{className:`mt-3 pt-3 text-sm`,children:[(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:t.summary},void 0,!1,{fileName:Q,lineNumber:66,columnNumber:7},this),t.nextSteps&&t.nextSteps.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:t.nextSteps.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Q,lineNumber:68,columnNumber:102},this))},void 0,!1,{fileName:Q,lineNumber:68,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Backlog curation draft unavailable`},void 0,!1,{fileName:Q,lineNumber:70,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`This result cannot be applied as backlog curation because it did not include an applicable curation draft.`},void 0,!1,{fileName:Q,lineNumber:71,columnNumber:7},this),i&&(0,I.jsxDEV)(gA,{children:[(0,I.jsxDEV)(YO,{className:`min-h-16`,value:a,onChange:e=>o(e.target.value),placeholder:`Optional steering for a curation redraft`},void 0,!1,{fileName:Q,lineNumber:74,columnNumber:11},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:n||s.length===0,onClick:()=>void r(e,{steering:s}),children:`Redraft curation`},void 0,!1,{fileName:Q,lineNumber:75,columnNumber:16},this)},void 0,!1,{fileName:Q,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:73,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:65,columnNumber:5},this)}function GR({taskId:e,busy:t,summary:n,rationale:r,questions:i,onRedraft:a}){let[o,s]=w.useState(()=>i.map(()=>``)),[c,l]=w.useState(``),u=o.map(e=>e.trim()),d=u.some(e=>e.length>0)||c.trim().length>0;return(0,I.jsxDEV)(gA,{className:`mt-3 pt-3`,children:[(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:n},void 0,!1,{fileName:Q,lineNumber:111,columnNumber:7},this),r&&(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:r},void 0,!1,{fileName:Q,lineNumber:112,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Needs input before drafting`},void 0,!1,{fileName:Q,lineNumber:113,columnNumber:7},this),(0,I.jsxDEV)(`ol`,{className:`grid gap-2`,children:i.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`grid gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[t+1,`. `,e.question]},void 0,!0,{fileName:Q,lineNumber:117,columnNumber:13},this),e.why&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:e.why},void 0,!1,{fileName:Q,lineNumber:118,columnNumber:30},this),e.options&&e.options.length>0&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:[`Options: `,e.options.join(`, `)]},void 0,!0,{fileName:Q,lineNumber:119,columnNumber:65},this),(0,I.jsxDEV)(YO,{className:`min-h-16`,value:o[t],onChange:e=>s(n=>n.map((n,r)=>r===t?e.target.value:n)),placeholder:`Your answer`},void 0,!1,{fileName:Q,lineNumber:120,columnNumber:13},this)]},e.question,!0,{fileName:Q,lineNumber:116,columnNumber:11},this))},void 0,!1,{fileName:Q,lineNumber:114,columnNumber:7},this),(0,I.jsxDEV)(YO,{className:`min-h-16`,value:c,onChange:e=>l(e.target.value),placeholder:`Optional steering for the redraft`},void 0,!1,{fileName:Q,lineNumber:129,columnNumber:7},this),(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,disabled:t||!d,onClick:()=>{let t={},n=i.map((e,t)=>({question:e.question,answer:u[t]??``})).filter(e=>e.answer.length>0).map(e=>`Q: ${e.question}\nA: ${e.answer}`);n.length>0&&(t.answers=n),c.trim().length>0&&(t.steering=c.trim()),a(e,t)},children:`Answer and redraft`},void 0,!1,{fileName:Q,lineNumber:131,columnNumber:9},this)},void 0,!1,{fileName:Q,lineNumber:130,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:110,columnNumber:5},this)}function KR({taskId:e,result:t,sessionHint:n,busy:r,onApply:i,applyError:a}){let[o,s]=w.useState(null),c=t.sessionPlanCreationDraft,l=t.recommendations,u=t.handoffDrafts??(t.handoffDraft?[t.handoffDraft]:[]),d=t.sessionPlanPatch?.sections??[],f=(n??c?.session??``).trim(),p=(t,n)=>{if(o!==t){s(t);return}s(null),i(e,n)},m=t.assumptionsOpenQuestions??[],h=!!t.summary||(t.nextSteps?.length??0)>0||(c?.sections.length??0)>0||d.length>0||m.length>0;return(0,I.jsxDEV)(gA,{className:`mt-3 pt-3 text-sm`,children:[a&&c&&(0,I.jsxDEV)(`div`,{className:`rounded-md border border-destructive/30 bg-destructive/10 p-2 text-xs text-destructive-foreground`,children:[a.automatic?`Automatic session-plan creation failed`:`Session-plan creation failed`,`: `,(0,I.jsxDEV)(`span`,{className:`break-words`,children:a.message},void 0,!1,{fileName:Q,lineNumber:175,columnNumber:111},this),`. Manual creation remains available below after review.`]},void 0,!0,{fileName:Q,lineNumber:174,columnNumber:9},this),c&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:[`Session-plan draft · `,c.planningType,`/`,c.planningDepth,` · `,c.sections.length,` section`,c.sections.length===1?``:`s`]},void 0,!0,{fileName:Q,lineNumber:181,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:o===`creation`?`destructive`:`default`,disabled:r,onClick:()=>p(`creation`,{applySessionPlanCreationDraft:{}}),children:o===`creation`?`Confirm create session plan`:`Create session plan`},void 0,!1,{fileName:Q,lineNumber:183,columnNumber:13},this),o===`creation`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:184,columnNumber:43},this)]},void 0,!0,{fileName:Q,lineNumber:182,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:180,columnNumber:9},this),l&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:`Generated recommendations are available.`},void 0,!1,{fileName:Q,lineNumber:191,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:o===`recommendations`?`destructive`:`secondary`,disabled:r,onClick:()=>p(`recommendations`,{applyRecommendations:!0}),children:o===`recommendations`?`Confirm apply recommendations`:`Apply recommendations`},void 0,!1,{fileName:Q,lineNumber:192,columnNumber:11},this),o===`recommendations`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:193,columnNumber:48},this)]},void 0,!0,{fileName:Q,lineNumber:190,columnNumber:9},this),u.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:[`Generated handoff draft`,u.length===1?``:`s`,` are available.`]},void 0,!0,{fileName:Q,lineNumber:199,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:o===`handoff`?`destructive`:`secondary`,disabled:r,onClick:()=>p(`handoff`,{applyHandoffDrafts:u.map((e,t)=>({index:t}))}),children:o===`handoff`?`Confirm apply handoff drafts`:`Apply handoff drafts`},void 0,!1,{fileName:Q,lineNumber:200,columnNumber:11},this),o===`handoff`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:201,columnNumber:40},this)]},void 0,!0,{fileName:Q,lineNumber:198,columnNumber:9},this),d.length>0&&(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`text-2xs uppercase tracking-wide text-muted-foreground`,children:[`Session-plan patch`,f?` · ${f}`:``,` · `,d.length,` section`,d.length===1?``:`s`]},void 0,!0,{fileName:Q,lineNumber:207,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,variant:o===`patch`?`destructive`:`default`,disabled:r||f.length===0,onClick:()=>p(`patch`,{applySessionPlanDrafts:[{session:f,sections:d.map(e=>e.dimension)}]}),children:o===`patch`?`Confirm apply session-plan content`:`Apply session-plan content`},void 0,!1,{fileName:Q,lineNumber:209,columnNumber:13},this),o===`patch`&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:210,columnNumber:40},this)]},void 0,!0,{fileName:Q,lineNumber:208,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:206,columnNumber:9},this),d.length>0&&f.length===0&&(0,I.jsxDEV)(`span`,{className:`text-xs text-muted-foreground`,children:`No target session is associated with this task; patch apply is unavailable.`},void 0,!1,{fileName:Q,lineNumber:214,columnNumber:68},this),h&&(0,I.jsxDEV)(`details`,{className:`mt-0.5`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer list-none text-xs text-muted-foreground hover:text-foreground [&::-webkit-details-marker]:hidden`,children:`Review draft details`},void 0,!1,{fileName:Q,lineNumber:218,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[t.summary&&(0,I.jsxDEV)(`p`,{className:`text-foreground`,children:t.summary},void 0,!1,{fileName:Q,lineNumber:220,columnNumber:32},this),t.nextSteps&&t.nextSteps.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:t.nextSteps.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Q,lineNumber:222,columnNumber:108},this))},void 0,!1,{fileName:Q,lineNumber:222,columnNumber:15},this),c&&c.sections.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:c.sections.map(e=>(0,I.jsxDEV)(qR,{title:e.dimension,body:e.content},e.dimension,!1,{fileName:Q,lineNumber:225,columnNumber:84},this))},void 0,!1,{fileName:Q,lineNumber:225,columnNumber:15},this),d.length>0&&(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:d.map(e=>(0,I.jsxDEV)(qR,{title:e.dimension,body:e.content},e.dimension,!1,{fileName:Q,lineNumber:228,columnNumber:75},this))},void 0,!1,{fileName:Q,lineNumber:228,columnNumber:15},this),m.length>0&&(0,I.jsxDEV)(`ul`,{className:`list-disc pl-4 text-xs text-muted-foreground`,children:m.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:Q,lineNumber:231,columnNumber:104},this))},void 0,!1,{fileName:Q,lineNumber:231,columnNumber:15},this),c&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Creating the plan opens it in the Plans tab, where you can keep iterating.`},void 0,!1,{fileName:Q,lineNumber:233,columnNumber:31},this)]},void 0,!0,{fileName:Q,lineNumber:219,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:217,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:169,columnNumber:5},this)}function qR({title:e,body:t}){let n=t.split(`
380
+ `).length;return(0,I.jsxDEV)(`details`,{className:`border-l-2 border-border pl-2 open:border-primary/50`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-xs font-semibold uppercase tracking-wide text-muted-foreground hover:text-foreground`,children:[e,` `,(0,I.jsxDEV)(`span`,{className:`ml-1 font-normal normal-case tracking-normal text-muted-foreground/70`,children:[n,` line`,n===1?``:`s`]},void 0,!0,{fileName:Q,lineNumber:249,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:248,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1`,children:(0,I.jsxDEV)(zO,{markdown:t},void 0,!1,{fileName:Q,lineNumber:252,columnNumber:9},this)},void 0,!1,{fileName:Q,lineNumber:251,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:247,columnNumber:5},this)}var $=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-card.tsx`;function JR({item:e,busy:t,titles:n,onCancel:r,onRemove:i,onRetry:a,onRedraft:o,onApply:s,applyError:c,detailLoading:l=!1,detailError:u}){let{entry:d,task:f}=e,p=f?.status??e.status??`queued`,m=p===`queued`||p===`running`,h=YR(e,n),g=d.selection.recommendationRef??d.selection.sourceRecommendationRef,_=(p===`failed`||p===`cancelled`)&&e.available,v=!m;return(0,I.jsxDEV)(`article`,{className:`rounded-md border border-border bg-background/60 p-3 text-sm`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(nk,{tone:QO(p),className:`shrink-0 text-xs`,children:p},void 0,!1,{fileName:$,lineNumber:45,columnNumber:13},this),(0,I.jsxDEV)(`p`,{className:`line-clamp-2 min-w-0 flex-1 break-words font-medium leading-snug text-foreground`,title:h.full,children:h.title},void 0,!1,{fileName:$,lineNumber:46,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:44,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-2xs text-muted-foreground`,children:[d.purpose===`recommendation-refresh`&&(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 text-text-bright`,children:`Recommendation refresh`},void 0,!1,{fileName:$,lineNumber:49,columnNumber:60},this),d.purpose===`backlog-curation`&&(0,I.jsxDEV)(`span`,{className:`rounded border border-primary/30 bg-primary/10 px-1.5 text-text-bright`,children:`Backlog analysis`},void 0,!1,{fileName:$,lineNumber:50,columnNumber:54},this),(0,I.jsxDEV)(ZR,{taskId:d.taskId},void 0,!1,{fileName:$,lineNumber:51,columnNumber:13},this),g&&(0,I.jsxDEV)(`span`,{className:`max-w-full truncate`,title:g,children:g},void 0,!1,{fileName:$,lineNumber:52,columnNumber:26},this),d.parentTaskId&&(0,I.jsxDEV)(`span`,{title:d.parentTaskId,children:[`↳ `,IA(d.parentTaskId)]},void 0,!0,{fileName:$,lineNumber:53,columnNumber:36},this),d.createdAt&&(0,I.jsxDEV)(`span`,{title:d.createdAt,children:[`started `,FA(d.createdAt)]},void 0,!0,{fileName:$,lineNumber:54,columnNumber:33},this),d.appliedAt&&(0,I.jsxDEV)(`span`,{title:d.appliedAt,children:[`applied `,FA(d.appliedAt)]},void 0,!0,{fileName:$,lineNumber:55,columnNumber:33},this)]},void 0,!0,{fileName:$,lineNumber:48,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:43,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2`,children:[m&&(0,I.jsxDEV)(L,{size:`sm`,variant:`outline`,disabled:t,onClick:()=>void r(d.taskId),children:[(0,I.jsxDEV)(fe,{className:`h-4 w-4`},void 0,!1,{fileName:$,lineNumber:60,columnNumber:109},this),` Cancel`]},void 0,!0,{fileName:$,lineNumber:60,columnNumber:13},this),v&&(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,disabled:t,onClick:()=>void i(d.taskId),children:[(0,I.jsxDEV)(Re,{className:`h-4 w-4`},void 0,!1,{fileName:$,lineNumber:63,columnNumber:107},this),` Dismiss`]},void 0,!0,{fileName:$,lineNumber:63,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:42,columnNumber:7},this),!e.available&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:e.staleReason??`Task record is no longer available from the daemon.`},void 0,!1,{fileName:$,lineNumber:68,columnNumber:27},this),m&&(0,I.jsxDEV)(QR,{task:f},void 0,!1,{fileName:$,lineNumber:70,columnNumber:19},this),(0,I.jsxDEV)(AL,{activityLog:f?.metadata?.activityLog},void 0,!1,{fileName:$,lineNumber:71,columnNumber:7},this),l&&(0,I.jsxDEV)(`p`,{className:`mt-2 flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(Jn,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:$,lineNumber:74,columnNumber:83},this),` Loading full task result…`]},void 0,!0,{fileName:$,lineNumber:74,columnNumber:9},this),u&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-destructive-foreground`,children:[`Could not load full task result: `,u]},void 0,!0,{fileName:$,lineNumber:77,columnNumber:9},this),c&&(0,I.jsxDEV)(`div`,{className:`mt-2 rounded-md border border-destructive/30 bg-destructive/10 p-2 text-xs`,children:[(0,I.jsxDEV)(`p`,{className:`font-semibold text-destructive-foreground`,children:c.automatic?`Automatic session-plan creation failed.`:`Session-plan creation failed.`},void 0,!1,{fileName:$,lineNumber:82,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`mt-1 break-words text-destructive-foreground`,children:c.message},void 0,!1,{fileName:$,lineNumber:83,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`mt-1 text-muted-foreground`,children:`Review the draft below, resolve any collision or validation issue, then use Create session plan to retry manually.`},void 0,!1,{fileName:$,lineNumber:84,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:81,columnNumber:9},this),p===`failed`&&(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-destructive-foreground`,children:f?.errorMessage??f?.errorCode??`Task failed.`},void 0,!1,{fileName:$,lineNumber:90,columnNumber:11},this),_&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:t,onClick:()=>void a(d.taskId),children:`Retry with preserved context`},void 0,!1,{fileName:$,lineNumber:91,columnNumber:30},this)},void 0,!1,{fileName:$,lineNumber:91,columnNumber:25},this)]},void 0,!0,{fileName:$,lineNumber:89,columnNumber:9},this),p===`cancelled`&&(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2`,children:[(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:f?.errorMessage??`Task cancelled.`},void 0,!1,{fileName:$,lineNumber:97,columnNumber:11},this),_&&(0,I.jsxDEV)(`div`,{children:(0,I.jsxDEV)(L,{size:`sm`,variant:`secondary`,disabled:t,onClick:()=>void a(d.taskId),children:`Retry with preserved context`},void 0,!1,{fileName:$,lineNumber:98,columnNumber:30},this)},void 0,!1,{fileName:$,lineNumber:98,columnNumber:25},this)]},void 0,!0,{fileName:$,lineNumber:96,columnNumber:9},this),p===`completed`&&f?.result&&(0,I.jsxDEV)(UR,{item:e,busy:t,onRedraft:o,onApply:s,applyError:c},void 0,!1,{fileName:$,lineNumber:103,columnNumber:9},this),p===`completed`&&!f?.result&&e.resultOmitted&&!l&&!u&&(0,I.jsxDEV)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:`Open the task details to load the full generated result.`},void 0,!1,{fileName:$,lineNumber:106,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:41,columnNumber:5},this)}function YR(e,t){let{entry:n,task:r}=e,i=r?.result?.sessionPlanCreationDraft?.topic?.trim(),a=n.derivedRequest?.trim()??``;if(i&&!nT(i))return{title:i,full:i};if(a&&!nT(a))return{title:a,full:a};let o=`Plan ${XR(n,t)}`;return{title:o,full:a||o}}function XR(e,t){let n=e.selection.recommendationRef??e.selection.sourceRecommendationRef;return n?`lane ${n}`:tT(e.selection,t)||(e.selection.epicId?`epic ${e.selection.epicId}`:IA(e.taskId))}function ZR({taskId:e}){let t=$n(),n=async()=>{try{await navigator.clipboard.writeText(e),t.push(`Task id copied`,`success`)}catch{t.push(`Could not copy task id`,`error`)}};return(0,I.jsxDEV)(`button`,{type:`button`,title:`${e}\n\nClick to copy the full task id.`,onClick:()=>void n(),className:`font-mono text-xs text-muted-foreground hover:text-foreground`,children:IA(e)},void 0,!1,{fileName:$,lineNumber:149,columnNumber:5},this)}function QR({task:e}){let t=e?.metadata?.sectionProgress,n=e?.metadata?.backlogCurationProgress,r=e?.metadata?.progressMessage;return(0,I.jsxDEV)(`div`,{className:`mt-2 grid gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(Jn,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`},void 0,!1,{fileName:$,lineNumber:161,columnNumber:48},this),` `,(0,I.jsxDEV)(`span`,{className:`min-w-0 break-words text-foreground`,children:r??`Planning in progress…`},void 0,!1,{fileName:$,lineNumber:161,columnNumber:100},this)]},void 0,!0,{fileName:$,lineNumber:161,columnNumber:7},this),n&&(0,I.jsxDEV)($R,{progress:n},void 0,!1,{fileName:$,lineNumber:162,columnNumber:35},this),t&&(0,I.jsxDEV)(oz,{progress:t},void 0,!1,{fileName:$,lineNumber:163,columnNumber:20},this)]},void 0,!0,{fileName:$,lineNumber:160,columnNumber:5},this)}function $R({progress:e}){let t=Math.max(0,e.total),n=t===0?0:Math.min(100,Math.round(e.completed/t*100)),r=ez(e.items);return(0,I.jsxDEV)(`div`,{className:`rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-foreground`,children:`Backlog item agents`},void 0,!1,{fileName:$,lineNumber:182,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:[e.completed,`/`,t,` analyzed`]},void 0,!0,{fileName:$,lineNumber:184,columnNumber:11},this),e.running>0&&(0,I.jsxDEV)(`span`,{className:`ml-2 text-[color:var(--lane-progress)]`,children:[e.running,` running`]},void 0,!0,{fileName:$,lineNumber:185,columnNumber:36},this),e.remaining>0&&(0,I.jsxDEV)(`span`,{className:`ml-2`,children:[e.remaining,` queued`]},void 0,!0,{fileName:$,lineNumber:186,columnNumber:38},this)]},void 0,!0,{fileName:$,lineNumber:183,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:181,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-2 h-1.5 overflow-hidden rounded-full bg-muted`,children:(0,I.jsxDEV)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${n}%`}},void 0,!1,{fileName:$,lineNumber:190,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:189,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-3 grid gap-3`,children:r.map(e=>(0,I.jsxDEV)(nz,{group:e},e.key,!1,{fileName:$,lineNumber:193,columnNumber:32},this))},void 0,!1,{fileName:$,lineNumber:192,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:180,columnNumber:5},this)}function ez(e){let t={running:[],attention:[],pending:[],done:[]};for(let n of e)t[tz(n.status)].push(n);return[{key:`running`,label:`Running`,cap:1/0},{key:`attention`,label:`Needs attention`,cap:1/0},{key:`pending`,label:`Queued`,cap:10},{key:`done`,label:`Analyzed`,cap:10}].filter(e=>t[e.key].length>0).map(e=>({...e,items:t[e.key]}))}function tz(e){return e===`running`?`running`:e===`failed`||e===`cancelled`?`attention`:e===`pending`?`pending`:`done`}function nz({group:e}){let t=e.items.slice(0,e.cap),n=e.items.length-t.length;return(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`div`,{className:`mb-1.5 flex items-center gap-2 text-2xs uppercase tracking-wide text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:$,lineNumber:229,columnNumber:9},this),(0,I.jsxDEV)(`span`,{className:`h-px flex-1 bg-border/60`},void 0,!1,{fileName:$,lineNumber:230,columnNumber:9},this),(0,I.jsxDEV)(`span`,{children:e.items.length},void 0,!1,{fileName:$,lineNumber:231,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:228,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:[t.map(e=>(0,I.jsxDEV)(rz,{item:e},e.itemId,!1,{fileName:$,lineNumber:234,columnNumber:30},this)),n>0&&(0,I.jsxDEV)(`p`,{className:`px-1 text-2xs text-muted-foreground`,children:[`+`,n,` more`]},void 0,!0,{fileName:$,lineNumber:235,columnNumber:24},this)]},void 0,!0,{fileName:$,lineNumber:233,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:227,columnNumber:5},this)}function rz({item:e}){let t=iz(e.status);return(0,I.jsxDEV)(`div`,{title:e.summary??e.itemId,className:`flex items-start gap-2 rounded border border-border/60 bg-background/60 px-2.5 py-1.5`,children:[e.status===`running`?(0,I.jsxDEV)(Jn,{className:xn(`mt-0.5 h-3.5 w-3.5 shrink-0`,t.className)},void 0,!1,{fileName:$,lineNumber:246,columnNumber:11},this):(0,I.jsxDEV)(t.icon,{className:xn(`mt-0.5 h-3.5 w-3.5 shrink-0`,t.className),"aria-hidden":`true`},void 0,!1,{fileName:$,lineNumber:247,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`min-w-0 line-clamp-2 leading-snug text-foreground`,children:e.title??e.itemId},void 0,!1,{fileName:$,lineNumber:250,columnNumber:11},this),e.verdict&&(0,I.jsxDEV)(nk,{tone:az(e.verdict),className:`shrink-0`,children:e.verdict},void 0,!1,{fileName:$,lineNumber:251,columnNumber:28},this)]},void 0,!0,{fileName:$,lineNumber:249,columnNumber:9},this),e.summary&&(0,I.jsxDEV)(`p`,{className:`mt-0.5 line-clamp-2 text-2xs text-muted-foreground`,children:e.summary},void 0,!1,{fileName:$,lineNumber:253,columnNumber:26},this)]},void 0,!0,{fileName:$,lineNumber:248,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:244,columnNumber:5},this)}function iz(e){switch(e){case`running`:return{icon:ce,className:`text-[color:var(--lane-progress)]`};case`completed`:case`cache-hit`:return{icon:se,className:`text-[color:var(--lane-done)]`};case`failed`:return{icon:ze,className:`text-[color:var(--lane-blocked)]`};case`cancelled`:return{icon:A,className:`text-muted-foreground`};default:return{icon:ce,className:`text-muted-foreground/60`}}}function az(e){let t=e.toLowerCase();return t.includes(`ship`)||t===`done`||t===`complete`?`done`:t.includes(`partial`)||t.includes(`progress`)?`warn`:t.includes(`need`)||t.includes(`keep`)?`info`:(t.includes(`archive`)||t.includes(`drop`)||t.includes(`remove`),`neutral`)}function oz({progress:e}){let t=e.coveredSections??[],n=e.remainingSections??[];return!e.currentSection&&t.length===0&&n.length===0?null:(0,I.jsxDEV)(`div`,{className:`grid gap-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,I.jsxDEV)(`span`,{className:`font-medium text-foreground`,children:`Draft sections`},void 0,!1,{fileName:$,lineNumber:292,columnNumber:7},this),e.currentSection&&(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(Jn,{className:`h-3 w-3 shrink-0 text-[color:var(--lane-progress)]`},void 0,!1,{fileName:$,lineNumber:295,columnNumber:11},this),(0,I.jsxDEV)(`span`,{children:[`Current section: `,(0,I.jsxDEV)(`span`,{className:`font-mono text-foreground`,children:e.currentSection},void 0,!1,{fileName:$,lineNumber:296,columnNumber:34},this)]},void 0,!0,{fileName:$,lineNumber:296,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:294,columnNumber:9},this),t.length>0&&(0,I.jsxDEV)(sz,{label:`Covered`,sections:t,tone:`done`},void 0,!1,{fileName:$,lineNumber:299,columnNumber:30},this),n.length>0&&(0,I.jsxDEV)(sz,{label:`Remaining`,sections:n,tone:`neutral`},void 0,!1,{fileName:$,lineNumber:300,columnNumber:32},this)]},void 0,!0,{fileName:$,lineNumber:291,columnNumber:5},this)}function sz({label:e,sections:t,tone:n}){return(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,I.jsxDEV)(`span`,{className:`mr-1 text-2xs uppercase tracking-wide text-muted-foreground`,children:e},void 0,!1,{fileName:$,lineNumber:308,columnNumber:7},this),t.map(e=>(0,I.jsxDEV)(nk,{tone:n,className:`font-mono normal-case`,children:e},e,!1,{fileName:$,lineNumber:309,columnNumber:34},this))]},void 0,!0,{fileName:$,lineNumber:307,columnNumber:5},this)}var cz=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/planning-task-drawer.tsx`,lz=sw();function uz({item:e,busy:t,titles:n,onCancel:r,onRemove:i,onRetry:a,onRedraft:o,onApply:s,applyError:c,onClose:l}){let[u,d]=w.useState(e),[f,p]=w.useState(`idle`),[m,h]=w.useState();return w.useEffect(()=>{if(d(e),h(void 0),e.resultOmitted!==!0){p(`idle`);return}let t=!0;return p(`loading`),lz.invokeAction(`get-planning-agent-task`,{taskId:e.entry.taskId}).then(n=>{t&&(d({...e,available:!0,status:n.task.status,task:n.task,resultOmitted:!1}),p(`idle`))}).catch(e=>{t&&(h(e instanceof Error?e.message:String(e)),p(`error`))}),()=>{t=!1}},[e]),(0,I.jsxDEV)(fA,{ariaLabel:`Planning task details`,title:`Planning task`,headerAlign:`center`,closeLabel:`Close planning task`,onClose:l,children:[(0,I.jsxDEV)(JR,{item:u,busy:t,titles:n,onCancel:r,onRemove:async e=>{await i(e),l()},onRetry:a,onRedraft:o,onApply:s,applyError:c,detailLoading:f===`loading`,detailError:m},void 0,!1,{fileName:cz,lineNumber:59,columnNumber:7},this),(0,I.jsxDEV)(jL,{activityLog:u.task?.metadata?.activityLog},void 0,!1,{fileName:cz,lineNumber:72,columnNumber:7},this)]},void 0,!0,{fileName:cz,lineNumber:58,columnNumber:5},this)}var dz=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/activity-rail.tsx`,fz=4;function pz(e){return e.task?.status??e.status}function mz(e){let t=pz(e);return t===`queued`||t===`running`}function hz(e){return pz(e)===`completed`&&!!e.task?.result&&e.available}function gz(e,t){if(e.purpose===`recommendation-refresh`)return`Recommendation refresh`;if(e.purpose===`backlog-curation`)return`Backlog audit`;if(e.session)return`Plan ${e.session}`;let n=e.selection?.recommendationRef??e.selection?.sourceRecommendationRef;if(n)return`Plan lane ${n}`;let r=e.selection?tT(e.selection,t):null;return r?`Plan: ${r}`:e.selection?.epicId?`Plan epic ${e.selection.epicId}`:`Planning task`}function _z({workflows:e,titles:t}){let n=e.items.filter(mz),r=e.items.filter(t=>!mz(t)&&!!e.applyErrors[t.entry.taskId]),i=new Set([...n,...r].map(e=>e.entry.taskId)),a=e.items.filter(e=>!mz(e)&&!i.has(e.entry.taskId)).slice(0,fz),o=[...n,...r,...a],[s,c]=w.useState(null),l=s?e.items.find(e=>e.entry.taskId===s)??null:null;return w.useEffect(()=>{s&&!e.items.some(e=>e.entry.taskId===s)&&c(null)},[s,e.items]),(0,I.jsxDEV)(`div`,{className:`grid gap-3`,"aria-label":`Workstation activity`,children:[(0,I.jsxDEV)(qO,{icon:te,iconClassName:`text-primary`,title:`Planning activity`,action:n.length>0?(0,I.jsxDEV)(Tn,{variant:`outline`,className:`ml-auto`,children:[n.length,` running`]},void 0,!0,{fileName:dz,lineNumber:84,columnNumber:38},this):void 0,contentClassName:`grid gap-2`,children:e.loading&&o.length===0?(0,I.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading tasks…`},void 0,!1,{fileName:dz,lineNumber:88,columnNumber:13},this):o.length===0?(0,I.jsxDEV)(Ck,{className:`p-2 text-xs`,children:`No planning tasks yet.`},void 0,!1,{fileName:dz,lineNumber:90,columnNumber:15},this):o.map(n=>(0,I.jsxDEV)(vz,{item:n,busy:e.busy,titles:t,applyError:e.applyErrors[n.entry.taskId],onOpen:()=>c(n.entry.taskId),onCancel:()=>void e.cancel(n.entry.taskId)},n.entry.taskId,!1,{fileName:dz,lineNumber:92,columnNumber:15},this))},void 0,!1,{fileName:dz,lineNumber:80,columnNumber:7},this),(0,I.jsxDEV)(`p`,{className:`px-1 text-2xs leading-relaxed text-muted-foreground`,children:`Builds run in the global queue (see the top bar). Open a plan to follow its build.`},void 0,!1,{fileName:dz,lineNumber:104,columnNumber:7},this),l&&(0,I.jsxDEV)(uz,{item:l,busy:e.busy,titles:t,onCancel:e.cancel,onRemove:e.remove,onRetry:e.retry,onRedraft:e.redraft,onApply:e.apply,applyError:e.applyErrors[l.entry.taskId],onClose:()=>c(null)},void 0,!1,{fileName:dz,lineNumber:109,columnNumber:9},this)]},void 0,!0,{fileName:dz,lineNumber:79,columnNumber:5},this)}function vz({item:e,busy:t,titles:n,applyError:r,onOpen:i,onCancel:a}){let o=pz(e),s=gz(e.entry,n),c=r?.message??e.task?.metadata?.progressMessage??e.staleReason,l=FA(e.task?.startedAt??e.entry.createdAt);return(0,I.jsxDEV)(`div`,{role:`button`,tabIndex:0,onClick:i,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:`cursor-pointer rounded-md border border-border bg-background/40 p-2 text-left transition-colors hover:border-primary`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,I.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-text-bright`,title:s,children:s},void 0,!1,{fileName:dz,lineNumber:140,columnNumber:9},this),r&&(0,I.jsxDEV)(nk,{tone:`destructive`,className:`shrink-0`,children:`Apply failed`},void 0,!1,{fileName:dz,lineNumber:141,columnNumber:24},this),hz(e)&&(0,I.jsxDEV)(nk,{tone:`accent`,className:`shrink-0`,children:`Review`},void 0,!1,{fileName:dz,lineNumber:142,columnNumber:32},this),o&&(0,I.jsxDEV)(nk,{tone:QO(o),className:`shrink-0 uppercase tracking-wide`,children:o},void 0,!1,{fileName:dz,lineNumber:143,columnNumber:20},this),(0,I.jsxDEV)(j,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`},void 0,!1,{fileName:dz,lineNumber:144,columnNumber:9},this)]},void 0,!0,{fileName:dz,lineNumber:139,columnNumber:7},this),(0,I.jsxDEV)(`div`,{className:`mt-1 flex items-center gap-2 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`code`,{title:e.entry.taskId,children:IA(e.entry.taskId)},void 0,!1,{fileName:dz,lineNumber:147,columnNumber:9},this),l&&(0,I.jsxDEV)(`span`,{children:[`· `,l]},void 0,!0,{fileName:dz,lineNumber:148,columnNumber:18},this),mz(e)&&(0,I.jsxDEV)(L,{variant:`ghost`,size:`sm`,className:`ml-auto h-6 px-2 text-2xs`,disabled:t,onClick:e=>{e.stopPropagation(),a()},children:[(0,I.jsxDEV)(Ve,{className:`h-3 w-3`},void 0,!1,{fileName:dz,lineNumber:151,columnNumber:13},this),` Cancel`]},void 0,!0,{fileName:dz,lineNumber:150,columnNumber:11},this)]},void 0,!0,{fileName:dz,lineNumber:146,columnNumber:7},this),c&&(0,I.jsxDEV)(`p`,{className:`mt-1 truncate text-2xs text-muted-foreground`,title:c,children:c},void 0,!1,{fileName:dz,lineNumber:155,columnNumber:19},this)]},void 0,!0,{fileName:dz,lineNumber:132,columnNumber:5},this)}var yz=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/backlog/analyze-backlog-control.tsx`;function bz({busy:e,analyzing:t,onAnalyze:n}){let[r,i]=w.useState(!1),a=e||t;return(0,I.jsxDEV)(`div`,{className:`relative flex items-center gap-1.5`,children:[(0,I.jsxDEV)(L,{size:`sm`,className:`h-7 flex-1 gap-1 px-2 text-2xs`,disabled:a,title:t?`Backlog analysis is already running - see Planning activity below`:`Analyze backlog and refresh recommendations`,onClick:()=>void n(),children:[a?(0,I.jsxDEV)(Jn,{className:`h-3 w-3`},void 0,!1,{fileName:yz,lineNumber:30,columnNumber:21},this):(0,I.jsxDEV)(re,{className:`h-3 w-3`},void 0,!1,{fileName:yz,lineNumber:30,columnNumber:55},this),` `,t?`Analyzing…`:`Analyze backlog`]},void 0,!0,{fileName:yz,lineNumber:23,columnNumber:7},this),(0,I.jsxDEV)(`button`,{type:`button`,"aria-label":`About backlog analysis`,"aria-expanded":r,className:`grid h-7 w-7 place-items-center rounded border border-border text-muted-foreground hover:text-foreground`,onClick:()=>i(e=>!e),children:(0,I.jsxDEV)(be,{className:`h-3.5 w-3.5`},void 0,!1,{fileName:yz,lineNumber:39,columnNumber:9},this)},void 0,!1,{fileName:yz,lineNumber:32,columnNumber:7},this),r&&(0,I.jsxDEV)(`div`,{className:`absolute right-0 top-8 z-20 w-72 rounded-md border border-border bg-card p-2 text-xs text-foreground shadow-lg`,children:`Checks open backlog items against current source, then prepares a reviewable curation draft and refreshed recommendations. Current source is the authority for shipped/superseded status; git, PR, lifecycle, and session history are navigation hints.`},void 0,!1,{fileName:yz,lineNumber:42,columnNumber:9},this)]},void 0,!0,{fileName:yz,lineNumber:22,columnNumber:5},this)}var xz=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/recommendations-rail.tsx`,Sz=5;function Cz(e){if(!e)return null;let t=e.reasons?.[0]??e.staleReasons?.[0];if(e.state===`stale`){let n=FA(e.staleSince);return{text:n?`Stale since ${n}`:`Stale - re-analyze before planning`,detail:t?.summary??t?.message}}if(e.state===`fresh`){let t=FA(e.freshAt);return{text:t?`Fresh as of ${t}`:`Fresh with the current backlog`}}return null}function wz({recommendations:e,actionability:t,status:n,freshness:r,selection:i,busy:a,analyzing:o,onAnalyze:s,onForkLane:c}){let[l,u]=w.useState(null),d=e=>{u(e),c(e).finally(()=>u(null))},f=(e?.recommendedNextSequence??[]).slice(0,Sz),p=e?.safeParallelizableGroups??[],m=e?.blockedChains??[],h=e?.rationaleAndAssumptions??[],g=e=>i.titles.get(e)??e,_=Cz(n),v=w.useMemo(()=>Tz(t),[t]);return(0,I.jsxDEV)(qO,{icon:xe,iconClassName:`text-[color:var(--lane-ready)]`,title:`Recommendations`,action:(0,I.jsxDEV)(pR,{freshness:r,status:n},void 0,!1,{fileName:xz,lineNumber:74,columnNumber:15},this),contentClassName:`grid gap-3`,children:[(0,I.jsxDEV)(bz,{busy:a,analyzing:o,onAnalyze:s},void 0,!1,{fileName:xz,lineNumber:77,columnNumber:9},this),_&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,title:_.detail,children:_.text},void 0,!1,{fileName:xz,lineNumber:78,columnNumber:27},this),f.length===0&&p.length===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`No planning guidance yet. Analyze the backlog to generate recommendations.`},void 0,!1,{fileName:xz,lineNumber:80,columnNumber:11},this),f.length>0&&(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`span`,{className:`mb-1 block text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Next up`},void 0,!1,{fileName:xz,lineNumber:85,columnNumber:13},this),(0,I.jsxDEV)(`ol`,{className:`grid gap-1`,children:f.map((e,t)=>{let n=v?Ez(v,e):void 0;return(0,I.jsxDEV)(`li`,{children:v!==null&&n?.state!==`actionable`?(0,I.jsxDEV)(kz,{ordinal:t+1,label:g(e.itemId),actionability:n??Dz(e.itemId)},void 0,!1,{fileName:xz,lineNumber:93,columnNumber:23},this):(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>i.pickItem(e.itemId),title:`Toggle this item in the backlog selection`,className:`flex w-full items-center gap-2 rounded border px-1.5 py-1 text-left transition-colors hover:border-primary ${i.selected.has(e.itemId)?`border-primary bg-primary/10`:`border-border`}`,children:[(0,I.jsxDEV)(`span`,{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-[color:var(--lane-ready)]/20 text-2xs font-bold text-[color:var(--lane-ready)]`,children:t+1},void 0,!1,{fileName:xz,lineNumber:101,columnNumber:25},this),(0,I.jsxDEV)(`span`,{className:`line-clamp-2 min-w-0 break-words text-2xs leading-snug text-foreground`,children:g(e.itemId)},void 0,!1,{fileName:xz,lineNumber:102,columnNumber:25},this)]},void 0,!0,{fileName:xz,lineNumber:95,columnNumber:23},this)},e.ref??`seq-${t}-${e.itemId}`,!1,{fileName:xz,lineNumber:91,columnNumber:19},this)})},void 0,!1,{fileName:xz,lineNumber:86,columnNumber:13},this)]},void 0,!0,{fileName:xz,lineNumber:84,columnNumber:11},this),p.length>0&&(0,I.jsxDEV)(`div`,{children:[(0,I.jsxDEV)(`span`,{className:`mb-1 block text-2xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Lanes · safe in parallel`},void 0,!1,{fileName:xz,lineNumber:114,columnNumber:13},this),(0,I.jsxDEV)(`div`,{className:`grid gap-1.5`,children:p.map(e=>{let t=e.title??e.ref,n=v?.groupsByRef.get(e.ref),r=n?n.actionableItemIds:v?[]:e.itemIds.filter(e=>i.planEligibleIds.has(e)),o=v!==null&&(n===void 0||n.state===`non-actionable`||r.length===0),s=n?.state===`partially-actionable`;return(0,I.jsxDEV)(`div`,{className:`rounded-md border border-border p-2`,children:[(0,I.jsxDEV)(`span`,{className:`block min-w-0 truncate text-2xs font-semibold text-text-bright`,title:t,children:t},void 0,!1,{fileName:xz,lineNumber:124,columnNumber:21},this),n?.items.some(e=>e.state===`non-actionable`)&&(0,I.jsxDEV)(Oz,{group:n,label:g},void 0,!1,{fileName:xz,lineNumber:126,columnNumber:23},this),o?(0,I.jsxDEV)(`p`,{className:`mt-1.5 rounded border border-border bg-muted/20 px-1.5 py-1 text-2xs text-muted-foreground`,children:`No actionable items remain in this lane.`},void 0,!1,{fileName:xz,lineNumber:129,columnNumber:23},this):(0,I.jsxDEV)(`div`,{className:`mt-1.5 flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`xs`,disabled:a||r.length===0,title:r.length===0?`No items in this lane are eligible for a new plan.`:`Start an AI planning task for this lane’s actionable items.`,onClick:()=>void i.planLane(r,e.ref),children:[`Plan`,r.length<e.itemIds.length?` (${r.length})`:``]},void 0,!0,{fileName:xz,lineNumber:132,columnNumber:25},this),(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>i.pickItems(r),className:`text-2xs text-muted-foreground hover:text-foreground`,title:s?`Toggle the actionable items in this lane in the backlog selection`:`Toggle every item in this lane in the backlog selection`,children:s?`Select actionable`:`Select`},void 0,!1,{fileName:xz,lineNumber:140,columnNumber:25},this),n?.state!==`partially-actionable`&&(0,I.jsxDEV)(`button`,{type:`button`,disabled:l!==null,onClick:()=>d(e.ref),className:`ml-auto inline-flex items-center gap-0.5 text-2xs text-muted-foreground hover:text-foreground disabled:opacity-50`,title:`Fork this lane into an editable draft plan unit`,children:[(0,I.jsxDEV)(M,{className:`h-3 w-3`},void 0,!1,{fileName:xz,lineNumber:156,columnNumber:29},this),` `,l===e.ref?`Forking…`:`Fork to draft`]},void 0,!0,{fileName:xz,lineNumber:149,columnNumber:27},this)]},void 0,!0,{fileName:xz,lineNumber:131,columnNumber:23},this)]},e.ref,!0,{fileName:xz,lineNumber:123,columnNumber:19},this)})},void 0,!1,{fileName:xz,lineNumber:115,columnNumber:13},this)]},void 0,!0,{fileName:xz,lineNumber:113,columnNumber:11},this),(m.length>0||h.length>0)&&(0,I.jsxDEV)(`details`,{className:`border-t border-border pt-2`,children:[(0,I.jsxDEV)(`summary`,{className:`cursor-pointer text-2xs text-muted-foreground`,children:`Blocked chains & rationale`},void 0,!1,{fileName:xz,lineNumber:170,columnNumber:13},this),m.length>0&&(0,I.jsxDEV)(`ul`,{className:`mt-1.5 grid gap-1.5`,children:m.map((e,t)=>(0,I.jsxDEV)(`li`,{className:`text-2xs`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[e.itemIds.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-[color:var(--lane-blocked)]/30 bg-[color:var(--lane-blocked)]/10 px-1 text-[color:var(--lane-blocked)]`,children:g(e)},e,!1,{fileName:xz,lineNumber:176,columnNumber:50},this)),(0,I.jsxDEV)(`span`,{className:`text-muted-foreground`,children:`blocked by`},void 0,!1,{fileName:xz,lineNumber:177,columnNumber:23},this),e.blockedBy.map(e=>(0,I.jsxDEV)(`span`,{className:`rounded border border-[color:var(--prio-medium)]/30 bg-[color:var(--prio-medium)]/10 px-1 text-[color:var(--prio-medium)]`,children:g(e)},e,!1,{fileName:xz,lineNumber:178,columnNumber:52},this))]},void 0,!0,{fileName:xz,lineNumber:175,columnNumber:21},this),e.rationale&&(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-muted-foreground`,children:e.rationale},void 0,!1,{fileName:xz,lineNumber:180,columnNumber:41},this)]},e.ref??t,!0,{fileName:xz,lineNumber:174,columnNumber:19},this))},void 0,!1,{fileName:xz,lineNumber:172,columnNumber:15},this),h.length>0&&(0,I.jsxDEV)(`ul`,{className:`mt-1.5 list-disc pl-4 text-2xs text-muted-foreground`,children:h.map(e=>(0,I.jsxDEV)(`li`,{children:e},e,!1,{fileName:xz,lineNumber:187,columnNumber:43},this))},void 0,!1,{fileName:xz,lineNumber:186,columnNumber:15},this)]},void 0,!0,{fileName:xz,lineNumber:169,columnNumber:11},this)]},void 0,!0,{fileName:xz,lineNumber:70,columnNumber:5},this)}function Tz(e){if(e===null)return null;let t=[...e.activeWork,...e.readyCandidates,...e.recommendedNextSequence];return{entriesByRef:new Map(t.flatMap(e=>e.ref?[[e.ref,e.actionability]]:[])),entriesByItemId:new Map(t.map(e=>[e.itemId,e.actionability])),groupsByRef:new Map(e.safeParallelizableGroups.map(e=>[e.ref,e]))}}function Ez(e,t){return(t.ref?e.entriesByRef.get(t.ref):void 0)??e.entriesByItemId.get(t.itemId)}function Dz(e){return{itemId:e,state:`non-actionable`,lifecycleState:`none`,reasonMessage:`This recommendation is not currently available for planning.`,associatedLinks:[]}}function Oz({group:e,label:t}){let n=e.items.filter(e=>e.state===`non-actionable`);return n.length===0?null:(0,I.jsxDEV)(`div`,{className:`mt-1.5 grid gap-1`,children:n.map(e=>(0,I.jsxDEV)(kz,{label:t(e.itemId),actionability:e},e.itemId,!1,{fileName:xz,lineNumber:226,columnNumber:9},this))},void 0,!1,{fileName:xz,lineNumber:224,columnNumber:5},this)}function kz({ordinal:e,label:t,actionability:n}){return(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-muted/20 px-1.5 py-1 text-left`,children:(0,I.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[e!==void 0&&(0,I.jsxDEV)(`span`,{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-muted text-2xs font-bold text-muted-foreground`,children:e},void 0,!1,{fileName:xz,lineNumber:236,columnNumber:35},this),(0,I.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxDEV)(`p`,{className:`line-clamp-2 break-words text-2xs leading-snug text-foreground`,children:t},void 0,!1,{fileName:xz,lineNumber:238,columnNumber:11},this),(0,I.jsxDEV)(`p`,{className:`mt-0.5 text-2xs text-muted-foreground`,children:n.reasonMessage??`This recommendation is not currently actionable.`},void 0,!1,{fileName:xz,lineNumber:239,columnNumber:11},this),(0,I.jsxDEV)(Az,{links:n.associatedLinks},void 0,!1,{fileName:xz,lineNumber:240,columnNumber:11},this)]},void 0,!0,{fileName:xz,lineNumber:237,columnNumber:9},this)]},void 0,!0,{fileName:xz,lineNumber:235,columnNumber:7},this)},void 0,!1,{fileName:xz,lineNumber:234,columnNumber:5},this)}function Az({links:e}){return e.length===0?null:(0,I.jsxDEV)(`ul`,{className:`mt-1 flex flex-wrap gap-1`,"aria-label":`Suppression evidence links`,children:e.map((e,t)=>(0,I.jsxDEV)(`li`,{children:e.prUrl?(0,I.jsxDEV)(`a`,{className:`rounded border border-border px-1 text-2xs text-[color:var(--lane-ready)] underline`,href:e.prUrl,target:`_blank`,rel:`noreferrer`,title:Mz(e),children:jz(e)},void 0,!1,{fileName:xz,lineNumber:254,columnNumber:13},this):(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1 text-2xs text-muted-foreground`,title:Mz(e),children:jz(e)},void 0,!1,{fileName:xz,lineNumber:256,columnNumber:13},this)},`${e.kind}-${e.label}-${t}`,!1,{fileName:xz,lineNumber:252,columnNumber:9},this))},void 0,!1,{fileName:xz,lineNumber:250,columnNumber:5},this)}function jz(e){return e.label||e.session||e.taskId||e.prdId||e.runId||e.sessionId||e.prUrl||e.kind}function Mz(e){return[e.label||e.kind,e.status?`status: ${e.status}`:void 0,e.session?`session: ${e.session}`:void 0,e.taskId?`task: ${e.taskId}`:void 0,e.prdId?`prd: ${e.prdId}`:void 0,e.runId?`run: ${e.runId}`:void 0,e.sessionId?`build session: ${e.sessionId}`:void 0,e.featureBranch?`branch: ${e.featureBranch}`:void 0,e.commitSha?`commit: ${e.commitSha}`:void 0,e.path?`path: ${e.path}`:void 0].filter(e=>!!e).join(`
381
+ `)}var Nz=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/selection-rail.tsx`,Pz=8;function Fz({selection:e,busy:t}){let n=e.selectedIds;if(n.length===0)return null;let r=e.selectedPlanEligibleIds.length,i=n.slice(0,Pz),a=n.length-i.length;return(0,I.jsxDEV)(qO,{className:`border-primary/50`,icon:Se,iconClassName:`text-primary`,title:`Build plan`,action:(0,I.jsxDEV)(`span`,{className:`ml-auto text-2xs font-normal text-muted-foreground`,children:[n.length,` selected`,r===n.length?``:` · ${r} eligible`]},void 0,!0,{fileName:Nz,lineNumber:29,columnNumber:9},this),contentClassName:`grid gap-2`,children:[(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:[i.map(t=>(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>e.toggle(t),title:`Remove from selection`,className:`inline-flex items-center gap-1 rounded border border-border bg-background/40 px-1.5 py-0.5 text-2xs text-foreground transition-colors hover:border-primary`,children:[(0,I.jsxDEV)(`span`,{className:`max-w-40 truncate`,children:e.titles.get(t)??t},void 0,!1,{fileName:Nz,lineNumber:44,columnNumber:15},this),(0,I.jsxDEV)(Ve,{className:`h-3 w-3 text-muted-foreground`},void 0,!1,{fileName:Nz,lineNumber:45,columnNumber:15},this)]},t,!0,{fileName:Nz,lineNumber:37,columnNumber:13},this)),a>0&&(0,I.jsxDEV)(`span`,{className:`px-1 text-2xs text-muted-foreground`,children:[`+`,a,` more`]},void 0,!0,{fileName:Nz,lineNumber:48,columnNumber:26},this)]},void 0,!0,{fileName:Nz,lineNumber:35,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(L,{size:`sm`,className:`flex-1`,disabled:t||r===0,onClick:()=>void e.promote(),children:`Promote to a build plan`},void 0,!1,{fileName:Nz,lineNumber:51,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`sm`,variant:`ghost`,onClick:e.clear,children:`Clear`},void 0,!1,{fileName:Nz,lineNumber:54,columnNumber:11},this)]},void 0,!0,{fileName:Nz,lineNumber:50,columnNumber:9},this),r===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`None of the selected items are eligible for a new plan.`},void 0,!1,{fileName:Nz,lineNumber:56,columnNumber:33},this)]},void 0,!0,{fileName:Nz,lineNumber:23,columnNumber:5},this)}function Iz(e){if(e.type===`backlog_item`)return{kind:`item`,itemId:e.id};if(e.type===`session_plan`){let t=e.refs?.session??e.id.replace(/^plan:/,``);return{kind:`plan`,planKey:t.startsWith(`plan:`)?t:`plan:${t}`}}return{kind:`display`}}var Lz=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/search/planning-search-panel.tsx`,Rz=[`backlog_item`,`epic`,`session_plan`,`recommendation`],zz=20;function Bz({openItem:e,openPlan:t}){let[n,r]=w.useState(``),[i,a]=w.useState(Rz),[o,s]=w.useState(null),[c,l]=w.useState(!1),[u,d]=w.useState(null),f=w.useCallback(async(e=0)=>{let t=n.trim();if(t){if(i.length===0){d(`Select at least one result type.`),s(null);return}l(!0),d(null);try{let n=await sw().invokeAction(`search-planning-records`,{query:t,limit:zz,offset:e,fields:[`rank`,`snippet`,`refs`,`updatedAt`],types:i});s(n)}catch(e){d(e instanceof Error?e.message:String(e))}finally{l(!1)}}},[n,i]);return(0,I.jsxDEV)(qO,{icon:Fe,title:`Planning search`,contentClassName:`grid gap-2`,children:[(0,I.jsxDEV)(`form`,{className:`grid gap-2`,onSubmit:e=>{e.preventDefault(),f(0)},children:[(0,I.jsxDEV)(`input`,{"aria-label":`Search planning records`,value:n,onChange:e=>r(e.target.value),placeholder:`Search items, epics, plans…`,className:`h-8 rounded border border-input bg-background px-2 text-xs`},void 0,!1,{fileName:Lz,lineNumber:44,columnNumber:9},this),(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:Rz.map(e=>(0,I.jsxDEV)(`label`,{className:`inline-flex items-center gap-1 rounded border border-border px-1.5 py-0.5 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`input`,{type:`checkbox`,checked:i.includes(e),onChange:()=>a(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},void 0,!1,{fileName:Lz,lineNumber:48,columnNumber:15},this),e.replace(`_`,` `)]},e,!0,{fileName:Lz,lineNumber:47,columnNumber:13},this))},void 0,!1,{fileName:Lz,lineNumber:45,columnNumber:9},this),i.length===0&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-destructive`,children:`Select at least one result type.`},void 0,!1,{fileName:Lz,lineNumber:53,columnNumber:40},this),(0,I.jsxDEV)(L,{size:`sm`,type:`submit`,disabled:c||n.trim().length===0||i.length===0,children:c?`Searching…`:`Search`},void 0,!1,{fileName:Lz,lineNumber:54,columnNumber:9},this)]},void 0,!0,{fileName:Lz,lineNumber:43,columnNumber:7},this),u&&(0,I.jsxDEV)(Kn,{children:u},void 0,!1,{fileName:Lz,lineNumber:56,columnNumber:17},this),o?.indexDirty&&(0,I.jsxDEV)(`p`,{className:`rounded border border-[color:var(--prio-medium)]/40 bg-[color:var(--prio-medium)]/10 p-1.5 text-2xs text-[color:var(--prio-medium)]`,children:[`Search index dirty: `,o.indexStatus.dirtyCount,` documents need rebuild.`]},void 0,!0,{fileName:Lz,lineNumber:57,columnNumber:28},this),o&&(0,I.jsxDEV)(Vz,{counts:o.countsByType},void 0,!1,{fileName:Lz,lineNumber:58,columnNumber:16},this),(0,I.jsxDEV)(`div`,{className:`grid gap-1`,children:o?.results.map(n=>(0,I.jsxDEV)(Hz,{result:n,openItem:e,openPlan:t},`${n.type}:${n.id}`,!1,{fileName:Lz,lineNumber:60,columnNumber:40},this))},void 0,!1,{fileName:Lz,lineNumber:59,columnNumber:7},this),o&&(0,I.jsxDEV)(`div`,{className:`flex items-center justify-between text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`span`,{children:[o.page.returned,` of `,o.total,` results · offset `,o.page.offset]},void 0,!0,{fileName:Lz,lineNumber:64,columnNumber:11},this),o.page.hasMore&&(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,onClick:()=>void f(o.page.nextOffset??o.page.offset+o.page.returned),children:`Next`},void 0,!1,{fileName:Lz,lineNumber:65,columnNumber:33},this)]},void 0,!0,{fileName:Lz,lineNumber:63,columnNumber:9},this)]},void 0,!0,{fileName:Lz,lineNumber:42,columnNumber:5},this)}function Vz({counts:e}){return(0,I.jsxDEV)(`div`,{className:`flex flex-wrap gap-1 text-2xs text-muted-foreground`,children:Rz.map(t=>(0,I.jsxDEV)(`span`,{className:`rounded border border-border px-1`,children:[t.replace(`_`,` `),`: `,e[t]??0]},t,!0,{fileName:Lz,lineNumber:73,columnNumber:100},this))},void 0,!1,{fileName:Lz,lineNumber:73,columnNumber:10},this)}function Hz({result:e,openItem:t,openPlan:n}){let r=Iz(e),i=(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(`span`,{className:`block text-2xs uppercase tracking-wide text-muted-foreground`,children:e.type.replace(`_`,` `)},void 0,!1,{fileName:Lz,lineNumber:78,columnNumber:21},this),(0,I.jsxDEV)(`span`,{className:`block text-xs font-medium text-text-bright`,children:e.title},void 0,!1,{fileName:Lz,lineNumber:78,columnNumber:138},this),e.snippet&&(0,I.jsxDEV)(Uz,{text:e.snippet.text},void 0,!1,{fileName:Lz,lineNumber:78,columnNumber:239},this)]},void 0,!0,{fileName:Lz,lineNumber:78,columnNumber:19},this);return r.kind===`item`?(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>t(r.itemId),className:`rounded border border-border p-2 text-left hover:border-primary`,children:i},void 0,!1,{fileName:Lz,lineNumber:79,columnNumber:38},this):r.kind===`plan`?(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>n(r.planKey),className:`rounded border border-border p-2 text-left hover:border-primary`,children:i},void 0,!1,{fileName:Lz,lineNumber:80,columnNumber:38},this):(0,I.jsxDEV)(`div`,{className:`rounded border border-border bg-muted/20 p-2`,children:i},void 0,!1,{fileName:Lz,lineNumber:81,columnNumber:10},this)}function Uz({text:e}){let t=e.split(/(<mark>|<\/mark>)/g),n=!1;return(0,I.jsxDEV)(`p`,{className:`mt-1 text-2xs text-muted-foreground`,children:t.map((e,t)=>e===`<mark>`?(n=!0,null):e===`</mark>`?(n=!1,null):n?(0,I.jsxDEV)(`mark`,{className:`rounded bg-primary/20 px-0.5 text-foreground`,children:e},t,!1,{fileName:Lz,lineNumber:87,columnNumber:219},this):(0,I.jsxDEV)(w.Fragment,{children:e},t,!1,{fileName:Lz,lineNumber:87,columnNumber:310},this))},void 0,!1,{fileName:Lz,lineNumber:87,columnNumber:10},this)}var Wz=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/storage/store-status-card.tsx`;function Gz({status:e,error:t}){return(0,I.jsxDEV)(`span`,{className:`inline-flex items-center rounded-full border border-border px-2 py-0.5 text-xs text-muted-foreground`,children:[`SQLite store · `,Mk(e,t).label]},void 0,!0,{fileName:Wz,lineNumber:13,columnNumber:10},this)}function Kz({status:e,error:t,onRefresh:n}){let[r,i]=w.useState(null),[a,o]=w.useState(null),[s,c]=w.useState(null),[l,u]=w.useState(!1),d=async(e,t={})=>{i(e),c(null);try{let r=await sw().invokeAction(e,t);o(r),await n()}catch(e){c(e instanceof Error?e.message:String(e))}finally{i(null)}};return(0,I.jsxDEV)(qO,{icon:he,title:`SQLite store`,contentClassName:`grid gap-2`,children:[t&&(0,I.jsxDEV)(Kn,{children:t},void 0,!1,{fileName:Wz,lineNumber:34,columnNumber:17},this),s&&(0,I.jsxDEV)(Kn,{children:s},void 0,!1,{fileName:Wz,lineNumber:35,columnNumber:23},this),e?e.initialized?(0,I.jsxDEV)(Xz,{status:e},void 0,!1,{fileName:Wz,lineNumber:36,columnNumber:124},this):(0,I.jsxDEV)(qz,{status:e},void 0,!1,{fileName:Wz,lineNumber:36,columnNumber:164},this):(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:`Store status has not loaded yet.`},void 0,!1,{fileName:Wz,lineNumber:36,columnNumber:18},this),e?.initialized&&(0,I.jsxDEV)(`div`,{className:`grid gap-1.5 border-t border-border pt-2`,children:[(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,disabled:r!==null,onClick:()=>void d(`compact-planning-store`,{dryRun:!0,sampleLimit:5}),children:`Dry-run compaction`},void 0,!1,{fileName:Wz,lineNumber:39,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,disabled:r!==null,onClick:()=>void d(`rebuild-search-index`,{}),children:`Rebuild search index`},void 0,!1,{fileName:Wz,lineNumber:40,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`xs`,variant:`outline`,disabled:r!==null,onClick:()=>void d(`optimize-search-index`,{}),children:`Optimize search index`},void 0,!1,{fileName:Wz,lineNumber:41,columnNumber:11},this),(0,I.jsxDEV)(L,{size:`xs`,variant:l?`destructive`:`outline`,disabled:r!==null,onClick:()=>{if(!l){u(!0);return}d(`vacuum-planning-store`,{}),u(!1)},children:l?`Confirm VACUUM`:`Vacuum store…`},void 0,!1,{fileName:Wz,lineNumber:42,columnNumber:11},this),r&&(0,I.jsxDEV)(`p`,{className:`text-2xs text-muted-foreground`,children:[`Running `,r,`…`]},void 0,!0,{fileName:Wz,lineNumber:43,columnNumber:20},this)]},void 0,!0,{fileName:Wz,lineNumber:38,columnNumber:9},this),a&&(0,I.jsxDEV)(Jz,{report:a},void 0,!1,{fileName:Wz,lineNumber:46,columnNumber:18},this)]},void 0,!0,{fileName:Wz,lineNumber:33,columnNumber:5},this)}function qz({status:e}){return(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[`Store not initialized at `,(0,I.jsxDEV)(`code`,{children:e.storePath},void 0,!1,{fileName:Wz,lineNumber:54,columnNumber:35},this),`.`]},void 0,!0,{fileName:Wz,lineNumber:54,columnNumber:7},this),(0,I.jsxDEV)(`p`,{children:`The store is initialized automatically when eforge-plan writes canonical planning data. Use the backlog, recommendation, and planning actions to create records.`},void 0,!1,{fileName:Wz,lineNumber:55,columnNumber:7},this)]},void 0,!0,{fileName:Wz,lineNumber:53,columnNumber:5},this)}function Jz({report:e}){let t=[e.summary,e.status?`status: ${e.status}`:void 0,e.runId?`run: ${e.runId}`:void 0,e.category?`category: ${e.category}`:void 0,Yz(`pruned`,e.prunedCounts),Yz(`archived`,e.archivedCounts),e.searchRefresh?`search: refreshed ${e.searchRefresh.refreshed??0}, deleted ${e.searchRefresh.deleted??0}, cleared ${e.searchRefresh.clearedDirty??0}`:void 0,e.beforeBytes!==void 0&&e.afterBytes!==void 0?`db: ${Ak(e.beforeBytes)} → ${Ak(e.afterBytes)}`:void 0,e.walBytesBefore!==void 0&&e.walBytesAfter!==void 0?`wal: ${Ak(e.walBytesBefore)} → ${Ak(e.walBytesAfter)}`:void 0].filter(Boolean);return(0,I.jsxDEV)(`p`,{className:`rounded border border-border bg-muted/20 p-1.5 text-2xs text-muted-foreground`,children:t.length>0?t.join(` · `):`${e.actionId??`Maintenance`} complete.`},void 0,!1,{fileName:Wz,lineNumber:72,columnNumber:10},this)}function Yz(e,t){if(t)return`${e}: ${Object.values(t).reduce((e,t)=>e+t,0)}`}function Xz({status:e}){let t=e.searchIndexStatus,n=e.recentMaintenanceRuns[0],r=n?[n.summary,n.status,n.runId??n.actionId,n.finishedAt??n.completedAt??n.startedAt].filter(Boolean).join(` · `):void 0,i=Object.entries(e.retentionEligibilityCounts).filter(([,e])=>e>0),a=i.reduce((e,[,t])=>e+t,0),o=i.map(([e,t])=>`${e}: ${t}`).join(` · `);return(0,I.jsxDEV)(`div`,{className:`grid gap-1 text-2xs text-muted-foreground`,children:[(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Schema:`},void 0,!1,{fileName:Wz,lineNumber:90,columnNumber:10},this),` `,e.sqliteSchemaVersion??`unknown`,` · `,(0,I.jsxDEV)(`code`,{children:e.storePath},void 0,!1,{fileName:Wz,lineNumber:90,columnNumber:103},this)]},void 0,!0,{fileName:Wz,lineNumber:90,columnNumber:7},this),(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Files:`},void 0,!1,{fileName:Wz,lineNumber:91,columnNumber:10},this),` SQLite `,Ak(e.fileSizes.dbBytes),` · WAL `,Ak(e.fileSizes.walBytes),` · SHM `,Ak(e.fileSizes.shmBytes)]},void 0,!0,{fileName:Wz,lineNumber:91,columnNumber:7},this),t&&(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Search:`},void 0,!1,{fileName:Wz,lineNumber:92,columnNumber:21},this),` `,t.dirty?`index dirty (${t.dirtyCount} docs)`:`index current`,t.lastRebuiltAt?` · rebuilt ${t.lastRebuiltAt}`:``]},void 0,!0,{fileName:Wz,lineNumber:92,columnNumber:18},this),(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Retention:`},void 0,!1,{fileName:Wz,lineNumber:93,columnNumber:10},this),` `,jk(a,`eligible record`),o?` · ${o}`:``]},void 0,!0,{fileName:Wz,lineNumber:93,columnNumber:7},this),r&&(0,I.jsxDEV)(`p`,{children:[(0,I.jsxDEV)(`span`,{className:`text-foreground`,children:`Recent:`},void 0,!1,{fileName:Wz,lineNumber:94,columnNumber:28},this),` `,r]},void 0,!0,{fileName:Wz,lineNumber:94,columnNumber:25},this)]},void 0,!0,{fileName:Wz,lineNumber:89,columnNumber:5},this)}var Zz=sw(),Qz=1600,$z=`eforge-plan:auto-apply-attempted:`;function eB(e){return`${$z}${e}`}function tB(e){try{return window.localStorage.getItem(eB(e))!==null}catch{return!1}}function nB(e){try{window.localStorage.setItem(eB(e),new Date().toISOString())}catch{}}function rB(e){try{window.localStorage.removeItem(eB(e))}catch{}}function iB(e){return e instanceof Error?e.message:String(e)}function aB(e){return typeof e==`string`&&e.trim().length>0}function oB(e){let t=e.entry.requestedOutputSections;return t.length===0||t.length===1&&t[0]===`sessionPlanCreationDraft`}function sB(e){return!!(e.backlogCurationDraft||e.recommendations||e.handoffDraft||e.handoffDrafts&&e.handoffDrafts.length>0||e.sessionPlanPatch||e.planRevisionTurn||e.planDrafts)}function cB(e){let t=e.sessionPlanCreationDraft;return e.decision===`ready`&&!!t&&aB(t?.session)&&aB(t?.topic)&&aB(t?.planningType)&&aB(t?.planningDepth)&&!!t?.sections.length}function lB(e){let t=e.task?.status??e.status,n=e.task?.result;return!e.available||t!==`completed`||e.entry.appliedAt||e.entry.purpose||!n||!oB(e)||sB(n)?!1:cB(n)}function uB(e){return Object.prototype.hasOwnProperty.call(e,`applySessionPlanCreationDraft`)}function dB(e,t){if(!e[t])return e;let n={...e};return delete n[t],n}function fB(e){let t=e.task?.status??e.status;return t===`queued`||t===`running`}function pB(e){return e===`completed`||e===`failed`||e===`cancelled`}function mB(e,t){let n=$n(),[r,i]=w.useState([]),[a,o]=w.useState(!0),[s,c]=w.useState(!1),[l,u]=w.useState({}),d=w.useRef(new Set),f=w.useRef(new Set),p=w.useRef(new Set),m=w.useRef(new Set),h=w.useCallback(e=>{n.push(iB(e),`error`)},[n]),g=w.useCallback(async()=>{o(!0);try{let e=await Zz.invokeAction(`list-planning-agent-tasks`,{});i((e.tasks??[]).filter(e=>!m.current.has(e.entry.taskId)))}catch(e){h(e)}finally{o(!1)}},[h]);w.useEffect(()=>{g()},[g]);let _=w.useRef(r);_.current=r;let v=r.some(fB),y=w.useRef(new Map);w.useEffect(()=>{if(!v)return;let e=!1,t=window.setInterval(()=>{for(let t of _.current.filter(fB))Zz.invokeAction(`get-planning-agent-task`,{taskId:t.entry.taskId}).then(n=>{e||(y.current.delete(t.entry.taskId),i(e=>e.map(e=>e.entry.taskId===t.entry.taskId?{...e,task:n.task,status:n.task.status,available:!0}:e)),pB(n.task.status)&&g())}).catch(n=>{if(e)return;let r=iB(n);y.current.get(t.entry.taskId)!==r&&(y.current.set(t.entry.taskId,r),h(n))})},Qz);return()=>{e=!0,window.clearInterval(t)}},[v,g,h]);let b=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`start-planning-agent-task`,e);return n.push(`Started planning task ${t.task.taskId}.`,`success`),await g(),t.task}catch(e){return h(e),null}finally{c(!1)}},[g,h,n]),x=w.useCallback(async(e={})=>{c(!0);try{let t=e.itemAuditConcurrency===void 0?{}:{itemAuditConcurrency:e.itemAuditConcurrency},r=await Zz.invokeAction(`analyze-all-backlog`,t);return n.push(`${r.reused?`Reusing`:`Started`} backlog analysis task ${r.task.taskId}.`,`success`),await g(),r.task}catch(e){return h(e),null}finally{c(!1)}},[g,h,n]),S=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`retry-planning-agent-task`,{taskId:e});n.push(`Retrying as ${t.task.taskId}.`,`success`),rB(e),u(t=>dB(t,e)),await g()}catch(e){h(e)}finally{c(!1)}},[g,h,n]),C=w.useCallback(async(e,t)=>{c(!0);try{let r={taskId:e};t.answers&&t.answers.length>0&&(r.answers=t.answers),t.steering&&t.steering.trim().length>0&&(r.steering=t.steering.trim());let i=await Zz.invokeAction(`redraft-planning-agent-task`,r);n.push(`Redrafting as ${i.task.taskId}.`,`success`),rB(e),u(t=>dB(t,e)),await g()}catch(e){h(e)}finally{c(!1)}},[g,h,n]),T=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`cancel-planning-agent-task`,{taskId:e,reason:`user requested cancellation`});n.push(`Cancelled ${t.task.taskId}.`,`success`),i(n=>n.map(n=>n.entry.taskId===e?{...n,task:t.task,status:t.task.status}:n))}catch(e){h(e)}finally{c(!1)}},[h,n]),ee=w.useCallback(async e=>{c(!0);try{let t=await Zz.invokeAction(`remove-planning-agent-task`,{taskId:e});n.push(t.removed?`Removed ${t.taskId} from the planning task list.`:`${t.taskId} was not in the planning task list.`,`success`),i(t=>t.filter(t=>t.entry.taskId!==e)),u(t=>dB(t,e)),await g()}catch(e){h(e)}finally{c(!1)}},[g,h,n]),E=w.useCallback(async(r,a,o={})=>{o.automatic||c(!0);try{let s;try{s=await Zz.invokeAction(`apply-planning-agent-task-result`,{taskId:r,...a})}catch(e){let t=iB(e);return(o.automatic||uB(a))&&(o.automatic&&p.current.add(r),u(e=>({...e,[r]:{taskId:r,message:t,automatic:!!o.automatic,occurredAt:new Date().toISOString()}}))),o.automatic||h(e),null}o.suppressSuccessToast||n.push(`Applied generated output from ${s.taskId}.`,`success`),rB(r),u(e=>dB(e,r)),p.current.delete(r);let c=s.sessionPlanCreationDraft;c!==void 0&&(m.current.add(r),i(e=>e.filter(e=>e.entry.taskId!==r)));try{await e()}catch(e){h(e)}try{await g()}catch(e){h(e)}if(c!==void 0&&o.automatic)try{t?.(c)}catch(e){h(e)}return s}finally{o.automatic||c(!1)}},[t,e,g,h,n]);return w.useEffect(()=>{for(let e of r){let t=e.entry.taskId;lB(e)&&(m.current.has(t)||f.current.has(t)||d.current.has(t)||p.current.has(t)||tB(t)||(f.current.add(t),nB(t),d.current.add(t),E(t,{applySessionPlanCreationDraft:{}},{automatic:!0,suppressSuccessToast:!0}).finally(()=>{d.current.delete(t)})))}},[E,r]),{items:r,loading:a,busy:s,applyErrors:l,reload:g,start:b,analyzeAllBacklog:x,retry:S,redraft:C,cancel:T,remove:ee,apply:w.useCallback(async(e,t)=>uB(t)&&d.current.has(e)?null:E(e,t),[E])}}var hB=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/views/workstation-view.tsx`,gB=[{id:`roadmap`,label:`Roadmap`,icon:Ce},{id:`board`,label:`Backlog`,icon:ve},{id:`plans`,label:`Plans`,icon:me}];function _B({data:e}){let t=qx(),n=w.useCallback(e=>{t.setQuery(t=>{t.set(`focus`,`plans`),t.set(`plan`,cT(e.session))})},[t]),r=mB(e.refresh,n),i=eT(e.board,r),a=w.useMemo(()=>r.items.some(e=>{let t=e.task?.status??e.status;return(t===`queued`||t===`running`)&&e.entry.purpose===`backlog-curation`}),[r.items]),o=vB(t.query.get(`focus`)),s=w.useCallback(e=>{t.setQuery(t=>{e===`board`?t.delete(`focus`):t.set(`focus`,e)})},[t]),c=w.useCallback(async(e,t)=>{let i=await r.apply(e,t);return i?.sessionPlanCreationDraft&&n(i.sessionPlanCreationDraft),i},[r,n]),l=w.useMemo(()=>({...r,apply:c}),[r,c]),u=e.board.items??[],d=w.useCallback(e=>{t.setQuery(t=>{t.delete(`focus`),t.set(`item`,e)})},[t]),f=w.useCallback(e=>{t.setQuery(t=>{t.set(`focus`,`plans`),t.set(`plan`,e)})},[t]),p=w.useCallback(async n=>{let r=await e.forkRecommendationToDraftUnit(n);t.setQuery(e=>{e.set(`focus`,`plans`),e.set(`plan`,sT(r.unitId))})},[e,t]),m=w.useMemo(()=>mT(e.artifacts),[e.artifacts]),h=ok(e.roadmapState),g={roadmap:h.local+h.configuredShared+h.discovered,board:e.board.counts?.open??u.length,plans:e.artifacts.length};return(0,I.jsxDEV)(`div`,{className:`grid gap-4`,children:(0,I.jsxDEV)(`div`,{className:o===`plans`?`grid gap-4`:`grid gap-4 lg:grid-cols-[minmax(0,1fr)_22rem] lg:items-start`,children:[(0,I.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,I.jsxDEV)(`nav`,{className:`mb-4 flex flex-wrap gap-1 border-b pb-2`,children:gB.map(e=>{let t=e.icon,n=e.id===o;return(0,I.jsxDEV)(`button`,{type:`button`,onClick:()=>s(e.id),"aria-current":n?`page`:void 0,className:`inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-sm font-medium transition-colors ${n?`bg-accent text-text-bright`:`text-muted-foreground hover:bg-accent/60`}`,children:[(0,I.jsxDEV)(t,{className:`h-4 w-4`},void 0,!1,{fileName:hB,lineNumber:111,columnNumber:19},this),` `,(0,I.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:hB,lineNumber:111,columnNumber:48},this),(0,I.jsxDEV)(`span`,{className:`rounded-full border px-1.5 text-2xs ${n?`border-border text-muted-foreground`:`border-transparent text-muted-foreground/70`}`,children:g[e.id]},void 0,!1,{fileName:hB,lineNumber:112,columnNumber:19},this)]},e.id,!0,{fileName:hB,lineNumber:104,columnNumber:17},this)})},void 0,!1,{fileName:hB,lineNumber:99,columnNumber:11},this),o===`roadmap`?(0,I.jsxDEV)(hk,{state:e.roadmapState,recommendationStatus:e.recommendationStatus,recommendationFreshness:e.recommendationFreshness,activeRecommendationRefreshTask:e.activeRecommendationRefreshTask,onSaveLocalFocus:e.saveRoadmapState,onRefreshRecommendations:e.refreshRecommendations},void 0,!1,{fileName:hB,lineNumber:119,columnNumber:13},this):o===`plans`?(0,I.jsxDEV)(bL,{artifacts:e.artifacts,draftUnits:e.draftUnits,titles:i.titles,onRefresh:e.refresh,onUpdateDraftUnit:e.updateDraftUnit,onDeleteDraftUnit:e.deleteDraftUnit,onPromoteDraftUnit:t=>e.promoteDraftUnit(t),onMergeDraftUnits:e.mergeDraftUnits,onSplitDraftUnit:e.splitDraftUnit,onAdviseMergeDraftUnits:e.adviseMergeDraftUnits,onAdviseSplitDraftUnit:e.adviseSplitDraftUnit},void 0,!1,{fileName:hB,lineNumber:128,columnNumber:13},this):(0,I.jsxDEV)(AA,{board:e.board,selection:i,itemPlanIndex:m,onRefresh:e.refresh,onLoadMoreBoard:e.loadMoreBoard,onLoadClosedLane:e.loadClosedLane},void 0,!1,{fileName:hB,lineNumber:142,columnNumber:13},this)]},void 0,!0,{fileName:hB,lineNumber:98,columnNumber:9},this),o!==`plans`&&(0,I.jsxDEV)(`aside`,{className:`grid min-w-0 gap-3 lg:sticky lg:top-[5.5rem]`,children:o===`roadmap`?(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(gk,{state:e.roadmapState,loading:e.loading,recommendationStatus:e.recommendationStatus,recommendationFreshness:e.recommendationFreshness,activeRecommendationRefreshTask:e.activeRecommendationRefreshTask,onReloadRoadmap:e.refresh},void 0,!1,{fileName:hB,lineNumber:157,columnNumber:17},this),(0,I.jsxDEV)(Kz,{status:e.storeStatus,error:e.storeStatusError,onRefresh:e.refreshStoreStatus},void 0,!1,{fileName:hB,lineNumber:165,columnNumber:17},this)]},void 0,!0,{fileName:hB,lineNumber:156,columnNumber:15},this):(0,I.jsxDEV)(I.Fragment,{children:[(0,I.jsxDEV)(Bz,{openItem:d,openPlan:f},void 0,!1,{fileName:hB,lineNumber:169,columnNumber:17},this),(0,I.jsxDEV)(Fz,{selection:i,busy:r.busy},void 0,!1,{fileName:hB,lineNumber:170,columnNumber:17},this),(0,I.jsxDEV)(wz,{recommendations:e.recommendations,actionability:e.recommendationActionability,status:e.recommendationStatus,freshness:e.recommendationFreshness,selection:i,busy:r.busy,analyzing:a,onAnalyze:r.analyzeAllBacklog,onForkLane:p},void 0,!1,{fileName:hB,lineNumber:171,columnNumber:17},this),(0,I.jsxDEV)(_z,{workflows:l,titles:i.titles},void 0,!1,{fileName:hB,lineNumber:182,columnNumber:17},this)]},void 0,!0,{fileName:hB,lineNumber:168,columnNumber:15},this)},void 0,!1,{fileName:hB,lineNumber:154,columnNumber:11},this)]},void 0,!0,{fileName:hB,lineNumber:97,columnNumber:7},this)},void 0,!1,{fileName:hB,lineNumber:96,columnNumber:5},this)}function vB(e){return e===`roadmap`||e===`plans`?e:`board`}var yB=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/App.tsx`;function bB(){return(0,I.jsxDEV)(Qn,{children:(0,I.jsxDEV)(Kx,{children:(0,I.jsxDEV)(xB,{},void 0,!1,{fileName:yB,lineNumber:16,columnNumber:9},this)},void 0,!1,{fileName:yB,lineNumber:15,columnNumber:7},this)},void 0,!1,{fileName:yB,lineNumber:14,columnNumber:5},this)}function xB(){let e=kw();return(0,I.jsxDEV)(`div`,{className:`min-h-screen bg-background text-foreground`,children:[(0,I.jsxDEV)(`header`,{className:`sticky top-0 z-10 border-b bg-background/95 px-5 py-3 backdrop-blur`,children:(0,I.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2 text-lg font-semibold text-text-bright`,children:[(0,I.jsxDEV)(Le,{className:`h-5 w-5 text-primary`},void 0,!1,{fileName:yB,lineNumber:30,columnNumber:13},this),` eforge-plan`]},void 0,!0,{fileName:yB,lineNumber:29,columnNumber:11},this),(0,I.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxDEV)(Gz,{status:e.storeStatus,error:e.storeStatusError},void 0,!1,{fileName:yB,lineNumber:33,columnNumber:13},this),(0,I.jsxDEV)(Tn,{variant:`outline`,children:e.bridgeVersion?`bridge v${e.bridgeVersion}`:`mock bridge`},void 0,!1,{fileName:yB,lineNumber:34,columnNumber:13},this),(0,I.jsxDEV)(L,{variant:`outline`,size:`sm`,onClick:()=>void e.refresh(),disabled:e.loading,children:[e.loading?(0,I.jsxDEV)(Jn,{},void 0,!1,{fileName:yB,lineNumber:36,columnNumber:31},this):(0,I.jsxDEV)(Ae,{className:`h-4 w-4`},void 0,!1,{fileName:yB,lineNumber:36,columnNumber:45},this),` Refresh`]},void 0,!0,{fileName:yB,lineNumber:35,columnNumber:13},this)]},void 0,!0,{fileName:yB,lineNumber:32,columnNumber:11},this)]},void 0,!0,{fileName:yB,lineNumber:28,columnNumber:9},this)},void 0,!1,{fileName:yB,lineNumber:27,columnNumber:7},this),(0,I.jsxDEV)(`main`,{className:`p-4`,children:[e.error&&(0,I.jsxDEV)(Kn,{className:`mb-3 rounded-md p-3 text-sm`,children:e.error},void 0,!1,{fileName:yB,lineNumber:43,columnNumber:24},this),(0,I.jsxDEV)(_B,{data:e},void 0,!1,{fileName:yB,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:yB,lineNumber:42,columnNumber:7},this)]},void 0,!0,{fileName:yB,lineNumber:26,columnNumber:5},this)}var SB=`/home/runner/work/eforge/eforge/eforge/extensions/eforge-plan/workstation-src/plans/src/main.tsx`;(0,He.createRoot)(document.getElementById(`root`)).render((0,I.jsxDEV)(w.StrictMode,{children:(0,I.jsxDEV)(bB,{},void 0,!1,{fileName:SB,lineNumber:8,columnNumber:5},void 0)},void 0,!1,{fileName:SB,lineNumber:7,columnNumber:3},void 0));export{l as i,_x as n,o as r,yO as t};