@testmuai/kane-cli 0.6.4 → 0.6.7
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.
- package/bin/kane-cli.cjs +91 -0
- package/bin/resolve-runtime.cjs +45 -0
- package/dist/{ChatSurface-VXYU6KFW.js → ChatSurface-Y2M6HB2R.js} +1 -1
- package/dist/{ChromeProfilePicker-QWTM7DK6.js → ChromeProfilePicker-IW3K43VC.js} +1 -1
- package/dist/{CliFeedbackPrompt-6NVWMONO.js → CliFeedbackPrompt-ZJ4LZGPK.js} +1 -1
- package/dist/{CliUploadProgress-2YRQLECI.js → CliUploadProgress-SMPVN7Q6.js} +1 -1
- package/dist/{ConfigView-I4R5M7BO.js → ConfigView-RTAGKZH4.js} +1 -1
- package/dist/EvidenceViewOffer-LHPIZUGQ.js +2 -0
- package/dist/{FolderPicker-5VWBYTAK.js → FolderPicker-QUY7LNVZ.js} +1 -1
- package/dist/{HelpView-OJZW4XWX.js → HelpView-47J2NZWJ.js} +1 -1
- package/dist/{InfoBox-TGELGCBR.js → InfoBox-G63WZAMH.js} +1 -1
- package/dist/{LinksBox-B5EBRY26.js → LinksBox-2HIHDT5K.js} +1 -1
- package/dist/{ProfilesView-3SJRIBHQ.js → ProfilesView-TUXQXPXJ.js} +1 -1
- package/dist/{ProjectPicker-72HKMBEY.js → ProjectPicker-VUABWG2P.js} +1 -1
- package/dist/{SaveSessionPrompt-CK5SGNRO.js → SaveSessionPrompt-PNVGNLGO.js} +1 -1
- package/dist/SingleShotApp-BZV5CULT.js +2 -0
- package/dist/{SummaryBox-ABB7ST26.js → SummaryBox-36MDDDYQ.js} +1 -1
- package/dist/TestMdRunView-A655PMEY.js +2 -0
- package/dist/{WhoamiView-OF354UGC.js → WhoamiView-LHU6RGIY.js} +1 -1
- package/dist/{bind-BWILBZGR.js → bind-E67W2DXG.js} +2 -2
- package/dist/{bridge-LNDJS3HH.js → bridge-WVFTWHKP.js} +1 -1
- package/dist/{changelog-BWCEZQ23.js → changelog-D4Y5QJIZ.js} +1 -1
- package/dist/chat-committer-WOTCC7L3.js +2 -0
- package/dist/chat-controller-MONWZKS7.js +4 -0
- package/dist/{chunk-YI4XULHR.js → chunk-3CY3DZDH.js} +15 -15
- package/dist/{chunk-IOTJZTHX.js → chunk-3GOZ7R4G.js} +12 -12
- package/dist/{chunk-DNOBOZPO.js → chunk-3NR6OTHL.js} +1 -1
- package/dist/{chunk-MK2G7VIF.js → chunk-5J3HQZNU.js} +1 -1
- package/dist/{chunk-ADOXYGZE.js → chunk-6EC54ZHT.js} +1 -1
- package/dist/{chunk-CLTANA4L.js → chunk-77PBBYRZ.js} +2 -2
- package/dist/{chunk-GYW7LVVL.js → chunk-7Z64BL5D.js} +1 -1
- package/dist/{chunk-5CTMOJG4.js → chunk-7ZMYAXES.js} +1 -1
- package/dist/{chunk-WFEGGQJ4.js → chunk-A2AZQ4PQ.js} +1 -1
- package/dist/{chunk-HNE4TDOZ.js → chunk-AASBJJCU.js} +4 -4
- package/dist/{chunk-5KSB5MOF.js → chunk-BBZBXSTP.js} +1 -1
- package/dist/chunk-CIFVUX3B.js +4 -0
- package/dist/chunk-CVOGP253.js +2 -0
- package/dist/{chunk-O66EU5UV.js → chunk-DCWCANNS.js} +1 -1
- package/dist/{chunk-4MUHS3UL.js → chunk-DL5CXC64.js} +1 -1
- package/dist/chunk-DNNZ353O.js +4 -0
- package/dist/chunk-E4EHWO3J.js +4 -0
- package/dist/{chunk-AXABTFCD.js → chunk-EDM6YACR.js} +1 -1
- package/dist/{chunk-YMSN25DX.js → chunk-FYSWQ4K7.js} +1 -1
- package/dist/{chunk-QZI43UNV.js → chunk-G5CYSC23.js} +1 -1
- package/dist/chunk-GAD6IBZ6.js +12 -0
- package/dist/chunk-GLS46X7N.js +5 -0
- package/dist/chunk-GLVDOR5G.js +2 -0
- package/dist/chunk-I37UOX73.js +14 -0
- package/dist/chunk-IAHKTEET.js +2 -0
- package/dist/{chunk-IXVR66NS.js → chunk-IX34JIXK.js} +1 -1
- package/dist/{chunk-BNN6ZDJW.js → chunk-IYTHPCQ2.js} +1 -1
- package/dist/chunk-JR37W7IJ.js +6 -0
- package/dist/{chunk-IRRGSC7B.js → chunk-KVAALPTA.js} +1 -1
- package/dist/{chunk-ZZLR3O5A.js → chunk-L4JIMNKW.js} +1 -1
- package/dist/{chunk-WT3SMSY5.js → chunk-LVWB6TB2.js} +1 -1
- package/dist/chunk-MBXWXBDM.js +4 -0
- package/dist/{chunk-UZSG54OY.js → chunk-MTG2LRGV.js} +1 -1
- package/dist/chunk-NEHF4C6X.js +7 -0
- package/dist/chunk-NMKZHHB6.js +2 -0
- package/dist/{chunk-DXK55KGR.js → chunk-NMZATEKQ.js} +8 -8
- package/dist/{chunk-2PQXEEVY.js → chunk-NVGBE2DR.js} +1 -1
- package/dist/{chunk-ANIVHX3P.js → chunk-OPDJD7WS.js} +2 -2
- package/dist/{chunk-6GTOYTCQ.js → chunk-OSALXGD4.js} +1 -1
- package/dist/{chunk-ZQP3MCZW.js → chunk-QG6LJCZG.js} +1 -1
- package/dist/{chunk-MCQXRJGH.js → chunk-QHFUDBQH.js} +1 -1
- package/dist/{chunk-MVF4KRHA.js → chunk-QVJ7C4GW.js} +1 -1
- package/dist/{chunk-W36P7S5W.js → chunk-QYTMD6NM.js} +1 -1
- package/dist/{chunk-OB6CKLEL.js → chunk-R7NNIQMH.js} +1 -1
- package/dist/{chunk-652FEDL4.js → chunk-RBLZUDMZ.js} +2 -2
- package/dist/chunk-RGDQMKNJ.js +4 -0
- package/dist/{chunk-XUJ5EPVW.js → chunk-RGQIBS32.js} +1 -1
- package/dist/{chunk-FV4LLU3T.js → chunk-RWIHSR4H.js} +1 -1
- package/dist/{chunk-I2JUBAPU.js → chunk-SK2GVMTJ.js} +1 -1
- package/dist/{chunk-POI6DCP6.js → chunk-TADJIOHV.js} +1 -1
- package/dist/{chunk-PYB2EXRE.js → chunk-TSWGQKUK.js} +2 -2
- package/dist/{chunk-64QURIT6.js → chunk-TTJ4XMWP.js} +1 -1
- package/dist/{chunk-WE57PD6K.js → chunk-UQVKNUYO.js} +1 -1
- package/dist/chunk-UZWOHCFX.js +4 -0
- package/dist/chunk-VLC24QVT.js +2 -0
- package/dist/{chunk-2K4XOHVK.js → chunk-WFQUDSKY.js} +1 -1
- package/dist/{chunk-3WJJ43MT.js → chunk-WJG4ZPUH.js} +1 -1
- package/dist/{chunk-STH6I3UB.js → chunk-X47VFBIV.js} +1 -1
- package/dist/{chunk-PICCLJSO.js → chunk-XUHVQ5VL.js} +1 -1
- package/dist/{chunk-3HEPW6SN.js → chunk-Y6HPW2OQ.js} +1 -1
- package/dist/{chunk-BYUARJE7.js → chunk-YB54MHKU.js} +1 -1
- package/dist/{chunk-CY5NDMO7.js → chunk-YTZUYCFZ.js} +1 -1
- package/dist/{chunk-QNNBNIR7.js → chunk-YZBLBPOE.js} +2 -2
- package/dist/{chunk-BOO7YXAV.js → chunk-Z34XRBKQ.js} +1 -1
- package/dist/{chunk-FJTWJ243.js → chunk-ZPDM6FO7.js} +1 -1
- package/dist/{config-OJF53CHL.js → config-BZ7C5NU5.js} +1 -1
- package/dist/cover-cmd-DN5D6A3S.js +2 -0
- package/dist/{credentials-NLJHSVBY.js → credentials-BPJL6YIZ.js} +1 -1
- package/dist/{descriptor-EHK3DRCZ.js → descriptor-KXDJ4XYD.js} +1 -1
- package/dist/evidence-E5B24ZO6.js +2 -0
- package/dist/evolve-cmd-V7H4PLCX.js +2 -0
- package/dist/explain-VTRHEVUQ.js +2 -0
- package/dist/{explain-cmd-U367SD4N.js → explain-cmd-AG6ZDXV6.js} +1 -1
- package/dist/{explain-cmd-KV5YUXKB.js → explain-cmd-NZPC6537.js} +1 -1
- package/dist/{extract-bind-SSTKQGTV.js → extract-bind-3QBBCWYE.js} +2 -2
- package/dist/{extract-cmd-GO4UV7ER.js → extract-cmd-4PGUDJMU.js} +1 -1
- package/dist/gaps-cmd-42LPHWFP.js +2 -0
- package/dist/{generate-headless-2HYMSVN5.js → generate-headless-NZUDYIKJ.js} +2 -2
- package/dist/index.js +12 -12
- package/dist/ingest-GOKIMEP4.js +2 -0
- package/dist/ingest-cmd-BTYHVJ33.js +3 -0
- package/dist/{interactive-bind-Q5TQFQ6N.js → interactive-bind-TKRWAPJU.js} +3 -3
- package/dist/lifecycle-cmd-E6AXODQD.js +2 -0
- package/dist/list-cmd-RJVLH2GR.js +3 -0
- package/dist/{list-commands-6WDXAECV.js → list-commands-55RCFEOL.js} +1 -1
- package/dist/logical-ids-QZQRQ3TV.js +2 -0
- package/dist/login-flow-WNIHDQXF.js +2 -0
- package/dist/maintenance-cmd-UJG4LPWD.js +2 -0
- package/dist/pdf-convert-KYXI4FU4.js +2 -0
- package/dist/{persist-recorded-session-KHIMN4A3.js → persist-recorded-session-HK7JUONC.js} +1 -1
- package/dist/pipeline-FTLXJQRT.js +2 -0
- package/dist/readmodel-KTNI6QDC.js +2 -0
- package/dist/reconcile-cmd-5XC4AUSJ.js +2 -0
- package/dist/{recording-banner-SADVYNEP.js → recording-banner-5IYX2KBV.js} +1 -1
- package/dist/{require-project-folder-LP7V26IU.js → require-project-folder-J4Q4FRQ4.js} +1 -1
- package/dist/revert-FRXNIP5R.js +2 -0
- package/dist/review-cmd-XB2DCTMZ.js +4 -0
- package/dist/run-2RFR2ASQ.js +2 -0
- package/dist/run-3ZYJQBBC.js +2 -0
- package/dist/{run-test-md-ATB2HZRG.js → run-test-md-WN6BH3PC.js} +2 -2
- package/dist/{skill-installer-DE2LSSKU.js → skill-installer-4HYPUBNB.js} +1 -1
- package/dist/{spawner-GOTVIFR5.js → spawner-VD6YFZ43.js} +1 -1
- package/dist/tcg-generate-77QKMB63.js +2 -0
- package/dist/{testmd-actions-RYQHBX4K.js → testmd-actions-LT5FNIR6.js} +1 -1
- package/dist/token-refresh-PCOAZBKK.js +2 -0
- package/dist/{validate-basic-6BQ2L7TT.js → validate-basic-XWGKC5VF.js} +1 -1
- package/dist/{version-check-YW3FUWDH.js → version-check-6FDTS6MK.js} +1 -1
- package/dist/{view-cmd-FRMQF76B.js → view-cmd-PCDG3FIC.js} +1 -1
- package/dist/walk-session-YS62CWX5.js +2 -0
- package/package.json +16 -7
- package/bin/kane-cli.js +0 -2
- package/dist/EvidenceViewOffer-54GEARRX.js +0 -2
- package/dist/SingleShotApp-AJBIWW74.js +0 -2
- package/dist/TestMdRunView-5PMLLLFT.js +0 -2
- package/dist/chat-committer-ADJJTDUT.js +0 -2
- package/dist/chat-controller-VAC57IEV.js +0 -3
- package/dist/chunk-6AYUSR7X.js +0 -2
- package/dist/chunk-6LRKYF67.js +0 -14
- package/dist/chunk-74RUSHIB.js +0 -4
- package/dist/chunk-ACEODVSC.js +0 -14
- package/dist/chunk-CT2I5KUM.js +0 -2
- package/dist/chunk-E3BO7OVR.js +0 -7
- package/dist/chunk-HJGUEZLW.js +0 -2
- package/dist/chunk-IJPFAWBH.js +0 -5
- package/dist/chunk-OLXOZJ7X.js +0 -6
- package/dist/chunk-QPZRHAYK.js +0 -4
- package/dist/chunk-SJ2KQKOV.js +0 -3
- package/dist/chunk-WIA7TPK3.js +0 -2
- package/dist/chunk-ZG2V2ODK.js +0 -4
- package/dist/cover-cmd-K3LCXHAQ.js +0 -2
- package/dist/evidence-UPOFW3XC.js +0 -2
- package/dist/evolve-cmd-MVALOB3G.js +0 -2
- package/dist/explain-VFIZTHFN.js +0 -2
- package/dist/gaps-cmd-DTVDIOED.js +0 -2
- package/dist/ingest-C5ANIN7S.js +0 -2
- package/dist/ingest-cmd-LLC5CDQ5.js +0 -3
- package/dist/lifecycle-cmd-BXE5IMFN.js +0 -2
- package/dist/list-cmd-KBWPYJMV.js +0 -3
- package/dist/logical-ids-3Y6RX5C2.js +0 -2
- package/dist/login-flow-XQMJFC4H.js +0 -2
- package/dist/maintenance-cmd-VS3APIUN.js +0 -2
- package/dist/pipeline-2HRAWT5U.js +0 -2
- package/dist/readmodel-XOGOELUP.js +0 -2
- package/dist/reconcile-cmd-DH4VV6PG.js +0 -2
- package/dist/revert-AQQ2VHRM.js +0 -2
- package/dist/review-cmd-4WZUUOE4.js +0 -4
- package/dist/run-RT2VMPTQ.js +0 -2
- package/dist/run-XAZMT7WO.js +0 -2
- package/dist/tcg-generate-7PUXJ5R4.js +0 -2
- package/dist/token-refresh-F5KRV7ER.js +0 -2
- package/dist/walk-session-O4TMVORI.js +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as Y}from"./chunk-6LRKYF67.js";import"./chunk-GBBVP2JW.js";import{a as j,c as F}from"./chunk-ANIVHX3P.js";import"./chunk-3C5GMAM4.js";import"./chunk-GRB66C5S.js";import{a as B}from"./chunk-64LC36AF.js";import"./chunk-JFAFKHDX.js";import"./chunk-WIA7TPK3.js";import"./chunk-QPZRHAYK.js";import"./chunk-RN4OSVTG.js";import"./chunk-BC7UVJJB.js";import"./chunk-2PQXEEVY.js";import{a as I}from"./chunk-MCQXRJGH.js";import{b as U}from"./chunk-74RUSHIB.js";import"./chunk-ZZLR3O5A.js";import{g as N}from"./chunk-ZG2V2ODK.js";import"./chunk-5YPBPZUR.js";import{a as V}from"./chunk-YCCUBQY4.js";import{x as m}from"./chunk-HJGUEZLW.js";import{a as P}from"./chunk-HCBYKLMW.js";import{a as A,b as u,k as M}from"./chunk-C44QQJR4.js";import{a as Q}from"./chunk-6YGTRKDT.js";import{e as O}from"./chunk-UR6MHSHU.js";var T=O(Q(),1);function K(e,p,k){let{ref:D,reason:d,by:y}=k;if(!d||d.trim().length===0)return{record:null,errors:[{code:"REASON_REQUIRED",detail:"archiving a node needs a reason \u2014 it becomes the tombstone's provenance"}]};let x=p.resolve(D);if(!x)return{record:null,errors:[{code:"UNKNOWN_REF",detail:`no node '${D}' in the graph`}]};let r=p.tipOf(x.cid);if(p.superseded.has(r))return{record:null,errors:[{code:"ALREADY_ARCHIVED",detail:`${D} is already superseded at its tip (${r.slice(0,19)}\u2026)`}]};let t=N(e,{ts:new Date().toISOString(),proposal_id:null,nodes:[],edges:[],review:[],supersessions:[{kind:"node",old:r,new:null,reason:d,by:y}],source_head_moves:{}},{expectPrev:p.latestHash});return U(e),{record:t.record,errors:null}}function L(e){let p=e.by??{kind:"human",id:process.env.USER??"operator"},k=e.mode==="interactive"?"override":e.mode,D={out:()=>{},err:()=>{},isTTY:!1,confirm:async()=>!0},d={applied:0,committed:0,retired:0,skipped:0,deferred:0,failed:0},y=new Map;for(let r of e.planRows)if(r.held_ref&&e.held){let t=e.held.rows.find($=>$.temp_ref===r.held_ref);if(!t)continue;let l={kind:t.kind,ref:t.temp_ref,title:t.title,why:t.why,origin:"content-change",...r.impact?{impact:r.impact}:{}};y.set(l.ref,{card:l,source:"held",heldRef:t.temp_ref})}else if(r.kind==="MODIFY"){let t={kind:"MODIFY",ref:r.ref,title:r.ref,why:`${r.reason}: ${r.provenance}`,origin:r.origin??"structural-stale",...r.impact?{impact:r.impact}:{}};y.set(t.ref,{card:t,source:"row",row:r})}else if(r.kind==="ADD"){let t={kind:"ADD",ref:r.ref,title:r.ref,why:r.reason,origin:r.origin??"content-change"};y.set(t.ref,{card:t,source:"row",row:r})}for(let r of e.archive){if(r.kind!=="ARCHIVE")continue;let t={kind:"ARCHIVE",ref:r.ref,title:r.ref,why:r.why,provenance:r.why,...r.impact?{impact:r.impact}:{}};y.set(t.ref,{card:t,source:"archive",row:r})}let x=r=>(d.failed++,{outcome:"failed",detail:r});return{cards:()=>[...y.values()].map(r=>r.card),async submit(r,t){let l=y.get(r);if(!l)return x(`no card ${r}`);if(t.v==="skip")return d.skipped++,e.signals({ref:r,verdict:"gap-dismissed"}),{outcome:"skipped"};if(t.v==="defer")return d.deferred++,{outcome:"deferred"};if(t.v==="archive"){if(l.source!=="archive")return x(`${r} is not an ARCHIVE card`);let c=I(e.contextDir),C=c.resolve(l.row.ref);if(C&&c.superseded.has(c.tipOf(C.cid)))return d.skipped++,{outcome:"skipped",detail:"already retired \u2014 nothing to do"};let n=K(e.contextDir,I(e.contextDir),{ref:l.row.ref,reason:`reconcile retire: ${l.row.why}`,by:p});return n.errors?x(n.errors.map(s=>`${s.code}: ${s.detail}`).join("; ")):(d.retired++,e.signals({ref:r,verdict:"gap-resolved-archive",reason:l.row.why}),{outcome:"retired"})}if(l.source==="archive")return x(`${r} takes archive/skip/defer, not approve`);if(l.source==="held"){let c=Y(e.contextDir,e.held,l.heldRef,p,t.edits);if(!c.ok)return x(c.message);if(c.kind==="ADD"){let C=await e.runDesign(c.ref,{yes:!0,mode:k,...t.steering?{because:t.steering}:{}});return C!==0?(d.failed++,{outcome:"failed",landed:!0,detail:`committed ${c.ref}, but its design run exited ${C} \u2014 finish with kane-cli design tests --use-case ${c.ref}`}):(d.applied++,e.signals({ref:r,verdict:"gap-resolved-create",...t.steering?{reason:t.steering}:{}}),{outcome:"applied",detail:c.ref})}if(t.steering){let C=I(e.contextDir),n=j(C,c.ref);if(!n.ok)return d.committed++,{outcome:"committed",detail:`committed ${c.ref}, but steering could not resolve it (${n.message}) \u2014 steer via kane-cli maintain evolve ${c.ref}`};let s=await F(e.contextDir,n.target,{yes:!0,mode:k,because:t.steering},D,e.runDesign,"batch");if(s.outcome==="no-design"){let R=await e.runDesign(n.target.seamRef,{yes:!0,mode:k,because:t.steering});return R!==0?(d.failed++,{outcome:"failed",landed:!0,detail:`committed ${c.ref}, but its steered design run exited ${R} \u2014 finish with kane-cli design tests --use-case ${n.target.seamRef}`}):(d.applied++,e.signals({ref:r,verdict:"gap-resolved-create",reason:t.steering}),{outcome:"applied",detail:c.ref})}return s.outcome==="failed"||s.outcome==="paused"?(d.failed++,{outcome:"failed",landed:!0,detail:`committed ${c.ref}, but the steering evolve ${s.outcome} (exit ${s.code}) \u2014 finish with kane-cli maintain evolve ${c.ref}`}):s.outcome==="declined"?(d.committed++,{outcome:"committed",detail:`committed ${c.ref} \u2014 the steering evolve was declined; re-run kane-cli maintain evolve ${c.ref}`}):(d.applied++,e.signals({ref:r,verdict:"gap-resolved-evolve",reason:t.steering}),{outcome:"applied",detail:c.ref})}return d.committed++,e.signals({ref:r,verdict:"gap-resolved-evolve"}),{outcome:"committed",detail:c.ref}}let $=I(e.contextDir),b=j($,l.row.ref);if(!b.ok)return x(b.message);if(l.card.kind==="ADD"){let c=await e.runDesign(b.target.seamRef,{yes:!0,mode:k});return c!==0?x(`design run exited ${c}`):(d.applied++,e.signals({ref:r,verdict:"gap-resolved-create"}),{outcome:"applied"})}let h=await F(e.contextDir,b.target,{yes:!0,mode:k,...t.steering?{because:t.steering}:{}},D,e.runDesign,"batch");return h.outcome==="evolved"?(d.applied++,e.signals({ref:r,verdict:"gap-resolved-evolve",...t.steering?{reason:t.steering}:{}}),{outcome:"applied"}):h.outcome==="failed"||h.outcome==="paused"?x(`evolve ${h.outcome} (exit ${h.code})`):(d.skipped++,{outcome:"skipped",detail:h.outcome})},summary:()=>({...d})}}var v=O(P(),1);function S(e){return e.kind==="ARCHIVE"?[{v:"archive",label:"retire",detail:"tombstone it \u2014 the graph forgets forward"},{v:"skip",label:"skip",detail:"keep it \u2014 decided, never re-offered"},{v:"defer",label:"defer",detail:"not now \u2014 the plan re-offers it"}]:[{v:"approve",label:"approve",detail:e.kind==="ADD"?"commit + design it":"commit the updated version (old\u2192new redirect)"},{v:"skip",label:e.origin==="content-change"?"reject":"skip",detail:e.origin==="content-change"?"drop the staged proposal \u2014 nothing committed":"leave it as is"},{v:"defer",label:"defer",detail:"not now \u2014 the plan keeps it staged"}]}function E(e){return e.kind==="ARCHIVE"?null:S(e).length}var X={ADD:{color:m.green??"green"},MODIFY:{color:"yellow"},ARCHIVE:{color:m.red}},z=60;function G({card:e,position:p,sel:k=0,focused:D=!1,freeText:d=null}){let{stdout:y}=M(),r=(y?.columns??80)<z,t=S(e),l=E(e),$=X[e.kind],b=n=>D&&k===n?(0,v.jsx)(u,{color:m.generateAccent,children:"\u25B8"}):" ",h=e.impact,c=h&&h.stale_refs.length>0?`${e.kind==="ARCHIVE"?"retiring drops":"approving marks"} ${h.stale_refs.length} item(s) stale`+((h.direct_refs?.length??0)>0?` \u2014 ${h.direct_refs.length} directly touched: ${h.direct_refs.join(", ")}`:""):null,C=(0,v.jsxs)(A,{flexDirection:"column",children:[(0,v.jsx)(u,{bold:!0,color:m.generateAccent,children:`? reconcile \u2014 item ${p.n} of ${p.of}`}),(0,v.jsxs)(u,{bold:!0,children:[" ",(0,v.jsx)(u,{color:$.color,children:`[${e.kind}]`}),` ${e.title}`]}),(0,v.jsx)(u,{color:m.muted,children:` ${e.why}`}),c?(0,v.jsx)(u,{color:m.muted,children:` impact: ${c}`}):null,e.kind==="ARCHIVE"&&e.provenance&&e.provenance!==e.why?(0,v.jsx)(u,{color:m.muted,children:` ${e.provenance}`}):null,t.map((n,s)=>(0,v.jsxs)(u,{children:[" ",b(s),` ${s+1} ${n.label}`,(0,v.jsx)(u,{color:m.dim,children:` \u2014 ${n.detail}`})]},`o-${s}`)),l!==null?d?(0,v.jsxs)(A,{children:[(0,v.jsxs)(u,{children:[" ",(0,v.jsx)(u,{color:m.generateAccent,children:"\u25B8"})," ",(0,v.jsx)(u,{color:m.dim,children:"\u270E "})]}),(0,v.jsx)(V,{value:d.value,onChange:d.onChange,onSubmit:d.onSubmit,onCancel:d.onCancel,placeholder:"steer the redesign (approves, then evolves with your words)"})]}):(0,v.jsxs)(u,{children:[" ",b(l)," ",(0,v.jsx)(u,{color:m.dim,children:"\u270E steer the redesign"})]}):null]});return r?C:(0,v.jsx)(A,{flexDirection:"column",borderStyle:"round",borderColor:m.generateAccent,paddingX:1,children:C})}var g=O(P(),1);function q(e){return e.landed?"committed":e.outcome}var J={applied:"\u2713",committed:"\u2713",retired:"\u2713",skipped:"\xB7",deferred:"\u2013",failed:"\u2717"};function Z({controller:e,cards:p,note:k,markOutcome:D,routeChat:d,onFinish:y,onCtrlC:x,pauseRef:r}){let[t,l]=(0,T.useState)(p.length>0?{at:"card",idx:0,sel:0,editor:null}:{at:"chat",text:"",busy:null}),$=(0,T.useRef)(0),b=(0,T.useRef)(t);b.current=t;let h=(0,T.useRef)(!1),c=()=>{k((0,g.jsx)(u,{color:m.dim,children:"walk paused \u2014 every verdict so far is committed; re-run the same command to continue"})),y(3)},C=()=>{if(h.current)return;h.current=!0;let i=b.current;if(i.at==="busy"||i.at==="chat"&&i.busy!==null){k((0,g.jsx)(u,{color:m.dim,children:"finishing the current item, then pausing\u2026"}));return}if(i.at==="chat"){y($.current);return}c()};r&&(r.current=C);let n=t.at==="card"||t.at==="busy"?p[t.idx]:null,s=i=>{let o=i+1;if(o<p.length)l({at:"card",idx:o,sel:0,editor:null});else{let a=e.summary();k((0,g.jsx)(u,{color:m.dim,children:`reconcile walk: ${a.applied} applied, ${a.committed} committed, ${a.retired} retired, ${a.skipped} skipped, ${a.deferred} deferred`+(a.failed>0?`, ${a.failed} failed`:"")})),k((0,g.jsx)(u,{color:m.dim,children:"anything else? steer a redesign \u2014 `<uc-ref> <what to change>` \u2014 or press Enter to finish"})),l({at:"chat",text:"",busy:null})}},R=(0,T.useRef)(!1),w=(i,o)=>{if(R.current)return;R.current=!0;let a=p[i];l({at:"busy",idx:i,label:o.v==="archive"?"retiring\u2026":o.v==="approve"&&o.steering?"committing, then steering the redesign\u2026":"applying\u2026"}),e.submit(a.ref,o).catch(f=>({outcome:"failed",detail:f instanceof Error?f.message:String(f)})).then(f=>{let _=J[f.outcome]??"\xB7";if(k((0,g.jsxs)(u,{children:[(0,g.jsx)(u,{color:f.outcome==="failed"?m.red:m.green,children:_}),` ${f.outcome} [${a.kind}] ${a.title}`,f.detail?(0,g.jsx)(u,{color:m.dim,children:` \u2014 ${f.detail}`}):null,f.outcome!=="failed"&&f.outcome!=="skipped"&&f.outcome!=="deferred"&&a.impact&&a.impact.stale_refs.length>0?(0,g.jsx)(u,{color:m.dim,children:` \xB7 ${a.impact.stale_refs.length} item(s) now stale`}):null]})),f.outcome==="failed"&&($.current=$.current===0?1:$.current),D(a.ref,q(f)),R.current=!1,h.current){c();return}s(i)})},W=(0,T.useMemo)(()=>({isFocused:()=>b.current.at==="card"&&b.current.editor===null,onMove:i=>{l(o=>{if(o.at!=="card")return o;let a=p[o.idx],f=E(a)??S(a).length-1;return{...o,sel:Math.max(0,Math.min(f,o.sel+i))}})},onSelect:()=>{let i=b.current;if(i.at!=="card")return;let o=p[i.idx],a=E(o);if(a!==null&&i.sel===a){l({...i,editor:""});return}let f=S(o)[i.sel];f&&w(i.idx,{v:f.v})},onDigit:i=>{let o=b.current;if(o.at!=="card")return;let a=S(p[o.idx])[i-1];a&&w(o.idx,{v:a.v})},onType:i=>{l(o=>o.at!=="card"||E(p[o.idx])===null?o:{...o,editor:(o.editor??"")+i})},onBack:()=>{}}),[p]);return(0,T.useEffect)(()=>{t.at==="done"&&y($.current)},[t.at]),(0,g.jsxs)(A,{flexDirection:"column",children:[(0,g.jsx)(B,{onToggleThinking:()=>{},onCtrlC:()=>{x(),C()},panel:W}),t.at==="card"&&n?(0,g.jsx)(G,{card:n,position:{n:t.idx+1,of:p.length},sel:t.sel,focused:t.editor===null,freeText:t.editor!==null?{value:t.editor,onChange:i=>l(o=>o.at==="card"?{...o,editor:i}:o),onSubmit:i=>{let o=b.current;o.at==="card"&&(i.trim()?w(o.idx,{v:"approve",steering:i.trim()}):l({...o,editor:null}))},onCancel:()=>l(i=>i.at==="card"?{...i,editor:null}:i)}:null}):null,t.at==="busy"?(0,g.jsx)(u,{color:m.dim,children:`\u2026 ${t.label}`}):null,t.at==="chat"?t.busy?(0,g.jsx)(u,{color:m.dim,children:`\u2026 ${t.busy}`}):(0,g.jsxs)(A,{children:[(0,g.jsx)(u,{color:m.generateAccent,children:"\u203A "}),(0,g.jsx)(V,{value:t.text,onChange:i=>l(o=>o.at==="chat"?{...o,text:i}:o),onSubmit:i=>{let o=i.trim();if(!o){l({at:"done"});return}l({at:"chat",text:"",busy:"redesigning\u2026"}),d(o).catch(a=>`\u2717 redesign failed: ${a instanceof Error?a.message:String(a)}`).then(a=>{if(k((0,g.jsx)(u,{children:a})),h.current){c();return}l({at:"chat",text:"",busy:null})})},onCancel:()=>{},placeholder:"uc-\u2026 what to change (Enter on empty = finish)"})]}):null]})}async function xe(e){let p={current:null},k=n=>{p.current?.append(n)},D=null,d=async(n,s)=>{let[{runDesign:R},{resolveAgentAuthEnv:w},{runAgent:W},{preflightTurn:i}]=await Promise.all([import("./run-XAZMT7WO.js"),import("./spawner-GOTVIFR5.js"),import("./bridge-LNDJS3HH.js"),import("./turn-preflight-JGYT7LXP.js")]);D??=await w();let o=D;return R({useCase:n,force:!0,mode:s.mode??"override",...s.because?{because:s.because}:{},...s.changeDelta!==void 0?{changeDelta:s.changeDelta}:{},...s.priorDesign!==void 0?{priorDesign:s.priorDesign}:{}},{contextDir:e.dir,agent:W,preflightTurn:()=>i(o),ask:async()=>[],out:a=>k((0,g.jsx)(u,{color:m.dim,children:` ${a}`})),progress:()=>{},isTTY:!1,auth:o})},y=e.runDesign??d,x=L({contextDir:e.dir,held:e.held,archive:e.archive,planRows:e.rows,runDesign:y,mode:"interactive",signals:e.signals}),r=new Set(e.rows.filter(n=>n.applied!==void 0).map(n=>n.held_ref??n.ref)),t=x.cards().filter(n=>!r.has(n.ref)&&!(n.kind==="ARCHIVE"&&e.archiveState?.[n.ref]!==void 0)),l=n=>e.rows.findIndex(s=>(s.held_ref??s.ref)===n),$=(n,s)=>{try{if(t.find(W=>W.ref===n)?.kind==="ARCHIVE"){s==="retired"?e.markA?.(n,"retired"):s==="skipped"&&e.markA?.(n,"skipped");return}let w=l(n);if(w<0)return;s==="applied"||s==="committed"?e.mark?.(w,"approved"):s==="skipped"&&e.mark?.(w,"skipped")}catch{}},b=async n=>{let[{openGraph:s},{resolveParentUc:R,evolveOneUc:w}]=await Promise.all([import("./readmodel-XOGOELUP.js"),import("./evolve-cmd-MVALOB3G.js")]),[W,...i]=n.split(/\s+/),o=s(e.dir),a=R(o,W);if(!a.ok)return`couldn't resolve '${W}' \u2014 start with a use-case id (uc-\u2026): ${a.message}`;if(i.length===0)return`say what to change: \`${W} <your words>\` \u2014 the words become the redesign's change delta`;let f=i.join(" "),_={out:()=>{},err:()=>{},isTTY:!1,confirm:async()=>!0},H=await w(e.dir,a.target,{yes:!0,mode:"override",because:f},_,y,"batch");return H.outcome==="evolved"?(e.signals({ref:a.target.display,verdict:"gap-resolved-evolve",reason:f}),`\u2713 redesigned ${a.target.display} \u2014 "${f}"`):`\u2717 evolve ${H.outcome} for ${a.target.display} (exit ${H.code})`};if(e.script){let n=0;for(let s of t){let R=await e.script(s),w=await x.submit(s.ref,R);w.outcome==="failed"&&n===0&&(n=1),$(s.ref,q(w))}return n}let[{render:h},{ScrollbackProvider:c},{ScrollbackTap:C}]=await Promise.all([import("./build-JIKYOZUH.js"),import("./scrollback-JLPJR25X.js"),import("./ScrollbackTap-Q3IOKNMS.js")]);return new Promise(n=>{let s=!1,R=f=>{s||(s=!0,(async()=>{process.removeListener("SIGINT",o),await p.current?.flush();try{a.unmount()}catch{}n(f)})())},w=0,W={current:null},i=()=>{if(w+=1,w>=2){process.removeListener("SIGINT",o);try{a.unmount()}catch{}n(130)}},o=()=>{i(),W.current?.()};process.on("SIGINT",o);let a=h((0,g.jsxs)(c,{children:[(0,g.jsx)(C,{into:p}),(0,g.jsx)(Z,{controller:x,cards:t,note:k,markOutcome:$,routeChat:b,onFinish:R,onCtrlC:i,pauseRef:W})]}),{exitOnCtrlC:!1})})}export{Z as WalkSessionSurface,q as outcomeToMark,xe as runWalkSession};
|