@testmuai/kane-cli 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ChromeProfilePicker-J6QIIHIE.js → ChromeProfilePicker-PWCOETN2.js} +1 -1
- package/dist/{CliFeedbackPrompt-SEH4MXTF.js → CliFeedbackPrompt-2JOU3UTZ.js} +1 -1
- package/dist/{CliUploadProgress-U6QLD76Y.js → CliUploadProgress-EWQKUP74.js} +1 -1
- package/dist/{ConfigView-5ZCHVYM2.js → ConfigView-FFJW43N4.js} +1 -1
- package/dist/FolderPicker-BE3KYGZX.js +2 -0
- package/dist/{HelpView-3ESCWBPB.js → HelpView-MXW6PGOP.js} +1 -1
- package/dist/{InfoBox-OVAOOQHC.js → InfoBox-ZZ2TGFEJ.js} +1 -1
- package/dist/{LinksBox-P3VETMP6.js → LinksBox-PGDOE3OB.js} +1 -1
- package/dist/{ProfilesView-UBVNEYVE.js → ProfilesView-ZVDOESOW.js} +1 -1
- package/dist/ProjectPicker-2LMGEOK6.js +2 -0
- package/dist/{SaveSessionPrompt-S5RCU5DX.js → SaveSessionPrompt-UK7FCGBC.js} +1 -1
- package/dist/SingleShotApp-QA4SYSCP.js +2 -0
- package/dist/{SummaryBox-M4UFKKMD.js → SummaryBox-5Y5FYFC7.js} +1 -1
- package/dist/{TestMdRunView-PI433EGP.js → TestMdRunView-YKEM6CUM.js} +1 -1
- package/dist/{WhoamiView-VJBEYTCF.js → WhoamiView-CAX7W64M.js} +1 -1
- package/dist/{changelog-EFAQANXW.js → changelog-FSOH4L6K.js} +1 -1
- package/dist/{chunk-SR5UDUMJ.js → chunk-2BJVZ75R.js} +1 -1
- package/dist/{chunk-FAPS5ACQ.js → chunk-4ITKSPTN.js} +2 -2
- package/dist/{chunk-PNQ5YMED.js → chunk-4MW543EE.js} +1 -1
- package/dist/{chunk-U4QMSR5Z.js → chunk-5T6JVIN2.js} +1 -1
- package/dist/{chunk-G5HHHYH7.js → chunk-6NM5ZRG6.js} +1 -1
- package/dist/chunk-7CLUJYMW.js +2 -0
- package/dist/{chunk-NOQKUOEK.js → chunk-ATB32X4H.js} +1 -1
- package/dist/chunk-BPF7TDRU.js +2 -0
- package/dist/{chunk-RHXWME7G.js → chunk-FHZXMPSR.js} +1 -1
- package/dist/{chunk-RURXFEOD.js → chunk-GLXO4WSE.js} +1 -1
- package/dist/{chunk-YVLFHMUW.js → chunk-HGIGF7SF.js} +1 -1
- package/dist/{chunk-D4P6GLSX.js → chunk-JSOBQIZW.js} +1 -1
- package/dist/chunk-KLRD7F46.js +2 -0
- package/dist/{chunk-FSIJOBVB.js → chunk-LJCHLJEV.js} +1 -1
- package/dist/{chunk-UFNKCPUB.js → chunk-MBZOXXA4.js} +9 -9
- package/dist/{chunk-KKZRPFWO.js → chunk-NLCCBXXV.js} +1 -1
- package/dist/{chunk-WM6GZFTC.js → chunk-NMCYRB5A.js} +1 -1
- package/dist/{chunk-IROWNPDG.js → chunk-NNJVV4QO.js} +1 -1
- package/dist/{chunk-N7YALZKA.js → chunk-NQHLMFWC.js} +2 -2
- package/dist/{chunk-IXWVTWOR.js → chunk-OEYN4LRD.js} +1 -1
- package/dist/{chunk-YF4OL463.js → chunk-OLHVJQTO.js} +1 -1
- package/dist/chunk-OP5NDZ64.js +13 -0
- package/dist/{chunk-XM4H4TJD.js → chunk-OWTKDTKK.js} +1 -1
- package/dist/{chunk-HNIH3GSQ.js → chunk-RSRXL3HE.js} +1 -1
- package/dist/chunk-RZ4F3BHX.js +3 -0
- package/dist/{chunk-J3SCNSXX.js → chunk-VYHMUBWM.js} +1 -1
- package/dist/chunk-WAOCHXJ5.js +2 -0
- package/dist/{chunk-ZYVYAIBS.js → chunk-WKKV77JW.js} +1 -1
- package/dist/{chunk-TEH6AVF4.js → chunk-XOSYGSRB.js} +1 -1
- package/dist/{chunk-TL4SB7MQ.js → chunk-XR7EOTSN.js} +1 -1
- package/dist/chunk-YCJ6JUDU.js +2 -0
- package/dist/chunk-YZBUZYJK.js +5 -0
- package/dist/controller-client-RD2YEMAH.js +2 -0
- package/dist/index.js +35 -35
- package/dist/login-flow-C22P3I5G.js +2 -0
- package/dist/{persist-recorded-session-V5DXMRKC.js → persist-recorded-session-6X37MMUB.js} +1 -1
- package/dist/pipeline-A6ZHMRPH.js +2 -0
- package/dist/{recording-banner-7ZKIORL5.js → recording-banner-ZQW7RTTP.js} +1 -1
- package/dist/{resolver-F6HCOZOX.js → resolver-OA35IO7J.js} +1 -1
- package/dist/run-test-md-3WLYVWFB.js +64 -0
- package/dist/{testmd-actions-322GQYAH.js → testmd-actions-5JCGAZLL.js} +2 -2
- package/dist/tms-client-R5ZIAOBH.js +2 -0
- package/dist/{validate-basic-XKTSGLFO.js → validate-basic-Q5IZSBIG.js} +1 -1
- package/dist/{version-check-LUCKH72U.js → version-check-VVNXNEGO.js} +1 -1
- package/package.json +5 -5
- package/dist/FolderPicker-VYJDEDN7.js +0 -2
- package/dist/ProjectPicker-NJKUWRET.js +0 -2
- package/dist/SingleShotApp-WOJWOQSV.js +0 -2
- package/dist/chunk-4QLJMIBA.js +0 -13
- package/dist/chunk-53K3BK7I.js +0 -2
- package/dist/chunk-GCAHPH2E.js +0 -2
- package/dist/chunk-H33BV5YV.js +0 -2
- package/dist/chunk-IFWLAQ3L.js +0 -2
- package/dist/chunk-JI7KJKG4.js +0 -2
- package/dist/chunk-JPEICMHK.js +0 -2
- package/dist/chunk-L3MOXBKE.js +0 -5
- package/dist/chunk-V7QXJKX7.js +0 -3
- package/dist/chunk-YZTCCQHR.js +0 -2
- package/dist/controller-client-OMKEBP4B.js +0 -2
- package/dist/logging-AIQHWRNQ.js +0 -2
- package/dist/login-flow-E6WMJ25A.js +0 -2
- package/dist/machine-id-DZN4MYOO.js +0 -2
- package/dist/pipeline-EUZIM2ZO.js +0 -2
- package/dist/run-test-md-BQS5SZ7E.js +0 -65
- package/dist/tms-client-XOARLBEP.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b,c}from"./chunk-
|
|
2
|
+
import{a,b,c}from"./chunk-XOSYGSRB.js";import"./chunk-HGIGF7SF.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{c as ChromeProfilePicker,b as formatChromeProfileLine,a as listChromeProfiles};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as r}from"./chunk-
|
|
2
|
+
import{a as r}from"./chunk-FHZXMPSR.js";import"./chunk-HGIGF7SF.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import{c as e}from"./chunk-C44QQJR4.js";import{a as i}from"./chunk-6YGTRKDT.js";import{e as m}from"./chunk-UR6MHSHU.js";var t=m(i(),1);async function d(){return new Promise(o=>{let c=e(t.default.createElement(r,{onSubmit:n=>{c.unmount(),o(n)}}),{stdout:process.stderr,exitOnCtrlC:!1})})}export{d as renderFeedbackPrompt};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as P,b as g,c as f}from"./chunk-
|
|
2
|
+
import{a as P,b as g,c as f}from"./chunk-GLXO4WSE.js";import"./chunk-OWTKDTKK.js";import{a as c}from"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import{c as d}from"./chunk-C44QQJR4.js";import{a as h}from"./chunk-6YGTRKDT.js";import{e as p}from"./chunk-UR6MHSHU.js";var e=p(h(),1);var m=p(c(),1);function w({pipeline:t,buildShareUrl:r,onDone:o}){let[n,i]=(0,e.useState)(P()),[S,l]=(0,e.useState)("uploading"),[U,R]=(0,e.useState)(),[C,E]=(0,e.useState)();return(0,e.useEffect)(()=>{let x=t.config.onProgress;t.config.onProgress=(s,u,a)=>{x(s,u,a),i(y=>g(y,s,u,a))},t.execute().then(s=>{s.success?(R(r?.(s)),l("success")):(E(s.error),l("failed")),setTimeout(()=>o(s),1500)})},[]),(0,m.jsx)(f,{steps:n,status:S,testUrl:U,error:C})}async function O(t,r){return new Promise(o=>{let n=d(e.default.createElement(w,{pipeline:t,buildShareUrl:r,onDone:i=>{n.unmount(),o(i)}}),{stdout:process.stderr,exitOnCtrlC:!1})})}export{O as renderUploadProgress};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as d,b as l,c as r}from"./chunk-
|
|
2
|
+
import{a as d,b as l,c as r}from"./chunk-2BJVZ75R.js";import{a as m}from"./chunk-HCBYKLMW.js";import{t as o}from"./chunk-XR7EOTSN.js";import{a as t,j as u}from"./chunk-C44QQJR4.js";import{a as C}from"./chunk-6YGTRKDT.js";import{e as n}from"./chunk-UR6MHSHU.js";var f=n(C(),1);var e=n(m(),1);function D({model:c,authLabel:s,profile:g,env:p,defaultUrl:i,projectId:b,folderId:v,windowSize:x,chromeProfile:w}){let{exit:a}=u();return(0,f.useEffect)(()=>{let B=setTimeout(()=>a(),50);return()=>clearTimeout(B)},[a]),(0,e.jsx)(t,{flexDirection:"column",children:(0,e.jsx)(d,{title:"Configuration",children:(0,e.jsxs)(t,{flexDirection:"column",paddingY:1,children:[(0,e.jsx)(r,{label:"Auth"}),(0,e.jsx)(l,{label:" method",value:s}),(0,e.jsx)(l,{label:" profile",value:g}),(0,e.jsx)(l,{label:" env",value:p}),(0,e.jsx)(r,{label:"Defaults"}),(0,e.jsx)(l,{label:" url",value:i??"(none)",valueColor:i?o.cyan:o.dimmed}),(0,e.jsx)(l,{label:" model",value:c}),(0,e.jsx)(l,{label:" window",value:x}),(0,e.jsx)(l,{label:" project",value:b??"(none)"}),(0,e.jsx)(l,{label:" folder",value:v??"(none)"}),(0,e.jsx)(r,{label:"Paths"}),(0,e.jsx)(l,{label:" chrome",value:w,valueColor:o.dimmed})]})})})}export{D as ConfigView};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a,b}from"./chunk-OLHVJQTO.js";import"./chunk-YCCUBQY4.js";import"./chunk-KLRD7F46.js";import"./chunk-RSRXL3HE.js";import"./chunk-HGIGF7SF.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-7CLUJYMW.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-UR6MHSHU.js";export{b as FolderPicker,a as formatFolderLine};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as T}from"./chunk-HCBYKLMW.js";import{a as f,b as i,t}from"./chunk-
|
|
2
|
+
import{a as T}from"./chunk-HCBYKLMW.js";import{a as f,b as i,t}from"./chunk-XR7EOTSN.js";import{a as n,b as o,j as h,k as x}from"./chunk-C44QQJR4.js";import{a as b}from"./chunk-6YGTRKDT.js";import{e as p}from"./chunk-UR6MHSHU.js";var w=p(b(),1);var e=p(T(),1),S="https://www.testmuai.com/support/docs/kane-cli-introduction",v="https://github.com/LambdaTest/kane-cli/issues";function L(){let{exit:r}=h(),{stdout:c}=x(),l=c?.columns??80;return(0,w.useEffect)(()=>{let g=setTimeout(()=>r(),50);return()=>clearTimeout(g)},[r]),(0,e.jsxs)(n,{flexDirection:"column",children:[(0,e.jsxs)(n,{paddingX:1,paddingTop:1,flexDirection:"column",children:[(0,e.jsx)(o,{color:t.purple,bold:!0,children:i}),(0,e.jsxs)(n,{children:[(0,e.jsx)(o,{color:t.dimmed,children:"Browser automation powered by AI "}),(0,e.jsxs)(o,{color:t.muted,children:[" v",f]})]})]}),(0,e.jsx)(o,{children:" "}),(0,e.jsxs)(d,{title:"USAGE",children:[(0,e.jsx)(m,{cmd:`${i}`,desc:"Single-shot prompt (no args, TTY)"}),(0,e.jsx)(m,{cmd:`${i} --tui`,desc:"Full interactive TUI",highlight:!0}),(0,e.jsx)(m,{cmd:`${i} run "<objective>"`,desc:"Inline objective"}),(0,e.jsx)(m,{cmd:`${i} testmd run <path>.md`,desc:"Replay a saved *_test.md file"})]}),(0,e.jsxs)(d,{title:"HELP",children:[(0,e.jsx)(m,{cmd:`${i} --help`,desc:"Show this help (long form)"}),(0,e.jsx)(m,{cmd:`${i} -h`,desc:"Show this help (short form)"}),(0,e.jsx)(m,{cmd:`${i} help`,desc:"Show this help (subcommand form)"}),(0,e.jsxs)(n,{marginLeft:2,marginTop:0,flexDirection:"column",children:[(0,e.jsxs)(o,{color:t.dimmed,children:["These are the only supported help invocations. Anything else (e.g. ",(0,e.jsx)(o,{color:t.cyan,children:"-help"}),") is an unknown flag."]}),(0,e.jsxs)(o,{color:t.dimmed,children:["Terminal tab-completion is a shell feature; ",i," does not ship shell-completion scripts, so any flag your shell suggests is a generic guess \u2014 not from ",i,"."]})]})]}),(0,e.jsxs)(d,{title:"COMMANDS",children:[(0,e.jsx)(a,{cmd:"run",args:"<objective>",desc:"Run an objective (inline string)",highlight:!0}),(0,e.jsx)(a,{cmd:"testmd",args:"run|list|status|delete|export",desc:"Manage *_test.md files"}),(0,e.jsx)(a,{cmd:"login",desc:"Auth setup (interactive, --oauth, or --username)"}),(0,e.jsx)(a,{cmd:"logout",desc:"Revoke tokens + delete profile"}),(0,e.jsx)(a,{cmd:"whoami",desc:"Show authenticated identity"}),(0,e.jsx)(a,{cmd:"config",args:"show|set-\u2026|reset",desc:"Manage configuration"}),(0,e.jsx)(a,{cmd:"profiles",args:"list|switch|delete",desc:"Manage auth profiles"}),(0,e.jsx)(a,{cmd:"changelog",args:"[--all]",desc:"Show recent release notes"})]}),(0,e.jsxs)(d,{title:"TESTMD ACTIONS",children:[(0,e.jsx)(a,{cmd:"testmd run",args:"<path>",desc:"Replay a saved *_test.md file",highlight:!0}),(0,e.jsx)(a,{cmd:"testmd list",desc:"List *_test.md files in cwd (recursive)"}),(0,e.jsx)(a,{cmd:"testmd status",args:"<path>",desc:"Print local meta.json for a test"}),(0,e.jsx)(a,{cmd:"testmd delete",args:"<path>",desc:"Remove output-<stem>/ and the source file"}),(0,e.jsx)(a,{cmd:"testmd export",args:"<path> --language <py|js>",desc:"Generate standalone Playwright code"})]}),(0,e.jsxs)(d,{title:"RUN FLAGS",children:[(0,e.jsx)(s,{long:"--max-steps",arg:"<n>",desc:"Max agent steps (default: 30)"}),(0,e.jsx)(s,{long:"--timeout",arg:"<sec>",desc:"Kill run after N seconds"}),(0,e.jsx)(s,{long:"--headless",desc:"No visible browser window"}),(0,e.jsx)(s,{long:"--mode",arg:"<action|testing>",desc:"Run mode (default: testing)"}),(0,e.jsx)(s,{long:"--name",arg:"<name>",desc:"Persist session under this name"}),(0,e.jsx)(s,{long:"--variables",arg:"<json>",desc:"Inline variables as JSON"}),(0,e.jsx)(s,{long:"--variables-file",arg:"<path>",desc:"Load variables from file"}),(0,e.jsx)(s,{long:"--session-context",arg:"<json>",desc:"Prior runs context JSON"}),(0,e.jsx)(s,{long:"--global-context",arg:"<file>",desc:"Override global context markdown"}),(0,e.jsx)(s,{long:"--local-context",arg:"<file>",desc:"Override local context markdown"}),(0,e.jsx)(s,{long:"--ws-endpoint",arg:"<url>",desc:"Remote browser (LambdaTest)"}),(0,e.jsx)(s,{long:"--cdp-endpoint",arg:"<url>",desc:"Connect to existing Chrome CDP"}),(0,e.jsx)(s,{long:"--task-skills",desc:"Domain-specific task skills (experimental)"}),(0,e.jsx)(s,{long:"--code-export",desc:"Generate code export after upload"}),(0,e.jsx)(s,{long:"--code-language",arg:"<lang>",desc:"Code export language: python | javascript"}),(0,e.jsx)(s,{long:"--skip-code-validation",desc:"Skip post-codegen validation"}),(0,e.jsx)(s,{long:"--username",arg:"<user>",desc:"Basic auth (skip OAuth)"}),(0,e.jsx)(s,{long:"--access-key",arg:"<key>",desc:"Basic auth access key"}),(0,e.jsx)(s,{long:"--env",arg:"<name>",desc:"Environment (prod or stage)"}),(0,e.jsx)(s,{long:"--agent",desc:"NDJSON output (no UI)",highlight:!0})]}),(0,e.jsxs)(d,{title:"EXAMPLES",children:[(0,e.jsx)(u,{label:"Inline objective",cmd:`${i} run "Search for laptop"`}),(0,e.jsx)(u,{label:"Replay a saved test",cmd:`${i} testmd run smoke_test.md`}),(0,e.jsx)(u,{label:"Variables",cmd:`${i} run "Login as {{user}}" --variables '{"user":{"value":"alice"}}'`}),(0,e.jsx)(u,{label:"Agent mode (NDJSON)",cmd:`${i} run "Add to cart" --agent | jq .status`})]}),(0,e.jsx)(d,{title:"TEST FILES",children:(0,e.jsxs)(n,{marginLeft:2,flexDirection:"column",children:[(0,e.jsxs)(o,{color:t.dimmed,children:[(0,e.jsx)(o,{color:t.cyan,children:"*_test.md"})," \u2014 markdown test files with YAML frontmatter and ",(0,e.jsx)(o,{color:t.cyan,children:"## "}),"step headings."]}),(0,e.jsxs)(o,{color:t.dimmed,children:["Run with ",(0,e.jsxs)(o,{color:t.cyan,children:[i," testmd run path/to/foo_test.md"]}),". (`.md` paths are not accepted by `",i," run`.)"]}),(0,e.jsxs)(o,{color:t.dimmed,children:["Sessions you run in TUI auto-save to ",(0,e.jsx)(o,{color:t.cyan,children:"<cwd>/.testmuai/tests/<name>_test.md"})," (testing mode prompts on exit)."]})]})}),(0,e.jsxs)(n,{flexDirection:"column",marginTop:0,paddingX:1,children:[(0,e.jsx)(o,{color:t.muted,children:"\u2500".repeat(Math.min(l-2,70))}),(0,e.jsxs)(n,{gap:3,children:[(0,e.jsxs)(n,{children:[(0,e.jsx)(o,{color:t.dimmed,children:"Docs "}),(0,e.jsx)(o,{color:t.cyan,underline:!0,children:S})]}),(0,e.jsxs)(n,{children:[(0,e.jsx)(o,{color:t.dimmed,children:"Bugs "}),(0,e.jsx)(o,{color:t.cyan,underline:!0,children:v})]})]})]}),(0,e.jsx)(o,{children:" "})]})}function d({title:r,children:c}){return(0,e.jsxs)(n,{flexDirection:"column",marginBottom:1,children:[(0,e.jsx)(n,{marginLeft:1,children:(0,e.jsx)(o,{bold:!0,color:t.dimmed,children:r})}),c]})}function m({cmd:r,desc:c,highlight:l}){return(0,e.jsxs)(n,{marginLeft:2,children:[(0,e.jsxs)(n,{width:40,children:[(0,e.jsx)(o,{color:t.dimmed,children:"$ "}),(0,e.jsx)(o,{color:l?t.purple:t.cyan,children:r})]}),(0,e.jsx)(o,{color:t.dimmed,children:c})]})}function a({cmd:r,args:c,desc:l,highlight:g}){return(0,e.jsxs)(n,{marginLeft:2,children:[(0,e.jsx)(n,{width:16,children:(0,e.jsx)(o,{color:g?t.purple:t.green,bold:!0,children:r})}),(0,e.jsx)(n,{width:32,children:c?(0,e.jsx)(o,{color:t.dimmed,children:c}):null}),(0,e.jsx)(o,{color:t.dimmed,children:l})]})}function s({long:r,arg:c,desc:l,highlight:g}){return(0,e.jsxs)(n,{marginLeft:2,children:[(0,e.jsxs)(n,{width:30,children:[(0,e.jsx)(o,{color:g?t.purple:t.cyan,children:r}),c&&(0,e.jsxs)(o,{color:t.dimmed,children:[" ",c]})]}),(0,e.jsx)(o,{color:t.dimmed,children:l})]})}function u({label:r,cmd:c}){return(0,e.jsxs)(n,{marginLeft:2,flexDirection:"column",children:[(0,e.jsxs)(o,{color:t.dimmed,children:["# ",r]}),(0,e.jsxs)(o,{color:t.cyan,children:["$ ",c]})]})}export{L as HelpView};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-
|
|
2
|
+
import{a}from"./chunk-NNJVV4QO.js";import"./chunk-2BJVZ75R.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as InfoBox};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-
|
|
2
|
+
import{a}from"./chunk-VYHMUBWM.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as LinksBox};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-
|
|
2
|
+
import{a,b}from"./chunk-ATB32X4H.js";import"./chunk-HGIGF7SF.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{b as ProfilesView,a as formatProfileLine};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a,b}from"./chunk-YCJ6JUDU.js";import"./chunk-YCCUBQY4.js";import"./chunk-KLRD7F46.js";import"./chunk-RSRXL3HE.js";import"./chunk-HGIGF7SF.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-7CLUJYMW.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-UR6MHSHU.js";export{b as ProjectPicker,a as formatProjectLine};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b,c}from"./chunk-
|
|
2
|
+
import{a,b,c}from"./chunk-WKKV77JW.js";import"./chunk-S3DAAAE5.js";import"./chunk-NNJVV4QO.js";import"./chunk-2BJVZ75R.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{a as SaveSessionPrompt,b as defaultSessionTimestamp,c as renderSavePrompt};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{f as a}from"./chunk-4ITKSPTN.js";import"./chunk-NQHLMFWC.js";import"./chunk-L5LI2JF4.js";import"./chunk-4MW543EE.js";import"./chunk-G7VF5SDK.js";import"./chunk-YCJ6JUDU.js";import"./chunk-OLHVJQTO.js";import"./chunk-YCCUBQY4.js";import"./chunk-KLRD7F46.js";import"./chunk-VE3SUJMA.js";import"./chunk-OEYN4LRD.js";import"./chunk-RSRXL3HE.js";import"./chunk-BPF7TDRU.js";import"./chunk-WAOCHXJ5.js";import"./chunk-HGIGF7SF.js";import"./chunk-HCBYKLMW.js";import"./chunk-XR7EOTSN.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-7CLUJYMW.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-UR6MHSHU.js";export{a as SingleShotApp};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as S}from"./chunk-
|
|
2
|
+
import{a as S}from"./chunk-NNJVV4QO.js";import"./chunk-2BJVZ75R.js";import{a as R}from"./chunk-HCBYKLMW.js";import{t as o}from"./chunk-XR7EOTSN.js";import{a as b,b as c,j as x}from"./chunk-C44QQJR4.js";import{a as w}from"./chunk-6YGTRKDT.js";import{e as y}from"./chunk-UR6MHSHU.js";var T=y(w(),1);var i=y(R(),1);function L(e){let t=e.decisions.filter(l=>l.kind==="replay").length,s=e.decisions.filter(l=>l.kind==="author").length,d=e.outcomes.filter(l=>l.status==="passed").length,p=e.outcomes.filter(l=>l.status==="failed").length,f=e.outcomes.filter(l=>l.status==="skipped").length,a=o.green,n;e.cancelled||e.overallStatus==="interrupted"?(a=o.yellow,n="CANCELLED"):e.overallStatus==="failed"?(a=o.red,n="FAILED"):n="PASSED";let r=`${n} \xB7 ${e.durationS}s \xB7 ${e.outcomes.length} steps (${d} passed, ${p} failed, ${f} skipped)`,k=`${t} replay \xB7 ${s} author`,C=e.retryTriggered,v="yes \u2014 run recovered after a replay miss",u,g=o.dimmed;if(e.cancelled)u="\u2013 not committed (cancellation)";else if(e.overallStatus==="failed")u="\u2013 not committed (run failed)",g=o.red;else if(!e.shouldCommit)e.isFirstRun?u="\u2013 not committed (first run skipped commit)":e.lockHeld?u="\u2013 not committed":u="\u2013 not committed (readonly fallback / no lock)";else{let l=e.uploadResult?.testcaseId;u=l?`\u2713 pushed (testcase=${l})`:"\u2713 pushed",g=o.green}let _=e.shouldReplaceLocalOutput?"output dir replaced":e.anyAuthorStepRan?"untouched (cancellation or no replace)":"untouched (replay-only)",m,h=o.dimmed;return e.shouldUploadArtifacts?e.uploadResult?.success?(m="\u2713 TMS",h=o.green):e.uploadResult?(m=`\u2717 failed${e.uploadResult.error?`: ${e.uploadResult.error}`:""}`,h=o.red):m="\u2013 not run":m="\u2013 skipped (--local or no auth)",{resultLine:{color:a,text:r},breakdown:k,showRetries:C,retriesText:v,commitText:u,commitColor:g,artifactsText:_,uploadText:m,uploadColor:h}}function O(e){let t=e.decisions.filter(r=>r.kind==="replay").length,s=e.decisions.filter(r=>r.kind==="author").length,d=e.outcomes.filter(r=>r.status==="passed").length,p=e.outcomes.filter(r=>r.status==="failed").length,f=e.outcomes.filter(r=>r.status==="skipped").length,a,n=!1;return e.cancelled?a="cancellation":e.overallStatus==="failed"?a="run_failed":e.shouldCommit&&e.uploadResult?.testcaseId?(a="ok",n=!0):!e.shouldCommit&&!e.lockHeld&&!e.isFirstRun?a="readonly_fallback":a="not_committed",{type:"test_md_summary",overall_status:e.overallStatus,duration_s:e.durationS,steps:{total:e.outcomes.length,passed:d,failed:p,skipped:f,replay_decisions:t,author_decisions:s},retries:{triggered:e.retryTriggered},commit:{committed:n,reason:a,...e.uploadResult?.testcaseId?{testcase_id:e.uploadResult.testcaseId}:{}},artifacts:{replaced:e.shouldReplaceLocalOutput},upload:{performed:e.shouldUploadArtifacts,...e.uploadResult?{succeeded:!!e.uploadResult.success}:{}},cancelled:e.cancelled}}function A({data:e}){let t=L(e),s=[{label:"result",value:(0,i.jsx)(c,{color:t.resultLine.color,bold:!0,children:t.resultLine.text})},{label:"breakdown",value:(0,i.jsx)(c,{color:o.dimmed,children:t.breakdown})}];return t.showRetries&&s.push({label:"retries",value:(0,i.jsx)(c,{color:o.yellow,children:t.retriesText})}),s.push({label:"commit",value:(0,i.jsx)(c,{color:t.commitColor,children:t.commitText})}),s.push({label:"artifacts",value:(0,i.jsx)(c,{color:o.dimmed,children:t.artifactsText})}),s.push({label:"upload",value:(0,i.jsx)(c,{color:t.uploadColor,children:t.uploadText})}),(0,i.jsx)(S,{title:"Run summary",titleColor:"#ff9500",rows:s})}function I({data:e}){let{exit:t}=x();return(0,T.useEffect)(()=>{let s=setTimeout(()=>t(),50);return()=>clearTimeout(s)},[t]),(0,i.jsx)(b,{flexDirection:"column",children:(0,i.jsx)(A,{data:e})})}export{I as AutoExitSummaryBox,A as SummaryBox,O as buildSummaryEvent,L as buildSummaryRendered};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as $,b as j,c as L,d as N,e as T,f as _,g as F}from"./chunk-
|
|
2
|
+
import{a as $,b as j,c as L,d as N,e as T,f as _,g as F}from"./chunk-5T6JVIN2.js";import"./chunk-OWTKDTKK.js";import"./chunk-YZBUZYJK.js";import"./chunk-G7VF5SDK.js";import"./chunk-RSRXL3HE.js";import{a as A}from"./chunk-NNJVV4QO.js";import"./chunk-2BJVZ75R.js";import{a as I}from"./chunk-HCBYKLMW.js";import{t as p}from"./chunk-XR7EOTSN.js";import{a as R,b as l,d as P,i as k,j as D}from"./chunk-C44QQJR4.js";import{a as B}from"./chunk-6YGTRKDT.js";import{e as C}from"./chunk-UR6MHSHU.js";var a=C(B(),1);var i=C(B(),1);function U(e){let r=N(e.screenshotDispatcher,e.stepLogger,e.onReasoning,e.onStepComplete),[h,f]=(0,i.useState)(0),[y,c]=(0,i.useState)("idle"),d=(0,i.useRef)("idle"),S=(0,i.useRef)(0),w=(0,i.useRef)(!1),x=(0,i.useRef)(null),v=(0,i.useRef)(null),g=(0,i.useCallback)(u=>{d.current=u,c(u)},[]),m=(0,i.useCallback)(async u=>{let n=await e.getNextConfig(u);if(!n){g("done"),e.onAllComplete?.();return}let o=u?S.current+1:0;S.current=o,f(o),e.onStepStart?.(n,o),x.current=null,v.current=null,g("running"),await r.startRun(n,e.spawnOpts)},[r,e,g]);(0,i.useEffect)(()=>{w.current||(w.current=!0,m(null))},[]),(0,i.useEffect)(()=>{if(!r.lastRunEnd||r.lastRunEnd===x.current||d.current!=="running")return;x.current=r.lastRunEnd,d.current="transitioning",c("transitioning");let u=r.lastRunEnd,n=T(r.steps),o=r.bifurcationInfo,s={status:u.status==="passed"?"passed":"failed",duration_s:u.duration??0,reason:u.reason,runEnd:u,hadError:!1,stepsPassed:n.passed,stepsFailed:n.failed,stepsTotal:n.total,bifurcationFlows:o&&!o.isSingleFlow?o.flows:null};if(!(e.onStepEnd?.(s,S.current)??!0)){g("done"),e.onAllComplete?.();return}m(s)},[r.lastRunEnd]),(0,i.useEffect)(()=>{if(!r.runError||r.runError===v.current||r.lastRunEnd||d.current!=="running")return;v.current=r.runError,d.current="transitioning",c("transitioning");let u=T(r.steps),n={status:"failed",duration_s:0,reason:r.runError,runEnd:null,hadError:!0,stepsPassed:u.passed,stepsFailed:u.failed,stepsTotal:u.total,bifurcationFlows:null};if(!(e.onStepEnd?.(n,S.current)??!0)){g("done"),e.onAllComplete?.();return}m(n)},[r.runError,r.lastRunEnd]);let O=(0,i.useCallback)(()=>{r.cancelRun()},[r]);return{runner:r,currentStepIndex:h,phase:y,cancel:O}}var b=C(I(),1);function G({runner:e,runKey:r,onStepCommit:h}){let f=L({isRunning:e.isRunning,bifurcationInfo:e.bifurcationInfo,steps:e.steps,cmInitCounts:e.cmInitCounts,replayInfo:e.replayInfo});return(0,b.jsxs)(b.Fragment,{children:[f&&(0,b.jsx)(j,{label:f.label,hasBifurcation:f.hasBifurcation}),e.isRunning&&e.steps.length>0&&(0,b.jsx)($,{steps:e.steps,bifurcated:!!e.bifurcationInfo&&!e.bifurcationInfo.isSingleFlow,flows:e.bifurcationInfo?.flows,cmInitCounts:e.cmInitCounts,maxSteps:e.maxSteps,onStepCommit:h},`run-${r}`)]})}var t=C(I(),1);function le(e){let{exit:r}=D(),h=(0,a.useRef)(0),[f,y]=(0,a.useState)([{id:"top-banner",content:(0,t.jsx)(R,{flexDirection:"column",marginBottom:1,children:(0,t.jsxs)(R,{borderStyle:"round",borderColor:"#dc4e08",paddingX:2,children:[(0,t.jsx)(l,{color:"#ff9500",bold:!0,children:"KaneAI CLI"}),(0,t.jsx)(l,{color:p.dimmed,children:" \u2502 "}),(0,t.jsx)(l,{color:p.cyan,children:e.topBanner.model}),(0,t.jsx)(l,{color:p.dimmed,children:" \u2502 "}),(0,t.jsx)(l,{color:p.dimmed,children:e.topBanner.auth})]})})},{id:"global-config",content:(0,t.jsx)(W,{data:e.globalConfig})},...e.priorAttemptRollup?[{id:"prior-rollup",content:(0,t.jsx)(l,{color:p.dimmed,children:` \u21B3 replayed ${e.priorAttemptRollup.startIdx}..${e.priorAttemptRollup.endIdx-1} (${e.priorAttemptRollup.count} steps, from prior attempt)`})}]:[]]),c=(0,a.useCallback)(n=>{let o=`s-${++h.current}`;y(s=>[...s,{id:o,content:n}])},[]),d=(0,a.useRef)(null),S=(0,a.useCallback)(async n=>{let o=await e.getNextStep(n);return o?(d.current=o,o.config):(d.current=null,null)},[e]),w=(0,a.useCallback)((n,o)=>{let s=d.current;if(!s)return;let E=s.mode==="replay"?"cyan":"#dc4e08",M=s.modeReason?` (${s.modeReason})`:"",q=s.perStepOverrides?Object.entries(s.perStepOverrides):[];c((0,t.jsxs)(R,{flexDirection:"column",marginBottom:0,children:[(0,t.jsxs)(l,{children:[(0,t.jsxs)(l,{color:p.dimmed,children:[s.banner.stepLabel," "]}),(0,t.jsxs)(l,{color:E,children:["[",s.mode,"]"]}),(0,t.jsx)(l,{color:p.dimmed,children:M})]}),(0,t.jsx)(l,{color:p.dimmed,children:s.banner.objective}),q.length>0&&(0,t.jsxs)(l,{color:p.dimmed,children:["overrides: ",q.map(([V,K])=>`${V}=${K}`).join(", ")]})]}))},[c]),x=(0,a.useRef)(0),v=(0,a.useRef)(!1),g=(0,a.useCallback)((n,o)=>(n.hadError?c((0,t.jsx)(F,{message:n.reason??"Runner error",code:"RUNNER_ERROR"})):c((0,t.jsx)(R,{flexDirection:"column",marginBottom:1,children:(0,t.jsx)(_,{status:n.status,summary:n.runEnd?.summary??"",duration:n.runEnd?.duration??0,steps:n.stepsTotal,stepsPassed:n.stepsPassed,stepsFailed:n.stepsFailed,reason:n.runEnd?.reason,creditsConsumed:n.runEnd?.credits_consumed})})),e.onStepEnd?.(n,o)??!0),[c,e]),m=U({getNextConfig:S,onStepStart:w,onStepEnd:g,onAllComplete:()=>{e.onAllComplete(),setImmediate(()=>r())},screenshotDispatcher:e.screenshotDispatcher,stepLogger:e.stepLogger,onReasoning:e.onReasoning,onStepComplete:e.onStepComplete,spawnOpts:e.spawnOpts}),O=250,u=5e3;return k((n,o)=>{if(o.ctrl&&n==="c"){let s=Date.now(),E=s-x.current;if(E<O)return;v.current&&E<u?(m.cancel(),e.onCancel?.(),setImmediate(()=>r())):(v.current=!0,c((0,t.jsx)(l,{color:"yellow",children:"press Ctrl+C again to cancel run"}))),x.current=s}}),(0,t.jsxs)(R,{flexDirection:"column",children:[(0,t.jsx)(P,{items:f,children:n=>(0,t.jsx)(R,{children:n.content},n.id)}),m.phase!=="done"&&(0,t.jsx)(G,{runner:m.runner,runKey:m.currentStepIndex,onStepCommit:c})]})}function W({data:e}){return(0,t.jsx)(A,{title:"test.md run",titleColor:"#ff9500",borderColor:p.dimmed,rows:[{label:"source",value:e.source},{label:"steps",value:`${e.steps.total} (${e.steps.replay} replay, ${e.steps.author} author per walker)`},{label:"model",value:e.model},{label:"viewport",value:`${e.viewport.width} x ${e.viewport.height}`},{label:"chrome",value:e.chrome},{label:"session",value:e.session},{label:"variables",value:`${e.variables.count} (${e.variables.secrets} secret)`},{label:"flags",value:e.flags.length>0?e.flags.join(" "):"(none)"}]})}export{le as TestMdRunView};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as s,b as o}from"./chunk-
|
|
2
|
+
import{a as s,b as o}from"./chunk-2BJVZ75R.js";import{a as x}from"./chunk-HCBYKLMW.js";import{t as i}from"./chunk-XR7EOTSN.js";import{a as r,b as n,j as u}from"./chunk-C44QQJR4.js";import{a as B}from"./chunk-6YGTRKDT.js";import{e as t}from"./chunk-UR6MHSHU.js";var p=t(B(),1);var e=t(x(),1);function R({profile:f,env:g,authenticated:a,authMethod:v,username:m,tokenStatus:l,expiresAt:c}){let{exit:d}=u();return(0,p.useEffect)(()=>{let b=setTimeout(()=>d(),50);return()=>clearTimeout(b)},[d]),(0,e.jsx)(r,{flexDirection:"column",children:(0,e.jsx)(s,{title:"Identity",variant:a?"success":"warning",children:(0,e.jsxs)(r,{flexDirection:"column",paddingY:1,children:[(0,e.jsx)(r,{children:a?(0,e.jsx)(n,{color:i.green,bold:!0,children:"\u2713 Authenticated"}):(0,e.jsx)(n,{color:i.yellow,bold:!0,children:"\u26A0 Not logged in"})}),(0,e.jsxs)(r,{flexDirection:"column",marginTop:1,children:[(0,e.jsx)(o,{label:"Profile",value:f}),(0,e.jsx)(o,{label:"Environment",value:g}),(0,e.jsx)(o,{label:"Method",value:v}),m&&(0,e.jsx)(o,{label:"User",value:m}),l&&(0,e.jsx)(o,{label:"Token",value:l,valueColor:l==="valid"?i.green:l==="expired"?i.red:i.dimmed}),c&&(0,e.jsx)(o,{label:"Expires",value:c})]})]})})})}export{R as WhoamiView};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{c as i,f as c}from"./chunk-
|
|
2
|
+
import{c as i,f as c}from"./chunk-XR7EOTSN.js";import{a as l}from"./chunk-RZ4F3BHX.js";import"./chunk-UR6MHSHU.js";import{readFileSync as u,writeFileSync as g,mkdirSync as d}from"fs";import{join as f}from"path";var h=f(i,"changelog-cache.json"),p=3600*1e3;function y(){try{let e=JSON.parse(u(h,"utf-8"));if(Date.now()-e.cachedAt<p)return e}catch{}return null}function m(e){try{d(i,{recursive:!0}),g(h,JSON.stringify({entries:e,cachedAt:Date.now()}))}catch{}}async function A(e){try{let t=y();if(t){let r=t.entries;return e?.all?r:r.slice(0,5)}let n=new AbortController,o=setTimeout(()=>n.abort(),5e3),a=await l(`${c}?per_page=30`,{headers:{Accept:"application/vnd.github+json"},signal:n.signal});if(clearTimeout(o),!a.ok)return[];let s=(await a.json()).map(r=>({version:r.tag_name.replace(/^v/,""),date:r.published_at?r.published_at.slice(0,10):"",body:r.body??""}));return m(s),e?.all?s:s.slice(0,5)}catch{return[]}}function v(e){if(e.length===0)return"Could not fetch changelog. Visit https://github.com/LambdaTest/kane-cli/releases";let t=["kane-cli Changelog","\u2500".repeat(40),""];for(let n of e){if(t.push(`v${n.version} (${n.date})`),n.body){let o=n.body.split(`
|
|
3
3
|
`).filter(a=>a.trim());for(let a of o)t.push(` ${a}`)}t.push("")}return t.join(`
|
|
4
4
|
`)}export{A as fetchChangelog,v as formatChangelog};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as m}from"./chunk-HCBYKLMW.js";import{t as o}from"./chunk-
|
|
2
|
+
import{a as m}from"./chunk-HCBYKLMW.js";import{t as o}from"./chunk-XR7EOTSN.js";import{a as r,b as i}from"./chunk-C44QQJR4.js";import{e as a}from"./chunk-UR6MHSHU.js";var e=a(m(),1),u={default:o.muted,error:o.red,success:o.green,info:o.purple,warning:o.yellow};function T({title:t,titleColor:l,borderColor:d,variant:n="default",children:c,width:s,paddingX:x=2,paddingY:g=0,marginBottom:p=0}){let f=d??u[n],B=l??(n==="default"?o.purple:u[n]);return(0,e.jsxs)(r,{flexDirection:"column",marginBottom:p,children:[t&&(0,e.jsx)(r,{marginBottom:0,children:(0,e.jsxs)(i,{color:B,bold:!0,children:[" ",t]})}),(0,e.jsx)(r,{borderStyle:"round",borderColor:f,flexDirection:"column",paddingX:x,paddingY:g,width:s,children:c})]})}function h({label:t,value:l,labelColor:d=o.dimmed,valueColor:n,labelWidth:c=14}){return(0,e.jsxs)(r,{children:[(0,e.jsx)(r,{width:c,children:(0,e.jsx)(i,{color:d,children:t})}),(0,e.jsx)(i,{color:n,children:l})]})}function C({label:t}){return(0,e.jsx)(r,{marginTop:1,marginBottom:0,children:(0,e.jsx)(i,{bold:!0,children:t})})}export{T as a,h as b,C as c};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as Re}from"./chunk-
|
|
2
|
+
import{a as Re}from"./chunk-NQHLMFWC.js";import{a as de}from"./chunk-4MW543EE.js";import{f as fe}from"./chunk-G7VF5SDK.js";import{b as Pe}from"./chunk-YCJ6JUDU.js";import{b as _e}from"./chunk-OLHVJQTO.js";import{a as Ce}from"./chunk-YCCUBQY4.js";import{a as ae,b as ue,d as Ie}from"./chunk-VE3SUJMA.js";import{a as Ae,b as Be}from"./chunk-OEYN4LRD.js";import{a as le}from"./chunk-RSRXL3HE.js";import{a as me}from"./chunk-BPF7TDRU.js";import{a as se}from"./chunk-HGIGF7SF.js";import{a as J}from"./chunk-HCBYKLMW.js";import{c as Ee,t as w}from"./chunk-XR7EOTSN.js";import{a as b,b as h,h as Te,i as Q,j as ye,k as Se}from"./chunk-C44QQJR4.js";import{a as ie}from"./chunk-6YGTRKDT.js";import{a as he}from"./chunk-7CLUJYMW.js";import{e as U}from"./chunk-UR6MHSHU.js";var _=U(ie(),1);var Z=U(ie(),1);var xe=U(ie(),1);var q=U(J(),1);function De({history:i,onSelect:r,onClose:n}){let[l,u]=(0,xe.useState)(""),[e,f]=(0,xe.useState)(0),t=l?i.search(l).slice(0,8):[];return Q((a,v)=>{if(v.escape){n();return}if(v.return){t.length>0&&t[e]?r(t[e]):n();return}if(v.upArrow){f(A=>Math.max(0,A-1));return}if(v.downArrow){f(A=>Math.min(t.length-1,A+1));return}if(v.backspace||v.delete){u(A=>A.slice(0,-1)),f(0);return}a&&!v.ctrl&&!v.meta&&(u(A=>A+a),f(0))}),(0,q.jsxs)(b,{flexDirection:"column",marginLeft:2,borderStyle:"single",paddingX:1,children:[(0,q.jsx)(h,{color:w.muted,bold:!0,children:"reverse search"}),(0,q.jsxs)(b,{gap:1,children:[(0,q.jsx)(h,{color:w.dimmed,children:"search:"}),(0,q.jsx)(h,{children:l}),(0,q.jsx)(h,{color:w.purple,children:"\u2588"})]}),t.length>0&&(0,q.jsx)(h,{children:" "}),t.map((a,v)=>(0,q.jsx)(b,{marginLeft:2,children:(0,q.jsxs)(h,{color:v===e?w.purple:w.dimmed,bold:v===e,children:[v===e?"\u25B8 ":" ",a]})},`${v}-${a}`))]})}var re=U(J(),1);function Le({commands:i,selectedIndex:r}){return i.length===0?null:(0,re.jsx)(b,{flexDirection:"column",marginBottom:0,children:i.map((n,l)=>{let u=l===r;return(0,re.jsxs)(b,{children:[(0,re.jsx)(h,{color:u?w.primary:w.dimmed,children:u?"\u276F ":" "}),(0,re.jsxs)(h,{color:u?w.primary:void 0,bold:u,children:["/",n.name]}),n.args&&(0,re.jsxs)(h,{color:w.dimmed,children:[" ",n.args]}),(0,re.jsxs)(h,{color:w.dimmed,children:[" ",n.description]})]},n.name)})})}var pe=U(ie(),1);var Ne=27,$e=127,We=11;function He(i){return i>=64&&i<=126}function Ge(i,r){i===We&&r({killToEnd:!0,ctrl:!0,raw:String.fromCharCode(i)})}function Ve(i,r){i===$e&&r({backspace:!0,meta:!0,raw:"\x1B\x7F"})}function Xe(i,r){let n=i.map(u=>String.fromCharCode(u)).join(""),l=/^\[1;([0-9]+)([A-D])$/.exec(n);if(l){let u=parseInt(l[1],10),e=l[2],f={raw:"\x1B"+n};if(u===2)f.shift=!0;else if(u===3)f.meta=!0;else if(u===5)f.ctrl=!0;else return;e==="A"?f.arrowUp=!0:e==="B"?f.arrowDown=!0:e==="C"?f.arrowRight=!0:e==="D"&&(f.arrowLeft=!0),r(f);return}if(n==="[H"||n==="[1~"||n==="[7~"){r({home:!0,raw:"\x1B"+n});return}if(n==="[F"||n==="[4~"||n==="[8~"){r({end:!0,raw:"\x1B"+n});return}if(n==="[3;5~"){r({delete:!0,ctrl:!0,raw:"\x1B"+n});return}if(n==="[3;3~"){r({delete:!0,meta:!0,raw:"\x1B"+n});return}}function Ye(i,r){i===72?r({home:!0,raw:"\x1BO"+String.fromCharCode(i)}):i===70&&r({end:!0,raw:"\x1BO"+String.fromCharCode(i)})}function ze(){let i="IDLE",r=[];function n(){i="IDLE",r=[]}return{feed(l,u){for(let e of l)i==="IDLE"?e===Ne?(i="ESC",r=[]):Ge(e,u):i==="ESC"?e===91?(i="CSI",r=[]):e===79?(i="SS3",r=[]):(Ve(e,u),n()):i==="CSI"?(r.push(e),He(e)&&(Xe([91,...r],u),n())):i==="SS3"&&(Ye(e,u),n())},flushIdle(l){i==="ESC"&&r.length===0&&l({raw:"\x1B"}),n()}}}function Me(i,r={}){let n=(0,pe.useRef)(i);n.current=i;let{stdin:l}=Te();(0,pe.useEffect)(()=>{if(r.isActive===!1||!l)return;let u=ze(),e=null,f=t=>{e&&(clearTimeout(e),e=null);let a=Buffer.isBuffer(t)?t:Buffer.from(t,"binary");u.feed(a,v=>n.current(v)),e=setTimeout(()=>{u.flushIdle(v=>n.current(v)),e=null},50)};return l.on("data",f),()=>{l.removeListener("data",f),e&&clearTimeout(e)}},[r.isActive,l])}var k=U(J(),1),ve=10;function qe(i){return i.replace(/\x1b?\[200~/g,"").replace(/\x1b?\[201~/g,"").replace(/\r\n/g,`
|
|
3
3
|
`).replace(/\r/g,`
|
|
4
4
|
`).replace(/[\x00-\x08\x0b-\x1f\x7f]/g,"")}function Je(i,r){let n=[],l=0;for(;l<=i.length;){let u=l;for(;u<i.length&&i[u]!==`
|
|
5
5
|
`;)u++;if(l===u)n.push({start:l,end:l});else{let e=l;for(;e<u;){let f=Math.min(e+r,u);n.push({start:e,end:f}),e=f}}if(u>=i.length)break;l=u+1}return n}function Qe(i,r,n){if(i.length===0)return 0;if(r>=n.length)return i.length-1;if(n[r]===`
|
|
6
6
|
`){for(let l=i.length-1;l>=0;l--)if(i[l].end===r)return l;return i.length-1}for(let l=0;l<i.length;l++){let u=i[l];if(u.start<=r&&r<u.end)return l}return i.length-1}function ke(i,r,n,l){let u=Je(i,n);if(u.length===0)return null;let e=Qe(u,r,i),f=e+l;if(f<0||f>=u.length)return null;let t=r-u[e].start,a=u[f],v=a.end-a.start;return a.start+Math.min(t,v)}function Oe({onSubmit:i,onEscape:r,history:n,placeholder:l="Type an objective or /command...",commands:u}){let[e,f]=(0,Z.useState)([]),[t,a]=(0,Z.useState)(0),[v,A]=(0,Z.useState)("none"),[L,C]=(0,Z.useState)(-1),R=(0,Z.useRef)(""),[M,ne]=(0,Z.useState)(!0),{stdout:F}=Se(),O=F?.columns??80,[W,H]=(0,Z.useState)(0),I=e.join(""),G=(()=>{if(v!=="none"||e.length===0)return"";if(I.startsWith("/")&&u&&I.length>=2){let o=I.slice(1).toLowerCase(),c=u.find(y=>y.name.startsWith(o)&&y.name!==o);return c?`/${c.name}`.slice(I.length):""}if(I.startsWith("/"))return"";let p=n.getAll();for(let o=p.length-1;o>=0;o--)if(p[o].startsWith(I)&&p[o]!==I)return p[o].slice(I.length);return""})(),j=(()=>{if(!u||!I.startsWith("/"))return[];let p=I.length>=2?I.slice(1).toLowerCase():"";return p&&u.some(o=>o.name===p)?[]:u.filter(o=>!p||o.name.startsWith(p))})(),V=j.length>0&&I.startsWith("/");Q((p,o)=>{if(M&&p&&ne(!1),o.return){if(V&&j[W]){let c=`/${j[W].name}`;n.push(c),i(c),f([]),a(0),A("none"),C(-1),R.current="",ne(!0),H(0);return}I.trim()&&(n.push(I.trim()),i(I.trim()),f([]),a(0),A("none"),C(-1),R.current="",ne(!0),H(0));return}if(o.escape){v!=="none"?A("none"):e.length>0?(f([]),a(0),C(-1),R.current=""):r?.();return}if(o.tab){if(V&&j[W]){let c=`/${j[W].name}`;f([...c]),a(c.length),H(0);return}if(G){let c=I+G;f([...c]),a(c.length);return}return}if(o.ctrl&&p==="r"){A("search");return}if(o.ctrl&&p==="a"){a(0);return}if(o.ctrl&&p==="e"){a(e.length);return}if(o.ctrl&&p==="w"){if(t===0)return;let c=t-1;for(;c>0&&e[c]===" ";)c--;for(;c>0&&e[c-1]!==" ";)c--;let y=[...e.slice(0,c),...e.slice(t)];f(y),a(c);return}if(o.ctrl&&p==="u"){f([]),a(0),C(-1),A("none");return}if(o.meta&&p==="b"){let c=t-1;for(;c>0&&e[c]===" ";)c--;for(;c>0&&e[c-1]!==" ";)c--;a(Math.max(0,c));return}if(o.meta&&p==="f"){let c=t;for(;c<e.length&&e[c]!==" ";)c++;for(;c<e.length&&e[c]===" ";)c++;a(c);return}if(o.leftArrow){if(o.ctrl||o.shift)return;a(c=>Math.max(0,c-1));return}if(o.rightArrow){if(o.ctrl||o.shift)return;if(t>=e.length&&G){let c=I+G;f([...c]),a(c.length)}else a(c=>Math.min(e.length,c+1));return}if(o.upArrow){if(o.shift)return;if(V){H(c=>Math.max(0,c-1));return}if(v==="none"){let c=Math.max(1,O-2),y=ke(e,t,c,-1);if(y!==null){a(y);return}let D=n.getAll();if(D.length===0)return;if(L===-1){R.current=I,C(D.length-1);let B=D[D.length-1];f([...B]),a(B.length)}else if(L>0){let B=L-1;C(B);let s=D[B];f([...s]),a(s.length)}}return}if(o.downArrow){if(o.shift)return;if(V){H(c=>Math.min(j.length-1,c+1));return}if(v==="none"){let c=Math.max(1,O-2),y=ke(e,t,c,1);if(y!==null){a(y);return}let D=n.getAll();if(L===-1)return;if(L<D.length-1){let B=L+1;C(B);let s=D[B];f([...s]),a(s.length)}else{C(-1);let B=R.current;f([...B]),a(B.length)}}return}if(o.backspace||o.delete){if(o.meta||o.ctrl)return;if(t>0){let c=[...e.slice(0,t-1),...e.slice(t)];f(c),a(t-1),C(-1),H(0)}return}if(p&&!o.ctrl&&!o.meta){let c=qe(p);if(!c)return;let y=[...e.slice(0,t),...c,...e.slice(t)];f(y),a(t+c.length),C(-1),H(0)}},{isActive:v!=="search"}),Me(p=>{if(p.home){a(0);return}if(p.end){a(e.length);return}if(p.killToEnd){f(e.slice(0,t));return}if(p.arrowLeft&&(p.ctrl||p.meta)){let o=t-1;for(;o>0&&e[o]===" ";)o--;for(;o>0&&e[o-1]!==" ";)o--;a(Math.max(0,o));return}if(p.arrowRight&&(p.ctrl||p.meta)){let o=t;for(;o<e.length&&e[o]!==" ";)o++;for(;o<e.length&&e[o]===" ";)o++;a(o);return}if(p.backspace&&p.meta){if(t===0)return;let o=t-1;for(;o>0&&e[o]===" ";)o--;for(;o>0&&e[o-1]!==" ";)o--;let c=[...e.slice(0,o),...e.slice(t)];f(c),a(o);return}if(p.delete&&(p.ctrl||p.meta)){let o=t;for(;o<e.length&&e[o]===" ";)o++;for(;o<e.length&&e[o]!==" ";)o++;f([...e.slice(0,t),...e.slice(o)]);return}},{isActive:v!=="search"});let ce=p=>{f([...p]),a(p.length),A("none")},$=()=>{A("none")},X=(()=>{if(M&&e.length===0)return null;let p=t>=e.length,o=e.slice(0,t).join(""),c,y;p?(c=" ",y=""):e[t]===`
|
|
7
7
|
`?(c=" ",y=e.slice(t).join("")):(c=e[t],y=e.slice(t+1).join(""));let D=o+c+y+G,B=o.length,s=B+1,d=s+y.length,m=Math.max(1,O-2),g=[],S=0;for(;S<=D.length;){let K=D.indexOf(`
|
|
8
8
|
`,S);if(K===-1&&(K=D.length),S===K)g.push({type:"content",start:S,end:S});else{let z=S;for(;z<K;){let ee=Math.min(z+m,K);g.push({type:"content",start:z,end:ee}),z=ee}}if(K>=D.length)break;S=K+1}let P=Math.max(0,g.findIndex(K=>K.start<=B&&B<=K.end)),Y;if(g.length<=ve)Y=g;else{let z=ve-1-4;if(P<4||P>=g.length-z)Y=[...g.slice(0,4),{type:"ellipsis",hidden:g.length-4-z},...g.slice(g.length-z)];else{let ee=ve-2,be=Math.floor(ee/2),te=P-be,oe=P+(ee-be)-1;te<1&&(oe+=1-te,te=1),oe>g.length-2&&(te-=oe-(g.length-2),oe=g.length-2),te=Math.max(1,te),Y=[{type:"ellipsis",hidden:te},...g.slice(te,oe+1),{type:"ellipsis",hidden:g.length-oe-1}]}}return{full:D,b:B,c:s,a:d,rows:Y}})();return(0,k.jsxs)(b,{flexDirection:"column",children:[v==="search"&&(0,k.jsx)(De,{history:n,onSelect:ce,onClose:$}),V&&(0,k.jsx)(Le,{commands:j,selectedIndex:W}),(0,k.jsx)(h,{color:w.muted,children:"\u2500".repeat(O)}),X===null?(0,k.jsxs)(b,{children:[(0,k.jsx)(h,{color:w.purple,children:"\u276F "}),(0,k.jsx)(h,{inverse:!0,children:" "}),(0,k.jsx)(h,{color:w.dimmed,children:l})]}):(()=>{let p=X.rows.findIndex(o=>o.type==="content");return(0,k.jsx)(b,{flexDirection:"column",children:X.rows.map((o,c)=>{if(o.type==="ellipsis")return(0,k.jsx)(b,{children:(0,k.jsxs)(h,{color:w.dimmed,children:[" \u22EF ","(",o.hidden," more line",o.hidden===1?"":"s",")"]})},c);let{full:y,b:D,c:B,a:s}=X,d=o.start,x=o.end,m=c===p,g=m?"\u276F ":" ",S=m?w.purple:w.muted,P=[(0,k.jsx)(h,{color:S,children:g},"p")];d<Math.min(D,x)&&P.push((0,k.jsx)(h,{children:y.slice(d,Math.min(D,x))},"b"));let Y=Math.max(D,d),K=Math.min(B,x);Y<K&&P.push((0,k.jsx)(h,{color:w.purple,inverse:!0,children:y.slice(Y,K)},"c"));let z=Math.max(B,d),ee=Math.min(s,x);return z<ee&&P.push((0,k.jsx)(h,{children:y.slice(z,ee)},"a")),x>s&&P.push((0,k.jsx)(h,{color:w.dimmed,children:y.slice(Math.max(s,d),x)},"g")),(0,k.jsx)(b,{children:P},c)})})})(),(0,k.jsx)(se,{bindings:[{keys:"\u2191\u2193",label:"history"},{keys:"\u21B5",label:"submit"},{keys:"tab",label:"complete"},{keys:"ctrl+r",label:"search"}],escBackLabel:"clear"})]})}var N=U(ie(),1);var T=U(J(),1);function Ze(i){let r=[{id:"method",label:"Auth method",options:[{label:"Basic Auth",value:"basic"},{label:"OAuth (browser)",value:"oauth"}]}];return i&&r.push({id:"env",label:"Environment",options:[{label:"prod",value:"prod"},{label:"stage",value:"stage"}]}),r.push({id:"profile",label:"Profile"}),r.push({id:"credentials",label:"Credentials"}),r}function je({devMode:i,profiles:r,onBasicLogin:n,onOAuthLogin:l,onComplete:u,onCancel:e}){let f=Ze(i),[t,a]=(0,N.useState)(0),[v,A]=(0,N.useState)(0),[L,C]=(0,N.useState)({}),[R,M]=(0,N.useState)("select"),[ne,F]=(0,N.useState)(""),[O,W]=(0,N.useState)("username"),[H,I]=(0,N.useState)(""),[G,j]=(0,N.useState)(null),[V,ce]=(0,N.useState)(null),$=f[t],X=L.method??"basic",p=L.env??"prod",o=(0,N.useCallback)(()=>{let m=r.filter(g=>g.env===p).map(g=>({label:`${g.profile} [${g.env}]`,value:g.profile}));return m.push({label:"+ Create new",value:"__new__"}),m},[r,p]),c=(0,N.useCallback)(()=>{t===0?e():(a(x=>x-1),A(0),M("select"),F(""),j(null))},[t,e]),y=(0,N.useCallback)(x=>{X==="basic"?(M("text-input"),W("username"),F("")):(M("waiting"),l(x,p).then(()=>{ce(`Logged in via OAuth as ${x} [${p}]`),M("done")}).catch(m=>{j(m.message),M("error")}))},[X,p,l]),D=(0,N.useCallback)(x=>{let m=x.trim();if(m){if(O==="profileName"){let g=m;C(S=>({...S,profile:g})),y(g);return}if(O==="username"){I(m),F(""),W("accessKey"),M("text-input-masked");return}if(O==="accessKey"){let g=L.profile??"default";M("waiting"),(async()=>{try{await n(g,p,H,m),ce(`Logged in as ${g} [${p}] via basic auth`),M("done")}catch{j("Credentials not valid. Please use valid credentials."),I(""),F(""),W("username"),M("text-input")}})()}}},[O,L.profile,p,n,H,y]),B=(0,N.useCallback)(x=>{F(x),G&&j(null)},[G]);Q((x,m)=>{if(R==="done"){let S=L.profile??"default";u(S,p);return}if(R==="error"){e();return}if(R==="waiting"){m.escape&&e();return}if(R==="text-input"||R==="text-input-masked")return;if(m.escape){c();return}let g=$?.id==="profile"?o():$?.options??[];if(m.upArrow){A(S=>Math.max(0,S-1));return}if(m.downArrow){A(S=>Math.min(g.length-1,S+1));return}if(m.return&&g[v]){let S=g[v];if($.id==="profile"){if(S.value==="__new__"){M("text-input"),W("profileName"),F("");return}C(P=>({...P,profile:S.value})),a(P=>P+1),A(0),y(S.value);return}C(P=>({...P,[$.id]:S.value})),a(P=>P+1),A(0)}});let s="Login";if(R==="done")return(0,T.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:w.statusPass,paddingX:2,paddingY:1,children:[(0,T.jsxs)(h,{color:w.statusPass,bold:!0,children:["\u2713 ",V]}),(0,T.jsx)(b,{marginTop:1,children:(0,T.jsx)(h,{color:w.dim,children:"press any key"})})]});if(R==="error")return(0,T.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:w.statusFail,paddingX:2,paddingY:1,children:[(0,T.jsx)(h,{color:w.statusFail,bold:!0,children:"Login failed"}),(0,T.jsx)(b,{marginTop:1,children:(0,T.jsx)(h,{color:w.statusFail,children:G})}),(0,T.jsx)(b,{marginTop:1,children:(0,T.jsx)(h,{color:w.dim,children:"press any key"})})]});if(R==="waiting")return(0,T.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:w.primary,paddingX:2,paddingY:1,children:[(0,T.jsxs)(h,{color:w.primary,bold:!0,children:[s," \u203A OAuth"]}),(0,T.jsx)(b,{marginTop:1,children:(0,T.jsx)(h,{color:w.secondary,children:"Opening browser for login..."})}),(0,T.jsx)(b,{marginTop:1,children:(0,T.jsx)(h,{color:w.primary,children:"Waiting for callback \u27F3"})}),(0,T.jsx)(se,{bindings:[],escBackLabel:"cancel"})]});if(R==="text-input"||R==="text-input-masked"){let x=O==="username"?"Username":O==="accessKey"?"Access Key":"Profile name",m=O==="username"||O==="accessKey"?`${s} \u203A Basic Auth`:`${s} \u203A New Profile`;return(0,T.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:w.primary,paddingX:2,paddingY:1,children:[G&&(O==="username"||O==="accessKey")&&(0,T.jsx)(b,{marginBottom:1,children:(0,T.jsxs)(h,{color:w.statusFail,children:["\u2717 ",G]})}),(0,T.jsx)(h,{color:w.primary,bold:!0,children:m}),O==="accessKey"&&(0,T.jsxs)(b,{marginTop:1,children:[(0,T.jsx)(h,{color:w.secondary,children:"Username: "}),(0,T.jsx)(h,{children:H})]}),(0,T.jsxs)(b,{marginTop:1,children:[(0,T.jsxs)(h,{color:w.secondary,children:[x,": "]}),(0,T.jsx)(Ce,{value:ne,onChange:B,onSubmit:D,onCancel:c,masked:R==="text-input-masked"})]}),(0,T.jsx)(se,{bindings:[{keys:"\u21B5",label:"confirm"}],escBackLabel:"back"})]})}let d=$?.id==="profile"?o():$?.options??[];return(0,T.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:w.primary,paddingX:2,paddingY:1,children:[(0,T.jsx)(h,{color:w.primary,bold:!0,children:s}),(0,T.jsx)(b,{marginTop:1,children:(0,T.jsxs)(h,{color:w.secondary,children:[$?.label,":"]})}),(0,T.jsx)(b,{flexDirection:"column",marginTop:1,children:d.map((x,m)=>{let g=m===v,S=g?"\u276F ":" ",P=x.value==="__new__"?w.statusPass:g?w.primary:void 0;return(0,T.jsxs)(h,{color:P,children:[S,x.label]},x.value)})}),(0,T.jsx)(se,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"\u21B5",label:"select"}],escBackLabel:"back"})]})}var Fe=U(ie(),1);import{readFileSync as et,writeFileSync as tt,mkdirSync as rt}from"fs";import{dirname as nt,join as ot}from"path";var it=ot(Ee,"command-history.json"),st=200,we=class{entries;filePath;max;constructor(r=it,n=st){this.filePath=r,this.max=n,this.entries=this._load()}push(r){this.entries.length>0&&this.entries[this.entries.length-1]===r||(this.entries.push(r),this.entries.length>this.max&&(this.entries=this.entries.slice(this.entries.length-this.max)),this._save())}getAll(){return[...this.entries]}search(r){let n=r.toLowerCase(),l=[];for(let u=this.entries.length-1;u>=0;u--)this.entries[u].toLowerCase().includes(n)&&l.push(this.entries[u]);return l}_load(){try{let r=et(this.filePath,"utf-8"),n=JSON.parse(r);return Array.isArray(n)?n:[]}catch{return[]}}_save(){try{rt(nt(this.filePath),{recursive:!0}),tt(this.filePath,JSON.stringify(this.entries)+`
|
|
9
|
-
`)}catch{}}};function Ke(i){let r=(0,Fe.useRef)(null);return r.current||(r.current=new we(i)),r.current}async function ge(i,r,n,l){let u=i.loadBasicAuth(r,n),e=i.loadCredentials(r,n);if(!u&&!e)return l("info","STARTUP_GATE_NO_CREDS","Profile has no credentials",{profile:r,env:n}),{status:"needs_login",profile:r,env:n};let f=le(n),t=async()=>i.loadCredentials(r,n)?.access_token??null,a=new me(f.controllerBaseUrl,t,u,l);l("info","STARTUP_GATE_VALIDATE","Validating credentials with controller",{profile:r,env:n,method:u?"basic":"oauth"});let v=await a.resolve(!0);if(v)return l("info","STARTUP_GATE_VALID","Credentials validated",{profile:r,env:n,username:v.username,org_id:v.org_id}),{status:"authenticated",result:{profile:r,env:n,credentials:e,basicAuth:u,tmsCreds:v,resolver:a}};if(!u&&e){let A=e.refresh_token,C=i.loadClient(r,n)?.client_id;if(A&&C){l("info","STARTUP_GATE_REFRESH","Attempting token refresh",{profile:r,env:n});try{let M=await new Be(n).refreshToken(A,C);if(M.access_token){i.saveCredentials(r,n,{...e,...M,expires_at:Date.now()/1e3+(M.expires_in??3600)});let F=await a.resolve(!0);if(F)return l("info","STARTUP_GATE_REFRESH_OK","Token refreshed and validated",{profile:r,env:n,username:F.username}),{status:"authenticated",result:{profile:r,env:n,credentials:{...e,...M},basicAuth:null,tmsCreds:F,resolver:a}}}l("warn","STARTUP_GATE_REFRESH_INVALID","Refreshed token still invalid",{profile:r,env:n})}catch(R){l("warn","STARTUP_GATE_REFRESH_FAILED","Token refresh failed",{profile:r,env:n,error:R instanceof Error?R.message:String(R)})}}else l("info","STARTUP_GATE_NO_REFRESH","No refresh_token or client_id \u2014 login required",{profile:r,env:n})}return l("info","STARTUP_GATE_INVALID","Credentials invalid \u2014 login required",{profile:r,env:n}),{status:"needs_login",profile:r,env:n}}async function Ue(i,r,n=new de){let l=i.listProfiles();if(r("info","STARTUP_GATE_START","Auth startup gate",{profile_count:l.length}),l.length===0)return r("info","STARTUP_GATE_NONE","No profiles found \u2014 login required"),{status:"needs_login"};if(l.length>1){let f=i.getActiveProfile(),t=i.getDefaultEnv();if(f&&l.some(v=>v.profile===f&&v.env===t)){r("info","STARTUP_GATE_TRY_ACTIVE","Multiple profiles \u2014 trying active first",{activeProfile:f,activeEnv:t});let v=await ge(i,f,t,r);if(v.status==="authenticated")return v;r("info","STARTUP_GATE_ACTIVE_FAILED","Active profile invalid \u2014 showing picker",{activeProfile:f,activeEnv:t})}return r("info","STARTUP_GATE_MULTI","Multiple profiles \u2014 picker required",{profiles:l.map(a=>`${a.profile}/${a.env}`)}),{status:"needs_pick",profiles:l}}let{profile:u,env:e}=l[0];return i.setActiveProfile(u),i.setDefaultEnv(e),ae(i,n,u,e),ge(i,u,e,r)}var E=U(J(),1);function rr({resultRef:i,mode:r="singleshot",loginCompleteRef:n}){let{exit:l}=ye(),u=(0,_.useRef)(new Ae),e=(0,_.useRef)(new de),f=(0,_.useRef)(new Re),t=u.current,a=e.current,v=f.current,A=Ke(),[L,C]=(0,_.useState)(r==="login"?"login":"gate"),[R,M]=(0,_.useState)(null),[ne,F]=(0,_.useState)(null),[O,W]=(0,_.useState)(null),[H,I]=(0,_.useState)(null),[G,j]=(0,_.useState)([]),V=(0,_.useCallback)((s,d,x,m)=>v.log(s,d,x,m),[v]),ce=(0,_.useCallback)((s,d)=>{s?ae(t,a,s,d):a.save({project_id:null,project_name:null,folder_id:null,folder_name:null})},[t,a]),$=(0,_.useCallback)(()=>{r==="login"?(n&&(n.current=!0),l()):C("input")},[r,l,n]),X=(0,_.useCallback)((s,d)=>{let x=ae(t,a,s,d);if(r==="login"){C("ensure-project");return}Ie(x)?$():x.projectId?C("ensure-folder"):C("ensure-project")},[t,a,$,r]);Q((s,d)=>{d.ctrl&&s==="c"&&fe(0,"Ctrl+C exit")});let p=(0,_.useRef)(!1);_.default.useEffect(()=>{p.current||(p.current=!0,r!=="login"&&Ue(t,V).then(s=>{M(s),s.status==="authenticated"?X(s.result.profile,s.result.env):s.status==="needs_pick"?C("pick"):(F(s.profile??null),W(s.env??null),C("login"))}).catch(s=>{I(`Auth check failed: ${s instanceof Error?s.message:String(s)}`)}))},[t,V]);let o=(0,_.useCallback)(s=>{i.current={objective:s},l()},[i,l]),c=(0,_.useCallback)(async(s,d)=>{t.setActiveProfile(s),t.setDefaultEnv(d),(await ge(t,s,d,V)).status==="authenticated"?X(s,d):(F(s),W(d),C("login"))},[t,V,X]),y=(0,_.useCallback)(()=>{let s=t.getActiveProfile(),d=t.getDefaultEnv();if(!s)return null;let x=le(d),m=t.loadBasicAuth(s,d);return new me(x.controllerBaseUrl,async()=>t.loadCredentials(s,d)?.access_token??null,m,V)},[t,V]),D=(0,_.useCallback)(async()=>{let s=y();if(!s)return null;let d=s.cached??await s.resolve();if(!d)return null;let x=le(t.getDefaultEnv()),m=new he(x.tmsBaseUrl,d.username,d.access_key);try{let S=(await m.listProjects()).find(Y=>Y.name==="KaneAI Generated");if(S)return{id:S.project_id,name:S.name};let P=await m.createProject("KaneAI Generated");return{id:P.id,name:P.name}}catch{return null}},[y,t]),B=(0,_.useCallback)(async s=>{let d=y();if(!d)return null;let x=d.cached??await d.resolve();if(!x)return null;let m=le(t.getDefaultEnv()),g=new he(m.tmsBaseUrl,x.username,x.access_key);try{let P=(await g.listFolders(s)).find(K=>K.name==="Untitled");if(P)return{id:P.id,name:P.name};let Y=await g.createFolder(s,"Untitled");return{id:Y.id,name:Y.name}}catch{return null}},[y,t]);if(L==="gate")return(0,E.jsx)(b,{paddingX:1,children:(0,E.jsx)(h,{color:"yellow",children:"Checking authentication..."})});if(H)return(0,E.jsxs)(b,{flexDirection:"column",paddingX:1,children:[(0,E.jsx)(h,{color:"red",children:H}),(0,E.jsx)(h,{color:"gray",children:"Press Ctrl+C to exit."})]});if(L==="pick"&&R?.status==="needs_pick")return(0,E.jsx)(lt,{profiles:R.profiles,onSelect:c});if(L==="login")return(0,E.jsx)(je,{devMode:process.env.KANE_DEV_MODE==="1",profiles:t.listProfiles(),onBasicLogin:async(s,d,x,m)=>{let{validateBasicAuth:g}=await import("./validate-basic-
|
|
9
|
+
`)}catch{}}};function Ke(i){let r=(0,Fe.useRef)(null);return r.current||(r.current=new we(i)),r.current}async function ge(i,r,n,l){let u=i.loadBasicAuth(r,n),e=i.loadCredentials(r,n);if(!u&&!e)return l("info","STARTUP_GATE_NO_CREDS","Profile has no credentials",{profile:r,env:n}),{status:"needs_login",profile:r,env:n};let f=le(n),t=async()=>i.loadCredentials(r,n)?.access_token??null,a=new me(f.controllerBaseUrl,t,u,l);l("info","STARTUP_GATE_VALIDATE","Validating credentials with controller",{profile:r,env:n,method:u?"basic":"oauth"});let v=await a.resolve(!0);if(v)return l("info","STARTUP_GATE_VALID","Credentials validated",{profile:r,env:n,username:v.username,org_id:v.org_id}),{status:"authenticated",result:{profile:r,env:n,credentials:e,basicAuth:u,tmsCreds:v,resolver:a}};if(!u&&e){let A=e.refresh_token,C=i.loadClient(r,n)?.client_id;if(A&&C){l("info","STARTUP_GATE_REFRESH","Attempting token refresh",{profile:r,env:n});try{let M=await new Be(n).refreshToken(A,C);if(M.access_token){i.saveCredentials(r,n,{...e,...M,expires_at:Date.now()/1e3+(M.expires_in??3600)});let F=await a.resolve(!0);if(F)return l("info","STARTUP_GATE_REFRESH_OK","Token refreshed and validated",{profile:r,env:n,username:F.username}),{status:"authenticated",result:{profile:r,env:n,credentials:{...e,...M},basicAuth:null,tmsCreds:F,resolver:a}}}l("warn","STARTUP_GATE_REFRESH_INVALID","Refreshed token still invalid",{profile:r,env:n})}catch(R){l("warn","STARTUP_GATE_REFRESH_FAILED","Token refresh failed",{profile:r,env:n,error:R instanceof Error?R.message:String(R)})}}else l("info","STARTUP_GATE_NO_REFRESH","No refresh_token or client_id \u2014 login required",{profile:r,env:n})}return l("info","STARTUP_GATE_INVALID","Credentials invalid \u2014 login required",{profile:r,env:n}),{status:"needs_login",profile:r,env:n}}async function Ue(i,r,n=new de){let l=i.listProfiles();if(r("info","STARTUP_GATE_START","Auth startup gate",{profile_count:l.length}),l.length===0)return r("info","STARTUP_GATE_NONE","No profiles found \u2014 login required"),{status:"needs_login"};if(l.length>1){let f=i.getActiveProfile(),t=i.getDefaultEnv();if(f&&l.some(v=>v.profile===f&&v.env===t)){r("info","STARTUP_GATE_TRY_ACTIVE","Multiple profiles \u2014 trying active first",{activeProfile:f,activeEnv:t});let v=await ge(i,f,t,r);if(v.status==="authenticated")return v;r("info","STARTUP_GATE_ACTIVE_FAILED","Active profile invalid \u2014 showing picker",{activeProfile:f,activeEnv:t})}return r("info","STARTUP_GATE_MULTI","Multiple profiles \u2014 picker required",{profiles:l.map(a=>`${a.profile}/${a.env}`)}),{status:"needs_pick",profiles:l}}let{profile:u,env:e}=l[0];return i.setActiveProfile(u),i.setDefaultEnv(e),ae(i,n,u,e),ge(i,u,e,r)}var E=U(J(),1);function rr({resultRef:i,mode:r="singleshot",loginCompleteRef:n}){let{exit:l}=ye(),u=(0,_.useRef)(new Ae),e=(0,_.useRef)(new de),f=(0,_.useRef)(new Re),t=u.current,a=e.current,v=f.current,A=Ke(),[L,C]=(0,_.useState)(r==="login"?"login":"gate"),[R,M]=(0,_.useState)(null),[ne,F]=(0,_.useState)(null),[O,W]=(0,_.useState)(null),[H,I]=(0,_.useState)(null),[G,j]=(0,_.useState)([]),V=(0,_.useCallback)((s,d,x,m)=>v.log(s,d,x,m),[v]),ce=(0,_.useCallback)((s,d)=>{s?ae(t,a,s,d):a.save({project_id:null,project_name:null,folder_id:null,folder_name:null})},[t,a]),$=(0,_.useCallback)(()=>{r==="login"?(n&&(n.current=!0),l()):C("input")},[r,l,n]),X=(0,_.useCallback)((s,d)=>{let x=ae(t,a,s,d);if(r==="login"){C("ensure-project");return}Ie(x)?$():x.projectId?C("ensure-folder"):C("ensure-project")},[t,a,$,r]);Q((s,d)=>{d.ctrl&&s==="c"&&fe(0,"Ctrl+C exit")});let p=(0,_.useRef)(!1);_.default.useEffect(()=>{p.current||(p.current=!0,r!=="login"&&Ue(t,V).then(s=>{M(s),s.status==="authenticated"?X(s.result.profile,s.result.env):s.status==="needs_pick"?C("pick"):(F(s.profile??null),W(s.env??null),C("login"))}).catch(s=>{I(`Auth check failed: ${s instanceof Error?s.message:String(s)}`)}))},[t,V]);let o=(0,_.useCallback)(s=>{i.current={objective:s},l()},[i,l]),c=(0,_.useCallback)(async(s,d)=>{t.setActiveProfile(s),t.setDefaultEnv(d),(await ge(t,s,d,V)).status==="authenticated"?X(s,d):(F(s),W(d),C("login"))},[t,V,X]),y=(0,_.useCallback)(()=>{let s=t.getActiveProfile(),d=t.getDefaultEnv();if(!s)return null;let x=le(d),m=t.loadBasicAuth(s,d);return new me(x.controllerBaseUrl,async()=>t.loadCredentials(s,d)?.access_token??null,m,V)},[t,V]),D=(0,_.useCallback)(async()=>{let s=y();if(!s)return null;let d=s.cached??await s.resolve();if(!d)return null;let x=le(t.getDefaultEnv()),m=new he(x.tmsBaseUrl,d.username,d.access_key);try{let S=(await m.listProjects()).find(Y=>Y.name==="KaneAI Generated");if(S)return{id:S.project_id,name:S.name};let P=await m.createProject("KaneAI Generated");return{id:P.id,name:P.name}}catch{return null}},[y,t]),B=(0,_.useCallback)(async s=>{let d=y();if(!d)return null;let x=d.cached??await d.resolve();if(!x)return null;let m=le(t.getDefaultEnv()),g=new he(m.tmsBaseUrl,x.username,x.access_key);try{let P=(await g.listFolders(s)).find(K=>K.name==="Untitled");if(P)return{id:P.id,name:P.name};let Y=await g.createFolder(s,"Untitled");return{id:Y.id,name:Y.name}}catch{return null}},[y,t]);if(L==="gate")return(0,E.jsx)(b,{paddingX:1,children:(0,E.jsx)(h,{color:"yellow",children:"Checking authentication..."})});if(H)return(0,E.jsxs)(b,{flexDirection:"column",paddingX:1,children:[(0,E.jsx)(h,{color:"red",children:H}),(0,E.jsx)(h,{color:"gray",children:"Press Ctrl+C to exit."})]});if(L==="pick"&&R?.status==="needs_pick")return(0,E.jsx)(lt,{profiles:R.profiles,onSelect:c});if(L==="login")return(0,E.jsx)(je,{devMode:process.env.KANE_DEV_MODE==="1",profiles:t.listProfiles(),onBasicLogin:async(s,d,x,m)=>{let{validateBasicAuth:g}=await import("./validate-basic-Q5IZSBIG.js");await g(d,x,m),t.saveBasicAuth(s,d,{username:x,access_key:m}),t.setActiveProfile(s),t.setDefaultEnv(d)},onOAuthLogin:async(s,d)=>{let{LoginFlow:x}=await import("./login-flow-C22P3I5G.js");t.setDefaultEnv(d),t.setActiveProfile(s),await new x(s,d,t).login()},onComplete:(s,d)=>{F(s),W(d),t.setActiveProfile(s),t.setDefaultEnv(d),X(s,d)},onCancel:()=>{fe(0,"Login cancelled")}});if(L==="ensure-project"){let s=t.getActiveProfile()??"default",d=t.getDefaultEnv(),x=()=>{if(r==="login"){C("ensure-folder");return}ae(t,a,s,d).folderId?$():C("ensure-folder")};return(0,E.jsxs)(b,{flexDirection:"column",children:[(0,E.jsx)(b,{paddingX:1,marginBottom:1,children:(0,E.jsx)(h,{color:"yellow",children:"Project & folder are required to save tests \xB7 Esc to use defaults \xB7 Ctrl+C to exit"})}),(0,E.jsx)(Pe,{resolver:y(),currentProjectId:a.load().project_id,env:d,onSelect:(m,g)=>{ue(t,a,s,d,{projectId:m,projectName:g}),j(S=>[...S,`\u2713 Project: ${g} (${m})`]),x()},onCancel:async()=>{let m=await D();m&&(ue(t,a,s,d,{projectId:m.id,projectName:m.name}),j(g=>[...g,`\u2713 Default project: ${m.name} (${m.id})`]),x())}})]})}if(L==="ensure-folder"){let s=t.getActiveProfile()??"default",d=t.getDefaultEnv(),x=t.loadProfileConfig(s,d);return(0,E.jsxs)(b,{flexDirection:"column",children:[(0,E.jsx)(b,{paddingX:1,marginBottom:1,children:(0,E.jsx)(h,{color:"yellow",children:"Project & folder are required to save tests \xB7 Esc to use defaults \xB7 Ctrl+C to exit"})}),(0,E.jsx)(_e,{resolver:y(),projectId:x?.project_id??"",currentFolderId:a.load().folder_id,env:d,onSelect:(m,g)=>{ue(t,a,s,d,{folderId:m,folderName:g}),j(S=>[...S,`\u2713 Folder: ${g} (${m})`]),$()},onCancel:async()=>{if(!x?.project_id)return;let m=await B(x.project_id);m&&(ue(t,a,s,d,{folderId:m.id,folderName:m.name}),j(g=>[...g,`\u2713 Default folder: ${m.name} (${m.id})`]),$())}})]})}return L==="input"?(0,E.jsxs)(b,{flexDirection:"column",children:[G.length>0&&(0,E.jsx)(b,{flexDirection:"column",paddingX:1,marginBottom:1,children:G.map((s,d)=>(0,E.jsx)(h,{color:"green",children:s},d))}),(0,E.jsx)(Oe,{onSubmit:o,onEscape:()=>fe(0,"User pressed Escape"),history:A,placeholder:"Type an objective..."})]}):(0,E.jsx)(E.Fragment,{})}function lt({profiles:i,onSelect:r}){let[n,l]=(0,_.useState)(0),[u,e]=(0,_.useState)(!1);return Q((f,t)=>{if(!u){if(t.escape){fe(0,"Profile picker cancelled");return}if(t.upArrow&&n>0&&l(a=>a-1),t.downArrow&&n<i.length-1&&l(a=>a+1),t.return){e(!0);let a=i[n];r(a.profile,a.env).catch(()=>e(!1))}}}),(0,E.jsxs)(b,{flexDirection:"column",paddingX:1,children:[(0,E.jsx)(h,{color:"#ff9500",bold:!0,children:"Select a profile:"}),(0,E.jsx)(b,{marginTop:1,flexDirection:"column",children:i.map((f,t)=>(0,E.jsxs)(h,{children:[t===n?"\u276F ":" ",(0,E.jsx)(h,{color:t===n?"#ff9500":"white",bold:t===n,children:f.profile}),(0,E.jsxs)(h,{color:"gray",children:[" [",f.env,"]"]})]},`${f.profile}-${f.env}`))}),u&&(0,E.jsx)(b,{marginTop:1,children:(0,E.jsx)(h,{color:"yellow",children:"Validating credentials..."})})]})}export{Ke as a,Oe as b,je as c,ge as d,Ue as e,rr as f};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{d as a,h as c}from"./chunk-
|
|
2
|
+
import{d as a,h as c}from"./chunk-XR7EOTSN.js";import{readFileSync as g,writeFileSync as n,mkdirSync as i,existsSync as p}from"fs";import{dirname as s}from"path";var o={window_size:{width:1920,height:1080},chrome_profile_path:"",default_url:c,model:"v16-alpha",project_id:null,project_name:null,folder_id:null,folder_name:null,mode:"testing",code_export:{enabled:!0,language:"python",skip_validation:!0},last_seen_version:""},l=class{constructor(r=a){this.path=r}exists(){return p(this.path)}load(){try{let r=g(this.path,"utf-8"),e=JSON.parse(r);return{...o,...e,code_export:{...o.code_export,...e.code_export??{}}}}catch{return{...o,code_export:{...o.code_export}}}}set(r,e){try{let t=this.load();t[r]=e,i(s(this.path),{recursive:!0}),n(this.path,JSON.stringify(t,null,2)+`
|
|
3
3
|
`)}catch(t){let d=t instanceof Error?t.message:String(t);process.stderr.write(`[config] Failed to save config: ${d}
|
|
4
4
|
`)}}save(r){try{let t={...this.load(),...r};i(s(this.path),{recursive:!0}),n(this.path,JSON.stringify(t,null,2)+`
|
|
5
5
|
`)}catch(e){let t=e instanceof Error?e.message:String(e);process.stderr.write(`[config] Failed to save config: ${t}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as se,b as Te}from"./chunk-
|
|
2
|
+
import{a as se,b as Te}from"./chunk-OWTKDTKK.js";import{b as ke}from"./chunk-YZBUZYJK.js";import{d as Be,e as ae}from"./chunk-G7VF5SDK.js";import{a as Re}from"./chunk-2BJVZ75R.js";import{a as N}from"./chunk-HCBYKLMW.js";import{t as s}from"./chunk-XR7EOTSN.js";import{a as c,b as o,d as ye,k as ue}from"./chunk-C44QQJR4.js";import{a as le}from"./chunk-6YGTRKDT.js";import{e as j}from"./chunk-UR6MHSHU.js";var G=j(N(),1),Le=64;function Pe(t){return t.split(`
|
|
3
3
|
`).map(i=>i.replace(/^[-–•]\s*/,"").trim()).filter(i=>i.length>0)}function Ge({status:t,summary:i,duration:l,steps:u,stepsPassed:S,stepsFailed:f,reason:x,creditsConsumed:d}){let D=t==="passed",E=D?s.green:s.red,P=D?"\u2713":"\u2717",F=t.toUpperCase(),H=S??(D?u:Math.max(0,u-1)),I=f??(D?0:1),M=I>0?`${u} steps (${H} passed, ${I} failed)`:`${u} steps`,Q=l<60?`${l.toFixed(1)}s`:`${Math.floor(l/60)}m ${Math.round(l%60)}s`,V=Pe(i);return(0,G.jsx)(c,{flexDirection:"column",marginTop:1,children:(0,G.jsxs)(c,{borderStyle:"round",borderColor:E,flexDirection:"column",paddingX:2,paddingY:1,width:Le+6,children:[(0,G.jsxs)(c,{flexDirection:"column",children:[(0,G.jsxs)(o,{bold:!0,color:E,children:[P," ",F]}),(0,G.jsxs)(o,{color:s.dimmed,wrap:"wrap",children:[M," \xB7 ",Q,typeof d=="number"&&d>0?` \xB7 ${parseFloat(d.toFixed(4))} credits`:""]})]}),V.length>0&&(0,G.jsx)(c,{flexDirection:"column",marginTop:1,marginLeft:1,children:V.map((Z,W)=>(0,G.jsxs)(c,{marginBottom:W<V.length-1?1:0,children:[(0,G.jsx)(o,{color:s.primary,children:"\u25CF "}),(0,G.jsx)(c,{flexShrink:1,children:(0,G.jsx)(o,{wrap:"wrap",children:Z})})]},W))}),x&&!D&&(0,G.jsx)(c,{marginTop:1,children:(0,G.jsxs)(o,{color:s.red,wrap:"wrap",children:["Reason: ",x]})})]})})}var A=j(N(),1);function Ke({message:t,code:i,remediation:l,docsUrl:u}){return(0,A.jsx)(Re,{title:"Error",variant:"error",children:(0,A.jsxs)(c,{flexDirection:"column",paddingY:1,children:[(0,A.jsxs)(o,{color:s.red,bold:!0,children:[" \u2717 ",t]}),i&&(0,A.jsxs)(c,{marginTop:0,marginLeft:5,children:[(0,A.jsx)(o,{color:s.muted,children:"Code: "}),(0,A.jsx)(o,{color:s.dimmed,children:i})]}),l&&(0,A.jsxs)(c,{flexDirection:"column",marginTop:1,marginLeft:5,children:[(0,A.jsx)(o,{color:s.green,bold:!0,children:"Fix:"}),(0,A.jsxs)(o,{color:s.cyan,children:["$ ",l]})]}),u&&(0,A.jsxs)(c,{marginTop:1,marginLeft:5,children:[(0,A.jsx)(o,{color:s.muted,children:"Docs: "}),(0,A.jsx)(o,{color:s.cyan,underline:!0,children:u})]})]})})}var $=j(le(),1);var we=j(le(),1);var de=j(N(),1),De="#ffc580",Fe="#ffd9a8",ve="#ffffff";function _e({text:t,active:i=!0}){let[l,u]=(0,we.useState)(0),S=4;if(se(()=>{u(x=>(x+1)%(t.length+S*2))},i?80:null),!i)return(0,de.jsx)(o,{color:ve,children:t});let f=t.split("").map((x,d)=>{let D=l-S,E=Math.abs(d-D-S/2),P;return E<=S/2?P=De:E<=S?P=Fe:P=ve,(0,de.jsx)(o,{color:P,children:x},d)});return(0,de.jsx)(o,{children:f})}var O=j(N(),1),Oe={starting:s.cyan,running:s.purple,passed:s.green,failed:s.red,cancelled:s.dimmed,timed_out:s.yellow};function fe({currentStep:t,maxSteps:i,elapsed:l,status:u}){let{stdout:S}=ue(),f=S?.columns??80,x=Oe[u]??s.purple,d=l<60?`${l.toFixed(1)}s`:`${Math.floor(l/60)}m ${Math.round(l%60)}s`;return(0,O.jsxs)(c,{flexDirection:"column",marginTop:1,children:[(0,O.jsx)(o,{color:s.muted,children:"\u2500".repeat(Math.min(f,60))}),(0,O.jsxs)(c,{children:[(0,O.jsx)(o,{children:" "}),(0,O.jsx)(o,{color:s.dimmed,children:"Steps "}),(0,O.jsx)(o,{bold:!0,children:t}),(0,O.jsxs)(o,{color:s.dimmed,children:["/",i]}),(0,O.jsx)(o,{children:" "}),(0,O.jsx)(o,{color:s.dimmed,children:"Elapsed "}),(0,O.jsx)(o,{bold:!0,children:d}),(0,O.jsx)(o,{children:" "}),(0,O.jsx)(o,{color:s.dimmed,children:"Status "}),(0,O.jsx)(o,{bold:!0,color:x,children:u})]})]})}var Me={click:"\u25CF",type:"\u229E",scroll:"\u2195",navigate:"\u2192",analyze:"\u25CE",assert:"\u25C8","if-else":"\u2442",select:"\u25BC",press_key:"\u21B5",wait:"\u2026",tool_call:"\u2299"};function $e(t){return Me[t]??"\u25CF"}var ne=j(N(),1);function xe({steps:t,flows:i,cmInitCounts:l,renderStep:u}){return(0,ne.jsxs)(c,{flexDirection:"column",marginLeft:2,paddingLeft:1,children:[(0,ne.jsxs)(o,{color:s.dimmed,children:["\u2501\u2501 Bifurcated into ",i?.length??t.length," flows \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"]}),t.map((S,f)=>(0,ne.jsxs)(c,{flexDirection:"column",marginTop:f>0?1:0,children:[(0,ne.jsxs)(o,{color:s.purple,children:["Flow ",f+1,": ",i?.[f]??S.objective]}),l&&l[f]!=null&&(0,ne.jsxs)(o,{color:s.dimmed,children:[" \u25AA Generated task with ",l[f]," checkpoints"]}),S.children&&S.children.length>0?S.children.map(x=>u(x,`f${f}-${x.index}`)):S.status==="pending"&&(0,ne.jsx)(o,{color:s.dimmed,children:" \u25CB Waiting..."})]},f))]})}var r=j(N(),1);function U({step:t,indent:i=2}){let l=t.actionType?$e(t.actionType):null,u=t.status==="running",S=t.status==="passed",f=t.status==="failed",x=t.status==="pending"||t.status==="stopped",{stdout:d}=ue(),D=d?.columns??80,E=Math.max(20,D-i-21),P=t.objective??"",F=P.length>E?P.slice(0,E-1)+"\u2026":P,H=(t.duration??0)*1e3,I=t.duration!=null?H<1e3?`${Math.round(H)}ms`:`${(H/1e3).toFixed(1)}s`:"";return(0,r.jsxs)(c,{flexDirection:"column",children:[(0,r.jsxs)(c,{marginLeft:i,children:[(0,r.jsx)(c,{width:4,children:(0,r.jsxs)(o,{color:s.muted,children:[String(t.index).padStart(2," ")," "]})}),(0,r.jsx)(c,{width:3,children:u?(0,r.jsx)(Te,{}):S?(0,r.jsx)(o,{color:s.green,bold:!0,children:"\u2713"}):f?(0,r.jsx)(o,{color:s.red,bold:!0,children:"\u2717"}):(0,r.jsx)(o,{color:s.muted,children:"\u25CB"})}),(0,r.jsx)(c,{flexGrow:1,children:u?(0,r.jsx)(_e,{text:F,active:!0}):f?(0,r.jsx)(o,{color:s.red,children:F}):x?(0,r.jsx)(o,{color:s.dimmed,children:F}):(0,r.jsx)(o,{color:s.greenDim,children:F})}),(S||f)&&l?(0,r.jsx)(c,{width:3,marginLeft:1,children:(0,r.jsx)(o,{color:s.muted,children:l})}):(0,r.jsx)(c,{width:3,marginLeft:1}),(0,r.jsx)(c,{width:7,justifyContent:"flex-end",children:(0,r.jsx)(o,{color:s.dimmed,children:I})})]}),t.children&&t.children.length>0&&(0,r.jsx)(c,{flexDirection:"column",children:t.children.map((M,Q)=>(0,r.jsx)(U,{step:M,indent:i+2},`child-${Q}`))})]})}function ft({steps:t,bifurcated:i,flows:l,cmInitCounts:u,maxSteps:S=50,staticSteps:f=!1,onStepCommit:x}){let d=(0,$.useRef)(new Set),D=(0,$.useRef)(!1),E=(0,$.useRef)(new Set),P=(0,$.useRef)(!1),F=(0,$.useRef)(new Set),H=(0,$.useRef)(0);(0,$.useEffect)(()=>{t.length===0&&H.current>0&&(d.current.clear(),D.current=!1,E.current.clear(),P.current=!1,F.current.clear()),H.current=t.length},[t.length]);let I=t.flatMap(n=>[n,...n.children??[]]),M=I.some(n=>n.status==="running"),Q=I.some(n=>n.status==="failed"),V=I.length===0||I.every(n=>n.status==="pending"),Z=I.filter(n=>n.status==="passed"||n.status==="failed").length,W;V?W="starting":M?W="running":Q?W="failed":W="passed";let ee=(0,$.useRef)(null),[ie,ce]=(0,$.useState)(0);(0,$.useEffect)(()=>{I.length===0||V?(ee.current=null,ce(0)):M&&ee.current==null&&(ee.current=Date.now())},[M,V,I.length]),(0,$.useEffect)(()=>{if(!M)return;let n=setInterval(()=>{ee.current!=null&&ce((Date.now()-ee.current)/1e3)},500);return()=>clearInterval(n)},[M]);let v=(0,$.useRef)(new Set),[C,K]=(0,$.useState)([]),re=(0,$.useRef)(!1);(0,$.useEffect)(()=>{if(!f||i)return;let n=[];if(!i&&!re.current&&u&&u[0]!=null&&(re.current=!0,u[0]>0&&n.push({key:"cm_init_0",type:"cm_init",count:u[0]})),i){!v.current.has(-1)&&t.length>0&&(v.current.add(-1),n.push({key:"bif_header",type:"bifurcation_header",flowCount:l?.length??t.length}));for(let p=0;p<t.length;p++){let a=t[p],y=-(p+10);v.current.has(y)||(v.current.add(y),n.push({key:`flow_header_${p}`,type:"flow_header",flowIdx:p,label:l?.[p]??a.objective,cmCount:u?.[p]}));for(let B of a.children??[])(B.status==="passed"||B.status==="failed")&&!v.current.has(B.index)&&(v.current.add(B.index),n.push({key:`step_f${p}_${B.index}`,type:"step",step:{...B}}))}}else for(let p of t)(p.status==="passed"||p.status==="failed")&&!v.current.has(p.index)&&(v.current.add(p.index),n.push({key:`step_${p.index}`,type:"step",step:{...p,children:p.children?[...p.children]:void 0}}));n.length>0&&K(p=>[...p,...n])},[t,i,l,u,f]),(0,$.useEffect)(()=>{if(x)if(!i&&!P.current&&u&&u[0]!=null&&(P.current=!0,u[0]>0&&x((0,r.jsx)(c,{marginLeft:2,children:(0,r.jsxs)(o,{color:s.dimmed,children:["\u25A0 Generated task with ",u[0]," checkpoints"]})}))),i&&l&&!D.current&&(D.current=!0,x((0,r.jsx)(o,{color:"#b388ff",children:"\u2501\u2501 Bifurcated into "+l.length+" flows \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"}))),i){let n=t.flatMap((p,a)=>{let y=p.children??[];return!E.current.has(a)&&y.length>0&&(E.current.add(a),x((0,r.jsx)(o,{color:"#b388ff",children:" Flow "+(a+1)+": "+(l?.[a]??"")})),u?.[a]!=null&&u[a]>0&&!F.current.has(a)&&(F.current.add(a),x((0,r.jsx)(c,{marginLeft:2,children:(0,r.jsxs)(o,{color:s.dimmed,children:[" \u25AA Generated task with ",u[a]," checkpoints"]})})))),u?.[a]!=null&&u[a]>0&&E.current.has(a)&&!F.current.has(a)&&(F.current.add(a),x((0,r.jsx)(c,{marginLeft:2,children:(0,r.jsxs)(o,{color:s.dimmed,children:[" \u25AA Generated task with ",u[a]," checkpoints"]})}))),y});for(let p of n){let a=`${p.index}-${p.objective}`;d.current.has(a)||(p.status==="passed"||p.status==="failed"||p.status==="stopped")&&(d.current.add(a),x((0,r.jsx)(c,{marginLeft:2,children:(0,r.jsx)(U,{step:p})})))}}else for(let n of t){let p=`${n.index}-${n.objective}`,a=!!n.branchObjective;a&&!d.current.has(p)&&(d.current.add(p),x((0,r.jsx)(c,{marginLeft:2,children:(0,r.jsx)(U,{step:{...n,children:void 0}})})));for(let y of n.children??[]){let B=`child-${n.index}-${y.index}-${y.objective}`;d.current.has(B)||(y.status==="passed"||y.status==="failed"||y.status==="stopped")&&(d.current.add(B),x((0,r.jsx)(c,{marginLeft:4,children:(0,r.jsx)(U,{step:y})})))}!a&&!d.current.has(p)&&(n.status==="passed"||n.status==="failed"||n.status==="stopped")&&(d.current.add(p),x((0,r.jsx)(c,{marginLeft:2,children:(0,r.jsx)(U,{step:{...n,children:void 0}})})))}},[t,x,i,l,u]);let Y=[];if(x)if(i)for(let n of t){let a=(n.children??[]).filter(y=>{let B=`${y.index}-${y.objective}`;return!d.current.has(B)});a.length>0&&Y.push({...n,children:a})}else for(let n of t){let p=`${n.index}-${n.objective}`,a=d.current.has(p),y=(n.children??[]).filter(B=>{let L=`child-${n.index}-${B.index}-${B.objective}`;return!d.current.has(L)});a?y.length>0&&Y.push({...n,children:y}):Y.push({...n,children:y})}else if(f){if(!i)for(let n of t)v.current.has(n.index)||Y.push(n)}if(!f){let n=x?Y:t;return(0,r.jsxs)(c,{flexDirection:"column",children:[i?x?n.length>0?(0,r.jsx)(c,{flexDirection:"column",marginLeft:2,paddingLeft:1,children:n.map((a,y)=>(0,r.jsx)(c,{flexDirection:"column",marginTop:y>0?1:0,children:a.children&&a.children.length>0?a.children.map(B=>(0,r.jsx)(U,{step:B},`f${y}-${B.index}`)):a.status==="pending"&&(0,r.jsx)(o,{color:s.dimmed,children:" \u25CB Waiting..."})},y))}):null:(0,r.jsx)(xe,{steps:t,flows:l,cmInitCounts:u,renderStep:(a,y)=>(0,r.jsx)(U,{step:a},y)}):(0,r.jsxs)(c,{flexDirection:"column",marginLeft:2,paddingLeft:1,children:[!x&&u&&u[0]!=null&&(0,r.jsxs)(o,{color:s.dimmed,children:["\u25AA Generated task with ",u[0]," checkpoints"]}),n.map(a=>{let y=`${a.index}-${a.objective}`;return x&&d.current.has(y)?(0,r.jsx)(c,{flexDirection:"column",children:(a.children??[]).map(B=>(0,r.jsx)(c,{marginLeft:2,children:(0,r.jsx)(U,{step:B})},B.index))},`branch-children-${a.index}`):(0,r.jsx)(U,{step:a},a.index)})]}),M&&(0,r.jsx)(fe,{currentStep:Z,maxSteps:S,elapsed:ie,status:W})]})}return i?(0,r.jsxs)(c,{flexDirection:"column",children:[(0,r.jsx)(xe,{steps:t,flows:l,cmInitCounts:u,renderStep:(n,p)=>(0,r.jsx)(U,{step:n},p)}),M&&(0,r.jsx)(fe,{currentStep:Z,maxSteps:S,elapsed:ie,status:W})]}):(0,r.jsxs)(c,{flexDirection:"column",children:[(0,r.jsx)(ye,{items:C,children:n=>n.type==="cm_init"?(0,r.jsx)(c,{marginLeft:2,paddingLeft:1,children:(0,r.jsxs)(o,{color:s.dimmed,children:["\u25AA Generated task with ",n.count," checkpoints"]})},n.key):n.type==="bifurcation_header"?(0,r.jsx)(c,{marginLeft:2,paddingLeft:1,children:(0,r.jsxs)(o,{color:s.dimmed,children:["\u2501\u2501 Bifurcated into ",n.flowCount," flows \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"]})},n.key):n.type==="flow_header"?(0,r.jsxs)(c,{flexDirection:"column",marginLeft:2,paddingLeft:1,children:[(0,r.jsxs)(o,{color:s.purple,children:["Flow ",n.flowIdx+1,": ",n.label]}),n.cmCount!=null&&(0,r.jsxs)(o,{color:s.dimmed,children:[" \u25AA Generated task with ",n.cmCount," checkpoints"]})]},n.key):(0,r.jsx)(c,{marginLeft:2,paddingLeft:1,children:(0,r.jsx)(U,{step:n.step})},n.key)}),Y.length>0&&(0,r.jsx)(c,{flexDirection:"column",marginLeft:2,paddingLeft:1,children:Y.map(n=>(0,r.jsx)(U,{step:n},n.index))}),M&&(0,r.jsx)(fe,{currentStep:Z,maxSteps:S,elapsed:ie,status:W})]})}var ge=j(le(),1);var pe=j(N(),1),Ee=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function bt({label:t,hasBifurcation:i=!1}){let[l,u]=(0,ge.useState)(0),[S,f]=(0,ge.useState)(0);se(()=>{u(d=>(d+1)%Ee.length)},80),se(()=>{f(d=>(d+1)%4)},400);let x=t??(i?"Planning approach":"Analyzing objective");return(0,pe.jsxs)(c,{marginLeft:1,children:[(0,pe.jsxs)(o,{color:s.primary,children:[Ee[l]," "]}),(0,pe.jsxs)(o,{color:s.dim,children:[x,".".repeat(S+1)]})]})}function yt(t){if(!t.isRunning||t.replayInfo)return null;let i=t.bifurcationInfo;if(i&&!i.isSingleFlow){let l=t.steps.findIndex(S=>S.status==="running");return(l===-1?t.cmInitCounts.length===0:l>=t.cmInitCounts.length)?{label:l>0?`Planning flow ${l+1}`:void 0,hasBifurcation:!0}:null}return t.cmInitCounts.length>0||t.steps.some(l=>l.children?.length)?null:{hasBifurcation:!!i}}var _=j(le(),1);function be(t){let i=t.indexOf(": ");return i>0&&i<15?t.slice(i+2):t}function Se(t){return t.map(i=>{let l=i.children?Se(i.children):i.children;return i.status==="running"?{...i,status:"stopped",phase:void 0,children:l}:l!==i.children?{...i,children:l}:i})}function kt(t,i,l,u){let[S,f]=(0,_.useState)(!1),[x,d]=(0,_.useState)([]),[D,E]=(0,_.useState)(null),[P,F]=(0,_.useState)(null),[H,I]=(0,_.useState)(null),[M,Q]=(0,_.useState)(null),[V,Z]=(0,_.useState)([]),[W,ee]=(0,_.useState)(null),[ie,ce]=(0,_.useState)(void 0),v=(0,_.useRef)(null),C=(0,_.useRef)(null),K=(0,_.useRef)(0),re=(0,_.useRef)(!1),Y=(0,_.useCallback)(async(a,y)=>{let B=v.current;if(B){try{await B.exited}catch{}v.current=null}d([]),E(null),F(null),I(null),Q(null),Z([]),ee(null),ce(a.max_steps),f(!0),C.current=null,K.current=0;let L;try{L=ke(a,y)}catch(te){I(te instanceof Error?te.message:String(te)),f(!1);return}v.current=L,Be("runner",()=>L.cancel()),(async()=>{re.current=!1;let te=!1;for await(let e of L.events){if(re.current)break;switch(e.type){case"run_start":if(C.current&&!C.current.isSingleFlow){let R=K.current;K.current++,d(T=>T.map((h,b)=>b===R?{...h,status:"running"}:h.status==="running"&&!h.children?.some(m=>m.status==="running")?{...h,status:h.children?.some(m=>m.status==="failed")?"failed":"passed"}:h))}break;case"bifurcation":{let R=e.flows??[],T=e.count??R.length,h={flows:R,isSingleFlow:e.is_single_flow??T<=1};Q(h),C.current=h,K.current=0,d(R.map((b,m)=>({index:m+1,objective:b??`Flow ${m+1}`,status:"pending"})));break}case"step_start":{i?.("STEP_START",`Step ${e.index} started`,{index:e.index,objective:e.objective,child_id:e.child_id});let R=e.index,T=e.objective??`Step ${R}`,h=e.child_id,b=C.current&&!C.current.isSingleFlow;if(h)d(m=>{let g=m.findIndex(z=>z.status==="running"||z.children?.some(je=>je.status==="running"));if(g===-1)return m;let k=[...m],w={...k[g]},J=[...w.children??[]].map(z=>z.status==="running"?{...z,status:"stopped",phase:void 0}:z);return J.push({index:R,objective:T,status:"running"}),w.children=J,k[g]=w,k});else if(b){let m=Math.max(0,K.current-1);d(g=>{let k=[...g];if(m>=k.length)return g;let w={...k[m]},J=[...w.children??[]].map(z=>z.status==="running"?{...z,status:"stopped",phase:void 0}:z);return J.push({index:R,objective:T,status:"running"}),w.children=J,w.status="running",k[m]=w,k})}else d(m=>{let g=Se(m);return g.some(w=>w.index===R)?g.map(w=>w.index===R?{...w,status:"running",objective:T}:w):[...g,{index:R,objective:T,status:"running"}]});break}case"step_event":{i?.("STEP_EVENT",`Step ${e.index} ${e.event}`,{index:e.index,phase:e.event,action_type:e.action_type,detail:e.detail,child_id:e.child_id});let R=e.child_id,T=C.current&&!C.current.isSingleFlow;if(e.event==="cm_init"&&e.checkpoint_count!=null){Z(h=>[...h,e.checkpoint_count]);break}if(e.event==="replay_started"){ee({recordingLength:e.recording_length??0});break}if(e.event==="reasoning"&&e.detail&&e.detail!=="reasoning"&&l?.(e.detail),R)d(h=>h.map(b=>{if(!b.children)return b;let m=b.children.map(g=>{if(g.index!==e.index)return g;let k={phase:e.event};return e.event==="reasoning"&&e.detail&&e.detail!=="reasoning"&&(k.objective=e.detail),e.action_type&&(k.actionType=e.action_type),{...g,...k}});return{...b,children:m}}));else if(T){let h=Math.max(0,K.current-1);d(b=>{let m=[...b];if(h>=m.length)return b;let g={...m[h]},k=[...g.children??[]];if(!k.some(X=>X.index===e.index))k.push({index:e.index,objective:`Step ${e.index}`,status:"running",phase:e.event,actionType:e.action_type});else for(let X=0;X<k.length;X++){if(k[X].index!==e.index)continue;let J={phase:e.event};e.event==="reasoning"&&e.detail&&e.detail!=="reasoning"&&(J.objective=e.detail),e.action_type&&(J.actionType=e.action_type),k[X]={...k[X],...J}}return g.children=k,m[h]=g,m})}else d(h=>h.some(m=>m.index===e.index)?h.map(m=>{if(m.index!==e.index)return m;let g={phase:e.event};return e.event==="reasoning"&&e.detail&&e.detail!=="reasoning"&&(g.objective=e.detail),e.action_type&&(g.actionType=e.action_type),{...m,...g}}):[...Se(h),{index:e.index,objective:`Step ${e.index}`,status:"running",phase:e.event,actionType:e.action_type}]);break}case"step_end":{i?.("STEP_END",`Step ${e.index} ${e.status}`,{index:e.index,status:e.status,duration:e.duration,summary:e.summary,child_id:e.child_id}),u?.();let R=e.child_id,T=C.current&&!C.current.isSingleFlow;if(R)d(h=>h.map(b=>{if(!b.children)return b;let m=b.children.map(g=>g.index===e.index?{...g,status:e.status,duration:e.duration,phase:void 0,objective:g.objective.startsWith("Step ")?be(e.summary||g.objective):g.objective}:g);return{...b,children:m}}));else if(T){let h=Math.max(0,K.current-1);d(b=>{let m=[...b];if(h>=m.length)return b;let g={...m[h]},k=(g.children??[]).map(w=>w.index===e.index?{...w,status:e.status,duration:e.duration,phase:void 0,objective:w.objective.startsWith("Step ")?be(e.summary||w.objective):w.objective}:w);return g.children=k,m[h]=g,m})}else d(h=>h.map(b=>b.index===e.index?{...b,status:e.status,duration:e.duration,phase:void 0,objective:b.objective.startsWith("Step ")?be(e.summary||b.objective):b.objective}:b));{let b=C.current&&!C.current.isSingleFlow?Math.max(0,K.current-1):0;t?.(e.index,b,e.child_id)}break}case"child_agent_start":{let R=e.objective??"";d(T=>T.map(h=>h.status==="running"?{...h,objective:`${R} (branch)`,phase:`child: ${R.slice(0,50)}`,branchObjective:R}:h));break}case"child_agent_end":d(R=>R.map(T=>T.phase?.startsWith("child:")?{...T,phase:`child ${e.success?"done":"failed"}`}:T));break;case"ask_user":E(e.question??"");break;case"run_end":d(R=>R.map(T=>T.status==="running"?{...T,status:e.status,phase:void 0}:T)),f(!1),F(e),te=!0;break;case"error":f(!1),I(e.message??"Runner error"),d(R=>R.map(T=>T.status==="running"?{...T,status:"failed",phase:void 0}:T));break}}let{code:q,signal:me}=await L.exited,he=L.stderr,Ie=q===0&&!me,oe=[];q!==null&&q!==0&&oe.push(`Runner exited with code ${q}`),me&&oe.push(`Runner killed by signal ${me}`),he&&(!Ie||!te?oe.push(he):y?.log?.("debug","RUNNER_STDERR_BENIGN","Runner stderr on clean exit",{stderr:he})),v.current===L&&(oe.length>0&&I(oe.join(`
|
|
4
4
|
`)),f(!1),ae("runner","Event stream ended"),v.current=null)})().catch(te=>{let q=[`Runner event loop error: ${te}`];L.exitCode!==null&&L.exitCode!==0&&q.push(`Exit code: ${L.exitCode}`),L.exitSignal&&q.push(`Signal: ${L.exitSignal}`),L.stderr&&q.push(L.stderr),v.current===L&&(I(q.join(`
|
|
5
5
|
`)),f(!1),ae("runner","Event loop error"),v.current=null)})},[t,i,l,u]),n=(0,_.useCallback)(a=>{v.current?.sendUserResponse(a),E(null)},[]),p=(0,_.useCallback)(()=>{let a=v.current;a&&(a.sendCancel("user"),f(!1),E(null),setTimeout(()=>{v.current===a&&(ae("runner","User cancelled run"),v.current=null)},5e3))},[]);return(0,_.useEffect)(()=>()=>{re.current=!0,ae("runner","Component unmounted"),v.current=null},[]),{isRunning:S,steps:x,askingUser:D,lastRunEnd:P,runError:H,bifurcationInfo:M,cmInitCounts:V,replayInfo:W,maxSteps:ie,startRun:Y,sendAnswer:n,cancelRun:p}}function wt(t){let i=t.flatMap(f=>[f,...f.children??[]]),l=i.filter(f=>f.status==="passed").length,u=i.filter(f=>f.status==="failed").length,S=i.filter(f=>f.status==="passed"||f.status==="failed").length;return{passed:l,failed:u,total:S}}export{ft as a,bt as b,yt as c,kt as d,wt as e,Ge as f,Ke as g};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{f as v,g as b}from"./chunk-G7VF5SDK.js";import{b as f}from"./chunk-
|
|
2
|
+
import{f as v,g as b}from"./chunk-G7VF5SDK.js";import{b as f}from"./chunk-OEYN4LRD.js";import{a as m}from"./chunk-RSRXL3HE.js";import{a as h}from"./chunk-BPF7TDRU.js";var p=class extends Error{constructor(n,s){super(n);this.code=s;this.name="AuthError"}};async function y(e){let o=e.credentials.expires_at,n=e.thresholdSeconds??300;if(o-Date.now()/1e3>=n)return null;let s=e.creds.loadClient(e.profile,e.env);if(!s)return null;let r=await new f(e.env).refreshToken(e.credentials.refresh_token,s.client_id),t=Math.floor(Date.now()/1e3)+r.expires_in;return e.creds.saveCredentials(e.profile,e.env,{access_token:r.access_token,refresh_token:r.refresh_token,expires_at:t,scope:r.scope}),{accessToken:r.access_token,refreshToken:r.refresh_token,expiresAt:t,scope:r.scope}}async function L(e){let{creds:o,env:n,usernameFlag:s,accessKeyFlag:a,log:r}=e,t=null,l=null;if(s&&a)t={username:s,access_key:a},r("info","AUTH_RESOLVE_FLAGS","Auth resolved via CLI flags",{username:s});else{let i=o.resolveAuth();i?.method==="basic"&&(t={username:i.username,access_key:i.access_key},r("info","AUTH_RESOLVE_CONFIG","Auth resolved via config",{username:i.username}))}if(!t){let{credentials:i,profile:A}=o.getActiveCredentials();if(!i)throw new p("Not authenticated \u2014 no credentials found","not_authenticated");if(l=i.access_token,i.expires_at-Date.now()/1e3<300)try{let c=await y({creds:o,profile:A,env:n,credentials:i});c&&(l=c.accessToken,r("info","AUTH_TOKEN_REFRESHED","OAuth token refreshed"))}catch(c){let g=c instanceof Error?c.message:String(c);throw r("error","TOKEN_REFRESH_FAILED","Token refresh failed",{error:g}),new p(`Token refresh failed: ${g}`,"refresh_failed")}}let R=m(n),x=async()=>l,E=t?{username:t.username,access_key:t.access_key}:null,d=new h(R.controllerBaseUrl,x,E,r),u=await d.resolve();return u&&!t&&(t={username:u.username,access_key:u.access_key},r("info","AUTH_RESOLVE_CONTROLLER","Auth resolved via controller",{username:u.username})),{basicAuth:t,token:l,resolver:d,resolvedCreds:u}}async function P(e){if(!e.isInteractive)return{recovered:!1};if(S(e.creds,e.config))return{recovered:!1};let{SingleShotApp:o}=await import("./SingleShotApp-QA4SYSCP.js"),{render:n}=await import("./build-JIKYOZUH.js"),s=await import("./react-QWOAB3TB.js"),a={current:null},r={current:!1},{waitUntilExit:t,unmount:l}=n(s.default.createElement(o,{resultRef:a,mode:"login",loginCompleteRef:r}),{exitOnCtrlC:!1});b(()=>l()),await t();try{process.stdin.setRawMode?.(!1)}catch{}return process.stdout.write("\x1B[?25h"),r.current?{recovered:!0}:(v(0,"Startup gate cancelled"),{recovered:!1})}function S(e,o){let n=e.getActiveProfile(),s=e.getDefaultEnv();if(!n||!!!(e.loadBasicAuth(n,s)||e.loadCredentials(n,s)))return!1;let r=o.load();return!!r.project_id&&!!r.folder_id}export{y as a,p as b,L as c,P as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{b as h}from"./chunk-NLCCBXXV.js";import{a as n}from"./chunk-RZ4F3BHX.js";var f=class extends h{constructor(e,t,s){super(e,{username:t,accessKey:s})}async listProjects(e){let t=[],s=!1;for await(let r of this.listProjectsStream({log:e})){if(e&&!s&&r.projects.length>0){let o=r.projects[0];e("info","PROJECT_SAMPLE","Project list sample",{project_id:o.project_id,name:o.name}),s=!0}t.push(...r.projects)}return t}async*listProjectsStream(e){let t=e?.perPage??200,s=e?.maxPages??100,r=e?.signal,o=e?.log,c=e?.name?.trim(),i=0;for(let a=1;a<=s;a++){if(r?.aborted)return;let g=`${this.baseUrl}/v1/projects?page=${a}&per_page=${t}&sort=created_at`;c&&(g+=`&filter[name]=${encodeURIComponent(c)}`);let p=AbortSignal.timeout(15e3),b=r?AbortSignal.any([r,p]):p,d;try{d=await n(g,{method:"GET",headers:this.headers(),signal:b})}catch(l){if(r?.aborted)return;if(a===1)throw l;o?.("warn","PROJECTS_STREAM_PARTIAL","stream stopped mid-page",{page:a,total_loaded:i,error:l instanceof Error?l.message:String(l)}),yield{page:a,projects:[],totalLoaded:i,done:!0};return}if(!d.ok){if(a===1)throw new Error(`listProjects ${d.status}: ${await d.text()}`);o?.("warn","PROJECTS_STREAM_PARTIAL","stream stopped on non-OK response",{page:a,status:d.status,total_loaded:i}),yield{page:a,projects:[],totalLoaded:i,done:!0};return}let m=(await d.json()).data??[];i+=m.length;let u=m.length<t;if(yield{page:a,projects:m,totalLoaded:i,done:u},u)return}o?.("warn","PROJECTS_STREAM_MAXPAGES","max pages reached",{max_pages:s,total_loaded:i}),yield{page:s,projects:[],totalLoaded:i,done:!0}}async getDefaultFolder(e){let t=await n(`${this.baseUrl}/v1/projects/${e}/folder/default`,{method:"GET",headers:this.headers()});if(!t.ok)throw new Error(`Get default folder failed: ${t.status} ${await t.text()}`);return(await t.json()).id}async listFolders(e){let t=await n(`${this.baseUrl}/v1/folder/entity/${e}`,{method:"GET",headers:this.headers()});if(!t.ok)throw new Error(`List folders failed: ${t.status} ${await t.text()}`);return(await t.json()).data??[]}async createProject(e){let t=await n(`${this.baseUrl}/v1/projects`,{method:"POST",headers:{...this.headers(),"Content-Type":"application/json"},body:JSON.stringify({name:e,description:"",tags:[],source:"KTM"})});if(!t.ok)throw new Error(`Create project failed: ${t.status} ${await t.text()}`);return{id:(await t.json()).id,name:e}}async createFolder(e,t){let s=await n(`${this.baseUrl}/v1/folder`,{method:"POST",headers:{...this.headers(),"Content-Type":"application/json"},body:JSON.stringify({folders:[{name:t,description:"",entity_id:e,entity_type:"project"}]})});if(!s.ok)throw new Error(`Create folder failed: ${s.status} ${await s.text()}`);return{id:(await s.json()).id,name:t}}async createAtmTest(e,t){let s=t?`Bearer ${t}`:this.authHeader,r=await n(`${this.baseUrl}/kane-cli/v1/test`,{method:"POST",headers:{Authorization:s,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)});if(!r.ok)throw new Error(`Create ATM test failed: ${r.status} ${await r.text()}`);let o=await r.json();if(!o.test_id)throw new Error("Create ATM test returned no test_id");return o.test_id}async endTest(e,t,s){let r=s?`Bearer ${s}`:this.authHeader,o=new URLSearchParams({commit_id:t.commit_id,time_taken:String(t.time_taken),steps_count:String(t.steps_count),commit_message:t.commit_message}),c={};t.objectives&&t.objectives.length>0&&(c.objectives=t.objectives);let i=await n(`${this.baseUrl}/kane-cli/v1/test/${e}?${o.toString()}`,{method:"DELETE",headers:{Authorization:r,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(c)});if(!i.ok)throw new Error(`End test failed: ${i.status} ${await i.text()}`);let a=await i.json();return{testcase_id:a.data?.testcase_id??"",test_id:a.data?.test_id??e,project_id:a.data?.project_id??""}}async submitFeedback(e,t){let s=t?`Bearer ${t}`:this.authHeader,r={instruction_id:e.instruction_id,test_id:e.test_id,feedback_type:e.feedback_type,mode:e.mode??"human"};e.details&&(r.details=e.details);let o=await n(`${this.baseUrl}/atm/v1/generative-feedback`,{method:"POST",headers:{Authorization:s,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r)});if(!o.ok)throw new Error(`Submit feedback failed: ${o.status} ${await o.text()}`);return await o.json()}};export{f 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-
|
|
2
|
+
import{a as h}from"./chunk-HGIGF7SF.js";import{a as A}from"./chunk-HCBYKLMW.js";import{t as a}from"./chunk-XR7EOTSN.js";import{a as c,b as f,i as P}from"./chunk-C44QQJR4.js";import{a as y}from"./chunk-6YGTRKDT.js";import{e as x}from"./chunk-UR6MHSHU.js";var L=x(y(),1);var r=x(A(),1);function B(i,d,l,u,p){let g=l==="basic"&&u?`basic (${u})`:l,n=20,s=`${i} [${d}]`,m="\xB7".repeat(Math.max(2,n-s.length+3));return{label:`${s} ${m} ${g}`,profile:i,env:d,isActive:p}}function I({creds:i,onSwitch:d,onCancel:l}){let u=i.listProfiles(),p=i.getActiveProfile(),g=i.getDefaultEnv(),n=u.map(e=>{let t=i.loadBasicAuth(e.profile,e.env),o=i.loadCredentials(e.profile,e.env)!==null,v=t?"basic":o?"oauth":"none",b=t?t.username:null,w=e.profile===p&&e.env===g;return B(e.profile,e.env,v,b,w)}),[s,m]=(0,L.useState)(()=>{let e=n.findIndex(t=>t.isActive);return e>=0?e:0});return P((e,t)=>{if(t.escape){l();return}if(t.upArrow){m(o=>Math.max(0,o-1));return}if(t.downArrow){m(o=>Math.min(n.length-1,o+1));return}if(t.return&&n[s]){let o=n[s];o.isActive||d(o.profile,o.env),l();return}}),n.length===0?(0,r.jsxs)(c,{flexDirection:"column",borderStyle:"round",borderColor:a.primary,paddingX:2,paddingY:1,children:[(0,r.jsx)(f,{color:a.primary,bold:!0,children:"Profiles"}),(0,r.jsx)(c,{marginTop:1,children:(0,r.jsx)(f,{color:a.dim,children:"No profiles \u2014 use Login to create one"})}),(0,r.jsx)(h,{bindings:[],escBackLabel:"back"})]}):(0,r.jsxs)(c,{flexDirection:"column",borderStyle:"round",borderColor:a.primary,paddingX:2,paddingY:1,children:[(0,r.jsx)(f,{color:a.primary,bold:!0,children:"Profiles"}),(0,r.jsx)(c,{flexDirection:"column",marginTop:1,children:n.map((e,t)=>{let o=t===s,v=o?"\u276F ":" ",b=e.isActive?a.statusPass:o?a.primary:void 0;return(0,r.jsxs)(f,{color:b,children:[v,e.label,e.isActive?" \u25CF active":""]},`${e.profile}-${e.env}`)})}),(0,r.jsx)(h,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"\u21B5",label:"switch"}],escBackLabel:"back"})]})}export{B as a,I as b};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as o}from"./chunk-WAOCHXJ5.js";import{a as c}from"./chunk-NLCCBXXV.js";import{a as n}from"./chunk-RZ4F3BHX.js";var l=class{constructor(t,e,r,s){this.controllerBaseUrl=t;this.getOAuthToken=e;this.directBasicAuth=r;this.log=s}_cached=null;_revoked=!1;revoke(){this._revoked=!0,this._cached=null}prime(t){this._revoked||(this._cached=t)}get revoked(){return this._revoked}get cached(){return this._cached}async resolve(t=!1){if(this._cached&&!t)return this._cached;try{let e;if(this.directBasicAuth)e=new o(this.controllerBaseUrl,{username:this.directBasicAuth.username,accessKey:this.directBasicAuth.access_key});else{let s=await this.getOAuthToken();if(!s)return null;e=new o(this.controllerBaseUrl,s)}let r=await e.getTmsCredentials();return this.directBasicAuth&&!r.access_key&&(r.access_key=this.directBasicAuth.access_key),this._cached=r,this.log?.("info","AUTH_RESOLVE_OK","Auth resolved",{username:r.username,org_id:r.org_id,user_id:r.user_id}),r}catch(e){return this.log?.("warn","AUTH_RESOLVE_FAILED","Auth resolve failed",{error:e instanceof Error?e.message:String(e)}),null}}async fetch(t,e={}){if(this._revoked)throw new Error("Resolver has been revoked \u2014 identity changed");let r=await this.resolve();if(!r)throw new Error("Not authenticated \u2014 no credentials resolved");let s=i=>({...e,headers:{...e.headers,Authorization:c(i.username,i.access_key)}}),a=await n(t,s(r));if(a.status===401){if(this._revoked)throw new Error("Resolver has been revoked \u2014 identity changed");this.log?.("warn","AUTH_RESOLVE_401","Got 401, re-resolving",{url:t});let i=await this.resolve(!0);if(!i)throw new Error("Re-authentication failed after 401");return n(t,s(i))}return a}};export{l as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as m}from"./chunk-
|
|
2
|
+
import{a as m}from"./chunk-HGIGF7SF.js";import{a as p}from"./chunk-HCBYKLMW.js";import{t}from"./chunk-XR7EOTSN.js";import{a,b as o,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 T({onSubmit:l}){let[r,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(r===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)(o,{color:t.secondary,children:"Rate this session: "}),(0,e.jsx)(o,{color:r===0?t.primary:t.dim,children:r===0?"[ \u{1F44D} ]":" \u{1F44D} "}),(0,e.jsx)(o,{children:" "}),(0,e.jsx)(o,{color:r===1?t.primary:t.dim,children:r===1?"[ \u{1F44E} ]":" \u{1F44E} "})]}),(0,e.jsx)(m,{bindings:[{keys:"\u2190/\u2192",label:"select"},{keys:"\u21B5",label:"submit"}],escBackLabel:"skip"})]})}export{T as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as f}from"./chunk-
|
|
2
|
+
import{b as f}from"./chunk-OWTKDTKK.js";import{a as x}from"./chunk-HCBYKLMW.js";import{t}from"./chunk-XR7EOTSN.js";import{a as r,b as n}from"./chunk-C44QQJR4.js";import{a as B}from"./chunk-6YGTRKDT.js";import{e as c}from"./chunk-UR6MHSHU.js";var p=c(B(),1);var e=c(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,p.useState)(0),a=p.default.useRef(Date.now());return(0,p.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.primary,children:"\u2601 "}),(0,e.jsx)(n,{color:t.primary,bold:!0,children:"Saving to KaneAI"}),(0,e.jsxs)(n,{color:t.dimmed,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",m=i.status==="done",u=i.status==="running",g=i.status==="failed";return(0,e.jsxs)(r,{children:[(0,e.jsxs)(n,{color:t.dimmed,children:[" ",b," "]}),(0,e.jsx)(r,{width:3,children:u?(0,e.jsx)(f,{}):m?(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:m?t.dim:u?t.base:g?t.red:t.muted,children:i.label}),i.detail&&(0,e.jsxs)(n,{color:t.dimmed,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.dimmed,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 s}from"./chunk-HCBYKLMW.js";import{t as n}from"./chunk-
|
|
2
|
+
import{a as s}from"./chunk-HCBYKLMW.js";import{t as n}from"./chunk-XR7EOTSN.js";import{a,b as i}from"./chunk-C44QQJR4.js";import{e as r}from"./chunk-UR6MHSHU.js";var o=r(s(),1);function g({bindings:c,suppressEscBack:p=!1,escBackLabel:m="back to chat"}){let e=c.map(t=>`${t.keys} ${t.label}`);return p||e.push(`esc \xB7 ${m}`),(0,o.jsx)(a,{marginTop:1,children:(0,o.jsx)(i,{color:n.dim,children:e.join(" \xB7 ")})})}export{g as a};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as i,d as p,e as f,f as g,g as u,k as l}from"./chunk-AH4AXJML.js";import{a as d}from"./chunk-
|
|
2
|
+
import{b as i,d as p,e as f,f as g,g as u,k as l}from"./chunk-AH4AXJML.js";import{a as d}from"./chunk-4MW543EE.js";import{existsSync as t,mkdirSync as w,readFileSync as S,renameSync as y,writeFileSync as D}from"fs";import{join as j}from"path";function O(r){l(i(r));let a=i(r);if(!t(a))return;let s=j(a,"meta.json"),n=f(r);if(t(s)&&!t(n))try{w(p(r),{recursive:!0}),y(s,n)}catch(e){process.stderr.write(`warn: meta.json migration failed: ${e.message}
|
|
3
3
|
`)}let c=u(r);if(t(c)){let e="python";try{let o=new d().load();o.code_export?.language&&(e=o.code_export.language)}catch{}let m=g(r,"playwright",e);if(!t(m))try{y(c,m)}catch(o){process.stderr.write(`warn: generated-code migration failed: ${o.message}
|
|
4
4
|
`)}}if(t(n))try{let e=JSON.parse(S(n,"utf8"));"md5sum"in e&&(delete e.md5sum,D(n,JSON.stringify(e,null,2)+`
|
|
5
5
|
`,"utf8"))}catch(e){process.stderr.write(`warn: meta.json md5sum strip failed: ${e.message}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as P}from"./chunk-HGIGF7SF.js";import{a as X}from"./chunk-HCBYKLMW.js";import{t as r}from"./chunk-XR7EOTSN.js";import{a,b as i,i as N}from"./chunk-C44QQJR4.js";import{a as G}from"./chunk-6YGTRKDT.js";import{e as D}from"./chunk-UR6MHSHU.js";var g=D(G(),1);var e=D(X(),1),f=5;function K(t,I){if(!I)return t;let c=I.toLowerCase();return t.filter(B=>B.label.toLowerCase().includes(c))}function J(t){let{title:I,items:c,loading:B=!1,loadingText:Y,error:y=null,itemNoun:T="items",onSelect:H,onCancel:R,defaultActiveId:L,onTab:w,extraHint:E}=t,[x,s]=(0,g.useState)(0),[S,u]=(0,g.useState)(0),[d,A]=(0,g.useState)(""),[p,h]=(0,g.useState)(null);(0,g.useEffect)(()=>{if(c.length===0)return;if(t.preserveSelectionById&&p!==null){let n=c.findIndex(o=>o.id===p);if(n>=0){u(Math.floor(n/f)),s(n%f);return}}let l=L?c.findIndex(n=>n.id===L):c.findIndex(n=>n.isActive);l>=0?(u(Math.floor(l/f)),s(l%f),t.preserveSelectionById&&h(c[l].id)):t.preserveSelectionById&&(u(0),s(0),h(c[0]?.id??null))},[c,L,t.preserveSelectionById,p]),(0,g.useEffect)(()=>{if(!t.onSearch)return;let l=setTimeout(()=>t.onSearch(d),t.searchDebounceMs??250);return()=>clearTimeout(l)},[d,t.onSearch,t.searchDebounceMs]);let m=t.onSearch?c:K(c,d),C=S*f,F=Math.min(C+f,m.length),M=Math.ceil(m.length/f),O=F-C,v=m.slice(C,F);return N((l,n)=>{if(y){n.escape&&R();return}if(n.escape){d?(A(""),s(0),u(0)):R();return}if(n.tab&&w){w();return}if(n.upArrow){if(x>0){let o=x-1;s(o),t.preserveSelectionById&&h(v[o]?.id??null)}else if(S>0){let o=S-1,b=f-1;u(o),s(b),t.preserveSelectionById&&h(m[o*f+b]?.id??null)}return}if(n.downArrow){if(x<O-1){let o=x+1;s(o),t.preserveSelectionById&&h(v[o]?.id??null)}else if(S<M-1){let o=S+1,b=0;u(o),s(b),t.preserveSelectionById&&h(m[o*f+b]?.id??null)}return}if(n.return&&v[x]){H(v[x]);return}if(n.backspace||n.delete){A(o=>o.slice(0,-1)),s(0),u(0);return}l&&!n.ctrl&&!n.meta&&(A(o=>o+l),s(0),u(0))},{isActive:!B}),B?(0,e.jsxs)(a,{flexDirection:"column",borderStyle:"round",borderColor:r.primary,paddingX:2,paddingY:1,children:[(0,e.jsx)(i,{color:r.primary,bold:!0,children:I}),(0,e.jsx)(a,{marginTop:1,children:(0,e.jsx)(i,{color:r.secondary,children:Y??`Loading ${T}\u2026`})})]}):y?(0,e.jsxs)(a,{flexDirection:"column",borderStyle:"round",borderColor:r.statusFail,paddingX:2,paddingY:1,children:[(0,e.jsx)(i,{color:r.statusFail,bold:!0,children:I}),(0,e.jsx)(a,{marginTop:1,children:(0,e.jsx)(i,{color:r.statusFail,children:y})}),(0,e.jsx)(P,{bindings:[]})]}):(0,e.jsxs)(a,{flexDirection:"column",borderStyle:"round",borderColor:r.primary,paddingX:2,paddingY:1,children:[(0,e.jsxs)(a,{children:[(0,e.jsx)(i,{color:r.primary,bold:!0,children:I}),(0,e.jsxs)(i,{color:r.dim,children:[" (",m.length,!t.onSearch&&d?`/${c.length}`:""," ",T,t.loadingMore?" \xB7 loading more":"",")"]})]}),(0,e.jsxs)(a,{marginTop:1,children:[(0,e.jsx)(i,{color:r.secondary,children:d?"filter: ":""}),d?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i,{children:d}),(0,e.jsx)(i,{inverse:!0,children:" "})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(i,{color:r.dim,children:["Search ",T,"\u2026"]}),(0,e.jsx)(i,{inverse:!0,children:" "})]})]}),(0,e.jsx)(a,{flexDirection:"column",marginTop:1,children:t.searching?(0,e.jsxs)(i,{color:r.secondary,children:["Searching ",T,"\u2026"]}):m.length===0?(0,e.jsxs)(i,{color:r.dim,children:["No ",T,' match "',d,'"']}):v.map((l,n)=>{let o=n===x,b=o?"\u276F ":" ",$=l.isActive?r.statusPass:o?r.primary:void 0;return(0,e.jsxs)(i,{color:$,children:[b,l.label,l.isActive?" \u25CF selected":""]},l.id)})}),!t.searching&&M>1&&(0,e.jsx)(a,{marginTop:1,children:(0,e.jsxs)(i,{color:r.dim,children:["Page ",S+1,"/",M]})}),t.footer&&(0,e.jsx)(a,{marginTop:1,flexDirection:"column",children:t.footer}),(0,e.jsx)(P,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"type",label:"to search"},{keys:"\u21B5",label:"select"},...w&&E?[{keys:"tab",label:E}]:[]],escBackLabel:d?"clear":"back to chat"})]})}export{J as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,c,e as o}from"./chunk-
|
|
2
|
+
import{a,c,e as o}from"./chunk-XR7EOTSN.js";import{a as l}from"./chunk-RZ4F3BHX.js";import{readFileSync as f,writeFileSync as d,mkdirSync as h,realpathSync as g}from"fs";import{join as y}from"path";var C="npm install -g @testmuai/kane-cli@latest",b="brew upgrade lambdatest/kane/kane-cli";function w(){try{let t=process.argv[1];if(t&&g(t).includes("/Cellar/"))return b}catch{}return C}var m=y(c,"version-check.json"),S=1440*60*1e3;function k(){try{let t=JSON.parse(f(m,"utf-8"));if(Date.now()-t.checkedAt<S)return t}catch{}return null}function A(t){try{h(c,{recursive:!0}),d(m,JSON.stringify({latest:t,checkedAt:Date.now()}))}catch{}}function u(t,r){let i=t.split(".").map(Number),n=r.split(".").map(Number);for(let s=0;s<3;s++){let e=(n[s]??0)-(i[s]??0);if(e!==0)return e}return 0}function p(t,r){let i=t.split(".").map(Number),n=r.split(".").map(Number);return(n[0]??0)!==(i[0]??0)?"major":(n[1]??0)!==(i[1]??0)?"minor":"patch"}async function j(){try{let t=k();if(t)return u(a,t.latest)>0?{current:a,latest:t.latest,severity:p(a,t.latest)}:null;let r=new AbortController,i=setTimeout(()=>r.abort(),5e3),n=await l(o,{headers:{Accept:"application/json"},signal:r.signal});if(clearTimeout(i),!n.ok)return null;let e=(await n.json())["dist-tags"]?.latest;return e?(A(e),u(a,e)>0?{current:a,latest:e,severity:p(a,e)}:null):null}catch{return null}}export{w as a,u as b,p as c,j as d};
|