@testmuai/kane-cli 0.8.3 → 0.8.4

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.
Files changed (178) hide show
  1. package/dist/{ChatSurface-FJSO3IKR.js → ChatSurface-H26E7DM6.js} +1 -1
  2. package/dist/{ChromeProfilePicker-NTZ2RN3L.js → ChromeProfilePicker-USUPENU2.js} +1 -1
  3. package/dist/{CliFeedbackPrompt-BCHUH24C.js → CliFeedbackPrompt-ZIAZ2M2U.js} +1 -1
  4. package/dist/{CliUploadProgress-QVAJJRUW.js → CliUploadProgress-LEOJTXHT.js} +1 -1
  5. package/dist/{ConfigView-LAKAQN7O.js → ConfigView-JBIQPG7O.js} +1 -1
  6. package/dist/EvidenceViewOffer-IWQ6Q2CI.js +2 -0
  7. package/dist/FolderPicker-G4DT3OEZ.js +2 -0
  8. package/dist/{HelpView-JFFVHQAW.js → HelpView-I27LWSL5.js} +1 -1
  9. package/dist/{InfoBox-46C7AHDE.js → InfoBox-ORHNXPET.js} +1 -1
  10. package/dist/{LinksBox-KFJXZDUJ.js → LinksBox-6SKDUB5T.js} +1 -1
  11. package/dist/{ProfilesView-FV3KFVBX.js → ProfilesView-Y5GTLDJY.js} +1 -1
  12. package/dist/{ProjectPicker-MCH35VEF.js → ProjectPicker-WDCMKWNQ.js} +1 -1
  13. package/dist/{SaveSessionPrompt-RXHP3YW6.js → SaveSessionPrompt-I4KLFESC.js} +1 -1
  14. package/dist/SingleShotApp-Y77CNTSO.js +2 -0
  15. package/dist/{SummaryBox-33K2MMUW.js → SummaryBox-QWKW5FHK.js} +1 -1
  16. package/dist/TestMdRunView-PPM6LD3I.js +2 -0
  17. package/dist/TestrunEvidenceTable-ENJJ2GIW.js +2 -0
  18. package/dist/{WhoamiView-HUPBB5AQ.js → WhoamiView-H6M536AY.js} +1 -1
  19. package/dist/{app-download-3O7NJNGG.js → app-download-PSRQWDVW.js} +1 -1
  20. package/dist/{auth-OMWFVDL2.js → auth-JVH2EHK2.js} +1 -1
  21. package/dist/binary-YTQJP2FG.js +2 -0
  22. package/dist/{bind-NXXKFJMA.js → bind-OUXCFLSE.js} +2 -2
  23. package/dist/{bootstrap-MMRPAHWE.js → bootstrap-3NEI7O6I.js} +1 -1
  24. package/dist/bridge-AFQTFWCU.js +2 -0
  25. package/dist/{changelog-VZ5HFHYM.js → changelog-WDKG4WCV.js} +1 -1
  26. package/dist/chunk-2HT3RYKJ.js +2 -0
  27. package/dist/chunk-2PH43Z3P.js +69 -0
  28. package/dist/{chunk-NWJOPZ7P.js → chunk-35L2QXWP.js} +2 -2
  29. package/dist/{chunk-IFIXY3YG.js → chunk-3JLWPEQW.js} +1 -1
  30. package/dist/{chunk-IWWQTXGK.js → chunk-4CHO7SAT.js} +1 -1
  31. package/dist/{chunk-YJNGBZ42.js → chunk-52GWEKFD.js} +1 -1
  32. package/dist/chunk-55NSNWM5.js +26 -0
  33. package/dist/{chunk-CJJXT5DO.js → chunk-5GUD3CIH.js} +1 -1
  34. package/dist/{chunk-KZVEFBH5.js → chunk-5HYXTFGB.js} +1 -1
  35. package/dist/{chunk-IEOHAHZO.js → chunk-62WYSEAT.js} +1 -1
  36. package/dist/{chunk-AVH3BEEU.js → chunk-66RJPH73.js} +1 -1
  37. package/dist/chunk-6CR2HTIM.js +7 -0
  38. package/dist/{chunk-QJTXNQV5.js → chunk-7HPEHQHH.js} +1 -1
  39. package/dist/chunk-7HXZZ3VA.js +19 -0
  40. package/dist/{chunk-LP3BSP74.js → chunk-7LP4X25A.js} +1 -1
  41. package/dist/{chunk-SA2LQSYP.js → chunk-7VTYRTEJ.js} +1 -1
  42. package/dist/{chunk-UBTNWAKK.js → chunk-A3PGLDQY.js} +1 -1
  43. package/dist/{chunk-5CKQTZMG.js → chunk-A4XJUWAQ.js} +1 -1
  44. package/dist/{chunk-EBJD2V4Z.js → chunk-A6TJUSOS.js} +1 -1
  45. package/dist/{chunk-KOMKHFC4.js → chunk-BCCWICSS.js} +1 -1
  46. package/dist/{chunk-CJP7RX3E.js → chunk-BDUCWZYO.js} +1 -1
  47. package/dist/{chunk-2ZDXNTZT.js → chunk-BGMI5PH4.js} +1 -1
  48. package/dist/{chunk-DSXSU5MH.js → chunk-BSCMUMSV.js} +4 -4
  49. package/dist/{chunk-DVYO4CR2.js → chunk-BWSL2KQQ.js} +1 -1
  50. package/dist/{chunk-4G4RWARU.js → chunk-BXRZGISN.js} +1 -1
  51. package/dist/{chunk-VK3NU742.js → chunk-DEZ7CXGM.js} +1 -1
  52. package/dist/{chunk-GR35ZFM2.js → chunk-DWWAIXVZ.js} +2 -2
  53. package/dist/{chunk-NNCMMV6P.js → chunk-DXJKMZEC.js} +29 -23
  54. package/dist/{chunk-5BVOF4UW.js → chunk-DYGUHGZ6.js} +1 -1
  55. package/dist/{chunk-TUTDSX7T.js → chunk-DZJQNL66.js} +1 -1
  56. package/dist/{chunk-RUCSRS4C.js → chunk-EQSE6NIB.js} +1 -1
  57. package/dist/{chunk-7YZMUTJA.js → chunk-GJED4QGF.js} +1 -1
  58. package/dist/chunk-GSYJUHRK.js +2 -0
  59. package/dist/{chunk-LNQCZ5DS.js → chunk-HHHNQW5Z.js} +1 -1
  60. package/dist/{chunk-ZNNRCUHH.js → chunk-HXSEA7JS.js} +1 -1
  61. package/dist/chunk-IXTFWIQ6.js +2 -0
  62. package/dist/{chunk-4FQI643D.js → chunk-J27JJWMT.js} +1 -1
  63. package/dist/{chunk-SPQPOUUR.js → chunk-JCILRPOM.js} +2 -2
  64. package/dist/chunk-JR46A564.js +2 -0
  65. package/dist/{chunk-IHAHCFFG.js → chunk-JRADU3PO.js} +1 -1
  66. package/dist/{chunk-CVCVBQP6.js → chunk-JT7I6OST.js} +1 -1
  67. package/dist/{chunk-DJR3M7XO.js → chunk-KAMJ7U4M.js} +1 -1
  68. package/dist/{chunk-3MFTTLOF.js → chunk-KUYJ6FEN.js} +1 -1
  69. package/dist/{chunk-AF572MQG.js → chunk-L4EDLDLZ.js} +3 -3
  70. package/dist/{chunk-KGSVOTLG.js → chunk-L77ZOU4N.js} +1 -1
  71. package/dist/{chunk-ZH64GOBG.js → chunk-N5JHMCRU.js} +1 -1
  72. package/dist/{chunk-LSZVSYAP.js → chunk-N7N222VC.js} +2 -2
  73. package/dist/{chunk-XO45NGSN.js → chunk-NDAAY2RL.js} +1 -1
  74. package/dist/{chunk-NVGM5ISX.js → chunk-NEAMQMYH.js} +1 -1
  75. package/dist/chunk-NEHX45NQ.js +15 -0
  76. package/dist/{chunk-IVYXXZEE.js → chunk-OSB32HJE.js} +1 -1
  77. package/dist/chunk-OVLCJ2VX.js +37 -0
  78. package/dist/{chunk-6IA6QMPH.js → chunk-P7YZ3PU3.js} +1 -1
  79. package/dist/{chunk-D6FYCAIA.js → chunk-PH22FRN5.js} +1 -1
  80. package/dist/{chunk-JANVTG62.js → chunk-PQWSHTSH.js} +1 -1
  81. package/dist/{chunk-TRVB7RSW.js → chunk-PRLTUEKP.js} +1 -1
  82. package/dist/{chunk-LCU2P3CH.js → chunk-PSWB3BWQ.js} +1 -1
  83. package/dist/{chunk-CDB3SYZG.js → chunk-PWFZZWYU.js} +1 -1
  84. package/dist/{chunk-3S5DDQLP.js → chunk-QBF5FJVL.js} +1 -1
  85. package/dist/{chunk-DOG7S7R6.js → chunk-QDIZQ3ZF.js} +1 -1
  86. package/dist/{chunk-FPAJURPL.js → chunk-QWDFFEEJ.js} +1 -1
  87. package/dist/{chunk-WMMJXI5O.js → chunk-RN3YHD4S.js} +1 -1
  88. package/dist/{chunk-WCF2Z4SE.js → chunk-SFXQFUM6.js} +1 -1
  89. package/dist/{chunk-XMYCRE5K.js → chunk-SIH6JG7S.js} +3 -3
  90. package/dist/{chunk-ITTZYA2G.js → chunk-TXH2KG7U.js} +1 -1
  91. package/dist/{chunk-NXXJ56QA.js → chunk-TYI4MLFJ.js} +1 -1
  92. package/dist/{chunk-DN42IM2Z.js → chunk-U55NUF4E.js} +2 -2
  93. package/dist/chunk-ULGZPRKU.js +2 -0
  94. package/dist/{chunk-BRIEBB2U.js → chunk-UOMRMCMI.js} +1 -1
  95. package/dist/{chunk-2ERQYYSJ.js → chunk-UONRTWLU.js} +1 -1
  96. package/dist/{chunk-2N4SZOWN.js → chunk-UTIGOLON.js} +1 -1
  97. package/dist/chunk-V444REBC.js +11 -0
  98. package/dist/chunk-VBCIDWSK.js +2 -0
  99. package/dist/{chunk-37ZWKLEN.js → chunk-VYYTENPY.js} +1 -1
  100. package/dist/{chunk-L5LI2JF4.js → chunk-VZ7KXRXB.js} +11 -11
  101. package/dist/{chunk-SQDKYSWT.js → chunk-W75AVBFG.js} +1 -1
  102. package/dist/{chunk-5OVEBP4D.js → chunk-XHNPNYJP.js} +1 -1
  103. package/dist/{chunk-6G5YKTVN.js → chunk-YB73T7QH.js} +1 -1
  104. package/dist/{chunk-APETOVZK.js → chunk-YBX2SQ5R.js} +1 -1
  105. package/dist/{chunk-HJ6AXOCR.js → chunk-ZI6W65E3.js} +1 -1
  106. package/dist/{chunk-GIQURCTO.js → chunk-ZK57J37M.js} +1 -1
  107. package/dist/{chunk-KHU7C6EE.js → chunk-ZKSN2SJ7.js} +1 -1
  108. package/dist/{chunk-ZPDM6FO7.js → chunk-ZSXDZI56.js} +2 -2
  109. package/dist/{config-OTUKOTHM.js → config-SFM45WCV.js} +1 -1
  110. package/dist/cover-cmd-7JILZJUK.js +3 -0
  111. package/dist/{credentials-A3RU25MJ.js → credentials-3CENDBPH.js} +1 -1
  112. package/dist/{deps-bundle-RIBEQC2R.js → deps-bundle-P37ZJDXC.js} +1 -1
  113. package/dist/{deps-resolve-7SWSUDRX.js → deps-resolve-VSICFRWU.js} +1 -1
  114. package/dist/{dispatch-RHSWJJLC.js → dispatch-HDGQAEWN.js} +1 -1
  115. package/dist/doctor-CPMWU5TL.js +2 -0
  116. package/dist/evidence-ABYJOIV2.js +2 -0
  117. package/dist/evidence-presentation-XF23B7F2.js +2 -0
  118. package/dist/{evolve-cmd-FFF3F3HO.js → evolve-cmd-MROTNJIV.js} +1 -1
  119. package/dist/{explain-cmd-3GEKR7O5.js → explain-cmd-2TKO7GRW.js} +1 -1
  120. package/dist/{extract-bind-VIPNGK2H.js → extract-bind-LBZMEDUK.js} +2 -2
  121. package/dist/{extract-cmd-5J47Q4XU.js → extract-cmd-K4KBPMB7.js} +1 -1
  122. package/dist/{gaps-cmd-WPCJPLGB.js → gaps-cmd-3ZX3PZF4.js} +1 -1
  123. package/dist/{generate-headless-AJI2OVRG.js → generate-headless-EBMWSLTR.js} +2 -2
  124. package/dist/index.js +147 -85
  125. package/dist/{ingest-cmd-2LK7DWDW.js → ingest-cmd-ULEWNGCI.js} +1 -1
  126. package/dist/install-YDH2CORO.js +2 -0
  127. package/dist/{interactive-bind-PI3HY623.js → interactive-bind-IYAJN45L.js} +3 -3
  128. package/dist/{list-commands-7Y5XV5FK.js → list-commands-YPBJNGCE.js} +1 -1
  129. package/dist/login-flow-W5SAB7NN.js +2 -0
  130. package/dist/{mobile-prompts-O5ALU3QU.js → mobile-prompts-LHUYRSV7.js} +1 -1
  131. package/dist/{persist-recorded-session-TKSU4HOA.js → persist-recorded-session-KCXYXSQG.js} +1 -1
  132. package/dist/pipeline-ELIXCTFZ.js +2 -0
  133. package/dist/prepare-target-OU2DQXSW.js +2 -0
  134. package/dist/{reconcile-cmd-VHEW2DY5.js → reconcile-cmd-TSQDYEUT.js} +1 -1
  135. package/dist/{reconcile-deps-UJ6KVUIS.js → reconcile-deps-ETMGIQNM.js} +2 -2
  136. package/dist/{reconcile-engine-NUQJSIFX.js → reconcile-engine-TLFTAOTZ.js} +1 -1
  137. package/dist/{recording-banner-GO2PP53Y.js → recording-banner-ACOLKL4K.js} +1 -1
  138. package/dist/{registry-KYPVINS2.js → registry-3Q6PNWCK.js} +1 -1
  139. package/dist/{require-project-folder-NUQMH224.js → require-project-folder-5KWTJAXN.js} +1 -1
  140. package/dist/resolve-run-intent-L2I7G55O.js +2 -0
  141. package/dist/{resolver-HHLYRR5W.js → resolver-NRU6HGTL.js} +1 -1
  142. package/dist/run-RHLRZCV5.js +2 -0
  143. package/dist/{run-OPLOL3PZ.js → run-T53Z5TCY.js} +1 -1
  144. package/dist/{run-test-md-3BA56ZYF.js → run-test-md-JYDYT3XF.js} +2 -2
  145. package/dist/{skill-installer-O7JYVZXD.js → skill-installer-NWF53JAB.js} +1 -1
  146. package/dist/{spawner-OZ4OE44T.js → spawner-LKYUMXSO.js} +1 -1
  147. package/dist/tcg-generate-2PHA7VNL.js +2 -0
  148. package/dist/{testmd-actions-YJ7O43Z6.js → testmd-actions-CRRUXYOP.js} +1 -1
  149. package/dist/token-refresh-XKXPM6H3.js +2 -0
  150. package/dist/{types-6E2HTDKJ.js → types-VYEOJ6U2.js} +1 -1
  151. package/dist/{validate-basic-HWYK3CU6.js → validate-basic-X2XPEBFD.js} +1 -1
  152. package/dist/{verdicts-KFPMRADV.js → verdicts-J2SDU4MW.js} +1 -1
  153. package/dist/{version-check-3ECNG5V2.js → version-check-DAWGRSJ5.js} +1 -1
  154. package/dist/{walk-session-MZCMXVZB.js → walk-session-D6TCM33V.js} +1 -1
  155. package/dist/{with-telemetry-Q6V6THIF.js → with-telemetry-RXLIXUMR.js} +1 -1
  156. package/package.json +11 -11
  157. package/dist/EvidenceViewOffer-POKUWAPS.js +0 -2
  158. package/dist/FolderPicker-GR6FZMUJ.js +0 -2
  159. package/dist/SingleShotApp-BK5QNXGG.js +0 -2
  160. package/dist/TestMdRunView-AT26LOSG.js +0 -2
  161. package/dist/bridge-UH32UGR5.js +0 -2
  162. package/dist/chunk-5NQ3TI4S.js +0 -13
  163. package/dist/chunk-A5FFLJVL.js +0 -26
  164. package/dist/chunk-D5VYMHSO.js +0 -2
  165. package/dist/chunk-DXI5TXNL.js +0 -19
  166. package/dist/chunk-IOD3HQVW.js +0 -11
  167. package/dist/chunk-ZUYPPPC5.js +0 -66
  168. package/dist/cover-cmd-HDZZWJXG.js +0 -3
  169. package/dist/doctor-XP7YDE3J.js +0 -2
  170. package/dist/evidence-K7R7OG2K.js +0 -2
  171. package/dist/login-flow-Z45G34DM.js +0 -2
  172. package/dist/pipeline-HZUV7IMT.js +0 -2
  173. package/dist/prepare-target-DBYKQ7HW.js +0 -2
  174. package/dist/resolve-run-intent-H3HX5KUC.js +0 -7
  175. package/dist/run-67ONKMGR.js +0 -2
  176. package/dist/tcg-generate-EG2MXRJ7.js +0 -2
  177. package/dist/token-refresh-K7CANKFQ.js +0 -2
  178. /package/dist/{lifecycle-cmd-HO5VL7AM.js → lifecycle-cmd-O2324GN6.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as T,f as P,g as $,h as G,j as N,k as M,l as B,m as I,n as L,o as U,p as F,r as z,s as C,t as _,u as O,v as K}from"./chunk-ZH64GOBG.js";import{d as J}from"./chunk-IFIXY3YG.js";import{b as k}from"./chunk-NVGM5ISX.js";import{c as x}from"./chunk-2ERQYYSJ.js";import"./chunk-L5LI2JF4.js";import"./chunk-5BVOF4UW.js";import"./chunk-TDPWFYTJ.js";import{a as A}from"./chunk-CJP7RX3E.js";import"./chunk-37ZWKLEN.js";import{h as H}from"./chunk-WCF2Z4SE.js";import"./chunk-BPMSNGXQ.js";import"./chunk-VE3SUJMA.js";import"./chunk-DXI5TXNL.js";import"./chunk-MMBBQ4OZ.js";import"./chunk-SPQPOUUR.js";import"./chunk-MSGW4JDG.js";import{m as E,n as q}from"./chunk-56PAQAX5.js";import"./chunk-5EOX4MEY.js";import"./chunk-4JOD47QI.js";import"./chunk-IHAHCFFG.js";import"./chunk-UBTNWAKK.js";import{a as R}from"./chunk-CVCVBQP6.js";import"./chunk-DPUV6OSP.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-EYOCNMUM.js";import{a as j}from"./chunk-5OVEBP4D.js";import"./chunk-D6FYCAIA.js";import"./chunk-UR6MHSHU.js";import{join as se}from"path";async function V(t){let e=t.projectId,n=t.folderId,r=null;if(!e&&t.autoResolve){let l=await t.resolver.resolve();if(!l)throw new $("unauthorized; run `kane-cli login`");let u=await H({creds:t.autoResolve.creds,config:t.autoResolve.config,profile:t.autoResolve.profile,env:t.autoResolve.envName,tmsCreds:{username:l.username,access_key:l.access_key},isLocal:!1,log:t.log});u.status==="ok"&&(e=u.projectId,n=n??u.folderId,u.autoDefaulted&&(r={projectId:u.autoDefaulted.projectId,projectName:u.autoDefaulted.projectName,folderId:u.autoDefaulted.folderId,folderName:u.autoDefaulted.folderName}))}return{baseUrl:`${t.env.testGeneratorBaseUrl}/test-generator/api/v2`,tmsBaseUrl:t.env.tmsBaseUrl,authResolver:t.resolver,projectId:e,folderId:n,suiteName:t.suiteName,autoDefaulted:r,log:t.log}}function Z(t){return t.reduce((e,n)=>e+(n.test_cases?.length??0),0)}var y=class{constructor(e=n=>process.stdout.write(n)){this.write=e}emit(e){this.write(JSON.stringify(e)+`
2
+ import{a as T,f as P,g as $,h as G,j as N,k as M,l as B,m as I,n as L,o as U,p as F,r as z,s as C,t as _,u as O,v as K}from"./chunk-N5JHMCRU.js";import{b as k}from"./chunk-NEAMQMYH.js";import{d as J}from"./chunk-3JLWPEQW.js";import{c as x}from"./chunk-UONRTWLU.js";import"./chunk-VZ7KXRXB.js";import"./chunk-DYGUHGZ6.js";import"./chunk-TDPWFYTJ.js";import{a as A}from"./chunk-BDUCWZYO.js";import"./chunk-VYYTENPY.js";import{h as H}from"./chunk-SFXQFUM6.js";import"./chunk-BPMSNGXQ.js";import"./chunk-VE3SUJMA.js";import"./chunk-7HXZZ3VA.js";import"./chunk-MMBBQ4OZ.js";import"./chunk-JCILRPOM.js";import"./chunk-MSGW4JDG.js";import{m as E,n as q}from"./chunk-56PAQAX5.js";import"./chunk-5EOX4MEY.js";import"./chunk-4JOD47QI.js";import"./chunk-JRADU3PO.js";import"./chunk-A3PGLDQY.js";import{a as R}from"./chunk-JT7I6OST.js";import"./chunk-DPUV6OSP.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-EYOCNMUM.js";import{a as j}from"./chunk-XHNPNYJP.js";import"./chunk-PH22FRN5.js";import"./chunk-UR6MHSHU.js";import{join as se}from"path";async function V(t){let e=t.projectId,n=t.folderId,r=null;if(!e&&t.autoResolve){let l=await t.resolver.resolve();if(!l)throw new $("unauthorized; run `kane-cli login`");let u=await H({creds:t.autoResolve.creds,config:t.autoResolve.config,profile:t.autoResolve.profile,env:t.autoResolve.envName,tmsCreds:{username:l.username,access_key:l.access_key},isLocal:!1,log:t.log});u.status==="ok"&&(e=u.projectId,n=n??u.folderId,u.autoDefaulted&&(r={projectId:u.autoDefaulted.projectId,projectName:u.autoDefaulted.projectName,folderId:u.autoDefaulted.folderId,folderName:u.autoDefaulted.folderName}))}return{baseUrl:`${t.env.testGeneratorBaseUrl}/test-generator/api/v2`,tmsBaseUrl:t.env.tmsBaseUrl,authResolver:t.resolver,projectId:e,folderId:n,suiteName:t.suiteName,autoDefaulted:r,log:t.log}}function Z(t){return t.reduce((e,n)=>e+(n.test_cases?.length??0),0)}var y=class{constructor(e=n=>process.stdout.write(n)){this.write=e}emit(e){this.write(JSON.stringify(e)+`
3
3
  `)}onStart(e){this.emit({type:"generate_start",request_id:e.requestId,objective_chars:e.objectiveChars,scenario_limit:e.scenarioLimit,per_scenario_limit:e.perScenarioLimit,is_refine:e.isRefine})}onUpload(e){this.emit({type:"generate_upload",file:e.file,index:e.index,total:e.total,status:e.status})}onThinking(e){this.emit({type:"generate_thinking",took_ms:e.tookMs})}onProgress(e){this.emit({type:"generate_progress",pct:e})}onSnapshot(e){this.emit({type:"generate_snapshot",scenario_count:e.scenarios.length,case_count:Z(e.scenarios),scenarios:e.scenarios})}onClarification(e){this.emit({type:"generate_clarification",text:e})}onChat(e){this.emit({type:"generate_chat",text:e})}onError(e){this.emit({type:"error",message:e})}onSaveResult(e){this.emit({type:"generate_save_result",suite_dir:e.suiteDir,saved:e.saved,fell_back:e.fellBack,...e.warning?{warning:e.warning}:{}})}onDone(e){this.emit({type:"generate_done",request_id:e.requestId,status:e.status,scenario_count:e.scenarioCount,case_count:e.caseCount,refine_hint:e.refineHint,save_hint:e.saveHint,...e.suiteDir?{suite_dir:e.suiteDir}:{}})}onUpdateAvailable(e){this.emit({type:"update_available",current:e.current,latest:e.latest,severity:e.severity})}},S=class{constructor(e=n=>process.stdout.write(n)){this.write=e}onStart(e){let n=e.isRefine?"Refining":"Generating";this.write(`${n} (request ${e.requestId})\u2026
4
4
  `)}onUpload(e){e.status==="uploading"&&this.write(` uploading ${e.file} (${e.index}/${e.total})
5
5
  `)}onThinking(e){let n=e.tookMs?` (${Math.round(e.tookMs/1e3)}s)`:"";this.write(` thinking${n}
@@ -16,6 +16,6 @@ import{a as T,f as P,g as $,h as G,j as N,k as M,l as B,m as I,n as L,o as U,p a
16
16
  `),this.write(` Save: ${e.saveHint}
17
17
  `),e.suiteDir&&this.write(` Saved: ${e.suiteDir}
18
18
  `)}onUpdateAvailable(e){this.write(`(update available: ${e.current} \u2192 ${e.latest})
19
- `)}};import{createHash as ee}from"crypto";function te(t){return ee("sha1").update(JSON.stringify({t:t.title,p:t.preconditions,m:t.manual_steps})).digest("hex")}function re(t){let e=[];for(let n of t.scenarios)for(let r of n.test_cases??[])I(r)&&r.manual_steps!=null&&e.push(r);return e}async function ne(t,e,n){let r=new Array(t.length),l=0,u=Array.from({length:Math.min(e,t.length)},async()=>{for(;;){let d=l++;if(d>=t.length)return;try{r[d]={ok:!0,value:await n(t[d])}}catch{r[d]={ok:!1}}}});return await Promise.all(u),r}async function Y(t,e,n){let r=re(t),l=n.run??(async(c,s)=>{let m=await n.resolveAuth(),o=U({objective:c,model:n.model,sessionId:n.sessionId,auth:m});return F(o,n.spawnOpts,s)}),u=r.map(te),d=[...new Set(u)],g=new Map;d.forEach(c=>{g.set(c,r[u.indexOf(c)])});let p=d.map(c=>g.get(c)),v=await ne(p,n.concurrency??3,c=>l(L(c))),i=new Map;d.forEach((c,s)=>{let m=v[s];m.ok&&i.set(c,m.value)});let f=new Map;r.forEach((c,s)=>{f.set(c.id,i.get(u[s]))});let a=0;for(let c of t.scenarios)for(let s of c.test_cases??[])I(s)&&!f.get(s.id)&&a++;let w=c=>{let s=f.get(c.id);return s?N(s,c):M(c)};return{...await B(t,e,{suiteName:n.suiteName,redirectBareCwd:!1},w),fellBack:a}}function Pe(t,e){let n=!!t.agent||!!t.refine||!!t.save||!e,r=t.agent?"agent":"plain";return{headless:n,mode:r}}function $e(t){return t.refine&&t.save?{error:"use --refine or --save, not both"}:t.save?t.objective?{error:"--save takes no objective; use --refine to add to a request"}:t.req?{op:"save"}:{error:"--save requires --req <id>"}:t.refine?t.req?t.objective?t.out?{error:"--out is only valid with --save"}:{op:"refine"}:{error:"--refine needs a refinement objective"}:{error:"--refine requires --req <id>"}:t.req?{error:"--req requires --refine or --save"}:t.out?{error:"--out is only valid with --save"}:t.objective?{op:"new"}:{error:"provide an objective, or use --refine/--save with --req"}}function ie(){return se(process.cwd(),".testmuai","tests")}function Ge(t){if(typeof t!="string")return;let e=t.split(",").map(n=>n.trim()).filter(Boolean);return e.length?e:void 0}var X="tcg-generate-headless";function Q(t){return{refineHint:`kane-cli generate "<refinement>" --refine --req ${t}`,saveHint:`kane-cli generate --save --req ${t}`}}function W(t){return t.scenarios.reduce((e,n)=>e+(n.test_cases?.length??0),0)}function oe(t){return t==="completed"?0:t==="stopped"?3:1}async function Ne(t,e){let n=e.write??(i=>process.stdout.write(i)),r=e.sink??(e.mode==="agent"?new y(n):new S(n)),l,u,d=null;try{let i=await e.makeClient();l=i.client,u=i.conn,d=i.autoDefaulted}catch(i){return r.onError(i.message),2}if(e.mode==="agent"&&d){let{buildAutoDefaultedNdjson:i}=await import("./require-project-folder-NUQMH224.js");n(i(d))}try{let i=await(e.checkUpdate??J)();i&&r.onUpdateAvailable(i)}catch{}let g=t.reqId??null;E(X,()=>{g&&l.cancel(g).catch(()=>{})});let p=process.cwd(),v={validate:e.validate??z,upload:e.upload??O,buildMappings:K,onUpload:i=>r.onUpload(i)};try{if(t.op==="save"){let s;try{s=(await l.attach(t.reqId)).state}catch(D){return r.onError(D.message),2}g=s.requestId,r.onSnapshot(s);let m=t.outDir??ie(),o=await e.materialize(s,m,t.suiteName);r.onSaveResult({suiteDir:o.suiteDir,saved:o.paths.length,fellBack:o.fellBack,warning:o.warning});let h=Q(s.requestId);return r.onDone({requestId:s.requestId,status:"completed",scenarioCount:s.scenarios.length,caseCount:W(s),refineHint:h.refineHint,saveHint:h.saveHint,suiteDir:o.suiteDir}),0}let i=t.op==="refine",f,a;if(i){let s;try{s=await l.attach(t.reqId)}catch(o){return r.onError(o.message),2}if(a=s.state,g=a.requestId,a.error)return r.onError(a.error),2;let m;try{m=await _({promptText:t.objective,filePaths:t.files??[],cwd:p,scenarios:a.scenarios,isRefine:!0,conn:u,deps:v})}catch(o){if(o instanceof C){for(let h of o.errors)r.onError(h);return 2}return r.onError(o.message),2}for(let o of m.warnings)process.stderr.write(`warning: ${o}
19
+ `)}};import{createHash as ee}from"crypto";function te(t){return ee("sha1").update(JSON.stringify({t:t.title,p:t.preconditions,m:t.manual_steps})).digest("hex")}function re(t){let e=[];for(let n of t.scenarios)for(let r of n.test_cases??[])I(r)&&r.manual_steps!=null&&e.push(r);return e}async function ne(t,e,n){let r=new Array(t.length),l=0,u=Array.from({length:Math.min(e,t.length)},async()=>{for(;;){let d=l++;if(d>=t.length)return;try{r[d]={ok:!0,value:await n(t[d])}}catch{r[d]={ok:!1}}}});return await Promise.all(u),r}async function Y(t,e,n){let r=re(t),l=n.run??(async(c,s)=>{let m=await n.resolveAuth(),o=U({objective:c,model:n.model,sessionId:n.sessionId,auth:m});return F(o,n.spawnOpts,s)}),u=r.map(te),d=[...new Set(u)],g=new Map;d.forEach(c=>{g.set(c,r[u.indexOf(c)])});let p=d.map(c=>g.get(c)),v=await ne(p,n.concurrency??3,c=>l(L(c))),i=new Map;d.forEach((c,s)=>{let m=v[s];m.ok&&i.set(c,m.value)});let f=new Map;r.forEach((c,s)=>{f.set(c.id,i.get(u[s]))});let a=0;for(let c of t.scenarios)for(let s of c.test_cases??[])I(s)&&!f.get(s.id)&&a++;let w=c=>{let s=f.get(c.id);return s?N(s,c):M(c)};return{...await B(t,e,{suiteName:n.suiteName,redirectBareCwd:!1},w),fellBack:a}}function Pe(t,e){let n=!!t.agent||!!t.refine||!!t.save||!e,r=t.agent?"agent":"plain";return{headless:n,mode:r}}function $e(t){return t.refine&&t.save?{error:"use --refine or --save, not both"}:t.save?t.objective?{error:"--save takes no objective; use --refine to add to a request"}:t.req?{op:"save"}:{error:"--save requires --req <id>"}:t.refine?t.req?t.objective?t.out?{error:"--out is only valid with --save"}:{op:"refine"}:{error:"--refine needs a refinement objective"}:{error:"--refine requires --req <id>"}:t.req?{error:"--req requires --refine or --save"}:t.out?{error:"--out is only valid with --save"}:t.objective?{op:"new"}:{error:"provide an objective, or use --refine/--save with --req"}}function ie(){return se(process.cwd(),".testmuai","tests")}function Ge(t){if(typeof t!="string")return;let e=t.split(",").map(n=>n.trim()).filter(Boolean);return e.length?e:void 0}var X="tcg-generate-headless";function Q(t){return{refineHint:`kane-cli generate "<refinement>" --refine --req ${t}`,saveHint:`kane-cli generate --save --req ${t}`}}function W(t){return t.scenarios.reduce((e,n)=>e+(n.test_cases?.length??0),0)}function oe(t){return t==="completed"?0:t==="stopped"?3:1}async function Ne(t,e){let n=e.write??(i=>process.stdout.write(i)),r=e.sink??(e.mode==="agent"?new y(n):new S(n)),l,u,d=null;try{let i=await e.makeClient();l=i.client,u=i.conn,d=i.autoDefaulted}catch(i){return r.onError(i.message),2}if(e.mode==="agent"&&d){let{buildAutoDefaultedNdjson:i}=await import("./require-project-folder-5KWTJAXN.js");n(i(d))}try{let i=await(e.checkUpdate??J)();i&&r.onUpdateAvailable(i)}catch{}let g=t.reqId??null;E(X,()=>{g&&l.cancel(g).catch(()=>{})});let p=process.cwd(),v={validate:e.validate??z,upload:e.upload??O,buildMappings:K,onUpload:i=>r.onUpload(i)};try{if(t.op==="save"){let s;try{s=(await l.attach(t.reqId)).state}catch(D){return r.onError(D.message),2}g=s.requestId,r.onSnapshot(s);let m=t.outDir??ie(),o=await e.materialize(s,m,t.suiteName);r.onSaveResult({suiteDir:o.suiteDir,saved:o.paths.length,fellBack:o.fellBack,warning:o.warning});let h=Q(s.requestId);return r.onDone({requestId:s.requestId,status:"completed",scenarioCount:s.scenarios.length,caseCount:W(s),refineHint:h.refineHint,saveHint:h.saveHint,suiteDir:o.suiteDir}),0}let i=t.op==="refine",f,a;if(i){let s;try{s=await l.attach(t.reqId)}catch(o){return r.onError(o.message),2}if(a=s.state,g=a.requestId,a.error)return r.onError(a.error),2;let m;try{m=await _({promptText:t.objective,filePaths:t.files??[],cwd:p,scenarios:a.scenarios,isRefine:!0,conn:u,deps:v})}catch(o){if(o instanceof C){for(let h of o.errors)r.onError(h);return 2}return r.onError(o.message),2}for(let o of m.warnings)process.stderr.write(`warning: ${o}
20
20
  `);r.onStart({requestId:a.requestId,objectiveChars:m.promptText.length,scenarioLimit:t.scenarioLimit,perScenarioLimit:t.perScenarioLimit,isRefine:!0});try{await l.chat(t.reqId,m.promptText,{mappings:m.mappings,attachments:m.attachments})}catch(o){return r.onError(o.message),2}f=s.events}else{let s;try{s=await _({promptText:t.objective,filePaths:t.files??[],cwd:p,scenarios:[],isRefine:!1,conn:u,deps:v})}catch(o){if(o instanceof C){for(let h of o.errors)r.onError(h);return 2}return r.onError(o.message),2}for(let o of s.warnings)process.stderr.write(`warning: ${o}
21
21
  `);let m;try{m=await l.start({prompt:s.promptText,attachments:s.attachments,scenarioLimit:t.scenarioLimit,perScenarioLimit:t.perScenarioLimit,memoryEnhancement:t.memory})}catch(o){return r.onError(o.message),2}a=m.state,g=a.requestId,r.onStart({requestId:a.requestId,objectiveChars:s.promptText.length,scenarioLimit:t.scenarioLimit,perScenarioLimit:t.perScenarioLimit,isRefine:!1}),f=m.events}let w="";for await(let s of f){switch(a=P(a,s),s.type){case"thinking_done":r.onThinking({tookMs:s.tookMs});break;case"progress":r.onProgress(s.pct);break;case"clarification":r.onClarification(s.text);break;case"chat":r.onChat(s.text);break;case"error":r.onError(s.message);break;case"done":w=s.status;break;default:break}if(s.type==="done"||s.type!=="thinking"&&a.status&&T(a.status))break}r.onSnapshot(a);let b=w||a.status||"completed",c=Q(a.requestId);return r.onDone({requestId:a.requestId,status:b,scenarioCount:a.scenarios.length,caseCount:W(a),refineHint:c.refineHint,saveHint:c.saveHint,suiteDir:void 0}),oe(b)}finally{q(X)}}var ae=()=>{};async function Me(t){let e=new j,n=new A,r=e.getActiveProfile()??"default",l=t.env??e.getDefaultEnv()??"prod",u=R(l),d=new x;t.name&&d.setSessionName(t.name);let g=n.load().model,p=async()=>{let i=await k({creds:e,env:l,usernameFlag:t.username,accessKeyFlag:t.accessKey,log:()=>{}}),f=await V({resolver:i.resolver,env:u,log:ae,projectId:t.projectId,folderId:t.folderId,autoResolve:t.projectId?void 0:{creds:e,config:n,profile:r,envName:l}});return{client:G(f),conn:f,autoDefaulted:f.autoDefaulted??null}},v=async()=>{let i=await k({creds:e,env:l,usernameFlag:t.username,accessKeyFlag:t.accessKey,log:()=>{}});return i.basicAuth?{username:i.basicAuth.username,access_key:i.basicAuth.access_key}:i.token?{auth:{type:"bearer",token:i.token}}:{}};return{mode:t.mode,makeClient:p,materialize:(i,f,a)=>Y(i,f,{model:g,sessionId:d.sessionId,resolveAuth:v,spawnOpts:{environment:l},suiteName:a})}}export{Me as buildHeadlessDeps,Pe as decideGenerateMode,ie as defaultOutDir,Ge as parseFilesFlag,$e as resolveGenerateOp,Ne as runGenerateHeadless};