@qitqode/qitqode-android-arm64 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/bundle/{chunk-xb031er5.js → chunk-0942095s.js} +1 -1
  2. package/bundle/{chunk-0x0a51w3.js → chunk-0czxqcg7.js} +1 -1
  3. package/bundle/{chunk-9a5nck3f.js → chunk-1b9ey3yh.js} +1 -1
  4. package/bundle/{chunk-gspdrdyq.js → chunk-21q96fet.js} +1 -1
  5. package/bundle/{chunk-wnjg8mmh.js → chunk-21t254fq.js} +1 -1
  6. package/bundle/{chunk-zfvk6zjj.js → chunk-2db8pn5k.js} +1 -1
  7. package/bundle/{chunk-r2waj5n2.js → chunk-3gxhdy0c.js} +1 -1
  8. package/bundle/{chunk-471yj527.js → chunk-3m0t96kb.js} +1 -1
  9. package/bundle/{chunk-dp3hqm2m.js → chunk-4tk4wppp.js} +1 -1
  10. package/bundle/{chunk-p77m937s.js → chunk-5k1eyz7y.js} +1 -1
  11. package/bundle/{chunk-c4mxtqyq.js → chunk-5rcnwm9j.js} +1 -1
  12. package/bundle/{chunk-k728fzrr.js → chunk-5yghd32r.js} +1 -1
  13. package/bundle/{chunk-q39h31te.js → chunk-651fyxmn.js} +3 -3
  14. package/bundle/{chunk-7myavy3p.js → chunk-6ba9fc92.js} +1 -1
  15. package/bundle/{chunk-w0fg8n1f.js → chunk-6dznrhs4.js} +1 -1
  16. package/bundle/{chunk-knwayz0m.js → chunk-6t70j1wg.js} +1 -1
  17. package/bundle/{chunk-3makpbng.js → chunk-767vf2ha.js} +1 -1
  18. package/bundle/{chunk-k6z419yx.js → chunk-76p9v2jf.js} +1 -1
  19. package/bundle/{chunk-1brsnwhv.js → chunk-7hxksr4h.js} +1 -1
  20. package/bundle/{chunk-2w154wad.js → chunk-7jefvta3.js} +1 -1
  21. package/bundle/{chunk-fegrrsfj.js → chunk-7skp0dmg.js} +1 -1
  22. package/bundle/{chunk-1qw3yh13.js → chunk-88ckmmdr.js} +3 -3
  23. package/bundle/{chunk-0pbpzty2.js → chunk-8fn883z8.js} +1 -1
  24. package/bundle/{chunk-c422awkv.js → chunk-9gfe4wtk.js} +1 -1
  25. package/bundle/{chunk-rdsae6k4.js → chunk-9hwsz356.js} +1 -1
  26. package/bundle/{chunk-3fzgbam3.js → chunk-9vvvyk10.js} +1 -1
  27. package/bundle/{chunk-n0y1ea17.js → chunk-atg7cn5r.js} +1 -1
  28. package/bundle/{chunk-qq48ffjc.js → chunk-b3721b7c.js} +1 -1
  29. package/bundle/{chunk-nt07vncv.js → chunk-b4r19v4g.js} +1 -1
  30. package/bundle/{chunk-b2ky15zx.js → chunk-bsg92mw7.js} +1 -1
  31. package/bundle/{chunk-skjge2wh.js → chunk-bzj7yxw6.js} +1 -1
  32. package/bundle/{chunk-1gj0m10e.js → chunk-c1dwcsax.js} +1 -1
  33. package/bundle/{chunk-ysxmk1z1.js → chunk-c4vfxy1e.js} +1 -1
  34. package/bundle/{chunk-v7yvnnmr.js → chunk-esjs9s9g.js} +1 -1
  35. package/bundle/chunk-f2q7cbah.js +2 -0
  36. package/bundle/{chunk-mpn5qm9j.js → chunk-fssswy6j.js} +1 -1
  37. package/bundle/{chunk-4pedvzse.js → chunk-ghtm9598.js} +1 -1
  38. package/bundle/{chunk-p41h8naw.js → chunk-gkz68a5s.js} +1 -1
  39. package/bundle/{chunk-gfm4vad7.js → chunk-gp6nvjb8.js} +153 -153
  40. package/bundle/{chunk-6tjghyx6.js → chunk-hkydp4m3.js} +1 -1
  41. package/bundle/{chunk-hjvje9xj.js → chunk-htdpkk8v.js} +1 -1
  42. package/bundle/{chunk-ghmctw8s.js → chunk-hvnhkrd3.js} +1 -1
  43. package/bundle/{chunk-fgqrcjsm.js → chunk-hvqgvsa5.js} +1 -1
  44. package/bundle/{chunk-dgbvsnqb.js → chunk-js7becx7.js} +1 -1
  45. package/bundle/{chunk-5549c7mb.js → chunk-jwgqpntf.js} +1 -1
  46. package/bundle/{chunk-7nas10jx.js → chunk-k44dj66f.js} +1 -1
  47. package/bundle/{chunk-9g4hz1st.js → chunk-kvs7qbga.js} +1 -1
  48. package/bundle/{chunk-1q2vhe78.js → chunk-m7q12naw.js} +1 -1
  49. package/bundle/{chunk-pskkmca2.js → chunk-mc1m6dxk.js} +1 -1
  50. package/bundle/{chunk-anse7bd0.js → chunk-myjbd0vk.js} +1 -1
  51. package/bundle/{chunk-b49rxw15.js → chunk-n499tbz0.js} +1 -1
  52. package/bundle/{chunk-y36ggefa.js → chunk-n5k2c708.js} +1 -1
  53. package/bundle/{chunk-zafrxr1q.js → chunk-n6fh34xx.js} +1 -1
  54. package/bundle/{chunk-6bq7rx7m.js → chunk-n7a4wpjj.js} +1 -1
  55. package/bundle/{chunk-vh8w0ea8.js → chunk-ns0hezdf.js} +1 -1
  56. package/bundle/{chunk-pn77fh9b.js → chunk-q2zk0z41.js} +1 -1
  57. package/bundle/{chunk-s2g5989e.js → chunk-qh76pgsk.js} +1 -1
  58. package/bundle/{chunk-tp7sfreh.js → chunk-qxtz0tfd.js} +1 -1
  59. package/bundle/{chunk-3gdqmave.js → chunk-qy1s81tv.js} +2 -2
  60. package/bundle/{chunk-28knamc9.js → chunk-r03jc8xm.js} +1 -1
  61. package/bundle/{chunk-wmqcz5rb.js → chunk-rkb592nb.js} +1 -1
  62. package/bundle/{chunk-w8rvjbgr.js → chunk-s811ht10.js} +1 -1
  63. package/bundle/{chunk-8k1q3g8s.js → chunk-sj8py6vk.js} +1 -1
  64. package/bundle/{chunk-dvn528qs.js → chunk-t6dymkmx.js} +1 -1
  65. package/bundle/{chunk-jc0wbpjq.js → chunk-th5z0zx7.js} +1 -1
  66. package/bundle/chunk-tnn7hm4v.js +2 -0
  67. package/bundle/{chunk-aej69zjj.js → chunk-v0jnnpsz.js} +1 -1
  68. package/bundle/{chunk-f57rqsby.js → chunk-vdt8dvqs.js} +1 -1
  69. package/bundle/{chunk-0fwz5r1k.js → chunk-w2f8sjc4.js} +1 -1
  70. package/bundle/{chunk-rmmrnx95.js → chunk-w5nwkb0s.js} +1 -1
  71. package/bundle/{chunk-ckhhm2m8.js → chunk-w9mdrb90.js} +1 -1
  72. package/bundle/{chunk-xbxgrwvy.js → chunk-y7hkykkj.js} +1 -1
  73. package/bundle/{chunk-ej3gmaba.js → chunk-yja3y138.js} +1 -1
  74. package/bundle/{chunk-k5vwx1nv.js → chunk-yt6cfsdh.js} +1 -1
  75. package/bundle/index.js +3 -3
  76. package/bundle/worker.js +1 -1
  77. package/package.json +1 -1
  78. package/bundle/chunk-7pqevqry.js +0 -2
  79. package/bundle/chunk-p4pc1zdd.js +0 -2
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{n as w,o as h,p as I,q as C,r as D}from"./chunk-3makpbng.js";import{Fd as c,Gd as k,Hd as $,Kd as x}from"./chunk-9g05wsae.js";import"./chunk-x1dfc7qd.js";import{Od as P}from"./chunk-wmmck56g.js";import{Sf as d}from"./chunk-ntmn6epc.js";import{Pl as l}from"./chunk-7myavy3p.js";import"./chunk-fegrrsfj.js";import"./chunk-c4x99ayd.js";import{Xo as v}from"./chunk-0pbpzty2.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-jfy6bfvv.js";import"./chunk-aej69zjj.js";import"./chunk-k5vwx1nv.js";import"./chunk-ej3gmaba.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import{ct as b}from"./chunk-v7yvnnmr.js";import{pt as m}from"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-fa03gsff.js";var j={spinner:()=>x(),log:{error:(o)=>c.error(o),info:(o)=>c.info(o),success:(o)=>c.success(o)},resolve:(o)=>v(o),...h,global:b.Path.config};function S(o){if(!o||typeof o!=="object")return;if(!("cause"in o))return;return o.cause}function _(o,e=j){let n=o.mod,a=Boolean(o.force),y=Boolean(o.global);return async(f)=>{let u=e.spinner();u.start("Installing plugin package...");let p=await I(n,e);if(!p.ok){u.stop("Install failed",1),e.log.error(`Could not install "${n}"`);let t=w(p.error);if(t.detail)e.log.error(t.detail);if(t.missing)e.log.info("This package depends on a version that is not available in your npm registry."),e.log.info("Check npm registry/auth settings and try again.");return!1}u.stop("Plugin package ready");let s=e.spinner();s.start("Reading plugin manifest...");let i=await C(p.target);if(!i.ok){if(i.code==="manifest_read_failed")return s.stop("Manifest read failed",1),e.log.error(`Installed "${n}" but failed to read ${i.file}`),e.log.error(m(S(i.error)??i.error)),!1;if(i.code==="manifest_no_targets")return s.stop("No plugin targets found",1),e.log.error(`"${n}" does not expose plugin entrypoints in package.json`),e.log.info('Expected one of: exports["./tui"], exports["./server"], package.json main for server, or package.json["oc-themes"] for tui themes.'),!1;return s.stop("Manifest read failed",1),!1}s.stop(`Detected ${i.targets.map((t)=>t.kind).join(" + ")} target${i.targets.length===1?"":"s"}`);let g=e.spinner();g.start("Updating plugin config...");let r=await D({spec:n,targets:i.targets,force:a,global:y,vcs:f.vcs,worktree:f.worktree,directory:f.directory,config:e.global},e);if(!r.ok){if(r.code==="invalid_json")return g.stop(`Failed updating ${r.kind} config`,1),e.log.error(`Invalid JSON in ${r.file} (${r.parse} at line ${r.line}, column ${r.col})`),e.log.info("Fix the config file and run the command again."),!1;return g.stop("Failed updating plugin config",1),e.log.error(m(r.error)),!1}g.stop("Plugin config updated");for(let t of r.items){if(t.mode==="noop"){e.log.info(`Already configured in ${t.file}`);continue}if(t.mode==="replace"){e.log.info(`Replaced in ${t.file}`);continue}e.log.info(`Added to ${t.file}`)}return e.log.success(`Installed ${n}`),e.log.info(y?`Scope: global (${r.dir})`:`Scope: local (${r.dir})`),!0}}var R=P({command:"plugin <module>",aliases:["plug"],describe:"install plugin and update config",builder:(o)=>{return o.positional("module",{type:"string",describe:"npm module name"}).option("global",{alias:["g"],type:"boolean",default:!1,describe:"install in global config"}).option("force",{alias:["f"],type:"boolean",default:!1,describe:"replace existing plugin version"})},handler:async(o)=>{let e=String(o.module??"").trim();if(!e){d.error("module is required"),process.exitCode=1;return}d.empty(),k(`Install plugin ${e}`);let n=_({mod:e,global:Boolean(o.global),force:Boolean(o.force)}),a=!0;if(await l.provide({directory:process.cwd(),fn:async()=>{a=await n({vcs:l.project.vcs,worktree:l.worktree,directory:l.directory})}}),$("Done"),!a)process.exitCode=1}});export{_ as createPlugTask,R as PluginCommand};
2
+ import{n as w,o as h,p as I,q as C,r as D}from"./chunk-767vf2ha.js";import{Fd as c,Gd as k,Hd as $,Kd as x}from"./chunk-9g05wsae.js";import"./chunk-x1dfc7qd.js";import{Od as P}from"./chunk-wmmck56g.js";import{Sf as d}from"./chunk-ntmn6epc.js";import{Pl as l}from"./chunk-6ba9fc92.js";import"./chunk-7skp0dmg.js";import"./chunk-c4x99ayd.js";import{Xo as v}from"./chunk-8fn883z8.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-jfy6bfvv.js";import"./chunk-v0jnnpsz.js";import"./chunk-yt6cfsdh.js";import"./chunk-yja3y138.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import{ct as b}from"./chunk-esjs9s9g.js";import{pt as m}from"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-fa03gsff.js";var j={spinner:()=>x(),log:{error:(o)=>c.error(o),info:(o)=>c.info(o),success:(o)=>c.success(o)},resolve:(o)=>v(o),...h,global:b.Path.config};function S(o){if(!o||typeof o!=="object")return;if(!("cause"in o))return;return o.cause}function _(o,e=j){let n=o.mod,a=Boolean(o.force),y=Boolean(o.global);return async(f)=>{let u=e.spinner();u.start("Installing plugin package...");let p=await I(n,e);if(!p.ok){u.stop("Install failed",1),e.log.error(`Could not install "${n}"`);let t=w(p.error);if(t.detail)e.log.error(t.detail);if(t.missing)e.log.info("This package depends on a version that is not available in your npm registry."),e.log.info("Check npm registry/auth settings and try again.");return!1}u.stop("Plugin package ready");let s=e.spinner();s.start("Reading plugin manifest...");let i=await C(p.target);if(!i.ok){if(i.code==="manifest_read_failed")return s.stop("Manifest read failed",1),e.log.error(`Installed "${n}" but failed to read ${i.file}`),e.log.error(m(S(i.error)??i.error)),!1;if(i.code==="manifest_no_targets")return s.stop("No plugin targets found",1),e.log.error(`"${n}" does not expose plugin entrypoints in package.json`),e.log.info('Expected one of: exports["./tui"], exports["./server"], package.json main for server, or package.json["oc-themes"] for tui themes.'),!1;return s.stop("Manifest read failed",1),!1}s.stop(`Detected ${i.targets.map((t)=>t.kind).join(" + ")} target${i.targets.length===1?"":"s"}`);let g=e.spinner();g.start("Updating plugin config...");let r=await D({spec:n,targets:i.targets,force:a,global:y,vcs:f.vcs,worktree:f.worktree,directory:f.directory,config:e.global},e);if(!r.ok){if(r.code==="invalid_json")return g.stop(`Failed updating ${r.kind} config`,1),e.log.error(`Invalid JSON in ${r.file} (${r.parse} at line ${r.line}, column ${r.col})`),e.log.info("Fix the config file and run the command again."),!1;return g.stop("Failed updating plugin config",1),e.log.error(m(r.error)),!1}g.stop("Plugin config updated");for(let t of r.items){if(t.mode==="noop"){e.log.info(`Already configured in ${t.file}`);continue}if(t.mode==="replace"){e.log.info(`Replaced in ${t.file}`);continue}e.log.info(`Added to ${t.file}`)}return e.log.success(`Installed ${n}`),e.log.info(y?`Scope: global (${r.dir})`:`Scope: local (${r.dir})`),!0}}var R=P({command:"plugin <module>",aliases:["plug"],describe:"install plugin and update config",builder:(o)=>{return o.positional("module",{type:"string",describe:"npm module name"}).option("global",{alias:["g"],type:"boolean",default:!1,describe:"install in global config"}).option("force",{alias:["f"],type:"boolean",default:!1,describe:"replace existing plugin version"})},handler:async(o)=>{let e=String(o.module??"").trim();if(!e){d.error("module is required"),process.exitCode=1;return}d.empty(),k(`Install plugin ${e}`);let n=_({mod:e,global:Boolean(o.global),force:Boolean(o.force)}),a=!0;if(await l.provide({directory:process.cwd(),fn:async()=>{a=await n({vcs:l.project.vcs,worktree:l.worktree,directory:l.directory})}}),$("Done"),!a)process.exitCode=1}});export{_ as createPlugTask,R as PluginCommand};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Cd as m,Fd as P,Gd as R,Hd as k,Id as O,Kd as q,Ld as $,Md as I}from"./chunk-9g05wsae.js";import"./chunk-x1dfc7qd.js";import{Od as h}from"./chunk-wmmck56g.js";import{Sf as r}from"./chunk-ntmn6epc.js";import{gh as E,qh as L}from"./chunk-1qw3yh13.js";import"./chunk-ckhhm2m8.js";import"./chunk-tp7sfreh.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import{Kj as N,Vk as x}from"./chunk-q39h31te.js";import"./chunk-0x0a51w3.js";import{Pl as i}from"./chunk-7myavy3p.js";import"./chunk-fegrrsfj.js";import"./chunk-c4x99ayd.js";import"./chunk-w0fg8n1f.js";import"./chunk-0pbpzty2.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-jc0wbpjq.js";import"./chunk-jfy6bfvv.js";import"./chunk-aej69zjj.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-k5vwx1nv.js";import"./chunk-ej3gmaba.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import{ct as j}from"./chunk-v7yvnnmr.js";import{Gt as C}from"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import{lP as F}from"./chunk-fa03gsff.js";import u from"path";import U from"fs/promises";var T=F(N(),1);import{EOL as S}from"os";var c=["bash","read","write","edit","glob","grep","webfetch","actor","task"],B=h({command:"create",describe:"create a new agent",builder:(o)=>o.option("path",{type:"string",describe:"directory path to generate the agent file"}).option("description",{type:"string",describe:"what the agent should do"}).option("mode",{type:"string",describe:"agent mode",choices:["all","primary","subagent"]}).option("tools",{type:"string",describe:`comma-separated list of tools to enable (default: all). Available: "${c.join(", ")}"`}).option("model",{type:"string",alias:["m"],describe:"model to use in the format of provider/model"}),async handler(o){await i.provide({directory:process.cwd(),async fn(){let{path:l,description:t,mode:s,tools:p}=o,d=l&&t&&s&&p!==void 0;if(!d)r.empty(),R("Create agent");let D=i.project,g;if(l)g=u.join(l,"agent");else{let e="global";if(D.vcs==="git"){let n=await $({message:"Location",options:[{label:"Current project",value:"project",hint:i.worktree},{label:"Global",value:"global",hint:j.Path.config}]});if(m(n))throw new r.CancelledError;e=n}g=u.join(e==="global"?j.Path.config:u.join(i.worktree,".qitqode"),"agent")}let b;if(t)b=t;else{let e=await I({message:"Description",placeholder:"What should this agent do?",validate:(n)=>n&&n.length>0?void 0:"Required"});if(m(e))throw new r.CancelledError;b=e}let w=q();w.start("Generating agent configuration...");let G=o.model?x.parseModel(o.model):void 0,f=await L.runPromise(E.Service.use((e)=>e.generate({description:b,model:G}))).catch((e)=>{if(w.stop(`LLM failed to generate agent: ${e.message}`,1),d)process.exit(1);throw new r.CancelledError});w.stop(`Agent ${f.identifier} generated`);let y;if(p!==void 0)y=p?p.split(",").map((e)=>e.trim()):c;else{let e=await O({message:"Select tools to enable (Space to toggle)",options:c.map((n)=>({label:n,value:n})),initialValues:c});if(m(e))throw new r.CancelledError;y=e}let v;if(s)v=s;else{let e=await $({message:"Agent mode",options:[{label:"All",value:"all",hint:"Can function in both primary and subagent roles"},{label:"Primary",value:"primary",hint:"Acts as a primary/main agent"},{label:"Subagent",value:"subagent",hint:"Can be used as a subagent by other agents"}],initialValue:"all"});if(m(e))throw new r.CancelledError;v=e}let A={};for(let e of c)if(!y.includes(e))A[e]=!1;let M={description:f.whenToUse,mode:v};if(Object.keys(A).length>0)M.tools=A;let V=T.default.stringify(f.systemPrompt,M),a=u.join(g,`${f.identifier}.md`);if(await U.mkdir(g,{recursive:!0}),await C.exists(a)){if(d)console.error(`Error: Agent file already exists: ${a}`),process.exit(1);throw P.error(`Agent file already exists: ${a}`),new r.CancelledError}if(await C.write(a,V),d)console.log(a);else P.success(`Agent created: ${a}`),k("Done")}})}}),J=h({command:"list",describe:"list all available agents",async handler(){await i.provide({directory:process.cwd(),async fn(){let l=(await L.runPromise(E.Service.use((t)=>t.list()))).sort((t,s)=>{if(t.native!==s.native)return t.native?-1:1;return t.name.localeCompare(s.name)});for(let t of l)process.stdout.write(`${t.name} (${t.mode})`+S),process.stdout.write(` ${JSON.stringify(t.permission,null,2)}`+S)}})}}),ne=h({command:"agent",describe:"manage agents",builder:(o)=>o.command(B).command(J).demandCommand(),async handler(){}});export{ne as AgentCommand};
2
+ import{Cd as m,Fd as P,Gd as R,Hd as k,Id as O,Kd as q,Ld as $,Md as I}from"./chunk-9g05wsae.js";import"./chunk-x1dfc7qd.js";import{Od as h}from"./chunk-wmmck56g.js";import{Sf as r}from"./chunk-ntmn6epc.js";import{gh as E,qh as L}from"./chunk-88ckmmdr.js";import"./chunk-w9mdrb90.js";import"./chunk-qxtz0tfd.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import{Kj as N,Vk as x}from"./chunk-651fyxmn.js";import"./chunk-0czxqcg7.js";import{Pl as i}from"./chunk-6ba9fc92.js";import"./chunk-7skp0dmg.js";import"./chunk-c4x99ayd.js";import"./chunk-6dznrhs4.js";import"./chunk-8fn883z8.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-th5z0zx7.js";import"./chunk-jfy6bfvv.js";import"./chunk-v0jnnpsz.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-yt6cfsdh.js";import"./chunk-yja3y138.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import{ct as j}from"./chunk-esjs9s9g.js";import{Gt as C}from"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import{lP as F}from"./chunk-fa03gsff.js";import u from"path";import U from"fs/promises";var T=F(N(),1);import{EOL as S}from"os";var c=["bash","read","write","edit","glob","grep","webfetch","actor","task"],B=h({command:"create",describe:"create a new agent",builder:(o)=>o.option("path",{type:"string",describe:"directory path to generate the agent file"}).option("description",{type:"string",describe:"what the agent should do"}).option("mode",{type:"string",describe:"agent mode",choices:["all","primary","subagent"]}).option("tools",{type:"string",describe:`comma-separated list of tools to enable (default: all). Available: "${c.join(", ")}"`}).option("model",{type:"string",alias:["m"],describe:"model to use in the format of provider/model"}),async handler(o){await i.provide({directory:process.cwd(),async fn(){let{path:l,description:t,mode:s,tools:p}=o,d=l&&t&&s&&p!==void 0;if(!d)r.empty(),R("Create agent");let D=i.project,g;if(l)g=u.join(l,"agent");else{let e="global";if(D.vcs==="git"){let n=await $({message:"Location",options:[{label:"Current project",value:"project",hint:i.worktree},{label:"Global",value:"global",hint:j.Path.config}]});if(m(n))throw new r.CancelledError;e=n}g=u.join(e==="global"?j.Path.config:u.join(i.worktree,".qitqode"),"agent")}let b;if(t)b=t;else{let e=await I({message:"Description",placeholder:"What should this agent do?",validate:(n)=>n&&n.length>0?void 0:"Required"});if(m(e))throw new r.CancelledError;b=e}let w=q();w.start("Generating agent configuration...");let G=o.model?x.parseModel(o.model):void 0,f=await L.runPromise(E.Service.use((e)=>e.generate({description:b,model:G}))).catch((e)=>{if(w.stop(`LLM failed to generate agent: ${e.message}`,1),d)process.exit(1);throw new r.CancelledError});w.stop(`Agent ${f.identifier} generated`);let y;if(p!==void 0)y=p?p.split(",").map((e)=>e.trim()):c;else{let e=await O({message:"Select tools to enable (Space to toggle)",options:c.map((n)=>({label:n,value:n})),initialValues:c});if(m(e))throw new r.CancelledError;y=e}let v;if(s)v=s;else{let e=await $({message:"Agent mode",options:[{label:"All",value:"all",hint:"Can function in both primary and subagent roles"},{label:"Primary",value:"primary",hint:"Acts as a primary/main agent"},{label:"Subagent",value:"subagent",hint:"Can be used as a subagent by other agents"}],initialValue:"all"});if(m(e))throw new r.CancelledError;v=e}let A={};for(let e of c)if(!y.includes(e))A[e]=!1;let M={description:f.whenToUse,mode:v};if(Object.keys(A).length>0)M.tools=A;let V=T.default.stringify(f.systemPrompt,M),a=u.join(g,`${f.identifier}.md`);if(await U.mkdir(g,{recursive:!0}),await C.exists(a)){if(d)console.error(`Error: Agent file already exists: ${a}`),process.exit(1);throw P.error(`Agent file already exists: ${a}`),new r.CancelledError}if(await C.write(a,V),d)console.log(a);else P.success(`Agent created: ${a}`),k("Done")}})}}),J=h({command:"list",describe:"list all available agents",async handler(){await i.provide({directory:process.cwd(),async fn(){let l=(await L.runPromise(E.Service.use((t)=>t.list()))).sort((t,s)=>{if(t.native!==s.native)return t.native?-1:1;return t.name.localeCompare(s.name)});for(let t of l)process.stdout.write(`${t.name} (${t.mode})`+S),process.stdout.write(` ${JSON.stringify(t.permission,null,2)}`+S)}})}}),ne=h({command:"agent",describe:"manage agents",builder:(o)=>o.command(B).command(J).demandCommand(),async handler(){}});export{ne as AgentCommand};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{Gt as o,tt as h}from"./chunk-b5x3zghc.js";import{It as UR}from"./chunk-tk6gjy9d.js";import{Ut as tn,bu as xR}from"./chunk-pkdk0ppc.js";import{$H as Y,UE as En,XO as s,jD as dn,yF as un}from"./chunk-meaa7wrs.js";import{nP as B,qP as Ln,rP as on}from"./chunk-fa03gsff.js";var Bn={};B(Bn,{validateArchiveMetadata:()=>qn,validateArchiveEntries:()=>Xn,replaceDirectoryAtomically:()=>zn,extractZip:()=>XR,assertArchiveDestinationSafe:()=>e});import j from"path";import f from"fs/promises";function Xn(n,R){let N=j.resolve(R);for(let O of n){let T=O.trim().replaceAll("\\","/");if(!T)continue;if(T.includes("\x00")||j.posix.isAbsolute(T)||/^[a-z]:\//i.test(T))throw Error(`Unsafe archive entry: ${O}`);if(T.split("/").includes(".."))throw Error(`Unsafe archive entry: ${O}`);let x=j.resolve(N,...T.split("/"));if(x!==N&&!x.startsWith(`${N}${j.sep}`))throw Error(`Unsafe archive entry: ${O}`)}}function qn(n){for(let R of n.split(/\r?\n/))if(/^[bclps]/.test(R))throw Error("Archive contains an unsafe special entry")}async function Cn(n){let R=await f.readdir(n,{withFileTypes:!0});await Promise.all(R.map(async(N)=>{let O=j.join(n,N.name);if(N.isSymbolicLink())throw Error(`Archive contains a symbolic link: ${N.name}`);if(N.isDirectory())await Cn(O)}))}async function Sn(n){return f.lstat(n).catch((R)=>{if(R.code==="ENOENT")return;throw R})}async function e(n){let R=j.resolve(n),N=j.parse(R),O=N.root;for(let T of R.slice(N.root.length).split(j.sep).filter(Boolean)){O=j.join(O,T);let x=await Sn(O);if(!x)return;if(x.isSymbolicLink())throw Error(`Archive destination contains a symbolic link: ${O}`)}}async function zn(n,R){let N=j.resolve(R);await e(N);let O=await Sn(N);if(O&&!O.isDirectory())throw Error("Archive destination must be a directory");let T=j.join(j.dirname(N),`.qitqode-backup-${crypto.randomUUID()}`);if(O)await f.rename(N,T);try{await f.rename(n,N)}catch(x){if(O)await f.rename(T,N);throw x}if(O)await f.rm(T,{recursive:!0,force:!0})}async function XR(n,R){let N=j.resolve(n),O=j.resolve(R),T=await h(process.platform==="win32"?["tar","-tf",N]:["unzip","-Z1",N]);Xn(T.stdout.toString().split(/\r?\n/),O);let x=await h(process.platform==="win32"?["tar","-tvf",N]:["unzip","-Z","-l",N]);qn(x.stdout.toString()),await e(j.dirname(O)),await f.mkdir(j.dirname(O),{recursive:!0}),await e(j.dirname(O));let H=await f.mkdtemp(j.join(j.dirname(O),".qitqode-extract-"));try{if(process.platform==="win32"){let $=N.replace(/'/g,"''"),V=H.replace(/'/g,"''"),X=`$global:ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path '${$}' -DestinationPath '${V}' -Force`;await h(["powershell","-NoProfile","-NonInteractive","-Command",X])}else await h(["unzip","-o","-q",N,"-d",H]);await Cn(H),await zn(H,O)}finally{await f.rm(H,{recursive:!0,force:!0})}}var Pn={};B(Pn,{isValidHex:()=>Zn,hexToRgb:()=>fn,hexToAnsiBold:()=>qR});function Zn(n){if(!n)return!1;return/^#[0-9a-fA-F]{6}$/.test(n)}function fn(n){let R=parseInt(n.slice(1,3),16),N=parseInt(n.slice(3,5),16),O=parseInt(n.slice(5,7),16);return{r:R,g:N,b:O}}function qR(n){if(!Zn(n))return;let{r:R,g:N,b:O}=fn(n);return`\x1B[38;2;${R};${N};${O}m\x1B[1m`}var cn={};B(cn,{awaitDeferred:()=>CR});function CR(n,R){return Y.ensuring(En.await(n),Y.sync(R))}import c from"os";var C={};B(C,{Path:()=>Z,Global:()=>C});import L from"fs/promises";import xn from"path";import DR from"os";import nn from"path";import zR from"os";import{randomBytes as BR,randomUUID as ZR}from"crypto";import{mkdir as Rn,readFile as fR,rm as u,stat as PR,utimes as ER,writeFile as An}from"fs/promises";import{createHash as SR}from"crypto";var Un;((AN)=>{function n(R){return SR("sha1").update(R).digest("hex")}AN.fast=n})(Un||={});var Nn;((bn)=>{let n;function R(I){n=I}bn.setGlobal=R;let N=()=>{if(!n)throw Error("Flock global not set");return nn.join(n.state,"locks")},O={staleMs:60000,timeoutMs:300000,baseDelayMs:100,maxDelayMs:2000};function T(I){if(typeof I!=="object"||I===null||!("code"in I))return;let J=I.code;if(typeof J!=="string")return;return J}function x(I,J){return new Promise((U,W)=>{if(J?.aborted){W(J.reason??Error("Aborted"));return}let _,K=()=>{J?.removeEventListener("abort",G),U()},G=()=>{if(_)clearTimeout(_);J?.removeEventListener("abort",G),W(J?.reason??Error("Aborted"))};if(J?.addEventListener("abort",G,{once:!0}),_=setTimeout(K,I),J?.aborted)G()})}function H(I){let J=Math.floor(I*0.3),U=Math.floor(Math.random()*(2*J+1))-J;return Math.max(0,I+U)}function $(){return performance.now()}function V(){return performance.timeOrigin+$()}async function X(I){try{return await PR(I)}catch(J){let U=T(J);if(U==="ENOENT"||U==="ENOTDIR")return;throw J}}async function w(I,J,U,W){let _=V(),K=await X(J);if(K)return _-K.mtimeMs>W;let G=await X(U);if(G)return _-G.mtimeMs>W;let z=await X(I);if(!z)return!1;return _-z.mtimeMs>W}async function y(I,J){let U=ZR?.()??BR(16).toString("hex"),W=nn.join(I,"meta.json"),_=nn.join(I,"heartbeat");try{await Rn(I,{mode:448})}catch(g){if(T(g)!=="EEXIST")throw g;if(!await w(I,_,W,J.staleMs))return{acquired:!1};let Q=I+".breaker";try{await Rn(Q,{mode:448})}catch(F){let d=T(F);if(d==="EEXIST"){let Qn=await X(Q);if(Qn&&V()-Qn.mtimeMs>J.staleMs)await u(Q,{recursive:!0,force:!0}).catch(()=>{return});return{acquired:!1}}if(d==="ENOENT"||d==="ENOTDIR")return{acquired:!1};throw F}try{if(!await w(I,_,W,J.staleMs))return{acquired:!1};await u(I,{recursive:!0,force:!0});try{await Rn(I,{mode:448})}catch(F){let d=T(F);if(d==="EEXIST"||d==="ENOTEMPTY")return{acquired:!1};throw F}}finally{await u(Q,{recursive:!0,force:!0}).catch(()=>{return})}}let K={token:U,pid:process.pid,hostname:zR.hostname(),createdAt:new Date().toISOString()};await An(_,"",{flag:"wx"}).catch(async()=>{throw await u(I,{recursive:!0,force:!0}),Error("Lock acquired but heartbeat already existed (possible compromise).")}),await An(W,JSON.stringify(K,null,2),{flag:"wx"}).catch(async()=>{throw await u(I,{recursive:!0,force:!0}),Error("Lock acquired but meta.json already existed (possible compromise).")});let G;return{acquired:!0,startHeartbeat:(g=Math.max(100,Math.floor(J.staleMs/3)))=>{if(G)return;G=setInterval(()=>{let Q=new Date;ER(_,Q,Q).catch(()=>{return})},g),G.unref?.()},release:async()=>{if(G)clearInterval(G),G=void 0;if((await fR(W,"utf8").then((Q)=>{let F=JSON.parse(Q);if(!F||typeof F!=="object")return{};return{token:"token"in F&&typeof F.token==="string"?F.token:void 0}}).catch((Q)=>{let F=T(Q);if(F==="ENOENT"||F==="ENOTDIR")throw Error("Refusing to release: lock is compromised (metadata missing).");if(Q instanceof SyntaxError)throw Error("Refusing to release: lock is compromised (metadata invalid).");throw Q})).token!==U)throw Error("Refusing to release: lock token mismatch (not the owner).");await u(I,{recursive:!0,force:!0})}}}async function a(I,J,U){let W=$()+U.timeoutMs,_=0,K=0,G=U.baseDelayMs;while(!0){J.signal?.throwIfAborted();let z=await y(I,U);if(z.acquired)return z;if($()>W)throw Error(`Timed out waiting for lock: ${J.key}`);_+=1;let m=H(G);await J.onWait?.({key:J.key,attempt:_,delay:m,waited:K}),await x(m,J.signal),K+=m,G=Math.min(U.maxDelayMs,Math.floor(G*1.7))}}async function FR(I,J={}){J.signal?.throwIfAborted();let U={staleMs:J.staleMs??O.staleMs,timeoutMs:J.timeoutMs??O.timeoutMs,baseDelayMs:J.baseDelayMs??O.baseDelayMs,maxDelayMs:J.maxDelayMs??O.maxDelayMs},W=J.dir??N();await Rn(W,{recursive:!0});let _=nn.join(W,Un.fast(I)+".lock"),K=await a(_,{key:I,onWait:J.onWait,signal:J.signal},U);K.startHeartbeat();let G,z=()=>{return G??=K.release()};return{release:z,[Symbol.asyncDispose](){return z()}}}bn.acquire=FR;async function BN(I,J,U={}){let _=[];try{const W=Ln(_,await FR(I,U),1);U.signal?.throwIfAborted();return await J()}catch(K){var G=K,z=1}finally{var m=on(_,G,z);m&&await m}}bn.withLock=BN,bn.effect=Y.fn("Flock.effect")(function*(I,J={}){return yield*Y.acquireRelease(Y.promise((U)=>Nn.acquire(I,{...J,signal:U})).pipe(Y.withSpan("Flock.acquire",{attributes:{key:I}})),(U)=>Y.promise(()=>U.release()).pipe(Y.withSpan("Flock.release"))).pipe(Y.asVoid)})})(Nn||={});import q from"path";import cR from"os";import Tn from"path";var E=cR.homedir(),{env:b}=process,k=b.XDG_DATA_HOME||(E?Tn.join(E,".local","share"):void 0),On=b.XDG_CONFIG_HOME||(E?Tn.join(E,".config"):void 0),Dn=b.XDG_STATE_HOME||(E?Tn.join(E,".local","state"):void 0),yn=b.XDG_CACHE_HOME||(E?Tn.join(E,".cache"):void 0),kN=b.XDG_RUNTIME_DIR||void 0,AR=(b.XDG_DATA_DIRS||"/usr/local/share/:/usr/share/").split(":");if(k)AR.unshift(k);var bR=(b.XDG_CONFIG_DIRS||"/etc/xdg").split(":");if(On)bR.unshift(On);import LR from"os";var p="qitqode";function Gn(n=process.env){let R=n.QITQODE_HOME;if(R){if(!q.isAbsolute(R))throw Error(`QITQODE_HOME must be an absolute path, got: ${JSON.stringify(R)}`);return{mode:"qitqode_home",root:R,data:q.join(R,"data"),cache:q.join(R,"cache"),config:q.join(R,"config"),state:q.join(R,"state")}}return{mode:"xdg",data:q.join(k,p),cache:q.join(yn,p),config:q.join(On,p),state:q.join(Dn,p)}}function _n(n=process.env){let R=n.QITQODE_LOG_DIR;if(R){if(!q.isAbsolute(R))throw Error(`QITQODE_LOG_DIR must be an absolute path, got: ${JSON.stringify(R)}`);return R}return q.join(k,p,"log")}var oR;((mn)=>{class n extends dn.Service()("@qitqode/Global"){}mn.Service=n,mn.layer=un.effect(n,Y.gen(function*(){let N=process.env.HOME||process.env.USERPROFILE||LR.homedir(),{data:O,cache:T,config:x,state:H}=yield*Y.sync(()=>Gn()),$=q.join(T,"bin"),V=yield*Y.sync(()=>_n());return n.of({home:N,data:O,cache:T,config:x,state:H,bin:$,log:V})}))})(oR||={});var{data:yR,cache:vn,config:mR,state:hn}=Gn(),Z={get home(){return process.env.HOME||process.env.USERPROFILE||DR.homedir()},data:yR,bin:xn.join(vn,"bin"),log:_n(),cache:vn,config:mR,state:hn};Nn.setGlobal({state:hn});await Promise.all([L.mkdir(Z.data,{recursive:!0}),L.mkdir(Z.config,{recursive:!0}),L.mkdir(Z.state,{recursive:!0}),L.mkdir(Z.log,{recursive:!0}),L.mkdir(Z.bin,{recursive:!0})]);var gn="21",dR=await o.readText(xn.join(Z.cache,"version")).catch(()=>"0");if(dR!==gn){try{let n=await L.readdir(Z.cache);await Promise.all(n.map((R)=>L.rm(xn.join(Z.cache,R),{recursive:!0,force:!0})))}catch{}await o.write(xn.join(Z.cache,"version"),gn)}var kn="0.1.20",pn="latest",TO=!1;import uR from"path";var D;async function rn(){if(D)return D;let n=uR.join(C.Path.data,"installation_id"),R=await o.readText(n).catch(()=>{return});if(R&&R.trim())return D=R.trim(),D;return D=crypto.randomUUID(),await o.write(n,D),D}var sn="QITQODE_RUN_ID",ln="QITQODE_PROCESS_ROLE";function vR(){return process.env.QITQODE_RUN_ID??=crypto.randomUUID()}function gR(n){return process.env.QITQODE_PROCESS_ROLE??=n}function HO(n){return{runID:vR(),processRole:gR(n)}}function UO(n){let R=Object.fromEntries(Object.entries(process.env).filter((N)=>N[1]!==void 0));return n?Object.assign(R,n):R}function hR(){if(process.env.USER)return process.env.USER;if(process.env.USERNAME)return process.env.USERNAME;return c.userInfo().username}function kR(){return Intl.DateTimeFormat().resolvedOptions().locale}function pR(){return Intl.DateTimeFormat().resolvedOptions().timeZone}async function rR(){let n=c.cpus();return{os:{platform:c.platform(),arch:c.arch(),release:c.release(),hostname:c.hostname()},cpu:{model:n[0]?.model??"unknown",count:n.length},memory:{total_bytes:c.totalmem()},user:{username:hR(),homedir:c.homedir()},runtime:{bun_version:Bun.version,node_version:process.versions.node,pid:process.pid,timezone:pR(),locale:kR()},paths:{cwd:process.cwd(),data:C.Path.data,config:C.Path.config},qitqode:{version:kn,channel:pn,installation_id:await rn(),run_id:sn,process_role:ln}}}var an={};B(an,{toString:()=>lR,parse:()=>tR,match:()=>sR,fromParsedKey:()=>iR});function sR(n,R){if(!n)return!1;let N={...n,super:n.super??!1},O={...R,super:R.super??!1};return tn(N,O)}function iR(n,R=!1){return{name:n.name===" "?"space":n.name,ctrl:n.ctrl,meta:n.meta,shift:n.shift,super:n.super??!1,leader:R}}function lR(n){if(!n)return"";let R=[];if(n.ctrl)R.push("ctrl");if(n.meta)R.push("alt");if(n.super)R.push("super");if(n.shift)R.push("shift");if(n.name)if(n.name==="delete")R.push("del");else R.push(n.name);let N=R.join("+");if(n.leader)N=N?`<leader> ${N}`:"<leader>";return N}function tR(n){if(n==="none")return[];return n.split(",").map((R)=>{let O=R.replace(/<leader>/g,"leader+").toLowerCase().split("+"),T={ctrl:!1,meta:!1,shift:!1,leader:!1,name:""};for(let x of O)switch(x){case"ctrl":T.ctrl=!0;break;case"alt":case"meta":case"option":T.meta=!0;break;case"super":T.super=!0;break;case"shift":T.shift=!0;break;case"leader":T.leader=!0;break;case"esc":T.name="escape";break;default:T.name=x;break}return T})}var en={};B(en,{create:()=>eR,NotFound:()=>Vn});import{AsyncLocalStorage as aR}from"async_hooks";class Vn extends Error{name;constructor(n){super(`No context found for ${n}`);this.name=n}}function eR(n){let R=new aR;return{use(){let N=R.getStore();if(!N)throw new Vn(n);return N},provide(N,O){return R.run(N,O)}}}var RR={};B(RR,{truncateMiddle:()=>xN,truncate:()=>TN,todayTimeOrDateTime:()=>RN,titlecase:()=>nN,time:()=>jn,pluralize:()=>JN,number:()=>NN,duration:()=>ON,datetime:()=>nR});function nN(n){return n.replace(/\b\w/g,(R)=>R.toUpperCase())}function jn(n){return new Date(n).toLocaleTimeString(void 0,{timeStyle:"short"})}function nR(n){let R=new Date(n),N=jn(n),O=R.toLocaleDateString();return`${N} \xB7 ${O}`}function RN(n){let R=new Date(n),N=new Date;if(R.getFullYear()===N.getFullYear()&&R.getMonth()===N.getMonth()&&R.getDate()===N.getDate())return jn(n);else return nR(n)}function NN(n){if(n>=1e6)return(n/1e6).toFixed(1)+"M";else if(n>=1000)return(n/1000).toFixed(1)+"K";return n.toString()}function ON(n){if(n<1000)return`${n}ms`;if(n<60000)return`${(n/1000).toFixed(1)}s`;if(n<3600000){let O=Math.floor(n/60000),T=Math.floor(n%60000/1000);return`${O}m ${T}s`}if(n<86400000){let O=Math.floor(n/3600000),T=Math.floor(n%3600000/60000);return`${O}h ${T}m`}let R=Math.floor(n%86400000/3600000);return`${Math.floor(n/86400000)}d ${R}h`}function TN(n,R){if(R<=0)return"";if(n.length<=R)return n;return n.slice(0,R-1)+"\u2026"}function xN(n,R=35){if(R<=0)return"";if(n.length<=R)return n;let N="\u2026",O=Math.ceil((R-N.length)/2),T=Math.floor((R-N.length)/2);return n.slice(0,O)+N+(T>0?n.slice(-T):"")}function JN(n,R,N){return(n===1?R:N).replace("{}",n.toString())}var TR={};B(TR,{write:()=>$N,read:()=>IN});var r=new Map;function NR(n){if(!r.has(n))r.set(n,{readers:0,writer:!1,waitingReaders:[],waitingWriters:[]});return r.get(n)}function MN(n){let R=r.get(n);if(!R||R.writer||R.readers>0)return;if(R.waitingWriters.length>0){R.waitingWriters.shift()();return}while(R.waitingReaders.length>0)R.waitingReaders.shift()();if(R.readers===0&&!R.writer&&R.waitingReaders.length===0&&R.waitingWriters.length===0)r.delete(n)}function OR(n){return new Promise((R)=>{let N=()=>{n.acquire();let O=!1;R({[Symbol.dispose]:()=>{if(O)return;O=!0,n.release(),MN(n.key)}})};if(n.available())N();else n.waiting.push(N)})}async function IN(n){let R=NR(n);return OR({key:n,available:()=>!R.writer&&R.waitingWriters.length===0,acquire:()=>R.readers++,release:()=>R.readers--,waiting:R.waitingReaders})}async function $N(n){let R=NR(n);return OR({key:n,available:()=>!R.writer&&R.readers===0,acquire:()=>{R.writer=!0},release:()=>{R.writer=!1},waiting:R.waitingWriters})}var WR={};B(WR,{redactValue:()=>Kn,init:()=>KN,flush:()=>FN,file:()=>wN,enabled:()=>WN,create:()=>Fn,Level:()=>GN,Default:()=>YN});import $n from"path";import A from"fs/promises";import{createWriteStream as GR}from"fs";function M(n){let R=process.env[n]?.toLowerCase();return R==="true"||R==="1"}function Wn(n){let R=process.env[n]?.toLowerCase();return R==="false"||R==="0"}function P(n){let R=process.env[n];if(!R)return;let N=Number(R);return Number.isInteger(N)&&N>0?N:void 0}var v=M("QITQODE_EXPERIMENTAL"),Jn=M("QITQODE_DISABLE_CLAUDE_CODE"),Mn=M("QITQODE_DISABLE_EXTERNAL_SKILLS"),HN=Mn||Jn||M("QITQODE_DISABLE_CLAUDE_CODE_SKILLS"),UN=process.env.QITQODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT,JR={OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_HEADERS:process.env.OTEL_EXPORTER_OTLP_HEADERS,QITQODE_AUTO_SHARE:M("QITQODE_AUTO_SHARE"),QITQODE_AUTO_HEAP_SNAPSHOT:M("QITQODE_AUTO_HEAP_SNAPSHOT"),QITQODE_GIT_BASH_PATH:process.env.QITQODE_GIT_BASH_PATH,QITQODE_CONFIG:process.env.QITQODE_CONFIG,QITQODE_CONFIG_CONTENT:process.env.QITQODE_CONFIG_CONTENT,get QITQODE_BACKEND_URL(){return process.env.QITQODE_BACKEND_URL??xR},QITQODE_DISABLE_AUTOUPDATE:M("QITQODE_DISABLE_AUTOUPDATE"),QITQODE_DISABLE_LOG_ROTATION:M("QITQODE_DISABLE_LOG_ROTATION"),QITQODE_ALWAYS_NOTIFY_UPDATE:M("QITQODE_ALWAYS_NOTIFY_UPDATE"),QITQODE_DISABLE_PRUNE:M("QITQODE_DISABLE_PRUNE"),QITQODE_DISABLE_TERMINAL_TITLE:M("QITQODE_DISABLE_TERMINAL_TITLE"),QITQODE_SHOW_TTFD:M("QITQODE_SHOW_TTFD"),QITQODE_PERMISSION:process.env.QITQODE_PERMISSION,QITQODE_DISABLE_DEFAULT_PLUGINS:M("QITQODE_DISABLE_DEFAULT_PLUGINS"),QITQODE_DISABLE_LSP_DOWNLOAD:!0,QITQODE_ENABLE_EXPERIMENTAL_MODELS:M("QITQODE_ENABLE_EXPERIMENTAL_MODELS"),QITQODE_DISABLE_AUTOCOMPACT:M("QITQODE_DISABLE_AUTOCOMPACT"),QITQODE_DISABLE_MODELS_FETCH:M("QITQODE_DISABLE_MODELS_FETCH"),QITQODE_DISABLE_MOUSE:M("QITQODE_DISABLE_MOUSE"),QITQODE_OUTPUT_LENGTH_CONTINUATION_LIMIT:P("QITQODE_OUTPUT_LENGTH_CONTINUATION_LIMIT")??3,QITQODE_INVALID_OUTPUT_CONTINUATION_LIMIT:P("QITQODE_INVALID_OUTPUT_CONTINUATION_LIMIT")??2,QITQODE_TEXT_NGRAM_N:P("QITQODE_TEXT_NGRAM_N")??6,QITQODE_TEXT_REPEAT_THRESHOLD:P("QITQODE_TEXT_REPEAT_THRESHOLD")??3,QITQODE_TEXT_WINDOW_TOKENS:P("QITQODE_TEXT_WINDOW_TOKENS")??500,QITQODE_MAX_PROMPT_IMAGES:P("QITQODE_MAX_PROMPT_IMAGES")??4,QITQODE_MAX_PROMPT_IMAGE_SIZE:P("QITQODE_MAX_PROMPT_IMAGE_SIZE")??393216,QITQODE_DISABLE_PROVIDER_ENV:M("QITQODE_DISABLE_PROVIDER_ENV"),QITQODE_DISABLE_CLAUDE_CODE:Jn,get QITQODE_DISABLE_CLAUDE_CODE_MCP(){return Jn||M("QITQODE_DISABLE_CLAUDE_CODE_MCP")},QITQODE_DISABLE_CLAUDE_CODE_PROMPT:Jn||M("QITQODE_DISABLE_CLAUDE_CODE_PROMPT"),QITQODE_DISABLE_CLAUDE_CODE_COMMANDS:M("QITQODE_DISABLE_CLAUDE_CODE_COMMANDS"),QITQODE_DISABLE_CLAUDE_CODE_SKILLS:HN,QITQODE_DISABLE_EXTERNAL_SKILLS:Mn,QITQODE_DISABLE_CODEX_SKILLS:Mn||M("QITQODE_DISABLE_CODEX_SKILLS"),QITQODE_DISABLE_OPENCODE_SKILLS:Mn||M("QITQODE_DISABLE_OPENCODE_SKILLS"),QITQODE_FAKE_VCS:process.env.QITQODE_FAKE_VCS,QITQODE_DISABLE_GIT:M("QITQODE_DISABLE_GIT"),get QITQODE_SERVER_PASSWORD(){return process.env.QITQODE_SERVER_PASSWORD},get QITQODE_SERVER_USERNAME(){return process.env.QITQODE_SERVER_USERNAME},QITQODE_ENABLE_QUESTION_TOOL:M("QITQODE_ENABLE_QUESTION_TOOL"),QITQODE_EXPERIMENTAL:v,QITQODE_EXPERIMENTAL_FILEWATCHER:s.boolean("QITQODE_EXPERIMENTAL_FILEWATCHER").pipe(s.withDefault(!1)),QITQODE_EXPERIMENTAL_DISABLE_FILEWATCHER:s.boolean("QITQODE_EXPERIMENTAL_DISABLE_FILEWATCHER").pipe(s.withDefault(!1)),QITQODE_EXPERIMENTAL_ICON_DISCOVERY:v||M("QITQODE_EXPERIMENTAL_ICON_DISCOVERY"),QITQODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:UN===void 0?process.platform==="win32":M("QITQODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"),QITQODE_ENABLE_EXA:M("QITQODE_ENABLE_EXA")||v||M("QITQODE_EXPERIMENTAL_EXA"),QITQODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS:P("QITQODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS"),QITQODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX:P("QITQODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"),QITQODE_EXPERIMENTAL_OXFMT:v||M("QITQODE_EXPERIMENTAL_OXFMT"),QITQODE_EXPERIMENTAL_LSP_TY:M("QITQODE_EXPERIMENTAL_LSP_TY"),QITQODE_EXPERIMENTAL_LSP_TOOL:v||M("QITQODE_EXPERIMENTAL_LSP_TOOL"),QITQODE_EXPERIMENTAL_WORKFLOW_TOOL:!Wn("QITQODE_EXPERIMENTAL_WORKFLOW_TOOL"),QITQODE_EXPERIMENTAL_MARKDOWN:!Wn("QITQODE_EXPERIMENTAL_MARKDOWN"),QITQODE_MODELS_URL:process.env.QITQODE_MODELS_URL,QITQODE_MODELS_PATH:process.env.QITQODE_MODELS_PATH,QITQODE_DB:process.env.QITQODE_DB,QITQODE_DISABLE_CHANNEL_DB:!Wn("QITQODE_DISABLE_CHANNEL_DB"),QITQODE_SKIP_MIGRATIONS:M("QITQODE_SKIP_MIGRATIONS"),QITQODE_STRICT_CONFIG_DEPS:M("QITQODE_STRICT_CONFIG_DEPS"),QITQODE_WORKSPACE_ID:process.env.QITQODE_WORKSPACE_ID,QITQODE_EXPERIMENTAL_HTTPAPI:M("QITQODE_EXPERIMENTAL_HTTPAPI"),QITQODE_EXPERIMENTAL_WORKSPACES:v||M("QITQODE_EXPERIMENTAL_WORKSPACES"),get QITQODE_DISABLE_COMPOSE_SKILLS(){return M("QITQODE_DISABLE_COMPOSE_SKILLS")},get QITQODE_DISABLE_BUILTIN_SKILLS(){return M("QITQODE_DISABLE_BUILTIN_SKILLS")},get QITQODE_DISABLE_PROJECT_CONFIG(){return M("QITQODE_DISABLE_PROJECT_CONFIG")},get QITQODE_TUI_CONFIG(){return process.env.QITQODE_TUI_CONFIG},get QITQODE_CONFIG_DIR(){return process.env.QITQODE_CONFIG_DIR},get QITQODE_HOME(){return process.env.QITQODE_HOME},get QITQODE_PURE(){return M("QITQODE_PURE")},get QITQODE_PLUGIN_META_FILE(){return process.env.QITQODE_PLUGIN_META_FILE},get QITQODE_CLIENT(){return process.env.QITQODE_CLIENT??"cli"}};var GN=UR.enum(["DEBUG","INFO","WARN","ERROR"]).meta({ref:"LogLevel",description:"Log level"}),MR={DEBUG:0,INFO:1,WARN:2,ERROR:3},_N=10,VN=52428800,jN=209715200,_R="INFO";function i(n){return MR[n]>=MR[_R]}function WN(n){return i(n)}var IR=new Map,YN=Fn({service:"default"}),S="";function wN(){return S}var t,In=0,$R=!0,l=(n)=>{return process.stderr.write(n),n.length};function Hn(){return new Date().toISOString().split(".")[0].replace(/:/g,"")}async function KN(n){if(n.level)_R=n.level;if($R=n.rotate??!JR.QITQODE_DISABLE_LOG_ROTATION,VR(C.Path.log),n.print)return;if(S=$n.join(C.Path.log,n.dev?"dev.log":Hn()+".log"),n.dev){let R=await A.stat(S).catch(()=>null);if(R&&R.size>0)await A.rename(S,`${S}.${Hn()}`).catch(()=>{})}else await A.truncate(S).catch(()=>{});t=GR(S,{flags:"a"}),In=0,l=(R)=>{return wn=wn.then(async()=>{if(In+=Buffer.byteLength(R),$R&&In>=VN)In=Buffer.byteLength(R),await QN();await new Promise((N)=>{if(!t){N();return}t.write(R,()=>N())})}).catch(()=>{}),R.length}}var wn=Promise.resolve();async function FN(){await wn}async function QN(){let n=t,R=`${S}.${Hn()}`;for(let N=2;await A.stat(R).then(()=>!0,()=>!1);N++)R=`${S}.${Hn()}.${N}`;if(await A.rename(S,R).catch(()=>{}),t=GR(S,{flags:"a"}),n)n.end();VR(C.Path.log)}async function VR(n){let R=await A.readdir(n).catch(()=>[]),O=(await Promise.all(R.filter(($)=>$.includes(".log")&&$n.join(n,$)!==S).map(async($)=>{let V=await A.stat($n.join(n,$)).catch(()=>null);return V?.isFile()?{name:$,size:V.size}:null}))).flatMap(($)=>$?[$]:[]).sort(($,V)=>$.name<V.name?-1:$.name>V.name?1:0),T=O.reduce(($,V)=>$+V.size,0),x=O.length,H=O.filter(($)=>{if(x<=_N&&T<=jN)return!1;return T-=$.size,x-=1,!0});await Promise.all(H.map(($)=>A.unlink($n.join(n,$.name)).catch(()=>{})))}var XN=/token|secret|password|passwd|credential|api[_-]?key|authorization|cookie|set-cookie/i;function Kn(n,R){if(XN.test(n)&&R!==void 0&&R!==null)return"[REDACTED]";return R}var Yn=10240;function qN(n){try{let R=JSON.stringify(n,function(N,O){return N?Kn(N,O):O});if(typeof R==="string"&&R.length>Yn)return R.slice(0,Yn)+`\u2026[truncated ${R.length-Yn} chars]`;return R}catch{return"[unserializable]"}}function jR(n,R=0){let N=n.message;return n.cause instanceof Error&&R<10?N+" Caused by: "+jR(n.cause,R+1):N}var HR=Date.now();function Fn(n){n=n||{};let R=n.service;if(R&&typeof R==="string"){let T=IR.get(R);if(T)return T}function N(T,x){let H=Object.entries({...n,...x}).filter(([X,w])=>w!==void 0&&w!==null).map(([X,w])=>{let y=`${X}=`;if(w instanceof Error)return y+jR(w);let a=Kn(X,w);if(a!==w)return y+a;if(typeof w==="object"&&w!==null)return y+qN(w);return y+w}).join(" "),$=new Date,V=$.getTime()-HR;return HR=$.getTime(),[$.toISOString().split(".")[0],"+"+V+"ms",H,T].filter(Boolean).join(" ")+`
2
+ import{Gt as o,tt as h}from"./chunk-b5x3zghc.js";import{It as UR}from"./chunk-tk6gjy9d.js";import{Ut as tn,bu as xR}from"./chunk-pkdk0ppc.js";import{$H as Y,UE as En,XO as s,jD as dn,yF as un}from"./chunk-meaa7wrs.js";import{nP as B,qP as Ln,rP as on}from"./chunk-fa03gsff.js";var Bn={};B(Bn,{validateArchiveMetadata:()=>qn,validateArchiveEntries:()=>Xn,replaceDirectoryAtomically:()=>zn,extractZip:()=>XR,assertArchiveDestinationSafe:()=>e});import j from"path";import f from"fs/promises";function Xn(n,R){let N=j.resolve(R);for(let O of n){let T=O.trim().replaceAll("\\","/");if(!T)continue;if(T.includes("\x00")||j.posix.isAbsolute(T)||/^[a-z]:\//i.test(T))throw Error(`Unsafe archive entry: ${O}`);if(T.split("/").includes(".."))throw Error(`Unsafe archive entry: ${O}`);let x=j.resolve(N,...T.split("/"));if(x!==N&&!x.startsWith(`${N}${j.sep}`))throw Error(`Unsafe archive entry: ${O}`)}}function qn(n){for(let R of n.split(/\r?\n/))if(/^[bclps]/.test(R))throw Error("Archive contains an unsafe special entry")}async function Cn(n){let R=await f.readdir(n,{withFileTypes:!0});await Promise.all(R.map(async(N)=>{let O=j.join(n,N.name);if(N.isSymbolicLink())throw Error(`Archive contains a symbolic link: ${N.name}`);if(N.isDirectory())await Cn(O)}))}async function Sn(n){return f.lstat(n).catch((R)=>{if(R.code==="ENOENT")return;throw R})}async function e(n){let R=j.resolve(n),N=j.parse(R),O=N.root;for(let T of R.slice(N.root.length).split(j.sep).filter(Boolean)){O=j.join(O,T);let x=await Sn(O);if(!x)return;if(x.isSymbolicLink())throw Error(`Archive destination contains a symbolic link: ${O}`)}}async function zn(n,R){let N=j.resolve(R);await e(N);let O=await Sn(N);if(O&&!O.isDirectory())throw Error("Archive destination must be a directory");let T=j.join(j.dirname(N),`.qitqode-backup-${crypto.randomUUID()}`);if(O)await f.rename(N,T);try{await f.rename(n,N)}catch(x){if(O)await f.rename(T,N);throw x}if(O)await f.rm(T,{recursive:!0,force:!0})}async function XR(n,R){let N=j.resolve(n),O=j.resolve(R),T=await h(process.platform==="win32"?["tar","-tf",N]:["unzip","-Z1",N]);Xn(T.stdout.toString().split(/\r?\n/),O);let x=await h(process.platform==="win32"?["tar","-tvf",N]:["unzip","-Z","-l",N]);qn(x.stdout.toString()),await e(j.dirname(O)),await f.mkdir(j.dirname(O),{recursive:!0}),await e(j.dirname(O));let H=await f.mkdtemp(j.join(j.dirname(O),".qitqode-extract-"));try{if(process.platform==="win32"){let $=N.replace(/'/g,"''"),V=H.replace(/'/g,"''"),X=`$global:ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path '${$}' -DestinationPath '${V}' -Force`;await h(["powershell","-NoProfile","-NonInteractive","-Command",X])}else await h(["unzip","-o","-q",N,"-d",H]);await Cn(H),await zn(H,O)}finally{await f.rm(H,{recursive:!0,force:!0})}}var Pn={};B(Pn,{isValidHex:()=>Zn,hexToRgb:()=>fn,hexToAnsiBold:()=>qR});function Zn(n){if(!n)return!1;return/^#[0-9a-fA-F]{6}$/.test(n)}function fn(n){let R=parseInt(n.slice(1,3),16),N=parseInt(n.slice(3,5),16),O=parseInt(n.slice(5,7),16);return{r:R,g:N,b:O}}function qR(n){if(!Zn(n))return;let{r:R,g:N,b:O}=fn(n);return`\x1B[38;2;${R};${N};${O}m\x1B[1m`}var cn={};B(cn,{awaitDeferred:()=>CR});function CR(n,R){return Y.ensuring(En.await(n),Y.sync(R))}import c from"os";var C={};B(C,{Path:()=>Z,Global:()=>C});import L from"fs/promises";import xn from"path";import DR from"os";import nn from"path";import zR from"os";import{randomBytes as BR,randomUUID as ZR}from"crypto";import{mkdir as Rn,readFile as fR,rm as u,stat as PR,utimes as ER,writeFile as An}from"fs/promises";import{createHash as SR}from"crypto";var Un;((AN)=>{function n(R){return SR("sha1").update(R).digest("hex")}AN.fast=n})(Un||={});var Nn;((bn)=>{let n;function R(I){n=I}bn.setGlobal=R;let N=()=>{if(!n)throw Error("Flock global not set");return nn.join(n.state,"locks")},O={staleMs:60000,timeoutMs:300000,baseDelayMs:100,maxDelayMs:2000};function T(I){if(typeof I!=="object"||I===null||!("code"in I))return;let J=I.code;if(typeof J!=="string")return;return J}function x(I,J){return new Promise((U,W)=>{if(J?.aborted){W(J.reason??Error("Aborted"));return}let _,K=()=>{J?.removeEventListener("abort",G),U()},G=()=>{if(_)clearTimeout(_);J?.removeEventListener("abort",G),W(J?.reason??Error("Aborted"))};if(J?.addEventListener("abort",G,{once:!0}),_=setTimeout(K,I),J?.aborted)G()})}function H(I){let J=Math.floor(I*0.3),U=Math.floor(Math.random()*(2*J+1))-J;return Math.max(0,I+U)}function $(){return performance.now()}function V(){return performance.timeOrigin+$()}async function X(I){try{return await PR(I)}catch(J){let U=T(J);if(U==="ENOENT"||U==="ENOTDIR")return;throw J}}async function w(I,J,U,W){let _=V(),K=await X(J);if(K)return _-K.mtimeMs>W;let G=await X(U);if(G)return _-G.mtimeMs>W;let z=await X(I);if(!z)return!1;return _-z.mtimeMs>W}async function y(I,J){let U=ZR?.()??BR(16).toString("hex"),W=nn.join(I,"meta.json"),_=nn.join(I,"heartbeat");try{await Rn(I,{mode:448})}catch(g){if(T(g)!=="EEXIST")throw g;if(!await w(I,_,W,J.staleMs))return{acquired:!1};let Q=I+".breaker";try{await Rn(Q,{mode:448})}catch(F){let d=T(F);if(d==="EEXIST"){let Qn=await X(Q);if(Qn&&V()-Qn.mtimeMs>J.staleMs)await u(Q,{recursive:!0,force:!0}).catch(()=>{return});return{acquired:!1}}if(d==="ENOENT"||d==="ENOTDIR")return{acquired:!1};throw F}try{if(!await w(I,_,W,J.staleMs))return{acquired:!1};await u(I,{recursive:!0,force:!0});try{await Rn(I,{mode:448})}catch(F){let d=T(F);if(d==="EEXIST"||d==="ENOTEMPTY")return{acquired:!1};throw F}}finally{await u(Q,{recursive:!0,force:!0}).catch(()=>{return})}}let K={token:U,pid:process.pid,hostname:zR.hostname(),createdAt:new Date().toISOString()};await An(_,"",{flag:"wx"}).catch(async()=>{throw await u(I,{recursive:!0,force:!0}),Error("Lock acquired but heartbeat already existed (possible compromise).")}),await An(W,JSON.stringify(K,null,2),{flag:"wx"}).catch(async()=>{throw await u(I,{recursive:!0,force:!0}),Error("Lock acquired but meta.json already existed (possible compromise).")});let G;return{acquired:!0,startHeartbeat:(g=Math.max(100,Math.floor(J.staleMs/3)))=>{if(G)return;G=setInterval(()=>{let Q=new Date;ER(_,Q,Q).catch(()=>{return})},g),G.unref?.()},release:async()=>{if(G)clearInterval(G),G=void 0;if((await fR(W,"utf8").then((Q)=>{let F=JSON.parse(Q);if(!F||typeof F!=="object")return{};return{token:"token"in F&&typeof F.token==="string"?F.token:void 0}}).catch((Q)=>{let F=T(Q);if(F==="ENOENT"||F==="ENOTDIR")throw Error("Refusing to release: lock is compromised (metadata missing).");if(Q instanceof SyntaxError)throw Error("Refusing to release: lock is compromised (metadata invalid).");throw Q})).token!==U)throw Error("Refusing to release: lock token mismatch (not the owner).");await u(I,{recursive:!0,force:!0})}}}async function a(I,J,U){let W=$()+U.timeoutMs,_=0,K=0,G=U.baseDelayMs;while(!0){J.signal?.throwIfAborted();let z=await y(I,U);if(z.acquired)return z;if($()>W)throw Error(`Timed out waiting for lock: ${J.key}`);_+=1;let m=H(G);await J.onWait?.({key:J.key,attempt:_,delay:m,waited:K}),await x(m,J.signal),K+=m,G=Math.min(U.maxDelayMs,Math.floor(G*1.7))}}async function FR(I,J={}){J.signal?.throwIfAborted();let U={staleMs:J.staleMs??O.staleMs,timeoutMs:J.timeoutMs??O.timeoutMs,baseDelayMs:J.baseDelayMs??O.baseDelayMs,maxDelayMs:J.maxDelayMs??O.maxDelayMs},W=J.dir??N();await Rn(W,{recursive:!0});let _=nn.join(W,Un.fast(I)+".lock"),K=await a(_,{key:I,onWait:J.onWait,signal:J.signal},U);K.startHeartbeat();let G,z=()=>{return G??=K.release()};return{release:z,[Symbol.asyncDispose](){return z()}}}bn.acquire=FR;async function BN(I,J,U={}){let _=[];try{const W=Ln(_,await FR(I,U),1);U.signal?.throwIfAborted();return await J()}catch(K){var G=K,z=1}finally{var m=on(_,G,z);m&&await m}}bn.withLock=BN,bn.effect=Y.fn("Flock.effect")(function*(I,J={}){return yield*Y.acquireRelease(Y.promise((U)=>Nn.acquire(I,{...J,signal:U})).pipe(Y.withSpan("Flock.acquire",{attributes:{key:I}})),(U)=>Y.promise(()=>U.release()).pipe(Y.withSpan("Flock.release"))).pipe(Y.asVoid)})})(Nn||={});import q from"path";import cR from"os";import Tn from"path";var E=cR.homedir(),{env:b}=process,k=b.XDG_DATA_HOME||(E?Tn.join(E,".local","share"):void 0),On=b.XDG_CONFIG_HOME||(E?Tn.join(E,".config"):void 0),Dn=b.XDG_STATE_HOME||(E?Tn.join(E,".local","state"):void 0),yn=b.XDG_CACHE_HOME||(E?Tn.join(E,".cache"):void 0),kN=b.XDG_RUNTIME_DIR||void 0,AR=(b.XDG_DATA_DIRS||"/usr/local/share/:/usr/share/").split(":");if(k)AR.unshift(k);var bR=(b.XDG_CONFIG_DIRS||"/etc/xdg").split(":");if(On)bR.unshift(On);import LR from"os";var p="qitqode";function Gn(n=process.env){let R=n.QITQODE_HOME;if(R){if(!q.isAbsolute(R))throw Error(`QITQODE_HOME must be an absolute path, got: ${JSON.stringify(R)}`);return{mode:"qitqode_home",root:R,data:q.join(R,"data"),cache:q.join(R,"cache"),config:q.join(R,"config"),state:q.join(R,"state")}}return{mode:"xdg",data:q.join(k,p),cache:q.join(yn,p),config:q.join(On,p),state:q.join(Dn,p)}}function _n(n=process.env){let R=n.QITQODE_LOG_DIR;if(R){if(!q.isAbsolute(R))throw Error(`QITQODE_LOG_DIR must be an absolute path, got: ${JSON.stringify(R)}`);return R}return q.join(k,p,"log")}var oR;((mn)=>{class n extends dn.Service()("@qitqode/Global"){}mn.Service=n,mn.layer=un.effect(n,Y.gen(function*(){let N=process.env.HOME||process.env.USERPROFILE||LR.homedir(),{data:O,cache:T,config:x,state:H}=yield*Y.sync(()=>Gn()),$=q.join(T,"bin"),V=yield*Y.sync(()=>_n());return n.of({home:N,data:O,cache:T,config:x,state:H,bin:$,log:V})}))})(oR||={});var{data:yR,cache:vn,config:mR,state:hn}=Gn(),Z={get home(){return process.env.HOME||process.env.USERPROFILE||DR.homedir()},data:yR,bin:xn.join(vn,"bin"),log:_n(),cache:vn,config:mR,state:hn};Nn.setGlobal({state:hn});await Promise.all([L.mkdir(Z.data,{recursive:!0}),L.mkdir(Z.config,{recursive:!0}),L.mkdir(Z.state,{recursive:!0}),L.mkdir(Z.log,{recursive:!0}),L.mkdir(Z.bin,{recursive:!0})]);var gn="21",dR=await o.readText(xn.join(Z.cache,"version")).catch(()=>"0");if(dR!==gn){try{let n=await L.readdir(Z.cache);await Promise.all(n.map((R)=>L.rm(xn.join(Z.cache,R),{recursive:!0,force:!0})))}catch{}await o.write(xn.join(Z.cache,"version"),gn)}var kn="0.1.21",pn="latest",TO=!1;import uR from"path";var D;async function rn(){if(D)return D;let n=uR.join(C.Path.data,"installation_id"),R=await o.readText(n).catch(()=>{return});if(R&&R.trim())return D=R.trim(),D;return D=crypto.randomUUID(),await o.write(n,D),D}var sn="QITQODE_RUN_ID",ln="QITQODE_PROCESS_ROLE";function vR(){return process.env.QITQODE_RUN_ID??=crypto.randomUUID()}function gR(n){return process.env.QITQODE_PROCESS_ROLE??=n}function HO(n){return{runID:vR(),processRole:gR(n)}}function UO(n){let R=Object.fromEntries(Object.entries(process.env).filter((N)=>N[1]!==void 0));return n?Object.assign(R,n):R}function hR(){if(process.env.USER)return process.env.USER;if(process.env.USERNAME)return process.env.USERNAME;return c.userInfo().username}function kR(){return Intl.DateTimeFormat().resolvedOptions().locale}function pR(){return Intl.DateTimeFormat().resolvedOptions().timeZone}async function rR(){let n=c.cpus();return{os:{platform:c.platform(),arch:c.arch(),release:c.release(),hostname:c.hostname()},cpu:{model:n[0]?.model??"unknown",count:n.length},memory:{total_bytes:c.totalmem()},user:{username:hR(),homedir:c.homedir()},runtime:{bun_version:Bun.version,node_version:process.versions.node,pid:process.pid,timezone:pR(),locale:kR()},paths:{cwd:process.cwd(),data:C.Path.data,config:C.Path.config},qitqode:{version:kn,channel:pn,installation_id:await rn(),run_id:sn,process_role:ln}}}var an={};B(an,{toString:()=>lR,parse:()=>tR,match:()=>sR,fromParsedKey:()=>iR});function sR(n,R){if(!n)return!1;let N={...n,super:n.super??!1},O={...R,super:R.super??!1};return tn(N,O)}function iR(n,R=!1){return{name:n.name===" "?"space":n.name,ctrl:n.ctrl,meta:n.meta,shift:n.shift,super:n.super??!1,leader:R}}function lR(n){if(!n)return"";let R=[];if(n.ctrl)R.push("ctrl");if(n.meta)R.push("alt");if(n.super)R.push("super");if(n.shift)R.push("shift");if(n.name)if(n.name==="delete")R.push("del");else R.push(n.name);let N=R.join("+");if(n.leader)N=N?`<leader> ${N}`:"<leader>";return N}function tR(n){if(n==="none")return[];return n.split(",").map((R)=>{let O=R.replace(/<leader>/g,"leader+").toLowerCase().split("+"),T={ctrl:!1,meta:!1,shift:!1,leader:!1,name:""};for(let x of O)switch(x){case"ctrl":T.ctrl=!0;break;case"alt":case"meta":case"option":T.meta=!0;break;case"super":T.super=!0;break;case"shift":T.shift=!0;break;case"leader":T.leader=!0;break;case"esc":T.name="escape";break;default:T.name=x;break}return T})}var en={};B(en,{create:()=>eR,NotFound:()=>Vn});import{AsyncLocalStorage as aR}from"async_hooks";class Vn extends Error{name;constructor(n){super(`No context found for ${n}`);this.name=n}}function eR(n){let R=new aR;return{use(){let N=R.getStore();if(!N)throw new Vn(n);return N},provide(N,O){return R.run(N,O)}}}var RR={};B(RR,{truncateMiddle:()=>xN,truncate:()=>TN,todayTimeOrDateTime:()=>RN,titlecase:()=>nN,time:()=>jn,pluralize:()=>JN,number:()=>NN,duration:()=>ON,datetime:()=>nR});function nN(n){return n.replace(/\b\w/g,(R)=>R.toUpperCase())}function jn(n){return new Date(n).toLocaleTimeString(void 0,{timeStyle:"short"})}function nR(n){let R=new Date(n),N=jn(n),O=R.toLocaleDateString();return`${N} \xB7 ${O}`}function RN(n){let R=new Date(n),N=new Date;if(R.getFullYear()===N.getFullYear()&&R.getMonth()===N.getMonth()&&R.getDate()===N.getDate())return jn(n);else return nR(n)}function NN(n){if(n>=1e6)return(n/1e6).toFixed(1)+"M";else if(n>=1000)return(n/1000).toFixed(1)+"K";return n.toString()}function ON(n){if(n<1000)return`${n}ms`;if(n<60000)return`${(n/1000).toFixed(1)}s`;if(n<3600000){let O=Math.floor(n/60000),T=Math.floor(n%60000/1000);return`${O}m ${T}s`}if(n<86400000){let O=Math.floor(n/3600000),T=Math.floor(n%3600000/60000);return`${O}h ${T}m`}let R=Math.floor(n%86400000/3600000);return`${Math.floor(n/86400000)}d ${R}h`}function TN(n,R){if(R<=0)return"";if(n.length<=R)return n;return n.slice(0,R-1)+"\u2026"}function xN(n,R=35){if(R<=0)return"";if(n.length<=R)return n;let N="\u2026",O=Math.ceil((R-N.length)/2),T=Math.floor((R-N.length)/2);return n.slice(0,O)+N+(T>0?n.slice(-T):"")}function JN(n,R,N){return(n===1?R:N).replace("{}",n.toString())}var TR={};B(TR,{write:()=>$N,read:()=>IN});var r=new Map;function NR(n){if(!r.has(n))r.set(n,{readers:0,writer:!1,waitingReaders:[],waitingWriters:[]});return r.get(n)}function MN(n){let R=r.get(n);if(!R||R.writer||R.readers>0)return;if(R.waitingWriters.length>0){R.waitingWriters.shift()();return}while(R.waitingReaders.length>0)R.waitingReaders.shift()();if(R.readers===0&&!R.writer&&R.waitingReaders.length===0&&R.waitingWriters.length===0)r.delete(n)}function OR(n){return new Promise((R)=>{let N=()=>{n.acquire();let O=!1;R({[Symbol.dispose]:()=>{if(O)return;O=!0,n.release(),MN(n.key)}})};if(n.available())N();else n.waiting.push(N)})}async function IN(n){let R=NR(n);return OR({key:n,available:()=>!R.writer&&R.waitingWriters.length===0,acquire:()=>R.readers++,release:()=>R.readers--,waiting:R.waitingReaders})}async function $N(n){let R=NR(n);return OR({key:n,available:()=>!R.writer&&R.readers===0,acquire:()=>{R.writer=!0},release:()=>{R.writer=!1},waiting:R.waitingWriters})}var WR={};B(WR,{redactValue:()=>Kn,init:()=>KN,flush:()=>FN,file:()=>wN,enabled:()=>WN,create:()=>Fn,Level:()=>GN,Default:()=>YN});import $n from"path";import A from"fs/promises";import{createWriteStream as GR}from"fs";function M(n){let R=process.env[n]?.toLowerCase();return R==="true"||R==="1"}function Wn(n){let R=process.env[n]?.toLowerCase();return R==="false"||R==="0"}function P(n){let R=process.env[n];if(!R)return;let N=Number(R);return Number.isInteger(N)&&N>0?N:void 0}var v=M("QITQODE_EXPERIMENTAL"),Jn=M("QITQODE_DISABLE_CLAUDE_CODE"),Mn=M("QITQODE_DISABLE_EXTERNAL_SKILLS"),HN=Mn||Jn||M("QITQODE_DISABLE_CLAUDE_CODE_SKILLS"),UN=process.env.QITQODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT,JR={OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_HEADERS:process.env.OTEL_EXPORTER_OTLP_HEADERS,QITQODE_AUTO_SHARE:M("QITQODE_AUTO_SHARE"),QITQODE_AUTO_HEAP_SNAPSHOT:M("QITQODE_AUTO_HEAP_SNAPSHOT"),QITQODE_GIT_BASH_PATH:process.env.QITQODE_GIT_BASH_PATH,QITQODE_CONFIG:process.env.QITQODE_CONFIG,QITQODE_CONFIG_CONTENT:process.env.QITQODE_CONFIG_CONTENT,get QITQODE_BACKEND_URL(){return process.env.QITQODE_BACKEND_URL??xR},QITQODE_DISABLE_AUTOUPDATE:M("QITQODE_DISABLE_AUTOUPDATE"),QITQODE_DISABLE_LOG_ROTATION:M("QITQODE_DISABLE_LOG_ROTATION"),QITQODE_ALWAYS_NOTIFY_UPDATE:M("QITQODE_ALWAYS_NOTIFY_UPDATE"),QITQODE_DISABLE_PRUNE:M("QITQODE_DISABLE_PRUNE"),QITQODE_DISABLE_TERMINAL_TITLE:M("QITQODE_DISABLE_TERMINAL_TITLE"),QITQODE_SHOW_TTFD:M("QITQODE_SHOW_TTFD"),QITQODE_PERMISSION:process.env.QITQODE_PERMISSION,QITQODE_DISABLE_DEFAULT_PLUGINS:M("QITQODE_DISABLE_DEFAULT_PLUGINS"),QITQODE_DISABLE_LSP_DOWNLOAD:!0,QITQODE_ENABLE_EXPERIMENTAL_MODELS:M("QITQODE_ENABLE_EXPERIMENTAL_MODELS"),QITQODE_DISABLE_AUTOCOMPACT:M("QITQODE_DISABLE_AUTOCOMPACT"),QITQODE_DISABLE_MODELS_FETCH:M("QITQODE_DISABLE_MODELS_FETCH"),QITQODE_DISABLE_MOUSE:M("QITQODE_DISABLE_MOUSE"),QITQODE_OUTPUT_LENGTH_CONTINUATION_LIMIT:P("QITQODE_OUTPUT_LENGTH_CONTINUATION_LIMIT")??3,QITQODE_INVALID_OUTPUT_CONTINUATION_LIMIT:P("QITQODE_INVALID_OUTPUT_CONTINUATION_LIMIT")??2,QITQODE_TEXT_NGRAM_N:P("QITQODE_TEXT_NGRAM_N")??6,QITQODE_TEXT_REPEAT_THRESHOLD:P("QITQODE_TEXT_REPEAT_THRESHOLD")??3,QITQODE_TEXT_WINDOW_TOKENS:P("QITQODE_TEXT_WINDOW_TOKENS")??500,QITQODE_MAX_PROMPT_IMAGES:P("QITQODE_MAX_PROMPT_IMAGES")??4,QITQODE_MAX_PROMPT_IMAGE_SIZE:P("QITQODE_MAX_PROMPT_IMAGE_SIZE")??393216,QITQODE_DISABLE_PROVIDER_ENV:M("QITQODE_DISABLE_PROVIDER_ENV"),QITQODE_DISABLE_CLAUDE_CODE:Jn,get QITQODE_DISABLE_CLAUDE_CODE_MCP(){return Jn||M("QITQODE_DISABLE_CLAUDE_CODE_MCP")},QITQODE_DISABLE_CLAUDE_CODE_PROMPT:Jn||M("QITQODE_DISABLE_CLAUDE_CODE_PROMPT"),QITQODE_DISABLE_CLAUDE_CODE_COMMANDS:M("QITQODE_DISABLE_CLAUDE_CODE_COMMANDS"),QITQODE_DISABLE_CLAUDE_CODE_SKILLS:HN,QITQODE_DISABLE_EXTERNAL_SKILLS:Mn,QITQODE_DISABLE_CODEX_SKILLS:Mn||M("QITQODE_DISABLE_CODEX_SKILLS"),QITQODE_DISABLE_OPENCODE_SKILLS:Mn||M("QITQODE_DISABLE_OPENCODE_SKILLS"),QITQODE_FAKE_VCS:process.env.QITQODE_FAKE_VCS,QITQODE_DISABLE_GIT:M("QITQODE_DISABLE_GIT"),get QITQODE_SERVER_PASSWORD(){return process.env.QITQODE_SERVER_PASSWORD},get QITQODE_SERVER_USERNAME(){return process.env.QITQODE_SERVER_USERNAME},QITQODE_ENABLE_QUESTION_TOOL:M("QITQODE_ENABLE_QUESTION_TOOL"),QITQODE_EXPERIMENTAL:v,QITQODE_EXPERIMENTAL_FILEWATCHER:s.boolean("QITQODE_EXPERIMENTAL_FILEWATCHER").pipe(s.withDefault(!1)),QITQODE_EXPERIMENTAL_DISABLE_FILEWATCHER:s.boolean("QITQODE_EXPERIMENTAL_DISABLE_FILEWATCHER").pipe(s.withDefault(!1)),QITQODE_EXPERIMENTAL_ICON_DISCOVERY:v||M("QITQODE_EXPERIMENTAL_ICON_DISCOVERY"),QITQODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:UN===void 0?process.platform==="win32":M("QITQODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"),QITQODE_ENABLE_EXA:M("QITQODE_ENABLE_EXA")||v||M("QITQODE_EXPERIMENTAL_EXA"),QITQODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS:P("QITQODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS"),QITQODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX:P("QITQODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"),QITQODE_EXPERIMENTAL_OXFMT:v||M("QITQODE_EXPERIMENTAL_OXFMT"),QITQODE_EXPERIMENTAL_LSP_TY:M("QITQODE_EXPERIMENTAL_LSP_TY"),QITQODE_EXPERIMENTAL_LSP_TOOL:v||M("QITQODE_EXPERIMENTAL_LSP_TOOL"),QITQODE_EXPERIMENTAL_WORKFLOW_TOOL:!Wn("QITQODE_EXPERIMENTAL_WORKFLOW_TOOL"),QITQODE_EXPERIMENTAL_MARKDOWN:!Wn("QITQODE_EXPERIMENTAL_MARKDOWN"),QITQODE_MODELS_URL:process.env.QITQODE_MODELS_URL,QITQODE_MODELS_PATH:process.env.QITQODE_MODELS_PATH,QITQODE_DB:process.env.QITQODE_DB,QITQODE_DISABLE_CHANNEL_DB:!Wn("QITQODE_DISABLE_CHANNEL_DB"),QITQODE_SKIP_MIGRATIONS:M("QITQODE_SKIP_MIGRATIONS"),QITQODE_STRICT_CONFIG_DEPS:M("QITQODE_STRICT_CONFIG_DEPS"),QITQODE_WORKSPACE_ID:process.env.QITQODE_WORKSPACE_ID,QITQODE_EXPERIMENTAL_HTTPAPI:M("QITQODE_EXPERIMENTAL_HTTPAPI"),QITQODE_EXPERIMENTAL_WORKSPACES:v||M("QITQODE_EXPERIMENTAL_WORKSPACES"),get QITQODE_DISABLE_COMPOSE_SKILLS(){return M("QITQODE_DISABLE_COMPOSE_SKILLS")},get QITQODE_DISABLE_BUILTIN_SKILLS(){return M("QITQODE_DISABLE_BUILTIN_SKILLS")},get QITQODE_DISABLE_PROJECT_CONFIG(){return M("QITQODE_DISABLE_PROJECT_CONFIG")},get QITQODE_TUI_CONFIG(){return process.env.QITQODE_TUI_CONFIG},get QITQODE_CONFIG_DIR(){return process.env.QITQODE_CONFIG_DIR},get QITQODE_HOME(){return process.env.QITQODE_HOME},get QITQODE_PURE(){return M("QITQODE_PURE")},get QITQODE_PLUGIN_META_FILE(){return process.env.QITQODE_PLUGIN_META_FILE},get QITQODE_CLIENT(){return process.env.QITQODE_CLIENT??"cli"}};var GN=UR.enum(["DEBUG","INFO","WARN","ERROR"]).meta({ref:"LogLevel",description:"Log level"}),MR={DEBUG:0,INFO:1,WARN:2,ERROR:3},_N=10,VN=52428800,jN=209715200,_R="INFO";function i(n){return MR[n]>=MR[_R]}function WN(n){return i(n)}var IR=new Map,YN=Fn({service:"default"}),S="";function wN(){return S}var t,In=0,$R=!0,l=(n)=>{return process.stderr.write(n),n.length};function Hn(){return new Date().toISOString().split(".")[0].replace(/:/g,"")}async function KN(n){if(n.level)_R=n.level;if($R=n.rotate??!JR.QITQODE_DISABLE_LOG_ROTATION,VR(C.Path.log),n.print)return;if(S=$n.join(C.Path.log,n.dev?"dev.log":Hn()+".log"),n.dev){let R=await A.stat(S).catch(()=>null);if(R&&R.size>0)await A.rename(S,`${S}.${Hn()}`).catch(()=>{})}else await A.truncate(S).catch(()=>{});t=GR(S,{flags:"a"}),In=0,l=(R)=>{return wn=wn.then(async()=>{if(In+=Buffer.byteLength(R),$R&&In>=VN)In=Buffer.byteLength(R),await QN();await new Promise((N)=>{if(!t){N();return}t.write(R,()=>N())})}).catch(()=>{}),R.length}}var wn=Promise.resolve();async function FN(){await wn}async function QN(){let n=t,R=`${S}.${Hn()}`;for(let N=2;await A.stat(R).then(()=>!0,()=>!1);N++)R=`${S}.${Hn()}.${N}`;if(await A.rename(S,R).catch(()=>{}),t=GR(S,{flags:"a"}),n)n.end();VR(C.Path.log)}async function VR(n){let R=await A.readdir(n).catch(()=>[]),O=(await Promise.all(R.filter(($)=>$.includes(".log")&&$n.join(n,$)!==S).map(async($)=>{let V=await A.stat($n.join(n,$)).catch(()=>null);return V?.isFile()?{name:$,size:V.size}:null}))).flatMap(($)=>$?[$]:[]).sort(($,V)=>$.name<V.name?-1:$.name>V.name?1:0),T=O.reduce(($,V)=>$+V.size,0),x=O.length,H=O.filter(($)=>{if(x<=_N&&T<=jN)return!1;return T-=$.size,x-=1,!0});await Promise.all(H.map(($)=>A.unlink($n.join(n,$.name)).catch(()=>{})))}var XN=/token|secret|password|passwd|credential|api[_-]?key|authorization|cookie|set-cookie/i;function Kn(n,R){if(XN.test(n)&&R!==void 0&&R!==null)return"[REDACTED]";return R}var Yn=10240;function qN(n){try{let R=JSON.stringify(n,function(N,O){return N?Kn(N,O):O});if(typeof R==="string"&&R.length>Yn)return R.slice(0,Yn)+`\u2026[truncated ${R.length-Yn} chars]`;return R}catch{return"[unserializable]"}}function jR(n,R=0){let N=n.message;return n.cause instanceof Error&&R<10?N+" Caused by: "+jR(n.cause,R+1):N}var HR=Date.now();function Fn(n){n=n||{};let R=n.service;if(R&&typeof R==="string"){let T=IR.get(R);if(T)return T}function N(T,x){let H=Object.entries({...n,...x}).filter(([X,w])=>w!==void 0&&w!==null).map(([X,w])=>{let y=`${X}=`;if(w instanceof Error)return y+jR(w);let a=Kn(X,w);if(a!==w)return y+a;if(typeof w==="object"&&w!==null)return y+qN(w);return y+w}).join(" "),$=new Date,V=$.getTime()-HR;return HR=$.getTime(),[$.toISOString().split(".")[0],"+"+V+"ms",H,T].filter(Boolean).join(" ")+`
3
3
  `}let O={debug(T,x){if(i("DEBUG"))l("DEBUG "+N(T,x))},info(T,x){if(i("INFO"))l("INFO "+N(T,x))},error(T,x){if(i("ERROR"))l("ERROR "+N(T,x))},warn(T,x){if(i("WARN"))l("WARN "+N(T,x))},tag(T,x){if(n)n[T]=x;return O},clone(){return Fn({...n})},time(T,x){let H=Date.now();O.info(T,{status:"started",...x});function $(){O.info(T,{status:"completed",duration:Date.now()-H,...x})}return{stop:$,[Symbol.dispose](){$()}}}};if(R&&typeof R==="string")IR.set(R,O);return O}var YR={};B(YR,{listen:()=>CN,emit:()=>SN,client:()=>zN});function CN(n){onmessage=async(R)=>{let N=JSON.parse(R.data);if(N.type==="rpc.request")try{let O=await n[N.method](N.input);postMessage(JSON.stringify({type:"rpc.result",result:O,id:N.id}))}catch(O){postMessage(JSON.stringify({type:"rpc.result",error:O instanceof Error?O.message:String(O),id:N.id}))}}}function SN(n,R){postMessage(JSON.stringify({type:"rpc.event",event:n,data:R}))}function zN(n){let R=new Map,N=new Map,O=0;return n.onmessage=async(T)=>{let x=JSON.parse(T.data);if(x.type==="rpc.result"){let H=R.get(x.id);if(H)if(R.delete(x.id),"error"in x)H.reject(Error(typeof x.error==="string"?x.error:"RPC call failed"));else H.resolve(x.result)}if(x.type==="rpc.event"){let H=N.get(x.event);if(H)for(let $ of H)$(x.data)}},{call(T,x){let H=O++;return new Promise(($,V)=>{R.set(H,{resolve:$,reject:V});try{n.postMessage(JSON.stringify({type:"rpc.request",method:T,input:x,id:H}))}catch(X){R.delete(H),V(X)}})},on(T,x){let H=N.get(T);if(!H)H=new Set,N.set(T,H);return H.add(x),()=>{H.delete(x)}}}}var KR={};B(KR,{estimate:()=>wR});function wR(n){return Math.max(0,Math.round((n||"").length/4))}export{kn as Gs,pn as Hs,TO as Is,sn as Js,ln as Ks,vR as Ls,HO as Ms,UO as Ns,Bn as Os,Pn as Ps,cn as Qs,rn as Rs,rR as Ss,an as Ts,en as Us,RR as Vs,TR as Ws,zN as Xs,YR as Ys,KR as Zs,Un as _s,Nn as $s,oR as at,Z as bt,C as ct,JR as dt,GN as et,WN as ft,YN as gt,wN as ht,KN as it,FN as jt,Kn as kt,Fn as lt,WR as mt};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{m as a}from"./chunk-gp6nvjb8.js";import"./chunk-767vf2ha.js";import"./chunk-sj8py6vk.js";import"./chunk-3w60y2x5.js";import"./chunk-21t254fq.js";import"./chunk-jj7wrfty.js";import"./chunk-43xq4p51.js";import"./chunk-3degq6rv.js";import"./chunk-hvqgvsa5.js";import"./chunk-fd1vbz1f.js";import"./chunk-7b69jj5g.js";import"./chunk-x1dfc7qd.js";import"./chunk-en7nxqvn.js";import"./chunk-v9sfzkg5.js";import"./chunk-djcsvcby.js";import"./chunk-ntmn6epc.js";import"./chunk-jwgqpntf.js";import"./chunk-q2zk0z41.js";import"./chunk-w9mdrb90.js";import"./chunk-qxtz0tfd.js";import"./chunk-tz8qhbk9.js";import"./chunk-651fyxmn.js";import"./chunk-0czxqcg7.js";import"./chunk-6ba9fc92.js";import"./chunk-7skp0dmg.js";import"./chunk-c4x99ayd.js";import"./chunk-6dznrhs4.js";import"./chunk-8fn883z8.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-th5z0zx7.js";import"./chunk-jfy6bfvv.js";import"./chunk-v0jnnpsz.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-yt6cfsdh.js";import"./chunk-yja3y138.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import"./chunk-esjs9s9g.js";import"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-gvj8qg7x.js";import"./chunk-fa03gsff.js";export{a as tui};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Bd as y}from"./chunk-wmqcz5rb.js";import{Od as L}from"./chunk-wmmck56g.js";import{Ug as N,qh as w}from"./chunk-1qw3yh13.js";import"./chunk-ckhhm2m8.js";import"./chunk-tp7sfreh.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import{Xk as q,el as v}from"./chunk-q39h31te.js";import"./chunk-0x0a51w3.js";import{Fl as k,Pl as O,xl as V,yl as A,zl as E}from"./chunk-7myavy3p.js";import"./chunk-fegrrsfj.js";import"./chunk-c4x99ayd.js";import"./chunk-w0fg8n1f.js";import"./chunk-0pbpzty2.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-jc0wbpjq.js";import"./chunk-jfy6bfvv.js";import"./chunk-aej69zjj.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-k5vwx1nv.js";import"./chunk-ej3gmaba.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import"./chunk-v7yvnnmr.js";import{Gt as P}from"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import"./chunk-fa03gsff.js";import{EOL as X}from"os";function U(C){let G=C.match(/^https?:\/\/[^/]+\/share\/([a-zA-Z0-9_-]+)$/);return G?G[1]:null}function M(C,G){try{return new URL(C).origin===new URL(G).origin}catch{return!1}}function S(C){let G=C.find((z)=>z.type==="session");if(!G)return null;let Z=new Map,Q=new Map;for(let z of C)if(z.type==="message")Z.set(z.data.id,z.data);else if(z.type==="part"){if(!Q.has(z.data.messageID))Q.set(z.data.messageID,[]);Q.get(z.data.messageID).push(z.data)}if(Z.size===0)return null;return{info:G.data,messages:Array.from(Z.values()).map((z)=>({info:z,parts:Q.get(z.id)??[]}))}}var m=L({command:"import <file>",describe:"import session data from JSON file or URL",builder:(C)=>{return C.positional("file",{describe:"path to JSON file or share URL",type:"string",demandOption:!0})},handler:async(C)=>{await y(process.cwd(),async()=>{let G;if(C.file.startsWith("http://")||C.file.startsWith("https://")){let J=U(C.file);if(!J){let Y=await w.runPromise(N.Service.use((R)=>R.url()));process.stdout.write(`Invalid URL format. Expected: ${Y}/share/<slug>`),process.stdout.write(X);return}let _=new URL(C.file).origin,$=await w.runPromise(N.Service.use((Y)=>Y.request())),j=M(C.file,$.baseUrl)?$.headers:{},W=$.api.data(J),K=await fetch(`${_}${W}`,{headers:j});if(!K.ok&&W!==`/api/share/${J}/data`)K=await fetch(`${_}/api/share/${J}/data`,{headers:j});if(!K.ok){process.stdout.write(`Failed to fetch share data: ${K.statusText}`),process.stdout.write(X);return}let H=await K.json(),B=S(H);if(!B){process.stdout.write(`Share not found or empty: ${J}`),process.stdout.write(X);return}G=B}else if(G=await P.readJson(C.file).catch(()=>{return}),!G){process.stdout.write(`File not found: ${C.file}`),process.stdout.write(X);return}if(!G){process.stdout.write("Failed to read session data"),process.stdout.write(X);return}let Q=v.Info.parse({...G.info,projectID:O.project.id}),z=v.toRow(Q);k.use((J)=>J.insert(V).values(z).onConflictDoUpdate({target:V.id,set:{project_id:z.project_id}}).run());for(let J of G.messages){let F=q.Info.parse(J.info),{id:_,sessionID:$,...j}=F;k.use((W)=>W.insert(A).values({id:_,session_id:z.id,time_created:F.time?.created??Date.now(),data:j}).onConflictDoNothing().run());for(let W of J.parts){let K=q.Part.parse(W),{id:H,sessionID:B,messageID:Y,...R}=K;k.use((T)=>T.insert(E).values({id:H,message_id:Y,session_id:z.id,data:R}).onConflictDoNothing().run())}}process.stdout.write(`Imported session: ${G.info.id}`),process.stdout.write(X)})}});export{S as transformShareData,M as shouldAttachShareAuthHeaders,U as parseShareUrl,m as ImportCommand};
2
+ import{Bd as y}from"./chunk-rkb592nb.js";import{Od as L}from"./chunk-wmmck56g.js";import{Ug as N,qh as w}from"./chunk-88ckmmdr.js";import"./chunk-w9mdrb90.js";import"./chunk-qxtz0tfd.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import{Xk as q,el as v}from"./chunk-651fyxmn.js";import"./chunk-0czxqcg7.js";import{Fl as k,Pl as O,xl as V,yl as A,zl as E}from"./chunk-6ba9fc92.js";import"./chunk-7skp0dmg.js";import"./chunk-c4x99ayd.js";import"./chunk-6dznrhs4.js";import"./chunk-8fn883z8.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-th5z0zx7.js";import"./chunk-jfy6bfvv.js";import"./chunk-v0jnnpsz.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-yt6cfsdh.js";import"./chunk-yja3y138.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import"./chunk-esjs9s9g.js";import{Gt as P}from"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import"./chunk-fa03gsff.js";import{EOL as X}from"os";function U(C){let G=C.match(/^https?:\/\/[^/]+\/share\/([a-zA-Z0-9_-]+)$/);return G?G[1]:null}function M(C,G){try{return new URL(C).origin===new URL(G).origin}catch{return!1}}function S(C){let G=C.find((z)=>z.type==="session");if(!G)return null;let Z=new Map,Q=new Map;for(let z of C)if(z.type==="message")Z.set(z.data.id,z.data);else if(z.type==="part"){if(!Q.has(z.data.messageID))Q.set(z.data.messageID,[]);Q.get(z.data.messageID).push(z.data)}if(Z.size===0)return null;return{info:G.data,messages:Array.from(Z.values()).map((z)=>({info:z,parts:Q.get(z.id)??[]}))}}var m=L({command:"import <file>",describe:"import session data from JSON file or URL",builder:(C)=>{return C.positional("file",{describe:"path to JSON file or share URL",type:"string",demandOption:!0})},handler:async(C)=>{await y(process.cwd(),async()=>{let G;if(C.file.startsWith("http://")||C.file.startsWith("https://")){let J=U(C.file);if(!J){let Y=await w.runPromise(N.Service.use((R)=>R.url()));process.stdout.write(`Invalid URL format. Expected: ${Y}/share/<slug>`),process.stdout.write(X);return}let _=new URL(C.file).origin,$=await w.runPromise(N.Service.use((Y)=>Y.request())),j=M(C.file,$.baseUrl)?$.headers:{},W=$.api.data(J),K=await fetch(`${_}${W}`,{headers:j});if(!K.ok&&W!==`/api/share/${J}/data`)K=await fetch(`${_}/api/share/${J}/data`,{headers:j});if(!K.ok){process.stdout.write(`Failed to fetch share data: ${K.statusText}`),process.stdout.write(X);return}let H=await K.json(),B=S(H);if(!B){process.stdout.write(`Share not found or empty: ${J}`),process.stdout.write(X);return}G=B}else if(G=await P.readJson(C.file).catch(()=>{return}),!G){process.stdout.write(`File not found: ${C.file}`),process.stdout.write(X);return}if(!G){process.stdout.write("Failed to read session data"),process.stdout.write(X);return}let Q=v.Info.parse({...G.info,projectID:O.project.id}),z=v.toRow(Q);k.use((J)=>J.insert(V).values(z).onConflictDoUpdate({target:V.id,set:{project_id:z.project_id}}).run());for(let J of G.messages){let F=q.Info.parse(J.info),{id:_,sessionID:$,...j}=F;k.use((W)=>W.insert(A).values({id:_,session_id:z.id,time_created:F.time?.created??Date.now(),data:j}).onConflictDoNothing().run());for(let W of J.parts){let K=q.Part.parse(W),{id:H,sessionID:B,messageID:Y,...R}=K;k.use((T)=>T.insert(E).values({id:H,message_id:Y,session_id:z.id,data:R}).onConflictDoNothing().run())}}process.stdout.write(`Imported session: ${G.info.id}`),process.stdout.write(X)})}});export{S as transformShareData,M as shouldAttachShareAuthHeaders,U as parseShareUrl,m as ImportCommand};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{Zf as E}from"./chunk-qq48ffjc.js";import"./chunk-rmmrnx95.js";import"./chunk-5549c7mb.js";import"./chunk-pn77fh9b.js";import"./chunk-hkqcpdmt.js";import"./chunk-nfg7nt13.js";import"./chunk-awdpkgxf.js";import"./chunk-xb031er5.js";import"./chunk-1qw3yh13.js";import"./chunk-ckhhm2m8.js";import"./chunk-tp7sfreh.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import"./chunk-q39h31te.js";import"./chunk-0x0a51w3.js";import"./chunk-7myavy3p.js";import"./chunk-fegrrsfj.js";import"./chunk-c4x99ayd.js";import"./chunk-w0fg8n1f.js";import"./chunk-0pbpzty2.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-jc0wbpjq.js";import"./chunk-jfy6bfvv.js";import"./chunk-aej69zjj.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-k5vwx1nv.js";import"./chunk-ej3gmaba.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import"./chunk-v7yvnnmr.js";import"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import{pP as z}from"./chunk-fa03gsff.js";var J={command:"generate",handler:async()=>{let A=await E.openapi();for(let q of Object.values(A.paths))for(let y of["get","post","put","delete","patch"]){let k=q[y];if(!k?.operationId)continue;k["x-codeSamples"]=[{lang:"js",source:['import { createQitQodeClient } from "@qitqode/sdk"',"","const client = createQitQodeClient()",`await client.${k.operationId}({`," ...","})"].join(`
2
+ import{Zf as E}from"./chunk-b3721b7c.js";import"./chunk-w5nwkb0s.js";import"./chunk-jwgqpntf.js";import"./chunk-q2zk0z41.js";import"./chunk-hkqcpdmt.js";import"./chunk-nfg7nt13.js";import"./chunk-awdpkgxf.js";import"./chunk-0942095s.js";import"./chunk-88ckmmdr.js";import"./chunk-w9mdrb90.js";import"./chunk-qxtz0tfd.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import"./chunk-651fyxmn.js";import"./chunk-0czxqcg7.js";import"./chunk-6ba9fc92.js";import"./chunk-7skp0dmg.js";import"./chunk-c4x99ayd.js";import"./chunk-6dznrhs4.js";import"./chunk-8fn883z8.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-th5z0zx7.js";import"./chunk-jfy6bfvv.js";import"./chunk-v0jnnpsz.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-yt6cfsdh.js";import"./chunk-yja3y138.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import"./chunk-esjs9s9g.js";import"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import{pP as z}from"./chunk-fa03gsff.js";var J={command:"generate",handler:async()=>{let A=await E.openapi();for(let q of Object.values(A.paths))for(let y of["get","post","put","delete","patch"]){let k=q[y];if(!k?.operationId)continue;k["x-codeSamples"]=[{lang:"js",source:['import { createQitQodeClient } from "@qitqode/sdk"',"","const client = createQitQodeClient()",`await client.${k.operationId}({`," ...","})"].join(`
3
3
  `)}]}let F=JSON.stringify(A,null,2),B=await import("./chunk-ne8ftsv3.js"),C=await import("./chunk-ck65rcxb.js"),D=await import("./chunk-p64fb4rm.js"),G=await(B.format??B.default?.format)(F,{parser:"json",plugins:[C.default??C,D.default??D],printWidth:120});await new Promise((q,y)=>{process.stdout.write(G,(k)=>{if(k)y(k);else q()})})}};export{J as GenerateCommand};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Fd as q,Gd as K,Hd as D,Kd as L,Ld as N}from"./chunk-9g05wsae.js";import"./chunk-x1dfc7qd.js";import{Sf as B}from"./chunk-ntmn6epc.js";import{qh as G}from"./chunk-1qw3yh13.js";import"./chunk-ckhhm2m8.js";import"./chunk-tp7sfreh.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import"./chunk-q39h31te.js";import{hl as C}from"./chunk-0x0a51w3.js";import"./chunk-7myavy3p.js";import"./chunk-fegrrsfj.js";import"./chunk-c4x99ayd.js";import"./chunk-w0fg8n1f.js";import"./chunk-0pbpzty2.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-jc0wbpjq.js";import"./chunk-jfy6bfvv.js";import"./chunk-aej69zjj.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-k5vwx1nv.js";import"./chunk-ej3gmaba.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import{Gs as J}from"./chunk-v7yvnnmr.js";import"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import"./chunk-fa03gsff.js";var X={command:"upgrade [target]",describe:"upgrade qitqode to the latest or a specific version",builder:(z)=>{return z.positional("target",{describe:"version to upgrade to, for ex '0.1.48' or 'v0.1.48'",type:"string"}).option("method",{alias:"m",describe:"installation method to use",type:"string",choices:["curl","npm","pnpm","bun","brew","choco","scoop"]})},handler:async(z)=>{B.empty(),B.println(B.logo(" ")),B.empty(),K("Upgrade");let O=await G.runPromise(C.Service.use((j)=>j.method())),E=z.method??O;if(E==="unknown"){if(q.error(`qitqode is installed to ${process.execPath} and may be managed by a package manager`),!await N({message:"Install anyways?",options:[{label:"Yes",value:!0},{label:"No",value:!1}],initialValue:!1})){D("Done");return}}q.info("Using method: "+E);let F=z.target?z.target.replace(/^v/,""):await G.runPromise(C.Service.use((j)=>j.latest()));if(J===F){q.warn(`qitqode upgrade skipped: ${F} is already installed`),D("Done");return}q.info(`From ${J} \u2192 ${F}`);let H=L();H.start("Upgrading...");let x=await G.runPromise(C.Service.use((j)=>j.upgrade(E,F))).catch((j)=>j);if(x){if(H.stop("Upgrade failed",1),x instanceof C.UpgradeFailedError)if(E==="choco"&&x.stderr.includes("not running from an elevated command shell"))q.error("Please run the terminal as Administrator and try again");else q.error(x.stderr);else if(x instanceof Error)q.error(x.message);D("Done");return}H.stop("Upgrade complete"),D("Done")}};export{X as UpgradeCommand};
2
+ import{Fd as q,Gd as K,Hd as D,Kd as L,Ld as N}from"./chunk-9g05wsae.js";import"./chunk-x1dfc7qd.js";import{Sf as B}from"./chunk-ntmn6epc.js";import{qh as G}from"./chunk-88ckmmdr.js";import"./chunk-w9mdrb90.js";import"./chunk-qxtz0tfd.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-prrrw8t8.js";import"./chunk-tz8qhbk9.js";import"./chunk-k19zvbzh.js";import"./chunk-651fyxmn.js";import{hl as C}from"./chunk-0czxqcg7.js";import"./chunk-6ba9fc92.js";import"./chunk-7skp0dmg.js";import"./chunk-c4x99ayd.js";import"./chunk-6dznrhs4.js";import"./chunk-8fn883z8.js";import"./chunk-w8xaw2dv.js";import"./chunk-tq258v8s.js";import"./chunk-th5z0zx7.js";import"./chunk-jfy6bfvv.js";import"./chunk-v0jnnpsz.js";import"./chunk-98nh88th.js";import"./chunk-t7v8wzr9.js";import"./chunk-er5q8nhp.js";import"./chunk-cqtkxwd8.js";import"./chunk-h6htvj2y.js";import"./chunk-2qy62cv4.js";import"./chunk-t2n6fmpy.js";import"./chunk-x1naayst.js";import"./chunk-ng85b73s.js";import"./chunk-351wfvhp.js";import"./chunk-hmm1m733.js";import"./chunk-yt6cfsdh.js";import"./chunk-yja3y138.js";import"./chunk-3nc9wy1m.js";import"./chunk-r8ddb02d.js";import"./chunk-dhvwrrqx.js";import"./chunk-56cty7nr.js";import"./chunk-thbjhgw0.js";import{Gs as J}from"./chunk-esjs9s9g.js";import"./chunk-b5x3zghc.js";import"./chunk-t1f7jeat.js";import"./chunk-tk6gjy9d.js";import"./chunk-pkdk0ppc.js";import"./chunk-hrnx60em.js";import"./chunk-bbznk59q.js";import"./chunk-01gtn79f.js";import"./chunk-meaa7wrs.js";import"./chunk-0ddhkapd.js";import"./chunk-gvj8qg7x.js";import"./chunk-fa03gsff.js";var X={command:"upgrade [target]",describe:"upgrade qitqode to the latest or a specific version",builder:(z)=>{return z.positional("target",{describe:"version to upgrade to, for ex '0.1.48' or 'v0.1.48'",type:"string"}).option("method",{alias:"m",describe:"installation method to use",type:"string",choices:["curl","npm","pnpm","bun","brew","choco","scoop"]})},handler:async(z)=>{B.empty(),B.println(B.logo(" ")),B.empty(),K("Upgrade");let O=await G.runPromise(C.Service.use((j)=>j.method())),E=z.method??O;if(E==="unknown"){if(q.error(`qitqode is installed to ${process.execPath} and may be managed by a package manager`),!await N({message:"Install anyways?",options:[{label:"Yes",value:!0},{label:"No",value:!1}],initialValue:!1})){D("Done");return}}q.info("Using method: "+E);let F=z.target?z.target.replace(/^v/,""):await G.runPromise(C.Service.use((j)=>j.latest()));if(J===F){q.warn(`qitqode upgrade skipped: ${F} is already installed`),D("Done");return}q.info(`From ${J} \u2192 ${F}`);let H=L();H.start("Upgrading...");let x=await G.runPromise(C.Service.use((j)=>j.upgrade(E,F))).catch((j)=>j);if(x){if(H.stop("Upgrade failed",1),x instanceof C.UpgradeFailedError)if(E==="choco"&&x.stderr.includes("not running from an elevated command shell"))q.error("Please run the terminal as Administrator and try again");else q.error(x.stderr);else if(x instanceof Error)q.error(x.message);D("Done");return}H.stop("Upgrade complete"),D("Done")}};export{X as UpgradeCommand};