@testmuai/kane-cli 0.7.2 → 0.8.2
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/dist/ChatSurface-B3ULYDYC.js +8 -0
- package/dist/{ChromeProfilePicker-DGDWGCZD.js → ChromeProfilePicker-T77E7ZSC.js} +1 -1
- package/dist/{CliFeedbackPrompt-SYCZXSME.js → CliFeedbackPrompt-FQ2XV5DZ.js} +1 -1
- package/dist/{CliUploadProgress-VDEAKXJY.js → CliUploadProgress-TZ55LONO.js} +1 -1
- package/dist/ConfigView-WWQMH36G.js +2 -0
- package/dist/EvidenceViewOffer-L5FVBQNK.js +2 -0
- package/dist/FolderPicker-6Z3CYSHF.js +2 -0
- package/dist/{HelpView-ON6BFGJM.js → HelpView-XXPCPJNF.js} +1 -1
- package/dist/{InfoBox-B23NZ6IG.js → InfoBox-SHBRHQX5.js} +1 -1
- package/dist/{LinksBox-TI26VFFH.js → LinksBox-ENNF7TDJ.js} +1 -1
- package/dist/{ProfilesView-CRO5AH3H.js → ProfilesView-CNF2FXF3.js} +1 -1
- package/dist/{ProjectPicker-3N7LJOXU.js → ProjectPicker-PVPLS642.js} +1 -1
- package/dist/{SaveSessionPrompt-UTOEC5AW.js → SaveSessionPrompt-4QP4GNGO.js} +1 -1
- package/dist/SingleShotApp-M3HNSUMZ.js +2 -0
- package/dist/{SummaryBox-JK64EKC2.js → SummaryBox-HYNINDNN.js} +1 -1
- package/dist/TestMdRunView-ISOVQ7YP.js +2 -0
- package/dist/{WhoamiView-6QSLPNF6.js → WhoamiView-NN2HOK6H.js} +1 -1
- package/dist/adbkit-apkreader-ORZBGCJQ.js +184 -0
- package/dist/app-client-ZCCNE3RV.js +2 -0
- package/dist/app-download-5UJMXPF3.js +2 -0
- package/dist/{auth-IKFVW3NX.js → auth-QKBTOWQX.js} +1 -1
- package/dist/{bind-KCUSVJXG.js → bind-LVGP5KHO.js} +3 -3
- package/dist/{bootstrap-NFYYRGGR.js → bootstrap-RUJBMB2P.js} +1 -1
- package/dist/bridge-QDPBIIOW.js +2 -0
- package/dist/{changelog-AAH2ZBYO.js → changelog-HBPBPR2O.js} +1 -1
- package/dist/{chat-committer-UUC6JTRJ.js → chat-committer-ZWWCLJFD.js} +1 -1
- package/dist/{chat-controller-T2FAI55V.js → chat-controller-R4THYYPU.js} +1 -1
- package/dist/chunk-2E3ZWGIK.js +12 -0
- package/dist/chunk-2KH2JUGL.js +13 -0
- package/dist/{chunk-VWKVUOXU.js → chunk-2TYCUPCN.js} +1 -1
- package/dist/{chunk-GYNTNKNB.js → chunk-2ZZDNPFN.js} +1 -1
- package/dist/chunk-3654GK6O.js +66 -0
- package/dist/{chunk-M6FKJKC6.js → chunk-3NHO5R4P.js} +3 -3
- package/dist/{chunk-SFII7HPP.js → chunk-4II6VDXG.js} +1 -1
- package/dist/chunk-4J6DQFPC.js +4 -0
- package/dist/chunk-4JOD47QI.js +2 -0
- package/dist/{chunk-5FJJJNJK.js → chunk-4U4OSOA4.js} +1 -1
- package/dist/{chunk-QIGPXYMF.js → chunk-56PAQAX5.js} +6 -6
- package/dist/chunk-5NIYYD7O.js +2 -0
- package/dist/chunk-5SNT2MK5.js +2 -0
- package/dist/chunk-6IA6QMPH.js +2 -0
- package/dist/chunk-6J5T5FEY.js +2 -0
- package/dist/chunk-6N726QLP.js +349 -0
- package/dist/chunk-7F2ZV46B.js +2 -0
- package/dist/{chunk-7OYZR6JA.js → chunk-7S3JZ6FQ.js} +1 -1
- package/dist/chunk-A2SQD2AY.js +4 -0
- package/dist/chunk-AJQT4IWZ.js +2 -0
- package/dist/chunk-AN2ZPHCE.js +2 -0
- package/dist/{chunk-7QJ75SYR.js → chunk-ATGRRKEV.js} +2 -2
- package/dist/chunk-AXTPNZPX.js +2 -0
- package/dist/{chunk-ZRASQ63J.js → chunk-BKVDAZEJ.js} +1 -1
- package/dist/{chunk-2WVKOZ6W.js → chunk-BPMSNGXQ.js} +1 -1
- package/dist/chunk-BRIEBB2U.js +2 -0
- package/dist/chunk-BSYX225I.js +2 -0
- package/dist/{chunk-B5RS2XZU.js → chunk-CAMO26QU.js} +3 -3
- package/dist/chunk-DPUV6OSP.js +2 -0
- package/dist/chunk-ECZMYPLJ.js +19 -0
- package/dist/chunk-EYOCNMUM.js +2 -0
- package/dist/{chunk-DZPGG4S6.js → chunk-FNS2EAA5.js} +2 -2
- package/dist/{chunk-VMM4LC4V.js → chunk-GNIFMQNK.js} +3 -3
- package/dist/chunk-GUVM6SZF.js +2 -0
- package/dist/{chunk-ZBOWFJB2.js → chunk-HFFPPCZO.js} +2 -2
- package/dist/chunk-HRZOFTV7.js +4 -0
- package/dist/chunk-HWH3UYD6.js +4 -0
- package/dist/{chunk-JKM2PUHI.js → chunk-I7RQS65W.js} +1 -1
- package/dist/chunk-IUEEFGEW.js +11 -0
- package/dist/{chunk-KWIK22R6.js → chunk-IV76ZXCY.js} +1 -1
- package/dist/{chunk-HYSFJSIG.js → chunk-IZ2FJYHG.js} +1 -1
- package/dist/{chunk-4NFCAGRK.js → chunk-J7KT44IC.js} +1 -1
- package/dist/{chunk-VOOPWFHW.js → chunk-JEDLXUO5.js} +1 -1
- package/dist/chunk-JGOZUAMC.js +2 -0
- package/dist/{chunk-4LTXE3IX.js → chunk-JHKM7W5X.js} +1 -1
- package/dist/chunk-JJN76EXE.js +2 -0
- package/dist/{chunk-EOLFTMWF.js → chunk-JUVQQP42.js} +1 -1
- package/dist/chunk-KKRNTSLL.js +6 -0
- package/dist/chunk-KRKGZ2ZW.js +47 -0
- package/dist/{chunk-YTHQNN2L.js → chunk-LDCLZR2U.js} +1 -1
- package/dist/chunk-LQQXPY5B.js +4 -0
- package/dist/{chunk-UC7MNPIN.js → chunk-LVCY5IYI.js} +1 -1
- package/dist/{chunk-O75ZHGJG.js → chunk-LVN6VHFN.js} +1 -1
- package/dist/chunk-MMBBQ4OZ.js +2 -0
- package/dist/chunk-MSGW4JDG.js +2 -0
- package/dist/{chunk-VLWMMOMF.js → chunk-MTIC65NK.js} +1 -1
- package/dist/chunk-NHBYZCSX.js +4 -0
- package/dist/chunk-NRUD56FY.js +7 -0
- package/dist/chunk-NXFAEDHV.js +26 -0
- package/dist/{chunk-OIYGGEUL.js → chunk-NXXJ56QA.js} +1 -1
- package/dist/{chunk-AXTGYOMK.js → chunk-O3AHFP3K.js} +1 -1
- package/dist/chunk-OAVPM6YJ.js +2 -0
- package/dist/{chunk-FBHRBFHP.js → chunk-OJTCIZDK.js} +1 -1
- package/dist/{chunk-JPWLGHPM.js → chunk-OOEPLMKA.js} +1 -1
- package/dist/{chunk-VT54ARGE.js → chunk-PXCMEI73.js} +1 -1
- package/dist/{chunk-APPYQZFK.js → chunk-R4UCBA5R.js} +1 -1
- package/dist/chunk-RKXHVP2Z.js +2 -0
- package/dist/{chunk-AJ56AMT6.js → chunk-RN4PKQFR.js} +1 -1
- package/dist/chunk-RUCSRS4C.js +5 -0
- package/dist/chunk-TAOHYWEO.js +2 -0
- package/dist/chunk-TZXXJWHA.js +2 -0
- package/dist/{chunk-VRLUNZAK.js → chunk-U5GHOGLM.js} +1 -1
- package/dist/chunk-UJZZDPDY.js +2 -0
- package/dist/{chunk-VHZ4S57N.js → chunk-UODLRQQ4.js} +1 -1
- package/dist/chunk-VK3NU742.js +21 -0
- package/dist/{chunk-FDIPQRX4.js → chunk-VPRNGWIY.js} +1 -1
- package/dist/{chunk-RDNFVZEB.js → chunk-WOEQDUJ6.js} +1 -1
- package/dist/chunk-WQPQNL4S.js +2 -0
- package/dist/{chunk-SL6PCVM2.js → chunk-WV27D55O.js} +1 -1
- package/dist/{chunk-2WFZIQ62.js → chunk-WVCH66YH.js} +1 -1
- package/dist/{chunk-PLOWZLG5.js → chunk-YCLG3T5E.js} +2 -2
- package/dist/chunk-YGMC3FGJ.js +26 -0
- package/dist/{chunk-5SXMV66P.js → chunk-YHYTCENI.js} +1 -1
- package/dist/{chunk-KQZA2QSC.js → chunk-YSSYT5F5.js} +1 -1
- package/dist/{chunk-OR6MCL6Z.js → chunk-YTDSQAYN.js} +1 -1
- package/dist/{chunk-XUS4WKDS.js → chunk-ZEDAPY7M.js} +1 -1
- package/dist/{chunk-F7ISS545.js → chunk-ZGBSGZZM.js} +1 -1
- package/dist/chunk-ZI6UIJUN.js +11 -0
- package/dist/{config-CWZV6XPT.js → config-RLDXM5ZH.js} +1 -1
- package/dist/{controller-client-RD2YEMAH.js → controller-client-OB4WD2C4.js} +1 -1
- package/dist/{cover-cmd-NWIRJY5Z.js → cover-cmd-HDZZWJXG.js} +1 -1
- package/dist/{credentials-YHTJGKEO.js → credentials-CALNKQMN.js} +1 -1
- package/dist/deps-bundle-GVHIMZ5E.js +2 -0
- package/dist/deps-resolve-T6P4EACP.js +2 -0
- package/dist/{dispatch-WVNXB7AD.js → dispatch-ECUEAMXS.js} +1 -1
- package/dist/doctor-SIBHJVGC.js +2 -0
- package/dist/docx-convert-JMUMT5C4.js +2 -0
- package/dist/evidence-ZVQHPELX.js +2 -0
- package/dist/evolve-cmd-JGCFTXWA.js +2 -0
- package/dist/exec-P2IKJRRR.js +2 -0
- package/dist/exit-manager-3FVBTNYR.js +2 -0
- package/dist/{explain-cmd-IZEHWZV5.js → explain-cmd-3GEKR7O5.js} +1 -1
- package/dist/{explain-cmd-75MCF2ZV.js → explain-cmd-EX24XKD6.js} +1 -1
- package/dist/extract-bind-EXW32RUY.js +10 -0
- package/dist/{extract-cmd-ZRYMJ6IC.js → extract-cmd-7IOLJJCL.js} +2 -2
- package/dist/gaps-cmd-WPCJPLGB.js +3 -0
- package/dist/{generate-headless-D6BISWDC.js → generate-headless-U4GTG234.js} +3 -3
- package/dist/host-7GZPBA74.js +2 -0
- package/dist/index.js +84 -67
- package/dist/ingest-cmd-YYNAKI2U.js +2 -0
- package/dist/interactive-bind-Y65XV4Y5.js +25 -0
- package/dist/{lifecycle-cmd-EQSFAZG6.js → lifecycle-cmd-HO5VL7AM.js} +1 -1
- package/dist/{list-cmd-IRJSUCM5.js → list-cmd-N4KMA34H.js} +1 -1
- package/dist/list-commands-3EROWJWV.js +2 -0
- package/dist/login-flow-TRINUSBB.js +2 -0
- package/dist/{maintenance-cmd-MVFA6H74.js → maintenance-cmd-6XSVO6FO.js} +1 -1
- package/dist/mobile-prompts-TP3ODM5M.js +2 -0
- package/dist/persist-recorded-session-EHYT3PVN.js +3 -0
- package/dist/pipeline-5GOS2KV2.js +2 -0
- package/dist/prepare-target-BUEOZVJV.js +2 -0
- package/dist/reconcile-cmd-TY3MWZL3.js +2 -0
- package/dist/reconcile-deps-6KTJHBMJ.js +4 -0
- package/dist/reconcile-engine-O7QEZVX6.js +2 -0
- package/dist/{recording-banner-76GCIPUN.js → recording-banner-BWWFOJCR.js} +1 -1
- package/dist/registry-KXEDLM6X.js +2 -0
- package/dist/{require-project-folder-ACRDP5ZB.js → require-project-folder-CXDRRWEQ.js} +1 -1
- package/dist/resolve-run-intent-PZXEQTHC.js +7 -0
- package/dist/{resolver-SRPCFW7P.js → resolver-FTU5KO7H.js} +1 -1
- package/dist/{review-cmd-L3V5UP5T.js → review-cmd-DQRKQUMG.js} +1 -1
- package/dist/run-CMFBSYWF.js +2 -0
- package/dist/run-WKHPVWUN.js +2 -0
- package/dist/{run-test-md-KEHSRMCM.js → run-test-md-7HGOZJSU.js} +3 -3
- package/dist/session-items-2ATN7VXG.js +2 -0
- package/dist/session-target-UWROGOCY.js +2 -0
- package/dist/{sessions-cmd-ZVYGSRJ3.js → sessions-cmd-ZZIZN2VB.js} +1 -1
- package/dist/{skill-installer-HBN3A35K.js → skill-installer-QNUDLGPD.js} +1 -1
- package/dist/spawner-DQZRJIE6.js +2 -0
- package/dist/{structured-answers-A43Q25CZ.js → structured-answers-5EY2AZN7.js} +1 -1
- package/dist/tcg-generate-XKSTMCOG.js +2 -0
- package/dist/testmd-actions-IFRW7NGG.js +2 -0
- package/dist/{tms-client-VD3B3SMU.js → tms-client-V3TR4QW3.js} +1 -1
- package/dist/token-refresh-FP6JFLXB.js +2 -0
- package/dist/types-6E2HTDKJ.js +2 -0
- package/dist/{validate-basic-ZGWPBYB6.js → validate-basic-3CNUDDH7.js} +1 -1
- package/dist/{verdicts-SCETLY5J.js → verdicts-NYCSBWUC.js} +1 -1
- package/dist/{version-check-CJWKDAXV.js → version-check-7TSAVA6V.js} +1 -1
- package/dist/{view-cmd-SOVM64L2.js → view-cmd-KPJTP4DI.js} +1 -1
- package/dist/walk-session-AINBHZKB.js +2 -0
- package/dist/{with-telemetry-E7QWPGL6.js → with-telemetry-3DL7ZEZL.js} +1 -1
- package/package.json +12 -6
- package/dist/ChatSurface-E7QKI4LA.js +0 -8
- package/dist/ConfigView-HPKRQXMC.js +0 -2
- package/dist/EvidenceViewOffer-F5YG54OC.js +0 -2
- package/dist/FolderPicker-4NSDXQY5.js +0 -2
- package/dist/SingleShotApp-Y3YDFQSD.js +0 -2
- package/dist/TestMdRunView-O6JTHV5W.js +0 -2
- package/dist/bridge-JSKEO4N3.js +0 -2
- package/dist/chunk-23VPUWBD.js +0 -23
- package/dist/chunk-2WRBTLFN.js +0 -13
- package/dist/chunk-53IBTIL3.js +0 -12
- package/dist/chunk-5WXGMXGA.js +0 -26
- package/dist/chunk-5ZQZOVWY.js +0 -4
- package/dist/chunk-74HTO7K3.js +0 -11
- package/dist/chunk-AECMF3T2.js +0 -8
- package/dist/chunk-AFBKGZFG.js +0 -2
- package/dist/chunk-BXYWX4J3.js +0 -2
- package/dist/chunk-C3T7TKAC.js +0 -349
- package/dist/chunk-DBKNJRJG.js +0 -2
- package/dist/chunk-H32GM5G4.js +0 -2
- package/dist/chunk-J5FBU425.js +0 -62
- package/dist/chunk-KCCSWEGA.js +0 -4
- package/dist/chunk-MK7JUOYV.js +0 -6
- package/dist/chunk-ORQNKZ2Z.js +0 -5
- package/dist/chunk-OUJQVBUT.js +0 -7
- package/dist/chunk-QOFZSHSC.js +0 -47
- package/dist/chunk-RKWJG3WW.js +0 -19
- package/dist/chunk-STVP2XHO.js +0 -2
- package/dist/chunk-VFII6C46.js +0 -2
- package/dist/chunk-VGFTNLQQ.js +0 -2
- package/dist/chunk-WAOCHXJ5.js +0 -2
- package/dist/chunk-ZUGCHQFC.js +0 -2
- package/dist/docx-convert-CHLJUTFH.js +0 -2
- package/dist/evidence-IVDNXWPL.js +0 -2
- package/dist/evolve-cmd-XBX4SX5H.js +0 -2
- package/dist/exit-manager-XZL4KIJU.js +0 -2
- package/dist/extract-bind-5OWELRME.js +0 -10
- package/dist/gaps-cmd-XBRXKXDL.js +0 -3
- package/dist/ingest-cmd-YTGOICTC.js +0 -2
- package/dist/interactive-bind-XSRD36MO.js +0 -25
- package/dist/list-commands-RCYHJ5Y3.js +0 -2
- package/dist/login-flow-PYAPYCPY.js +0 -2
- package/dist/persist-recorded-session-DTYCLXTQ.js +0 -3
- package/dist/pipeline-MXFOD6ES.js +0 -2
- package/dist/reconcile-cmd-EG6BOU3A.js +0 -2
- package/dist/reconcile-deps-HTT6IPHT.js +0 -4
- package/dist/reconcile-engine-JQNXALNY.js +0 -2
- package/dist/run-GMZCDRDD.js +0 -2
- package/dist/run-TFRWPGXP.js +0 -2
- package/dist/spawner-GC5CFAJ7.js +0 -2
- package/dist/tcg-generate-V7YFNC5O.js +0 -2
- package/dist/testmd-actions-MNDOO76O.js +0 -2
- package/dist/token-refresh-3UYMCYG3.js +0 -2
- package/dist/walk-session-YUYRULPY.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as T}from"./chunk-OS4VSIHT.js";import"./chunk-5DT7PIGB.js";import{A as V}from"./chunk-TH47OOBV.js";import"./chunk-VAYBKR76.js";import"./chunk-CUM23TLF.js";import{d as I}from"./chunk-DUAXZYAD.js";import"./chunk-DBIBROYW.js";import{d as f,e as x}from"./chunk-WXHQYYD5.js";import"./chunk-IAHKTEET.js";import"./chunk-UD7KKHPW.js";import"./chunk-
|
|
2
|
+
import{b as T}from"./chunk-OS4VSIHT.js";import"./chunk-5DT7PIGB.js";import"./chunk-CH273NAE.js";import{A as V}from"./chunk-TH47OOBV.js";import"./chunk-VAYBKR76.js";import"./chunk-CUM23TLF.js";import{d as I}from"./chunk-DUAXZYAD.js";import"./chunk-DBIBROYW.js";import{d as f,e as x}from"./chunk-WXHQYYD5.js";import"./chunk-IAHKTEET.js";import"./chunk-UD7KKHPW.js";import"./chunk-UR6MHSHU.js";import{writeFileSync as ce,mkdirSync as pe}from"fs";import{tmpdir as ue}from"os";import{dirname as fe,join as ge}from"path";var F={DERIVES:"derivation",automates:"linkage",exercises:"mesh",verifies:"mesh",depends_on:"crosslink",reuses:"crosslink",belongs_to:"containment",scoped_to:"containment",annotates:"annotation"},re=(t,r)=>t===f.SOURCE?String(r.source_id??""):t===f.AC?String(r.text??""):t===f.STYLENOTE?String(r.statement??r.text??""):t===f.GAP?String(r.text??r.question??""):String(r.title??"");function H(t){let r=[];for(let[o,p]of t.nodeLabel){let g=t.getNode(o)?.content??{};r.push({cid:o,label:p,slug:p===f.SOURCE?String(g.source_id??""):t.displayNameOf?.(o)??t.nameOf.get(o)??o.slice(0,19),trust:t.trust.get(o)??"derived",fresh:t.stale(o),title:re(p,g),content:g,superseded:t.superseded.has(o)})}let e=new Map;for(let[o]of t.nodeLabel)for(let p of t.edgesFrom(o)){let g=`${p.type}|${p.src}|${p.dst}`,v=typeof p.props?.anchor=="string"?p.props.anchor:void 0,w=e.get(g);w?(w.count++,v&&w.anchors.push(v)):e.set(g,{key:g,type:p.type,family:F[p.type]??"mesh",src:p.src,dst:p.dst,count:1,anchors:v?[v]:[],container:F[p.type]==="containment"})}let s=[...e.values()],i={},l={trusted:0,derived:0,archived:0},d={fresh:0,stale:0,orphaned:0,superseded:0},a=0;for(let o of r)o.superseded||(a++,i[o.label]=(i[o.label]??0)+1,o.label!==f.SOURCE&&l[o.trust]++,d[o.fresh]++);return{nodes:r,edges:s,summary:{nodes:a,edges:s.reduce((o,p)=>o+p.count,0),byLabel:i,trust:l,fresh:d,usecases:i[f.USECASE]??0,designed:0}}}var P=/^([a-z]+)-(\d+)$/,E=(t,r)=>{let e=P.exec(t),s=P.exec(r);return e&&s&&e[1]===s[1]?Number(e[2])-Number(s[2]):t<r?-1:t>r?1:0};function se(t,r,e){let s=new Set,i=d=>{let a=e.nodeLabel.get(d);if(a===f.USECASE)s.add(d);else if(a===f.SCENARIO)for(let o of e.edgesFrom(d))o.type===x.BELONGS_TO&&s.add(o.dst)},l=e.edgesFrom(t);if(r===f.SCENARIO)for(let d of l)d.type===x.BELONGS_TO&&s.add(d.dst);if(r===f.AC)for(let d of l)d.type===x.SCOPED_TO&&i(d.dst);if(r===f.TEST)for(let d of l)d.type===x.AUTOMATES&&i(d.dst);return s}function G(t,r){let e=new Map,s=t.nodes.filter(a=>a.label===f.USECASE).map(a=>a.cid),i=s.map(a=>({ucCid:a,slug:r.nameOf.get(a)??a.slice(0,19),designed:r.designOf.has(a),nodeCids:[a]})).sort((a,o)=>E(a.slug,o.slug)),l={ucCid:"__shared__",slug:"cross-cutting",designed:!1,nodeCids:[]},d=new Map(i.map(a=>[a.ucCid,a]));for(let a of s)e.set(a,a);for(let a of t.nodes){if(a.label===f.SOURCE||a.label===f.USECASE)continue;let o=se(a.cid,a.label,r);if(o.size===1){let p=[...o][0];e.set(a.cid,p),d.get(p).nodeCids.push(a.cid)}else e.set(a.cid,"__shared__"),l.nodeCids.push(a.cid)}return{laneOf:e,lanes:[...i,l]}}var N={source:0,usecase:1,scenario:2,ac:3,test:4,stylenote:5,gap:5},ie=6,z=260,R=64,B=28;function U(t,r,e){let{lanes:s}=r,i=new Map(t.nodes.map(n=>[n.cid,n])),l=new Map,d=[],a=[],o=n=>{let m=n.map(h=>l.get(h)).filter(h=>h!==void 0);return m.length?m.reduce((h,S)=>h+S,0)/m.length:Number.MAX_SAFE_INTEGER},p=s.filter(n=>n.ucCid!=="__shared__"||n.nodeCids.length>0),g=t.nodes.filter(n=>n.label===f.SOURCE).sort((n,m)=>E(n.slug,m.slug)),v=0;for(let n of p){let m=n.nodeCids.map(c=>i.get(c)).filter(Boolean),h=c=>m.filter(u=>u.label===c),S=h(f.USECASE).sort((c,u)=>E(c.slug,u.slug));S.forEach((c,u)=>l.set(c.cid,u));let D=h(f.SCENARIO).sort((c,u)=>E(c.slug,u.slug));D.forEach((c,u)=>l.set(c.cid,u));let M=h(f.AC).sort((c,u)=>{let _=o(e.edgesInto(c.cid).filter(b=>b.type===x.EXERCISES).map(b=>b.src)),O=o(e.edgesInto(u.cid).filter(b=>b.type===x.EXERCISES).map(b=>b.src));return _-O||E(c.slug,u.slug)});M.forEach((c,u)=>l.set(c.cid,u));let j=h(f.TEST).sort((c,u)=>{let _=o(e.edgesFrom(c.cid).filter(b=>b.type===x.VERIFIES).map(b=>b.dst)),O=o(e.edgesFrom(u.cid).filter(b=>b.type===x.VERIFIES).map(b=>b.dst));return _-O||E(c.slug,u.slug)});j.forEach((c,u)=>l.set(c.cid,u));let q=m.filter(c=>N[c.label]===void 0||N[c.label]>=5).sort((c,u)=>E(c.slug,u.slug));q.forEach((c,u)=>l.set(c.cid,u));let A=Math.max(1,S.length,D.length,M.length,j.length,q.length)*R+B;for(let c of m){let u=N[c.label]??4,_=l.get(c.cid)??0;d.push({...c,lane:n.ucCid,col:u,x:u*z,y:v+B/2+_*R})}a.push({...n,y0:v,y1:v+A}),v+=A}let w=Math.max(v,R);g.forEach((n,m)=>d.push({...n,lane:"__spine__",col:0,x:0,y:w/(g.length+1)*(m+1)}));let L=ie*z;return{nodes:d,lanes:a,width:L,height:w}}function ae(t){return t.design_of?"design":t.review.length>0?"review":t.nodes.some(r=>r.label==="source")?"ingest":t.nodes.length>0?"extract":"other"}function $(t){let r=new Map,e=new Map,s=[];for(let i of t){for(let n of i.nodes)r.has(n.cid)||r.set(n.cid,i.seq);let l=new Map(e);for(let n of i.nodes)n.content?.derived===!0&&!e.has(n.cid)&&e.set(n.cid,"derived");for(let n of i.review)n.resolution==="approved"||n.resolution==="edited"?e.set(n.id,"trusted"):n.resolution==="rejected"?e.set(n.id,"archived"):n.resolution==="reset"&&e.set(n.id,"derived");let d=n=>{let m=0;for(let[h,S]of e)S===n&&l.get(h)!==n&&m++;return m},a=0;for(let[n,m]of e){let h=l.get(n);m==="derived"&&(h==="trusted"||h==="archived")&&a++}let o={trusted:d("trusted"),archived:d("archived"),reset:a},p=ae(i),g=i.nodes.map(n=>n.cid),v=i.edges.map(n=>`${n.type}|${n.src}|${n.dst}`),w=i.review.map(n=>n.id),L=p==="review"?"review \xB7 +"+o.trusted+" trusted"+(o.archived?", +"+o.archived+" archived":""):p+" \xB7 +"+g.length+" nodes";s.push({seq:i.seq,ts:i.ts,kind:p,label:L,mintedNodeCids:g,mintedEdgeKeys:v,reviewedNodeCids:w,trustDelta:o})}return{commits:s,bornSeq:r}}function Y(t,r,e){let s=[];for(let i of t){i.nodes.some(l=>l.cid===r)&&s.push({seq:i.seq,ts:i.ts,kind:"minted",detail:"minted here"});for(let l of i.review)l.id===r&&s.push({seq:i.seq,ts:i.ts,kind:"review",detail:l.resolution+(l.reason?": "+l.reason:"")})}return e.length&&s.push({seq:0,ts:"",kind:"derived_from",detail:"source lines "+e.join(", ")}),s}var oe={"&":"&","<":"<",">":">",'"':""","'":"'"};function k(t){return String(t).replace(/[&<>"']/g,r=>oe[r])}var W=t=>"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0"),de=new RegExp("[\u2028\u2029]","g");function X(t){return t.replace(/[<>&]/g,W).replace(de,W)}var K=t=>t.replace("sha256:","").slice(0,12);function J(t){if(!t||typeof t!="object")return"";let r=String(t.operator??""),e=t.operand!=null?String(t.operand):"",s=t.unit!=null?" "+String(t.unit):"",i=t.baseline!=null?String(t.baseline):"",l=t.within&&typeof t.within=="object"?t.within:null,d;switch(r){case"exists":d="exists: "+e;break;case"forall":d="for all "+e;break;case"contains":d="contains "+e;break;case"gte":d=">= "+e+s;break;case"lte":d="<= "+e+s;break;case"equals":d="= "+e+s+(i?" (was "+i+")":"");break;case"changed-by":d="changed by "+e+s;break;default:d=(r+" "+e+s).trim()}if(l){let a=l.threshold!=null?String(l.threshold):"",o=l.unit!=null?String(l.unit):"";(a||o)&&(d+=" within "+a+o)}return d.trim()}var C=t=>t==null||t===""?"":`<span class="chip">${k(t)}</span>`,y=(t,r)=>r==null||r===""?"":`<div class="kv"><span class="k">${k(t)}</span><span class="v">${k(r)}</span></div>`,le=t=>Array.isArray(t)&&t.length?`<ul class="crit">${t.map(r=>`<li>${k(r)}</li>`).join("")}</ul>`:"";function Q(t,r){let e=r??{};switch(t){case"usecase":return[y("description",e.description),y("value",e.value),[C(e.risk?"risk: "+e.risk:""),...Array.isArray(e.actors)?e.actors.map(s=>C(s)):[]].join(""),le(e.criteria)].join("");case"scenario":return[y("intent",e.intent),[C(e.case_type)].join(""),e.parameters&&typeof e.parameters=="object"?Object.entries(e.parameters).map(([s,i])=>y(s,i)).join(""):"",y("techniques",e.technique_notes)].join("");case"ac":return[y("",e.text),[C(e.kind),C(e.risk?"risk: "+e.risk:"")].join(""),(()=>{let s=J(e.expected_answer);return s?`<div class="pred">${k(s)}</div>`:""})()].join("");case"test":{let s=J(e.check),i=e.test_md_blob!=null?`<pre class="md">${k(String(e.test_md_blob))}</pre>`:"";return[s?`<div class="pred">${k(s)}</div>`:"",y("definitionId",e.definitionId),i].join("")}case"source":return[y("source_id",e.source_id),y("blob",e.blob)].join("");case"stylenote":return[e.statement?`<div class="pred">${k(e.statement)}</div>`:"",[C(e.learned_from_kind?"learned from: "+e.learned_from_kind:"")].join(""),y("",e.text),Array.isArray(e.tags)?e.tags.map(s=>C(s)).join(""):""].join("");case"gap":return[y("",e.text??e.question),[C(e.kind),C(e.risk?"risk: "+e.risk:"")].join(""),y("why",e.risk_rationale),y("ref",e.ref)].join("");default:return""}}function Z(t,r,e,s){let i=H(t),l=G(i,t),d=U(i,l,t),{commits:a}=$(r);i.summary.designed=l.lanes.filter(n=>n.designed&&n.ucCid!=="__shared__").length;let o={},p={};for(let n of i.nodes){o[n.cid]=Q(n.label,n.content);let m=t.edgesInto(n.cid).filter(h=>h.type===x.DERIVES&&typeof h.props?.anchor=="string").map(h=>h.props.anchor);p[n.cid]=Y(r,n.cid,m)}let g=d.nodes.map(n=>({cid:n.cid,slug:n.slug,label:n.label,trust:n.trust,fresh:n.fresh,title:n.title,superseded:n.superseded,lane:n.lane,col:n.col,x:n.x,y:n.y})),v=d.lanes.map(n=>({ucCid:n.ucCid,slug:n.slug,designed:n.designed,y0:n.y0,y1:n.y1})),L=i.nodes.some(n=>n.label===f.SOURCE)?{}:void 0;return{meta:{fromSeq:r[0]?.seq??0,tipHash:e[e.length-1]??null,storePath:s,schema:"assurance/context@1",asOf:r[r.length-1]?.ts??null},summary:i.summary,lanes:v,nodes:g,edges:i.edges,commits:a,lineage:p,contentHtml:o,width:d.width,height:d.height,source:L}}var ee="__PAYLOAD__",te=`<!doctype html>
|
|
3
3
|
<html lang="en">
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="utf-8">
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{c as ke}from"./chunk-VRVFPMCR.js";import{k as he}from"./chunk-ATGRRKEV.js";import{a as ne,c as ie,d as ve}from"./chunk-JGOZUAMC.js";import"./chunk-OS4VSIHT.js";import"./chunk-TRJUD3XJ.js";import{a as J}from"./chunk-A2SQD2AY.js";import"./chunk-AFPHLUQ5.js";import"./chunk-JZ26R6UL.js";import{b as Z,c as re,d as de,e as ue,f as K,h as G,i as me,k as fe,m as pe,n as ge}from"./chunk-5NIYYD7O.js";import{a as ee,b as te}from"./chunk-UJZZDPDY.js";import{a as N}from"./chunk-CLGC7VEO.js";import"./chunk-RKXHVP2Z.js";import"./chunk-JFAFKHDX.js";import"./chunk-GFKCTYCA.js";import"./chunk-DNNZ353O.js";import"./chunk-5DT7PIGB.js";import"./chunk-XWKUZJCP.js";import"./chunk-NVGBE2DR.js";import"./chunk-CH273NAE.js";import"./chunk-5Y2G4NC7.js";import{A as V}from"./chunk-TH47OOBV.js";import{b as le}from"./chunk-VAYBKR76.js";import"./chunk-CUM23TLF.js";import{i as ce}from"./chunk-DUAXZYAD.js";import"./chunk-DBIBROYW.js";import"./chunk-WXHQYYD5.js";import"./chunk-IAHKTEET.js";import"./chunk-UD7KKHPW.js";import{a as se}from"./chunk-YCCUBQY4.js";import{y as h}from"./chunk-7F2ZV46B.js";import{a as Y}from"./chunk-HCBYKLMW.js";import{a as F,b as x,k as ae}from"./chunk-C44QQJR4.js";import{a as We}from"./chunk-6YGTRKDT.js";import{e as U}from"./chunk-UR6MHSHU.js";var S=U(We(),1);function be(t,g,k){let{ref:D,reason:I,by:T}=k;if(!I||I.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 C=g.resolve(D);if(!C)return{record:null,errors:[{code:"UNKNOWN_REF",detail:`no node '${D}' in the graph`}]};let l=g.tipOf(C.cid);if(g.superseded.has(l))return{record:null,errors:[{code:"ALREADY_ARCHIVED",detail:`${D} is already superseded at its tip (${l.slice(0,19)}\u2026)`}]};let b=ce(t,{ts:new Date().toISOString(),proposal_id:null,nodes:[],edges:[],review:[],supersessions:[{kind:"node",old:l,new:null,reason:I,by:T}],source_head_moves:{}},{expectPrev:g.latestHash});return le(t),{record:b.record,errors:null}}function we(t){let g=t.by??{kind:"human",id:process.env.USER??"operator"},k=t.mode==="interactive"?"override":t.mode,D=k==="override"?{note:"override \xB7 auto-answers, won't ask"}:{},I=(r,i)=>ee(t.onChild,{verb:"design",subject:r,...D,fixCmd:`kane-cli design tests --use-case ${r}`},i,d=>({ok:d===0,exitCode:d})),T=(r,i,d)=>ee(t.onChild,{verb:"evolve",subject:r,...D,fixCmd:`kane-cli maintain evolve ${i}`},d,a=>({ok:a.outcome==="evolved",exitCode:a.code})),C={out:()=>{},err:()=>{},isTTY:!1,confirm:async()=>!0},l={applied:0,committed:0,retired:0,skipped:0,deferred:0,failed:0},b=new Map;for(let r of t.planRows)if(r.held_ref&&t.held){let i=t.held.rows.find(a=>a.temp_ref===r.held_ref);if(!i)continue;let d={kind:i.kind,ref:i.temp_ref,title:i.title,why:i.why,origin:"content-change",...r.impact?{impact:r.impact}:{}};b.set(d.ref,{card:d,source:"held",heldRef:i.temp_ref})}else if(r.kind==="MODIFY"){let i={kind:"MODIFY",ref:r.ref,title:r.ref,why:`${r.reason}: ${r.provenance}`,origin:r.origin??"structural-stale",...r.impact?{impact:r.impact}:{}};b.set(i.ref,{card:i,source:"row",row:r})}else if(r.kind==="ADD"){let i={kind:"ADD",ref:r.ref,title:r.ref,why:r.reason,origin:r.origin??"content-change"};b.set(i.ref,{card:i,source:"row",row:r})}for(let r of t.archive){if(r.kind!=="ARCHIVE")continue;let i={kind:"ARCHIVE",ref:r.ref,title:r.ref,why:r.why,provenance:r.why,...r.impact?{impact:r.impact}:{}};b.set(i.ref,{card:i,source:"archive",row:r})}for(let r of t.reviewFeeder?.()??[]){if(b.has(r.ref))continue;let i={kind:r.kind==="MODIFY_HELD"?"MODIFY":r.kind,ref:r.ref,title:r.title,why:r.why,...r.impact?{impact:r.impact}:{},...r.pair?{pair:r.pair}:{},...r.held?{held:!0}:{},...r.kind==="MODIFY_HELD"?{heldPayload:!0}:{}};b.set(i.ref,{card:i,source:"review",reviewCard:r})}let y=r=>(l.failed++,{outcome:"failed",detail:r});return{cards:()=>[...b.values()].map(r=>r.card),async submit(r,i){let d=b.get(r);if(!d)return y(`no card ${r}`);if(d.source==="review"){if(d.reviewCard.kind==="PAIR"&&i.v==="approve")return y(`${r} is a PAIR card \u2014 approve is not in its grammar (merge / keep both / defer); words ride a defer note`);let{submitReview:s}=await import("./verdicts-NYCSBWUC.js"),w=i.v==="approve"?{v:"approve"}:i.v==="archive"?{v:"archive",because:i.because??""}:i.v==="skip"&&d.reviewCard.kind==="MODIFY_HELD"?{v:"keep_current"}:i.v==="defer"||i.v==="skip"?{v:"defer"}:i.v==="merge"?{v:"merge"}:{v:"keep_both"},v=await s({contextDir:t.contextDir,signals:o=>t.signals({ref:o.ref,verdict:o.verdict,...o.reason?{reason:o.reason}:{}})},d.reviewCard,w,g);return v.outcome==="failed"?(l.failed++,v):v.outcome==="deferred"?(l.deferred++,i.v==="defer"&&i.note?(t.signals({ref:r,verdict:"deferred-with-note",reason:i.note}),{...v,detail:`steering noted: "${i.note}" \u2014 decide ${d.reviewCard.kind==="PAIR"?"merge / keep both":"the verdict"} when it re-offers`}):v):v.outcome==="retired"?(l.retired++,v):v.outcome==="committed"?(l.committed++,v):(l.applied++,v)}if(i.v==="merge"||i.v==="keep_both")return y(`${r} is a ${d.card.kind} card \u2014 ${i.v} applies to review cards only`);if(i.v==="skip")return l.skipped++,t.signals({ref:r,verdict:"gap-dismissed"}),{outcome:"skipped"};if(i.v==="defer")return l.deferred++,i.note?(t.signals({ref:r,verdict:"deferred-with-note",reason:i.note}),{outcome:"deferred",detail:`steering noted: "${i.note}"`}):{outcome:"deferred"};if(i.v==="archive"){if(d.source!=="archive")return y(`${r} is not an ARCHIVE card`);let s=V(t.contextDir),w=s.resolve(d.row.ref);if(w&&s.superseded.has(s.tipOf(w.cid)))return l.skipped++,{outcome:"skipped",detail:"already retired \u2014 nothing to do"};let v=be(t.contextDir,V(t.contextDir),{ref:d.row.ref,reason:`reconcile retire: ${d.row.why}`,by:g});return v.errors?y(v.errors.map(o=>`${o.code}: ${o.detail}`).join("; ")):(l.retired++,t.signals({ref:r,verdict:"gap-resolved-archive",reason:d.row.why}),{outcome:"retired"})}if(d.source==="archive")return y(`${r} takes archive/skip/defer, not approve`);if(d.source==="held"){let s=he(t.contextDir,t.held,d.heldRef,g,i.edits);if(!s.ok)return y(s.message);if(s.kind==="ADD"){let w=await I(s.ref,()=>t.runDesign(s.ref,{yes:!0,mode:k,...i.steering?{because:i.steering}:{}}));return w!==0?(l.failed++,{outcome:"failed",landed:!0,detail:`committed ${s.ref}, but its design run exited ${w} \u2014 finish with kane-cli design tests --use-case ${s.ref}`}):(l.applied++,t.signals({ref:r,verdict:"gap-resolved-create",...i.steering?{reason:i.steering}:{}}),{outcome:"applied",detail:s.ref})}if(i.steering){let w=V(t.contextDir),v=ne(w,s.ref);if(!v.ok)return l.committed++,{outcome:"committed",detail:`committed ${s.ref}, but steering could not resolve it (${v.message}) \u2014 steer via kane-cli maintain evolve ${s.ref}`};let o=await T(v.target.display,s.ref,()=>ie(t.contextDir,v.target,{yes:!0,mode:k,because:i.steering},C,t.runDesign,"batch"));if(o.outcome==="no-design"){let c=await I(v.target.seamRef,()=>t.runDesign(v.target.seamRef,{yes:!0,mode:k,because:i.steering}));return c!==0?(l.failed++,{outcome:"failed",landed:!0,detail:`committed ${s.ref}, but its steered design run exited ${c} \u2014 finish with kane-cli design tests --use-case ${v.target.seamRef}`}):(l.applied++,t.signals({ref:r,verdict:"gap-resolved-create",reason:i.steering}),{outcome:"applied",detail:s.ref})}return o.outcome==="failed"||o.outcome==="paused"?(l.failed++,{outcome:"failed",landed:!0,detail:`committed ${s.ref}, but the steering evolve ${o.outcome} (exit ${o.code}) \u2014 finish with kane-cli maintain evolve ${s.ref}`}):o.outcome==="declined"?(l.committed++,{outcome:"committed",detail:`committed ${s.ref} \u2014 the steering evolve was declined; re-run kane-cli maintain evolve ${s.ref}`}):(l.applied++,t.signals({ref:r,verdict:"gap-resolved-evolve",reason:i.steering}),{outcome:"applied",detail:s.ref})}return l.committed++,t.signals({ref:r,verdict:"gap-resolved-evolve"}),{outcome:"committed",detail:s.ref}}let a=V(t.contextDir),u=ne(a,d.row.ref);if(!u.ok)return y(u.message);if(d.card.kind==="ADD"){let s=await I(u.target.seamRef,()=>t.runDesign(u.target.seamRef,{yes:!0,mode:k}));return s!==0?y(`design run exited ${s}`):(l.applied++,t.signals({ref:r,verdict:"gap-resolved-create"}),{outcome:"applied"})}let A=await T(u.target.display,d.row.ref,()=>ie(t.contextDir,u.target,{yes:!0,mode:k,...i.steering?{because:i.steering}:{}},C,t.runDesign,"batch"));return A.outcome==="evolved"?(l.applied++,t.signals({ref:r,verdict:"gap-resolved-evolve",...i.steering?{reason:i.steering}:{}}),{outcome:"applied"}):A.outcome==="failed"||A.outcome==="paused"?y(`evolve ${A.outcome} (exit ${A.code})`):(l.skipped++,{outcome:"skipped",detail:A.outcome})},summary:()=>({...l})}}var j=U(Y(),1);function q({mark:t,markColor:g,color:k,indent:D=2,reserve:I=0,children:T}){let{stdout:C}=ae(),l=(C?.columns??80)-I,b=D+t.length+1;return(0,j.jsxs)(F,{children:[(0,j.jsx)(F,{width:b,flexShrink:0,children:(0,j.jsx)(x,{color:g,children:`${" ".repeat(D)}${t}`})}),(0,j.jsx)(F,{width:Math.max(20,l-b),children:(0,j.jsx)(x,{color:k,children:T})})]})}var p=U(Y(),1);function ye(t){return t.landed?"committed":t.outcome}var Ee={applied:{mark:"\u2714",color:"green"},committed:{mark:"\u2714",color:"green"},retired:{mark:"\u2714",color:"green"},skipped:{mark:"\xB7",color:"dim"},deferred:{mark:"\u2013",color:"dim"},failed:{mark:"\u2717",color:"red"}};function Pe(t){return t.v==="archive"?"Retiring\u2026":t.v==="approve"&&t.steering?"Approving with your changes \u2014 committing, then re-designing\u2026":"Applying \u2014 committing\u2026"}function Oe({controller:t,cards:g,note:k,markOutcome:D,routeChat:I,listEvolveTargets:T,barSubject:C,meta:l,resumeCmd:b,activeChild:y,onFinish:r,onCtrlC:i,pauseRef:d}){let[a,u]=(0,S.useState)(g.length>0?{at:"card",idx:0,sel:0,editor:null}:{at:"done-panel",sel:0}),A=(0,S.useRef)(0),s=(0,S.useRef)(a);s.current=a;let w=(0,S.useRef)([]),[,v]=(0,S.useState)(0),o=a.at==="busy"||a.at==="evolving";(0,S.useEffect)(()=>{if(!o)return;let e=setInterval(()=>v(n=>n+1),120);return()=>clearInterval(e)},[o]);let c=()=>{let e=t.summary();return`${e.applied+e.committed} applied \xB7 ${e.retired} retired \xB7 ${e.skipped} skipped \xB7 ${e.deferred} deferred`+(e.failed>0?` \xB7 ${e.failed} failed`:"")},O=()=>({state:"complete",facts:[c()]}),R=()=>({state:"walk-paused",reason:"ctrl+c",facts:[c(),"every verdict so far is committed \u2014 re-run the same reconcile command to continue"],...b?{resume:b}:{}}),$=()=>r(A.current,O()),W=(0,S.useRef)(!1),P=()=>{r(3,R())},E=()=>{if(W.current)return;W.current=!0;let e=s.current;if(e.at==="busy"||e.at==="evolving"){k((0,p.jsx)(x,{color:h.dim,children:"finishing the current item, then pausing\u2026"}));return}if(e.at==="done-panel"||e.at==="picker"||e.at==="why"||e.at==="view"){$();return}P()};d&&(d.current=E);let _=a.at==="card"||a.at==="busy"?g[a.idx]:null,M=()=>[{key:"finish",label:"finish"},...T?[{key:"evolve",label:"evolve another use-case\u2026"}]:[],...w.current.length>0?[{key:"view",label:"view what changed"}]:[]],H=()=>{let e=T?.()??[];if(e.length===0){k((0,p.jsx)(x,{color:h.dim,children:"nothing is stale \u2014 no evolve targets right now"})),u({at:"done-panel",sel:0});return}u({at:"picker",items:e,sel:0})},xe=e=>{let n=e+1;n<g.length?u({at:"card",idx:n,sel:0,editor:null}):u({at:"done-panel",sel:0})},Q=(0,S.useRef)(!1),L=(e,n)=>{if(Q.current)return;Q.current=!0;let m=g[e];u({at:"busy",idx:e,label:Pe(n),startedAt:Date.now()}),t.submit(m.ref,n).catch(f=>({outcome:"failed",detail:f instanceof Error?f.message:String(f)})).then(f=>{let B=Ee[f.outcome]??{mark:"\xB7",color:"dim"},Te=f.outcome!=="failed"&&f.outcome!=="skipped"&&f.outcome!=="deferred"&&m.impact&&"stale_refs"in m.impact&&m.impact.stale_refs.length>0?` \xB7 ${m.impact.stale_refs.length} item(s) now stale`:"",oe=`${f.outcome} [${m.kind}] ${N(m.title)}${f.detail?` \u2014 ${N(f.detail)}`:""}${Te}`;if(w.current.push({mark:B.mark,color:B.color,line:oe}),k((0,p.jsx)(q,{mark:B.mark,markColor:B.color==="green"?h.green:B.color==="red"?h.red:h.dim,color:B.color==="dim"?h.dim:void 0,children:oe})),f.outcome==="failed"&&(A.current=A.current===0?1:A.current),D(m.ref,ye(f)),Q.current=!1,W.current){P();return}xe(e)})},Ce=(e,n)=>{u({at:"evolving",title:e.title,startedAt:Date.now()}),I(`${e.key} ${n}`).catch(m=>`\u2717 evolve failed: ${m instanceof Error?m.message:String(m)}`).then(m=>{let f=m.startsWith("\u2713");if(w.current.push({mark:f?"\u2714":"\u2717",color:f?"green":"red",line:m.replace(/^[✓✗]\s*/,"")}),k((0,p.jsx)(q,{mark:f?"\u2714":"\u2717",markColor:f?h.green:h.red,children:m.replace(/^[✓✗]\s*/,"")})),W.current){$();return}u({at:"done-panel",sel:0})})},Re=(0,S.useMemo)(()=>({isFocused:()=>{let e=s.current;return e.at==="card"&&e.editor===null||e.at==="done-panel"||e.at==="picker"||e.at==="view"},onMove:e=>{u(n=>{if(n.at==="card"){let m=g[n.idx],f=G(m)??K(m).length-1;return{...n,sel:Math.max(0,Math.min(f,n.sel+e))}}return n.at==="done-panel"?{...n,sel:Math.max(0,Math.min(M().length-1,n.sel+e))}:n.at==="picker"?{...n,sel:Math.max(0,Math.min(n.items.length-1,n.sel+e))}:n})},onSelect:()=>{let e=s.current;if(e.at==="card"){let n=g[e.idx],m=G(n);if(m!==null&&e.sel===m){u({...e,editor:"",editorIntent:"steer"});return}let f=K(n)[e.sel];if(f?.v==="archive"&&n.kind==="REVIEW"){u({...e,editor:"",editorIntent:"because"});return}f&&L(e.idx,{v:f.v});return}if(e.at==="done-panel"){let n=M()[e.sel];n?.key==="finish"?$():n?.key==="evolve"?H():n?.key==="view"&&u({at:"view"});return}if(e.at==="picker"){let n=e.items[e.sel];n&&u({at:"why",item:n,text:""});return}},onDigit:e=>{let n=s.current;if(n.at==="card"){let m=g[n.idx],f=K(m)[e-1];if(f?.v==="archive"&&m.kind==="REVIEW"){u({...n,editor:"",editorIntent:"because"});return}f&&L(n.idx,{v:f.v});return}n.at==="done-panel"&&e-1<M().length&&u({...n,sel:e-1}),n.at==="picker"&&e-1<n.items.length&&u({...n,sel:e-1})},onType:e=>{u(n=>n.at!=="card"||G(g[n.idx])===null?n:{...n,editor:(n.editor??"")+e,editorIntent:n.editorIntent??"steer"})},isMulti:()=>!1,onSpace:()=>{},onBack:()=>{let e=s.current;(e.at==="picker"||e.at==="view")&&u({at:"done-panel",sel:0})}}),[g]);(0,S.useEffect)(()=>{a.at==="done"&&$()},[a.at]);let $e=e=>Math.floor((Date.now()-e)/1e3),X=y?.current??null,De=a.at==="card"?{kind:"card",n:a.idx+1,m:g.length}:a.at==="busy"?X?{kind:"child-working",step:re(a.label)}:{kind:"working",step:re(a.label),elapsedS:$e(a.startedAt)}:a.at==="evolving"?{kind:"child-working",step:`evolving ${a.title}`}:{kind:"idle"},Se=a.at==="card"||a.at==="busy"?g.length-a.idx:0,Me=a.at==="done-panel"||a.at==="picker"||a.at==="why"||a.at==="view",Ie=[...a.at==="card"?a.editor!==null?["\u23CE submit","esc back"]:ge(g[a.idx]).keys:a.at==="done-panel"?pe(M(),{escBack:!1}).keys:a.at==="picker"?["\u2191\u2193 select","\u23CE confirm","esc back"]:a.at==="why"?["\u23CE submit","esc back"]:a.at==="view"?["esc back"]:[],"ctrl+c exit"],z=l??{verb:"reconcile",sid:"",env:""},Ae=`view \xB7 this run's changes \xB7 ${w.current.length}`;return(0,p.jsxs)(F,{flexDirection:"column",children:[(0,p.jsx)(ue,{onToggleThinking:()=>{},onCtrlC:()=>{i(),E()},panel:Re}),a.at==="card"&&_?(0,p.jsx)(me,{card:_,position:{n:a.idx+1,of:g.length},sel:a.sel,focused:a.editor===null,editorIntent:a.editorIntent??"steer",freeText:a.editor!==null?{value:a.editor,onChange:e=>u(n=>n.at==="card"?{...n,editor:e}:n),onSubmit:e=>{let n=s.current;if(n.at!=="card")return;let m=e.trim();if(!m){u({...n,editor:null,editorIntent:void 0});return}let f=g[n.idx];n.editorIntent==="because"?L(n.idx,{v:"archive",because:m}):f.kind==="PAIR"?L(n.idx,{v:"defer",note:m}):L(n.idx,{v:"approve",steering:m})},onCancel:()=>u(e=>e.at==="card"?{...e,editor:null,editorIntent:void 0}:e)}:null}):null,a.at==="done-panel"?(0,p.jsx)(Z,{headline:(()=>{let e=t.summary();return`reconcile done \u2014 ${e.applied+e.committed} applied \xB7 ${e.retired} retired \xB7 ${e.skipped} skipped \xB7 ${e.deferred} deferred${e.failed>0?` \xB7 ${e.failed} failed`:""}`})(),rows:M(),sel:a.sel,focused:!0}):null,a.at==="picker"?(0,p.jsx)(Z,{ask:!0,headline:"evolve which use-case?",rows:a.items.map(e=>({key:e.key,label:e.title,detail:e.badge})),sel:a.sel,focused:!0}):null,a.at==="why"?(0,p.jsxs)(F,{flexDirection:"column",borderStyle:"round",borderColor:h.assuranceAccent,paddingX:1,children:[(0,p.jsxs)(F,{children:[(0,p.jsxs)(x,{children:[(0,p.jsx)(x,{color:h.assuranceAccent,children:"\u25B8"})," ",(0,p.jsx)(x,{color:h.dim,children:"\u270E "})]}),(0,p.jsx)(se,{value:a.text,onChange:e=>u(n=>n.at==="why"?{...n,text:e}:n),onSubmit:e=>{let n=s.current;n.at==="why"&&(e.trim()?Ce(n.item,e.trim()):u({at:"picker",items:[n.item],sel:0}))},onCancel:()=>{s.current.at==="why"&&H()},placeholder:`what should change about ${a.item.title}?`})]}),(0,p.jsx)(x,{color:h.muted,children:" \u23CE submit \xB7 esc back"})]}):null,a.at==="view"?(0,p.jsxs)(F,{marginTop:1,marginBottom:1,flexDirection:"column",children:[(0,p.jsx)(x,{bold:!0,color:h.assuranceAccent,children:Ae}),(0,p.jsx)(x,{children:" "}),w.current.map((e,n)=>(0,p.jsx)(q,{mark:e.mark,markColor:e.color==="green"?h.green:e.color==="red"?h.red:h.dim,color:e.color==="dim"?h.dim:void 0,indent:0,reserve:0,children:e.line},`vc-${n}`))]}):null,(0,p.jsx)(de,{status:De,meta:{...z,...C??z.subject?{subject:C??z.subject}:{}},tallies:fe(t.summary(),Se),keys:Ie,child:a.at==="evolving"?{verb:"evolve"}:X?{verb:X.verb}:void 0})]})}async function ut(t){let g={current:null},k=o=>{g.current?.append(o)},D=null,I=async(o,c)=>{let[{runDesign:O},{resolveAgentAuthEnv:R},{runAgent:$},{preflightTurn:W}]=await Promise.all([import("./run-WKHPVWUN.js"),import("./spawner-DQZRJIE6.js"),import("./bridge-QDPBIIOW.js"),import("./turn-preflight-JGYT7LXP.js")]);D??=await R();let P=D;return O({useCase:o,force:!0,mode:c.mode??"override",...c.because?{because:c.because}:{},...c.changeDelta!==void 0?{changeDelta:c.changeDelta}:{},...c.priorDesign!==void 0?{priorDesign:c.priorDesign}:{}},{contextDir:t.dir,agent:$,preflightTurn:()=>W(P),ask:async()=>[],out:()=>{},progress:()=>{},isTTY:!1,auth:P})},T=t.runDesign??I,C={current:null},l="",b=o=>{if(o.kind==="start")C.current={verb:o.verb},l=o.subject,k((0,p.jsxs)(x,{color:h.assuranceAccent,children:[`\u25CF ${te(o.verb).ing} ${N(o.subject)}`,o.note?(0,p.jsx)(x,{color:h.dim,children:` ${o.note}`}):null]}));else if(o.kind==="end"){let c=C.current?.verb??"design";C.current=null,k(o.ok?(0,p.jsx)(x,{color:h.green,children:`\u25CF ${te(c).ed} ${N(l)} \u2014 ${o.durS}s`}):(0,p.jsx)(x,{color:h.red,children:`\u25CF ${c} failed \u2014 ${o.exitCode!=null?`exited ${o.exitCode}`:"error"}${o.fixCmd?` \xB7 ${o.fixCmd}`:""}`}))}},y=we({contextDir:t.dir,held:t.held,archive:t.archive,planRows:t.rows,runDesign:T,mode:"interactive",signals:t.signals,onChild:b,reviewFeeder:()=>{try{return ke({contextDir:t.dir},V(t.dir))}catch{return[]}}}),r=new Set(t.rows.filter(o=>o.applied!==void 0).map(o=>o.held_ref??o.ref)),i=y.cards().filter(o=>!r.has(o.ref)&&!(o.kind==="ARCHIVE"&&t.archiveState?.[o.ref]!==void 0)),d=o=>t.rows.findIndex(c=>(c.held_ref??c.ref)===o),a=(o,c)=>{try{if(i.find($=>$.ref===o)?.kind==="ARCHIVE"){c==="retired"?t.markA?.(o,"retired"):c==="skipped"&&t.markA?.(o,"skipped");return}let R=d(o);if(R<0)return;c==="applied"||c==="committed"?t.mark?.(R,"approved"):c==="skipped"&&t.mark?.(R,"skipped")}catch{}},u=async o=>{let[{openGraph:c},{resolveParentUc:O,evolveOneUc:R}]=await Promise.all([import("./readmodel-XOYGGQ3S.js"),import("./evolve-cmd-JGCFTXWA.js")]),[$,...W]=o.split(/\s+/),P=c(t.dir),E=O(P,$);if(!E.ok)return`couldn't resolve '${$}' \u2014 start with a use-case id (uc-\u2026): ${E.message}`;if(W.length===0)return`say what to change: \`${$} <your words>\` \u2014 the words become the redesign's change delta`;let _=W.join(" "),M={out:()=>{},err:()=>{},isTTY:!1,confirm:async()=>!0},H=await R(t.dir,E.target,{yes:!0,mode:"override",because:_},M,T,"batch");return H.outcome==="evolved"?(t.signals({ref:E.target.display,verdict:"gap-resolved-evolve",reason:_}),`\u2713 redesigned ${E.target.display} \u2014 "${_}"`):`\u2717 evolve ${H.outcome} for ${E.target.display} (exit ${H.code})`},A=t.listEvolveTargets??(()=>{let o=V(t.dir);return ve(o).targets.map(c=>({key:c.display,title:c.display,badge:"stale"}))});if(t.script){let o=0;for(let c of i){let O=await t.script(c),R=await y.submit(c.ref,O);R.outcome==="failed"&&o===0&&(o=1),a(c.ref,ye(R))}return o}let[{render:s},{ScrollbackProvider:w},{ScrollbackTap:v}]=await Promise.all([import("./build-JIKYOZUH.js"),import("./scrollback-JLPJR25X.js"),import("./ScrollbackTap-Q3IOKNMS.js")]);return new Promise(o=>{let c=!1,O=(_,M)=>{c||(c=!0,(async()=>{process.removeListener("SIGINT",P),await g.current?.flush();try{E.unmount()}catch{}M&&J(M),o(_)})())},R=0,$={current:null},W=()=>{if(R+=1,R>=2){if(c)return;c=!0,process.removeListener("SIGINT",P);try{E.unmount()}catch{}J({state:"interrupted",reason:"ctrl+c \xD72",facts:["forced quit \u2014 every committed verdict is safe in the store"]}),o(130)}},P=()=>{W(),$.current?.()};process.on("SIGINT",P);let E=s((0,p.jsxs)(w,{children:[(0,p.jsx)(v,{into:g}),(0,p.jsx)(Oe,{controller:y,cards:i,note:k,markOutcome:a,routeChat:u,listEvolveTargets:A,barSubject:t.barSubject,meta:t.meta,resumeCmd:t.resumeCmd,activeChild:C,onFinish:O,onCtrlC:W,pauseRef:$})]}),{exitOnCtrlC:!1})})}export{Oe as WalkSessionSurface,ye as outcomeToMark,ut as runWalkSession};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-
|
|
2
|
+
import{a}from"./chunk-I7RQS65W.js";import"./chunk-LDCLZR2U.js";import"./chunk-R5T4RLF5.js";import"./chunk-KBM3XHAM.js";import"./chunk-2YEHV2CX.js";import"./chunk-IDX3TOPY.js";import"./chunk-BKM2LWU2.js";import"./chunk-56PAQAX5.js";import"./chunk-5EOX4MEY.js";import"./chunk-RZ4F3BHX.js";import"./chunk-7F2ZV46B.js";import"./chunk-UR6MHSHU.js";export{a as withTelemetry};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testmuai/kane-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "KaneAI Terminal UI — browser automation testing agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"README.md"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
+
"@devicefarmer/adbkit-apkreader": "^3.2.4",
|
|
20
21
|
"@testmuai/evidence-cli": "^0.1.7",
|
|
21
22
|
"archiver": "^7.0.1",
|
|
22
23
|
"chalk": "^5.3.0",
|
|
@@ -34,11 +35,16 @@
|
|
|
34
35
|
"ws": "^8.20.0"
|
|
35
36
|
},
|
|
36
37
|
"optionalDependencies": {
|
|
37
|
-
"@testmuai/kane-cli-darwin-arm64": "0.
|
|
38
|
-
"@testmuai/kane-cli-darwin-x64": "0.
|
|
39
|
-
"@testmuai/kane-cli-linux-
|
|
40
|
-
"@testmuai/kane-cli-linux-
|
|
41
|
-
"@testmuai/kane-cli-win-x64": "0.
|
|
38
|
+
"@testmuai/kane-cli-assurance-darwin-arm64": "0.8.2",
|
|
39
|
+
"@testmuai/kane-cli-assurance-darwin-x64": "0.8.2",
|
|
40
|
+
"@testmuai/kane-cli-assurance-linux-arm64": "0.8.2",
|
|
41
|
+
"@testmuai/kane-cli-assurance-linux-x64": "0.8.2",
|
|
42
|
+
"@testmuai/kane-cli-assurance-win-x64": "0.8.2",
|
|
43
|
+
"@testmuai/kane-cli-darwin-arm64": "0.8.2",
|
|
44
|
+
"@testmuai/kane-cli-darwin-x64": "0.8.2",
|
|
45
|
+
"@testmuai/kane-cli-linux-x64": "0.8.2",
|
|
46
|
+
"@testmuai/kane-cli-linux-arm64": "0.8.2",
|
|
47
|
+
"@testmuai/kane-cli-win-x64": "0.8.2",
|
|
42
48
|
"@testmuai/kane-cli-node-darwin-arm64": "24.18.0",
|
|
43
49
|
"@testmuai/kane-cli-node-darwin-x64": "24.18.0",
|
|
44
50
|
"@testmuai/kane-cli-node-linux-x64": "24.18.0",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as pn,b as ue,c as xn,d as Tt,f as Ye,g as Ze,h as kn}from"./chunk-VFII6C46.js";import{a as hn}from"./chunk-CLGC7VEO.js";import{a as Je}from"./chunk-KCCSWEGA.js";import{a as fn,b as gn}from"./chunk-VGFTNLQQ.js";import"./chunk-L2TV4G56.js";import"./chunk-6KPPGMO2.js";import{a as un,b as dn,c as mn}from"./chunk-SFII7HPP.js";import{a as ln}from"./chunk-5Y2G4NC7.js";import"./chunk-NVGBE2DR.js";import"./chunk-TH47OOBV.js";import"./chunk-VAYBKR76.js";import"./chunk-CUM23TLF.js";import"./chunk-DUAXZYAD.js";import"./chunk-DBIBROYW.js";import"./chunk-WXHQYYD5.js";import"./chunk-IAHKTEET.js";import"./chunk-UD7KKHPW.js";import{a as Ge}from"./chunk-YCCUBQY4.js";import{a as an}from"./chunk-GYNTNKNB.js";import{b as cn}from"./chunk-DFS4RMVP.js";import{y as r}from"./chunk-ZUGCHQFC.js";import{a as X}from"./chunk-HCBYKLMW.js";import{a as b,b as n,k as Ce}from"./chunk-C44QQJR4.js";import{a as wr}from"./chunk-6YGTRKDT.js";import{e as Q}from"./chunk-UR6MHSHU.js";var p=Q(wr(),1);var c=Q(X(),1),Tr=60,vr=100;function vt(t,i){let l=t.options.length,u=l,h=t.multi_select?u++:null,m=t.allow_free_text?u++:null,d=i?u++:null;return{optionCount:l,doneIdx:h,freeIdx:m,batchIdx:d,maxSel:u-1}}var $r="\xA0",Cr={high:{text:`\u203C${$r}high`,color:r.red},med:{text:"med",color:"yellow"},low:{text:"low",color:r.dim}};function Rr(t){let i=(t.header??t.text.split(/\s+/).slice(0,3).join(" ")).trim();return i.length>16?`${i.slice(0,15)}\u2026`:i}function Sr(t,i,l){let u=g=>t[g].length+6,h=u(i),m=i,d=i;for(;;){let g=d+1<t.length?u(d+1):1/0,k=m-1>=0?u(m-1):1/0;if(g===1/0&&k===1/0)break;if(g<=k){if(h+g>l)break;h+=g,d+=1}else{if(h+k>l)break;h+=k,m-=1}}return{lo:m,hi:d}}function bn({batch:t,qView:i,sel:l=0,focused:u=!1,freeText:h=null,optionText:m=null,attach:d=null,canAttach:g=!1,multiSelFor:k}){let{stdout:L}=Ce(),$=L?.columns??80,w=$<Tr,A=Math.min($-1,vr),y=Math.max(0,Math.min(t.questions.length-1,i??(t.cursor<0?0:t.cursor))),x=t.questions[y],S=t.resolution[y],P=t.resolution.filter(U=>!U).length,B=t.questions.length-P,O=Je(t),D=vt(x,O!==""),W=k?k(y):[],K=Cr[x.risk],M=U=>u&&l===U?(0,c.jsx)(n,{color:r.assuranceAccent,children:"\u276F"}):" ",Ie=`? the agent needs ${P===1?"one answer":`${P} answers`}`,z=t.questions.length>1?` \xB7 ${y+1} of ${t.questions.length} \xB7 ${B} answered`:"",N=(0,c.jsxs)(b,{flexDirection:"column",children:[(0,c.jsx)(b,{paddingLeft:2,children:(0,c.jsxs)(n,{bold:!0,children:[x.text,K?(0,c.jsx)(n,{color:K.color,bold:!1,children:` ${K.text}`}):null]})}),(0,c.jsx)(b,{paddingLeft:2,children:(0,c.jsx)(n,{color:r.dim,children:x.rationale})}),(0,c.jsx)(n,{children:" "}),x.options.map((U,q)=>{let re=u&&l===q;return m&&m.optionIndex===q?(0,c.jsx)(b,{flexDirection:"column",children:(0,c.jsxs)(b,{children:[(0,c.jsxs)(n,{children:[(0,c.jsx)(n,{color:r.assuranceAccent,children:"\u276F"})," ",(0,c.jsx)(n,{color:r.assuranceAccent,children:`${q+1}. ${U.label}`}),(0,c.jsx)(n,{color:r.dim,children:" \u270E "})]}),(0,c.jsx)(Ge,{value:m.value,onChange:m.onChange,onSubmit:m.onSubmit,onCancel:m.onCancel,placeholder:U.detail||"type your answer"})]})},`o-${q}`):(0,c.jsxs)(b,{flexDirection:"column",children:[(0,c.jsxs)(n,{children:[M(q)," ",x.multi_select?(0,c.jsx)(n,{color:W.includes(q)?r.green:r.dim,children:W.includes(q)?"[x] ":"[ ] "}):null,(0,c.jsx)(n,{color:re?r.assuranceAccent:void 0,children:`${q+1}. ${U.label}`}),q===x.recommended_index?(0,c.jsx)(n,{color:r.dim,children:" (recommended)"}):null,S?.selected_index===q?(0,c.jsx)(n,{color:r.dim,children:" (current)"}):null]}),U.detail?(0,c.jsx)(b,{paddingLeft:5,children:(0,c.jsx)(n,{color:r.dim,children:U.detail})}):null]},`o-${q}`)}),x.multi_select&&D.doneIdx!=null?(0,c.jsxs)(n,{children:[M(D.doneIdx)," ",(0,c.jsx)(n,{color:r.green,children:"\u2714"}),(0,c.jsx)(n,{color:u&&l===D.doneIdx?r.assuranceAccent:void 0,children:" done \u2014 confirm selection"})]}):null,x.allow_free_text?(0,c.jsx)(n,{children:" "}):null,x.allow_free_text?h?(0,c.jsxs)(b,{children:[(0,c.jsxs)(n,{children:[(0,c.jsx)(n,{color:r.assuranceAccent,children:"\u276F"})," ",(0,c.jsx)(n,{color:r.dim,children:"\u270E "})]}),(0,c.jsx)(Ge,{value:h.value,onChange:h.onChange,onSubmit:h.onSubmit,onCancel:h.onCancel,placeholder:"Tell me what to do"})]}):(0,c.jsxs)(n,{children:[D.freeIdx!=null?M(D.freeIdx):" "," ",(0,c.jsx)(n,{color:u&&D.freeIdx!=null&&l===D.freeIdx?r.assuranceAccent:r.dim,children:"\u270E Tell me what to do"})]}):null,d?(0,c.jsxs)(b,{flexDirection:"column",marginTop:1,children:[(0,c.jsxs)(b,{children:[(0,c.jsxs)(n,{children:[(0,c.jsx)(n,{color:r.assuranceAccent,children:"\u276F"})," ",(0,c.jsx)(n,{color:r.assuranceAccent,children:"@ attach a file or URL"}),(0,c.jsx)(n,{color:r.dim,children:" \u270E "})]}),(0,c.jsx)(Ge,{value:d.value,onChange:d.onChange,onSubmit:d.onSubmit,onCancel:d.onCancel,placeholder:"path or URL"})]}),(0,c.jsx)(b,{paddingLeft:2,children:(0,c.jsx)(n,{color:r.dim,children:"the questions are set aside \u2014 the agent reads the source and re-asks what's still open"})})]}):null]}),C=O!==""?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n,{children:" "}),(0,c.jsxs)(n,{children:[u&&D.batchIdx!=null&&l===D.batchIdx?(0,c.jsx)(n,{color:r.assuranceAccent,children:"\u276F"}):" "," ",(0,c.jsx)(n,{color:r.assuranceAccent,children:"\xBB"}),(0,c.jsx)(n,{bold:!0,color:u&&D.batchIdx!=null&&l===D.batchIdx?r.assuranceAccent:void 0,children:" Go with recommendations"}),P>=5?(0,c.jsx)(n,{color:r.dim,children:` \u2014 resolves all ${P} open`}):null,(0,c.jsx)(n,{color:r.dim,children:" (tab)"})]})]}):null;if(w)return(0,c.jsxs)(b,{marginTop:1,marginBottom:1,flexDirection:"column",children:[(0,c.jsx)(n,{color:r.assuranceAccent,bold:!0,children:Ie}),t.questions.length>1?(0,c.jsx)(n,{color:r.dim,children:z.replace(/^ · /,"")}):null,(0,c.jsx)(n,{children:" "}),N,C,(0,c.jsx)(b,{paddingLeft:2,children:(0,c.jsx)(n,{color:r.muted,children:"\u2191\u2193 \u23CE \xB7 \u2190 \u2192 questions \xB7 esc back"})})]});let rt=`\u2500\u2500 ${Ie}${z} `,G=Math.max(2,A-rt.length),E=g?"\u2191\u2193 select \xB7 \u23CE confirm \xB7 \u2190 \u2192 questions \xB7 type = your words \xB7 @ attach a file or URL \xB7 esc back":"\u2191\u2193 select \xB7 \u23CE confirm \xB7 \u2190 \u2192 questions \xB7 type = your words \xB7 esc back",De=`\u2500\u2500 ${E} `,it=Math.max(2,A-De.length),me=t.questions.map(U=>Rr(U)),J=t.questions.length>1?Sr(me,y,A-8):null;return(0,c.jsxs)(b,{marginTop:1,marginBottom:1,flexDirection:"column",children:[(0,c.jsxs)(n,{color:r.assuranceAccent,children:["\u2500\u2500 ",(0,c.jsx)(n,{bold:!0,children:Ie}),z?(0,c.jsx)(n,{color:r.dim,children:z}):null,` ${"\u2500".repeat(G)}`]}),J?(0,c.jsx)(b,{marginTop:1,children:(0,c.jsxs)(n,{children:[J.lo>0?(0,c.jsx)(n,{color:r.dim,children:"\u25C0 "}):" ",t.questions.slice(J.lo,J.hi+1).map((U,q)=>{let re=J.lo+q,qe=q>0?" ":"";return re===y?(0,c.jsxs)(n,{children:[qe,(0,c.jsx)(n,{backgroundColor:r.assuranceAccent,color:"#0d1117",bold:!0,children:` ${me[re]} `})]},U.id):(0,c.jsxs)(n,{children:[qe,t.resolution[re]?(0,c.jsxs)(n,{children:[(0,c.jsx)(n,{color:r.green,children:"\u2713 "}),(0,c.jsx)(n,{color:r.dim,children:me[re]})]}):(0,c.jsx)(n,{color:r.dim,children:`\u25CB ${me[re]}`})]},U.id)}),J.hi<t.questions.length-1?(0,c.jsx)(n,{color:r.dim,children:" \u25B6"}):null]})}):null,(0,c.jsx)(n,{children:" "}),N,C,(0,c.jsx)(n,{children:" "}),(0,c.jsxs)(n,{color:r.assuranceAccent,children:["\u2500\u2500 ",(0,c.jsx)(n,{color:r.muted,children:E}),` ${"\u2500".repeat(it)}`]})]})}var _=Q(X(),1),yn={high:0,med:1,low:2},Ir={high:r.red,med:"yellow",low:r.dim};function Dr(t){return t.map((i,l)=>({r:i,i:l})).sort((i,l)=>(yn[i.r.risk??"zz"]??3)-(yn[l.r.risk??"zz"]??3)||i.i-l.i).map(({r:i})=>i)}var de=(t,i)=>t.length<=i?t:i<=1?"\u2026":`${t.slice(0,i-1)}\u2026`,et=(t,i)=>t+" ".repeat(Math.max(0,i-t.length));function wn({rows:t,width:i=120,badgeHeader:l="risk"}){if(t.length===0)return null;let u=Dr(t),h=B=>B.staged||!B.id?"(staged)":hn(B.id),m=Math.max(2,...u.map(B=>h(B).length)),d=Math.max(l.length,...u.map(B=>(B.badge??"").length)),g=i>=96&&u.some(B=>B.summary),L=i-(g?13:10)-m-d,$=Math.max(...u.map(B=>Math.max(B.title.length,(B.marker??"").length)),5),w=Math.max(5,g?Math.min($,Math.max(16,Math.floor(L*.5))):Math.min($,L)),A=g?Math.max(7,L-w):0,y=(B,O,D,W)=>B+W.map(K=>`\u2500${"\u2500".repeat(K.length)}\u2500`).join(O)+D,x=(B,O,D,W)=>[et(de(B,m),m),et(de(O,w),w),et(de(D,d),d),...g?[et(de(W,A),A)]:[]],S=x("id","title",l,"summary"),P=[];P.push((0,_.jsx)(n,{color:r.dim,children:y("\u250C","\u252C","\u2510",S)},"t")),P.push((0,_.jsxs)(n,{children:[S.map((B,O)=>(0,_.jsxs)(n,{children:[(0,_.jsx)(n,{color:r.dim,children:O===0?"\u2502 ":" \u2502 "}),(0,_.jsx)(n,{bold:!0,children:B})]},O)),(0,_.jsx)(n,{color:r.dim,children:" \u2502"})]},"h")),P.push((0,_.jsx)(n,{color:r.dim,children:y("\u251C","\u253C","\u2524",S)},"m"));for(let[B,O]of u.entries()){let D=x(h(O),de(O.title,w),de(O.badge??"",d),de(O.summary??"",A)),W=O.badgeColor??Ir[O.badge??""]??r.dim;if(P.push((0,_.jsxs)(n,{children:[(0,_.jsx)(n,{color:r.dim,children:"\u2502 "}),(0,_.jsx)(n,{color:r.assuranceAccent,children:D[0]}),(0,_.jsx)(n,{color:r.dim,children:" \u2502 "}),D[1],(0,_.jsx)(n,{color:r.dim,children:" \u2502 "}),(0,_.jsx)(n,{color:W,children:D[2]}),g?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(n,{color:r.dim,children:" \u2502 "}),D[3]]}):null,(0,_.jsx)(n,{color:r.dim,children:" \u2502"})]},`r-${B}`)),O.marker){let K=x("",de(O.marker,w),"","");P.push((0,_.jsx)(n,{color:r.dim,children:`\u2502 ${K.join(" \u2502 ")} \u2502`},`mk-${B}`))}}return P.push((0,_.jsx)(n,{color:r.dim,children:y("\u2514","\u2534","\u2518",S)},"b")),(0,_.jsx)(_.Fragment,{children:P})}var Ar={"use-case":"use-cases",ac:"ACs",scenario:"scenarios",test:"tests",gap:"gaps"},ce=t=>Ar[t]??`${t}s`,Tn=t=>t==="ac"?"AC":t==="use-case"?"use-case":t,$t=t=>t.kind??"use-case",vn=t=>`${$t(t)}:${t.temp_ref}`;function $n(t){let i=t,l=i.badge??t.risk??null,u=i.why??t.summary??t.description??null;return JSON.stringify([t.title,l,u,i.extra??null,t.depends_on_hint??null])}function Cn(t){return t.filter(i=>i.role==="agent"&&typeof i.turnIndex=="number"&&Array.isArray(i.items)&&i.items.length>0)}function he(t){let i=new Map,l=1;for(let m of Cn(t)){let d=new Set;for(let g of m.items){let k=vn(g);if(d.has(k))continue;d.add(k);let L=i.get(k);i.set(k,{num:L?.num??l++,ref:g.temp_ref,kind:$t(g),item:g,turnIndex:m.turnIndex,fingerprint:$n(g)})}}let u=[...i.values()].sort((m,d)=>m.num-d.num),h=[];for(let m of u){let d=h.find(g=>g.kind===m.kind);d?d.count++:h.push({kind:m.kind,label:ce(m.kind),count:1})}return{entries:u,byRef:i,counts:h}}function Rn(t,i){let u=Cn(t).find(x=>x.turnIndex===i);if(!u)return null;let h=t.filter(x=>x.role!=="agent"||typeof x.turnIndex!="number"||x.turnIndex<=i),m=he(h),d=he(t.filter(x=>x.role!=="agent"||typeof x.turnIndex!="number"||x.turnIndex<i)),g=[],k=new Map,L=new Map,$=new Map,w=new Set;for(let x of u.items){let S=vn(x);if(w.has(S))continue;w.add(S);let P=d.byRef.get(S),B=x.changed===!0,O=m.byRef.get(S).num,D=$t(x);if(P&&!B&&P.fingerprint===$n(x)){k.set(D,(k.get(D)??0)+1);continue}let W=!!P||B,K=W?$:L;K.set(D,(K.get(D)??0)+1),g.push({item:x,num:O,updated:W})}let A=[...k.entries()].map(([x,S])=>({label:ce(x),count:S})),y=[...[...L.entries()].map(([x,S])=>`${S} new ${S===1?Tn(x):ce(x)}`),...[...$.entries()].map(([x,S])=>`${S} updated ${S===1?Tn(x):ce(x)}`)].join(" \xB7 ");return{fresh:g,unchanged:A,headerStats:y}}function Ct(t,i){let l=t.entries.filter(m=>m.turnIndex===i);if(l.length===0)return t;let u=new Map(l.map(m=>[m.ref,m])),h=[];for(let m of l){let d=h.find(g=>g.kind===m.kind);d?d.count+=1:h.push({kind:m.kind,label:ce(m.kind),count:1})}return{entries:l,byRef:u,counts:h}}var v=Q(X(),1);function Mr(t){let i=t.form==="assumed"?" (assumed)":t.form==="deferred"?"":" (you)",l=t.note?` \u2014 ${t.note}`:"";return t.form==="deferred"?`\u21B3 deferred q${t.qNum} ${t.stub}${l}`:t.form==="changed"?`\u21B3 changed q${t.qNum} ${t.stub}: ${t.prev??"?"} \u2192 ${t.choice??"?"}${i}${l}`:`\u21B3 ${t.form} q${t.qNum} ${t.stub}: ${t.choice??"?"}${i}${l}`}var Br=Math.min(process.stdout?.columns??100,120)-2;function Sn({block:t,annotations:i}){switch(t.kind){case"banner":return(0,v.jsx)(b,{marginTop:1,children:(0,v.jsx)(n,{color:r.dim,children:` \u2500\u2500 ${t.text} \u2500\u2500`})});case"user":return(0,v.jsxs)(b,{marginTop:1,children:[(0,v.jsx)(n,{color:r.orange,children:"\u276F "}),(0,v.jsx)(n,{children:t.text})]});case"note":return(0,v.jsx)(n,{color:r.dim,children:` ${t.text}`});case"agent":return(0,v.jsx)(b,{marginTop:1,children:(0,v.jsx)(dn,{text:t.text,accent:r.assuranceAccent})});case"thinking":return(0,v.jsx)(b,{marginTop:1,children:(0,v.jsx)(n,{color:r.dim,children:` thought for ${(t.tookMs/1e3).toFixed(1)}s`})});case"tool":return(0,v.jsx)(n,{color:r.dim,children:` ${fn({name:t.name,status:t.status==="ok"?"done":t.status,detail:t.detail})}`});case"usage":return(0,v.jsx)(n,{color:r.dim,children:` \xB7 ${t.credits.toFixed(1)} credits \u2014 total ${t.total.toFixed(1)}`});case"turn":{let l=i??null,u=l?l.fresh:t.items.map(($,w)=>({item:$,num:w+1,updated:!1})),h={usecase:"risk","use-case":"risk",ac:"check",scenario:"kind",test:"check",gap:"severity",stylenote:"kind"},m=$=>$.kind??"use-case",d=new Map;for(let $ of u){let w=$.item,A=m($.item),y=w.risk==="high"||w.risk==="med"||w.risk==="low"?w.risk:void 0,x={id:w.logical_id??"",staged:!w.logical_id,title:w.title,badge:w.badge??w.risk??"",summary:w.why??w.summary??w.description??"",...y?{risk:y}:{},...$.updated?{marker:"\u21B3 changed"}:{}},S=d.get(A)??[];S.push(x),d.set(A,S)}let g=u.some($=>!!$.item.kind),k=(l?.unchanged??[]).reduce(($,w)=>$+w.count,0),L=l?.headerStats?` \u2014 ${l.headerStats}${k>0?` (${k} unchanged)`:""}`:"";return(0,v.jsxs)(b,{flexDirection:"column",marginLeft:2,children:[(0,v.jsxs)(n,{bold:!0,children:[g?"design":t.heading,L?(0,v.jsx)(n,{bold:!1,color:r.dim,children:L}):null]}),[...d.entries()].map(([$,w])=>(0,v.jsxs)(b,{flexDirection:"column",children:[d.size>1?(0,v.jsx)(n,{color:r.dim,children:`${ce($)} \xB7 ${w.length}`}):null,(0,v.jsx)(wn,{rows:w,width:Br,badgeHeader:h[$]??"info"})]},$)),l&&l.unchanged.length>0&&(0,v.jsx)(n,{color:r.dim,children:` \u22EE unchanged: ${l.unchanged.map($=>`${$.count} ${$.label}`).join(" \xB7 ")}`})]})}case"answer":return(0,v.jsx)(n,{color:r.dim,children:Mr(t.receipt)});case"continued":return(0,v.jsx)(n,{color:r.dim,children:"\u21B3 continued"});case"commit":return(0,v.jsxs)(b,{flexDirection:"column",children:[(0,v.jsx)(n,{color:t.ok?r.green:r.red,children:` ${t.ok?"\u2714":"\u2717"} ${t.line}`}),(t.warnings??[]).map((l,u)=>(0,v.jsx)(n,{color:r.dim,children:` \u26A0 ${l}`},`w-${u}`))]});case"error":return(0,v.jsxs)(an,{variant:"error",paddingX:1,children:[(0,v.jsx)(n,{color:r.red,children:t.title}),t.detail.map((l,u)=>(0,v.jsx)(n,{color:r.dim,children:l},`d-${u}`))]});case"interrupted":return(0,v.jsxs)(b,{flexDirection:"column",children:[(0,v.jsx)(n,{color:r.red,children:"interrupted \u2014 session not saved"}),t.detail?(0,v.jsx)(n,{color:r.dim,children:t.detail}):null]});case"pause":return(0,v.jsxs)(b,{flexDirection:"column",children:[(0,v.jsx)(n,{children:`paused: session ${t.sid} saved`}),t.expires_at?(0,v.jsx)(n,{color:r.dim,children:`expires: ${t.expires_at}`}):null,(0,v.jsx)(n,{children:`resume: ${t.resume}`}),t.messageForm?(0,v.jsx)(n,{children:`or say something on the way in: ${t.messageForm}`}):null]});case"summary":return(0,v.jsxs)(b,{flexDirection:"column",children:[(0,v.jsx)(n,{bold:!0,children:"session summary"}),t.lines.map((l,u)=>(0,v.jsx)(n,{children:` ${l}`},`s-${u}`))]})}}var Re=Q(X(),1);function In({item:t}){return(0,Re.jsxs)(b,{flexDirection:"column",marginLeft:2,children:[(t.cite??[]).map((i,l)=>(0,Re.jsx)(n,{dimColor:!0,children:`cite ${i.anchor??"conv"} \u2014 "${i.quote??""}"`},`cite-${l}`)),(t.depends_on_hint??[]).length>0&&(0,Re.jsx)(n,{dimColor:!0,children:`depends on: ${(t.depends_on_hint??[]).join(", ")}`}),Object.entries(t.extra??{}).map(([i,l])=>(0,Re.jsx)(n,{dimColor:!0,children:`${i}: ${l}`},`extra-${i}`))]})}var R=Q(X(),1),Rt=(t,i)=>Math.max(0,Math.min(i,t));function nt(t,i,l){switch(i.type){case"move":return t.level==="detail"?{...t,scroll:Math.max(0,(t.scroll??0)+i.delta)}:{...t,cursor:Rt(t.cursor+i.delta,Math.max(0,l-1))};case"enter":return t.level==="list"?{...t,level:"detail",scroll:0}:t;case"back":return t.level==="detail"?{...t,level:"list",scroll:0}:null}}var An={"use-case":"use-cases",ac:"acs",scenario:"scenarios",test:"tests",gap:"gaps"};function Mn(t,i){if(t.level==="detail")return{level:"detail",cursor:Rt(t.num-1,Math.max(0,i.entries.length-1))};if(t.section){let l=i.entries.findIndex(u=>An[u.kind]===t.section);if(l>=0)return{level:"list",cursor:l}}return{level:"list",cursor:0}}function Er(t){let i=[];for(let l of t.entries){let u=i.find(h=>h.kind===l.kind);u?u.entries.push(l):i.push({kind:l.kind,entries:[l]})}return i}var Dn=3;function Lr({items:t,cursor:i,verb:l,more:u}){let h=`view \xB7 ${l} so far \xB7 ${t.counts.map(d=>`${d.count} ${d.count===1?d.label.replace(/s$/,""):d.label}`).join(" \xB7 ")}`,m=t.entries[i];return(0,R.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:r.dim,paddingX:1,children:[(0,R.jsx)(n,{bold:!0,children:h}),Er(t).map(({kind:d,entries:g})=>{let k=m?.kind===d,L=k?g.findIndex(y=>y.ref===m.ref):-1,$=k?Rt(L-1,Math.max(0,g.length-Dn)):0,w=g.slice($,$+(k?Dn:1)),A=g.length-w.length;return(0,R.jsxs)(b,{flexDirection:"column",children:[(0,R.jsx)(n,{color:r.dim,children:`${An[d]??ce(d)} \xB7 ${g.length}`}),w.map(y=>{let x=k&&y.ref===m.ref,S=y.item.badge;return(0,R.jsxs)(n,{children:[(0,R.jsx)(n,{color:r.assuranceAccent,children:x?"\u203A ":" "}),(0,R.jsx)(n,{children:`${y.num} \xB7 ${y.item.title}`}),S?(0,R.jsx)(n,{color:r.dim,children:` \xB7 ${S}`}):null]},`${y.kind}:${y.ref}`)}),A>0&&(0,R.jsx)(n,{color:r.dim,children:` \u22EE ${A} more`})]},d)}),u?(0,R.jsxs)(n,{children:[(0,R.jsx)(n,{color:r.assuranceAccent,children:i===t.entries.length?"\u203A ":" "}),(0,R.jsx)(n,{color:r.dim,children:`\u22EF show all \u2014 ${u.hidden} more from earlier turns`})]}):null,(0,R.jsx)(n,{color:r.dim,children:"\u2191\u2193 move \xB7 \u21B5 detail \xB7 esc back"})]})}var tt=14;function _r({items:t,cursor:i,explain:l,grandTotal:u,dossier:h,scroll:m=0}){let d=t.entries[i];if(!d)return(0,R.jsx)(n,{color:r.dim,children:"nothing to show"});if(h){let k=Math.max(0,Math.min(m,Math.max(0,h.lines.length-tt))),L=h.lines.slice(k,k+tt);return(0,R.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:r.dim,paddingX:1,children:[(0,R.jsxs)(n,{bold:!0,children:[`view \xB7 ${h.id}`,h.id.toLowerCase()!==h.rawId?(0,R.jsx)(n,{bold:!1,color:r.dim,children:` \xB7 ${h.rawId}`}):null]}),(0,R.jsx)(n,{bold:!0,children:h.title}),k>0?(0,R.jsx)(n,{color:r.muted,children:`\u22EE ${k} above`}):null,L.map(($,w)=>(0,R.jsx)(n,{color:$.dim?r.dim:void 0,children:$.text},`dl-${w}`)),h.lines.length>k+tt?(0,R.jsx)(n,{color:r.muted,children:`\u22EE ${h.lines.length-k-tt} more`}):null,(0,R.jsx)(n,{color:r.dim,children:"\u2191\u2193 scroll \xB7 esc back"})]})}let g=d.item;return(0,R.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:r.dim,paddingX:1,children:[(0,R.jsx)(n,{bold:!0,children:`view \xB7 ${d.kind} ${d.num} of ${u??t.entries.length}`}),(0,R.jsx)(n,{children:d.item.title}),g.badge?(0,R.jsx)(n,{color:r.dim,children:`kind: ${g.badge}`}):null,g.why?(0,R.jsx)(n,{color:r.dim,children:g.why}):null,(0,R.jsx)(In,{item:d.item}),l?.map((k,L)=>(0,R.jsx)(n,{color:r.dim,children:k},`ex-${L}`)),(0,R.jsx)(n,{color:r.dim,children:"view-only \u2014 approvals happen in chat"}),(0,R.jsx)(n,{color:r.dim,children:"\u2191\u2193 prev/next \xB7 esc back to list"})]})}function Bn({items:t,state:i,verb:l,more:u,explain:h,grandTotal:m,dossier:d=null}){return i.level==="list"?(0,R.jsx)(Lr,{items:t,cursor:i.cursor,verb:l,more:u}):(0,R.jsx)(_r,{items:t,cursor:i.cursor,explain:h,grandTotal:m,dossier:d,scroll:i.scroll??0})}var Y=Q(X(),1),St=14;function Or(t){let i=[],l=null;for(let u of t)u.field!==l&&(l=u.field,i.push({kind:"field",field:l})),i.push({kind:"line",field:l,line:u});return i}function En({title:t,lines:i,offset:l=0}){let{stdout:u}=Ce(),h=u?.columns??80,m=Math.min(h-1,100),d=Or(i),g=Math.max(0,Math.min(l,Math.max(0,d.length-St))),k=d.slice(g,g+St),L=g,$=Math.max(0,d.length-g-St),w=`view \xB7 diff \xB7 ${t} \xB7 current \u2192 proposed`,A=y=>{let x=Math.max(0,m-y.length-1);return`${y} ${"\u2500".repeat(x)}`};return(0,Y.jsxs)(b,{flexDirection:"column",children:[(0,Y.jsx)(n,{color:r.dim,children:A(w)}),L>0?(0,Y.jsx)(b,{paddingLeft:2,children:(0,Y.jsx)(n,{color:r.dim,children:`\u22EE ${L} above`})}):null,k.map((y,x)=>y.kind==="field"?(0,Y.jsx)(b,{paddingLeft:2,children:(0,Y.jsx)(n,{color:r.dim,children:y.field==="criteria"?"criteria":y.field})},`r-${g+x}`):(0,Y.jsx)(b,{paddingLeft:4,children:(0,Y.jsx)(n,{color:y.line.op==="-"?"red":"green",children:`${y.line.op==="-"?"\u2212":"+"} ${y.line.text}`})},`r-${g+x}`)),$>0?(0,Y.jsx)(b,{paddingLeft:2,children:(0,Y.jsx)(n,{color:r.dim,children:`\u22EE ${$} more`})}):null,(0,Y.jsx)(n,{color:r.dim,children:`${"\u2500".repeat(Math.max(0,m-21))} \u2191\u2193 scroll \xB7 esc back`})]})}var Pr={"use-cases":"use-cases",usecases:"use-cases","use-case":"use-cases",acs:"acs",ac:"acs",scenarios:"scenarios",scenario:"scenarios",tests:"tests",test:"tests",gaps:"gaps",gap:"gaps"};function Ln(t){let i=(t??"").trim().toLowerCase();if(!i)return{level:"list"};if(/^\d+$/.test(i)){let u=parseInt(i,10);return u>=1?{level:"detail",num:u}:{error:"items are numbered from 1 \u2014 /view 1"}}let l=Pr[i];return l?{level:"list",section:l}:{error:"try /view, /view <number>, or /view acs|scenarios|tests"}}var I=Q(X(),1),qr=6,_n=12;function jr(t,i,l){let u=Math.max(20,i),h=[];for(let d of t.split(`
|
|
3
|
-
`)){if(d.length<=u){h.push(d);continue}let g="";for(let k of d.split(" "))g&&g.length+1+k.length>u?(h.push(g),g=k):g=g?`${g} ${k}`:k;h.push(g)}let m=Math.max(0,h.length-l);return{body:h.slice(-l).join(`
|
|
4
|
-
`),hidden:m}}var Se=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function On(t){let i={key:"redesign",label:"re-design from scratch",detail:"replaces the current design"},l={key:"keep",label:"keep the existing design",detail:"back to the list"};return t.designed==="stale"?[{...i,detail:"the use-case changed since it was designed"},l]:[l,i]}function Li({controller:t,verb:i="extract",onCtrlC:l,chain:u=null,inspect:h=null,reconcile:m=null,autoReview:d=!1,onReviewExit:g}){let[,k]=(0,p.useState)(0),[L,$]=(0,p.useState)(!1),[w,A]=(0,p.useState)(null),[y,x]=(0,p.useState)(null),S=(0,p.useRef)(null),[P,B]=(0,p.useState)(null),O=(0,p.useRef)(null),D=e=>{O.current=e,B(e)},W=e=>{S.current=e,x(e),e===null&&D(null)},K=(0,p.useRef)([]),[M,Ie]=(0,p.useState)(null),z=(0,p.useRef)(null),N=e=>{z.current=e,Ie(e)},[C,rt]=(0,p.useState)(null),G=(0,p.useRef)(null),E=e=>{G.current=e,rt(e)},[De,it]=(0,p.useState)(null),me=(0,p.useRef)(null),J=e=>{me.current=e,it(e)},U=(0,p.useRef)({approved:0,rejected:0,deferred:0}),q=(0,p.useRef)(!1),re=cn(),{stdout:qe}=Ce(),Pn=qe?.columns??80,It=(0,p.useRef)(0),st=(0,p.useRef)(0);(0,p.useEffect)(()=>{let e=()=>{let s=t.state.ledger;for(let a=It.current;a<s.length;a++){let f=s[a],T=f.kind==="turn"?Rn(t.state.turns,f.turnIndex):void 0;re.append((0,I.jsx)(Sn,{block:f,annotations:T},`lg-${a}`))}It.current=s.length};e();let o=t.subscribe(()=>{e();let s=t.state;S.current&&(s.pending||s.status==="pausing")&&(W(null),s.pending&&A("questions arrived \u2014 back to chat")),k(a=>a+1)});return k(s=>s+1),o},[t,re]);let{thinking:xe,status:fe,pending:F,confirm:je,ledger:oe,activeTurn:Dt,stream:qn,notice:Fe}=t.state,At=(qn?.text??"").trimEnd(),Mt=At.length>0,jn=L&&(xe.liveThinking.length>0||xe.thinkingLog.length>0),Fn=jr(xe.liveThinking||xe.thinkingLog.map(e=>e.text).join(`
|
|
5
|
-
`),Pn-6,_n),Bt=Mt?At.split(`
|
|
6
|
-
`).slice(-qr):[];Dt&&(st.current=Dt.turnIndex);let Wn=F?F.resolution.filter(e=>!e).length:0,Et;for(let e=oe.length-1;e>=0;e--){if(K.current.some(s=>s.end!=null&&e>=s.start&&e<s.end))continue;let o=oe[e];if(o.kind==="banner"&&!o.text.startsWith("kane")){Et=o.text;break}}let Ae=xe.activity[xe.activity.length-1],ot=Ae?Ae.status==="decision"?Ae.label:gn({name:Ae.name,status:Ae.status}):void 0,Lt=fe==="streaming"||fe==="working",[lt,Nn]=(0,p.useState)(0);ln(()=>Nn(e=>e+1),Lt||M?.kind==="running"||C?.st.kind==="running"?120:null);let Un=t.state.busySince?Math.floor((Date.now()-t.state.busySince)/1e3):0,Vn=Mt?"Writing\u2026":ot?`${ot.charAt(0).toUpperCase()}${ot.slice(1)}\u2026`:t.state.workingLabel??(i==="design"?"Designing\u2026":"Thinking\u2026"),Kn=t.state.turns.some(e=>e.role==="agent"),[Qn,Hn]=(0,p.useState)(0),[Xn,zn]=(0,p.useState)(!1),[_t,Gn]=(0,p.useState)(null),ke=(0,p.useRef)(0),Ot=(0,p.useRef)(!1),Pt=(0,p.useRef)(null),Me=e=>{ke.current=e,Hn(e)},qt=e=>{Ot.current=e,zn(e)},be=e=>{Pt.current=e,Gn(e)},[We,Jn]=(0,p.useState)(null),at=(0,p.useRef)(null),ye=e=>{at.current=e,Jn(e)},[jt,Yn]=(0,p.useState)(null),Ft=(0,p.useRef)(null),Be=e=>{Ft.current=e,Yn(e)},[ct,Zn]=(0,p.useState)(0),Z=(0,p.useRef)(0),Ee=e=>{Z.current=e,Zn(e)},Wt=F?F.questions[0]?.id??"b":null;(0,p.useEffect)(()=>{F&&Ee(F.cursor<0?0:F.cursor)},[Wt,F?.cursor]);let Ne=()=>{let e=te.current;if(!e)return;let o=e.questions.length;for(let s=1;s<=o;s++){let a=(Z.current+s)%o;if(!e.resolution[a]){Ee(a);return}}},Nt=F?F.questions[Math.max(0,Math.min(F.questions.length-1,ct))]:void 0,ie=(0,p.useRef)(Nt);ie.current=Nt;let te=(0,p.useRef)(F);te.current=F;let er=F?`${Wt}:${ct}`:null;(0,p.useEffect)(()=>{if(be(null),ye(null),Be(null),ie.current){qt(!0);let e=te.current?.resolution[Z.current]?.selected_index;Me(e??ie.current.recommended_index??0)}else qt(!1)},[er]);let Ue=e=>{let o=te.current;return vt(e,o?Je(o)!=="":!1)},tr={isFocused:()=>Ot.current&&ie.current!=null&&Pt.current==null&&at.current==null&&Ft.current==null||G.current!=null&&G.current.st.kind!=="running"&&me.current==null||z.current!=null&&z.current.kind!=="running"||H.current&&sn.current==null,onMove:e=>{let o=ie.current;if(o){Me(Math.max(0,Math.min(Ue(o).maxSel,ke.current+e)));return}let s=G.current;if(s){let f=s.items[s.i];if(s.st.kind==="card"&&f){let T=Ze(f.card)??Ye(f.card).length-1;E({...s,st:{kind:"card",sel:Math.max(0,Math.min(T,s.st.sel+e))}});return}if(s.st.kind==="view"&&f){E({...s,st:{kind:"view",offset:Math.max(0,s.st.offset+e)}});return}if(s.st.kind==="offer"||s.st.kind==="done"){let T=s.st.kind==="offer"?1:Xe.current.length-1;E({...s,st:{...s.st,sel:Math.max(0,Math.min(T,s.st.sel+e))}});return}if(s.st.kind==="running"&&!H.current)return}let a=z.current;if(a?.kind==="picker"){N({...a,sel:Math.max(0,Math.min(a.items.length-1,a.sel+e))});return}if(a?.kind==="ask"||a?.kind==="confirm"||a?.kind==="failed"){let f=(a.kind==="ask"?Qe.current.length:a.kind==="failed"?He.current.length:2)-1;N({...a,sel:Math.max(0,Math.min(f,a.sel+e))});return}a&&!H.current||H.current&&ve(Math.max(0,Math.min(Pe.current.length-1,wt.current+e)))},onSelect:()=>{let e=ie.current,o=te.current;if(!e||!o){let f=G.current;if(f&&f.st.kind!=="running"){let j=f.items[f.i];if(f.st.kind==="card"&&j){let V=f.st.sel;if(V===Ze(j.card)){J("");return}let pe=Ye(j.card)[V];if(!pe)return;if(pe.v==="view_diff"){E({...f,st:{kind:"view",offset:0}});return}let yr=pe.v==="approve"||pe.v==="archive"?"approve":pe.v==="skip"?"reject":"defer";ur(f,yr);return}if(f.st.kind==="view"){E({...f,st:{kind:"card",sel:0}});return}if(f.st.kind==="offer"){f.st.sel===0?en(f,f.st.offer):Te(f);return}if(f.st.kind==="done"){Xe.current[f.st.sel]?.key==="view"?ze(""):(E(null),g?.());return}return}if(f&&!H.current)return;let T=z.current;if(T?.kind==="picker"){let j=T.items[T.sel];j&&(j.designed?N({kind:"confirm",item:j,sel:0}):xt(j,!1));return}if(T?.kind==="confirm"){On(T.item)[T.sel]?.key==="redesign"?xt(T.item,!0):ht();return}if(T?.kind==="ask"){let j=Qe.current[T.sel]?.key;j==="another"?ht():j==="view"?ze(""):N(null);return}if(T?.kind==="failed"){let j=He.current[T.sel]?.key;j==="retry"?xt(T.item,T.force):j==="view"?ze(""):N(null);return}if(T&&!H.current||!H.current)return;switch(Pe.current[wt.current]?.key){case"reconcile-review":Yt();return;case"finish":t.completeSession();return;case"continue":t.continueParked();return;case"design-chain":ht();return;case"view":ze("",st.current);return;case"free":$e("");return}return}let s=Ue(e),a=ke.current;if(s.batchIdx!=null&&a===s.batchIdx){t.goWithRecommendations();return}if(s.freeIdx!=null&&a===s.freeIdx){be("");return}if(s.doneIdx!=null&&a===s.doneIdx){t.confirmMulti(Z.current),Ne();return}if(e.multi_select){t.toggleOption(Z.current,a);return}if(e.options[a]?.input===!0){ye({opt:a,value:""});return}t.submitAnswer(Z.current,a),Ne()},onLeft:()=>{te.current&&Ee(Math.max(0,Z.current-1))},onRight:()=>{let e=te.current;e&&Ee(Math.min(e.questions.length-1,Z.current+1))},onDigit:e=>{let o=ie.current;if(o){e-1<o.options.length&&Me(e-1);return}let s=G.current;if(s){let f=s.items[s.i];if(s.st.kind==="card"&&f){e-1<Ye(f.card).length&&E({...s,st:{kind:"card",sel:e-1}});return}if(s.st.kind==="offer"){e-1<2&&E({...s,st:{...s.st,sel:e-1}});return}if(s.st.kind==="done"){e-1<Xe.current.length&&E({...s,st:{...s.st,sel:e-1}});return}if(s.st.kind!=="running"||!H.current)return}let a=z.current;if(a?.kind==="picker"){e-1<a.items.length&&N({...a,sel:e-1});return}if(a?.kind==="ask"){e-1<Qe.current.length&&N({...a,sel:e-1});return}if(a?.kind==="failed"){e-1<He.current.length&&N({...a,sel:e-1});return}if(a?.kind==="confirm"){e-1<2&&N({...a,sel:e-1});return}if(!(a&&!H.current)&&H.current){let f=Pe.current,T=0;for(let ee=0;ee<f.length;ee++)if(!f[ee].free&&(T+=1,T===e)){ve(ee);return}}},isMulti:()=>{let e=ie.current;return!!e?.multi_select&&ke.current<(e?.options.length??0)},onSpace:()=>{te.current&&t.toggleOption(Z.current,ke.current)},onTab:()=>{let e=ie.current;if(!e)return;let o=Ue(e);o.batchIdx!=null&&Me(o.batchIdx)},onType:e=>{let o=ie.current;if(o){if(e==="@"&&t.canIngest()){Be("");return}let a=ke.current;if(o.options[a]?.input===!0){ye({opt:a,value:e});return}if(!o.allow_free_text)return;let f=Ue(o);Me(f.freeIdx??0),be(e);return}let s=G.current;if(s){if(s.st.kind==="card"){let a=Ze(s.items[s.i].card);a!=null&&(E({...s,st:{kind:"card",sel:a}}),J(e));return}if(s.st.kind!=="running"||!H.current)return}if(!(z.current&&!H.current)&&H.current){let a=pn(Pe.current);if(a==null)return;ve(a),$e(e)}},onBack:()=>{let e=G.current;if(e){e.st.kind==="view"?E({...e,st:{kind:"card",sel:0}}):e.st.kind==="offer"?Te(e):e.st.kind==="done"&&(E(null),g?.());return}let o=z.current;if(o&&o.kind!=="running"){N(null);return}let s=te.current;if(s){for(let a=Z.current-1;a>=0;a--)if(s.resolution[a]){Ee(a);return}}}},nr=_t!=null?{value:_t,onChange:e=>be(e),onSubmit:e=>{be(null),e.trim()&&te.current&&(t.submitFreeText(Z.current,e),Ne())},onCancel:()=>be(null)}:null,rr=jt!=null?{value:jt,onChange:e=>Be(e),onSubmit:e=>{Be(null),e.trim()&&t.ingestAttach(e)},onCancel:()=>Be(null)}:null,ir=We!=null?{optionIndex:We.opt,value:We.value,onChange:e=>ye({opt:We.opt,value:e}),onSubmit:e=>{let o=at.current?.opt;ye(null),o!=null&&te.current&&(t.submitAnswerWithText(Z.current,o,e),Ne())},onCancel:()=>ye(null)}:null,Ve=(0,p.useRef)(!1),ut=l??(()=>t.requestPause()),Ut=()=>{if(q.current&&!Ve.current){Ve.current=!0,A("finishing the verdict \u2014 exiting once it lands (ctrl+c again = force)");return}ut()},le=t.state.checkpoint,Le=M?.kind==="running"&&fe==="idle",Vt=C?.st.kind==="running"&&fe==="idle",ge=fe==="idle"&&Kn&&!F&&!y&&(!M||Le)&&(!C||Vt),H=(0,p.useRef)(!1);H.current=ge;let ne=he(t.state.turns).entries.length,_e,se;for(let e=oe.length-1;e>=0;e--){if(K.current.some(s=>s.end!=null&&e>=s.start&&e<s.end))continue;let o=oe[e];if(!_e&&o.kind==="commit"&&o.ok&&(_e=o.line),!se&&o.kind==="banner"&&o.text.startsWith("designing: ")&&(se=o.text.slice(11)),_e&&se)break}let dt;for(let e=oe.length-1;e>=0;e--){let o=oe[e];if(o.kind==="user")break;if(o.kind==="commit"&&o.ok&&/\bapplied\b/.test(o.line)){dt=o.line;break}}let ae=se?{"acceptance criteria":"scenarios",scenarios:"acceptance criteria + exercises","acceptance criteria + exercises":"tests + gaps"}[se]:void 0,Kt={"acceptance criteria":"the promises every path of this use-case must keep",scenarios:"the concrete user journeys that exercise those promises","acceptance criteria + exercises":"the wiring pass \u2014 per-journey checks, tied to the promises each journey exercises","tests + gaps":"runnable browser tests \u2014 anything unautomatable is recorded as a gap"},Qt=se?Kt[se]:void 0,Ht=ae?Kt[ae]:void 0,sr="phases: acceptance criteria \u2192 scenarios \u2192 wiring \u2192 tests \xB7 stop anytime with finish",or=(()=>{for(let e=oe.length-1;e>=0;e--){let o=oe[e];if(o.kind==="agent")return o.text}return null})(),we=/\?\s*$/.test((or??"").trimEnd()),Xt=i==="design"&&!le&&(we||ae!==void 0),zt=se==="tests + gaps",Ke=M?.kind==="running"?M.title:"the design",Gt=!!t.state.error&&!t.senderAlive(),lr=je?"the agent needs a clarification before it can apply that":Le&&!le?we?`${Ke} \u2014 the agent asked a question`:dt?`${Ke} \u2014 ${dt}`:zt?`${Ke} \u2014 design complete`:`${Ke} \u2014 the agent is waiting on you`:le?se?`${se} done${ae?` \u2014 next: ${ae}`:""}`:_e??"phase done":Gt?"the agent stopped \u2014 the session is view-only":Xt?we?"the agent asked a question \u2014 answer or continue":`design incomplete \u2014 ${ae} not started`:_e??"waiting on you",[Oe,ar]=(0,p.useState)(null),cr=(0,p.useRef)(null);(0,p.useEffect)(()=>{if(!m)return;let e=ge||le?m.pending():null;cr.current=e,ar(e)},[ge,le,oe.length,C==null]);let Jt=Oe?[{key:"reconcile-review",label:Oe.kind==="cards"?`review ${Oe.count} change(s) from ${Oe.source}`:`review change(s) detected in ${Oe.source}`}]:[],mt=je?[{key:"free",label:"clarify \u2014 type which one you meant",free:!0}]:Le&&!le?zt&&!we?[{key:"finish",label:"finish this design"},...ne>0?[{key:"view",label:"view what's saved"}]:[],{key:"free",label:"reply \u2014 tell the agent what to change",free:!0}]:[{key:"continue",label:we?"continue \u2014 go with your suggestion":"continue designing"},...ne>0?[{key:"view",label:"view what's saved"}]:[],{key:"finish",label:"finish this design"},{key:"free",label:"reply \u2014 tell the agent what to change",free:!0}]:le?[...Jt,{key:"continue",label:ae?`continue to ${ae}`:"continue"},...ne>0?[{key:"view",label:"view what's saved"}]:[],{key:"finish",label:"finish here"},{key:"free",label:"adjust \u2014 tell me what to change",free:!0}]:Gt?[...ne>0?[{key:"view",label:"view what's saved"}]:[],{key:"free",label:"tell me what to change",free:!0}]:Xt?[{key:"continue",label:we?"continue \u2014 go with your suggestion":`continue \u2014 ${ae} next`},...ne>0?[{key:"view",label:"view the design"}]:[],{key:"finish",label:"finish anyway"},{key:"free",label:"reply \u2014 answer and continue",free:!0}]:[...Jt,{key:"finish",label:i==="design"?"finish":"looks good \u2014 finish the session"},...u?[{key:"design-chain",label:"design tests for a use-case\u2026"}]:[],...ne>0?[{key:"view",label:i==="design"?"view the design":`view the ${ne} draft${ne===1?"":"s"}`}]:[],{key:"free",label:i==="design"?"keep adjusting \u2014 tell me what to change":"tell me what to change",free:!0}],ft=[{key:"another",label:"design another use-case\u2026"},...ne>0?[{key:"view",label:"view what was designed"}]:[],{key:"back",label:"done \u2014 back"}],Qe=(0,p.useRef)(ft);Qe.current=ft;let gt=[{key:"retry",label:"try again"},...ne>0?[{key:"view",label:"view what's saved"}]:[],{key:"back",label:"back"}],He=(0,p.useRef)(gt);He.current=gt;let pt=[...ne>0?[{key:"view",label:"view what's saved"}]:[],{key:"back",label:"back to the check-in"}],Xe=(0,p.useRef)(pt);Xe.current=pt;let ht=()=>{let e=u?.listUcs()??[];if(e.length===0){A("no use-cases to design yet");return}N({kind:"picker",items:e,sel:0})},xt=(e,o)=>{let s={start:t.state.ledger.length,end:null};K.current.push(s);let a=()=>{s.end=t.state.ledger.length};N({kind:"running",title:e.title,item:e,force:o,startedAt:Date.now()}),u.runDesignChild(e.key,o).then(f=>{a(),f===0?(t.ledger({kind:"commit",ok:!0,line:`designed ${e.title}`}),N({kind:"ask",title:e.title,sel:0})):(t.ledger({kind:"commit",ok:!1,line:`design for ${e.title} failed \u2014 child exited ${f}`}),N({kind:"failed",item:e,force:o,detail:`child exited ${f}`,sel:0}))}).catch(f=>{a();let T=f instanceof Error?f.message:String(f);t.ledger({kind:"commit",ok:!1,line:`design for ${e.title} failed \u2014 ${T}`}),N({kind:"failed",item:e,force:o,detail:T,sel:0})})},Yt=()=>{let e=m?.pending();if(!e){A("nothing awaiting review");return}if(U.current={approved:0,rejected:0,deferred:0},e.kind==="needs-run"){E({items:[],i:0,st:{kind:"running",label:`reviewing changes in ${e.source}`,startedAt:Date.now()}}),m.startReview(e.source).then(()=>{let s=m.loadCards();if(s.length===0){t.note("no reviewable changes came back \u2014 the source may be unchanged"),E(null);return}E({items:s,i:0,st:{kind:"card",sel:0}})}).catch(s=>{t.note(`the review run failed \u2014 ${s instanceof Error?s.message:String(s)}`),E(null)});return}let o=m.loadCards();if(o.length===0){A("nothing awaiting review");return}E({items:o,i:0,st:{kind:"card",sel:0}})},Zt=e=>{let o=U.current,s=`${o.approved} approved \xB7 ${o.rejected} rejected \xB7 ${o.deferred} deferred`;E({...e,st:{kind:"done",sel:0,summary:s}})},Te=e=>{if(e.i+1<e.items.length){E({...e,i:e.i+1,st:{kind:"card",sel:0}});return}let o=m?.loadCards()??[];o.length===0?Zt(e):E({items:o,i:0,st:{kind:"card",sel:0}})},en=(e,o)=>{if(!u){Te(e);return}let s={start:t.state.ledger.length,end:null};K.current.push(s),E({...e,st:{kind:"running",label:`${o.kind==="evolve"?"Evolving":"Designing"} ${o.title}`,startedAt:Date.now()}}),u.runDesignChild(o.key,o.kind==="evolve").then(a=>{s.end=t.state.ledger.length,t.ledger({kind:"commit",ok:a===0,line:a===0?`${o.kind==="evolve"?"evolved":"designed"} ${o.title}`:`${o.kind} child for ${o.title} failed \u2014 exited ${a}`}),Te(G.current??e)}).catch(a=>{s.end=t.state.ledger.length,t.ledger({kind:"commit",ok:!1,line:`${o.kind} child for ${o.title} failed \u2014 ${a instanceof Error?a.message:String(a)}`}),Te(G.current??e)})},ur=(e,o,s)=>{let a=e.items[e.i];!a||q.current||(q.current=!0,m.applyVerdict(a.key,o,s).then(f=>{if(q.current=!1,Ve.current){ut();return}let T=G.current??e;if(!f.ok){t.note(f.refusal);let ee=m.loadCards();ee.length===0?Zt(T):E({items:ee,i:Math.min(T.i,ee.length-1),st:{kind:"card",sel:0}});return}U.current[o==="approve"?"approved":o==="reject"?"rejected":"deferred"]+=1,t.ledger({kind:"commit",ok:!0,line:f.line}),f.note&&t.note(f.note),f.offer?en(T,f.offer):Te(T)}).catch(f=>{if(q.current=!1,Ve.current){ut();return}t.note(`the verdict did not land \u2014 ${f instanceof Error?f.message:String(f)}; try the card again`)}))},dr=e=>{m?.noteSteer?.(),E(null),J(null),A(null),t.submit(e)},mr=De!=null?{value:De,onChange:e=>J(e),onSubmit:e=>{let o=e.trim();o?dr(o):J(null)},onCancel:()=>J(null)}:null,tn=(0,p.useRef)(!1);(0,p.useEffect)(()=>{!d||tn.current||(tn.current=!0,m?.pending()?Yt():g?.())},[d]);let Pe=(0,p.useRef)(mt);Pe.current=mt;let kt=ge&&le&&Qt!==void 0,bt=K.current.find(e=>e.end==null)?.start??"top",nn=(0,p.useRef)(new Set),[fr,rn]=(0,p.useState)(!1);(0,p.useEffect)(()=>{kt?nn.current.has(bt)||(nn.current.add(bt),rn(!0)):rn(!1)},[kt,bt]);let gr=kt?[...fr?[sr]:[],`${Qt}${Ht?` \xB7 next: ${Ht}`:""}`]:[],[pr,hr]=(0,p.useState)(0),[yt,xr]=(0,p.useState)(null),wt=(0,p.useRef)(0),sn=(0,p.useRef)(null),ve=e=>{wt.current=e,hr(e)},$e=e=>{sn.current=e,xr(e)},kr=`${ge}:${le}:${st.current}`;(0,p.useEffect)(()=>{ve(0),$e(null)},[kr]);let br=yt!=null?{value:yt,onChange:e=>$e(e),onSubmit:e=>{$e(null),ve(0);let o=e.trim();o&&(A(null),t.submit(o))},onCancel:()=>{$e(null),ve(0)}}:null,ze=(e,o)=>{if(/^(uc|sc|ac|t|gap|sty)-\d+$/i.test(e.trim())){let T=e.trim().toLowerCase(),j=he(t.state.turns).entries.findIndex(V=>(V.item.logical_id??"").toLowerCase()===T);if(j<0){A(`${e.trim().toUpperCase()} isn't in this session's items \u2014 view lists what this session minted`);return}W({level:"detail",cursor:j,scroll:0}),D(null);return}let s=Ln(e);if("error"in s){A(s.error);return}let a=he(t.state.turns);if(a.entries.length===0){A("nothing proposed yet \u2014 the first turn is still coming");return}if(s.level==="detail"&&s.num>a.entries.length){A(`no item ${s.num} \u2014 the set has ${a.entries.length} item${a.entries.length===1?"":"s"}`);return}let f=o!=null?Ct(a,o):a;W(Mn(s,f)),D(o!=null&&f.entries.length<a.entries.length?o:null)},on=(0,I.jsx)(xn,{verb:i,subject:Et,pendingCount:Wn,creditsTotal:t.state.credits?.total,state:Le?"waiting on you":F||ge||y||M&&M.kind!=="running"?"idle":void 0});if(y){let e=he(t.state.turns),o=P!=null?Ct(e,P):e,s=e.entries.length-o.entries.length,a=y.level==="list"&&s>0,f=o.entries.length+(a?1:0),T=o.entries[y.cursor],ee=y.level==="detail"&&T?t.explainLines(T.item.slug??T.item.temp_ref):null,j=y.level==="detail"&&T&&h?h(T.item.logical_id??t.aliasOf(T.item.temp_ref)??T.item.temp_ref):null;return(0,I.jsxs)(b,{flexDirection:"column",children:[(0,I.jsx)(Tt,{onToggleThinking:()=>$(V=>!V),onCtrlC:Ut,explorer:{isOpen:()=>S.current!==null,onMove:V=>W(S.current&&nt(S.current,{type:"move",delta:V},f)),onEnter:()=>{let V=S.current;if(V){if(V.level==="list"&&a&&V.cursor===o.entries.length){D(null);return}W(nt(V,{type:"enter"},f))}},onBack:()=>{W(S.current&&nt(S.current,{type:"back"},f)),setTimeout(()=>k(V=>V+1),0)}}}),(0,I.jsx)(Bn,{items:o,state:y,verb:i,more:a?{hidden:s}:null,explain:ee,grandTotal:e.entries.length,dossier:j}),(Fe??w)&&(Fe??w).split(`
|
|
7
|
-
`).map((V,pe)=>(0,I.jsx)(n,{color:r.orange,children:V},`nt-${pe}`)),on]})}return(0,I.jsxs)(b,{flexDirection:"column",children:[(0,I.jsx)(Tt,{onToggleThinking:()=>$(e=>!e),onCtrlC:Ut,panel:tr}),jn&&(0,I.jsx)(mn,{thinking:Fn.body,expanded:!0,thinkingDone:fe!=="streaming",maxLines:_n+1}),Bt.length>0&&(0,I.jsx)(b,{flexDirection:"column",children:Bt.map((e,o)=>(0,I.jsx)(n,{children:un(e).map((s,a)=>(0,I.jsx)(n,{bold:s.bold,italic:s.italic,color:s.code?r.dim:void 0,children:s.text},a))},`st-${o}`))}),F&&(0,I.jsx)(bn,{batch:F,qView:ct,sel:Qn,focused:Xn,freeText:nr,optionText:ir,attach:rr,canAttach:t.canIngest(),multiSelFor:e=>t.multiSelection(e)}),je&&(0,I.jsx)(n,{color:"yellow",children:je.prompt}),(Fe??w)&&(Fe??w).split(`
|
|
8
|
-
`).map((e,o)=>(0,I.jsx)(n,{color:r.orange,children:e},`nt-${o}`)),Lt&&!F&&(0,I.jsxs)(n,{color:r.assuranceAccent,children:[`${Se[lt%Se.length]} ${Vn} `,(0,I.jsx)(n,{color:r.dim,children:`(${Un}s)`})]}),ge&&(0,I.jsx)(ue,{headline:lr,rows:mt,sel:pr,focused:yt==null,legend:"\u2191\u2193 \xB7 \u23CE select \xB7 type = your own words",freeText:br,sublines:gr}),C?.st.kind==="card"&&C.items[C.i]&&(0,I.jsx)(kn,{card:C.items[C.i].card,position:{n:C.i+1,of:C.items.length},sel:C.st.sel,focused:De==null,freeText:mr,editorIntent:"steer"}),C?.st.kind==="view"&&C.items[C.i]&&(0,I.jsx)(En,{title:C.items[C.i].card.title,lines:C.items[C.i].viewLines,offset:C.st.offset}),C?.st.kind==="offer"&&(0,I.jsx)(ue,{ask:!0,headline:C.st.offer.kind==="evolve"?`approved \u2014 the design for ${C.st.offer.title} should evolve with it`:`approved \u2014 ${C.st.offer.title} has no tests yet`,rows:[{key:"run",label:C.st.offer.kind==="evolve"?"evolve the design now":"design tests now"},{key:"later",label:"later \u2014 next change"}],sel:C.st.sel,focused:!0,legend:"\u2191\u2193 \xB7 \u23CE select \xB7 esc later"}),C?.st.kind==="running"&&!Vt&&(0,I.jsxs)(n,{color:r.assuranceAccent,children:[`${Se[lt%Se.length]} ${C.st.label}\u2026 `,(0,I.jsx)(n,{color:r.dim,children:`(${Math.floor((Date.now()-C.st.startedAt)/1e3)}s)`})]}),C?.st.kind==="done"&&(0,I.jsx)(ue,{headline:`review complete \u2014 ${C.st.summary}`,rows:pt,sel:C.st.sel,focused:!0,legend:"\u2191\u2193 \xB7 \u23CE select \xB7 esc back"}),M?.kind==="picker"&&(0,I.jsx)(ue,{ask:!0,headline:"design tests for which use-case?",rows:M.items.map(e=>({key:e.key,label:e.title,detail:e.badge})),sel:M.sel,focused:!0,legend:"\u2191\u2193 \xB7 \u23CE select \xB7 esc back"}),M?.kind==="confirm"&&(0,I.jsx)(ue,{ask:!0,headline:`${M.item.title} is already designed${M.item.designed==="stale"?" \u2014 and the use-case has changed since":""}`,rows:On(M.item).map(e=>({key:e.key,label:e.label,detail:e.detail})),sel:M.sel,focused:!0,legend:"\u2191\u2193 \xB7 \u23CE select \xB7 esc back"}),M?.kind==="running"&&!Le&&(0,I.jsxs)(n,{color:r.assuranceAccent,children:[`${Se[lt%Se.length]} Designing ${M.title}\u2026 `,(0,I.jsx)(n,{color:r.dim,children:`(${Math.floor((Date.now()-M.startedAt)/1e3)}s)`})]}),M?.kind==="ask"&&(0,I.jsx)(ue,{headline:`designed ${M.title}`,rows:ft,sel:M.sel,focused:!0,legend:"\u2191\u2193 \xB7 \u23CE select \xB7 esc back"}),M?.kind==="failed"&&(0,I.jsx)(ue,{headline:`design failed \u2014 ${M.item.title} (${M.detail})`,rows:gt,sel:M.sel,focused:!0,legend:"\u2191\u2193 \xB7 \u23CE select \xB7 esc back"}),fe==="pausing"&&(0,I.jsx)(n,{color:r.dim,children:"pausing \u2014 saving session\u2026 (ctrl+c again = force quit)"}),on]})}export{Li as ChatSurface,jr as tailVisualRows};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as p,b as l,c as n}from"./chunk-GYNTNKNB.js";import{y as o}from"./chunk-ZUGCHQFC.js";import{a as g}from"./chunk-HCBYKLMW.js";import{a,j as c}from"./chunk-C44QQJR4.js";import{a as R}from"./chunk-6YGTRKDT.js";import{e as t}from"./chunk-UR6MHSHU.js";var b=t(R(),1);var e=t(g(),1);function A({model:d,authLabel:v,profile:x,env:w,defaultUrl:u,projectId:r,projectName:s,folderId:i,folderName:f,windowSize:B,chromeProfile:C}){let h=r?s?`${s} (${r})`:r:"(none)",D=i?f?`${f} (${i})`:i:"(none)",{exit:m}=c();return(0,b.useEffect)(()=>{let P=setTimeout(()=>m(),50);return()=>clearTimeout(P)},[m]),(0,e.jsx)(a,{flexDirection:"column",children:(0,e.jsx)(p,{title:"Configuration",children:(0,e.jsxs)(a,{flexDirection:"column",paddingY:1,children:[(0,e.jsx)(n,{label:"Auth"}),(0,e.jsx)(l,{label:" method",value:v}),(0,e.jsx)(l,{label:" profile",value:x}),(0,e.jsx)(l,{label:" env",value:w}),(0,e.jsx)(n,{label:"Defaults"}),(0,e.jsx)(l,{label:" url",value:u??"(none)",valueColor:u?o.orange:o.dim}),(0,e.jsx)(l,{label:" model",value:d}),(0,e.jsx)(l,{label:" window",value:B}),(0,e.jsx)(l,{label:" project",value:h}),(0,e.jsx)(l,{label:" folder",value:D}),(0,e.jsx)(n,{label:"Paths"}),(0,e.jsx)(l,{label:" chrome",value:C,valueColor:o.dim})]})})})}export{A as ConfigView};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-EOLFTMWF.js";import"./chunk-2WRBTLFN.js";import"./chunk-5DBK6QNS.js";import"./chunk-CJJXT5DO.js";import"./chunk-XWKUZJCP.js";import"./chunk-ZPDM6FO7.js";import"./chunk-NVGBE2DR.js";import"./chunk-EHN5HTUD.js";import"./chunk-L5LI2JF4.js";import"./chunk-TH47OOBV.js";import"./chunk-VAYBKR76.js";import"./chunk-CUM23TLF.js";import"./chunk-DUAXZYAD.js";import"./chunk-DBIBROYW.js";import"./chunk-WXHQYYD5.js";import"./chunk-IAHKTEET.js";import"./chunk-UD7KKHPW.js";import"./chunk-CH273NAE.js";import"./chunk-RFHMDQXZ.js";import"./chunk-QIGPXYMF.js";import"./chunk-5EOX4MEY.js";import"./chunk-O75ZHGJG.js";import"./chunk-ZUGCHQFC.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as EvidenceViewOffer};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-HYSFJSIG.js";import"./chunk-YCCUBQY4.js";import"./chunk-H32GM5G4.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-O75ZHGJG.js";import"./chunk-VRLUNZAK.js";import"./chunk-ZUGCHQFC.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{b as FolderPicker,a as formatFolderLine};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-BXYWX4J3.js";import"./chunk-74HTO7K3.js";import"./chunk-SL6PCVM2.js";import"./chunk-TDPWFYTJ.js";import"./chunk-AECMF3T2.js";import"./chunk-OR6MCL6Z.js";import"./chunk-L5LI2JF4.js";import"./chunk-4NFCAGRK.js";import"./chunk-WAOCHXJ5.js";import"./chunk-FBHRBFHP.js";import"./chunk-HYSFJSIG.js";import"./chunk-YCCUBQY4.js";import"./chunk-H32GM5G4.js";import"./chunk-QIGPXYMF.js";import"./chunk-5EOX4MEY.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-O75ZHGJG.js";import"./chunk-VE3SUJMA.js";import"./chunk-VT54ARGE.js";import"./chunk-VRLUNZAK.js";import"./chunk-ZUGCHQFC.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as SingleShotApp};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{g as a}from"./chunk-VWKVUOXU.js";import"./chunk-MK7JUOYV.js";import"./chunk-OUJQVBUT.js";import"./chunk-TDPWFYTJ.js";import"./chunk-AECMF3T2.js";import"./chunk-VHZ4S57N.js";import"./chunk-5Y2G4NC7.js";import"./chunk-QIGPXYMF.js";import"./chunk-5EOX4MEY.js";import"./chunk-O75ZHGJG.js";import"./chunk-KQZA2QSC.js";import"./chunk-GYNTNKNB.js";import"./chunk-DFS4RMVP.js";import"./chunk-ZUGCHQFC.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as TestMdRunView};
|
package/dist/bridge-JSKEO4N3.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-VLWMMOMF.js";import"./chunk-DBKNJRJG.js";import"./chunk-5FJJJNJK.js";import"./chunk-UD7KKHPW.js";import"./chunk-ZUGCHQFC.js";import"./chunk-UR6MHSHU.js";export{a as runAgent};
|