@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.
Files changed (114) hide show
  1. package/dist/{ChromeProfilePicker-BOTCHMXH.js → ChromeProfilePicker-PIWZY4WH.js} +1 -1
  2. package/dist/{CliFeedbackPrompt-BV4VVYOY.js → CliFeedbackPrompt-URXCHBZ5.js} +1 -1
  3. package/dist/{CliUploadProgress-Y4H43W5T.js → CliUploadProgress-DMH3C3UZ.js} +1 -1
  4. package/dist/{ConfigView-JPBD47MS.js → ConfigView-NWNDNTKW.js} +1 -1
  5. package/dist/EvidenceViewOffer-HEBQ7C4H.js +2 -0
  6. package/dist/FolderPicker-5S23OTSY.js +2 -0
  7. package/dist/HelpView-YYKTP4JH.js +2 -0
  8. package/dist/{InfoBox-3ZLQZGUE.js → InfoBox-FPAWQZGQ.js} +1 -1
  9. package/dist/{LinksBox-UYMOQGSW.js → LinksBox-O5ZFYSK2.js} +1 -1
  10. package/dist/{ProfilesView-YUMYSOZ4.js → ProfilesView-SPECXHZE.js} +1 -1
  11. package/dist/{ProjectPicker-CJVGBY42.js → ProjectPicker-ANJ6NGNY.js} +1 -1
  12. package/dist/{SaveSessionPrompt-DFVUWTOK.js → SaveSessionPrompt-W2GWELOP.js} +1 -1
  13. package/dist/SingleShotApp-5TYM356H.js +2 -0
  14. package/dist/{SummaryBox-3VIRYWQA.js → SummaryBox-DJUDYML7.js} +1 -1
  15. package/dist/TestMdRunView-BIVXQE54.js +2 -0
  16. package/dist/{WhoamiView-GMM4V7ZV.js → WhoamiView-DH25ZD4C.js} +1 -1
  17. package/dist/{changelog-FNJ4P2IF.js → changelog-RCKUVBFL.js} +1 -1
  18. package/dist/{chunk-LPUQ4HWQ.js → chunk-2WVKOZ6W.js} +1 -1
  19. package/dist/chunk-2YQ6TW77.js +82 -0
  20. package/dist/chunk-3FN66LTP.js +3 -0
  21. package/dist/{chunk-FN6ZRV4C.js → chunk-4IOOBSNB.js} +1 -1
  22. package/dist/chunk-54TKNWXF.js +5 -0
  23. package/dist/{chunk-JBOXYLDH.js → chunk-5MTRNUAK.js} +1 -1
  24. package/dist/{chunk-WEPNJVBA.js → chunk-6E5UYAEB.js} +1 -1
  25. package/dist/{chunk-JQXARCVE.js → chunk-7AEC572G.js} +1 -1
  26. package/dist/{chunk-UJDIXFEE.js → chunk-7IBNOVML.js} +1 -1
  27. package/dist/chunk-7KDNH6JP.js +10 -0
  28. package/dist/{chunk-DKGNV3VP.js → chunk-7YRNLGUT.js} +1 -1
  29. package/dist/chunk-AFCEFOIK.js +4 -0
  30. package/dist/{chunk-2J3VB6DW.js → chunk-AM5WZPPY.js} +1 -1
  31. package/dist/{chunk-6PBX7QI7.js → chunk-C4LYBQT3.js} +2 -2
  32. package/dist/chunk-DJL47DYJ.js +8 -0
  33. package/dist/chunk-DTM4ZMMJ.js +102 -0
  34. package/dist/chunk-ELBPBHTE.js +26 -0
  35. package/dist/{chunk-RJFHOZG6.js → chunk-GEAWRRR7.js} +1 -1
  36. package/dist/{chunk-CY4HAOSP.js → chunk-H6QJ4YU7.js} +1 -1
  37. package/dist/chunk-HFXQU7UZ.js +2 -0
  38. package/dist/{chunk-WKJY6TRR.js → chunk-HZ46P2GR.js} +1 -1
  39. package/dist/chunk-I4B2KY4X.js +3 -0
  40. package/dist/{chunk-LZUTY7XS.js → chunk-IECUFWIZ.js} +1 -1
  41. package/dist/{chunk-7NTOV5DV.js → chunk-IU53F4ZV.js} +1 -1
  42. package/dist/chunk-J75KVNX5.js +18 -0
  43. package/dist/{chunk-AH36DUIX.js → chunk-LOQV5GME.js} +1 -1
  44. package/dist/chunk-MUPHP5W6.js +27 -0
  45. package/dist/chunk-NAYAVVTP.js +6 -0
  46. package/dist/chunk-NFOBDHZK.js +147 -0
  47. package/dist/{chunk-CLRWPXDJ.js → chunk-NLIOFVMP.js} +1 -1
  48. package/dist/chunk-P5XBCJYQ.js +7 -0
  49. package/dist/chunk-PISZLYS5.js +4 -0
  50. package/dist/{chunk-IO3PBDKN.js → chunk-PTP3WS3N.js} +1 -1
  51. package/dist/chunk-Q2I65L2W.js +6 -0
  52. package/dist/chunk-QCEWUUE6.js +55 -0
  53. package/dist/chunk-QO6PAA7Q.js +17 -0
  54. package/dist/{chunk-42WWGBRK.js → chunk-R5RHRG65.js} +1 -1
  55. package/dist/chunk-T4PKTWZ6.js +17 -0
  56. package/dist/{chunk-HYOST7EA.js → chunk-THEZSXZM.js} +1 -1
  57. package/dist/{chunk-VSJAOEBB.js → chunk-TJWU7DOO.js} +1 -1
  58. package/dist/{chunk-FTMJTGT4.js → chunk-TPG2T5GH.js} +1 -1
  59. package/dist/{chunk-HPJP7NES.js → chunk-UOGJUJCF.js} +1 -1
  60. package/dist/{chunk-MUZCEGJD.js → chunk-V2GYBVSM.js} +1 -1
  61. package/dist/{chunk-KLVCLGHX.js → chunk-XDERMCAU.js} +1 -1
  62. package/dist/chunk-Y44AETOW.js +2 -0
  63. package/dist/{chunk-QMAHNXS6.js → chunk-YCNCW4O4.js} +1 -1
  64. package/dist/{chunk-GBTPZGJB.js → chunk-YSIYPC4R.js} +1 -1
  65. package/dist/{chunk-JHSSBES2.js → chunk-ZWAZ4QU4.js} +1 -1
  66. package/dist/credentials-52QRPGET.js +2 -0
  67. package/dist/evidence-O4AON5FU.js +2 -0
  68. package/dist/exit-manager-IUHAXFJ6.js +2 -0
  69. package/dist/{generate-headless-ZRRQT56R.js → generate-headless-WG6ZPINI.js} +2 -2
  70. package/dist/index.js +75 -39
  71. package/dist/list-commands-VJAL4J3O.js +2 -0
  72. package/dist/login-flow-VZ2MITFA.js +2 -0
  73. package/dist/persist-recorded-session-XKPZX7HW.js +3 -0
  74. package/dist/pipeline-CADTHPDV.js +2 -0
  75. package/dist/{recording-banner-P6EKDS2Y.js → recording-banner-2TNKQHP2.js} +1 -1
  76. package/dist/require-project-folder-SJG5FQY6.js +2 -0
  77. package/dist/run-test-md-INJKPE2I.js +13 -0
  78. package/dist/{skill-installer-SU52XOIT.js → skill-installer-M6AREQQW.js} +1 -1
  79. package/dist/tcg-generate-VKFXR5JT.js +2 -0
  80. package/dist/testmd-actions-4QLHD74A.js +2 -0
  81. package/dist/{tms-client-NNYXLXZK.js → tms-client-VD3B3SMU.js} +1 -1
  82. package/dist/token-refresh-2HKIYD4Y.js +2 -0
  83. package/dist/{validate-basic-EKSOPOMF.js → validate-basic-FO7C2URG.js} +1 -1
  84. package/dist/{version-check-4K4JHG7B.js → version-check-PHZX5WS7.js} +1 -1
  85. package/package.json +8 -6
  86. package/dist/FolderPicker-M4RFRBYV.js +0 -2
  87. package/dist/HelpView-ZZYE2TKZ.js +0 -2
  88. package/dist/SingleShotApp-IOEEYVGJ.js +0 -2
  89. package/dist/TestMdRunView-MRSDDMSF.js +0 -2
  90. package/dist/chunk-3UCNDPTN.js +0 -2
  91. package/dist/chunk-7N5H4KTV.js +0 -5
  92. package/dist/chunk-AH4AXJML.js +0 -2
  93. package/dist/chunk-BH6EP2LD.js +0 -85
  94. package/dist/chunk-DXJ5FL25.js +0 -17
  95. package/dist/chunk-JO3QZB6D.js +0 -6
  96. package/dist/chunk-LJDFBQFR.js +0 -17
  97. package/dist/chunk-LOIRZFV3.js +0 -10
  98. package/dist/chunk-MDBXYXSC.js +0 -2
  99. package/dist/chunk-PUU7A26K.js +0 -11
  100. package/dist/chunk-QW5G7TX3.js +0 -60
  101. package/dist/chunk-SEU6OXMD.js +0 -6
  102. package/dist/chunk-UVBE3JJV.js +0 -103
  103. package/dist/chunk-XA7UFTB7.js +0 -27
  104. package/dist/chunk-YK63DTUC.js +0 -20
  105. package/dist/exit-manager-V2NW7A7U.js +0 -2
  106. package/dist/list-commands-M3JL6XBB.js +0 -2
  107. package/dist/login-flow-DOAIDKIV.js +0 -2
  108. package/dist/persist-recorded-session-3I4KMEXA.js +0 -3
  109. package/dist/pipeline-34CX3UBO.js +0 -2
  110. package/dist/require-project-folder-SEMMD3EG.js +0 -2
  111. package/dist/run-test-md-PXG4RFDI.js +0 -14
  112. package/dist/tcg-generate-5T6S2E7L.js +0 -2
  113. package/dist/testmd-actions-N7VS4FS6.js +0 -2
  114. package/dist/token-refresh-LSHPT46T.js +0 -2
@@ -1,103 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as D}from"./chunk-LZUTY7XS.js";import{a as A}from"./chunk-RJFHOZG6.js";import{p as S,q as C,r as P,s as U,t as N}from"./chunk-3UCNDPTN.js";import{createServer as Oe}from"http";import{randomBytes as He}from"crypto";import{URL as $e}from"url";import Z from"process";import{Buffer as ee}from"buffer";import re from"path";import{fileURLToPath as ke}from"url";import{promisify as Le}from"util";import te from"child_process";import Me,{constants as Ie}from"fs/promises";import Y from"process";import G,{constants as me}from"fs/promises";import j from"process";import le from"os";import L from"fs";import se from"fs";import z from"fs";var E;function ie(){try{return z.statSync("/.dockerenv"),!0}catch{return!1}}function ae(){try{return z.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function B(){return E===void 0&&(E=ie()||ae()),E}var k,ce=()=>{try{return se.statSync("/run/.containerenv"),!0}catch{return!1}};function u(){return k===void 0&&(k=ce()||B()),k}var K=()=>{if(j.platform!=="linux")return!1;if(le.release().toLowerCase().includes("microsoft"))return!u();try{if(L.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!u()}catch{}return L.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||L.existsSync("/run/WSL")?!u():!1},d=j.env.__IS_WSL_TEST__?K:K();var de=(()=>{let e="/mnt/",r;return async function(){if(r)return r;let t="/etc/wsl.conf",n=!1;try{await G.access(t,me.F_OK),n=!0}catch{}if(!n)return e;let o=await G.readFile(t,{encoding:"utf8"}),i=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(o);return i?(r=i.groups.mountPoint.trim(),r=r.endsWith("/")?r:`${r}/`,r):e}})(),fe=async()=>`${await de()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,M=async()=>d?fe():`${Y.env.SYSTEMROOT||Y.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;function f(e,r,t){let n=o=>Object.defineProperty(e,r,{value:o,enumerable:!0,writable:!0});return Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get(){let o=t();return n(o),o},set(o){n(o)}}),e}import{promisify as Pe}from"util";import O from"process";import{execFile as Ae}from"child_process";import{promisify as pe}from"util";import ue from"process";import{execFile as ge}from"child_process";var he=pe(ge);async function I(){if(ue.platform!=="darwin")throw new Error("macOS only");let{stdout:e}=await he("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),t=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(e)?.groups.id??"com.apple.Safari";return t==="com.apple.safari"?"com.apple.Safari":t}import we from"process";import{promisify as xe}from"util";import{execFile as ye,execFileSync as cr}from"child_process";var ve=xe(ye);async function X(e,{humanReadableOutput:r=!0,signal:t}={}){if(we.platform!=="darwin")throw new Error("macOS only");let n=r?[]:["-ss"],o={};t&&(o.signal=t);let{stdout:i}=await ve("osascript",["-e",e,n],o);return i.trim()}async function T(e){return X(`tell application "Finder" to set app_path to application file id "${e}" as string
3
- tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}import{promisify as be}from"util";import{execFile as Se}from"child_process";var Ce=be(Se),y={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},ur=new Map(Object.entries(y)),F=class extends Error{};async function _(e=Ce){let{stdout:r}=await e("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),t=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(r);if(!t)throw new F(`Cannot find Windows browser in stdout: ${JSON.stringify(r)}`);let{id:n}=t.groups,o=n.lastIndexOf("."),i=n.lastIndexOf("-"),c=o===-1?void 0:n.slice(0,o),a=i===-1?void 0:n.slice(0,i);return y[n]??y[c]??y[a]??{name:n,id:n}}var Ee=Pe(Ae),Be=e=>e.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,r=>r.toUpperCase());async function H(){if(O.platform==="darwin"){let e=await I();return{name:await T(e),id:e}}if(O.platform==="linux"){let{stdout:e}=await Ee("xdg-mime",["query","default","x-scheme-handler/http"]),r=e.trim();return{name:Be(r.replace(/.desktop$/,"").replace("-"," ")),id:r}}if(O.platform==="win32")return _();throw new Error("Only macOS, Linux, and Windows are supported")}var Te=Le(te.execFile),$=re.dirname(ke(import.meta.url)),q=re.join($,"xdg-open"),{platform:w,arch:V}=Z;async function Fe(){let e=await M(),r=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,t=ee.from(r,"utf16le").toString("base64"),{stdout:n}=await Te(e,["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",t],{encoding:"utf8"}),o=n.trim(),i={ChromeHTML:"com.google.chrome",BraveHTML:"com.brave.Browser",MSEdgeHTM:"com.microsoft.edge",FirefoxURL:"org.mozilla.firefox"};return i[o]?{id:i[o]}:{}}var J=async(e,r)=>{let t;for(let n of e)try{return await r(n)}catch(o){t=o}throw t},v=async e=>{if(e={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...e},Array.isArray(e.app))return J(e.app,a=>v({...e,app:a}));let{name:r,arguments:t=[]}=e.app??{};if(t=[...t],Array.isArray(r))return J(r,a=>v({...e,app:{name:a,arguments:t}}));if(r==="browser"||r==="browserPrivate"){let a={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.Browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge"},l={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},s=d?await Fe():await H();if(s.id in a){let m=a[s.id];return r==="browserPrivate"&&t.push(l[m]),v({...e,app:{name:g[m],arguments:t}})}throw new Error(`${s.name} is not supported as a default browser`)}let n,o=[],i={};if(w==="darwin")n="open",e.wait&&o.push("--wait-apps"),e.background&&o.push("--background"),e.newInstance&&o.push("--new"),r&&o.push("-a",r);else if(w==="win32"||d&&!u()&&!r){n=await M(),o.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),d||(i.windowsVerbatimArguments=!0);let a=["Start"];e.wait&&a.push("-Wait"),r?(a.push(`"\`"${r}\`""`),e.target&&t.push(e.target)):e.target&&a.push(`"${e.target}"`),t.length>0&&(t=t.map(l=>`"\`"${l}\`""`),a.push("-ArgumentList",t.join(","))),e.target=ee.from(a.join(" "),"utf16le").toString("base64")}else{if(r)n=r;else{let a=!$||$==="/",l=!1;try{await Me.access(q,Ie.X_OK),l=!0}catch{}n=Z.versions.electron??(w==="android"||a||!l)?"xdg-open":q}t.length>0&&o.push(...t),e.wait||(i.stdio="ignore",i.detached=!0)}w==="darwin"&&t.length>0&&o.push("--args",...t),e.target&&o.push(e.target);let c=te.spawn(n,o,i);return e.wait?new Promise((a,l)=>{c.once("error",l),c.once("close",s=>{if(!e.allowNonzeroExitCode&&s>0){l(new Error(`Exited with code ${s}`));return}a(c)})}):(c.unref(),c)},_e=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a `target`");return v({...r,target:e})};function Q(e){if(typeof e=="string"||Array.isArray(e))return e;let{[V]:r}=e;if(!r)throw new Error(`${V} is not supported`);return r}function b({[w]:e},{wsl:r}){if(r&&d)return Q(r);if(!e)throw new Error(`${w} is not supported`);return Q(e)}var g={};f(g,"chrome",()=>b({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));f(g,"brave",()=>b({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}}));f(g,"firefox",()=>b({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));f(g,"edge",()=>b({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));f(g,"browser",()=>"browser");f(g,"browserPrivate",()=>"browserPrivate");var oe=_e;var ne=class{profile;environment;creds;oauth;constructor(r="default",t="prod",n){this.profile=r,this.environment=t,this.creds=n??new D,this.oauth=new A(t)}async login(){let{server:r,port:t}=await this.startCallbackServer(),n=N(t);try{let o=this.creds.loadClient(this.profile,this.environment),i=o?.redirect_uris;(!o||!i?.includes(n))&&(o=await this.oauth.registerClient(n),this.creds.saveClient(this.profile,this.environment,o));let c=o.client_id,[a,l]=A.generatePkce(),s=He(32).toString("hex"),m=this.oauth.buildAuthorizationUrl(c,l,s,n),p=await this.waitForCallback(r,t,m,s);if(!p)throw new Error("Login cancelled or timed out");let h=await this.oauth.exchangeCode(p,c,a,n),x={access_token:h.access_token,refresh_token:h.refresh_token,expires_at:Math.floor(Date.now()/1e3)+h.expires_in,scope:h.scope??"*"};return this.creds.saveCredentials(this.profile,this.environment,x),this.creds.setActiveProfile(this.profile),x}catch(o){throw r.close(),o}}startCallbackServer(){return new Promise((r,t)=>{let n=C,o=()=>{let i=Oe();i.on("error",c=>{c.code==="EADDRINUSE"&&n<P?(n++,o()):t(new Error(`Failed to start callback server: ${c.message}. Ports ${C}-${P} are all in use.`))}),i.listen(n,S,()=>{r({server:i,port:n})})};o()})}waitForCallback(r,t,n,o){return new Promise(i=>{let c=!1,a=setTimeout(()=>l(null),12e4),l=s=>{c||(c=!0,clearTimeout(a),r.close(),i(s))};r.on("request",(s,m)=>{let p=new $e(s.url??"/",`http://${S}:${t}`);if(p.pathname!==U){m.writeHead(404),m.end();return}let h=p.searchParams.get("state"),x=p.searchParams.get("code");if(p.searchParams.get("error")){m.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),m.end(R({state:"error",title:"Login failed",message:"We couldn't complete the sign-in. You can close this tab and try again from your terminal."})),l(null);return}if(h!==o){m.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),m.end(R({state:"error",title:"Invalid state",message:"The sign-in response didn't match this session. Please return to your terminal and try again."})),l(null);return}m.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),m.end(R({state:"success",title:"You're signed in",message:"Head back to your terminal \u2014 KaneAI is ready when you are.",autoClose:!0})),l(x)}),oe(n).catch(s=>{let m=s instanceof Error?s.message:String(s);process.stderr.write(`[auth] Could not open browser: ${m}
4
- Please open this URL manually: ${n}
5
- `)})})}};function R(e){let r=e.state==="success",t=r?"#22c55e":"#ef4444",n=r?"rgba(34, 197, 94, 0.12)":"rgba(239, 68, 68, 0.12)",o=r?'<svg viewBox="0 0 24 24" width="36" height="36" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7"/></svg>':'<svg viewBox="0 0 24 24" width="36" height="36" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18"/></svg>',i=e.autoClose?"<script>setTimeout(function(){try{window.close();}catch(e){}}, 1500);</script>":"";return`<!doctype html>
6
- <html lang="en">
7
- <head>
8
- <meta charset="utf-8" />
9
- <meta name="viewport" content="width=device-width, initial-scale=1" />
10
- <title>${W(e.title)} \xB7 KaneAI</title>
11
- <style>
12
- :root {
13
- color-scheme: light dark;
14
- --bg: #f7f7f8;
15
- --card: #ffffff;
16
- --fg: #0a0a0a;
17
- --muted: #6b7280;
18
- --border: rgba(0, 0, 0, 0.06);
19
- --shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
20
- }
21
- @media (prefers-color-scheme: dark) {
22
- :root {
23
- --bg: #0a0a0a;
24
- --card: #141416;
25
- --fg: #f5f5f7;
26
- --muted: #9ca3af;
27
- --border: rgba(255, 255, 255, 0.08);
28
- --shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
29
- }
30
- }
31
- * { box-sizing: border-box; }
32
- html, body { height: 100%; }
33
- body {
34
- margin: 0;
35
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
36
- background: var(--bg);
37
- color: var(--fg);
38
- display: flex;
39
- align-items: center;
40
- justify-content: center;
41
- padding: 24px;
42
- -webkit-font-smoothing: antialiased;
43
- }
44
- .card {
45
- width: 100%;
46
- max-width: 420px;
47
- background: var(--card);
48
- border: 1px solid var(--border);
49
- border-radius: 16px;
50
- box-shadow: var(--shadow);
51
- padding: 40px 32px 32px;
52
- text-align: center;
53
- animation: rise 280ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
54
- }
55
- @keyframes rise {
56
- from { opacity: 0; transform: translateY(8px); }
57
- to { opacity: 1; transform: translateY(0); }
58
- }
59
- .icon {
60
- width: 64px;
61
- height: 64px;
62
- margin: 0 auto 20px;
63
- border-radius: 999px;
64
- display: flex;
65
- align-items: center;
66
- justify-content: center;
67
- background: ${n};
68
- color: ${t};
69
- }
70
- h1 {
71
- font-size: 22px;
72
- font-weight: 600;
73
- letter-spacing: -0.01em;
74
- margin: 0 0 8px;
75
- }
76
- p {
77
- margin: 0;
78
- color: var(--muted);
79
- font-size: 14.5px;
80
- line-height: 1.5;
81
- }
82
- .brand {
83
- margin-top: 28px;
84
- padding-top: 20px;
85
- border-top: 1px solid var(--border);
86
- font-size: 12px;
87
- letter-spacing: 0.08em;
88
- text-transform: uppercase;
89
- color: var(--muted);
90
- }
91
- .brand strong { color: var(--fg); font-weight: 600; letter-spacing: 0.08em; }
92
- </style>
93
- </head>
94
- <body>
95
- <main class="card" role="status" aria-live="polite">
96
- <div class="icon">${o}</div>
97
- <h1>${W(e.title)}</h1>
98
- <p>${W(e.message)}</p>
99
- <div class="brand"><strong>KaneAI</strong> \xB7 CLI</div>
100
- </main>
101
- ${i}
102
- </body>
103
- </html>`}function W(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}export{ne as a};