@testmuai/kane-cli 0.4.9 → 0.5.0
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/{ChromeProfilePicker-BOTCHMXH.js → ChromeProfilePicker-PIWZY4WH.js} +1 -1
- package/dist/{CliFeedbackPrompt-BV4VVYOY.js → CliFeedbackPrompt-URXCHBZ5.js} +1 -1
- package/dist/{CliUploadProgress-Y4H43W5T.js → CliUploadProgress-DMH3C3UZ.js} +1 -1
- package/dist/{ConfigView-JPBD47MS.js → ConfigView-NWNDNTKW.js} +1 -1
- package/dist/EvidenceViewOffer-HEBQ7C4H.js +2 -0
- package/dist/FolderPicker-5S23OTSY.js +2 -0
- package/dist/HelpView-YYKTP4JH.js +2 -0
- package/dist/{InfoBox-3ZLQZGUE.js → InfoBox-FPAWQZGQ.js} +1 -1
- package/dist/{LinksBox-UYMOQGSW.js → LinksBox-O5ZFYSK2.js} +1 -1
- package/dist/{ProfilesView-YUMYSOZ4.js → ProfilesView-SPECXHZE.js} +1 -1
- package/dist/{ProjectPicker-CJVGBY42.js → ProjectPicker-ANJ6NGNY.js} +1 -1
- package/dist/{SaveSessionPrompt-DFVUWTOK.js → SaveSessionPrompt-W2GWELOP.js} +1 -1
- package/dist/SingleShotApp-5TYM356H.js +2 -0
- package/dist/{SummaryBox-3VIRYWQA.js → SummaryBox-DJUDYML7.js} +1 -1
- package/dist/TestMdRunView-BIVXQE54.js +2 -0
- package/dist/{WhoamiView-GMM4V7ZV.js → WhoamiView-DH25ZD4C.js} +1 -1
- package/dist/{changelog-FNJ4P2IF.js → changelog-RCKUVBFL.js} +1 -1
- package/dist/{chunk-LPUQ4HWQ.js → chunk-2WVKOZ6W.js} +1 -1
- package/dist/chunk-2YQ6TW77.js +82 -0
- package/dist/chunk-3FN66LTP.js +3 -0
- package/dist/{chunk-FN6ZRV4C.js → chunk-4IOOBSNB.js} +1 -1
- package/dist/chunk-54TKNWXF.js +5 -0
- package/dist/{chunk-JBOXYLDH.js → chunk-5MTRNUAK.js} +1 -1
- package/dist/{chunk-WEPNJVBA.js → chunk-6E5UYAEB.js} +1 -1
- package/dist/{chunk-JQXARCVE.js → chunk-7AEC572G.js} +1 -1
- package/dist/{chunk-UJDIXFEE.js → chunk-7IBNOVML.js} +1 -1
- package/dist/chunk-7KDNH6JP.js +10 -0
- package/dist/{chunk-DKGNV3VP.js → chunk-7YRNLGUT.js} +1 -1
- package/dist/chunk-AFCEFOIK.js +4 -0
- package/dist/{chunk-2J3VB6DW.js → chunk-AM5WZPPY.js} +1 -1
- package/dist/{chunk-6PBX7QI7.js → chunk-C4LYBQT3.js} +2 -2
- package/dist/chunk-DJL47DYJ.js +8 -0
- package/dist/chunk-DTM4ZMMJ.js +102 -0
- package/dist/chunk-ELBPBHTE.js +26 -0
- package/dist/{chunk-RJFHOZG6.js → chunk-GEAWRRR7.js} +1 -1
- package/dist/{chunk-CY4HAOSP.js → chunk-H6QJ4YU7.js} +1 -1
- package/dist/chunk-HFXQU7UZ.js +2 -0
- package/dist/{chunk-WKJY6TRR.js → chunk-HZ46P2GR.js} +1 -1
- package/dist/chunk-I4B2KY4X.js +3 -0
- package/dist/{chunk-LZUTY7XS.js → chunk-IECUFWIZ.js} +1 -1
- package/dist/{chunk-7NTOV5DV.js → chunk-IU53F4ZV.js} +1 -1
- package/dist/chunk-J75KVNX5.js +18 -0
- package/dist/{chunk-AH36DUIX.js → chunk-LOQV5GME.js} +1 -1
- package/dist/chunk-MUPHP5W6.js +27 -0
- package/dist/chunk-NAYAVVTP.js +6 -0
- package/dist/chunk-NFOBDHZK.js +147 -0
- package/dist/{chunk-CLRWPXDJ.js → chunk-NLIOFVMP.js} +1 -1
- package/dist/chunk-P5XBCJYQ.js +7 -0
- package/dist/chunk-PISZLYS5.js +4 -0
- package/dist/{chunk-IO3PBDKN.js → chunk-PTP3WS3N.js} +1 -1
- package/dist/chunk-Q2I65L2W.js +6 -0
- package/dist/chunk-QCEWUUE6.js +55 -0
- package/dist/chunk-QO6PAA7Q.js +17 -0
- package/dist/{chunk-42WWGBRK.js → chunk-R5RHRG65.js} +1 -1
- package/dist/chunk-T4PKTWZ6.js +17 -0
- package/dist/{chunk-HYOST7EA.js → chunk-THEZSXZM.js} +1 -1
- package/dist/{chunk-VSJAOEBB.js → chunk-TJWU7DOO.js} +1 -1
- package/dist/{chunk-FTMJTGT4.js → chunk-TPG2T5GH.js} +1 -1
- package/dist/{chunk-HPJP7NES.js → chunk-UOGJUJCF.js} +1 -1
- package/dist/{chunk-MUZCEGJD.js → chunk-V2GYBVSM.js} +1 -1
- package/dist/{chunk-KLVCLGHX.js → chunk-XDERMCAU.js} +1 -1
- package/dist/chunk-Y44AETOW.js +2 -0
- package/dist/{chunk-QMAHNXS6.js → chunk-YCNCW4O4.js} +1 -1
- package/dist/{chunk-GBTPZGJB.js → chunk-YSIYPC4R.js} +1 -1
- package/dist/{chunk-JHSSBES2.js → chunk-ZWAZ4QU4.js} +1 -1
- package/dist/credentials-52QRPGET.js +2 -0
- package/dist/evidence-O4AON5FU.js +2 -0
- package/dist/exit-manager-IUHAXFJ6.js +2 -0
- package/dist/{generate-headless-ZRRQT56R.js → generate-headless-WG6ZPINI.js} +2 -2
- package/dist/index.js +75 -39
- package/dist/list-commands-VJAL4J3O.js +2 -0
- package/dist/login-flow-VZ2MITFA.js +2 -0
- package/dist/persist-recorded-session-XKPZX7HW.js +3 -0
- package/dist/pipeline-CADTHPDV.js +2 -0
- package/dist/{recording-banner-P6EKDS2Y.js → recording-banner-2TNKQHP2.js} +1 -1
- package/dist/require-project-folder-SJG5FQY6.js +2 -0
- package/dist/run-test-md-INJKPE2I.js +13 -0
- package/dist/{skill-installer-SU52XOIT.js → skill-installer-M6AREQQW.js} +1 -1
- package/dist/tcg-generate-VKFXR5JT.js +2 -0
- package/dist/testmd-actions-4QLHD74A.js +2 -0
- package/dist/{tms-client-NNYXLXZK.js → tms-client-VD3B3SMU.js} +1 -1
- package/dist/token-refresh-2HKIYD4Y.js +2 -0
- package/dist/{validate-basic-EKSOPOMF.js → validate-basic-FO7C2URG.js} +1 -1
- package/dist/{version-check-4K4JHG7B.js → version-check-PHZX5WS7.js} +1 -1
- package/package.json +8 -6
- package/dist/FolderPicker-M4RFRBYV.js +0 -2
- package/dist/HelpView-ZZYE2TKZ.js +0 -2
- package/dist/SingleShotApp-IOEEYVGJ.js +0 -2
- package/dist/TestMdRunView-MRSDDMSF.js +0 -2
- package/dist/chunk-3UCNDPTN.js +0 -2
- package/dist/chunk-7N5H4KTV.js +0 -5
- package/dist/chunk-AH4AXJML.js +0 -2
- package/dist/chunk-BH6EP2LD.js +0 -85
- package/dist/chunk-DXJ5FL25.js +0 -17
- package/dist/chunk-JO3QZB6D.js +0 -6
- package/dist/chunk-LJDFBQFR.js +0 -17
- package/dist/chunk-LOIRZFV3.js +0 -10
- package/dist/chunk-MDBXYXSC.js +0 -2
- package/dist/chunk-PUU7A26K.js +0 -11
- package/dist/chunk-QW5G7TX3.js +0 -60
- package/dist/chunk-SEU6OXMD.js +0 -6
- package/dist/chunk-UVBE3JJV.js +0 -103
- package/dist/chunk-XA7UFTB7.js +0 -27
- package/dist/chunk-YK63DTUC.js +0 -20
- package/dist/exit-manager-V2NW7A7U.js +0 -2
- package/dist/list-commands-M3JL6XBB.js +0 -2
- package/dist/login-flow-DOAIDKIV.js +0 -2
- package/dist/persist-recorded-session-3I4KMEXA.js +0 -3
- package/dist/pipeline-34CX3UBO.js +0 -2
- package/dist/require-project-folder-SEMMD3EG.js +0 -2
- package/dist/run-test-md-PXG4RFDI.js +0 -14
- package/dist/tcg-generate-5T6S2E7L.js +0 -2
- package/dist/testmd-actions-N7VS4FS6.js +0 -2
- package/dist/token-refresh-LSHPT46T.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i}from"./chunk-C4LYBQT3.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-7KDNH6JP.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-IECUFWIZ.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";export{d as emitNdjson,b as filterByName,g as formatAuthResolutionError,c as paginate,a as parsePagination,i as registerListCommands,e as renderTable,f as resolveTmsBasicAuth,h as validateCreateName};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a}from"./chunk-DTM4ZMMJ.js";import"./chunk-3FN66LTP.js";import"./chunk-GEAWRRR7.js";import"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-IECUFWIZ.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";export{a as LoginFlow};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{e as h}from"./chunk-P5XBCJYQ.js";import{a as m,b as I,k as S,o as _}from"./chunk-Q2I65L2W.js";import"./chunk-NFOBDHZK.js";import{a as f}from"./chunk-YCNCW4O4.js";import"./chunk-L5LI2JF4.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";async function v(e,s={}){e.flushRecorder();let o=e.recorder?.lastWrittenPath??null;if(!o)return e.log("info","PERSIST_SKIPPED","No recorded path \u2014 recorder.flush no-op",{reason:e.sessionName?"recorder_flush_failed":"no_session_name",session_name:e.sessionName}),null;let p;try{p=_(o)}catch(t){throw e.log("error","PERSIST_RESOLVE_FAILED","resolveTestMd threw",{error:t.message,recorded_path:o}),t}let i=e.getRunsAsStepRecords(),u=e.getFlows(),a=[],c=0;for(let t=0;t<i.length;t++){let r=i[t],l=u.slice(c,c+r.totalRunDirs);c+=r.totalRunDirs;let g=l.find(n=>n.status==="failed"||n.status==="error"),T=g?"failed":l.length===0?"skipped":"passed";a.push({rootStepIndex:t+1,status:T,duration_s:l.reduce((n,E)=>n+(E.duration??0),0),reason:g?.reason})}let P=a.some(t=>t.status==="failed")?"failed":"passed",D=new f().load().code_export?.language==="javascript"?"javascript":"python",d=I(o);e.log("info","PERSIST_START","Building staging dir",{recorded_path:o,output_dir:d,session_dir:e.sessionDir,step_count:i.length,flow_count:u.length});try{await h({resolvedTest:p,sessionDir:e.sessionDir,stepRunRecords:i,outcomes:a,overallStatus:P,startedISO:e.startedAt,durationS:a.reduce((t,r)=>t+(r.duration_s??0),0),sessionId:e.sessionId,commitId:e.sessionId,tmsIds:{testId:e.testId??void 0,testcaseId:s.testcaseId,projectId:s.projectId,folderId:s.folderId,orgId:s.orgId??e.orgId??void 0,sessionName:e.sessionName??m(o)},codeExportDir:s.codeExportDir,codeExportLanguage:D,packTestDir:s.packTestDir}),e.log("info","PERSIST_STAGING_OK","Staging dir built",{output_dir:d}),S(d),e.log("info","PERSIST_OK","Persist complete",{output_dir:d})}catch(t){let r=t;e.log("error","PERSIST_FAILED","staging build / atomic replace failed",{error:r.message,stack:r.stack,output_dir:d}),process.stderr.write(`[persist] staging build / atomic replace failed: ${r.message}
|
|
3
|
+
`)}return{recordedTestPath:o,outputDir:d}}export{v as persistRecordedSession};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a,b,c}from"./chunk-54TKNWXF.js";import"./chunk-2YQ6TW77.js";import"./chunk-DJL47DYJ.js";import"./chunk-NFOBDHZK.js";import"./chunk-WAOCHXJ5.js";import"./chunk-L5LI2JF4.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";export{c as UploadPipeline,b as packPresignEntry,a as readPackForUpload};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
2
|
import{a as n}from"./chunk-3MSXQU2C.js";import"./chunk-UR6MHSHU.js";function p(t){let s=t.sessionName!==null,e={type:"recording_state",enabled:!0,session_id:t.sessionId,persist:s};return t.sessionName&&(e.session_name=t.sessionName),t.testPath&&(e.test_path=t.testPath),t.outputPath&&(e.output_path=t.outputPath),e}async function g(t){if(t.isAgent){process.stdout.write(JSON.stringify(p(t))+`
|
|
3
|
-
`);return}let s=(await import("./react-QWOAB3TB.js")).default,{render:e,useApp:a}=await import("./build-JIKYOZUH.js"),{useEffect:o}=s,{InfoBox:r}=await import("./InfoBox-
|
|
3
|
+
`);return}let s=(await import("./react-QWOAB3TB.js")).default,{render:e,useApp:a}=await import("./build-JIKYOZUH.js"),{useEffect:o}=s,{InfoBox:r}=await import("./InfoBox-FPAWQZGQ.js"),u=t.sessionName?[{label:"session",value:t.sessionName},{label:"test",value:n(t.testPath??"")},{label:"output",value:n(t.outputPath??"")}]:[{label:"session",value:"ephemeral"},{label:"note",value:"use /name <name> to persist this session"}];function l(){let{exit:i}=a();return o(()=>{let c=setTimeout(()=>i(),50);return()=>clearTimeout(c)},[i]),s.createElement(r,{title:"Recording",titleColor:"#ff9500",rows:u})}await e(s.createElement(l),{stdout:process.stderr}).waitUntilExit()}export{p as buildRecordingStateEvent,g as printRecordingBanner};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g}from"./chunk-QO6PAA7Q.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-VE3SUJMA.js";import"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";export{d as buildAutoDefaultAnnouncement,f as buildAutoDefaultedEvent,e as buildAutoDefaultedNdjson,c as buildRemediationMessage,b as decideGateAction,a as loadCachedIds,g as requireProjectFolder};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as A}from"./chunk-I4B2KY4X.js";import{E as M,F as K,G as H,H as V,I as Y}from"./chunk-QCEWUUE6.js";import{a as k,b as L}from"./chunk-J75KVNX5.js";import{a as h,b as E}from"./chunk-TPG2T5GH.js";import"./chunk-P5XBCJYQ.js";import{o as _}from"./chunk-Q2I65L2W.js";import"./chunk-C5UNZ6ZY.js";import"./chunk-S3DAAAE5.js";import"./chunk-54TKNWXF.js";import"./chunk-2YQ6TW77.js";import"./chunk-DJL47DYJ.js";import"./chunk-NFOBDHZK.js";import{c as R}from"./chunk-T4PKTWZ6.js";import{a as x}from"./chunk-YCNCW4O4.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-L5LI2JF4.js";import"./chunk-PISZLYS5.js";import"./chunk-NAYAVVTP.js";import{e as b,f as T,g as S}from"./chunk-7KDNH6JP.js";import"./chunk-QO6PAA7Q.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-VE3SUJMA.js";import"./chunk-4IOOBSNB.js";import"./chunk-GEAWRRR7.js";import{a as C}from"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-E47GFYXA.js";import{a as v}from"./chunk-IECUFWIZ.js";import"./chunk-HFXQU7UZ.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";import{resolve as U}from"path";import{existsSync as D}from"fs";function O(){return{register:(n,r)=>b(n,r),deregister:n=>T(n),cleanup:(n,r)=>S(n,r),remoteLogger:null}}async function le(n,r){let t=U(n);if(!D(t))return process.stderr.write(`error: file not found: ${t}
|
|
3
|
+
`),2;k(t);let i=!process.stdin.isTTY||!!r.agent,c=O(),a;try{a=_(t)}catch(e){return process.stderr.write(`error: ${e.message}
|
|
4
|
+
`),2}if(a.steps.length===0)return process.stderr.write(`info: no steps in ${t}; nothing to run.
|
|
5
|
+
`),0;let s;try{s=G(r)}catch(e){if(e instanceof m)return process.stderr.write(e.message),e.exitCode;throw e}let o=new v,l=new x,u=!!(r.username&&r.accessKey);await L({isInteractive:!!process.stdin.isTTY&&!r.agent&&!u,creds:o,config:l});let I=o.getActiveProfile()??"default",f=r.env??void 0??o.getDefaultEnv()??"prod",N=C(f),j="v16-alpha",p;try{p=await E({creds:o,env:f,usernameFlag:r.username,accessKeyFlag:r.accessKey,log:()=>{}})}catch(e){return e instanceof h&&e.code==="not_authenticated"?process.stderr.write(`error: Not authenticated. Choose one:
|
|
6
|
+
\u2022 Pass credentials inline: --username <user> --access-key <key>
|
|
7
|
+
\u2022 Run 'kane-cli login --oauth' (browser-based)
|
|
8
|
+
\u2022 Run 'kane-cli login --username <user> --access-key <key>'
|
|
9
|
+
`):e instanceof h&&e.code==="refresh_failed"?process.stderr.write(`error: Token refresh failed. Run 'kane-cli login' to re-authenticate.
|
|
10
|
+
`):process.stderr.write(`error: auth resolution failed: ${e.message}
|
|
11
|
+
`),2}let y=String(p.resolvedCreds?.org_id??"");if(!y)return process.stderr.write("error: TMS did not return an org_id. Run `kane-cli login` again.\n"),2;{let{readMetaIfExists:e,assertOrgMatchOrExit:g}=await import("./testmd-actions-4QLHD74A.js"),d=g(e(t),y);if(d!==null)return d}let w=new R,F=A({isAgent:i,log:(e,g,d,$)=>w.log(e,g,d,$)}),P={path:t,cwd:process.cwd(),opts:r,isAgent:i,disableAskUser:!process.stdin.isTTY,resolved:a,resolvedAuth:p,cliOverrides:s,environment:f,envConfig:N,profile:I,model:j,creds:o,configStore:l,session:w};try{return(await M(P,F,c)).exitCode}catch(e){return process.stderr.write(`error: ${e.message}
|
|
12
|
+
`),2}}var m=class extends Error{constructor(t,i){super(t);this.exitCode=i;this.name="CliArgError"}};function G(n){let r={mode:"mode",assertionMode:"assertion_mode",maxSteps:"max_steps",timeout:"timeout",globalContext:"global_context",localContext:"local_context",codeExport:"code_export",codeLanguage:"code_language",headless:"headless",cdpEndpoint:"cdp_endpoint",wsEndpoint:"ws_endpoint"},t=new Set(["max_steps","timeout"]),i={};for(let[c,a]of Object.entries(r)){let s=n[c];if(s===void 0||s==="")continue;let o=s;if(t.has(a)&&(o=Number(s),Number.isNaN(o))){let l="--"+c.replace(/[A-Z]/g,u=>"-"+u.toLowerCase());throw new m(`error: ${l} must be a number
|
|
13
|
+
`,2)}i[a]=o}return i}export{Y as applyCliStepConfig,H as buildStepRunVariables,K as buildTestLevelVariables,V as replayVariablesForStep,le as runTestMdFile};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as p,b as g}from"./chunk-
|
|
2
|
+
import{a as p,b as g}from"./chunk-R5RHRG65.js";import{b as m}from"./chunk-TJWU7DOO.js";import"./chunk-UOGJUJCF.js";import{a as d}from"./chunk-RZ4F3BHX.js";import"./chunk-IECUFWIZ.js";import{a as f,g as a,h as u}from"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";import{mkdirSync as y,writeFileSync as w,readFileSync as S,rmSync as c,cpSync as v,createWriteStream as T,existsSync as b}from"fs";import{join as s}from"path";import{tmpdir as k}from"os";import{spawn as h}from"child_process";import{Readable as I}from"stream";import{pipeline as $}from"stream/promises";function E(t){try{return S(s(t,"VERSION"),"utf-8").trim()||null}catch{return null}}function L(t,r,l){return l?t!==r:t===null||m(t,r)>0}function C(t){let r=a.split("/").pop()??a;return`https://registry.npmjs.org/${a}/-/${r}-${t}.tgz`}var R=5e3,A=6e4;async function x(){let t=new AbortController,r=setTimeout(()=>t.abort(),R);try{let l=await d(p(),{headers:{Accept:"application/json"},signal:t.signal});if(!l.ok)throw new Error(`Controller returned ${l.status} fetching skill version map`);let i=await l.json(),n=g(i,f);if(!n)throw new Error("No compatible skill version found for this kane-cli build");return n}finally{clearTimeout(r)}}async function _(t){let r=C(t),l=new AbortController,i=setTimeout(()=>l.abort(),A);try{let n=await d(r,{headers:{Accept:"application/octet-stream"},signal:l.signal});if(!n.ok||!n.body)throw new Error(`Failed to download skill tarball (${n.status})`);let e=s(k(),`kane-cli-skill-${t}-${process.pid}.tgz`);return await $(I.fromWeb(n.body),T(e)),e}finally{clearTimeout(i)}}function M(t,r){return new Promise((l,i)=>{y(r,{recursive:!0});let n=h("tar",["-xzf",t,"-C",r,"--strip-components=2","package/skills"],{stdio:["ignore","ignore","pipe"]}),e="";n.stderr?.on("data",o=>{e+=o.toString()}),n.on("error",o=>i(o)),n.on("close",o=>{o===0?l():i(new Error(`tar exited ${o}${e?`: ${e.trim()}`:""}`))})})}async function W(t){let r;try{r=t??await x()}catch(e){return{status:"failed",version:t??"unknown",installedTargets:0,error:e instanceof Error?e.message:String(e)}}let l=u.filter(({dir:e})=>L(E(e),r,!!t));if(l.length===0)return{status:"already-installed",version:r,installedTargets:0};let i=null,n=null;try{if(n=await _(r),i=s(k(),`kane-cli-skill-${r}-stage-${process.pid}`),c(i,{recursive:!0,force:!0}),await M(n,i),!b(s(i,"SKILL.md")))throw new Error(`Unexpected skill tarball layout for v${r}: SKILL.md not at package/skills/ root`);let e=0;for(let{dir:o}of l)try{c(o,{recursive:!0,force:!0}),y(o,{recursive:!0}),v(i,o,{recursive:!0,force:!0}),w(s(o,"VERSION"),r+`
|
|
3
3
|
`),e++}catch{}return e===0?{status:"failed",version:r,installedTargets:0,error:"Could not write to any agent skill directory"}:{status:"installed",version:r,installedTargets:e}}catch(e){return{status:"failed",version:r,installedTargets:0,error:e instanceof Error?e.message:String(e)}}finally{if(n)try{c(n,{force:!0})}catch{}if(i)try{c(i,{recursive:!0,force:!0})}catch{}}}function D(t){switch(t.status){case"installed":return`Installed kane-cli skill v${t.version} (${t.installedTargets}/${u.length} agent dirs). Restart your AI agent (Claude Code / Codex CLI / Gemini CLI) to load it.`;case"already-installed":return`kane-cli skill v${t.version} already installed.`;case"failed":return`Failed to install kane-cli skill: ${t.error??"unknown error"}`}}export{D as formatInstallResult,W as installSkill,L as targetNeedsInstall};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{d as a}from"./chunk-MUPHP5W6.js";import"./chunk-3MSXQU2C.js";import"./chunk-PTP3WS3N.js";import"./chunk-7AEC572G.js";import"./chunk-ELBPBHTE.js";import"./chunk-LOQV5GME.js";import"./chunk-THEZSXZM.js";import"./chunk-H6QJ4YU7.js";import"./chunk-NLIOFVMP.js";import"./chunk-QCEWUUE6.js";import"./chunk-J75KVNX5.js";import"./chunk-TPG2T5GH.js";import"./chunk-P5XBCJYQ.js";import"./chunk-Q2I65L2W.js";import"./chunk-C5UNZ6ZY.js";import"./chunk-S3DAAAE5.js";import"./chunk-54TKNWXF.js";import"./chunk-2YQ6TW77.js";import"./chunk-DTM4ZMMJ.js";import"./chunk-Y44AETOW.js";import"./chunk-3FN66LTP.js";import"./chunk-DJL47DYJ.js";import"./chunk-NFOBDHZK.js";import"./chunk-7YRNLGUT.js";import"./chunk-T4PKTWZ6.js";import"./chunk-YCNCW4O4.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-L5LI2JF4.js";import"./chunk-AFCEFOIK.js";import"./chunk-V2GYBVSM.js";import"./chunk-PISZLYS5.js";import"./chunk-NAYAVVTP.js";import"./chunk-IU53F4ZV.js";import"./chunk-6E5UYAEB.js";import"./chunk-XDERMCAU.js";import"./chunk-YCCUBQY4.js";import"./chunk-AM5WZPPY.js";import"./chunk-7KDNH6JP.js";import"./chunk-QO6PAA7Q.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-VE3SUJMA.js";import"./chunk-4IOOBSNB.js";import"./chunk-GEAWRRR7.js";import"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-E47GFYXA.js";import"./chunk-IECUFWIZ.js";import"./chunk-ZWAZ4QU4.js";import"./chunk-7IBNOVML.js";import{a as o}from"./chunk-C6S4IEBC.js";import"./chunk-HZ46P2GR.js";import"./chunk-YSIYPC4R.js";import"./chunk-HFXQU7UZ.js";import{a as t}from"./chunk-HCBYKLMW.js";import{c as n}from"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import{e as r}from"./chunk-UR6MHSHU.js";var e=r(t(),1);async function p(i){let c=i.scenarioLimit!==void 0||i.perScenarioLimit!==void 0?{scenarioLimit:i.scenarioLimit,perScenarioLimit:i.perScenarioLimit}:void 0,{waitUntilExit:m}=n((0,e.jsx)(o,{children:(0,e.jsx)(a,{initialChatMode:"generate",initialObjective:i.objective,initialGenerateLimits:c})}),{exitOnCtrlC:!1});await m()}export{p as runGenerate};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{e as a,f as b,g as c,h as d,i as e,j as f,k as g,l as h,m as i,n as j,o as k,p as l,q as m}from"./chunk-ELBPBHTE.js";import"./chunk-J75KVNX5.js";import"./chunk-TPG2T5GH.js";import"./chunk-Q2I65L2W.js";import"./chunk-2YQ6TW77.js";import"./chunk-YCNCW4O4.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-L5LI2JF4.js";import"./chunk-AM5WZPPY.js";import"./chunk-7KDNH6JP.js";import"./chunk-NLCCBXXV.js";import"./chunk-4IOOBSNB.js";import"./chunk-GEAWRRR7.js";import"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-IECUFWIZ.js";import"./chunk-YSIYPC4R.js";import"./chunk-HFXQU7UZ.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{i as ExportError,c as assertOrgMatchOrExit,j as exportTestmd,b as metaMatchesOrg,a as readMetaIfExists,d as resolveCurrentOrgId,l as resolveSyncAuth,h as runDeleteAction,k as runExportAction,e as runListAction,f as runListTui,g as runStatusAction,m as runSyncAction};
|
|
@@ -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-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-UR6MHSHU.js";export{a as TmsClient};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a}from"./chunk-4IOOBSNB.js";import"./chunk-GEAWRRR7.js";import"./chunk-UOGJUJCF.js";import"./chunk-RZ4F3BHX.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";export{a as refreshOAuthToken};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as t}from"./chunk-
|
|
2
|
+
import{a as t}from"./chunk-UOGJUJCF.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";async function l(n,o,r){let{ControllerClient:e}=await import("./controller-client-RD2YEMAH.js");await new e(t(n).controllerBaseUrl,{username:o,accessKey:r}).getTmsCredentials()}export{l as validateBasicAuth};
|
|
@@ -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-TJWU7DOO.js";import"./chunk-RZ4F3BHX.js";import"./chunk-HFXQU7UZ.js";import"./chunk-UR6MHSHU.js";export{d as checkForUpdate,b as compareVersions,c as getSeverity,a as getUpdateCommand};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testmuai/kane-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "KaneAI Terminal UI — browser automation testing agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"README.md"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
+
"@testmuai/evidence-cli": "^0.1.6",
|
|
17
18
|
"archiver": "^7.0.1",
|
|
18
19
|
"chalk": "^5.3.0",
|
|
19
20
|
"commander": "^12.0.0",
|
|
@@ -21,14 +22,15 @@
|
|
|
21
22
|
"js-yaml": "^4.1.1",
|
|
22
23
|
"open": "^10.1.0",
|
|
23
24
|
"react": "^18.3.1",
|
|
25
|
+
"semver": "^7.8.4",
|
|
24
26
|
"ws": "^8.20.0"
|
|
25
27
|
},
|
|
26
28
|
"optionalDependencies": {
|
|
27
|
-
"@testmuai/kane-cli-darwin-arm64": "0.
|
|
28
|
-
"@testmuai/kane-cli-darwin-x64": "0.
|
|
29
|
-
"@testmuai/kane-cli-linux-x64": "0.
|
|
30
|
-
"@testmuai/kane-cli-linux-arm64": "0.
|
|
31
|
-
"@testmuai/kane-cli-win-x64": "0.
|
|
29
|
+
"@testmuai/kane-cli-darwin-arm64": "0.5.0",
|
|
30
|
+
"@testmuai/kane-cli-darwin-x64": "0.5.0",
|
|
31
|
+
"@testmuai/kane-cli-linux-x64": "0.5.0",
|
|
32
|
+
"@testmuai/kane-cli-linux-arm64": "0.5.0",
|
|
33
|
+
"@testmuai/kane-cli-win-x64": "0.5.0",
|
|
32
34
|
"sharp": "^0.34.5"
|
|
33
35
|
},
|
|
34
36
|
"publishConfig": {
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-KLVCLGHX.js";import"./chunk-YCCUBQY4.js";import"./chunk-2J3VB6DW.js";import"./chunk-LPUQ4HWQ.js";import"./chunk-NLCCBXXV.js";import"./chunk-HPJP7NES.js";import"./chunk-RZ4F3BHX.js";import"./chunk-GBTPZGJB.js";import"./chunk-3UCNDPTN.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{b as FolderPicker,a as formatFolderLine};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as f,b as i,x as t}from"./chunk-3UCNDPTN.js";import{a as T}from"./chunk-HCBYKLMW.js";import{a as n,b as o,j as p,k as x}from"./chunk-C44QQJR4.js";import{a as b}from"./chunk-6YGTRKDT.js";import{e as h}from"./chunk-UR6MHSHU.js";var w=h(b(),1);var e=h(T(),1),S="https://www.testmuai.com/support/docs/kane-cli-introduction",v="https://github.com/LambdaTest/kane-cli/issues";function k(){let{exit:l}=p(),{stdout:r}=x(),c=r?.columns??80;return(0,w.useEffect)(()=>{let m=setTimeout(()=>l(),50);return()=>clearTimeout(m)},[l]),(0,e.jsxs)(n,{flexDirection:"column",children:[(0,e.jsxs)(n,{paddingX:1,paddingTop:1,flexDirection:"column",children:[(0,e.jsx)(o,{color:t.orange,bold:!0,children:i}),(0,e.jsxs)(n,{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:`${i}`,desc:"Single-shot prompt (no args, TTY)"}),(0,e.jsx)(g,{cmd:`${i} --tui`,desc:"Full interactive TUI",highlight:!0}),(0,e.jsx)(g,{cmd:`${i} run "<objective>"`,desc:"Inline objective"}),(0,e.jsx)(g,{cmd:`${i} testmd run <path>.md`,desc:"Replay a saved *_test.md file"})]}),(0,e.jsxs)(d,{title:"HELP",children:[(0,e.jsx)(g,{cmd:`${i} --help`,desc:"Show this help (long form)"}),(0,e.jsx)(g,{cmd:`${i} -h`,desc:"Show this help (short form)"}),(0,e.jsx)(g,{cmd:`${i} help`,desc:"Show this help (subcommand form)"}),(0,e.jsxs)(n,{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; ",i," does not ship shell-completion scripts, so any flag your shell suggests is a generic guess \u2014 not from ",i,"."]})]})]}),(0,e.jsxs)(d,{title:"COMMANDS",children:[(0,e.jsx)(a,{cmd:"run",args:"<objective>",desc:"Run an objective (inline string)",highlight:!0}),(0,e.jsx)(a,{cmd:"testmd",args:"run|list|status|delete|export",desc:"Manage *_test.md files"}),(0,e.jsx)(a,{cmd:"login",desc:"Auth setup (interactive, --oauth, or --username)"}),(0,e.jsx)(a,{cmd:"logout",desc:"Revoke tokens + delete profile"}),(0,e.jsx)(a,{cmd:"whoami",desc:"Show authenticated identity"}),(0,e.jsx)(a,{cmd:"config",args:"show|set-mode|set-assertion-mode|\u2026",desc:"Chrome, run & generate settings"}),(0,e.jsx)(a,{cmd:"profiles",args:"list|switch|delete",desc:"Manage auth profiles"}),(0,e.jsx)(a,{cmd:"changelog",args:"[--all]",desc:"Show recent release notes"})]}),(0,e.jsxs)(d,{title:"TESTMD ACTIONS",children:[(0,e.jsx)(a,{cmd:"testmd run",args:"<path>",desc:"Replay a saved *_test.md file",highlight:!0}),(0,e.jsx)(a,{cmd:"testmd list",desc:"List *_test.md files in cwd (recursive)"}),(0,e.jsx)(a,{cmd:"testmd status",args:"<path>",desc:"Print local meta.json for a test"}),(0,e.jsx)(a,{cmd:"testmd delete",args:"<path>",desc:"Remove output-<stem>/ and the source file"}),(0,e.jsx)(a,{cmd:"testmd export",args:"<path> --language <py|js>",desc:"Generate standalone Playwright code"})]}),(0,e.jsxs)(d,{title:"RUN FLAGS",children:[(0,e.jsx)(s,{long:"--max-steps",arg:"<n>",desc:"Max agent steps (default: 30)"}),(0,e.jsx)(s,{long:"--timeout",arg:"<sec>",desc:"Kill run after N seconds"}),(0,e.jsx)(s,{long:"--headless",desc:"No visible browser window"}),(0,e.jsx)(s,{long:"--mode",arg:"<action|testing>",desc:"Run mode (default: testing)"}),(0,e.jsx)(s,{long:"--name",arg:"<name>",desc:"Persist session under this name"}),(0,e.jsx)(s,{long:"--variables",arg:"<json>",desc:"Inline variables as JSON"}),(0,e.jsx)(s,{long:"--variables-file",arg:"<path>",desc:"Load variables from file"}),(0,e.jsx)(s,{long:"--session-context",arg:"<json>",desc:"Prior runs context JSON"}),(0,e.jsx)(s,{long:"--global-context",arg:"<file>",desc:"Override global context markdown"}),(0,e.jsx)(s,{long:"--local-context",arg:"<file>",desc:"Override local context markdown"}),(0,e.jsx)(s,{long:"--ws-endpoint",arg:"<url>",desc:"Remote browser (LambdaTest)"}),(0,e.jsx)(s,{long:"--cdp-endpoint",arg:"<url>",desc:"Connect to existing Chrome CDP"}),(0,e.jsx)(s,{long:"--task-skills",desc:"Domain-specific task skills (experimental)"}),(0,e.jsx)(s,{long:"--code-export",desc:"Generate code export after upload"}),(0,e.jsx)(s,{long:"--code-language",arg:"<lang>",desc:"Code export language: python | javascript"}),(0,e.jsx)(s,{long:"--skip-code-validation",desc:"Skip post-codegen validation"}),(0,e.jsx)(s,{long:"--username",arg:"<user>",desc:"Basic auth (skip OAuth)"}),(0,e.jsx)(s,{long:"--access-key",arg:"<key>",desc:"Basic auth access key"}),(0,e.jsx)(s,{long:"--env",arg:"<name>",desc:"Environment (prod or stage)"}),(0,e.jsx)(s,{long:"--agent",desc:"NDJSON output (no UI)",highlight:!0})]}),(0,e.jsxs)(d,{title:"EXAMPLES",children:[(0,e.jsx)(u,{label:"Inline objective",cmd:`${i} run "Search for laptop"`}),(0,e.jsx)(u,{label:"Replay a saved test",cmd:`${i} testmd run smoke_test.md`}),(0,e.jsx)(u,{label:"Variables",cmd:`${i} run "Login as {{user}}" --variables '{"user":{"value":"alice"}}'`}),(0,e.jsx)(u,{label:"Agent mode (NDJSON)",cmd:`${i} run "Add to cart" --agent | jq .status`})]}),(0,e.jsx)(d,{title:"TEST FILES",children:(0,e.jsxs)(n,{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:[i," testmd run path/to/foo_test.md"]}),". (`.md` paths are not accepted by `",i," 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)(n,{flexDirection:"column",marginTop:0,paddingX:1,children:[(0,e.jsx)(o,{color:t.muted,children:"\u2500".repeat(Math.min(c-2,70))}),(0,e.jsxs)(n,{gap:3,children:[(0,e.jsxs)(n,{children:[(0,e.jsx)(o,{color:t.dim,children:"Docs "}),(0,e.jsx)(o,{color:t.orange,underline:!0,children:S})]}),(0,e.jsxs)(n,{children:[(0,e.jsx)(o,{color:t.dim,children:"Bugs "}),(0,e.jsx)(o,{color:t.orange,underline:!0,children:v})]})]})]}),(0,e.jsx)(o,{children:" "})]})}function d({title:l,children:r}){return(0,e.jsxs)(n,{flexDirection:"column",marginBottom:1,children:[(0,e.jsx)(n,{marginLeft:1,children:(0,e.jsx)(o,{bold:!0,color:t.dim,children:l})}),r]})}function g({cmd:l,desc:r,highlight:c}){return(0,e.jsxs)(n,{marginLeft:2,children:[(0,e.jsxs)(n,{width:40,children:[(0,e.jsx)(o,{color:t.dim,children:"$ "}),(0,e.jsx)(o,{color:c?t.orange:t.orange,children:l})]}),(0,e.jsx)(o,{color:t.dim,children:r})]})}function a({cmd:l,args:r,desc:c,highlight:m}){return(0,e.jsxs)(n,{marginLeft:2,children:[(0,e.jsx)(n,{width:16,children:(0,e.jsx)(o,{color:m?t.orange:t.green,bold:!0,children:l})}),(0,e.jsx)(n,{width:32,children:r?(0,e.jsx)(o,{color:t.dim,children:r}):null}),(0,e.jsx)(o,{color:t.dim,children:c})]})}function s({long:l,arg:r,desc:c,highlight:m}){return(0,e.jsxs)(n,{marginLeft:2,children:[(0,e.jsxs)(n,{width:30,children:[(0,e.jsx)(o,{color:m?t.orange:t.orange,children:l}),r&&(0,e.jsxs)(o,{color:t.dim,children:[" ",r]})]}),(0,e.jsx)(o,{color:t.dim,children:c})]})}function u({label:l,cmd:r}){return(0,e.jsxs)(n,{marginLeft:2,flexDirection:"column",children:[(0,e.jsxs)(o,{color:t.dim,children:["# ",l]}),(0,e.jsxs)(o,{color:t.orange,children:["$ ",r]})]})}export{k as HelpView};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-JBOXYLDH.js";import"./chunk-DKGNV3VP.js";import"./chunk-DXJ5FL25.js";import"./chunk-L5LI2JF4.js";import"./chunk-QMAHNXS6.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-WEPNJVBA.js";import"./chunk-KLVCLGHX.js";import"./chunk-YCCUBQY4.js";import"./chunk-2J3VB6DW.js";import"./chunk-LOIRZFV3.js";import"./chunk-LPUQ4HWQ.js";import"./chunk-NLCCBXXV.js";import"./chunk-VE3SUJMA.js";import"./chunk-LZUTY7XS.js";import"./chunk-RJFHOZG6.js";import"./chunk-HPJP7NES.js";import"./chunk-RZ4F3BHX.js";import"./chunk-GBTPZGJB.js";import"./chunk-3UCNDPTN.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as SingleShotApp};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{h as a}from"./chunk-SEU6OXMD.js";import"./chunk-7N5H4KTV.js";import"./chunk-MUZCEGJD.js";import"./chunk-LOIRZFV3.js";import"./chunk-HPJP7NES.js";import"./chunk-JHSSBES2.js";import"./chunk-UJDIXFEE.js";import"./chunk-C6S4IEBC.js";import"./chunk-3UCNDPTN.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as TestMdRunView};
|
package/dist/chunk-3UCNDPTN.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{homedir as e}from"os";import{join as t}from"path";var m="0.4.9",d="kane-cli",a=t(e(),".testmuai","kaneai"),g=t(a,"profiles"),h=t(a,"tui-config.json"),_="https://registry.npmjs.org/@testmuai/kane-cli",L="https://api.github.com/repos/LambdaTest/kane-cli/releases",n="@testmuai/kane-cli-skill",x=`https://registry.npmjs.org/${n}`,r="kane-cli",A=[{dir:t(e(),".claude","skills",r),agent:"Claude Code"},{dir:t(e(),".agents","skills",r),agent:"Codex CLI"},{dir:t(e(),".gemini","skills",r),agent:"Gemini CLI"}],u="https://dd-proxy.lambdatest.com/intake/kane-cli",R="https://kaneai-playground.lambdatest.io",U=9222,b=9230,I=t(a,"chrome-profiles"),o=t(a,"hints"),C=t(o,"state.json");function E(s){return t(o,`catalog-${s}.json`)}var p="127.0.0.1",T=18392,S=18400,c="/callback";function N(s){return`http://${p}:${s}${c}`}var P="KANE CLI",B="*",O={prod:{authBaseUrl:"https://auth.lambdatest.com",consentUrl:"https://accounts.lambdatest.com",controllerBaseUrl:"https://kaneai-api.lambdatest.com/v16-controller/v1",tmsBaseUrl:"https://test-manager-api.lambdatest.com/api",testGeneratorBaseUrl:"https://test-manager-api.lambdatest.com",secretsBaseUrl:"https://api-hyperexecute.lambdatest.com",testManagerUiUrl:"https://test-manager.lambdatest.com",shareApiBaseUrl:"https://api.lambdatest.com",v16ServerHost:"https://kaneai-api.lambdatest.com/v16-server"},stage:{authBaseUrl:"https://stage-auth.lambdatestinternal.com",consentUrl:"https://stage-accounts.lambdatestinternal.com",controllerBaseUrl:"https://auteur-stage-automind.lambdatestinternal.com/v16-controller/v1",tmsBaseUrl:"https://stage-test-manager-api.lambdatestinternal.com/api",testGeneratorBaseUrl:"https://stage-test-manager-api.lambdatestinternal.com",secretsBaseUrl:"https://api-stage-hyperexecute.lambdatestinternal.com",testManagerUiUrl:"https://stage-test-manager.lambdatestinternal.com",shareApiBaseUrl:"https://stage-api.lambdatestinternal.com",v16ServerHost:"https://auteur-stage-automind.lambdatestinternal.com/v16-server"}},k={orange:"#ff9500",generateAccent:"#0d9488",purple:"#b388ff",secondary:"#888888",dim:"#666666",muted:"#444444",green:"#4ade80",red:"#ef4444"};export{m as a,d as b,a as c,h as d,_ as e,L as f,n as g,A as h,u as i,R as j,U as k,b as l,I as m,C as n,E as o,p,T as q,S as r,c as s,N as t,P as u,B as v,O as w,k as x};
|
package/dist/chunk-7N5H4KTV.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as g}from"./chunk-HPJP7NES.js";import{spawn as N,execSync as O}from"child_process";import{existsSync as v}from"fs";import{resolve as t,dirname as T}from"path";import{fileURLToPath as b}from"url";import{createInterface as A}from"readline";async function*E(s){let e=A({input:s,crlfDelay:1/0});for await(let c of e){let r=c.trim();if(r)try{let d=JSON.parse(r);d&&typeof d.type=="string"&&(yield d)}catch{}}}function S(s){return s==="action"?{set:{V16_AGENT_ENABLE_ALL_BLOCKERS:"true",V16_AGENT_SKIP_CP_FINAL:"true",V16_BIFURCATION_PHASES:"1"},unset:["V16_NETWORK_WS","V16_NETWORK_SSE"]}:{set:{V16_BIFURCATION_PHASES:"1"},unset:["V16_AGENT_ENABLE_ALL_BLOCKERS","V16_AGENT_SKIP_CP_FINAL","V16_NETWORK_WS","V16_NETWORK_SSE"]}}function R(s){return s==="dom"?{set:{V16_AGENT_ENABLE_TEXTUAL_VISUAL:"true"},unset:[]}:{set:{},unset:["V16_AGENT_ENABLE_TEXTUAL_VISUAL"]}}var a=T(b(import.meta.url));function C(){for(let s of["python3","python"])try{return O(`${s} --version`,{stdio:"ignore"}),s}catch{}return null}function h(){let e=process.platform==="win32"?"v16-runner.exe":"v16-runner",c={"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}`,d=c[r];if(d)for(let n of d){let l=[t(a,"..","node_modules",n,"bin",e),t(a,"..","..","node_modules",n,"bin",e),t(a,"..","..","..","node_modules",n,"bin",e),t(a,"..","..","..","..","node_modules",n,"bin",e)];for(let o of l)if(v(o))return{cmd:o,args:[]}}let m=[t(a,"bin",e),t(a,"..","bin",e),t(a,"..","..","..","..","v16-runner","dist",e),t(a,"..","..","..","v16-runner","dist",e),t(process.cwd(),"v16-runner","dist",e),t(process.cwd(),"..","v16-runner","dist",e)];for(let n of m)if(v(n))return{cmd:n,args:[]};let p=[t(a,"..","..","v16-runner"),t(a,"..","..","..","..","v16-runner"),t(a,"..","..","..","v16-runner"),t(process.cwd(),"v16-runner"),t(process.cwd(),"..","v16-runner")];for(let n of p)if(v(t(n,"main.py"))){for(let o of[t(n,".venv","bin","python"),t(n,"..","browser-agent",".venv","bin","python")])if(v(o))return{cmd:o,args:["main.py"],cwd:n};let l=C();if(l)return{cmd:l,args:["main.py"],cwd:n}}return null}function W(s,e){let c=h();if(!c)throw new Error("v16-runner not found. Build the binary with `cd v16-runner && python build.py` or ensure Python is available.");let r={...process.env};e?.environment&&(r.TESTMUAI_ENV=e.environment),r.TESTMUAI_SOURCE="kane-cli",process.platform==="win32"&&(r.PYTHONIOENCODING="utf-8");let d=g(e?.environment);r.V16_SERVER_API_HOST=d.v16ServerHost,r.ATMS_URL=d.tmsBaseUrl.replace(/\/api\/?$/,""),s.username&&s.access_key&&(r.LT_USERNAME=s.username,r.LT_ACCESS_KEY=s.access_key),s.session_id&&(r.TESTMUAI_SESSION_ID=s.session_id);let m=S(e?.mode??"testing");Object.assign(r,m.set);for(let i of m.unset)delete r[i];let p=R(e?.assertionMode??"visual");Object.assign(r,p.set);for(let i of p.unset)delete r[i];let n=N(c.cmd,c.args,{stdio:["pipe","pipe","pipe"],env:r,cwd:c.cwd});n.stdin.on("error",()=>{}),n.stdin.write(JSON.stringify(s)+`
|
|
3
|
-
`);let l=1e5,o="";n.stderr.on("data",i=>{o+=i.toString(),o.length>l&&(o=o.slice(-l))}),n.on("error",i=>{e?.log?.("error","RUNNER_SPAWN_ERROR","Runner spawn error",{error:i.message})});let _=null,f=null,x=new Promise(i=>{n.on("close",(u,y)=>{_=u,f=y?String(y):null,e?.log?.("info","RUNNER_EXIT","Runner exited",{code:u,signal:f??"none"}),i({code:u,signal:f})})}),w=E(n.stdout);return{child:n,events:w,sendUserResponse(i){let u=JSON.stringify({type:"user_response",answer:i});try{n.stdin.write(u+`
|
|
4
|
-
`)}catch{}},sendCancel(i){let u=JSON.stringify({type:"cancel",reason:i});try{n.stdin.write(u+`
|
|
5
|
-
`)}catch{}},cancel(){n.kill("SIGTERM")},get stderr(){return o},get exitCode(){return _},get exitSignal(){return f},exited:x}}export{h as a,W as b};
|
package/dist/chunk-AH4AXJML.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{dirname as p,basename as f,join as i}from"path";function g(r){let t=f(r);return t.endsWith("_test.md")?t.slice(0,-8):t.endsWith(".md")?t.slice(0,-3):t}function o(r){return i(p(r),`output-${g(r)}`)}function x(r){return i(o(r),"Result.md")}function c(r){return i(o(r),".internal")}function d(r){return i(c(r),"meta.json")}function l(r,t,n){return i(o(r),`${t}-${n}-code`)}function D(r){return i(o(r),"generated-code")}function b(r){return o(r)+".staging"}function m(r){return i(c(r),"steps")}function v(r,t,n){return i(m(r),`${t}-${n}`)}import{existsSync as e,renameSync as s,rmSync as u}from"fs";function h(r){let t=`${r}.staging`,n=`${r}.bak`;if(!e(t))throw new Error(`atomicReplaceDir: staging missing: ${t}`);if(process.platform==="win32"){e(r)&&u(r,{recursive:!0,force:!0}),s(t,r);return}e(r)&&(e(n)&&u(n,{recursive:!0,force:!0}),s(r,n)),s(t,r),e(n)&&u(n,{recursive:!0,force:!0})}function w(r){let t=`${r}.staging`,n=`${r}.bak`;if(process.platform==="win32"){e(t)&&(e(r)?u(t,{recursive:!0,force:!0}):s(t,r));return}if(e(n)&&!e(r)){s(n,r),e(t)&&u(t,{recursive:!0,force:!0});return}e(n)&&e(r)&&u(n,{recursive:!0,force:!0}),e(t)&&e(r)&&u(t,{recursive:!0,force:!0})}export{g as a,o as b,x as c,c as d,d as e,l as f,D as g,b as h,v as i,h as j,w as k};
|