@testmuai/kane-cli 0.6.0 → 0.6.1

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 (99) hide show
  1. package/dist/{ChatSurface-I6PFL3OE.js → ChatSurface-R55VO3VW.js} +1 -1
  2. package/dist/{ChromeProfilePicker-YG7TKHM5.js → ChromeProfilePicker-BZKLIO2T.js} +1 -1
  3. package/dist/{CliFeedbackPrompt-5RUIP4KA.js → CliFeedbackPrompt-3HYRBMXS.js} +1 -1
  4. package/dist/{CliUploadProgress-YQYPZNEV.js → CliUploadProgress-OAPMO5I3.js} +1 -1
  5. package/dist/{ConfigView-HZ7MFCAJ.js → ConfigView-YIAAISLE.js} +1 -1
  6. package/dist/{EvidenceViewOffer-N4UED7VY.js → EvidenceViewOffer-DBMZQ34Z.js} +1 -1
  7. package/dist/FolderPicker-ILK4AIKL.js +2 -0
  8. package/dist/{HelpView-BLWTCQ6T.js → HelpView-HBQX64VR.js} +1 -1
  9. package/dist/{InfoBox-7ZZGMYHY.js → InfoBox-DKJO73HM.js} +1 -1
  10. package/dist/{LinksBox-63Q5YS5X.js → LinksBox-44WCVBT4.js} +1 -1
  11. package/dist/{ProfilesView-AVYB43ES.js → ProfilesView-NVEDYU3H.js} +1 -1
  12. package/dist/{ProjectPicker-EINNALUG.js → ProjectPicker-COBY7TCY.js} +1 -1
  13. package/dist/{SaveSessionPrompt-C3LCI2KZ.js → SaveSessionPrompt-O4ENMYHP.js} +1 -1
  14. package/dist/SingleShotApp-NA6A2S6I.js +2 -0
  15. package/dist/{SummaryBox-NRPQ2AMW.js → SummaryBox-ROV7TNK4.js} +1 -1
  16. package/dist/TestMdRunView-U5YTNLY6.js +2 -0
  17. package/dist/{WhoamiView-YLMIEJQN.js → WhoamiView-4QV3DPN2.js} +1 -1
  18. package/dist/{bind-QYQ5IT4S.js → bind-RDTZZ6ZI.js} +2 -2
  19. package/dist/{bridge-QENVIWWC.js → bridge-VY2Q3HQU.js} +1 -1
  20. package/dist/{changelog-4RSI7UIO.js → changelog-JMFGVNEU.js} +1 -1
  21. package/dist/{chunk-BV3EARZO.js → chunk-2PDWMY2B.js} +1 -1
  22. package/dist/{chunk-6BQD2BXI.js → chunk-2T4JPBB5.js} +1 -1
  23. package/dist/{chunk-YWWKKKXY.js → chunk-37CI4EJX.js} +1 -1
  24. package/dist/{chunk-ZZOSDBYN.js → chunk-47RNFG2V.js} +3 -3
  25. package/dist/{chunk-OXARXMMD.js → chunk-4CRKK5WV.js} +1 -1
  26. package/dist/{chunk-HYW5VDEC.js → chunk-5FD6ZXB5.js} +1 -1
  27. package/dist/{chunk-LBBPMEO2.js → chunk-5UXL6RNG.js} +1 -1
  28. package/dist/{chunk-NWZTYAJB.js → chunk-7DBQEOFL.js} +1 -1
  29. package/dist/{chunk-3SK5GXQM.js → chunk-7SUKUJO2.js} +1 -1
  30. package/dist/{chunk-MQ7DJ2XC.js → chunk-AAWRKFE4.js} +1 -1
  31. package/dist/{chunk-Y2S3PW7N.js → chunk-BMSWIYYK.js} +1 -1
  32. package/dist/{chunk-N2BUF6YU.js → chunk-CB3TEWZJ.js} +1 -1
  33. package/dist/{chunk-TZVURR5H.js → chunk-CP4XCWAJ.js} +1 -1
  34. package/dist/{chunk-NOOHQBUD.js → chunk-FAIH2K2U.js} +1 -1
  35. package/dist/{chunk-5Q46BEG7.js → chunk-FS4YJM22.js} +1 -1
  36. package/dist/{chunk-RTWWPEQ7.js → chunk-HGL3RM7P.js} +1 -1
  37. package/dist/{chunk-MKD3KZPM.js → chunk-HMGNPFXP.js} +1 -1
  38. package/dist/{chunk-IPCC3P6T.js → chunk-IRDMEYJB.js} +2 -2
  39. package/dist/{chunk-QI6WZ56Y.js → chunk-ISAE457F.js} +1 -1
  40. package/dist/{chunk-WUNN5OCH.js → chunk-J5BUMF3G.js} +1 -1
  41. package/dist/{chunk-25YSMNUP.js → chunk-KFAYCOTB.js} +1 -1
  42. package/dist/{chunk-INP7FG6V.js → chunk-KGP7NSXH.js} +1 -1
  43. package/dist/{chunk-WUMNIGPR.js → chunk-MJFYMMX2.js} +1 -1
  44. package/dist/{chunk-FAXRERS6.js → chunk-MMI3VSCA.js} +1 -1
  45. package/dist/{chunk-CBIW5DTU.js → chunk-MZ2PXBKK.js} +1 -1
  46. package/dist/{chunk-IF2R3AR4.js → chunk-N2ZW5635.js} +1 -1
  47. package/dist/{chunk-C5NNT7Y3.js → chunk-NSSKSXCT.js} +1 -1
  48. package/dist/{chunk-XQDDUVD3.js → chunk-O4O4KL6Z.js} +1 -1
  49. package/dist/{chunk-FPGOV4AQ.js → chunk-OBBXDBEE.js} +1 -1
  50. package/dist/{chunk-VK7RF53I.js → chunk-Q4P2L7DY.js} +1 -1
  51. package/dist/{chunk-NTJDMMLC.js → chunk-Q4PUOA46.js} +2 -2
  52. package/dist/{chunk-WFSQZG26.js → chunk-QZWQCHXK.js} +1 -1
  53. package/dist/{chunk-MESFNOY3.js → chunk-R2K2SGGE.js} +1 -1
  54. package/dist/{chunk-D5SHVZGD.js → chunk-RH2OAIJI.js} +1 -1
  55. package/dist/{chunk-WFAMF4SG.js → chunk-ROPXE7TF.js} +1 -1
  56. package/dist/{chunk-B2OAEEKI.js → chunk-RY4OOGSC.js} +1 -1
  57. package/dist/{chunk-ZXDA4K6G.js → chunk-S74MQRDN.js} +1 -1
  58. package/dist/{chunk-QK6KZMYG.js → chunk-SB6MBQKR.js} +1 -1
  59. package/dist/{chunk-VXS23M67.js → chunk-SQJWMOJQ.js} +1 -1
  60. package/dist/{chunk-PGEMGGBS.js → chunk-SUDAFBVD.js} +2 -2
  61. package/dist/{chunk-WG3BBXJF.js → chunk-VXD5667K.js} +2 -2
  62. package/dist/{chunk-LKXVYWKG.js → chunk-WAGJLR5X.js} +1 -1
  63. package/dist/{chunk-ABSEKYIB.js → chunk-WGG5XURS.js} +2 -2
  64. package/dist/{chunk-ME3GYVBV.js → chunk-WRHZCHZY.js} +1 -1
  65. package/dist/{chunk-5U3GOEGG.js → chunk-XDW2RGIL.js} +1 -1
  66. package/dist/{chunk-H7ZQ4AWL.js → chunk-YJ6AQ2KP.js} +1 -1
  67. package/dist/{chunk-ZO7ROBPR.js → chunk-ZA67EBYF.js} +1 -1
  68. package/dist/{chunk-GNGGFK7C.js → chunk-ZNANAARA.js} +1 -1
  69. package/dist/{credentials-WUEKK7FI.js → credentials-L63BBW2S.js} +1 -1
  70. package/dist/{evidence-4BSNTVND.js → evidence-UAFPTHQX.js} +1 -1
  71. package/dist/{evolve-cmd-VUWLH3CO.js → evolve-cmd-2SPNVTT4.js} +1 -1
  72. package/dist/{extract-bind-T7SUAID6.js → extract-bind-DS4UP23P.js} +2 -2
  73. package/dist/{extract-cmd-LZW7CRT3.js → extract-cmd-PMZHMMU7.js} +1 -1
  74. package/dist/{generate-headless-C55T3GGR.js → generate-headless-C3UZKDS5.js} +2 -2
  75. package/dist/index.js +12 -12
  76. package/dist/{interactive-bind-P6AGLUMM.js → interactive-bind-SJLDJULN.js} +2 -2
  77. package/dist/{list-commands-M34USUNO.js → list-commands-PGAX5HRB.js} +1 -1
  78. package/dist/login-flow-4OJ34VDP.js +2 -0
  79. package/dist/{persist-recorded-session-L2KAY37H.js → persist-recorded-session-WFU4M4SQ.js} +1 -1
  80. package/dist/{pipeline-FJXQIFW7.js → pipeline-EYQUM27P.js} +1 -1
  81. package/dist/{reconcile-cmd-KTCH4KZQ.js → reconcile-cmd-TFFYCTCY.js} +2 -2
  82. package/dist/{recording-banner-2KIVZAXY.js → recording-banner-PH2NND2X.js} +1 -1
  83. package/dist/{require-project-folder-NOGEHZTS.js → require-project-folder-RD2UAB7E.js} +1 -1
  84. package/dist/{run-P4CHG2VH.js → run-NODOSQUL.js} +1 -1
  85. package/dist/{run-test-md-ICLG4OPX.js → run-test-md-I6O4H7B2.js} +2 -2
  86. package/dist/{skill-installer-KGPXQRCE.js → skill-installer-BJLHH3DW.js} +1 -1
  87. package/dist/{spawner-DDD3ICOX.js → spawner-UDCF35OA.js} +1 -1
  88. package/dist/tcg-generate-E7H4LF7Y.js +2 -0
  89. package/dist/{testmd-actions-45BY3YFO.js → testmd-actions-FMVUXZGX.js} +1 -1
  90. package/dist/token-refresh-OGBTJGZ2.js +2 -0
  91. package/dist/{validate-basic-QCD4VN37.js → validate-basic-WILRWRRP.js} +1 -1
  92. package/dist/{version-check-55YZMQUI.js → version-check-TXTCVX2N.js} +1 -1
  93. package/package.json +6 -6
  94. package/dist/FolderPicker-NAFYP7ES.js +0 -2
  95. package/dist/SingleShotApp-PS42WWT7.js +0 -2
  96. package/dist/TestMdRunView-5FVCEQZI.js +0 -2
  97. package/dist/login-flow-GMLHK6JT.js +0 -2
  98. package/dist/tcg-generate-KBXZIIHB.js +0 -2
  99. package/dist/token-refresh-OCFALJ7U.js +0 -2
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as f}from"./chunk-5Q46BEG7.js";import{x as t}from"./chunk-MKD3KZPM.js";import{a as x}from"./chunk-HCBYKLMW.js";import{a as r,b as n}from"./chunk-C44QQJR4.js";import{a as B}from"./chunk-6YGTRKDT.js";import{e as p}from"./chunk-UR6MHSHU.js";var c=p(B(),1);var e=p(x(),1);function v(){return[{name:"convert",label:"Converting session data",status:"pending"},{name:"zip",label:"Compressing artifacts",status:"pending"},{name:"presign",label:"Requesting upload URLs",status:"pending"},{name:"upload",label:"Uploading to KaneAI",status:"pending"},{name:"atomic_replace",label:"Replacing local output",status:"pending"},{name:"commit_lock",label:"Committing to TMS",status:"pending"},{name:"finalize",label:"Finalizing test case",status:"pending"},{name:"code_export",label:"Downloading test code",status:"pending"}]}function U(s,o,d,a){return s.map(l=>l.name===o?{...l,status:d,detail:a}:l)}function R(s){let o=s/1e3;if(o<60)return`${o.toFixed(1)}s`;let d=Math.floor(o/60),a=Math.round(o%60);return`${d}m ${a}s`}function D(s){let[o,d]=(0,c.useState)(0),a=c.default.useRef(Date.now());return(0,c.useEffect)(()=>{if(!s)return;a.current=Date.now();let l=setInterval(()=>{d(Date.now()-a.current)},100);return()=>clearInterval(l)},[s]),o}function h({steps:s,status:o,testUrl:d,error:a}){let l=D(o==="uploading");return o==="uploading"?(0,e.jsxs)(r,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,e.jsxs)(r,{children:[(0,e.jsx)(n,{color:t.orange,children:"\u2601 "}),(0,e.jsx)(n,{color:t.orange,bold:!0,children:"Saving to KaneAI"}),(0,e.jsxs)(n,{color:t.dim,children:[" ",R(l)]})]}),(0,e.jsx)(r,{flexDirection:"column",marginTop:1,children:s.filter(i=>i.status!=="skipped").map((i,S,T)=>{let b=S===T.length-1?"\u2514\u2500":"\u251C\u2500",u=i.status==="done",m=i.status==="running",g=i.status==="failed";return(0,e.jsxs)(r,{children:[(0,e.jsxs)(n,{color:t.dim,children:[" ",b," "]}),(0,e.jsx)(r,{width:3,children:m?(0,e.jsx)(f,{}):u?(0,e.jsx)(n,{color:t.green,children:"\u2713"}):g?(0,e.jsx)(n,{color:t.red,children:"\u2717"}):(0,e.jsx)(n,{color:t.muted,children:"\u25CB"})}),(0,e.jsx)(n,{color:u?t.dim:m?void 0:g?t.red:t.muted,children:i.label}),i.detail&&(0,e.jsxs)(n,{color:t.dim,children:[" ",i.detail]})]},i.name)})}),(0,e.jsx)(r,{marginTop:1,children:(0,e.jsx)(n,{color:t.muted,children:" press Ctrl+C twice to force exit"})})]}):o==="success"?(0,e.jsx)(e.Fragment,{}):(0,e.jsxs)(r,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,e.jsxs)(r,{children:[(0,e.jsx)(n,{color:t.red,children:"\u2601 "}),(0,e.jsx)(n,{color:t.red,bold:!0,children:"Save failed"})]}),a&&(0,e.jsxs)(r,{marginTop:0,children:[(0,e.jsx)(n,{color:t.dim,children:" "}),(0,e.jsx)(n,{color:t.dim,children:a})]})]})}export{v as a,U as b,h as c};
2
+ import{a as f}from"./chunk-FS4YJM22.js";import{x as t}from"./chunk-HMGNPFXP.js";import{a as x}from"./chunk-HCBYKLMW.js";import{a as r,b as n}from"./chunk-C44QQJR4.js";import{a as B}from"./chunk-6YGTRKDT.js";import{e as p}from"./chunk-UR6MHSHU.js";var c=p(B(),1);var e=p(x(),1);function v(){return[{name:"convert",label:"Converting session data",status:"pending"},{name:"zip",label:"Compressing artifacts",status:"pending"},{name:"presign",label:"Requesting upload URLs",status:"pending"},{name:"upload",label:"Uploading to KaneAI",status:"pending"},{name:"atomic_replace",label:"Replacing local output",status:"pending"},{name:"commit_lock",label:"Committing to TMS",status:"pending"},{name:"finalize",label:"Finalizing test case",status:"pending"},{name:"code_export",label:"Downloading test code",status:"pending"}]}function U(s,o,d,a){return s.map(l=>l.name===o?{...l,status:d,detail:a}:l)}function R(s){let o=s/1e3;if(o<60)return`${o.toFixed(1)}s`;let d=Math.floor(o/60),a=Math.round(o%60);return`${d}m ${a}s`}function D(s){let[o,d]=(0,c.useState)(0),a=c.default.useRef(Date.now());return(0,c.useEffect)(()=>{if(!s)return;a.current=Date.now();let l=setInterval(()=>{d(Date.now()-a.current)},100);return()=>clearInterval(l)},[s]),o}function h({steps:s,status:o,testUrl:d,error:a}){let l=D(o==="uploading");return o==="uploading"?(0,e.jsxs)(r,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,e.jsxs)(r,{children:[(0,e.jsx)(n,{color:t.orange,children:"\u2601 "}),(0,e.jsx)(n,{color:t.orange,bold:!0,children:"Saving to KaneAI"}),(0,e.jsxs)(n,{color:t.dim,children:[" ",R(l)]})]}),(0,e.jsx)(r,{flexDirection:"column",marginTop:1,children:s.filter(i=>i.status!=="skipped").map((i,S,T)=>{let b=S===T.length-1?"\u2514\u2500":"\u251C\u2500",u=i.status==="done",m=i.status==="running",g=i.status==="failed";return(0,e.jsxs)(r,{children:[(0,e.jsxs)(n,{color:t.dim,children:[" ",b," "]}),(0,e.jsx)(r,{width:3,children:m?(0,e.jsx)(f,{}):u?(0,e.jsx)(n,{color:t.green,children:"\u2713"}):g?(0,e.jsx)(n,{color:t.red,children:"\u2717"}):(0,e.jsx)(n,{color:t.muted,children:"\u25CB"})}),(0,e.jsx)(n,{color:u?t.dim:m?void 0:g?t.red:t.muted,children:i.label}),i.detail&&(0,e.jsxs)(n,{color:t.dim,children:[" ",i.detail]})]},i.name)})}),(0,e.jsx)(r,{marginTop:1,children:(0,e.jsx)(n,{color:t.muted,children:" press Ctrl+C twice to force exit"})})]}):o==="success"?(0,e.jsx)(e.Fragment,{}):(0,e.jsxs)(r,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,e.jsxs)(r,{children:[(0,e.jsx)(n,{color:t.red,children:"\u2601 "}),(0,e.jsx)(n,{color:t.red,bold:!0,children:"Save failed"})]}),a&&(0,e.jsxs)(r,{marginTop:0,children:[(0,e.jsx)(n,{color:t.dim,children:" "}),(0,e.jsx)(n,{color:t.dim,children:a})]})]})}export{v as a,U as b,h as c};
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as m}from"./chunk-N2BUF6YU.js";import{x as t}from"./chunk-MKD3KZPM.js";import{a as p}from"./chunk-HCBYKLMW.js";import{a,b as r,i as u}from"./chunk-C44QQJR4.js";import{a as b}from"./chunk-6YGTRKDT.js";import{e as n}from"./chunk-UR6MHSHU.js";var c=n(b(),1);var e=n(p(),1);function R({onSubmit:l}){let[o,f]=(0,c.useState)(0),s=(0,c.useRef)(!1);return u((x,i)=>{s.current||(i.leftArrow||i.rightArrow?f(d=>d===0?1:0):i.return?(s.current=!0,l(o===0?"positive":"negative")):i.escape&&(s.current=!0,l(null)))}),(0,e.jsxs)(a,{flexDirection:"column",marginTop:1,children:[(0,e.jsxs)(a,{children:[(0,e.jsx)(r,{color:t.secondary,children:"Rate this session: "}),(0,e.jsx)(r,{color:o===0?t.orange:t.dim,children:o===0?"[ \u{1F44D} ]":" \u{1F44D} "}),(0,e.jsx)(r,{children:" "}),(0,e.jsx)(r,{color:o===1?t.orange:t.dim,children:o===1?"[ \u{1F44E} ]":" \u{1F44E} "})]}),(0,e.jsx)(m,{bindings:[{keys:"\u2190/\u2192",label:"select"},{keys:"\u21B5",label:"submit"}],escBackLabel:"skip"})]})}export{R as a};
2
+ import{a as m}from"./chunk-CB3TEWZJ.js";import{x as t}from"./chunk-HMGNPFXP.js";import{a as p}from"./chunk-HCBYKLMW.js";import{a,b as r,i as u}from"./chunk-C44QQJR4.js";import{a as b}from"./chunk-6YGTRKDT.js";import{e as n}from"./chunk-UR6MHSHU.js";var c=n(b(),1);var e=n(p(),1);function R({onSubmit:l}){let[o,f]=(0,c.useState)(0),s=(0,c.useRef)(!1);return u((x,i)=>{s.current||(i.leftArrow||i.rightArrow?f(d=>d===0?1:0):i.return?(s.current=!0,l(o===0?"positive":"negative")):i.escape&&(s.current=!0,l(null)))}),(0,e.jsxs)(a,{flexDirection:"column",marginTop:1,children:[(0,e.jsxs)(a,{children:[(0,e.jsx)(r,{color:t.secondary,children:"Rate this session: "}),(0,e.jsx)(r,{color:o===0?t.orange:t.dim,children:o===0?"[ \u{1F44D} ]":" \u{1F44D} "}),(0,e.jsx)(r,{children:" "}),(0,e.jsx)(r,{color:o===1?t.orange:t.dim,children:o===1?"[ \u{1F44E} ]":" \u{1F44E} "})]}),(0,e.jsx)(m,{bindings:[{keys:"\u2190/\u2192",label:"select"},{keys:"\u21B5",label:"submit"}],escBackLabel:"skip"})]})}export{R as a};
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as h}from"./chunk-FPFOW6BS.js";import{a as f}from"./chunk-QI6WZ56Y.js";import{a as m}from"./chunk-INP7FG6V.js";var o=class extends Error{constructor(a,l){super(a);this.code=l;this.name="AuthError"}};async function k(c){let{creds:i,env:a,usernameFlag:l,accessKeyFlag:p,log:t}=c,e=null,u=null;if(l&&p)e={username:l,access_key:p},t("info","AUTH_RESOLVE_FLAGS","Auth resolved via CLI flags",{username:l});else{let r=i.resolveAuth();r?.method==="basic"&&(e={username:r.username,access_key:r.access_key},t("info","AUTH_RESOLVE_CONFIG","Auth resolved via config",{username:r.username}))}if(!e){let{credentials:r,profile:E}=i.getActiveCredentials();if(!r)throw new o("Not authenticated \u2014 no credentials found","not_authenticated");if(u=r.access_token,r.expires_at-Date.now()/1e3<300)try{let n=await f({creds:i,profile:E,env:a,credentials:r});n&&(u=n.accessToken,t("info","AUTH_TOKEN_REFRESHED","OAuth token refreshed"))}catch(n){let d=n instanceof Error?n.message:String(n);throw t("error","TOKEN_REFRESH_FAILED","Token refresh failed",{error:d}),new o(`Token refresh failed: ${d}`,"refresh_failed")}}let v=m(a),b=async()=>u,y=e?{username:e.username,access_key:e.access_key}:null,g=new h(v.controllerBaseUrl,b,y,t),s=await g.resolve();return s&&!e&&(e={username:s.username,access_key:s.access_key},t("info","AUTH_RESOLVE_CONTROLLER","Auth resolved via controller",{username:s.username})),{basicAuth:e,token:u,resolver:g,resolvedCreds:s}}export{o as a,k as b};
2
+ import{a as h}from"./chunk-FPFOW6BS.js";import{a as f}from"./chunk-ISAE457F.js";import{a as m}from"./chunk-KGP7NSXH.js";var o=class extends Error{constructor(a,l){super(a);this.code=l;this.name="AuthError"}};async function k(c){let{creds:i,env:a,usernameFlag:l,accessKeyFlag:p,log:t}=c,e=null,u=null;if(l&&p)e={username:l,access_key:p},t("info","AUTH_RESOLVE_FLAGS","Auth resolved via CLI flags",{username:l});else{let r=i.resolveAuth();r?.method==="basic"&&(e={username:r.username,access_key:r.access_key},t("info","AUTH_RESOLVE_CONFIG","Auth resolved via config",{username:r.username}))}if(!e){let{credentials:r,profile:E}=i.getActiveCredentials();if(!r)throw new o("Not authenticated \u2014 no credentials found","not_authenticated");if(u=r.access_token,r.expires_at-Date.now()/1e3<300)try{let n=await f({creds:i,profile:E,env:a,credentials:r});n&&(u=n.accessToken,t("info","AUTH_TOKEN_REFRESHED","OAuth token refreshed"))}catch(n){let d=n instanceof Error?n.message:String(n);throw t("error","TOKEN_REFRESH_FAILED","Token refresh failed",{error:d}),new o(`Token refresh failed: ${d}`,"refresh_failed")}}let v=m(a),b=async()=>u,y=e?{username:e.username,access_key:e.access_key}:null,g=new h(v.controllerBaseUrl,b,y,t),s=await g.resolve();return s&&!e&&(e={username:s.username,access_key:s.access_key},t("info","AUTH_RESOLVE_CONTROLLER","Auth resolved via controller",{username:s.username})),{basicAuth:e,token:u,resolver:g,resolvedCreds:s}}export{o as a,k as b};
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a}from"./chunk-OXARXMMD.js";import"./chunk-MKD3KZPM.js";import"./chunk-UR6MHSHU.js";export{a as CredentialsManager};
2
+ import{a}from"./chunk-4CRKK5WV.js";import"./chunk-HMGNPFXP.js";import"./chunk-UR6MHSHU.js";export{a as CredentialsManager};
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{$ as fa,A as J,B as K,C as L,D as M,E as N,F as O,G as P,H as Q,L as R,M as S,N as T,O as U,P as V,Q as W,R as X,S as Y,T as Z,U as _,V as $,W as aa,X as ba,Y as ca,Z as da,_ as ea,a,aa as ga,b,ba as ha,c,ca as ia,d,e,f,g,h,i,j,k as t,l as u,m as v,n as w,o as x,p as y,q as z,r as A,s as B,t as C,u as D,v as E,w as F,x as G,y as H,z as I}from"./chunk-ABSEKYIB.js";import{a as n,b as o,c as p,e as q,f as r,g as s}from"./chunk-FYOCF7DY.js";import"./chunk-RGEAEAZB.js";import"./chunk-BC7UVJJB.js";import{a as k,b as l,c as m}from"./chunk-NFOBDHZK.js";import"./chunk-KHDUQ33H.js";import"./chunk-L5LI2JF4.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-INP7FG6V.js";import"./chunk-MKD3KZPM.js";import"./chunk-UR6MHSHU.js";export{P as EvidenceSession,C as appendExecutionPointer,M as assembleExecutionEnv,i as buildEnvironment,j as buildEvidenceRunConfig,g as buildExternalId,z as buildLogsMetaYaml,y as buildResultYaml,t as buildRunYaml,O as createCdpBrowserCapture,u as createRunningPack,v as createRunningPackRoot,H as declareLogsFromDir,J as diagnostics,x as discardPack,ba as ensureAuteurExecution,N as fetchCdpBrowserString,L as finalizeEvidencePack,U as finalizeInlineEvidence,K as finalizeMemberTestLogs,da as flattenAuteurLeafIds,ca as flattenAuteurLeaves,T as inlineEvidenceBlock,q as listPacks,p as newExecutionId,h as normalizeOs,S as noteInlineSpawn,$ as offerEvidenceView,o as packPath,I as packTestLogsDir,V as parseRange,D as readExecutionPointers,ia as readPackLeafIds,ha as readPackLeaves,s as recoverStore,fa as remapReplayActionIds,r as resolvePack,ga as resolveReplayResultSteps,F as rollupTestStatus,aa as runEvidenceMerge,_ as runEvidenceServe,E as runEvidenceValidate,Q as runStartupRecovery,l as sealPack,w as sealPackById,Z as serveHint,d as shortHash,c as slugify,W as startEvidenceLocalServer,R as startInlineEvidence,n as storeDir,m as sweepStore,ea as synthesizeSkippedTail,f as testIdForInline,e as testIdForTestmd,k as validatePack,a as verdictFromResultCode,X as viewerBaseFor,Y as viewerUrlFor,b as worstOf,G as worstResultCode,B as writeLogsMeta,A as writeResult};
2
+ import{$ as fa,A as J,B as K,C as L,D as M,E as N,F as O,G as P,H as Q,L as R,M as S,N as T,O as U,P as V,Q as W,R as X,S as Y,T as Z,U as _,V as $,W as aa,X as ba,Y as ca,Z as da,_ as ea,a,aa as ga,b,ba as ha,c,ca as ia,d,e,f,g,h,i,j,k as t,l as u,m as v,n as w,o as x,p as y,q as z,r as A,s as B,t as C,u as D,v as E,w as F,x as G,y as H,z as I}from"./chunk-WGG5XURS.js";import{a as n,b as o,c as p,e as q,f as r,g as s}from"./chunk-FYOCF7DY.js";import"./chunk-RGEAEAZB.js";import"./chunk-BC7UVJJB.js";import{a as k,b as l,c as m}from"./chunk-NFOBDHZK.js";import"./chunk-KHDUQ33H.js";import"./chunk-L5LI2JF4.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-KGP7NSXH.js";import"./chunk-HMGNPFXP.js";import"./chunk-UR6MHSHU.js";export{P as EvidenceSession,C as appendExecutionPointer,M as assembleExecutionEnv,i as buildEnvironment,j as buildEvidenceRunConfig,g as buildExternalId,z as buildLogsMetaYaml,y as buildResultYaml,t as buildRunYaml,O as createCdpBrowserCapture,u as createRunningPack,v as createRunningPackRoot,H as declareLogsFromDir,J as diagnostics,x as discardPack,ba as ensureAuteurExecution,N as fetchCdpBrowserString,L as finalizeEvidencePack,U as finalizeInlineEvidence,K as finalizeMemberTestLogs,da as flattenAuteurLeafIds,ca as flattenAuteurLeaves,T as inlineEvidenceBlock,q as listPacks,p as newExecutionId,h as normalizeOs,S as noteInlineSpawn,$ as offerEvidenceView,o as packPath,I as packTestLogsDir,V as parseRange,D as readExecutionPointers,ia as readPackLeafIds,ha as readPackLeaves,s as recoverStore,fa as remapReplayActionIds,r as resolvePack,ga as resolveReplayResultSteps,F as rollupTestStatus,aa as runEvidenceMerge,_ as runEvidenceServe,E as runEvidenceValidate,Q as runStartupRecovery,l as sealPack,w as sealPackById,Z as serveHint,d as shortHash,c as slugify,W as startEvidenceLocalServer,R as startInlineEvidence,n as storeDir,m as sweepStore,ea as synthesizeSkippedTail,f as testIdForInline,e as testIdForTestmd,k as validatePack,a as verdictFromResultCode,X as viewerBaseFor,Y as viewerUrlFor,b as worstOf,G as worstResultCode,B as writeLogsMeta,A as writeResult};
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a,b,c,d,e}from"./chunk-TZVURR5H.js";import"./chunk-NNZV5RCE.js";import"./chunk-AD46OCZ4.js";import"./chunk-JFAFKHDX.js";import"./chunk-QPZRHAYK.js";import"./chunk-ZKYYZ5NO.js";import"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";export{e as evolveCommand,b as evolveOneUc,d as liveRunDesignForUc,a as resolveParentUc,c as runEvolveCommand};
2
+ import{a,b,c,d,e}from"./chunk-CP4XCWAJ.js";import"./chunk-NNZV5RCE.js";import"./chunk-AD46OCZ4.js";import"./chunk-JFAFKHDX.js";import"./chunk-QPZRHAYK.js";import"./chunk-ZKYYZ5NO.js";import"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";export{e as evolveCommand,b as evolveOneUc,d as liveRunDesignForUc,a as resolveParentUc,c as runEvolveCommand};
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{b as D,c as h}from"./chunk-B2OAEEKI.js";import"./chunk-NWZTYAJB.js";import"./chunk-I2S6KNZW.js";import"./chunk-DM2GL24Z.js";import"./chunk-JFAFKHDX.js";import"./chunk-5ILXUQIX.js";import"./chunk-QPZRHAYK.js";import"./chunk-VJUIW2ES.js";import"./chunk-FXPPQL4D.js";import{c as A}from"./chunk-5446YVGQ.js";import"./chunk-Z56AWGVY.js";import"./chunk-427OQS2N.js";import{a as y}from"./chunk-IF2R3AR4.js";import{d as C}from"./chunk-WUMNIGPR.js";import"./chunk-6PS65QFF.js";import{c as E}from"./chunk-ZKYYZ5NO.js";import{a as P}from"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-MKD3KZPM.js";import"./chunk-UR6MHSHU.js";async function j(n){let[{render:o},e,{QuestionBatchPrompt:i}]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./ui-JEJGTURD.js")]),c=e.default??e;return new Promise(t=>{let p=o(c.createElement(i,{questions:n,onSubmit:a=>{p.unmount(),t(a)}}))})}async function F(n,o){let[{render:e},i,{ReviewChecklist:c}]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./ui-JEJGTURD.js")]),t=i.default??i;return new Promise(p=>{let a=e(t.createElement(c,{items:n.map(u=>{let s=o.get(u.temp_ref);return{uc:u,dedupWith:s&&!s.archived?s.cid:void 0,archivedMatch:s?.archived?{cid:s.cid,reason:s.reason}:void 0}}),onSubmit:u=>{a.unmount(),p(u)}}))})}async function G(n){let{createInterface:o}=await import("readline/promises"),e=o({input:process.stdin,output:process.stdout});try{let i=await e.question(`${n} [y/N] `);return/^y(es)?$/i.test(i.trim())}finally{e.close()}}async function O(n){let o=await C(),e=P(process.cwd()),i=await A(o);if(!i.ok)return process.stderr.write((i.message??"error: turn-endpoint preflight failed")+`
2
+ import{b as D,c as h}from"./chunk-RY4OOGSC.js";import"./chunk-7DBQEOFL.js";import"./chunk-I2S6KNZW.js";import"./chunk-DM2GL24Z.js";import"./chunk-JFAFKHDX.js";import"./chunk-5ILXUQIX.js";import"./chunk-QPZRHAYK.js";import"./chunk-VJUIW2ES.js";import"./chunk-FXPPQL4D.js";import{c as A}from"./chunk-5446YVGQ.js";import"./chunk-Z56AWGVY.js";import"./chunk-427OQS2N.js";import{a as y}from"./chunk-N2ZW5635.js";import{d as C}from"./chunk-MJFYMMX2.js";import"./chunk-6PS65QFF.js";import{c as E}from"./chunk-ZKYYZ5NO.js";import{a as P}from"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-HMGNPFXP.js";import"./chunk-UR6MHSHU.js";async function j(n){let[{render:o},e,{QuestionBatchPrompt:i}]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./ui-JEJGTURD.js")]),c=e.default??e;return new Promise(t=>{let p=o(c.createElement(i,{questions:n,onSubmit:a=>{p.unmount(),t(a)}}))})}async function F(n,o){let[{render:e},i,{ReviewChecklist:c}]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./ui-JEJGTURD.js")]),t=i.default??i;return new Promise(p=>{let a=e(t.createElement(c,{items:n.map(u=>{let s=o.get(u.temp_ref);return{uc:u,dedupWith:s&&!s.archived?s.cid:void 0,archivedMatch:s?.archived?{cid:s.cid,reason:s.reason}:void 0}}),onSubmit:u=>{a.unmount(),p(u)}}))})}async function G(n){let{createInterface:o}=await import("readline/promises"),e=o({input:process.stdin,output:process.stdout});try{let i=await e.question(`${n} [y/N] `);return/^y(es)?$/i.test(i.trim())}finally{e.close()}}async function O(n){let o=await C(),e=P(process.cwd()),i=await A(o);if(!i.ok)return process.stderr.write((i.message??"error: turn-endpoint preflight failed")+`
3
3
  `),2;let c=async()=>i;if(n.plan)return h(n,{contextDir:e,agent:y,preflightTurn:c,ask:j,review:F,confirmStale:G,out:l=>process.stdout.write(l+`
4
4
  `),progress:l=>process.stderr.write(l+`
5
- `),isTTY:E(),auth:o});let[{render:t},p,{ScrollbackProvider:a},{ChatSurface:u},{ScrollbackTap:s},{makeChatController:r},{setInkExit:w},x]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./scrollback-JLPJR25X.js"),import("./ChatSurface-I6PFL3OE.js"),import("./ScrollbackTap-Q3IOKNMS.js"),import("./chat-controller-OTBYHB4Y.js"),import("./exit-manager-VCSIUYBR.js"),Promise.all([import("./chat-committer-RTJCKQMM.js"),import("./descriptor-SL5A7RQE.js"),import("./explain-JIXUWEFJ.js"),import("./readmodel-MPTENJ2R.js")])]),[{commitChatTurn:I},{topologyDescriptor:M},{explain:V},{openGraph:k}]=x,v=p.default??p,m=r({commitChatTurn:I,descriptor:M(),contextDir:e,refreshGraph:()=>k(e),graph:k(e),explain:V,by:{kind:"human",id:"owner"},dedupFlags:l=>D(l,k(e))}),T={current:null},S=0,b=null,f=!1,N=()=>{if(S+=1,S>=2){try{g.unmount()}catch{}process.exit(130)}m.requestPause(),b=setTimeout(()=>{f||(f=!0,(async()=>{m.ledger({kind:"interrupted",detail:"the agent did not confirm the pause within 5s"}),await T.current?.flush();try{g.unmount()}catch{}process.exit(130)})())},5e3)},g=t(v.createElement(a,null,v.createElement(s,{into:T}),v.createElement(u,{controller:m,verb:"extract",onCtrlC:N})),{exitOnCtrlC:!1});w(()=>g.unmount()),m.ledger({kind:"banner",text:"kane-cli context \xB7 extract \xB7 interactive"});try{let l=h(n,{contextDir:e,agent:y,preflightTurn:c,ask:d=>m.ask(d),review:async d=>new Map(d.map(R=>[R.temp_ref,{resolution:"skipped"}])),confirmStale:async()=>!0,out:d=>m.note(d),progress:()=>{},isTTY:E(),auth:o,chat:m});return l.finally(()=>{f=!0}),await l}finally{f=!0,b&&clearTimeout(b),await T.current?.flush();try{g.unmount()}catch{}}}async function U(n){let o=await C(),{makeHeadlessIO:e,resolveEncoding:i,guardedChannels:c}=await import("./headless-io-GXHKDPHB.js"),t=e(i(n.mode),"extract"),{makeInterruptGuard:p}=await import("./interrupt-guard-UREUWNRL.js"),a=p(y,r=>t.out(r)),s=c(t,()=>a.interrupted(),/^error: (agent failed|repair run failed|agent ended)/);try{let r=await h(n,{contextDir:P(process.cwd()),agent:a.agent,preflightTurn:()=>A(o),ask:async()=>[],review:async w=>new Map(w.map(x=>[x.temp_ref,{resolution:"skipped"}])),confirmStale:async()=>!1,out:s.out,emit:s.emit,progress:t.progress,isTTY:!1,auth:o});return a.interrupted()&&r!==3?(t.out("interrupted \u2014 no session saved"),t.done(130)):t.done(r)}catch(r){return t.event({type:"error",message:`error: extract failed: ${r instanceof Error?r.message:String(r)}`}),t.out(`error: extract failed: ${r instanceof Error?r.message:String(r)}`),t.out("hint: per-run trace logs live under .context/logs/ (extract-*.log)"),t.done(1)}finally{a.dispose()}}export{U as bindExtractHeadless,O as bindExtractInteractive};
5
+ `),isTTY:E(),auth:o});let[{render:t},p,{ScrollbackProvider:a},{ChatSurface:u},{ScrollbackTap:s},{makeChatController:r},{setInkExit:w},x]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./scrollback-JLPJR25X.js"),import("./ChatSurface-R55VO3VW.js"),import("./ScrollbackTap-Q3IOKNMS.js"),import("./chat-controller-OTBYHB4Y.js"),import("./exit-manager-VCSIUYBR.js"),Promise.all([import("./chat-committer-RTJCKQMM.js"),import("./descriptor-SL5A7RQE.js"),import("./explain-JIXUWEFJ.js"),import("./readmodel-MPTENJ2R.js")])]),[{commitChatTurn:I},{topologyDescriptor:M},{explain:V},{openGraph:k}]=x,v=p.default??p,m=r({commitChatTurn:I,descriptor:M(),contextDir:e,refreshGraph:()=>k(e),graph:k(e),explain:V,by:{kind:"human",id:"owner"},dedupFlags:l=>D(l,k(e))}),T={current:null},S=0,b=null,f=!1,N=()=>{if(S+=1,S>=2){try{g.unmount()}catch{}process.exit(130)}m.requestPause(),b=setTimeout(()=>{f||(f=!0,(async()=>{m.ledger({kind:"interrupted",detail:"the agent did not confirm the pause within 5s"}),await T.current?.flush();try{g.unmount()}catch{}process.exit(130)})())},5e3)},g=t(v.createElement(a,null,v.createElement(s,{into:T}),v.createElement(u,{controller:m,verb:"extract",onCtrlC:N})),{exitOnCtrlC:!1});w(()=>g.unmount()),m.ledger({kind:"banner",text:"kane-cli context \xB7 extract \xB7 interactive"});try{let l=h(n,{contextDir:e,agent:y,preflightTurn:c,ask:d=>m.ask(d),review:async d=>new Map(d.map(R=>[R.temp_ref,{resolution:"skipped"}])),confirmStale:async()=>!0,out:d=>m.note(d),progress:()=>{},isTTY:E(),auth:o,chat:m});return l.finally(()=>{f=!0}),await l}finally{f=!0,b&&clearTimeout(b),await T.current?.flush();try{g.unmount()}catch{}}}async function U(n){let o=await C(),{makeHeadlessIO:e,resolveEncoding:i,guardedChannels:c}=await import("./headless-io-GXHKDPHB.js"),t=e(i(n.mode),"extract"),{makeInterruptGuard:p}=await import("./interrupt-guard-UREUWNRL.js"),a=p(y,r=>t.out(r)),s=c(t,()=>a.interrupted(),/^error: (agent failed|repair run failed|agent ended)/);try{let r=await h(n,{contextDir:P(process.cwd()),agent:a.agent,preflightTurn:()=>A(o),ask:async()=>[],review:async w=>new Map(w.map(x=>[x.temp_ref,{resolution:"skipped"}])),confirmStale:async()=>!1,out:s.out,emit:s.emit,progress:t.progress,isTTY:!1,auth:o});return a.interrupted()&&r!==3?(t.out("interrupted \u2014 no session saved"),t.done(130)):t.done(r)}catch(r){return t.event({type:"error",message:`error: extract failed: ${r instanceof Error?r.message:String(r)}`}),t.out(`error: extract failed: ${r instanceof Error?r.message:String(r)}`),t.out("hint: per-run trace logs live under .context/logs/ (extract-*.log)"),t.done(1)}finally{a.dispose()}}export{U as bindExtractHeadless,O as bindExtractInteractive};
@@ -3,4 +3,4 @@ import{a as s}from"./chunk-BC7UVJJB.js";import"./chunk-UR6MHSHU.js";import{exist
3
3
  `),2;let n=async(r,t)=>{if(process.stderr.write(r+`
4
4
  `),e.mode!=="agent")return 2;let{makeHeadlessIO:a,agentRefusal:c}=await import("./headless-io-GXHKDPHB.js");return c(a("ndjson","extract"),r,t)};if(e.apply)return n("extract: --apply is not implemented yet \u2014 coming with the plan\u2192apply workflow (run without --apply, or use --plan to preview)");{let{validateResumeMessage:r}=await import("./headless-io-GXHKDPHB.js"),t=r(e,"extract");if(t)return n(t)}if(!d(s(process.cwd())))return n("error: no context store here (run `kane-cli context ingest <files>` first)","NO_STORE");if(!e.mode&&!process.stdin.isTTY)return process.stderr.write(`extract: no TTY \u2014 pass an explicit --mode agent|ci|override to run headless
5
5
  `),2;let i=e.mode??"interactive";if(i==="interactive"){if(!process.stdin.isTTY||!process.stdout.isTTY)return process.stderr.write(`extract: --mode interactive needs a TTY on stdin and stdout (use --mode agent|ci|override headless)
6
- `),2;let{bindExtractInteractive:r}=await import("./extract-bind-T7SUAID6.js");return r(e)}let{bindExtractHeadless:o}=await import("./extract-bind-T7SUAID6.js");return o({...e,mode:i})}export{l as extractCommand};
6
+ `),2;let{bindExtractInteractive:r}=await import("./extract-bind-DS4UP23P.js");return r(e)}let{bindExtractHeadless:o}=await import("./extract-bind-DS4UP23P.js");return o({...e,mode:i})}export{l as extractCommand};
@@ -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-MESFNOY3.js";import{b as k}from"./chunk-GNGGFK7C.js";import{d as J}from"./chunk-HYW5VDEC.js";import{c as E}from"./chunk-BV3EARZO.js";import"./chunk-5U3GOEGG.js";import{a as q}from"./chunk-RTWWPEQ7.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-L5LI2JF4.js";import{e as x,f as A}from"./chunk-M5JQXOCE.js";import{h as H}from"./chunk-FPGOV4AQ.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-VE3SUJMA.js";import"./chunk-QI6WZ56Y.js";import"./chunk-D5SHVZGD.js";import{a as R}from"./chunk-INP7FG6V.js";import"./chunk-RZ4F3BHX.js";import{a as j}from"./chunk-OXARXMMD.js";import"./chunk-MKD3KZPM.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-R2K2SGGE.js";import{b as k}from"./chunk-ZNANAARA.js";import{d as J}from"./chunk-5FD6ZXB5.js";import{c as E}from"./chunk-2PDWMY2B.js";import"./chunk-XDW2RGIL.js";import{a as q}from"./chunk-HGL3RM7P.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-L5LI2JF4.js";import{e as x,f as A}from"./chunk-M5JQXOCE.js";import{h as H}from"./chunk-OBBXDBEE.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-VE3SUJMA.js";import"./chunk-ISAE457F.js";import"./chunk-RH2OAIJI.js";import{a as R}from"./chunk-KGP7NSXH.js";import"./chunk-RZ4F3BHX.js";import{a as j}from"./chunk-4CRKK5WV.js";import"./chunk-HMGNPFXP.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-NOGEHZTS.js");n(i(d))}try{let i=await(e.checkUpdate??J)();i&&r.onUpdateAvailable(i)}catch{}let g=t.reqId??null;x(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-RD2UAB7E.js");n(i(d))}try{let i=await(e.checkUpdate??J)();i&&r.onUpdateAvailable(i)}catch{}let g=t.reqId??null;x(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{A(X)}}var ae=()=>{};async function Me(t){let e=new j,n=new q,r=e.getActiveProfile()??"default",l=t.env??e.getDefaultEnv()??"prod",u=R(l),d=new E;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};