@testmuai/kane-cli 0.6.8 → 0.6.9
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-QLRMFZJG.js → ChatSurface-B2QJYKV4.js} +1 -1
- package/dist/{ChromeProfilePicker-FJOUNY2B.js → ChromeProfilePicker-FSZB4SZR.js} +1 -1
- package/dist/{CliFeedbackPrompt-HC4NNBTK.js → CliFeedbackPrompt-WNMDCIHZ.js} +1 -1
- package/dist/{CliUploadProgress-VIEZQNZ5.js → CliUploadProgress-H4265KXU.js} +1 -1
- package/dist/{ConfigView-LK5F4F7W.js → ConfigView-XCUZ44SP.js} +1 -1
- package/dist/{EvidenceViewOffer-HZ4WZKGM.js → EvidenceViewOffer-5TJCRM2T.js} +1 -1
- package/dist/{FolderPicker-3S57MSC6.js → FolderPicker-S2XVCPYN.js} +1 -1
- package/dist/{HelpView-BQ3TS7WE.js → HelpView-OPKRGNNM.js} +1 -1
- package/dist/{InfoBox-4HVXV3TD.js → InfoBox-TW2PGJK5.js} +1 -1
- package/dist/{LinksBox-3B2KO5S4.js → LinksBox-66M7XP5Y.js} +1 -1
- package/dist/{ProfilesView-FLRMROUR.js → ProfilesView-T2CFQPR5.js} +1 -1
- package/dist/{ProjectPicker-R3KLRGHH.js → ProjectPicker-7ALN52CY.js} +1 -1
- package/dist/{SaveSessionPrompt-P7HSG7R7.js → SaveSessionPrompt-HM3F6QML.js} +1 -1
- package/dist/SingleShotApp-YQYS6HTB.js +2 -0
- package/dist/{SummaryBox-HCDIWKPS.js → SummaryBox-BQZEGOIV.js} +1 -1
- package/dist/TestMdRunView-7CL3PM3J.js +2 -0
- package/dist/{WhoamiView-ZD6FIBMK.js → WhoamiView-722MBPSG.js} +1 -1
- package/dist/{bind-RSVQXQJT.js → bind-HNI5LCNK.js} +2 -2
- package/dist/{bridge-D2HETW5M.js → bridge-V4FF5QPK.js} +1 -1
- package/dist/{changelog-QB7S4VV4.js → changelog-KMYZW5MI.js} +1 -1
- package/dist/{chunk-35RV2AAV.js → chunk-2Z5MSC23.js} +1 -1
- package/dist/{chunk-ELN3EN4K.js → chunk-345PY4SZ.js} +1 -1
- package/dist/{chunk-GO4CBUB6.js → chunk-3YI4QRXF.js} +1 -1
- package/dist/{chunk-K7P6VNLI.js → chunk-4BAL4OGF.js} +1 -1
- package/dist/{chunk-BSFONZ2E.js → chunk-4CKZAGBD.js} +1 -1
- package/dist/{chunk-3BIEIXJK.js → chunk-4FH2KFRT.js} +1 -1
- package/dist/{chunk-YKZIACYJ.js → chunk-7BCZLDNX.js} +1 -1
- package/dist/{chunk-ATO6NM45.js → chunk-AU7WQ2O5.js} +2 -2
- package/dist/{chunk-D5IZ77YG.js → chunk-CLYG26XV.js} +2 -2
- package/dist/{chunk-F4FXE466.js → chunk-DKERZJYF.js} +1 -1
- package/dist/{chunk-BUVRZXO3.js → chunk-DPOES6G3.js} +1 -1
- package/dist/{chunk-Q3WHZ26R.js → chunk-EASTDHNW.js} +1 -1
- package/dist/{chunk-D4WLVWJQ.js → chunk-EWLLPUP4.js} +1 -1
- package/dist/{chunk-N5YIMTGV.js → chunk-F42YVALT.js} +1 -1
- package/dist/{chunk-B22NUHB2.js → chunk-FFHBQK5N.js} +2 -2
- package/dist/{chunk-VRVSOGXH.js → chunk-FT4G3QGO.js} +1 -1
- package/dist/{chunk-NKCXCCPM.js → chunk-FVM7TWKT.js} +1 -1
- package/dist/{chunk-A6TFZQV6.js → chunk-G6F2BOFT.js} +1 -1
- package/dist/{chunk-AXJIXRYF.js → chunk-GBYH35H5.js} +1 -1
- package/dist/{chunk-VZHXNQDO.js → chunk-GNNMHYWE.js} +1 -1
- package/dist/{chunk-TBXIOT6M.js → chunk-IWBPV3VS.js} +1 -1
- package/dist/{chunk-66LXV7NN.js → chunk-JHAGEBKE.js} +1 -1
- package/dist/{chunk-TRXNJZSL.js → chunk-LMMOR7CR.js} +1 -1
- package/dist/{chunk-EQORZ6RT.js → chunk-LRA3V5GY.js} +1 -1
- package/dist/{chunk-5VC7MBHR.js → chunk-MXLXKHW4.js} +1 -1
- package/dist/{chunk-HCWEZCKP.js → chunk-NIKA2V6B.js} +1 -1
- package/dist/{chunk-EYZWG32F.js → chunk-O4HWPV67.js} +2 -2
- package/dist/{chunk-JKHQBGFY.js → chunk-OAEZKYYQ.js} +2 -2
- package/dist/{chunk-OYOTWI53.js → chunk-OV2W7KBC.js} +1 -1
- package/dist/{chunk-6WHKJSMJ.js → chunk-P4SE6YON.js} +1 -1
- package/dist/{chunk-PV4EDQY4.js → chunk-QB4IOM3X.js} +1 -1
- package/dist/{chunk-BLHCGRSK.js → chunk-QM3XF5TW.js} +1 -1
- package/dist/{chunk-MEHEGW3V.js → chunk-QTHITA73.js} +1 -1
- package/dist/{chunk-K4ERF7GT.js → chunk-QZJID3OZ.js} +1 -1
- package/dist/{chunk-GFKIE3AL.js → chunk-QZNUTCSD.js} +1 -1
- package/dist/{chunk-IQFUBT6Z.js → chunk-R65HNFRB.js} +1 -1
- package/dist/{chunk-YEMR62WY.js → chunk-RLICAFFQ.js} +1 -1
- package/dist/{chunk-NVGTSXCJ.js → chunk-RQM3DUSB.js} +1 -1
- package/dist/{chunk-K4LCN5X4.js → chunk-SORKKW7B.js} +1 -1
- package/dist/{chunk-YTK3IQUB.js → chunk-T2ULEJK7.js} +1 -1
- package/dist/{chunk-QOGQBVTP.js → chunk-T4WZWKIU.js} +1 -1
- package/dist/{chunk-FCZ2YFD3.js → chunk-TACPTX64.js} +2 -2
- package/dist/{chunk-NKUA3TSO.js → chunk-U5QTE3WX.js} +1 -1
- package/dist/{chunk-TAUSKB3O.js → chunk-U6TLLYRG.js} +1 -1
- package/dist/{chunk-PXPXK4Q7.js → chunk-VCYVSKPM.js} +1 -1
- package/dist/{chunk-XSAZDIQV.js → chunk-VXLOEM2U.js} +1 -1
- package/dist/{chunk-QZ7DZXLQ.js → chunk-XTO236AL.js} +2 -2
- package/dist/{chunk-27GF2OQ7.js → chunk-YY6WPFMT.js} +3 -3
- package/dist/{chunk-QFD6CB4P.js → chunk-ZA4GR5R7.js} +1 -1
- package/dist/{config-JV7HNJ3I.js → config-Z4OS3HEE.js} +1 -1
- package/dist/{credentials-TQW3TT2I.js → credentials-TNEVAUHI.js} +1 -1
- package/dist/{evidence-ZFYDHO73.js → evidence-MA3LDBWG.js} +1 -1
- package/dist/{evolve-cmd-YGJECGND.js → evolve-cmd-DTW4EOXM.js} +1 -1
- package/dist/{extract-bind-7UZXDON6.js → extract-bind-DZLG4GUE.js} +2 -2
- package/dist/{extract-cmd-TQ2MYXOG.js → extract-cmd-LFVMG6UE.js} +1 -1
- package/dist/{generate-headless-XXECVP6L.js → generate-headless-TYQRYQKJ.js} +2 -2
- package/dist/index.js +12 -12
- package/dist/{interactive-bind-WA2YVAUW.js → interactive-bind-QEBWUJCN.js} +2 -2
- package/dist/{list-commands-I577A5LK.js → list-commands-BU2MSYRH.js} +1 -1
- package/dist/login-flow-4L62GWLT.js +2 -0
- package/dist/{persist-recorded-session-DT3K6ZYQ.js → persist-recorded-session-RAL7UCQT.js} +1 -1
- package/dist/{pipeline-5N7HWGAL.js → pipeline-PLI5WQKX.js} +1 -1
- package/dist/{reconcile-cmd-HYYH3SZS.js → reconcile-cmd-UXY36ROJ.js} +1 -1
- package/dist/{recording-banner-QI77ERTZ.js → recording-banner-MBR3Q7VD.js} +1 -1
- package/dist/{require-project-folder-2UAXXZA4.js → require-project-folder-KE7XOOFN.js} +1 -1
- package/dist/{run-VMKZDO7J.js → run-5DQSL5KH.js} +1 -1
- package/dist/{run-RYIYWV63.js → run-B7BRNC3X.js} +1 -1
- package/dist/{run-test-md-DKRJOUFA.js → run-test-md-ZCAWNP35.js} +2 -2
- package/dist/{skill-installer-TK5REDD6.js → skill-installer-H5DPJJFW.js} +1 -1
- package/dist/{spawner-K7LWPNIC.js → spawner-C6B5J73J.js} +1 -1
- package/dist/tcg-generate-DIMZXAV3.js +2 -0
- package/dist/{testmd-actions-Q2XWL7P5.js → testmd-actions-X6XCV53D.js} +1 -1
- package/dist/token-refresh-7PAPCMQK.js +2 -0
- package/dist/{validate-basic-XEJGB4GN.js → validate-basic-VBPGGHES.js} +1 -1
- package/dist/{version-check-IT7T5YKJ.js → version-check-YPRCQJ7E.js} +1 -1
- package/dist/{walk-session-HCTG4LN2.js → walk-session-GWOP27TX.js} +1 -1
- package/package.json +6 -6
- package/dist/SingleShotApp-ZBZY7KGR.js +0 -2
- package/dist/TestMdRunView-GQP2QGFU.js +0 -2
- package/dist/login-flow-OVEZXSMW.js +0 -2
- package/dist/tcg-generate-6EJLU5KX.js +0 -2
- package/dist/token-refresh-NQZJEUQE.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as mt,b as de,c as ft,d as Ae}from"./chunk-BSFONZ2E.js";import{a as be}from"./chunk-XWIN3S7O.js";import{a as gt}from"./chunk-TFVMSEIA.js";import{b as ut,c as dt}from"./chunk-GG43HSU2.js";import"./chunk-OSALXGD4.js";import{a as ct,b as at}from"./chunk-K4LCN5X4.js";import{a as ot}from"./chunk-5Y2G4NC7.js";import"./chunk-NVGBE2DR.js";import"./chunk-L3HG5ONB.js";import"./chunk-L4JIMNKW.js";import"./chunk-MBXWXBDM.js";import"./chunk-IAHKTEET.js";import"./chunk-5YPBPZUR.js";import{a as lt}from"./chunk-YCCUBQY4.js";import{a as st}from"./chunk-GO4CBUB6.js";import{b as it}from"./chunk-DFS4RMVP.js";import{y as o}from"./chunk-PXPXK4Q7.js";import{a as F}from"./chunk-HCBYKLMW.js";import{a as T,b as n,k as ke}from"./chunk-C44QQJR4.js";import{a as sn}from"./chunk-6YGTRKDT.js";import{e as q}from"./chunk-UR6MHSHU.js";var S=q(sn(),1);var u=q(F(),1),pt=3,ln=60;function Le(e,r){let s=e.options.length,l=s,d=e.multi_select?l++:null,f=e.allow_free_text?l++:null,i=r?l++:null;return{optionCount:s,doneIdx:d,freeIdx:f,batchIdx:i,maxSel:l-1}}var cn="\xA0",an={high:{text:`\u203C${cn}high`,color:o.red},med:{text:"med",color:"yellow"},low:{text:"low",color:o.dim}};function un({batch:e,i:r}){let s=e.resolution[r],l=s.form==="deferred"?"\u2013 deferred (the agent keeps it)":`\u2713 ${s.form}: ${s.choice}${s.form==="assumed"?" (flagged)":" (you)"}`;return(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:l})})}function dn({batch:e,i:r,sel:s,focused:l,freeText:d,multiSel:f,layout:i,contentW:m}){let g=e.questions[r],b=e.cursor===r,p=e.resolution[r],x=b?"\u203A":" ",C=an[g.risk],B=h=>b&&l&&s===h?(0,u.jsx)(n,{color:o.generateAccent,children:"\u25B8"}):" ";return(0,u.jsxs)(T,{flexDirection:"column",children:[(0,u.jsxs)(T,{children:[(0,u.jsx)(T,{width:5,flexShrink:0,children:(0,u.jsx)(n,{bold:b,children:` ${r+1} ${x}`})}),(0,u.jsx)(T,{width:m,children:(0,u.jsxs)(n,{bold:b,children:[g.text,C?(0,u.jsx)(n,{color:C.color,bold:!1,children:` ${C.text}`}):null]})})]}),(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:g.rationale})}),p&&!b?(0,u.jsx)(un,{batch:e,i:r}):(0,u.jsxs)(T,{flexDirection:"column",children:[g.options.map((h,y)=>{let E=b&&l&&s===y;return(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsxs)(n,{children:[B(y),g.multi_select?(0,u.jsx)(n,{color:f.includes(y)?o.green:o.dim,children:f.includes(y)?" [x]":" [ ]"}):null,(0,u.jsx)(n,{color:E?o.generateAccent:void 0,children:` ${y+1} ${h.label}`}),y===g.recommended_index?(0,u.jsx)(n,{color:o.dim,children:" (recommended)"}):null,p?.selected_index===y?(0,u.jsx)(n,{color:o.dim,children:" (current)"}):null]})},`o-${y}`)}),g.multi_select&&b&&i.doneIdx!=null?(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsxs)(n,{children:[B(i.doneIdx)," ",(0,u.jsx)(n,{color:o.green,children:"\u2714"}),(0,u.jsx)(n,{color:l&&s===i.doneIdx?o.generateAccent:void 0,children:" done \u2014 confirm selection"})]})}):null,g.allow_free_text&&b?d?(0,u.jsxs)(T,{paddingLeft:5,children:[(0,u.jsxs)(n,{children:[(0,u.jsx)(n,{color:o.generateAccent,children:"\u25B8"})," ",(0,u.jsx)(n,{color:o.dim,children:"\u270E "})]}),(0,u.jsx)(lt,{value:d.value,onChange:d.onChange,onSubmit:d.onSubmit,onCancel:d.onCancel,placeholder:"Tell me what to do"})]}):(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsxs)(n,{children:[i.freeIdx!=null?B(i.freeIdx):" "," ",(0,u.jsx)(n,{color:l&&i.freeIdx!=null&&s===i.freeIdx?o.generateAccent:o.dim,children:"\u270E Tell me what to do"})]})}):null]})]})}var mn=[];function ht({batch:e,sel:r=0,focused:s=!1,freeText:l=null,multiSelFor:d}){let{stdout:f}=ke(),i=f?.columns??80,m=i<ln,g=Math.max(20,(m?i:i-4)-5),b=e.resolution.filter(k=>!k).length,p=be(e),x=e.cursor>=0?e.questions[e.cursor]:void 0,C=x?Le(x,p!==""):{optionCount:0,doneIdx:null,freeIdx:null,batchIdx:null,maxSel:0},B=s&&C.batchIdx!=null&&r===C.batchIdx?(0,u.jsx)(n,{color:o.generateAccent,children:"\u25B8"}):" ",h=Math.max(0,Math.min(e.cursor<0?0:e.cursor,e.questions.length-pt)),y=e.questions.slice(h,h+pt),E=h,v=e.questions.length-h-y.length,L=(0,u.jsxs)(T,{flexDirection:"column",children:[(0,u.jsx)(n,{bold:!0,color:o.generateAccent,children:`? the agent needs ${b===1?"one answer":`${b} answers`} before it can continue`}),E>0?(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:`\u22EE ${E} above`})}):null,y.map((k,P)=>(0,u.jsx)(dn,{batch:e,i:h+P,sel:r,focused:s,freeText:l,multiSel:d?d(h+P):mn,layout:C,contentW:g},k.id)),v>0?(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:`\u22EE ${v} more`})}):null,p!==""?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(n,{children:" "}),(0,u.jsx)(T,{paddingLeft:1,children:(0,u.jsxs)(n,{children:[B," ",(0,u.jsx)(n,{color:o.generateAccent,children:"\xBB"}),(0,u.jsx)(n,{bold:!0,color:s&&C.batchIdx!=null&&r===C.batchIdx?o.generateAccent:void 0,children:" Go with recommendations"}),(0,u.jsx)(n,{color:o.dim,children:" (tab)"})]})})]}):null,(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.muted,children:"\u2191\u2193 \xB7 \u23CE select \xB7 1-9 \xB7 type = your words \xB7 esc previous answer"})})]});return m?L:(0,u.jsx)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.generateAccent,paddingX:1,children:L})}var A=q(F(),1),xt={high:0,med:1,low:2},gn={high:o.red,med:"yellow",low:o.dim};function fn(e){return e.map((r,s)=>({r,i:s})).sort((r,s)=>(xt[r.r.risk??"zz"]??3)-(xt[s.r.risk??"zz"]??3)||r.i-s.i).map(({r})=>r)}var V=(e,r)=>e.length<=r?e:r<=1?"\u2026":`${e.slice(0,r-1)}\u2026`,ye=(e,r)=>e+" ".repeat(Math.max(0,r-e.length));function kt({rows:e,width:r=120,badgeHeader:s="risk"}){if(e.length===0)return null;let l=fn(e),d=v=>v.staged||!v.id?"(staged)":gt(v.id),f=Math.max(2,...l.map(v=>d(v).length)),i=Math.max(s.length,...l.map(v=>(v.badge??"").length)),m=r>=96&&l.some(v=>v.summary),b=r-(m?13:10)-f-i,p=Math.max(...l.map(v=>Math.max(v.title.length,(v.marker??"").length)),5),x=Math.max(5,m?Math.min(p,Math.max(16,Math.floor(b*.5))):Math.min(p,b)),C=m?Math.max(7,b-x):0,B=(v,L,k,P)=>v+P.map(_=>`\u2500${"\u2500".repeat(_.length)}\u2500`).join(L)+k,h=(v,L,k,P)=>[ye(V(v,f),f),ye(V(L,x),x),ye(V(k,i),i),...m?[ye(V(P,C),C)]:[]],y=h("id","title",s,"summary"),E=[];E.push((0,A.jsx)(n,{color:o.dim,children:B("\u250C","\u252C","\u2510",y)},"t")),E.push((0,A.jsx)(n,{color:o.dim,children:`\u2502 ${y.join(" \u2502 ")} \u2502`},"h")),E.push((0,A.jsx)(n,{color:o.dim,children:B("\u251C","\u253C","\u2524",y)},"m"));for(let[v,L]of l.entries()){let k=h(d(L),V(L.title,x),V(L.badge??"",i),V(L.summary??"",C)),P=L.badgeColor??gn[L.badge??""]??o.dim;if(E.push((0,A.jsxs)(n,{children:[(0,A.jsx)(n,{color:o.dim,children:"\u2502 "}),(0,A.jsx)(n,{color:o.generateAccent,children:k[0]}),(0,A.jsx)(n,{color:o.dim,children:" \u2502 "}),k[1],(0,A.jsx)(n,{color:o.dim,children:" \u2502 "}),(0,A.jsx)(n,{color:P,children:k[2]}),m?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(n,{color:o.dim,children:" \u2502 "}),(0,A.jsx)(n,{color:o.dim,children:k[3]})]}):null,(0,A.jsx)(n,{color:o.dim,children:" \u2502"})]},`r-${v}`)),L.marker){let _=h("",V(L.marker,x),"","");E.push((0,A.jsx)(n,{color:o.dim,children:`\u2502 ${_.join(" \u2502 ")} \u2502`},`mk-${v}`))}}return E.push((0,A.jsx)(n,{color:o.dim,children:B("\u2514","\u2534","\u2518",y)},"b")),(0,A.jsx)(A.Fragment,{children:E})}var pn={"use-case":"use-cases",ac:"ACs",scenario:"scenarios",test:"tests",gap:"gaps"},Q=e=>pn[e]??`${e}s`,bt=e=>e==="ac"?"AC":e==="use-case"?"use-case":e,Me=e=>e.kind??"use-case",yt=e=>`${Me(e)}:${e.temp_ref}`;function Tt(e){let r=e,s=r.badge??e.risk??null,l=r.why??e.summary??e.description??null;return JSON.stringify([e.title,s,l,r.extra??null,e.depends_on_hint??null])}function wt(e){return e.filter(r=>r.role==="agent"&&typeof r.turnIndex=="number"&&Array.isArray(r.items)&&r.items.length>0)}function G(e){let r=new Map,s=1;for(let f of wt(e)){let i=new Set;for(let m of f.items){let g=yt(m);if(i.has(g))continue;i.add(g);let b=r.get(g);r.set(g,{num:b?.num??s++,ref:m.temp_ref,kind:Me(m),item:m,turnIndex:f.turnIndex,fingerprint:Tt(m)})}}let l=[...r.values()].sort((f,i)=>f.num-i.num),d=[];for(let f of l){let i=d.find(m=>m.kind===f.kind);i?i.count++:d.push({kind:f.kind,label:Q(f.kind),count:1})}return{entries:l,byRef:r,counts:d}}function $t(e,r){let l=wt(e).find(h=>h.turnIndex===r);if(!l)return null;let d=e.filter(h=>h.role!=="agent"||typeof h.turnIndex!="number"||h.turnIndex<=r),f=G(d),i=G(e.filter(h=>h.role!=="agent"||typeof h.turnIndex!="number"||h.turnIndex<r)),m=[],g=new Map,b=new Map,p=new Map,x=new Set;for(let h of l.items){let y=yt(h);if(x.has(y))continue;x.add(y);let E=i.byRef.get(y),v=h.changed===!0,L=f.byRef.get(y).num,k=Me(h);if(E&&!v&&E.fingerprint===Tt(h)){g.set(k,(g.get(k)??0)+1);continue}let P=!!E||v,_=P?p:b;_.set(k,(_.get(k)??0)+1),m.push({item:h,num:L,updated:P})}let C=[...g.entries()].map(([h,y])=>({label:Q(h),count:y})),B=[...[...b.entries()].map(([h,y])=>`${y} new ${y===1?bt(h):Q(h)}`),...[...p.entries()].map(([h,y])=>`${y} updated ${y===1?bt(h):Q(h)}`)].join(" \xB7 ");return{fresh:m,unchanged:C,headerStats:B}}function _e(e,r){let s=e.entries.filter(f=>f.turnIndex===r);if(s.length===0)return e;let l=new Map(s.map(f=>[f.ref,f])),d=[];for(let f of s){let i=d.find(m=>m.kind===f.kind);i?i.count+=1:d.push({kind:f.kind,label:Q(f.kind),count:1})}return{entries:s,byRef:l,counts:d}}var w=q(F(),1);function hn(e){let r=e.form==="assumed"?" (flagged)":e.form==="deferred"?"":" (you)",s=e.note?` \u2014 ${e.note}`:"";return e.form==="deferred"?`\u21B3 deferred q${e.qNum} ${e.stub}${s}`:e.form==="changed"?`\u21B3 changed q${e.qNum} ${e.stub}: ${e.prev??"?"} \u2192 ${e.choice??"?"}${r}${s}`:`\u21B3 ${e.form} q${e.qNum} ${e.stub}: ${e.choice??"?"}${r}${s}`}var xn=Math.min(process.stdout?.columns??100,120)-2;function St({block:e,annotations:r}){switch(e.kind){case"banner":return(0,w.jsx)(n,{color:o.dim,children:` \u2500\u2500 ${e.text} \u2500\u2500`});case"user":return(0,w.jsxs)(T,{children:[(0,w.jsx)(n,{color:o.orange,children:"\u276F "}),(0,w.jsx)(n,{children:e.text})]});case"note":return(0,w.jsx)(n,{color:o.dim,children:` ${e.text}`});case"agent":return(0,w.jsx)(ct,{text:e.text});case"thinking":return(0,w.jsx)(n,{color:o.dim,children:` thought for ${(e.tookMs/1e3).toFixed(1)}s`});case"tool":return(0,w.jsx)(n,{color:o.dim,children:` ${ut({name:e.name,status:e.status==="ok"?"done":e.status,detail:e.detail})}`});case"usage":return(0,w.jsx)(n,{color:o.dim,children:` \xB7 ${e.credits.toFixed(1)} credits \u2014 total ${e.total.toFixed(1)}`});case"turn":{let s=r??null,l=s?s.fresh:e.items.map((p,x)=>({item:p,num:x+1,updated:!1})),d={usecase:"risk","use-case":"risk",ac:"check",scenario:"kind",test:"check",gap:"severity",stylenote:"kind"},f=p=>p.kind??"use-case",i=new Map;for(let p of l){let x=p.item,C=f(p.item),B=x.risk==="high"||x.risk==="med"||x.risk==="low"?x.risk:void 0,h={id:x.logical_id??"",staged:!x.logical_id,title:x.title,badge:x.badge??x.risk??"",summary:x.why??x.summary??x.description??"",...B?{risk:B}:{},...p.updated?{marker:"\u21B3 changed"}:{}},y=i.get(C)??[];y.push(h),i.set(C,y)}let m=l.some(p=>!!p.item.kind),g=(s?.unchanged??[]).reduce((p,x)=>p+x.count,0),b=s?.headerStats?` \u2014 ${s.headerStats}${g>0?` (${g} unchanged)`:""}`:"";return(0,w.jsxs)(T,{flexDirection:"column",marginLeft:2,children:[(0,w.jsxs)(n,{bold:!0,children:[m?"design":e.heading,b?(0,w.jsx)(n,{bold:!1,color:o.dim,children:b}):null]}),[...i.entries()].map(([p,x])=>(0,w.jsxs)(T,{flexDirection:"column",children:[i.size>1?(0,w.jsx)(n,{color:o.dim,children:`${Q(p)} \xB7 ${x.length}`}):null,(0,w.jsx)(kt,{rows:x,width:xn,badgeHeader:d[p]??"info"})]},p)),s&&s.unchanged.length>0&&(0,w.jsx)(n,{color:o.dim,children:` \u22EE unchanged: ${s.unchanged.map(p=>`${p.count} ${p.label}`).join(" \xB7 ")}`})]})}case"answer":return(0,w.jsx)(n,{color:o.dim,children:hn(e.receipt)});case"continued":return(0,w.jsx)(n,{color:o.dim,children:"\u21B3 continued"});case"commit":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{color:e.ok?o.green:o.red,children:` ${e.ok?"\u2714":"\u2717"} ${e.line}`}),(e.warnings??[]).map((s,l)=>(0,w.jsx)(n,{color:o.dim,children:` \u26A0 ${s}`},`w-${l}`))]});case"error":return(0,w.jsxs)(st,{variant:"error",paddingX:1,children:[(0,w.jsx)(n,{color:o.red,children:e.title}),e.detail.map((s,l)=>(0,w.jsx)(n,{color:o.dim,children:s},`d-${l}`))]});case"interrupted":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{color:o.red,children:"interrupted \u2014 session not saved"}),e.detail?(0,w.jsx)(n,{color:o.dim,children:e.detail}):null]});case"pause":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{children:`paused: session ${e.sid} saved`}),e.expires_at?(0,w.jsx)(n,{color:o.dim,children:`expires: ${e.expires_at}`}):null,(0,w.jsx)(n,{children:`resume: ${e.resume}`}),e.messageForm?(0,w.jsx)(n,{children:`or say something on the way in: ${e.messageForm}`}):null]});case"summary":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{bold:!0,children:"session summary"}),e.lines.map((s,l)=>(0,w.jsx)(n,{children:` ${s}`},`s-${l}`))]})}}var se=q(F(),1);function vt({item:e}){return(0,se.jsxs)(T,{flexDirection:"column",marginLeft:2,children:[(e.cite??[]).map((r,s)=>(0,se.jsx)(n,{dimColor:!0,children:`cite ${r.anchor??"conv"} \u2014 "${r.quote??""}"`},`cite-${s}`)),(e.depends_on_hint??[]).length>0&&(0,se.jsx)(n,{dimColor:!0,children:`depends on: ${(e.depends_on_hint??[]).join(", ")}`}),Object.entries(e.extra??{}).map(([r,s])=>(0,se.jsx)(n,{dimColor:!0,children:`${r}: ${s}`},`extra-${r}`))]})}var $=q(F(),1),Oe=(e,r)=>Math.max(0,Math.min(r,e));function we(e,r,s){switch(r.type){case"move":return e.level==="detail"?{...e,scroll:Math.max(0,(e.scroll??0)+r.delta)}:{...e,cursor:Oe(e.cursor+r.delta,Math.max(0,s-1))};case"enter":return e.level==="list"?{...e,level:"detail",scroll:0}:e;case"back":return e.level==="detail"?{...e,level:"list",scroll:0}:null}}var Rt={"use-case":"use-cases",ac:"acs",scenario:"scenarios",test:"tests",gap:"gaps"};function Ct(e,r){if(e.level==="detail")return{level:"detail",cursor:Oe(e.num-1,Math.max(0,r.entries.length-1))};if(e.section){let s=r.entries.findIndex(l=>Rt[l.kind]===e.section);if(s>=0)return{level:"list",cursor:s}}return{level:"list",cursor:0}}function kn(e){let r=[];for(let s of e.entries){let l=r.find(d=>d.kind===s.kind);l?l.entries.push(s):r.push({kind:s.kind,entries:[s]})}return r}var It=3;function bn({items:e,cursor:r,verb:s,more:l}){let d=`view \xB7 ${s} so far \xB7 ${e.counts.map(i=>`${i.count} ${i.count===1?i.label.replace(/s$/,""):i.label}`).join(" \xB7 ")}`,f=e.entries[r];return(0,$.jsxs)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.dim,paddingX:1,children:[(0,$.jsx)(n,{bold:!0,children:d}),kn(e).map(({kind:i,entries:m})=>{let g=f?.kind===i,b=g?m.findIndex(B=>B.ref===f.ref):-1,p=g?Oe(b-1,Math.max(0,m.length-It)):0,x=m.slice(p,p+(g?It:1)),C=m.length-x.length;return(0,$.jsxs)(T,{flexDirection:"column",children:[(0,$.jsx)(n,{color:o.dim,children:`${Rt[i]??Q(i)} \xB7 ${m.length}`}),x.map(B=>{let h=g&&B.ref===f.ref,y=B.item.badge;return(0,$.jsxs)(n,{children:[(0,$.jsx)(n,{color:o.generateAccent,children:h?"\u203A ":" "}),(0,$.jsx)(n,{children:`${B.num} \xB7 ${B.item.title}`}),y?(0,$.jsx)(n,{color:o.dim,children:` \xB7 ${y}`}):null]},`${B.kind}:${B.ref}`)}),C>0&&(0,$.jsx)(n,{color:o.dim,children:` \u22EE ${C} more`})]},i)}),l?(0,$.jsxs)(n,{children:[(0,$.jsx)(n,{color:o.generateAccent,children:r===e.entries.length?"\u203A ":" "}),(0,$.jsx)(n,{color:o.dim,children:`\u22EF show all \u2014 ${l.hidden} more from earlier turns`})]}):null,(0,$.jsx)(n,{color:o.dim,children:"\u2191\u2193 move \xB7 \u21B5 detail \xB7 esc back"})]})}var Te=14;function yn({items:e,cursor:r,explain:s,grandTotal:l,dossier:d,scroll:f=0}){let i=e.entries[r];if(!i)return(0,$.jsx)(n,{color:o.dim,children:"nothing to show"});if(d){let g=Math.max(0,Math.min(f,Math.max(0,d.lines.length-Te))),b=d.lines.slice(g,g+Te);return(0,$.jsxs)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.dim,paddingX:1,children:[(0,$.jsxs)(n,{bold:!0,children:[`view \xB7 ${d.id}`,d.id.toLowerCase()!==d.rawId?(0,$.jsx)(n,{bold:!1,color:o.dim,children:` \xB7 ${d.rawId}`}):null]}),(0,$.jsx)(n,{bold:!0,children:d.title}),g>0?(0,$.jsx)(n,{color:o.muted,children:`\u22EE ${g} above`}):null,b.map((p,x)=>(0,$.jsx)(n,{color:p.dim?o.dim:void 0,children:p.text},`dl-${x}`)),d.lines.length>g+Te?(0,$.jsx)(n,{color:o.muted,children:`\u22EE ${d.lines.length-g-Te} more`}):null,(0,$.jsx)(n,{color:o.dim,children:"\u2191\u2193 scroll \xB7 esc back"})]})}let m=i.item;return(0,$.jsxs)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.dim,paddingX:1,children:[(0,$.jsx)(n,{bold:!0,children:`view \xB7 ${i.kind} ${i.num} of ${l??e.entries.length}`}),(0,$.jsx)(n,{children:i.item.title}),m.badge?(0,$.jsx)(n,{color:o.dim,children:`kind: ${m.badge}`}):null,m.why?(0,$.jsx)(n,{color:o.dim,children:m.why}):null,(0,$.jsx)(vt,{item:i.item}),s?.map((g,b)=>(0,$.jsx)(n,{color:o.dim,children:g},`ex-${b}`)),(0,$.jsx)(n,{color:o.dim,children:"view-only \u2014 approvals happen in chat"}),(0,$.jsx)(n,{color:o.dim,children:"\u2191\u2193 prev/next \xB7 esc back to list"})]})}function Bt({items:e,state:r,verb:s,more:l,explain:d,grandTotal:f,dossier:i=null}){return r.level==="list"?(0,$.jsx)(bn,{items:e,cursor:r.cursor,verb:s,more:l}):(0,$.jsx)(yn,{items:e,cursor:r.cursor,explain:d,grandTotal:f,dossier:i,scroll:r.scroll??0})}var Tn={"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 Dt(e){let r=(e??"").trim().toLowerCase();if(!r)return{level:"list"};if(/^\d+$/.test(r)){let l=parseInt(r,10);return l>=1?{level:"detail",num:l}:{error:"items are numbered from 1 \u2014 /view 1"}}let s=Tn[r];return s?{level:"list",section:s}:{error:"try /view, /view <number>, or /view acs|scenarios|tests"}}var D=q(F(),1),wn=6,Et=12;function $n(e,r,s){let l=Math.max(20,r),d=[];for(let i of e.split(`
|
|
2
|
+
import{a as mt,b as de,c as ft,d as Ae}from"./chunk-4CKZAGBD.js";import{a as be}from"./chunk-XWIN3S7O.js";import{a as gt}from"./chunk-TFVMSEIA.js";import{b as ut,c as dt}from"./chunk-GG43HSU2.js";import"./chunk-OSALXGD4.js";import{a as ct,b as at}from"./chunk-SORKKW7B.js";import{a as ot}from"./chunk-5Y2G4NC7.js";import"./chunk-NVGBE2DR.js";import"./chunk-L3HG5ONB.js";import"./chunk-L4JIMNKW.js";import"./chunk-MBXWXBDM.js";import"./chunk-IAHKTEET.js";import"./chunk-5YPBPZUR.js";import{a as lt}from"./chunk-YCCUBQY4.js";import{a as st}from"./chunk-3YI4QRXF.js";import{b as it}from"./chunk-DFS4RMVP.js";import{y as o}from"./chunk-VCYVSKPM.js";import{a as F}from"./chunk-HCBYKLMW.js";import{a as T,b as n,k as ke}from"./chunk-C44QQJR4.js";import{a as sn}from"./chunk-6YGTRKDT.js";import{e as q}from"./chunk-UR6MHSHU.js";var S=q(sn(),1);var u=q(F(),1),pt=3,ln=60;function Le(e,r){let s=e.options.length,l=s,d=e.multi_select?l++:null,f=e.allow_free_text?l++:null,i=r?l++:null;return{optionCount:s,doneIdx:d,freeIdx:f,batchIdx:i,maxSel:l-1}}var cn="\xA0",an={high:{text:`\u203C${cn}high`,color:o.red},med:{text:"med",color:"yellow"},low:{text:"low",color:o.dim}};function un({batch:e,i:r}){let s=e.resolution[r],l=s.form==="deferred"?"\u2013 deferred (the agent keeps it)":`\u2713 ${s.form}: ${s.choice}${s.form==="assumed"?" (flagged)":" (you)"}`;return(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:l})})}function dn({batch:e,i:r,sel:s,focused:l,freeText:d,multiSel:f,layout:i,contentW:m}){let g=e.questions[r],b=e.cursor===r,p=e.resolution[r],x=b?"\u203A":" ",C=an[g.risk],B=h=>b&&l&&s===h?(0,u.jsx)(n,{color:o.generateAccent,children:"\u25B8"}):" ";return(0,u.jsxs)(T,{flexDirection:"column",children:[(0,u.jsxs)(T,{children:[(0,u.jsx)(T,{width:5,flexShrink:0,children:(0,u.jsx)(n,{bold:b,children:` ${r+1} ${x}`})}),(0,u.jsx)(T,{width:m,children:(0,u.jsxs)(n,{bold:b,children:[g.text,C?(0,u.jsx)(n,{color:C.color,bold:!1,children:` ${C.text}`}):null]})})]}),(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:g.rationale})}),p&&!b?(0,u.jsx)(un,{batch:e,i:r}):(0,u.jsxs)(T,{flexDirection:"column",children:[g.options.map((h,y)=>{let E=b&&l&&s===y;return(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsxs)(n,{children:[B(y),g.multi_select?(0,u.jsx)(n,{color:f.includes(y)?o.green:o.dim,children:f.includes(y)?" [x]":" [ ]"}):null,(0,u.jsx)(n,{color:E?o.generateAccent:void 0,children:` ${y+1} ${h.label}`}),y===g.recommended_index?(0,u.jsx)(n,{color:o.dim,children:" (recommended)"}):null,p?.selected_index===y?(0,u.jsx)(n,{color:o.dim,children:" (current)"}):null]})},`o-${y}`)}),g.multi_select&&b&&i.doneIdx!=null?(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsxs)(n,{children:[B(i.doneIdx)," ",(0,u.jsx)(n,{color:o.green,children:"\u2714"}),(0,u.jsx)(n,{color:l&&s===i.doneIdx?o.generateAccent:void 0,children:" done \u2014 confirm selection"})]})}):null,g.allow_free_text&&b?d?(0,u.jsxs)(T,{paddingLeft:5,children:[(0,u.jsxs)(n,{children:[(0,u.jsx)(n,{color:o.generateAccent,children:"\u25B8"})," ",(0,u.jsx)(n,{color:o.dim,children:"\u270E "})]}),(0,u.jsx)(lt,{value:d.value,onChange:d.onChange,onSubmit:d.onSubmit,onCancel:d.onCancel,placeholder:"Tell me what to do"})]}):(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsxs)(n,{children:[i.freeIdx!=null?B(i.freeIdx):" "," ",(0,u.jsx)(n,{color:l&&i.freeIdx!=null&&s===i.freeIdx?o.generateAccent:o.dim,children:"\u270E Tell me what to do"})]})}):null]})]})}var mn=[];function ht({batch:e,sel:r=0,focused:s=!1,freeText:l=null,multiSelFor:d}){let{stdout:f}=ke(),i=f?.columns??80,m=i<ln,g=Math.max(20,(m?i:i-4)-5),b=e.resolution.filter(k=>!k).length,p=be(e),x=e.cursor>=0?e.questions[e.cursor]:void 0,C=x?Le(x,p!==""):{optionCount:0,doneIdx:null,freeIdx:null,batchIdx:null,maxSel:0},B=s&&C.batchIdx!=null&&r===C.batchIdx?(0,u.jsx)(n,{color:o.generateAccent,children:"\u25B8"}):" ",h=Math.max(0,Math.min(e.cursor<0?0:e.cursor,e.questions.length-pt)),y=e.questions.slice(h,h+pt),E=h,v=e.questions.length-h-y.length,L=(0,u.jsxs)(T,{flexDirection:"column",children:[(0,u.jsx)(n,{bold:!0,color:o.generateAccent,children:`? the agent needs ${b===1?"one answer":`${b} answers`} before it can continue`}),E>0?(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:`\u22EE ${E} above`})}):null,y.map((k,P)=>(0,u.jsx)(dn,{batch:e,i:h+P,sel:r,focused:s,freeText:l,multiSel:d?d(h+P):mn,layout:C,contentW:g},k.id)),v>0?(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.dim,children:`\u22EE ${v} more`})}):null,p!==""?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(n,{children:" "}),(0,u.jsx)(T,{paddingLeft:1,children:(0,u.jsxs)(n,{children:[B," ",(0,u.jsx)(n,{color:o.generateAccent,children:"\xBB"}),(0,u.jsx)(n,{bold:!0,color:s&&C.batchIdx!=null&&r===C.batchIdx?o.generateAccent:void 0,children:" Go with recommendations"}),(0,u.jsx)(n,{color:o.dim,children:" (tab)"})]})})]}):null,(0,u.jsx)(T,{paddingLeft:5,children:(0,u.jsx)(n,{color:o.muted,children:"\u2191\u2193 \xB7 \u23CE select \xB7 1-9 \xB7 type = your words \xB7 esc previous answer"})})]});return m?L:(0,u.jsx)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.generateAccent,paddingX:1,children:L})}var A=q(F(),1),xt={high:0,med:1,low:2},gn={high:o.red,med:"yellow",low:o.dim};function fn(e){return e.map((r,s)=>({r,i:s})).sort((r,s)=>(xt[r.r.risk??"zz"]??3)-(xt[s.r.risk??"zz"]??3)||r.i-s.i).map(({r})=>r)}var V=(e,r)=>e.length<=r?e:r<=1?"\u2026":`${e.slice(0,r-1)}\u2026`,ye=(e,r)=>e+" ".repeat(Math.max(0,r-e.length));function kt({rows:e,width:r=120,badgeHeader:s="risk"}){if(e.length===0)return null;let l=fn(e),d=v=>v.staged||!v.id?"(staged)":gt(v.id),f=Math.max(2,...l.map(v=>d(v).length)),i=Math.max(s.length,...l.map(v=>(v.badge??"").length)),m=r>=96&&l.some(v=>v.summary),b=r-(m?13:10)-f-i,p=Math.max(...l.map(v=>Math.max(v.title.length,(v.marker??"").length)),5),x=Math.max(5,m?Math.min(p,Math.max(16,Math.floor(b*.5))):Math.min(p,b)),C=m?Math.max(7,b-x):0,B=(v,L,k,P)=>v+P.map(_=>`\u2500${"\u2500".repeat(_.length)}\u2500`).join(L)+k,h=(v,L,k,P)=>[ye(V(v,f),f),ye(V(L,x),x),ye(V(k,i),i),...m?[ye(V(P,C),C)]:[]],y=h("id","title",s,"summary"),E=[];E.push((0,A.jsx)(n,{color:o.dim,children:B("\u250C","\u252C","\u2510",y)},"t")),E.push((0,A.jsx)(n,{color:o.dim,children:`\u2502 ${y.join(" \u2502 ")} \u2502`},"h")),E.push((0,A.jsx)(n,{color:o.dim,children:B("\u251C","\u253C","\u2524",y)},"m"));for(let[v,L]of l.entries()){let k=h(d(L),V(L.title,x),V(L.badge??"",i),V(L.summary??"",C)),P=L.badgeColor??gn[L.badge??""]??o.dim;if(E.push((0,A.jsxs)(n,{children:[(0,A.jsx)(n,{color:o.dim,children:"\u2502 "}),(0,A.jsx)(n,{color:o.generateAccent,children:k[0]}),(0,A.jsx)(n,{color:o.dim,children:" \u2502 "}),k[1],(0,A.jsx)(n,{color:o.dim,children:" \u2502 "}),(0,A.jsx)(n,{color:P,children:k[2]}),m?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(n,{color:o.dim,children:" \u2502 "}),(0,A.jsx)(n,{color:o.dim,children:k[3]})]}):null,(0,A.jsx)(n,{color:o.dim,children:" \u2502"})]},`r-${v}`)),L.marker){let _=h("",V(L.marker,x),"","");E.push((0,A.jsx)(n,{color:o.dim,children:`\u2502 ${_.join(" \u2502 ")} \u2502`},`mk-${v}`))}}return E.push((0,A.jsx)(n,{color:o.dim,children:B("\u2514","\u2534","\u2518",y)},"b")),(0,A.jsx)(A.Fragment,{children:E})}var pn={"use-case":"use-cases",ac:"ACs",scenario:"scenarios",test:"tests",gap:"gaps"},Q=e=>pn[e]??`${e}s`,bt=e=>e==="ac"?"AC":e==="use-case"?"use-case":e,Me=e=>e.kind??"use-case",yt=e=>`${Me(e)}:${e.temp_ref}`;function Tt(e){let r=e,s=r.badge??e.risk??null,l=r.why??e.summary??e.description??null;return JSON.stringify([e.title,s,l,r.extra??null,e.depends_on_hint??null])}function wt(e){return e.filter(r=>r.role==="agent"&&typeof r.turnIndex=="number"&&Array.isArray(r.items)&&r.items.length>0)}function G(e){let r=new Map,s=1;for(let f of wt(e)){let i=new Set;for(let m of f.items){let g=yt(m);if(i.has(g))continue;i.add(g);let b=r.get(g);r.set(g,{num:b?.num??s++,ref:m.temp_ref,kind:Me(m),item:m,turnIndex:f.turnIndex,fingerprint:Tt(m)})}}let l=[...r.values()].sort((f,i)=>f.num-i.num),d=[];for(let f of l){let i=d.find(m=>m.kind===f.kind);i?i.count++:d.push({kind:f.kind,label:Q(f.kind),count:1})}return{entries:l,byRef:r,counts:d}}function $t(e,r){let l=wt(e).find(h=>h.turnIndex===r);if(!l)return null;let d=e.filter(h=>h.role!=="agent"||typeof h.turnIndex!="number"||h.turnIndex<=r),f=G(d),i=G(e.filter(h=>h.role!=="agent"||typeof h.turnIndex!="number"||h.turnIndex<r)),m=[],g=new Map,b=new Map,p=new Map,x=new Set;for(let h of l.items){let y=yt(h);if(x.has(y))continue;x.add(y);let E=i.byRef.get(y),v=h.changed===!0,L=f.byRef.get(y).num,k=Me(h);if(E&&!v&&E.fingerprint===Tt(h)){g.set(k,(g.get(k)??0)+1);continue}let P=!!E||v,_=P?p:b;_.set(k,(_.get(k)??0)+1),m.push({item:h,num:L,updated:P})}let C=[...g.entries()].map(([h,y])=>({label:Q(h),count:y})),B=[...[...b.entries()].map(([h,y])=>`${y} new ${y===1?bt(h):Q(h)}`),...[...p.entries()].map(([h,y])=>`${y} updated ${y===1?bt(h):Q(h)}`)].join(" \xB7 ");return{fresh:m,unchanged:C,headerStats:B}}function _e(e,r){let s=e.entries.filter(f=>f.turnIndex===r);if(s.length===0)return e;let l=new Map(s.map(f=>[f.ref,f])),d=[];for(let f of s){let i=d.find(m=>m.kind===f.kind);i?i.count+=1:d.push({kind:f.kind,label:Q(f.kind),count:1})}return{entries:s,byRef:l,counts:d}}var w=q(F(),1);function hn(e){let r=e.form==="assumed"?" (flagged)":e.form==="deferred"?"":" (you)",s=e.note?` \u2014 ${e.note}`:"";return e.form==="deferred"?`\u21B3 deferred q${e.qNum} ${e.stub}${s}`:e.form==="changed"?`\u21B3 changed q${e.qNum} ${e.stub}: ${e.prev??"?"} \u2192 ${e.choice??"?"}${r}${s}`:`\u21B3 ${e.form} q${e.qNum} ${e.stub}: ${e.choice??"?"}${r}${s}`}var xn=Math.min(process.stdout?.columns??100,120)-2;function St({block:e,annotations:r}){switch(e.kind){case"banner":return(0,w.jsx)(n,{color:o.dim,children:` \u2500\u2500 ${e.text} \u2500\u2500`});case"user":return(0,w.jsxs)(T,{children:[(0,w.jsx)(n,{color:o.orange,children:"\u276F "}),(0,w.jsx)(n,{children:e.text})]});case"note":return(0,w.jsx)(n,{color:o.dim,children:` ${e.text}`});case"agent":return(0,w.jsx)(ct,{text:e.text});case"thinking":return(0,w.jsx)(n,{color:o.dim,children:` thought for ${(e.tookMs/1e3).toFixed(1)}s`});case"tool":return(0,w.jsx)(n,{color:o.dim,children:` ${ut({name:e.name,status:e.status==="ok"?"done":e.status,detail:e.detail})}`});case"usage":return(0,w.jsx)(n,{color:o.dim,children:` \xB7 ${e.credits.toFixed(1)} credits \u2014 total ${e.total.toFixed(1)}`});case"turn":{let s=r??null,l=s?s.fresh:e.items.map((p,x)=>({item:p,num:x+1,updated:!1})),d={usecase:"risk","use-case":"risk",ac:"check",scenario:"kind",test:"check",gap:"severity",stylenote:"kind"},f=p=>p.kind??"use-case",i=new Map;for(let p of l){let x=p.item,C=f(p.item),B=x.risk==="high"||x.risk==="med"||x.risk==="low"?x.risk:void 0,h={id:x.logical_id??"",staged:!x.logical_id,title:x.title,badge:x.badge??x.risk??"",summary:x.why??x.summary??x.description??"",...B?{risk:B}:{},...p.updated?{marker:"\u21B3 changed"}:{}},y=i.get(C)??[];y.push(h),i.set(C,y)}let m=l.some(p=>!!p.item.kind),g=(s?.unchanged??[]).reduce((p,x)=>p+x.count,0),b=s?.headerStats?` \u2014 ${s.headerStats}${g>0?` (${g} unchanged)`:""}`:"";return(0,w.jsxs)(T,{flexDirection:"column",marginLeft:2,children:[(0,w.jsxs)(n,{bold:!0,children:[m?"design":e.heading,b?(0,w.jsx)(n,{bold:!1,color:o.dim,children:b}):null]}),[...i.entries()].map(([p,x])=>(0,w.jsxs)(T,{flexDirection:"column",children:[i.size>1?(0,w.jsx)(n,{color:o.dim,children:`${Q(p)} \xB7 ${x.length}`}):null,(0,w.jsx)(kt,{rows:x,width:xn,badgeHeader:d[p]??"info"})]},p)),s&&s.unchanged.length>0&&(0,w.jsx)(n,{color:o.dim,children:` \u22EE unchanged: ${s.unchanged.map(p=>`${p.count} ${p.label}`).join(" \xB7 ")}`})]})}case"answer":return(0,w.jsx)(n,{color:o.dim,children:hn(e.receipt)});case"continued":return(0,w.jsx)(n,{color:o.dim,children:"\u21B3 continued"});case"commit":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{color:e.ok?o.green:o.red,children:` ${e.ok?"\u2714":"\u2717"} ${e.line}`}),(e.warnings??[]).map((s,l)=>(0,w.jsx)(n,{color:o.dim,children:` \u26A0 ${s}`},`w-${l}`))]});case"error":return(0,w.jsxs)(st,{variant:"error",paddingX:1,children:[(0,w.jsx)(n,{color:o.red,children:e.title}),e.detail.map((s,l)=>(0,w.jsx)(n,{color:o.dim,children:s},`d-${l}`))]});case"interrupted":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{color:o.red,children:"interrupted \u2014 session not saved"}),e.detail?(0,w.jsx)(n,{color:o.dim,children:e.detail}):null]});case"pause":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{children:`paused: session ${e.sid} saved`}),e.expires_at?(0,w.jsx)(n,{color:o.dim,children:`expires: ${e.expires_at}`}):null,(0,w.jsx)(n,{children:`resume: ${e.resume}`}),e.messageForm?(0,w.jsx)(n,{children:`or say something on the way in: ${e.messageForm}`}):null]});case"summary":return(0,w.jsxs)(T,{flexDirection:"column",children:[(0,w.jsx)(n,{bold:!0,children:"session summary"}),e.lines.map((s,l)=>(0,w.jsx)(n,{children:` ${s}`},`s-${l}`))]})}}var se=q(F(),1);function vt({item:e}){return(0,se.jsxs)(T,{flexDirection:"column",marginLeft:2,children:[(e.cite??[]).map((r,s)=>(0,se.jsx)(n,{dimColor:!0,children:`cite ${r.anchor??"conv"} \u2014 "${r.quote??""}"`},`cite-${s}`)),(e.depends_on_hint??[]).length>0&&(0,se.jsx)(n,{dimColor:!0,children:`depends on: ${(e.depends_on_hint??[]).join(", ")}`}),Object.entries(e.extra??{}).map(([r,s])=>(0,se.jsx)(n,{dimColor:!0,children:`${r}: ${s}`},`extra-${r}`))]})}var $=q(F(),1),Oe=(e,r)=>Math.max(0,Math.min(r,e));function we(e,r,s){switch(r.type){case"move":return e.level==="detail"?{...e,scroll:Math.max(0,(e.scroll??0)+r.delta)}:{...e,cursor:Oe(e.cursor+r.delta,Math.max(0,s-1))};case"enter":return e.level==="list"?{...e,level:"detail",scroll:0}:e;case"back":return e.level==="detail"?{...e,level:"list",scroll:0}:null}}var Rt={"use-case":"use-cases",ac:"acs",scenario:"scenarios",test:"tests",gap:"gaps"};function Ct(e,r){if(e.level==="detail")return{level:"detail",cursor:Oe(e.num-1,Math.max(0,r.entries.length-1))};if(e.section){let s=r.entries.findIndex(l=>Rt[l.kind]===e.section);if(s>=0)return{level:"list",cursor:s}}return{level:"list",cursor:0}}function kn(e){let r=[];for(let s of e.entries){let l=r.find(d=>d.kind===s.kind);l?l.entries.push(s):r.push({kind:s.kind,entries:[s]})}return r}var It=3;function bn({items:e,cursor:r,verb:s,more:l}){let d=`view \xB7 ${s} so far \xB7 ${e.counts.map(i=>`${i.count} ${i.count===1?i.label.replace(/s$/,""):i.label}`).join(" \xB7 ")}`,f=e.entries[r];return(0,$.jsxs)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.dim,paddingX:1,children:[(0,$.jsx)(n,{bold:!0,children:d}),kn(e).map(({kind:i,entries:m})=>{let g=f?.kind===i,b=g?m.findIndex(B=>B.ref===f.ref):-1,p=g?Oe(b-1,Math.max(0,m.length-It)):0,x=m.slice(p,p+(g?It:1)),C=m.length-x.length;return(0,$.jsxs)(T,{flexDirection:"column",children:[(0,$.jsx)(n,{color:o.dim,children:`${Rt[i]??Q(i)} \xB7 ${m.length}`}),x.map(B=>{let h=g&&B.ref===f.ref,y=B.item.badge;return(0,$.jsxs)(n,{children:[(0,$.jsx)(n,{color:o.generateAccent,children:h?"\u203A ":" "}),(0,$.jsx)(n,{children:`${B.num} \xB7 ${B.item.title}`}),y?(0,$.jsx)(n,{color:o.dim,children:` \xB7 ${y}`}):null]},`${B.kind}:${B.ref}`)}),C>0&&(0,$.jsx)(n,{color:o.dim,children:` \u22EE ${C} more`})]},i)}),l?(0,$.jsxs)(n,{children:[(0,$.jsx)(n,{color:o.generateAccent,children:r===e.entries.length?"\u203A ":" "}),(0,$.jsx)(n,{color:o.dim,children:`\u22EF show all \u2014 ${l.hidden} more from earlier turns`})]}):null,(0,$.jsx)(n,{color:o.dim,children:"\u2191\u2193 move \xB7 \u21B5 detail \xB7 esc back"})]})}var Te=14;function yn({items:e,cursor:r,explain:s,grandTotal:l,dossier:d,scroll:f=0}){let i=e.entries[r];if(!i)return(0,$.jsx)(n,{color:o.dim,children:"nothing to show"});if(d){let g=Math.max(0,Math.min(f,Math.max(0,d.lines.length-Te))),b=d.lines.slice(g,g+Te);return(0,$.jsxs)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.dim,paddingX:1,children:[(0,$.jsxs)(n,{bold:!0,children:[`view \xB7 ${d.id}`,d.id.toLowerCase()!==d.rawId?(0,$.jsx)(n,{bold:!1,color:o.dim,children:` \xB7 ${d.rawId}`}):null]}),(0,$.jsx)(n,{bold:!0,children:d.title}),g>0?(0,$.jsx)(n,{color:o.muted,children:`\u22EE ${g} above`}):null,b.map((p,x)=>(0,$.jsx)(n,{color:p.dim?o.dim:void 0,children:p.text},`dl-${x}`)),d.lines.length>g+Te?(0,$.jsx)(n,{color:o.muted,children:`\u22EE ${d.lines.length-g-Te} more`}):null,(0,$.jsx)(n,{color:o.dim,children:"\u2191\u2193 scroll \xB7 esc back"})]})}let m=i.item;return(0,$.jsxs)(T,{flexDirection:"column",borderStyle:"round",borderColor:o.dim,paddingX:1,children:[(0,$.jsx)(n,{bold:!0,children:`view \xB7 ${i.kind} ${i.num} of ${l??e.entries.length}`}),(0,$.jsx)(n,{children:i.item.title}),m.badge?(0,$.jsx)(n,{color:o.dim,children:`kind: ${m.badge}`}):null,m.why?(0,$.jsx)(n,{color:o.dim,children:m.why}):null,(0,$.jsx)(vt,{item:i.item}),s?.map((g,b)=>(0,$.jsx)(n,{color:o.dim,children:g},`ex-${b}`)),(0,$.jsx)(n,{color:o.dim,children:"view-only \u2014 approvals happen in chat"}),(0,$.jsx)(n,{color:o.dim,children:"\u2191\u2193 prev/next \xB7 esc back to list"})]})}function Bt({items:e,state:r,verb:s,more:l,explain:d,grandTotal:f,dossier:i=null}){return r.level==="list"?(0,$.jsx)(bn,{items:e,cursor:r.cursor,verb:s,more:l}):(0,$.jsx)(yn,{items:e,cursor:r.cursor,explain:d,grandTotal:f,dossier:i,scroll:r.scroll??0})}var Tn={"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 Dt(e){let r=(e??"").trim().toLowerCase();if(!r)return{level:"list"};if(/^\d+$/.test(r)){let l=parseInt(r,10);return l>=1?{level:"detail",num:l}:{error:"items are numbered from 1 \u2014 /view 1"}}let s=Tn[r];return s?{level:"list",section:s}:{error:"try /view, /view <number>, or /view acs|scenarios|tests"}}var D=q(F(),1),wn=6,Et=12;function $n(e,r,s){let l=Math.max(20,r),d=[];for(let i of e.split(`
|
|
3
3
|
`)){if(i.length<=l){d.push(i);continue}let m="";for(let g of i.split(" "))m&&m.length+1+g.length>l?(d.push(m),m=g):m=m?`${m} ${g}`:g;d.push(m)}let f=Math.max(0,d.length-s);return{body:d.slice(-s).join(`
|
|
4
4
|
`),hidden:f}}var $e=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function At(e){let r={key:"redesign",label:"re-design from scratch",detail:"replaces the current design"},s={key:"keep",label:"keep the existing design",detail:"back to the list"};return e.designed==="stale"?[{...r,detail:"the use-case changed since it was designed"},s]:[s,r]}function mr({controller:e,verb:r="extract",onCtrlC:s,chain:l=null,inspect:d=null}){let[,f]=(0,S.useState)(0),[i,m]=(0,S.useState)(!1),[g,b]=(0,S.useState)(null),[p,x]=(0,S.useState)(null),C=(0,S.useRef)(null),[B,h]=(0,S.useState)(null),y=(0,S.useRef)(null),E=t=>{y.current=t,h(t)},v=t=>{C.current=t,x(t),t===null&&E(null)},L=(0,S.useRef)([]),[k,P]=(0,S.useState)(null),_=(0,S.useRef)(null),N=t=>{_.current=t,P(t)},Pe=it(),{stdout:Lt}=ke(),Mt=Lt?.columns??80,qe=(0,S.useRef)(0),Se=(0,S.useRef)(0);(0,S.useEffect)(()=>{let t=()=>{let a=e.state.ledger;for(let I=qe.current;I<a.length;I++){let R=a[I],W=R.kind==="turn"?$t(e.state.turns,R.turnIndex):void 0;Pe.append((0,D.jsx)(St,{block:R,annotations:W},`lg-${I}`))}qe.current=a.length};t();let c=e.subscribe(()=>{t();let a=e.state;C.current&&(a.pending||a.status==="pausing")&&(v(null),a.pending&&b("questions arrived \u2014 back to chat")),f(I=>I+1)});return f(a=>a+1),c},[e,Pe]);let{thinking:J,status:Y,pending:M,confirm:Ne,ledger:Z,activeTurn:We,stream:_t,notice:me}=e.state,Fe=(_t?.text??"").trimEnd(),Ue=Fe.length>0,Ot=i&&(J.liveThinking.length>0||J.thinkingLog.length>0),Pt=$n(J.liveThinking||J.thinkingLog.map(t=>t.text).join(`
|
|
5
5
|
`),Mt-6,Et),je=Ue?Fe.split(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b,c}from"./chunk-
|
|
2
|
+
import{a,b,c}from"./chunk-ZA4GR5R7.js";import"./chunk-QTHITA73.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{c as ChromeProfilePicker,b as formatChromeProfileLine,a as listChromeProfiles};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as r}from"./chunk-
|
|
2
|
+
import{a as r}from"./chunk-GBYH35H5.js";import"./chunk-QTHITA73.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import{c as e}from"./chunk-C44QQJR4.js";import{a as i}from"./chunk-6YGTRKDT.js";import{e as m}from"./chunk-UR6MHSHU.js";var t=m(i(),1);async function d(){return new Promise(o=>{let c=e(t.default.createElement(r,{onSubmit:n=>{c.unmount(),o(n)}}),{stdout:process.stderr,exitOnCtrlC:!1})})}export{d as renderFeedbackPrompt};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as P,b as g,c as f}from"./chunk-
|
|
2
|
+
import{a as P,b as g,c as f}from"./chunk-GNNMHYWE.js";import"./chunk-F42YVALT.js";import"./chunk-5Y2G4NC7.js";import"./chunk-VCYVSKPM.js";import{a as c}from"./chunk-HCBYKLMW.js";import{c as d}from"./chunk-C44QQJR4.js";import{a as h}from"./chunk-6YGTRKDT.js";import{e as p}from"./chunk-UR6MHSHU.js";var e=p(h(),1);var m=p(c(),1);function w({pipeline:t,buildShareUrl:r,onDone:o}){let[n,i]=(0,e.useState)(P()),[S,l]=(0,e.useState)("uploading"),[U,R]=(0,e.useState)(),[C,E]=(0,e.useState)();return(0,e.useEffect)(()=>{let x=t.config.onProgress;t.config.onProgress=(s,u,a)=>{x(s,u,a),i(y=>g(y,s,u,a))},t.execute().then(s=>{s.success?(R(r?.(s)),l("success")):(E(s.error),l("failed")),setTimeout(()=>o(s),1500)})},[]),(0,m.jsx)(f,{steps:n,status:S,testUrl:U,error:C})}async function O(t,r){return new Promise(o=>{let n=d(e.default.createElement(w,{pipeline:t,buildShareUrl:r,onDone:i=>{n.unmount(),o(i)}}),{stdout:process.stderr,exitOnCtrlC:!1})})}export{O as renderUploadProgress};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as p,b as l,c as n}from"./chunk-
|
|
2
|
+
import{a as p,b as l,c as n}from"./chunk-3YI4QRXF.js";import{y as o}from"./chunk-VCYVSKPM.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 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-
|
|
2
|
+
import{a}from"./chunk-EASTDHNW.js";import"./chunk-RFHMDQXZ.js";import"./chunk-O4HWPV67.js";import"./chunk-FCMLIK7P.js";import"./chunk-CJJXT5DO.js";import"./chunk-QM4S2APK.js";import"./chunk-ZPDM6FO7.js";import"./chunk-BC7UVJJB.js";import"./chunk-NVGBE2DR.js";import"./chunk-EHN5HTUD.js";import"./chunk-L5LI2JF4.js";import"./chunk-LEA6IHXC.js";import"./chunk-RGDQMKNJ.js";import"./chunk-L3HG5ONB.js";import"./chunk-L4JIMNKW.js";import"./chunk-MBXWXBDM.js";import"./chunk-IAHKTEET.js";import"./chunk-5YPBPZUR.js";import"./chunk-M5JQXOCE.js";import"./chunk-QZJID3OZ.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as EvidenceViewOffer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-
|
|
2
|
+
import{a,b}from"./chunk-QB4IOM3X.js";import"./chunk-YCCUBQY4.js";import"./chunk-JHAGEBKE.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-QZJID3OZ.js";import"./chunk-QTHITA73.js";import"./chunk-VCYVSKPM.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 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as f,b as r,y as t}from"./chunk-
|
|
2
|
+
import{a as f,b as r,y as t}from"./chunk-VCYVSKPM.js";import{a as T}from"./chunk-HCBYKLMW.js";import{a as s,b as o,j as x,k as p}from"./chunk-C44QQJR4.js";import{a as v}from"./chunk-6YGTRKDT.js";import{e as h}from"./chunk-UR6MHSHU.js";var w=h(v(),1);var e=h(T(),1),b="https://www.testmuai.com/support/docs/kane-cli-introduction",S="https://github.com/LambdaTest/kane-cli/issues";function L(){let{exit:c}=x(),{stdout:a}=p(),l=a?.columns??80;return(0,w.useEffect)(()=>{let m=setTimeout(()=>c(),50);return()=>clearTimeout(m)},[c]),(0,e.jsxs)(s,{flexDirection:"column",children:[(0,e.jsxs)(s,{paddingX:1,paddingTop:1,flexDirection:"column",children:[(0,e.jsx)(o,{color:t.orange,bold:!0,children:r}),(0,e.jsxs)(s,{children:[(0,e.jsx)(o,{color:t.dim,children:"Browser automation powered by AI "}),(0,e.jsxs)(o,{color:t.muted,children:[" v",f]})]})]}),(0,e.jsx)(o,{children:" "}),(0,e.jsxs)(d,{title:"USAGE",children:[(0,e.jsx)(g,{cmd:`${r}`,desc:"Single-shot prompt (no args, TTY)"}),(0,e.jsx)(g,{cmd:`${r} --tui`,desc:"Full interactive TUI",highlight:!0}),(0,e.jsx)(g,{cmd:`${r} run "<objective>"`,desc:"Inline objective"}),(0,e.jsx)(g,{cmd:`${r} testmd run <path>.md`,desc:"Replay a saved *_test.md file"})]}),(0,e.jsxs)(d,{title:"HELP",children:[(0,e.jsx)(g,{cmd:`${r} --help`,desc:"Show this help (long form)"}),(0,e.jsx)(g,{cmd:`${r} -h`,desc:"Show this help (short form)"}),(0,e.jsx)(g,{cmd:`${r} help`,desc:"Show this help (subcommand form)"}),(0,e.jsxs)(s,{marginLeft:2,marginTop:0,flexDirection:"column",children:[(0,e.jsxs)(o,{color:t.dim,children:["These are the only supported help invocations. Anything else (e.g. ",(0,e.jsx)(o,{color:t.orange,children:"-help"}),") is an unknown flag."]}),(0,e.jsxs)(o,{color:t.dim,children:["Terminal tab-completion is a shell feature; ",r," does not ship shell-completion scripts, so any flag your shell suggests is a generic guess \u2014 not from ",r,"."]})]})]}),(0,e.jsxs)(d,{title:"COMMANDS",children:[(0,e.jsx)(i,{cmd:"run",args:"<objective>",desc:"Run an objective (inline string)",highlight:!0}),(0,e.jsx)(i,{cmd:"testmd",args:"run|list|status|delete|export",desc:"Manage *_test.md files"}),(0,e.jsx)(i,{cmd:"testrun",args:"run",desc:"Run M *_test.md files as one sealed execution"}),(0,e.jsx)(i,{cmd:"login",desc:"Auth setup (interactive, --oauth, or --username)"}),(0,e.jsx)(i,{cmd:"logout",desc:"Revoke tokens + delete profile"}),(0,e.jsx)(i,{cmd:"whoami",desc:"Show authenticated identity"}),(0,e.jsx)(i,{cmd:"config",args:"show|set-mode|set-assertion-mode|\u2026",desc:"Chrome, run & generate settings"}),(0,e.jsx)(i,{cmd:"profiles",args:"list|switch|delete",desc:"Manage auth profiles"}),(0,e.jsx)(i,{cmd:"evidence",args:"validate|serve|merge",desc:"Validate, serve (viewer) or merge evidence packs"}),(0,e.jsx)(i,{cmd:"changelog",args:"[--all]",desc:"Show recent release notes"}),(0,e.jsx)(i,{cmd:"context",args:"ingest|extract|list|review|sessions|\u2026",desc:"Build & manage the assurance context store"}),(0,e.jsx)(i,{cmd:"design",args:"tests --use-case <ref>",desc:"Design tests from the context store"})]}),(0,e.jsxs)(d,{title:"TESTMD ACTIONS",children:[(0,e.jsx)(i,{cmd:"testmd run",args:"<path>",desc:"Replay a saved *_test.md file",highlight:!0}),(0,e.jsx)(i,{cmd:"testmd list",desc:"List *_test.md files in cwd (recursive)"}),(0,e.jsx)(i,{cmd:"testmd status",args:"<path>",desc:"Print local meta.json for a test"}),(0,e.jsx)(i,{cmd:"testmd delete",args:"<path>",desc:"Remove output-<stem>/ and the source file"}),(0,e.jsx)(i,{cmd:"testmd export",args:"<path> --language <py|js>",desc:"Generate standalone Playwright code"})]}),(0,e.jsxs)(d,{title:"RUN FLAGS",children:[(0,e.jsx)(n,{long:"--max-steps",arg:"<n>",desc:"Max agent steps (default: 30)"}),(0,e.jsx)(n,{long:"--timeout",arg:"<sec>",desc:"Kill run after N seconds"}),(0,e.jsx)(n,{long:"--headless",desc:"No visible browser window"}),(0,e.jsx)(n,{long:"--mode",arg:"<action|testing>",desc:"Run mode (default: testing)"}),(0,e.jsx)(n,{long:"--name",arg:"<name>",desc:"Persist session under this name"}),(0,e.jsx)(n,{long:"--variables",arg:"<json>",desc:"Inline variables as JSON"}),(0,e.jsx)(n,{long:"--variables-file",arg:"<path>",desc:"Load variables from file"}),(0,e.jsx)(n,{long:"--session-context",arg:"<json>",desc:"Prior runs context JSON"}),(0,e.jsx)(n,{long:"--global-context",arg:"<file>",desc:"Override global context markdown"}),(0,e.jsx)(n,{long:"--local-context",arg:"<file>",desc:"Override local context markdown"}),(0,e.jsx)(n,{long:"--ws-endpoint",arg:"<url>",desc:"Remote browser (LambdaTest)"}),(0,e.jsx)(n,{long:"--cdp-endpoint",arg:"<url>",desc:"Connect to existing Chrome CDP"}),(0,e.jsx)(n,{long:"--task-skills",desc:"Domain-specific task skills (experimental)"}),(0,e.jsx)(n,{long:"--code-export",desc:"Generate code export after upload"}),(0,e.jsx)(n,{long:"--code-language",arg:"<lang>",desc:"Code export language: python | javascript"}),(0,e.jsx)(n,{long:"--skip-code-validation",desc:"Skip post-codegen validation"}),(0,e.jsx)(n,{long:"--username",arg:"<user>",desc:"Basic auth (skip OAuth)"}),(0,e.jsx)(n,{long:"--access-key",arg:"<key>",desc:"Basic auth access key"}),(0,e.jsx)(n,{long:"--env",arg:"<name>",desc:"Environment (prod or stage)"}),(0,e.jsx)(n,{long:"--agent",desc:"NDJSON output (no UI)",highlight:!0})]}),(0,e.jsxs)(d,{title:"EXAMPLES",children:[(0,e.jsx)(u,{label:"Inline objective",cmd:`${r} run "Search for laptop"`}),(0,e.jsx)(u,{label:"Replay a saved test",cmd:`${r} testmd run smoke_test.md`}),(0,e.jsx)(u,{label:"Variables",cmd:`${r} run "Login as {{user}}" --variables '{"user":{"value":"alice"}}'`}),(0,e.jsx)(u,{label:"Agent mode (NDJSON)",cmd:`${r} run "Add to cart" --agent | jq .status`})]}),(0,e.jsx)(d,{title:"TEST FILES",children:(0,e.jsxs)(s,{marginLeft:2,flexDirection:"column",children:[(0,e.jsxs)(o,{color:t.dim,children:[(0,e.jsx)(o,{color:t.orange,children:"*_test.md"})," \u2014 markdown test files with YAML frontmatter and ",(0,e.jsx)(o,{color:t.orange,children:"## "}),"step headings."]}),(0,e.jsxs)(o,{color:t.dim,children:["Run with ",(0,e.jsxs)(o,{color:t.orange,children:[r," testmd run path/to/foo_test.md"]}),". (`.md` paths are not accepted by `",r," run`.)"]}),(0,e.jsxs)(o,{color:t.dim,children:["Sessions you run in TUI auto-save to ",(0,e.jsx)(o,{color:t.orange,children:"<cwd>/.testmuai/tests/<name>_test.md"})," (testing mode prompts on exit)."]})]})}),(0,e.jsxs)(s,{flexDirection:"column",marginTop:0,paddingX:1,children:[(0,e.jsx)(o,{color:t.muted,children:"\u2500".repeat(Math.min(l-2,70))}),(0,e.jsxs)(s,{gap:3,children:[(0,e.jsxs)(s,{children:[(0,e.jsx)(o,{color:t.dim,children:"Docs "}),(0,e.jsx)(o,{color:t.orange,underline:!0,children:b})]}),(0,e.jsxs)(s,{children:[(0,e.jsx)(o,{color:t.dim,children:"Bugs "}),(0,e.jsx)(o,{color:t.orange,underline:!0,children:S})]})]})]}),(0,e.jsx)(o,{children:" "})]})}function d({title:c,children:a}){return(0,e.jsxs)(s,{flexDirection:"column",marginBottom:1,children:[(0,e.jsx)(s,{marginLeft:1,children:(0,e.jsx)(o,{bold:!0,color:t.dim,children:c})}),a]})}function g({cmd:c,desc:a,highlight:l}){return(0,e.jsxs)(s,{marginLeft:2,children:[(0,e.jsxs)(s,{width:40,children:[(0,e.jsx)(o,{color:t.dim,children:"$ "}),(0,e.jsx)(o,{color:l?t.orange:t.orange,children:c})]}),(0,e.jsx)(o,{color:t.dim,children:a})]})}function i({cmd:c,args:a,desc:l,highlight:m}){return(0,e.jsxs)(s,{marginLeft:2,children:[(0,e.jsx)(s,{width:16,children:(0,e.jsx)(o,{color:m?t.orange:t.green,bold:!0,children:c})}),(0,e.jsx)(s,{width:32,children:a?(0,e.jsx)(o,{color:t.dim,children:a}):null}),(0,e.jsx)(o,{color:t.dim,children:l})]})}function n({long:c,arg:a,desc:l,highlight:m}){return(0,e.jsxs)(s,{marginLeft:2,children:[(0,e.jsxs)(s,{width:30,children:[(0,e.jsx)(o,{color:m?t.orange:t.orange,children:c}),a&&(0,e.jsxs)(o,{color:t.dim,children:[" ",a]})]}),(0,e.jsx)(o,{color:t.dim,children:l})]})}function u({label:c,cmd:a}){return(0,e.jsxs)(s,{marginLeft:2,flexDirection:"column",children:[(0,e.jsxs)(o,{color:t.dim,children:["# ",c]}),(0,e.jsxs)(o,{color:t.orange,children:["$ ",a]})]})}export{L as HelpView};
|
|
@@ -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-DKERZJYF.js";import"./chunk-3YI4QRXF.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as InfoBox};
|
|
@@ -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-IWBPV3VS.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as LinksBox};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-
|
|
2
|
+
import{a,b}from"./chunk-OV2W7KBC.js";import"./chunk-QTHITA73.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{b as ProfilesView,a as formatProfileLine};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-
|
|
2
|
+
import{a,b}from"./chunk-FT4G3QGO.js";import"./chunk-YCCUBQY4.js";import"./chunk-JHAGEBKE.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-QZJID3OZ.js";import"./chunk-QTHITA73.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{b as ProjectPicker,a as formatProjectLine};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b,c}from"./chunk-
|
|
2
|
+
import{a,b,c}from"./chunk-345PY4SZ.js";import"./chunk-S3DAAAE5.js";import"./chunk-DKERZJYF.js";import"./chunk-3YI4QRXF.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as SaveSessionPrompt,b as defaultSessionTimestamp,c as renderSavePrompt};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a}from"./chunk-MXLXKHW4.js";import"./chunk-QM3XF5TW.js";import"./chunk-R65HNFRB.js";import"./chunk-FVM7TWKT.js";import"./chunk-U5QTE3WX.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-L5LI2JF4.js";import"./chunk-FT4G3QGO.js";import"./chunk-QB4IOM3X.js";import"./chunk-YCCUBQY4.js";import"./chunk-JHAGEBKE.js";import"./chunk-M5JQXOCE.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-QZJID3OZ.js";import"./chunk-VE3SUJMA.js";import"./chunk-DPOES6G3.js";import"./chunk-QTHITA73.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as SingleShotApp};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b,c,d}from"./chunk-
|
|
2
|
+
import{a,b,c,d}from"./chunk-LRA3V5GY.js";import"./chunk-DKERZJYF.js";import"./chunk-3YI4QRXF.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{d as AutoExitSummaryBox,c as SummaryBox,b as buildSummaryEvent,a as buildSummaryRendered};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{g as a}from"./chunk-LMMOR7CR.js";import"./chunk-U6TLLYRG.js";import"./chunk-4BAL4OGF.js";import"./chunk-FVM7TWKT.js";import"./chunk-F42YVALT.js";import"./chunk-5Y2G4NC7.js";import"./chunk-M5JQXOCE.js";import"./chunk-QZJID3OZ.js";import"./chunk-DKERZJYF.js";import"./chunk-3YI4QRXF.js";import"./chunk-DFS4RMVP.js";import"./chunk-VCYVSKPM.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as TestMdRunView};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as b,b as r}from"./chunk-
|
|
2
|
+
import{a as b,b as r}from"./chunk-3YI4QRXF.js";import{y as o}from"./chunk-VCYVSKPM.js";import{a as p}from"./chunk-HCBYKLMW.js";import{a as i,b as l,j as s}from"./chunk-C44QQJR4.js";import{a as T}from"./chunk-6YGTRKDT.js";import{e as a}from"./chunk-UR6MHSHU.js";var f=a(T(),1);var e=a(p(),1);function V({profile:g,env:v,authenticated:n,authMethod:h,username:c,tokenStatus:t,expiresAt:d,serverStatus:u,detail:m}){let{exit:x}=s();return(0,f.useEffect)(()=>{let B=setTimeout(()=>x(),50);return()=>clearTimeout(B)},[x]),(0,e.jsx)(i,{flexDirection:"column",children:(0,e.jsx)(b,{title:"Identity",variant:n?"success":"warning",children:(0,e.jsxs)(i,{flexDirection:"column",paddingY:1,children:[(0,e.jsx)(i,{children:u==="rejected"?(0,e.jsx)(l,{color:o.red,bold:!0,children:"\u2717 Not authenticated"}):u==="unreachable"?(0,e.jsx)(l,{color:o.orange,bold:!0,children:"\u26A0 Couldn't verify"}):n?(0,e.jsx)(l,{color:o.green,bold:!0,children:"\u2713 Authenticated"}):(0,e.jsx)(l,{color:o.orange,bold:!0,children:"\u26A0 Not logged in"})}),(0,e.jsxs)(i,{flexDirection:"column",marginTop:1,children:[(0,e.jsx)(r,{label:"Profile",value:g}),(0,e.jsx)(r,{label:"Environment",value:v}),(0,e.jsx)(r,{label:"Method",value:h}),c&&(0,e.jsx)(r,{label:"User",value:c}),t&&(0,e.jsx)(r,{label:"Token",value:t,valueColor:t==="valid"?o.green:t==="expired"?o.red:o.dim}),d&&(0,e.jsx)(r,{label:"Expires",value:d}),m&&(0,e.jsx)(r,{label:"Detail",value:m})]})]})})})}export{V as WhoamiView};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as p}from"./chunk-
|
|
2
|
+
import{a as p}from"./chunk-VXLOEM2U.js";import"./chunk-SHAA6FOD.js";import"./chunk-KHU7C6EE.js";import"./chunk-3C5GMAM4.js";import"./chunk-RQM3DUSB.js";import"./chunk-FXPPQL4D.js";import"./chunk-GG43HSU2.js";import"./chunk-JFAFKHDX.js";import"./chunk-OSALXGD4.js";import"./chunk-DNNZ353O.js";import"./chunk-YKTYVJBN.js";import"./chunk-CVOGP253.js";import"./chunk-427OQS2N.js";import"./chunk-ZPDM6FO7.js";import{a as u}from"./chunk-BC7UVJJB.js";import"./chunk-NVGBE2DR.js";import"./chunk-L5LI2JF4.js";import"./chunk-LEA6IHXC.js";import"./chunk-RGDQMKNJ.js";import"./chunk-L3HG5ONB.js";import"./chunk-L4JIMNKW.js";import"./chunk-MBXWXBDM.js";import"./chunk-IAHKTEET.js";import"./chunk-5YPBPZUR.js";import"./chunk-VCYVSKPM.js";import"./chunk-UR6MHSHU.js";import{existsSync as D}from"fs";var b=new Set(["interactive","agent","ci","override"]);function E(e){return e.mode!=null&&!b.has(e.mode)?{error:`design: --mode must be interactive | agent | ci | override, got '${e.mode}'`}:e.strength!=null&&e.strength!=="pairwise"&&e.strength!=="3-wise"?{error:`design: --strength must be pairwise | 3-wise, got '${e.strength}'`}:e.max!=null&&(!Number.isInteger(e.max)||e.max<1)?{error:"design: --max must be a positive integer"}:!e.useCase&&!e.resume?{error:"design: --use-case is required (or --resume <sid> \u2014 the session remembers its use-case)"}:{useCase:e.useCase,max:e.max,strength:e.strength,mode:e.mode,force:e.force,resume:e.resume,plan:e.plan,message:e.message,because:e.because,changeDelta:e.changeDelta,priorDesign:e.priorDesign}}async function A(e){let c=async(r,s)=>{if(process.stderr.write(r+`
|
|
3
3
|
`),e.mode!=="agent")return 2;let{makeHeadlessIO:t,agentRefusal:i}=await import("./headless-io-PWW6YKH2.js");return i(t("ndjson","design"),r,s)},d=E(e);if("error"in d)return c(d.error);let a=d;{let{validateResumeMessage:r}=await import("./headless-io-PWW6YKH2.js"),s=r(a,"design");if(s)return c(s)}if(!D(u(process.cwd())))return c("error: no context store here (run `kane-cli context ingest` + `kane-cli context extract` first)","NO_STORE");let n=null;try{if(!a.mode&&!process.stdin.isTTY)return process.stderr.write(`design: no TTY \u2014 pass an explicit --mode agent|ci|override to run headless
|
|
4
4
|
`),2;let r=a.mode??"interactive";if(r==="interactive"){if(!process.stdin.isTTY||!process.stdout.isTTY)return process.stderr.write(`design: --mode interactive needs a TTY on stdin and stdout (use --mode agent|ci|override headless)
|
|
5
|
-
`),2;let{bindDesignInteractive:o}=await import("./interactive-bind-
|
|
5
|
+
`),2;let{bindDesignInteractive:o}=await import("./interactive-bind-QEBWUJCN.js");return await o(a)}let{resolveAgentAuthEnv:s}=await import("./spawner-C6B5J73J.js"),{runAgent:t}=await import("./bridge-V4FF5QPK.js"),{preflightTurn:i}=await import("./turn-preflight-JGYT7LXP.js"),{makeInterruptGuard:h}=await import("./interrupt-guard-UREUWNRL.js"),{baseUrlAdvisory:w}=await import("./turn-preflight-JGYT7LXP.js"),{makeHeadlessIO:T,resolveEncoding:v,guardedChannels:x}=await import("./headless-io-PWW6YKH2.js");n=T(v(r),"design");let m=await s(),l=w();l&&n.out(l);let g=h(t,o=>n.out(o)),f=x(n,()=>g.interrupted(),/^error: (design agent failed|the design agent ended)/);try{let o=await p({...a,mode:r},{contextDir:u(process.cwd()),agent:g.agent,preflightTurn:()=>i(m),ask:async()=>[],out:f.out,emit:f.emit,progress:n.progress,isTTY:!1,auth:m});return g.interrupted()&&o!==3?(n.out("interrupted \u2014 no session saved"),n.done(130)):n.done(o)}finally{g.dispose()}}catch(r){let s=r instanceof Error?r.message:String(r);n?.event({type:"error",message:`error: design failed: ${s}`});let t=n?i=>n.out(i):i=>process.stderr.write(i+`
|
|
6
6
|
`);return t(`error: design failed: ${s}`),(process.env.ASSURANCE_LOG_LEVEL??"").toLowerCase()==="debug"&&r instanceof Error&&r.stack&&t(r.stack),t("hint: per-run trace logs live under .context/logs/ (design-*.log)"),n?n.done(1):1}}export{A as designTestsCommand};
|
|
@@ -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-P4SE6YON.js";import"./chunk-7BCZLDNX.js";import"./chunk-UR6MHSHU.js";export{a as runAgent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as l}from"./chunk-RZ4F3BHX.js";import{c as i,g as c}from"./chunk-
|
|
2
|
+
import{a as l}from"./chunk-RZ4F3BHX.js";import{c as i,g as c}from"./chunk-VCYVSKPM.js";import"./chunk-UR6MHSHU.js";import{readFileSync as u,writeFileSync as g,mkdirSync as d}from"fs";import{join as f}from"path";var h=f(i,"changelog-cache.json"),p=3600*1e3;function y(){try{let e=JSON.parse(u(h,"utf-8"));if(Date.now()-e.cachedAt<p)return e}catch{}return null}function m(e){try{d(i,{recursive:!0}),g(h,JSON.stringify({entries:e,cachedAt:Date.now()}))}catch{}}async function A(e){try{let t=y();if(t){let r=t.entries;return e?.all?r:r.slice(0,5)}let n=new AbortController,o=setTimeout(()=>n.abort(),5e3),a=await l(`${c}?per_page=30`,{headers:{Accept:"application/vnd.github+json"},signal:n.signal});if(clearTimeout(o),!a.ok)return[];let s=(await a.json()).map(r=>({version:r.tag_name.replace(/^v/,""),date:r.published_at?r.published_at.slice(0,10):"",body:r.body??""}));return m(s),e?.all?s:s.slice(0,5)}catch{return[]}}function v(e){if(e.length===0)return"Could not fetch changelog. Visit https://github.com/LambdaTest/kane-cli/releases";let t=["kane-cli Changelog","\u2500".repeat(40),""];for(let n of e){if(t.push(`v${n.version} (${n.date})`),n.body){let o=n.body.split(`
|
|
3
3
|
`).filter(a=>a.trim());for(let a of o)t.push(` ${a}`)}t.push("")}return t.join(`
|
|
4
4
|
`)}export{A as fetchChangelog,v as formatChangelog};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{f as je}from"./chunk-K5JGCJ2K.js";import{a as pe,e as Te,g as Ne,h as qe}from"./chunk-
|
|
2
|
+
import{f as je}from"./chunk-K5JGCJ2K.js";import{a as pe,e as Te,g as Ne,h as qe}from"./chunk-RQM3DUSB.js";import{b as Fe,f as Ue,g as He,h as Ge}from"./chunk-FXPPQL4D.js";import{a as Pe}from"./chunk-GG43HSU2.js";import{a as Ae,b as Ie}from"./chunk-JFAFKHDX.js";import{c as Oe}from"./chunk-OSALXGD4.js";import{a as se,b as Ee}from"./chunk-DNNZ353O.js";import{b as Me}from"./chunk-YKTYVJBN.js";import{a as Be}from"./chunk-CVOGP253.js";import{a as V}from"./chunk-NVGBE2DR.js";import{a as R}from"./chunk-LEA6IHXC.js";import{e as z,f as re}from"./chunk-L3HG5ONB.js";import{b as Re}from"./chunk-IAHKTEET.js";import{d as H}from"./chunk-5YPBPZUR.js";import{appendFileSync as st,mkdirSync as he,writeFileSync as _e}from"fs";import{extname as ot,join as M}from"path";var E=class extends Error{code;constructor(e,c){super(`${e}: ${c}`),this.name="ProposalAdapterError",this.code=e}};function Le(s){return s.version===2}function We(s,e){if(s.read_basis.length!==1)throw new E("READ_BASIS_COUNT",`read_basis must have exactly 1 element, got ${s.read_basis.length}`);let c=s.read_basis[0],x=s.use_cases.map(o=>{if(o.cite.length!==1)throw new E("CITE_COUNT",`${o.temp_ref}: cite must have exactly 1 element, got ${o.cite.length}`);let g=o.cite[0];if(g.source_id!==c.source_id)throw new E("SOURCE_MISMATCH",`${o.temp_ref}: cite source ${g.source_id} != read_basis source ${c.source_id} (single-source)`);return{temp_ref:o.temp_ref,title:o.title,...o.description!==void 0?{description:o.description}:{},...o.summary!==void 0?{summary:o.summary}:{},...o.actors!==void 0?{actors:o.actors}:{},...o.value!==void 0?{value:o.value}:{},risk:o.risk,cite:{anchor:g.anchor,quote:g.quote},...o.criteria!=null&&o.criteria.length>0?{criteria:o.criteria.map((d,h)=>{if(d.cite.source_id!==c.source_id)throw new E("SOURCE_MISMATCH",`${o.temp_ref}.criteria[${h}]: cite source ${d.cite.source_id} != read_basis source ${c.source_id} (single-source)`);return{text:d.text,cite:{anchor:d.cite.anchor,quote:d.cite.quote}}})}:{},depends_on_hint:o.depends_on_hint,matches_existing:o.matches_existing,...o.conflicts_with!=null?{conflicts_with:o.conflicts_with}:{},...o.changed?{changed:!0}:{},...o.updated!=null?{updated:{...o.updated.title!=null?{title:o.updated.title}:{},...o.updated.description!=null?{description:o.updated.description}:{},...o.updated.summary!=null?{summary:o.updated.summary}:{},...o.updated.actors!=null?{actors:o.updated.actors}:{},...o.updated.value!=null?{value:o.updated.value}:{},...o.updated.risk!=null?{risk:o.updated.risk}:{},...o.updated.criteria!=null?{criteria:o.updated.criteria.map((d,h)=>{if(d.cite.source_id!==c.source_id)throw new E("SOURCE_MISMATCH",`${o.temp_ref}.updated.criteria[${h}]: cite source ${d.cite.source_id} != read_basis source ${c.source_id} (single-source)`);return{text:d.text,cite:{anchor:d.cite.anchor,quote:d.cite.quote}}})}:{}}}:{},...o.change_note!=null?{change_note:o.change_note}:{}}});return{version:1,read_basis:e,source:{source_id:c.source_id,source_cid:c.source_cid},use_cases:x}}function ze(s){let{contextDir:e,graph:c}=s,x=s.maxDigestBytes??4096,o={},g=[];for(let[u,l]of c.heads){if(o[u]=l,typeof l!="string")continue;let _=c.mediaOf(l),k=c.getNode(l)?.content?.blob;if(typeof k=="string")if(_.format==="image")g.push({source_id:u,cid:l,format:"image",blobRef:{path:V(e,k),cid:k}});else{let n=se(e,c,l)?.toString("utf8")??"";g.push({source_id:u,cid:l,format:_.format,text:n})}}g.sort((u,l)=>u.source_id<l.source_id?-1:1);let d=[];for(let u of c.byLabel(H.STYLENOTE).sort((l,_)=>l.cid<_.cid?-1:1))c.superseded.has(u.cid)||d.push(`\u2022 ${String(u.content.statement)} [${String(u.content.learned_from_kind)}]`);let h="";for(let u of d){if(Buffer.byteLength(h+u+`
|
|
3
3
|
`,"utf8")>x)break;h+=u+`
|
|
4
4
|
`}return{read_basis:o,sources:g,styleNoteDigest:h}}function Ve(s,e){let c=ze({contextDir:s,graph:e}).styleNoteDigest;return c.length>0?c:void 0}function it(s){return s.length>8&&s[0]===137&&s[1]===80&&s[2]===78&&s[3]===71?"image/png":s.length>3&&s[0]===255&&s[1]===216&&s[2]===255?"image/jpeg":s.length>12&&s.toString("ascii",0,4)==="RIFF"&&s.toString("ascii",8,12)==="WEBP"?"image/webp":null}function Je(s){return s.toISOString().replace(/[-:]/g,"").slice(0,15)}function nt(s){return s.startsWith("su-conv-")?`conv-${Re(Buffer.from(s,"utf8")).slice(0,8)}`:s}function Qe(s){return s.source_id.startsWith("su-conv-")?"the conversation":s.source_id}function at(s,e,c){return`reading ${Qe(s)}${c>1?` (source ${e} of ${c})`:""}`}function J(s){return s.toLowerCase().trim().replace(/\s+/g," ")}function Xe(s,e){let c=new Map,x=new Map,o=new Map;for(let{cid:d,content:h}of e.byLabel(H.USECASE)){if(e.superseded.has(d))continue;(e.trust.get(d)==="archived"?o:x).set(J(String(h.title??"")),d)}let g=d=>e.trust.get(d)==="archived"?{cid:d,archived:!0,reason:e.archivedReason.get(d)}:{cid:d};for(let d of s.use_cases){if(d.matches_existing){let l=d.matches_existing.cid;if(e.superseded.has(l)){let _=e.tipOf(l);l=e.superseded.has(_)?null:_}if(l!==null){c.set(d.temp_ref,g(l));continue}}let h=x.get(J(d.title));if(h){c.set(d.temp_ref,{cid:h});continue}let u=o.get(J(d.title));u&&c.set(d.temp_ref,g(u))}return c}var Ye=/^(\S+)\.criteria\[(\d+)\]/;function ct(s,e,c){if(e.length===0||!e.every(o=>Ye.test(o.detail)))return!1;let x=new Map;for(let o of e){let g=Ye.exec(o.detail),d=x.get(g[1])??new Set;d.add(Number(g[2])),x.set(g[1],d)}for(let o of s.use_cases){let g=x.get(o.temp_ref);g?.size&&(o.criteria=(o.criteria??[]).filter((d,h)=>!g.has(h)),c(`${o.temp_ref}: dropped ${g.size} criteria with unverifiable cites \u2014 committed without them (criteria are hints, not oracles)`))}return!0}async function Ke(s,e,c,x,o=()=>{},g){let d=(h,u)=>o(h,u,s.session_id);return Ne(s,e,c,x,o,{async onProposalEvent(h){let u=h,l=null,_=null;if(Le(u))try{l=We(u,s.read_basis),d("adapter",{ok:!0,use_cases:l.use_cases.length})}catch(k){_=k instanceof E?k.message:String(k),d("adapter",{ok:!1,error:_})}else l=u;return l&&l.use_cases.length===0&&e.out("warning: the agent proposed ZERO use-cases for this source"),l&&g&&await g(l),{proposal:l,error:_}}})}var dt=new Set(["agent","ci","override"]);async function Gt(s,e){let c=s.mode??"interactive";if(c==="interactive"){if(!e.isTTY)return e.out("extract: --mode interactive needs a TTY (use --mode agent|ci|override headless)"),2}else if(!dt.has(c))return e.out(`extract: unknown mode "${c}" \u2014 interactive | agent | ci | override`),2;let x=Je(e.now?.()??new Date),o=M(e.contextDir,"logs");he(o,{recursive:!0});let g=M(o,`extract-${x}.log`),d=`run-${x}-${Math.random().toString(36).slice(2,8)}`,h=t=>t==="error"||t==="failed_proposal"?"error":t==="repair_respawn"?"warn":"info",u=(t,a,m)=>{try{st(g,JSON.stringify({ts:new Date().toISOString(),level:h(t),run_id:d,...m?{session_id:m}:{},kind:t,data:a})+`
|
|
5
5
|
`)}catch{}};e.out(`trace: ${pe(g)}`),e.emit?.({type:"run_start",mode:c,trace:g});let l=Me();if(l&&e.out(l),e.preflightTurn){let t=await e.preflightTurn();if(u("preflight",t),!t.ok)return e.out(t.message??"error: turn-endpoint preflight failed"),e.emit?.({type:"error",message:t.message??"error: turn-endpoint preflight failed",code:"PREFLIGHT"}),2}let _=R(e.contextDir),k=Ve(e.contextDir,_);if(s.source){if(s.resume){let a="error: --source cannot be combined with --resume (the resumed session already has its scope)";return e.out(a),e.emit?.({type:"error",message:a,code:"SOURCE_WITH_RESUME"}),2}let t=_.heads.get(s.source);if(typeof t!="string"){let a=t===null?`error: --source ${s.source} was ingested but is retired \u2014 re-ingest it to extract again`:`error: --source ${s.source} is not an ingested source (kane-cli context list shows them)`;return e.out(a),e.emit?.({type:"error",message:a,code:"SOURCE_UNKNOWN"}),2}}let n=null;if(s.resume){try{n=Ge(e.contextDir,s.resume,_)}catch(m){return e.out(`error: ${m instanceof Error?m.message:String(m)}`),e.emit?.({type:"error",message:`error: ${m instanceof Error?m.message:String(m)}`}),1}let t=n.handle.state.change_basis;if(t&&(_.heads.get(t.source_id)??null)!==t.new_head){let m=`error: ${t.source_id} moved while this reconcile extraction was paused \u2014 its recorded change context no longer matches; re-run kane-cli maintain reconcile against the current file (session ${s.resume} is defunct and can be ignored)`;return e.out(m),e.emit?.({type:"error",message:m,code:"CHANGE_BASIS_MOVED"}),n.handle.release(),2}n.staleBasis.length>0&&e.out(`note: changed since the pause: ${n.staleBasis.join(", ")} \u2014 re-presented items may be stale`);let a=n.handle.state.held_receipts??[];if(a.length>0)if(e.chat?.holdReceipt)for(let m of a)e.chat.holdReceipt(m);else e={...e,initialMessage:[a.join(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as B}from"./chunk-S3DAAAE5.js";import{a as g}from"./chunk-
|
|
2
|
+
import{b as B}from"./chunk-S3DAAAE5.js";import{a as g}from"./chunk-DKERZJYF.js";import{y as s}from"./chunk-VCYVSKPM.js";import{a as w}from"./chunk-HCBYKLMW.js";import{a as x,b as t,c as h,i as P,j as S}from"./chunk-C44QQJR4.js";import{a as C}from"./chunk-6YGTRKDT.js";import{e as T}from"./chunk-UR6MHSHU.js";var o=T(C(),1);var e=T(w(),1);function D({defaultName:i,onSubmit:c}){let[d,p]=(0,o.useState)("confirm"),[f,a]=(0,o.useState)(""),[m,u]=(0,o.useState)(null),l=(0,o.useMemo)(()=>f.trim()||i,[f,i]);return P((n,r)=>{if(d==="confirm"){if(n==="y"||n==="Y"){a(i),p("name");return}if(n==="n"||n==="N"||r.escape||r.ctrl&&n==="c"){c(null);return}if(r.return){c(i);return}return}if(r.return){if(!B(l)){u(`name "${l}" is invalid; allowed: letters, digits, underscore, hyphen`);return}c(l);return}if(r.escape||r.ctrl&&n==="c"){c(null);return}if(r.backspace||r.delete){a(v=>v.slice(0,-1)),u(null);return}n&&!r.ctrl&&!r.meta&&(a(v=>v+n),u(null))}),d==="confirm"?(0,e.jsx)(g,{title:"Save session?",titleColor:"#ff9500",rows:[{label:"name",value:(0,e.jsx)(t,{color:s.orange,children:i})}],footer:(0,e.jsxs)(x,{flexDirection:"column",children:[(0,e.jsx)(t,{color:s.dim,children:"enter \u2014 save with this name"}),(0,e.jsx)(t,{color:s.dim,children:"Y \u2014 edit name"}),(0,e.jsx)(t,{color:s.dim,children:"N/esc \u2014 discard session"})]})}):(0,e.jsx)(g,{title:"Save session?",titleColor:"#ff9500",rows:[{label:"name",value:(0,e.jsxs)(x,{children:[(0,e.jsx)(t,{color:s.orange,children:f}),(0,e.jsx)(t,{inverse:!0,children:" "})]})}],footer:(0,e.jsxs)(x,{flexDirection:"column",children:[m&&(0,e.jsx)(t,{color:s.red,children:m}),(0,e.jsx)(t,{color:s.dim,children:"enter \u2014 save \xB7 esc \u2014 discard"})]})})}function V(){return new Date().toISOString().slice(0,19).replace(/:/g,"-")}async function Y(i){return new Promise(c=>{function d(){let{exit:a}=S(),[m,u]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{if(m){let l=setTimeout(()=>a(),50);return()=>clearTimeout(l)}},[m,a]),(0,e.jsx)(D,{defaultName:i,onSubmit:l=>{c(l),u(!0)}})}let{waitUntilExit:p,unmount:f}=h((0,e.jsx)(d,{}),{stdout:process.stderr,exitOnCtrlC:!1});p().then(()=>{try{f()}catch{}})})}export{D as a,V as b,Y as c};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{y as o}from"./chunk-
|
|
2
|
+
import{y as o}from"./chunk-VCYVSKPM.js";import{a as m}from"./chunk-HCBYKLMW.js";import{a as e,b as i}from"./chunk-C44QQJR4.js";import{e as d}from"./chunk-UR6MHSHU.js";var r=d(m(),1),s={default:o.muted,error:o.red,success:o.green,info:o.orange,warning:o.orange};function h({title:t,titleColor:a,borderColor:l,variant:n="default",children:c,width:u,paddingX:x=2,paddingY:g=0,marginBottom:f=0}){let p=l??s[n],B=a??(n==="default"?o.orange:s[n]);return(0,r.jsxs)(e,{flexDirection:"column",marginBottom:f,children:[t&&(0,r.jsx)(e,{marginBottom:0,children:(0,r.jsxs)(i,{color:B,bold:!0,children:[" ",t]})}),(0,r.jsx)(e,{borderStyle:"round",borderColor:p,flexDirection:"column",paddingX:x,paddingY:g,width:u,children:c})]})}function k({label:t,value:a,labelColor:l=o.dim,valueColor:n,labelWidth:c=14}){return(0,r.jsxs)(e,{children:[(0,r.jsx)(e,{width:c,flexShrink:0,children:(0,r.jsx)(i,{color:l,children:t})}),(0,r.jsx)(e,{flexShrink:1,children:(0,r.jsx)(i,{color:n,wrap:"wrap",children:a})})]})}function I({label:t}){return(0,r.jsx)(e,{marginTop:1,marginBottom:0,children:(0,r.jsx)(i,{bold:!0,children:t})})}export{h as a,k as b,I as c};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as b}from"./chunk-
|
|
2
|
+
import{a as b}from"./chunk-FVM7TWKT.js";import{a as O}from"./chunk-QZJID3OZ.js";import{e as w,j as N}from"./chunk-VCYVSKPM.js";import{spawn as U,execSync as B}from"child_process";import{appendFileSync as L,existsSync as E,mkdirSync as K}from"fs";import{homedir as D}from"os";import{join as G,resolve as t,dirname as C}from"path";import{fileURLToPath as W}from"url";import{createInterface as V}from"readline";async function*T(e){let n=V({input:e,crlfDelay:1/0});for await(let l of n){let r=l.trim();if(r)try{let a=JSON.parse(r);a&&typeof a.type=="string"&&(yield a)}catch{}}}function M(e){return e==="action"?{set:{V16_AGENT_ENABLE_ALL_BLOCKERS:"true",V16_BIFURCATION_PHASES:"1"},unset:["V16_NETWORK_WS","V16_NETWORK_SSE"]}:{set:{V16_BIFURCATION_PHASES:"1"},unset:["V16_AGENT_ENABLE_ALL_BLOCKERS","V16_NETWORK_WS","V16_NETWORK_SSE"]}}function h(e){return e?{set:{},unset:["V16_AGENT_SKIP_CP_FINAL"]}:{set:{V16_AGENT_SKIP_CP_FINAL:"true"},unset:[]}}function I(e){return e==="dom"?{set:{V16_AGENT_ENABLE_TEXTUAL_VISUAL:"true"},unset:[]}:{set:{},unset:["V16_AGENT_ENABLE_TEXTUAL_VISUAL"]}}var o=C(W(import.meta.url));function j(){for(let e of["python3","python"])try{return B(`${e} --version`,{stdio:"ignore"}),e}catch{}return null}function $(){let n=process.platform==="win32"?"v16-runner.exe":"v16-runner",l={"darwin-arm64":["@testmuai/kane-cli-darwin-arm64","@lambdatestincprivate/kane-cli-darwin-arm64"],"darwin-x64":["@testmuai/kane-cli-darwin-x64","@lambdatestincprivate/kane-cli-darwin-x64"],"linux-x64":["@testmuai/kane-cli-linux-x64","@lambdatestincprivate/kane-cli-linux-x64"],"linux-arm64":["@testmuai/kane-cli-linux-arm64","@lambdatestincprivate/kane-cli-linux-arm64"],"win32-x64":["@testmuai/kane-cli-win-x64","@lambdatestincprivate/kane-cli-win-x64"]},r=`${process.platform}-${process.arch}`,a=l[r];if(a)for(let s of a){let m=[t(o,"..","node_modules",s,"bin",n),t(o,"..","..","node_modules",s,"bin",n),t(o,"..","..","..","node_modules",s,"bin",n),t(o,"..","..","..","..","node_modules",s,"bin",n)];for(let u of m)if(E(u))return{cmd:u,args:[]}}let f=[t(o,"bin",n),t(o,"..","bin",n),t(o,"..","..","..","..","v16-runner","dist",n),t(o,"..","..","..","v16-runner","dist",n),t(o,"..","..","v16-runner","dist",n),t(process.cwd(),"v16-runner","dist",n),t(process.cwd(),"..","v16-runner","dist",n)];for(let s of f)if(E(s))return{cmd:s,args:[]};let v=[t(o,"..","..","v16-runner"),t(o,"..","..","..","..","v16-runner"),t(o,"..","..","..","v16-runner"),t(process.cwd(),"v16-runner"),t(process.cwd(),"..","v16-runner")];for(let s of v)if(E(t(s,"main.py"))){for(let u of[t(s,".venv","bin","python"),t(s,"..",".venv","bin","python"),t(s,"..","browser-agent",".venv","bin","python")])if(E(u))return{cmd:u,args:["main.py"],cwd:s};let m=j();if(m)return{cmd:m,args:["main.py"],cwd:s}}return null}function ie(e,n){let l=$();if(!l)throw new Error("v16-runner not found. Build the binary with `cd v16-runner && python build.py` or ensure Python is available.");process.env.KANE_SPAWN_DEBUG&&process.stderr.write(`[spawn-debug] ${JSON.stringify(l)}
|
|
3
3
|
`);let r={...process.env};n?.environment&&(r.TESTMUAI_ENV=n.environment),r.TESTMUAI_SOURCE="kane-cli",process.platform==="win32"&&(r.PYTHONIOENCODING="utf-8");let a=O(n?.environment);r.V16_SERVER_API_HOST=a.v16ServerHost,r.ATMS_URL=a.tmsBaseUrl.replace(/\/api\/?$/,""),e.username&&e.access_key&&(r.LT_USERNAME=e.username,r.LT_ACCESS_KEY=e.access_key),e.session_id&&(r.TESTMUAI_SESSION_ID=e.session_id);let f=M(n?.mode??"testing");Object.assign(r,f.set);for(let i of f.unset)delete r[i];let v=new b().load(),s=I(n?.assertionMode??(v.assertion_mode==="visual"?"visual":"dom"));Object.assign(r,s.set);for(let i of s.unset)delete r[i];let m=n?.finalValidation??v.final_validation,u=h(m);Object.assign(r,u.set);for(let i of u.unset)delete r[i];let g=process.env.KANE_AP_MODE,S=g?{v1:"v1",v2:"v2"}[g]:void 0;S!==void 0&&e.ap_mode===void 0&&(e.ap_mode=S),e.telemetry_proxy_url===void 0&&process.env.KANE_TELEMETRY!=="0"&&(e.telemetry_proxy_url=N),e.media_upload===void 0&&e.org_id&&e.username&&e.access_key&&(e.media_upload={url:a.shareApiBaseUrl.replace(/\/$/,"")+"/mfs/v1.0/media/upload",artefacts_host:a.mediaArtefactsHost,org_id:e.org_id,media_dir:w});let d=U(l.cmd,l.args,{stdio:["pipe","pipe","pipe"],env:r,cwd:l.cwd});d.stdin.on("error",()=>{}),d.stdin.write(JSON.stringify(e)+`
|
|
4
4
|
`);let p=e.session_id?G(D(),".testmuai","kaneai","sessions",e.session_id,"runner-stderr.log"):null;if(p)try{K(C(p),{recursive:!0}),L(p,`--- runner spawn ${new Date().toISOString()} run_index=${e.run_index} ---
|
|
5
5
|
`)}catch{}let R=1e5,_="";d.stderr.on("data",i=>{if(_+=i.toString(),_.length>R&&(_=_.slice(-R)),p)try{L(p,i)}catch{}}),d.on("error",i=>{n?.log?.("error","RUNNER_SPAWN_ERROR","Runner spawn error",{error:i.message})});let A=null,y=null,k=new Promise(i=>{d.on("close",(c,x)=>{A=c,y=x?String(x):null,n?.log?.("info","RUNNER_EXIT","Runner exited",{code:c,signal:y??"none"}),i({code:c,signal:y})})}),P=T(d.stdout);return{child:d,events:P,sendUserResponse(i){let c=JSON.stringify({type:"user_response",answer:i});try{d.stdin.write(c+`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as E}from"./chunk-YCCUBQY4.js";import{y as m}from"./chunk-
|
|
2
|
+
import{a as E}from"./chunk-YCCUBQY4.js";import{y as m}from"./chunk-VCYVSKPM.js";import{a as R}from"./chunk-HCBYKLMW.js";import{a as h,b as s,i as C,k as S}from"./chunk-C44QQJR4.js";import{a as B}from"./chunk-6YGTRKDT.js";import{e as w}from"./chunk-UR6MHSHU.js";var c=w(R(),1);function N(d){let n=d.findIndex(o=>o.free);return n>=0?n:null}var $=60;function W({headline:d,ask:n=!1,rows:o,sel:r,focused:x,legend:l,freeText:u=null,freeTextNote:f}){let{stdout:t}=S(),e=(t?.columns??80)<$,a=i=>x&&r===i?(0,c.jsx)(s,{color:m.generateAccent,children:"\u25B8"}):" ",p=0,g=(0,c.jsxs)(h,{flexDirection:"column",children:[n?(0,c.jsx)(s,{bold:!0,color:m.generateAccent,children:`? ${d}`}):(0,c.jsx)(s,{bold:!0,children:d}),o.map((i,T)=>i.free?u?(0,c.jsxs)(h,{flexDirection:"column",children:[(0,c.jsxs)(h,{children:[(0,c.jsxs)(s,{children:[" ",(0,c.jsx)(s,{color:m.generateAccent,children:"\u25B8"})," ",(0,c.jsx)(s,{color:m.dim,children:"\u270E "})]}),(0,c.jsx)(E,{value:u.value,onChange:u.onChange,onSubmit:u.onSubmit,onCancel:u.onCancel,placeholder:i.label})]}),f?(0,c.jsx)(s,{color:m.muted,children:` ${f}`}):null]},i.key):(0,c.jsxs)(s,{children:[" ",a(T)," ",(0,c.jsx)(s,{color:m.dim,children:`\u270E ${i.label}`})]},i.key):(p+=1,(0,c.jsxs)(s,{bold:x&&r===T,children:[" ",a(T),` ${p} ${i.label}`,i.detail?(0,c.jsx)(s,{color:m.dim,bold:!1,children:` \u2014 ${i.detail}`}):null]},i.key))),(0,c.jsx)(s,{color:m.muted,children:` ${l}`})]});return e?g:(0,c.jsx)(h,{flexDirection:"column",borderStyle:"round",borderColor:m.generateAccent,paddingX:1,children:g})}var A=w(R(),1),P="ctrl+t thinking \xB7 ctrl+c exit";function M(d,n){if(d.length<=n)return d;if(n<=1)return"\u2026";let o=Math.ceil((n-1)/2),r=Math.floor((n-1)/2);return`${d.slice(0,o)}\u2026${r>0?d.slice(-r):""}`}function L({verb:d,subject:n,pendingCount:o,creditsTotal:r,state:x,hints:l=P}){let{stdout:u}=S(),f=u?.columns??80,t=[];t.push(d),x&&t.push(x),r!==void 0&&t.push(`${r.toFixed(1)} credits`);let e=o?`[${o} pending]`:null,a=" \xB7 ",g=[...t,...e?[e]:[]].join(a).length,i,T=[...t,...n?[n]:[],...e?[e]:[],l].join(a);if(T.length<=f)i=T;else{let b=f-g-(n?a.length:0)-a.length-l.length;if(n&&b>=8)i=[...t,M(n,b),...e?[e]:[],l].join(a);else{let v=f-g-(n?a.length:0);i=[...t,...n&&v>=4?[M(n,v)]:[],...e?[e]:[]].join(a)}}if(x){let b=` \xB7 ${x}`,v=i.indexOf(b);if(v>=0)return(0,A.jsxs)(s,{color:m.dim,children:[i.slice(0,v+3),(0,A.jsx)(s,{color:m.generateAccent,children:x}),i.slice(v+b.length)]})}return(0,A.jsx)(s,{color:m.dim,children:i})}var O=w(B(),1);function q({onToggleThinking:d,onCtrlC:n,explorer:o,panel:r}){let l=(0,O.useRef)(null),u=(0,O.useRef)(""),f=()=>{l.current&&clearTimeout(l.current),l.current=null,u.current=""};return(0,O.useEffect)(()=>f,[]),C((t,e)=>{if(e.ctrl&&t==="t"){d();return}if(e.ctrl&&t==="c"){n();return}if(!e.ctrl&&t.includes("")){n();return}if(!e.ctrl&&t.includes("")){d();return}if(o&&o.isOpen()){let a=()=>{l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{f(),o.onBack()},150)};if(l.current){if(e.upArrow||e.downArrow||e.return){f(),e.return?o.onEnter():o.onMove(e.upArrow?-1:1);return}if(u.current+=t,u.current==="["){a();return}let p=u.current;f();let g=/^\[([AB])/.exec(p);if(g){o.onMove(g[1]==="A"?-1:1);return}o.onBack();return}if(e.upArrow){o.onMove(-1);return}if(e.downArrow){o.onMove(1);return}if(e.return){o.onEnter();return}if(e.escape){u.current="",a();return}return}if(r&&r.isFocused()){let a=()=>{l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{f(),r.onBack()},150)};if(l.current){if(e.upArrow||e.downArrow||e.return){f(),e.return?r.onSelect():r.onMove(e.upArrow?-1:1);return}if(u.current+=t,u.current==="["){a();return}let p=u.current;f();let g=/^\[([AB])/.exec(p);if(g){r.onMove(g[1]==="A"?-1:1);return}r.onBack();return}if(e.upArrow){r.onMove(-1);return}if(e.downArrow){r.onMove(1);return}if(e.return){r.onSelect();return}if(e.escape){u.current="",a();return}if(/^[1-9]$/.test(t)){r.onDigit(Number(t));return}if(e.tab){r.onTab?.();return}if(t===" "&&r.isMulti()){r.onSpace();return}if(t&&!e.ctrl&&!e.meta){r.onType(t);return}return}}),null}export{N as a,W as b,L as c,q as d};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as b}from"./chunk-
|
|
2
|
+
import{a as b}from"./chunk-U5QTE3WX.js";import{c as k}from"./chunk-RFHMDQXZ.js";import{a as C}from"./chunk-DPOES6G3.js";import{q as m,r as u,s as f,t as x,u as y}from"./chunk-VCYVSKPM.js";import{createServer as S}from"http";import{randomBytes as A}from"crypto";import{URL as L}from"url";var P=class{profile;environment;creds;oauth;constructor(r="default",o="prod",e){this.profile=r,this.environment=o,this.creds=e??new C,this.oauth=new b(o)}async login(){let{server:r,port:o}=await this.startCallbackServer(),e=y(o);try{let t=this.creds.loadClient(this.profile,this.environment),i=t?.redirect_uris;(!t||!i?.includes(e))&&(t=await this.oauth.registerClient(e),this.creds.saveClient(this.profile,this.environment,t));let c=t.client_id,[h,d]=b.generatePkce(),a=A(32).toString("hex"),n=this.oauth.buildAuthorizationUrl(c,d,a,e),l=await this.waitForCallback(r,o,n,a);if(!l)throw new Error("Login cancelled or timed out");let p=await this.oauth.exchangeCode(l,c,h,e),g={access_token:p.access_token,refresh_token:p.refresh_token,expires_at:Math.floor(Date.now()/1e3)+p.expires_in,scope:p.scope??"*"};return this.creds.saveCredentials(this.profile,this.environment,g),this.creds.setActiveProfile(this.profile),g}catch(t){throw r.close(),t}}startCallbackServer(){return new Promise((r,o)=>{let e=u,t=()=>{let i=S();i.on("error",c=>{c.code==="EADDRINUSE"&&e<f?(e++,t()):o(new Error(`Failed to start callback server: ${c.message}. Ports ${u}-${f} are all in use.`))}),i.listen(e,m,()=>{r({server:i,port:e})})};t()})}waitForCallback(r,o,e,t){return new Promise(i=>{let c=!1,h=setTimeout(()=>d(null),12e4),d=a=>{c||(c=!0,clearTimeout(h),r.close(),i(a))};r.on("request",(a,n)=>{let l=new L(a.url??"/",`http://${m}:${o}`);if(l.pathname!==x){n.writeHead(404),n.end();return}let p=l.searchParams.get("state"),g=l.searchParams.get("code");if(l.searchParams.get("error")){n.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),n.end(v({state:"error",title:"Login failed",message:"We couldn't complete the sign-in. You can close this tab and try again from your terminal."})),d(null);return}if(p!==t){n.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),n.end(v({state:"error",title:"Invalid state",message:"The sign-in response didn't match this session. Please return to your terminal and try again."})),d(null);return}n.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),n.end(v({state:"success",title:"You're signed in",message:"Head back to your terminal \u2014 KaneAI is ready when you are.",autoClose:!0})),d(g)}),k(e).catch(a=>{let n=a instanceof Error?a.message:String(a);process.stderr.write(`[auth] Could not open browser: ${n}
|
|
3
3
|
Please open this URL manually: ${e}
|
|
4
4
|
`)})})}};function v(s){let r=s.state==="success",o=r?"#22c55e":"#ef4444",e=r?"rgba(34, 197, 94, 0.12)":"rgba(239, 68, 68, 0.12)",t=r?'<svg viewBox="0 0 24 24" width="36" height="36" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7"/></svg>':'<svg viewBox="0 0 24 24" width="36" height="36" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18"/></svg>',i=s.autoClose?"<script>setTimeout(function(){try{window.close();}catch(e){}}, 1500);</script>":"";return`<!doctype html>
|
|
5
5
|
<html lang="en">
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{existsSync as u}from"fs";import{dirname as f,resolve as i}from"path";import{fileURLToPath as d}from"url";var g=f(d(import.meta.url));function p(){return[i(g,".."),i(g,"../../..")]}function A(o){return{"darwin-arm64":"kane-cli-darwin-arm64","darwin-x64":"kane-cli-darwin-x64","linux-x64":"kane-cli-linux-x64","linux-arm64":"kane-cli-linux-arm64","win32-x64":"kane-cli-win-x64"}[o]??null}function h(){let o=A(`${process.platform}-${process.arch}`),n=process.platform==="win32"?"assurance-agent.exe":"assurance-agent";for(let r of p()){for(let s of o?["@testmuai","@lambdatestincprivate"]:[]){let e=i(r,"node_modules",s,o,"bin",n);if(u(e))return{cmd:e,args:[],tier:"platform"}}let a=i(r,"../assurance-agent/dist",n);if(u(a))return{cmd:a,args:[],tier:"sibling"};let t=i(r,"../assurance-agent/main.py");if(u(t)){let s=i(r,"../assurance-agent/.venv/bin/python");return{cmd:u(s)?s:"python3",args:[t],tier:"dev-python"}}}return null}function v(o,n={}){return{...process.env,...n,TESTMUAI_SOURCE:"kane-cli",TESTMUAI_SESSION_ID:o,ASSURANCE_LOG_LEVEL:process.env.ASSURANCE_LOG_LEVEL??"info"}}async function w(){if(process.env.TESTMUAI_API_KEY||process.env.TESTMUAI_BASIC_AUTH)return{};try{let{CredentialsManager:o}=await import("./credentials-
|
|
2
|
+
import{existsSync as u}from"fs";import{dirname as f,resolve as i}from"path";import{fileURLToPath as d}from"url";var g=f(d(import.meta.url));function p(){return[i(g,".."),i(g,"../../..")]}function A(o){return{"darwin-arm64":"kane-cli-darwin-arm64","darwin-x64":"kane-cli-darwin-x64","linux-x64":"kane-cli-linux-x64","linux-arm64":"kane-cli-linux-arm64","win32-x64":"kane-cli-win-x64"}[o]??null}function h(){let o=A(`${process.platform}-${process.arch}`),n=process.platform==="win32"?"assurance-agent.exe":"assurance-agent";for(let r of p()){for(let s of o?["@testmuai","@lambdatestincprivate"]:[]){let e=i(r,"node_modules",s,o,"bin",n);if(u(e))return{cmd:e,args:[],tier:"platform"}}let a=i(r,"../assurance-agent/dist",n);if(u(a))return{cmd:a,args:[],tier:"sibling"};let t=i(r,"../assurance-agent/main.py");if(u(t)){let s=i(r,"../assurance-agent/.venv/bin/python");return{cmd:u(s)?s:"python3",args:[t],tier:"dev-python"}}}return null}function v(o,n={}){return{...process.env,...n,TESTMUAI_SOURCE:"kane-cli",TESTMUAI_SESSION_ID:o,ASSURANCE_LOG_LEVEL:process.env.ASSURANCE_LOG_LEVEL??"info"}}async function w(){if(process.env.TESTMUAI_API_KEY||process.env.TESTMUAI_BASIC_AUTH)return{};try{let{CredentialsManager:o}=await import("./credentials-TNEVAUHI.js"),n=process.env.TESTMUAI_ENV==="stage"?"stage":"prod",r=new o,a=r.getActiveProfile()??"default",t={TESTMUAI_ENV:n},s=r.loadBasicAuth(a,n);if(s)return t.TESTMUAI_BASIC_AUTH=Buffer.from(`${s.username}:${s.access_key}`,"utf8").toString("base64"),t;let e=r.loadCredentials(a,n);if(e){try{let{refreshOAuthToken:l}=await import("./token-refresh-7PAPCMQK.js");await l({creds:r,profile:a,env:n,credentials:e})}catch{}let c=r.loadCredentials(a,n)??e;if(typeof c.access_token=="string"){let l=await E(n,c.access_token);return l?(t.TESTMUAI_BASIC_AUTH=l,t):(t.TESTMUAI_API_KEY=c.access_token,t)}}return{}}catch{return{}}}var _=8e3;function m(){return process.stderr.write("warn: session auth may expire during long runs \u2014 if that happens, run `kane-cli login` and retry\n"),null}async function E(o,n){if(process.env.TESTMUAI_BASE_URL)return null;try{let[{getEnvironment:r},{ControllerClient:a}]=await Promise.all([import("./config-Z4OS3HEE.js"),import("./controller-client-RD2YEMAH.js")]),t=new a(r(o).controllerBaseUrl,n),s;try{let e=await Promise.race([t.getTmsCredentials().catch(()=>null),new Promise(c=>{s=setTimeout(()=>c(null),_)})]);return typeof e?.username!="string"||!e.username||typeof e.access_key!="string"||!e.access_key?m():Buffer.from(`${e.username}:${e.access_key}`,"utf8").toString("base64")}finally{clearTimeout(s)}}catch{return m()}}export{A as a,h as b,v as c,w as d};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as $}from"./chunk-
|
|
2
|
+
import{a as $}from"./chunk-R65HNFRB.js";import{b as D}from"./chunk-4BAL4OGF.js";import{a as E}from"./chunk-NLCCBXXV.js";function U(e){return["completed","failed","ended","stopped"].includes(e.trim().toLowerCase())}function je(e){return["ended","stopped"].includes(e.trim().toLowerCase())}function q(e){return{requestId:e.requestId,objective:e.objective,status:"",turnActive:!1,scenarios:[],thinking:"",thinkingLog:[],chatLog:[],progress:0}}function Re(e){return e.pendingClarification===void 0?e:{...e,pendingClarification:void 0}}function Ce(e){return{...e,turnActive:!0,error:void 0,thinking:"",thinkingLog:[]}}function P(e,t){switch(t.type){case"thinking":return{...e,status:"thinking",thinking:e.thinking+t.delta};case"thinking_done":return{...e,thinkingLog:[...e.thinkingLog,{text:e.thinking,tookMs:t.tookMs}],thinking:""};case"progress":return{...e,progress:t.pct};case"snapshot":return{...e,scenarios:t.data.scenarios,status:t.data.status,headline:t.data.headline??e.headline};case"chat":return{...e,turnActive:!1,chatLog:[...e.chatLog,{role:"model",text:t.text}]};case"clarification":return{...e,turnActive:!1,chatLog:[...e.chatLog,{role:"model",text:t.text}],pendingClarification:t.text};case"limit":return{...e,limits:{scenarioLimit:t.scenarioLimit,perScenarioLimit:t.perScenarioLimit}};case"error":return{...e,error:t.message};case"done":return{...e,status:t.status,turnActive:!1,error:t.status==="failed"&&!e.error?"generation failed":e.error}}}function H(e,t){let n=[],i=e.type??"",d=e.status??"";if(i==="ping")return n;switch(i){case"thinking_token":typeof e.data=="string"&&n.push({type:"thinking",delta:e.data});break;case"thinking_stopped":{let r=e.data??{},o=se(r.time_taken);n.push({type:"thinking_done",text:typeof e.data=="string"?e.data:r.message??"",tookMs:o});break}case"progress":{let r=e.data??{};typeof r.progress=="number"&&n.push({type:"progress",pct:r.progress});break}case"clarification":{let r=e.data??{};typeof r.message=="string"&&n.push({type:"clarification",text:r.message});break}case"chatting_stopped":{let r=e.data??{};typeof r.message=="string"&&r.message.length>0&&n.push({type:"chat",text:r.message});break}case"limit_update":{let r=e.data??{},o=r.test_cases_limit??e.test_cases_limit,p=r.per_scenario_test_cases_limit??e.per_scenario_test_cases_limit;n.push({type:"limit",scenarioLimit:o,perScenarioLimit:p});break}case"error":{let r=typeof e.data=="string"?e.data:e.data?.message??"generation error";n.push({type:"error",message:r});break}case"request_cancelled":return n.push({type:"done",status:"stopped"}),n;case"session_ended":return n.push({type:"done",status:"ended"}),n;default:break}if(Array.isArray(e.scenarios)&&n.push({type:"snapshot",data:{requestId:t,status:d,headline:e.headline,scenarios:e.scenarios}}),d&&U(d)){let r=d.trim().toLowerCase();n.push({type:"done",status:r})}return n}function se(e){if(!e)return;let t=/^([\d.]+)(ms|s)?$/.exec(e.trim());if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return t[2]==="ms"?Math.round(n):Math.round(n*1e3)}var v=class extends Error{constructor(t){super(t),this.name="AuthError"}},M=class extends Error{constructor(t){super(t),this.name="ForbiddenError"}},I=class extends Error{constructor(t){super(t),this.name="InsufficientCreditsError"}},k=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="TransportError"}};function x(e,t){let n=t?.message??t?.error??`HTTP ${e}`;return e===401?new v(n):e===403?t?.key==="insufficient_credits"?new I(n):new M(n):new k(n)}async function*J(e){let t=e.fetchImpl??fetch,n=e.maxRetries??5,i=e.maxBackoffMs??3e4,d=e.connectTimeoutMs??1e4,r=0,o=!1;for(;;){if(e.signal.aborted)return;let p=new AbortController,a=()=>p.abort();e.signal.addEventListener("abort",a,{once:!0});let c=setTimeout(()=>p.abort(),d),g;try{g=await t(e.url,{method:"GET",headers:{Authorization:await e.authHeader(),Accept:"text/event-stream"},signal:p.signal})}catch(w){if(clearTimeout(c),e.signal.removeEventListener("abort",a),e.signal.aborted)return;if(++r>n)throw new k("SSE connect failed",w);await O(F(r,i));continue}if(clearTimeout(c),!g.ok){e.signal.removeEventListener("abort",a);let w=await oe(g);if(g.status===401&&o){if(++r>n)throw x(401,w);await O(F(r,i));continue}throw x(g.status,w)}if(!g.body)throw e.signal.removeEventListener("abort",a),new k("SSE response had no body");o=!0,r=0;let m=g.body.getReader(),h=new TextDecoder("utf-8"),b="";try{for(;;){if(e.signal.aborted){await m.cancel().catch(()=>{});return}let{done:w,value:s}=await m.read();if(w)break;b+=h.decode(s,{stream:!0});let f;for(;(f=b.indexOf(`
|
|
3
3
|
|
|
4
4
|
`))>=0;){let u=b.slice(0,f);b=b.slice(f+2);let l=ie(u);l&&(yield l)}}}catch(w){if(e.signal.aborted)return;if(++r>n)throw new k("SSE stream dropped",w);await O(F(r,i));continue}finally{e.signal.removeEventListener("abort",a)}return}}function ie(e){let t="message",n="";for(let i of e.split(`
|
|
5
|
-
`))i.startsWith("event:")?t=i.slice(6).trim():i.startsWith("data:")&&(n+=i.slice(5).trim());if(t!=="message"||!n)return null;try{let i=Buffer.from(n,"base64").toString("utf-8");return JSON.parse(i)}catch{return null}}function F(e,t){return Math.min(t,1e3*2**(e-1))}function O(e){return new Promise(t=>setTimeout(t,e))}async function oe(e){try{return await e.clone().json()}catch{return}}function W(e,t){t?.length&&(e.append("files",t.map(n=>n.fileKey).join(",")),e.append("gemini_metadata",JSON.stringify(t.map(n=>({fileData:{fileUri:n.geminiUri,mimeType:n.mimeType}})))))}function Ue(e,t={}){let n=t.fetchImpl??fetch,i=new Map,d=!0;async function r(){let s=await e.authResolver.resolve();if(!s)throw new v("unauthorized; run `kane-cli login`");return E(s.username,s.access_key)}function o(s){return`${e.baseUrl}${s}`}async function p(s){if(!s.ok){let f;try{f=await s.clone().json()}catch{f=void 0}throw x(s.status,f)}return s.json()}function a(s){let f=s?.data??s;return{request_id:f.request_id??f.id,status:f.status??""}}function c(s,f,u,l){let y=q({requestId:s,objective:f});l&&(y=P(y,{type:"snapshot",data:l}),l.status==="cleaned_up"&&(y={...y,error:"session was reaped (cleaned_up) \u2014 continuing will destructively regenerate"}));let S=new AbortController;u&&(u.aborted?S.abort():u.addEventListener("abort",()=>S.abort(),{once:!0})),i.set(s,S);let A={requestId:s,state:y,events:void 0};return A.events=(async function*(){try{let C=J({url:o(`/requests/${s}/sse`),authHeader:r,signal:S.signal,log:e.log,fetchImpl:n});for await(let L of C)for(let z of H(L,s))A.state=P(A.state,z),yield z}finally{i.delete(s)}})(),A}async function g(s,f){let u=new FormData;u.append("prompt",s.prompt),d=s.memoryEnhancement??!0,u.append("memory_enhancement",String(d)),s.scenarioLimit!==void 0&&u.append("test_scenario_limit",String(s.scenarioLimit)),s.perScenarioLimit!==void 0&&u.append("per_scenario_test_cases_limit",String(s.perScenarioLimit));let l=s.projectId??e.projectId,y=s.folderId??e.folderId;l&&u.append("project_id",l),y&&u.append("folder_id",y),W(u,s.attachments);let S=await n(o("/requests"),{method:"POST",headers:{Authorization:await r()},body:u}),A=await p(S),{request_id:C}=a(A),L=String(C);return c(L,s.prompt,f)}async function m(s,f){let u=await n(o(`/requests/${s}`),{method:"GET",headers:{Authorization:await r()}}),l=await p(u),y=l?.data??l,S={requestId:s,status:y.status??"",headline:y.headline,scenarios:Array.isArray(y.scenarios)?y.scenarios:[]};return c(s,"",f,S)}async function h(s,f,u){let l=new FormData;l.append("prompt",f),l.append("chat_enabled","true"),l.append("memory_enhancement",String(d)),u?.mappings&&l.append("mappings",JSON.stringify(u.mappings)),W(l,u?.attachments);let y=await n(o(`/requests/${s}`),{method:"PUT",headers:{Authorization:await r()},body:l});if(!y.ok){let S;try{S=await y.clone().json()}catch{}throw x(y.status,S)}}async function b(s){i.get(s)?.abort();let u=await n(o(`/requests/${s}/stop`),{method:"DELETE",headers:{Authorization:await r()}});if(!u.ok&&u.status!==404){let l;try{l=await u.clone().json()}catch{}throw x(u.status,l)}}async function w(s){i.get(s)?.abort();let u=await n(o(`/requests/${s}/end`),{method:"DELETE",headers:{Authorization:await r()}});if(!u.ok&&u.status!==404){let l;try{l=await u.clone().json()}catch{}throw x(u.status,l)}}return{start:g,attach:m,chat:h,cancel:b,end:w}}import{statSync as ae,realpathSync as G,existsSync as ce}from"fs";import{extname as ue,resolve as j,isAbsolute as pe}from"path";import{homedir as V}from"os";var de=new Set([".txt",".json",".xml",".jpg",".jpeg",".png",".gif",".bmp",".webp",".pdf",".docx",".csv",".xlsx",".mp3",".wav",".m4a",".webm",".mpeg",".mpga",".mp4",".mov"]),le=50*1024*1024,X=10;function fe(e){return e==="~"?V():e.startsWith("~/")?j(V(),e.slice(2)):e}function Ge(e,t){let n=[],i=[],d=new Set,r=[],o=(()=>{try{return G(j(t))}catch{return j(t)}})(),p=o.endsWith("/")?o:o+"/";for(let a of e){let c=fe(a),g=pe(c)?c:j(t,c);if(!ce(g)){n.push(`Not found: ${a}`);continue}let m;try{m=G(g)}catch{n.push(`Cannot resolve: ${a}`);continue}if(d.has(m))continue;let h;try{h=ae(m)}catch{n.push(`Cannot read: ${a}`);continue}if(!h.isFile()){n.push(`Not a file: ${a}`);continue}if(h.size===0){n.push(`Empty file: ${a}`);continue}let b=ue(m).toLowerCase();if(!de.has(b)){n.push(`Unsupported type ${b||"(none)"}: ${a}`);continue}if(h.size>le){n.push(`Too large (>50MB): ${a}`);continue}m!==o&&!m.startsWith(p)&&i.push(`Outside working dir: ${a}`),d.add(m),r.push(m)}return r.length>X&&n.push(`Too many files: ${r.length} (max ${X})`),{ok:n.length?[]:r,errors:n,warnings:i}}var B=class extends Error{constructor(n){super(n.join("; "));this.errors=n;this.name="AttachmentValidationError"}};async function Xe(e){let{promptText:t,filePaths:n,cwd:i,scenarios:d,isRefine:r,conn:o,deps:p}=e,{ok:a,errors:c,warnings:g}=p.validate(n,i);if(c.length)throw new B(c);e.onValidated?.();let m=a.length?await p.upload(o,a,p.onUpload):[],h=r?p.buildMappings(t,d):void 0;return{promptText:t,mappings:h,attachments:m,warnings:g}}import{readFile as me}from"fs/promises";import{basename as K}from"path";async function ge(e){let t=await e.authResolver.resolve();if(!t)throw new v("unauthorized; run `kane-cli login`");return E(t.username,t.access_key)}async function he(e,t,n={}){let i=n.fetchImpl??fetch,d=await me(t),r=K(t),o=new FormData;o.append("file",new Blob([d]),r),o.append("source","omniBox"),o.append("geminiFileUpload","true");let p=await i(`${e.tmsBaseUrl}/v1/attachment`,{method:"POST",headers:{Authorization:await ge(e)},body:o,signal:n.signal});if(!p.ok){let h;try{h=await p.clone().json()}catch{}throw x(p.status,h)}let a=await p.json(),c=a?.data??a,g=c?.gemini_response?.uri,m=c?.gemini_response?.mimeType;if(!c?.file_key||!g){let h=c&&typeof c=="object"?Object.keys(c).join(","):typeof c,b=(()=>{try{return JSON.stringify(c).slice(0,500)}catch{return"<unserializable>"}})();throw new Error(`attachment upload for ${r} returned no file_key/gemini uri \u2014 status ${p.status}, body keys: [${h}], raw: ${b}`)}return{fileName:c.file_name??r,fileKey:c.file_key,geminiUri:g,mimeType:m??"application/octet-stream"}}async function tt(e,t,n,i={}){let d=[];for(let r=0;r<t.length;r++){if(i.signal?.aborted)throw Object.assign(new Error("upload aborted"),{name:"AbortError"});let o=K(t[r]);n?.({file:o,index:r+1,total:t.length,status:"uploading"});try{d.push(await he(e,t[r],i)),n?.({file:o,index:r+1,total:t.length,status:"done"})}catch(p){throw n?.({file:o,index:r+1,total:t.length,status:"failed"}),p}}return d}var ye=/@([sS])(\d+)\.([cC])(\d+)/g,be=/@([sS])(\d+)(?!\d)(?!\.[cC]\d)/g;function rt(e,t){let n={},i={};for(let d of e.matchAll(ye)){let r=Number(d[2]),o=Number(d[4]),p=t[r-1];if(!p)continue;n[`s${r}`]=String(p.id);let a=p.test_cases??[];if(a[o-1])for(let c=0;c<o;c++){let g=a[c];g&&(i[`s${r}.c${c+1}`]=String(g.id))}}for(let d of e.matchAll(be)){let r=Number(d[2]),o=t[r-1];o&&(n[`s${r}`]=String(o.id))}if(!(Object.keys(n).length===0&&Object.keys(i).length===0))return{scenario:n,testcase:i}}function R(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(n==null||typeof n!="object")return[];let i=n;if(typeof i.step!="string")return[];let d=typeof i.expected_result=="string"?i.expected_result:typeof i.outcome=="string"?i.outcome:"";t.push({step:i.step,expected:d})}return t}var we=30,Se=300;function Z(){return{mode:"testing",max_steps:we,timeout:Se,variables:{}}}function Q(e){return e.title??`Test case ${e.id}`}function ct(e,t){return $({frontmatter:Z(),heading:Q(t),steps:e.sub_objectives.map(n=>n.objective)})}function Y(e){let t=R(e.manual_steps).map(n=>n.step);return $({frontmatter:Z(),heading:Q(e),steps:t})}import{mkdtempSync as xe,mkdirSync as N,writeFileSync as ee,rmSync as te,renameSync as _e,existsSync as ne,readFileSync as ve}from"fs";import{join as _,resolve as ke}from"path";async function ft(e,t,n,i=Y){(n.redirectBareCwd??!0)&&ke(t)===process.cwd()&&(t=_(t,".testmuai","tests"));let d=T(e.objective)??e.headline,r=T(n.suiteName)??`${T(re(d,4))??"tcg"}-${e.requestId}`,o=r,p=_(t,r);ne(p)&&!Te(p,e.requestId)&&(o=`${r}-${e.requestId}`);let a=_(t,o),c=[],g=new Map;for(let h of e.scenarios){let b=(h.test_cases??[]).filter(Ae);if(b.length===0)continue;let w=T(Ee(h.scode))??T(h.sid)??`s${h.id}`,s=g.get(w)??new Set;g.set(w,s);for(let f of b){let u=T(re(f.title,5))??"case",l=`${u}_test.md`;for(let y=2;s.has(l);y++)l=`${u}-${y}_test.md`;s.add(l),c.push({dir:w,file:l,tc:f})}}if(c.length===0)return{suiteDir:a,paths:[],warning:"no functional test cases generated"};N(t,{recursive:!0});let m=xe(_(t,".tcg-tmp-"));try{N(_(m,"helpers"),{recursive:!0}),ee(_(m,".tcg-suite.json"),JSON.stringify({requestId:e.requestId,suiteName:o}));let h=[],b=new Set;for(let s of c){let f=_(m,s.dir);b.has(f)||(N(f,{recursive:!0}),b.add(f));let u=_(f,s.file);ee(u,i(s.tc)),h.push(u)}ne(a)&&te(a,{recursive:!0,force:!0}),_e(m,a);let w=h.map(s=>s.replace(m,a));return{suiteDir:a,paths:w}}catch(h){try{te(m,{recursive:!0,force:!0})}catch{}throw h}}function Ae(e){return(e.category??"").trim().toLowerCase()==="functional"}function Te(e,t){try{return JSON.parse(ve(_(e,".tcg-suite.json"),"utf-8"))?.requestId===t}catch{return!1}}function T(e){return e&&e.length>0?e:void 0}function re(e,t){return e?e.toLowerCase().replace(/[^a-z0-9]+/g," ").trim().split(/\s+/).filter(Boolean).slice(0,t).join("-"):""}function Ee(e){return e?e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,""):""}function ht(e){let t=[];e.title&&t.push(e.title),e.description&&t.push("",e.description);let n=R(e.manual_steps);return n.length>0&&(t.push("","Steps:"),n.forEach((i,d)=>{t.push(`${d+1}. ${i.step}`)})),t.join(`
|
|
5
|
+
`))i.startsWith("event:")?t=i.slice(6).trim():i.startsWith("data:")&&(n+=i.slice(5).trim());if(t!=="message"||!n)return null;try{let i=Buffer.from(n,"base64").toString("utf-8");return JSON.parse(i)}catch{return null}}function F(e,t){return Math.min(t,1e3*2**(e-1))}function O(e){return new Promise(t=>setTimeout(t,e))}async function oe(e){try{return await e.clone().json()}catch{return}}function W(e,t){t?.length&&(e.append("files",t.map(n=>n.fileKey).join(",")),e.append("gemini_metadata",JSON.stringify(t.map(n=>({fileData:{fileUri:n.geminiUri,mimeType:n.mimeType}})))))}function Ue(e,t={}){let n=t.fetchImpl??fetch,i=new Map,d=!0;async function r(){let s=await e.authResolver.resolve();if(!s)throw new v("unauthorized; run `kane-cli login`");return E(s.username,s.access_key)}function o(s){return`${e.baseUrl}${s}`}async function p(s){if(!s.ok){let f;try{f=await s.clone().json()}catch{f=void 0}throw x(s.status,f)}return s.json()}function a(s){let f=s?.data??s;return{request_id:f.request_id??f.id,status:f.status??""}}function c(s,f,u,l){let y=q({requestId:s,objective:f});l&&(y=P(y,{type:"snapshot",data:l}),l.status==="cleaned_up"&&(y={...y,error:"session was reaped (cleaned_up) \u2014 continuing will destructively regenerate"}));let S=new AbortController;u&&(u.aborted?S.abort():u.addEventListener("abort",()=>S.abort(),{once:!0})),i.set(s,S);let A={requestId:s,state:y,events:void 0};return A.events=(async function*(){try{let C=J({url:o(`/requests/${s}/sse`),authHeader:r,signal:S.signal,log:e.log,fetchImpl:n});for await(let L of C)for(let z of H(L,s))A.state=P(A.state,z),yield z}finally{i.delete(s)}})(),A}async function g(s,f){let u=new FormData;u.append("prompt",s.prompt),d=s.memoryEnhancement??!0,u.append("memory_enhancement",String(d)),s.scenarioLimit!==void 0&&u.append("test_scenario_limit",String(s.scenarioLimit)),s.perScenarioLimit!==void 0&&u.append("per_scenario_test_cases_limit",String(s.perScenarioLimit));let l=s.projectId??e.projectId,y=s.folderId??e.folderId;l&&u.append("project_id",l),y&&u.append("folder_id",y),W(u,s.attachments);let S=await n(o("/requests"),{method:"POST",headers:{Authorization:await r()},body:u}),A=await p(S),{request_id:C}=a(A),L=String(C);return c(L,s.prompt,f)}async function m(s,f){let u=await n(o(`/requests/${s}`),{method:"GET",headers:{Authorization:await r()}}),l=await p(u),y=l?.data??l,S={requestId:s,status:y.status??"",headline:y.headline,scenarios:Array.isArray(y.scenarios)?y.scenarios:[]};return c(s,"",f,S)}async function h(s,f,u){let l=new FormData;l.append("prompt",f),l.append("chat_enabled","true"),l.append("memory_enhancement",String(d)),u?.mappings&&l.append("mappings",JSON.stringify(u.mappings)),W(l,u?.attachments);let y=await n(o(`/requests/${s}`),{method:"PUT",headers:{Authorization:await r()},body:l});if(!y.ok){let S;try{S=await y.clone().json()}catch{}throw x(y.status,S)}}async function b(s){i.get(s)?.abort();let u=await n(o(`/requests/${s}/stop`),{method:"DELETE",headers:{Authorization:await r()}});if(!u.ok&&u.status!==404){let l;try{l=await u.clone().json()}catch{}throw x(u.status,l)}}async function w(s){i.get(s)?.abort();let u=await n(o(`/requests/${s}/end`),{method:"DELETE",headers:{Authorization:await r()}});if(!u.ok&&u.status!==404){let l;try{l=await u.clone().json()}catch{}throw x(u.status,l)}}return{start:g,attach:m,chat:h,cancel:b,end:w}}import{statSync as ae,realpathSync as G,existsSync as ce}from"fs";import{extname as ue,resolve as j,isAbsolute as pe}from"path";import{homedir as V}from"os";var de=new Set([".txt",".md",".json",".xml",".jpg",".jpeg",".png",".gif",".bmp",".webp",".pdf",".docx",".csv",".xlsx",".mp3",".wav",".m4a",".webm",".mpeg",".mpga",".mp4",".mov"]),le=50*1024*1024,X=10;function fe(e){return e==="~"?V():e.startsWith("~/")?j(V(),e.slice(2)):e}function Ge(e,t){let n=[],i=[],d=new Set,r=[],o=(()=>{try{return G(j(t))}catch{return j(t)}})(),p=o.endsWith("/")?o:o+"/";for(let a of e){let c=fe(a),g=pe(c)?c:j(t,c);if(!ce(g)){n.push(`Not found: ${a}`);continue}let m;try{m=G(g)}catch{n.push(`Cannot resolve: ${a}`);continue}if(d.has(m))continue;let h;try{h=ae(m)}catch{n.push(`Cannot read: ${a}`);continue}if(!h.isFile()){n.push(`Not a file: ${a}`);continue}if(h.size===0){n.push(`Empty file: ${a}`);continue}let b=ue(m).toLowerCase();if(!de.has(b)){n.push(`Unsupported type ${b||"(none)"}: ${a}`);continue}if(h.size>le){n.push(`Too large (>50MB): ${a}`);continue}m!==o&&!m.startsWith(p)&&i.push(`Outside working dir: ${a}`),d.add(m),r.push(m)}return r.length>X&&n.push(`Too many files: ${r.length} (max ${X})`),{ok:n.length?[]:r,errors:n,warnings:i}}var B=class extends Error{constructor(n){super(n.join("; "));this.errors=n;this.name="AttachmentValidationError"}};async function Xe(e){let{promptText:t,filePaths:n,cwd:i,scenarios:d,isRefine:r,conn:o,deps:p}=e,{ok:a,errors:c,warnings:g}=p.validate(n,i);if(c.length)throw new B(c);e.onValidated?.();let m=a.length?await p.upload(o,a,p.onUpload):[],h=r?p.buildMappings(t,d):void 0;return{promptText:t,mappings:h,attachments:m,warnings:g}}import{readFile as me}from"fs/promises";import{basename as K}from"path";async function ge(e){let t=await e.authResolver.resolve();if(!t)throw new v("unauthorized; run `kane-cli login`");return E(t.username,t.access_key)}async function he(e,t,n={}){let i=n.fetchImpl??fetch,d=await me(t),r=K(t),o=new FormData;o.append("file",new Blob([d]),r),o.append("source","omniBox"),o.append("geminiFileUpload","true");let p=await i(`${e.tmsBaseUrl}/v1/attachment`,{method:"POST",headers:{Authorization:await ge(e)},body:o,signal:n.signal});if(!p.ok){let h;try{h=await p.clone().json()}catch{}throw x(p.status,h)}let a=await p.json(),c=a?.data??a,g=c?.gemini_response?.uri,m=c?.gemini_response?.mimeType;if(!c?.file_key||!g){let h=c&&typeof c=="object"?Object.keys(c).join(","):typeof c,b=(()=>{try{return JSON.stringify(c).slice(0,500)}catch{return"<unserializable>"}})();throw new Error(`attachment upload for ${r} returned no file_key/gemini uri \u2014 status ${p.status}, body keys: [${h}], raw: ${b}`)}return{fileName:c.file_name??r,fileKey:c.file_key,geminiUri:g,mimeType:m??"application/octet-stream"}}async function tt(e,t,n,i={}){let d=[];for(let r=0;r<t.length;r++){if(i.signal?.aborted)throw Object.assign(new Error("upload aborted"),{name:"AbortError"});let o=K(t[r]);n?.({file:o,index:r+1,total:t.length,status:"uploading"});try{d.push(await he(e,t[r],i)),n?.({file:o,index:r+1,total:t.length,status:"done"})}catch(p){throw n?.({file:o,index:r+1,total:t.length,status:"failed"}),p}}return d}var ye=/@([sS])(\d+)\.([cC])(\d+)/g,be=/@([sS])(\d+)(?!\d)(?!\.[cC]\d)/g;function rt(e,t){let n={},i={};for(let d of e.matchAll(ye)){let r=Number(d[2]),o=Number(d[4]),p=t[r-1];if(!p)continue;n[`s${r}`]=String(p.id);let a=p.test_cases??[];if(a[o-1])for(let c=0;c<o;c++){let g=a[c];g&&(i[`s${r}.c${c+1}`]=String(g.id))}}for(let d of e.matchAll(be)){let r=Number(d[2]),o=t[r-1];o&&(n[`s${r}`]=String(o.id))}if(!(Object.keys(n).length===0&&Object.keys(i).length===0))return{scenario:n,testcase:i}}function R(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(n==null||typeof n!="object")return[];let i=n;if(typeof i.step!="string")return[];let d=typeof i.expected_result=="string"?i.expected_result:typeof i.outcome=="string"?i.outcome:"";t.push({step:i.step,expected:d})}return t}var we=30,Se=300;function Z(){return{mode:"testing",max_steps:we,timeout:Se,variables:{}}}function Q(e){return e.title??`Test case ${e.id}`}function ct(e,t){return $({frontmatter:Z(),heading:Q(t),steps:e.sub_objectives.map(n=>n.objective)})}function Y(e){let t=R(e.manual_steps).map(n=>n.step);return $({frontmatter:Z(),heading:Q(e),steps:t})}import{mkdtempSync as xe,mkdirSync as N,writeFileSync as ee,rmSync as te,renameSync as _e,existsSync as ne,readFileSync as ve}from"fs";import{join as _,resolve as ke}from"path";async function ft(e,t,n,i=Y){(n.redirectBareCwd??!0)&&ke(t)===process.cwd()&&(t=_(t,".testmuai","tests"));let d=T(e.objective)??e.headline,r=T(n.suiteName)??`${T(re(d,4))??"tcg"}-${e.requestId}`,o=r,p=_(t,r);ne(p)&&!Te(p,e.requestId)&&(o=`${r}-${e.requestId}`);let a=_(t,o),c=[],g=new Map;for(let h of e.scenarios){let b=(h.test_cases??[]).filter(Ae);if(b.length===0)continue;let w=T(Ee(h.scode))??T(h.sid)??`s${h.id}`,s=g.get(w)??new Set;g.set(w,s);for(let f of b){let u=T(re(f.title,5))??"case",l=`${u}_test.md`;for(let y=2;s.has(l);y++)l=`${u}-${y}_test.md`;s.add(l),c.push({dir:w,file:l,tc:f})}}if(c.length===0)return{suiteDir:a,paths:[],warning:"no functional test cases generated"};N(t,{recursive:!0});let m=xe(_(t,".tcg-tmp-"));try{N(_(m,"helpers"),{recursive:!0}),ee(_(m,".tcg-suite.json"),JSON.stringify({requestId:e.requestId,suiteName:o}));let h=[],b=new Set;for(let s of c){let f=_(m,s.dir);b.has(f)||(N(f,{recursive:!0}),b.add(f));let u=_(f,s.file);ee(u,i(s.tc)),h.push(u)}ne(a)&&te(a,{recursive:!0,force:!0}),_e(m,a);let w=h.map(s=>s.replace(m,a));return{suiteDir:a,paths:w}}catch(h){try{te(m,{recursive:!0,force:!0})}catch{}throw h}}function Ae(e){return(e.category??"").trim().toLowerCase()==="functional"}function Te(e,t){try{return JSON.parse(ve(_(e,".tcg-suite.json"),"utf-8"))?.requestId===t}catch{return!1}}function T(e){return e&&e.length>0?e:void 0}function re(e,t){return e?e.toLowerCase().replace(/[^a-z0-9]+/g," ").trim().split(/\s+/).filter(Boolean).slice(0,t).join("-"):""}function Ee(e){return e?e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,""):""}function ht(e){let t=[];e.title&&t.push(e.title),e.description&&t.push("",e.description);let n=R(e.manual_steps);return n.length>0&&(t.push("","Steps:"),n.forEach((i,d)=>{t.push(`${d+1}. ${i.step}`)})),t.join(`
|
|
6
6
|
`).trim()}function wt(e){return{mode:"bifurcate",objective:e.objective,model:e.model,session_id:e.sessionId,run_index:0,width:0,height:0,stream:!0,variables:e.variables,...e.auth}}async function St(e,t,n){let i=D(e,t),d=()=>i.cancel();n?.addEventListener("abort",d);let r=null,o=null;try{for await(let p of i.events)if(p.type==="bifurcation_result"){let a=p,c=(a.sub_objectives??[]).map((g,m)=>({...g,sequence_index:m}));r={sub_objectives:c,extracted_variables:a.extracted_variables??{},total_flows:c.length,is_single_flow:c.length<=1,credits_consumed:a.credits_consumed??0}}else p.type==="error"&&(o=p.message??"bifurcation error")}finally{n?.removeEventListener("abort",d),i.cancel()}if(r)return r;throw new Error(o??"bifurcation produced no result")}export{U as a,je as b,q as c,Re as d,Ce as e,P as f,v as g,Ue as h,R as i,ct as j,Y as k,ft as l,Ae as m,ht as n,wt as o,St as p,de as q,Ge as r,B as s,Xe as t,tt as u,rt as v};
|