@qitqode/qitqode-android-arm64 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/bundle/{chunk-0vakk88p.js → chunk-09geev0j.js} +1 -1
  2. package/bundle/{chunk-qqxrvyx0.js → chunk-1rtx2zsc.js} +1 -1
  3. package/bundle/{chunk-tza09w2q.js → chunk-1t0c86bz.js} +1 -1
  4. package/bundle/{chunk-wg55bwqh.js → chunk-25ganjcn.js} +2 -2
  5. package/bundle/{chunk-96wwns35.js → chunk-2mm37s1w.js} +1 -1
  6. package/bundle/{chunk-z4kjxtjq.js → chunk-2prf30p3.js} +1 -1
  7. package/bundle/{chunk-cejyed1j.js → chunk-3hcr2bzt.js} +1 -1
  8. package/bundle/{chunk-p3rd2q47.js → chunk-3zrr4n6k.js} +1 -1
  9. package/bundle/{chunk-52w60e1f.js → chunk-4v2pzx22.js} +1 -1
  10. package/bundle/{chunk-hzrxmdqm.js → chunk-58dpxf8r.js} +1 -1
  11. package/bundle/{chunk-ha8b2n4x.js → chunk-58w8c6c2.js} +1 -1
  12. package/bundle/{chunk-jvybgsz5.js → chunk-620dpezx.js} +1 -1
  13. package/bundle/{chunk-78pt314g.js → chunk-6fc3gw3e.js} +1 -1
  14. package/bundle/{chunk-6tstcwxp.js → chunk-6pe60dsw.js} +1 -1
  15. package/bundle/{chunk-fsahzvd5.js → chunk-6v5867cy.js} +1 -1
  16. package/bundle/{chunk-88q0mtgp.js → chunk-7j4qne3q.js} +1 -1
  17. package/bundle/{chunk-0nbteyb0.js → chunk-7msfwk15.js} +1 -1
  18. package/bundle/{chunk-brws2aht.js → chunk-7zx1ve4w.js} +1 -1
  19. package/bundle/{chunk-msdypt5f.js → chunk-8q38721t.js} +1 -1
  20. package/bundle/{chunk-7knnz5f1.js → chunk-9pmmf4k1.js} +1 -1
  21. package/bundle/{chunk-4086z5ys.js → chunk-9y03z65a.js} +1 -1
  22. package/bundle/{chunk-3atcc483.js → chunk-a3edstpn.js} +1 -1
  23. package/bundle/{chunk-rp9r3cvt.js → chunk-ab4dq1bn.js} +1 -1
  24. package/bundle/{chunk-nftgx6bz.js → chunk-aj1sgq1d.js} +1 -1
  25. package/bundle/{chunk-262s2yz2.js → chunk-ak8e1nrf.js} +1 -1
  26. package/bundle/{chunk-56v352f8.js → chunk-b034nf8g.js} +1 -1
  27. package/bundle/{chunk-9fyz4sxa.js → chunk-b2p54yka.js} +1 -1
  28. package/bundle/{chunk-4websxrs.js → chunk-bghqsh7r.js} +1 -1
  29. package/bundle/{chunk-qktzz0sy.js → chunk-cdja76vj.js} +1 -1
  30. package/bundle/{chunk-v6h3nes1.js → chunk-ckb1y6gv.js} +1 -1
  31. package/bundle/{chunk-xq2kcar4.js → chunk-cx78hhbx.js} +1 -1
  32. package/bundle/{chunk-n0b0dfqk.js → chunk-d5qgc18n.js} +1 -1
  33. package/bundle/{chunk-49xhybc2.js → chunk-dj1jen1p.js} +1 -1
  34. package/bundle/chunk-dwhjgd8j.js +2 -0
  35. package/bundle/{chunk-a7wmadf1.js → chunk-dypdyrmy.js} +1 -1
  36. package/bundle/{chunk-yvn8dmah.js → chunk-g26tersc.js} +1 -1
  37. package/bundle/{chunk-0vxnkstz.js → chunk-grnjm8ev.js} +1 -1
  38. package/bundle/{chunk-47z3x3dp.js → chunk-hg4039nz.js} +2 -2
  39. package/bundle/{chunk-565855py.js → chunk-hz3h6e19.js} +1 -1
  40. package/bundle/{chunk-h823m51m.js → chunk-j4ad3mde.js} +1 -1
  41. package/bundle/{chunk-p27a88vp.js → chunk-j8nkz81m.js} +1 -1
  42. package/bundle/{chunk-qqrc1h5b.js → chunk-jdx3jshm.js} +1 -1
  43. package/bundle/{chunk-z8mj4z6e.js → chunk-jebss7x8.js} +1 -1
  44. package/bundle/{chunk-16w710kf.js → chunk-jqekpprn.js} +1 -1
  45. package/bundle/{chunk-65t9b9eq.js → chunk-k2g8346v.js} +1 -1
  46. package/bundle/{chunk-rscfes01.js → chunk-k2vsezeb.js} +1 -1
  47. package/bundle/{chunk-4dnntf9k.js → chunk-k6y2vw0d.js} +1 -1
  48. package/bundle/{chunk-8mm92zn2.js → chunk-kp6gh35c.js} +1 -1
  49. package/bundle/{chunk-s2gg38y0.js → chunk-kqhczjf6.js} +1 -1
  50. package/bundle/{chunk-enmsp09e.js → chunk-pdjafjry.js} +1 -1
  51. package/bundle/{chunk-c74cxhjb.js → chunk-pkn85169.js} +1 -1
  52. package/bundle/{chunk-nbd13scz.js → chunk-qk9x8j8d.js} +1 -1
  53. package/bundle/{chunk-zgv1e250.js → chunk-qnaw8k98.js} +1 -1
  54. package/bundle/{chunk-azpnrnv9.js → chunk-r6p0bd2w.js} +286 -286
  55. package/bundle/{chunk-nvwzam7a.js → chunk-rv08wm9j.js} +1 -1
  56. package/bundle/{chunk-bvf2dcq4.js → chunk-snqa3zsm.js} +1 -1
  57. package/bundle/{chunk-h99tj1e4.js → chunk-t2n7vgsq.js} +1 -1
  58. package/bundle/{chunk-g06a4chw.js → chunk-t6yzrmww.js} +1 -1
  59. package/bundle/{chunk-tdyvps17.js → chunk-thrfabyv.js} +1 -1
  60. package/bundle/{chunk-qznr1emx.js → chunk-twp3mjj0.js} +4 -4
  61. package/bundle/{chunk-dqp4nmxs.js → chunk-v3arcn10.js} +1 -1
  62. package/bundle/{chunk-vdxar0ct.js → chunk-w88ve2pm.js} +1 -1
  63. package/bundle/{chunk-083wpv6r.js → chunk-x65xbskr.js} +1 -1
  64. package/bundle/{chunk-epgcsjfp.js → chunk-x749e61j.js} +1 -1
  65. package/bundle/{chunk-0nqf1k20.js → chunk-xpjhe9gz.js} +1 -1
  66. package/bundle/{chunk-qrxqfp59.js → chunk-xv5z1bj6.js} +1 -1
  67. package/bundle/{chunk-jrwnz64e.js → chunk-ym09zrxe.js} +1 -1
  68. package/bundle/{chunk-5bjtq8t2.js → chunk-ytetprwr.js} +1 -1
  69. package/bundle/chunk-ztn9e8g1.js +2 -0
  70. package/bundle/{chunk-snbw69t6.js → chunk-zzznad30.js} +1 -1
  71. package/bundle/index.js +18 -18
  72. package/bundle/worker.js +1 -1
  73. package/package.json +1 -1
  74. package/bundle/chunk-hbyrwmne.js +0 -2
  75. package/bundle/chunk-x9ptmxt7.js +0 -2
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{uO as fr}from"./chunk-r9w0thdk.js";var gr="0.2.3",xr="latest",yr="9fa174e5448497e0d651c340755895c8b0a9b75f",hr=!1;var u={done:!1,hasNext:!1};function l(r,...a){let o=r,t=a.map((i)=>("lazy"in i)?v(i):void 0),s=0;for(;s<a.length;){if(t[s]===void 0||!S(o)){let n=a[s];o=n(o),s+=1;continue}let i=[];for(let n=s;n<a.length;n++){let f=t[n];if(f===void 0||(i.push(f),f.isSingle))break}let e=[];for(let n of o)if(j(n,e,i))break;let{isSingle:p}=i.at(-1);o=p?e[0]:e,s+=i.length}return o}function j(r,a,o){if(o.length===0)return a.push(r),!1;let t=r,s=u,i=!1;for(let[e,p]of o.entries()){let{index:n,items:f}=p;if(f.push(t),s=p(t,n,f),p.index+=1,s.hasNext){if(s.hasMany??!1){for(let g of s.next)if(j(g,a,o.slice(e+1)))return!0;return i}t=s.next}if(!s.hasNext)break;s.done&&(i=!0)}return s.hasNext&&a.push(t),i}function v(r){let{lazy:a,lazyArgs:o}=r,t=a(...o);return Object.assign(t,{isSingle:a.single??!1,index:0,items:[]})}function S(r){return typeof r=="string"||typeof r=="object"&&r!==null&&Symbol.iterator in r}function x(r,a){let o=a.length-r.length;if(o===1){let[t,...s]=a;return l(t,{lazy:r,lazyArgs:s})}if(o===0){let t={lazy:r,lazyArgs:a};return Object.assign((s)=>l(s,t),t)}throw Error("Wrong number of arguments")}function B(...r){return x(_,r)}function _(){let r=new Set;return(a)=>r.has(a)?u:(r.add(a),{done:!1,hasNext:!0,next:a})}function N(r,a,o){let t=(s)=>r(s,...a);return o===void 0?t:Object.assign(t,{lazy:o,lazyArgs:a})}function m(r,a,o){let t=r.length-a.length;if(t===0)return r(...a);if(t===1)return N(r,a,o);throw Error("Wrong number of arguments")}function C(...r){return m(Object.values,r)}var D={asc:(r,a)=>r>a,desc:(r,a)=>r<a};function y(r,a){let[o,...t]=a;if(!P(o)){let i=b(...t);return r(o,i)}let s=b(o,...t);return(i)=>r(i,s)}function b(r,a,...o){let t=typeof r=="function"?r:r[0],s=typeof r=="function"?"asc":r[1],{[s]:i}=D,e=a===void 0?void 0:b(a,...o);return(p,n)=>{let f=t(p),g=t(n);return i(f,g)?1:i(g,f)?-1:e?.(p,n)??0}}function P(r){if(Q(r))return!0;if(typeof r!="object"||!Array.isArray(r))return!1;let[a,o,...t]=r;return Q(a)&&typeof o=="string"&&o in D&&t.length===0}var Q=(r)=>typeof r=="function"&&r.length===1;function h(...r){return y(z,r)}var z=(r,a)=>[...r].sort(a);function I(r){if(typeof r!="object"||r===null)return!1;let a=Object.getPrototypeOf(r);return a===null||a===Object.prototype}function A(...r){return m(T,r)}function T(r,a){let o={...r,...a};for(let t in a){if(!(t in r))continue;let{[t]:s}=r;if(!I(s))continue;let{[t]:i}=a;I(i)&&(o[t]=T(s,i))}return o}function L(...r){return m(R,r,W)}var R=(r,a)=>r.map(a),W=(r)=>(a,o,t)=>({done:!1,hasNext:!0,next:r(a,o,t)});function k(...r){return x(M,r)}function M(r){let a=r,o=new Set;return(t,s,i)=>{let e=a(t,s,i);return o.has(e)?u:(o.add(e),{done:!1,hasNext:!0,next:t})}}function w(...r){return m(U,r)}function U(r,a){let o={};for(let[t,s]of Object.entries(r))a(s,t,r)&&(o[t]=s);return o}function c(...r){return m(V,r)}var V=(r,a)=>r.length>=a;function F(...r){return m(q,r)}function q(r,a){if(!c(a,1))return{...r};if(!c(a,2)){let{[a[0]]:t,...s}=r;return s}let o={...r};for(let t of a)delete o[t];return o}function H(...r){return m(K,r)}function K(r,a){let o={};for(let[t,s]of Object.entries(r)){let i=a(s,t,r);o[t]=i}return o}function G(...r){return m(J,r)}var J=(r,a)=>{let o=Object.create(null);for(let t=0;t<r.length;t++){let s=r[t],i=a(s,t,r);if(i!==void 0){let e=o[i];e===void 0?o[i]=[s]:e.push(s)}}return Object.setPrototypeOf(o,Object.prototype),o};function X(...r){return m(d,r)}function d(r,a){if(r===a||Object.is(r,a))return!0;if(typeof r!="object"||typeof a!="object"||r===null||a===null||Object.getPrototypeOf(r)!==Object.getPrototypeOf(a))return!1;if(Array.isArray(r))return Y(r,a);if(r instanceof Map)return Z(r,a);if(r instanceof Set)return $(r,a);if(r instanceof Date)return r.getTime()===a.getTime();if(r instanceof RegExp)return r.toString()===a.toString();if(Object.keys(r).length!==Object.keys(a).length)return!1;for(let[o,t]of Object.entries(r))if(!(o in a)||!d(t,a[o]))return!1;return!0}function Y(r,a){if(r.length!==a.length)return!1;for(let[o,t]of r.entries())if(!d(t,a[o]))return!1;return!0}function Z(r,a){if(r.size!==a.size)return!1;for(let[o,t]of r.entries())if(!a.has(o)||!d(t,a.get(o)))return!1;return!0}function $(r,a){if(r.size!==a.size)return!1;let o=[...a];for(let t of r){let s=!1;for(let[i,e]of o.entries())if(d(t,e)){s=!0,o.splice(i,1);break}if(!s)return!1}return!0}function rr(...r){return y(ar,r)}function ar(r,a){if(!c(r,2))return r[0];let[o]=r,[,...t]=r;for(let s of t)a(s,o)<0&&(o=s);return o}function or(...r){return m(tr,r,sr)}var tr=(r,a)=>r.flatMap(a),sr=(r)=>(a,o,t)=>{let s=r(a,o,t);return Array.isArray(s)?{done:!1,hasNext:!0,hasMany:!0,next:s}:{done:!1,hasNext:!0,next:s}};function ir(...r){return m(Object.entries,r)}function mr(...r){return m(er,r,nr)}var er=(r,a)=>r.filter(a),nr=(r)=>(a,o,t)=>r(a,o,t)?{done:!1,hasNext:!0,next:a}:u;var lr={};fr(lr,{match:()=>O,allStructured:()=>ur,all:()=>pr});function O(r,a){if(r)r=r.replaceAll("\\","/");if(a)a=a.replaceAll("\\","/");let o=a.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");if(o.endsWith(" .*"))o=o.slice(0,-3)+"( .*)?";let t=process.platform==="win32"?"si":"s";return new RegExp("^"+o+"$",t).test(r)}function pr(r,a){let o=l(a,Object.entries,h([([s])=>s.length,"asc"],[([s])=>s,"asc"])),t=void 0;for(let[s,i]of o)if(O(r,s)){t=i;continue}return t}function ur(r,a){let o=l(a,Object.entries,h([([s])=>s.length,"asc"],[([s])=>s,"asc"])),t=void 0;for(let[s,i]of o){let e=s.split(/\s+/);if(!O(r.head,e[0]))continue;if(e.length===1||E(r.tail,e.slice(1))){t=i;continue}}return t}function E(r,a){if(a.length===0)return!0;let[o,...t]=a;if(o==="*")return E(r,t);for(let s=0;s<r.length;s++)if(O(r[s],o)&&E(r.slice(s+1),t))return!0;return!1}var Jm="QITQODE_RUN_ID",Xm="QITQODE_PROCESS_ROLE";function cr(){return process.env.QITQODE_RUN_ID??=crypto.randomUUID()}function dr(r){return process.env.QITQODE_PROCESS_ROLE??=r}function Ym(r){return{runID:cr(),processRole:dr(r)}}function Zm(r){let a=Object.fromEntries(Object.entries(process.env).filter((o)=>o[1]!==void 0));return r?Object.assign(a,r):a}
2
+ import{uO as fr}from"./chunk-r9w0thdk.js";var gr="0.2.4",xr="latest",yr="a262dc8280eec1f93f97181b102fcf2a14c36ef1",hr=!1;var u={done:!1,hasNext:!1};function l(r,...a){let o=r,t=a.map((i)=>("lazy"in i)?v(i):void 0),s=0;for(;s<a.length;){if(t[s]===void 0||!S(o)){let n=a[s];o=n(o),s+=1;continue}let i=[];for(let n=s;n<a.length;n++){let f=t[n];if(f===void 0||(i.push(f),f.isSingle))break}let e=[];for(let n of o)if(j(n,e,i))break;let{isSingle:p}=i.at(-1);o=p?e[0]:e,s+=i.length}return o}function j(r,a,o){if(o.length===0)return a.push(r),!1;let t=r,s=u,i=!1;for(let[e,p]of o.entries()){let{index:n,items:f}=p;if(f.push(t),s=p(t,n,f),p.index+=1,s.hasNext){if(s.hasMany??!1){for(let g of s.next)if(j(g,a,o.slice(e+1)))return!0;return i}t=s.next}if(!s.hasNext)break;s.done&&(i=!0)}return s.hasNext&&a.push(t),i}function v(r){let{lazy:a,lazyArgs:o}=r,t=a(...o);return Object.assign(t,{isSingle:a.single??!1,index:0,items:[]})}function S(r){return typeof r=="string"||typeof r=="object"&&r!==null&&Symbol.iterator in r}function x(r,a){let o=a.length-r.length;if(o===1){let[t,...s]=a;return l(t,{lazy:r,lazyArgs:s})}if(o===0){let t={lazy:r,lazyArgs:a};return Object.assign((s)=>l(s,t),t)}throw Error("Wrong number of arguments")}function B(...r){return x(_,r)}function _(){let r=new Set;return(a)=>r.has(a)?u:(r.add(a),{done:!1,hasNext:!0,next:a})}function N(r,a,o){let t=(s)=>r(s,...a);return o===void 0?t:Object.assign(t,{lazy:o,lazyArgs:a})}function m(r,a,o){let t=r.length-a.length;if(t===0)return r(...a);if(t===1)return N(r,a,o);throw Error("Wrong number of arguments")}function C(...r){return m(Object.values,r)}var D={asc:(r,a)=>r>a,desc:(r,a)=>r<a};function y(r,a){let[o,...t]=a;if(!P(o)){let i=b(...t);return r(o,i)}let s=b(o,...t);return(i)=>r(i,s)}function b(r,a,...o){let t=typeof r=="function"?r:r[0],s=typeof r=="function"?"asc":r[1],{[s]:i}=D,e=a===void 0?void 0:b(a,...o);return(p,n)=>{let f=t(p),g=t(n);return i(f,g)?1:i(g,f)?-1:e?.(p,n)??0}}function P(r){if(Q(r))return!0;if(typeof r!="object"||!Array.isArray(r))return!1;let[a,o,...t]=r;return Q(a)&&typeof o=="string"&&o in D&&t.length===0}var Q=(r)=>typeof r=="function"&&r.length===1;function h(...r){return y(z,r)}var z=(r,a)=>[...r].sort(a);function I(r){if(typeof r!="object"||r===null)return!1;let a=Object.getPrototypeOf(r);return a===null||a===Object.prototype}function A(...r){return m(T,r)}function T(r,a){let o={...r,...a};for(let t in a){if(!(t in r))continue;let{[t]:s}=r;if(!I(s))continue;let{[t]:i}=a;I(i)&&(o[t]=T(s,i))}return o}function L(...r){return m(R,r,W)}var R=(r,a)=>r.map(a),W=(r)=>(a,o,t)=>({done:!1,hasNext:!0,next:r(a,o,t)});function k(...r){return x(M,r)}function M(r){let a=r,o=new Set;return(t,s,i)=>{let e=a(t,s,i);return o.has(e)?u:(o.add(e),{done:!1,hasNext:!0,next:t})}}function w(...r){return m(U,r)}function U(r,a){let o={};for(let[t,s]of Object.entries(r))a(s,t,r)&&(o[t]=s);return o}function c(...r){return m(V,r)}var V=(r,a)=>r.length>=a;function F(...r){return m(q,r)}function q(r,a){if(!c(a,1))return{...r};if(!c(a,2)){let{[a[0]]:t,...s}=r;return s}let o={...r};for(let t of a)delete o[t];return o}function H(...r){return m(K,r)}function K(r,a){let o={};for(let[t,s]of Object.entries(r)){let i=a(s,t,r);o[t]=i}return o}function G(...r){return m(J,r)}var J=(r,a)=>{let o=Object.create(null);for(let t=0;t<r.length;t++){let s=r[t],i=a(s,t,r);if(i!==void 0){let e=o[i];e===void 0?o[i]=[s]:e.push(s)}}return Object.setPrototypeOf(o,Object.prototype),o};function X(...r){return m(d,r)}function d(r,a){if(r===a||Object.is(r,a))return!0;if(typeof r!="object"||typeof a!="object"||r===null||a===null||Object.getPrototypeOf(r)!==Object.getPrototypeOf(a))return!1;if(Array.isArray(r))return Y(r,a);if(r instanceof Map)return Z(r,a);if(r instanceof Set)return $(r,a);if(r instanceof Date)return r.getTime()===a.getTime();if(r instanceof RegExp)return r.toString()===a.toString();if(Object.keys(r).length!==Object.keys(a).length)return!1;for(let[o,t]of Object.entries(r))if(!(o in a)||!d(t,a[o]))return!1;return!0}function Y(r,a){if(r.length!==a.length)return!1;for(let[o,t]of r.entries())if(!d(t,a[o]))return!1;return!0}function Z(r,a){if(r.size!==a.size)return!1;for(let[o,t]of r.entries())if(!a.has(o)||!d(t,a.get(o)))return!1;return!0}function $(r,a){if(r.size!==a.size)return!1;let o=[...a];for(let t of r){let s=!1;for(let[i,e]of o.entries())if(d(t,e)){s=!0,o.splice(i,1);break}if(!s)return!1}return!0}function rr(...r){return y(ar,r)}function ar(r,a){if(!c(r,2))return r[0];let[o]=r,[,...t]=r;for(let s of t)a(s,o)<0&&(o=s);return o}function or(...r){return m(tr,r,sr)}var tr=(r,a)=>r.flatMap(a),sr=(r)=>(a,o,t)=>{let s=r(a,o,t);return Array.isArray(s)?{done:!1,hasNext:!0,hasMany:!0,next:s}:{done:!1,hasNext:!0,next:s}};function ir(...r){return m(Object.entries,r)}function mr(...r){return m(er,r,nr)}var er=(r,a)=>r.filter(a),nr=(r)=>(a,o,t)=>r(a,o,t)?{done:!1,hasNext:!0,next:a}:u;var lr={};fr(lr,{match:()=>O,allStructured:()=>ur,all:()=>pr});function O(r,a){if(r)r=r.replaceAll("\\","/");if(a)a=a.replaceAll("\\","/");let o=a.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");if(o.endsWith(" .*"))o=o.slice(0,-3)+"( .*)?";let t=process.platform==="win32"?"si":"s";return new RegExp("^"+o+"$",t).test(r)}function pr(r,a){let o=l(a,Object.entries,h([([s])=>s.length,"asc"],[([s])=>s,"asc"])),t=void 0;for(let[s,i]of o)if(O(r,s)){t=i;continue}return t}function ur(r,a){let o=l(a,Object.entries,h([([s])=>s.length,"asc"],[([s])=>s,"asc"])),t=void 0;for(let[s,i]of o){let e=s.split(/\s+/);if(!O(r.head,e[0]))continue;if(e.length===1||E(r.tail,e.slice(1))){t=i;continue}}return t}function E(r,a){if(a.length===0)return!0;let[o,...t]=a;if(o==="*")return E(r,t);for(let s=0;s<r.length;s++)if(O(r[s],o)&&E(r.slice(s+1),t))return!0;return!1}var Jm="QITQODE_RUN_ID",Xm="QITQODE_PROCESS_ROLE";function cr(){return process.env.QITQODE_RUN_ID??=crypto.randomUUID()}function dr(r){return process.env.QITQODE_PROCESS_ROLE??=r}function Ym(r){return{runID:cr(),processRole:dr(r)}}function Zm(r){let a=Object.fromEntries(Object.entries(process.env).filter((o)=>o[1]!==void 0));return r?Object.assign(a,r):a}
3
3
  export{gr as ds,xr as es,yr as fs,hr as gs,l as hs,B as is,k as js,C as ks,h as ls,w as ms,A as ns,F as os,H as ps,L as qs,G as rs,X as ss,rr as ts,or as us,ir as vs,mr as ws,O as xs,lr as ys,Jm as zs,Xm as As,cr as Bs,Ym as Cs,Zm as Ds};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{ds as X}from"./chunk-0vakk88p.js";function D(j){return j.parserConfiguration({"populate--":!0}).scriptName("qitqode").wrap(100).help("help","show help").alias("help","h").version("version","show version number",X).alias("version","v").option("print-logs",{describe:"print logs to stderr",type:"boolean"}).option("log-level",{describe:"log level",type:"string",choices:["DEBUG","INFO","WARN","ERROR"]}).option("pure",{describe:"run without external plugins",type:"boolean"})}var H={port:{type:"number",describe:"port to listen on",default:0},hostname:{type:"string",describe:"hostname to listen on",default:"127.0.0.1"},mdns:{type:"boolean",describe:"enable mDNS service discovery (defaults hostname to 0.0.0.0)",default:!1},"mdns-domain":{type:"string",describe:"custom domain name for mDNS service (default: qitqode.local)",default:"qitqode.local"},cors:{type:"string",array:!0,describe:"additional domains to allow for CORS",default:[]},"no-auth":{type:"boolean",describe:"allow starting without authentication on non-loopback addresses (DANGEROUS)",default:!1}};function u(j){return j.options(H)}function F(j,z=process.argv){return z.some((B)=>B===j||B.startsWith(`${j}=`))}function P(j,z=process.argv){return F("--port",z)||F("--hostname",z)||F("--mdns",z)||!!j.mdns||j.port!==0||j.hostname!=="127.0.0.1"}function _(j,z,B=process.argv){let J=F("--port",B),Z=F("--hostname",B),$=F("--mdns",B),q=F("--mdns-domain",B),K=$?j.mdns:z?.server?.mdns??j.mdns,M=q?j["mdns-domain"]:z?.server?.mdnsDomain??j["mdns-domain"],N=J?j.port:z?.server?.port??j.port,U=Z?j.hostname:K&&!z?.server?.hostname?"0.0.0.0":z?.server?.hostname??j.hostname,V=z?.server?.cors??[],Y=Array.isArray(j.cors)?j.cors:j.cors?[j.cors]:[],b=[...V,...Y],A=j["no-auth"];return{hostname:U,port:N,mdns:K,mdnsDomain:M,cors:b,noAuth:A}}var k={model:{type:"string",alias:["m"],describe:"model to use in the format of provider/model"},continue:{alias:["c"],describe:"continue the last session",type:"boolean"},session:{alias:["s"],type:"string",describe:"session id to continue"},fork:{type:"boolean",describe:"fork the session when continuing (use with --continue or --session)"},prompt:{type:"string",describe:"prompt to use"},agent:{type:"string",describe:"agent to use"},dark:{type:"boolean",describe:"start in dark theme (overrides saved theme preference for this launch)"},light:{type:"boolean",describe:"start in light theme (overrides saved theme preference for this launch)"},monochrome:{type:"boolean",describe:"start in monochrome accessible rendering \u2014 no color, plain terminal, screen-reader friendly"},headless:{type:"boolean",describe:"headless permissionless mode for AI subagent use \u2014 auto-approves all tool permissions, implies --never-ask"},fullauto:{type:"boolean",describe:"full-auto mode for the interactive TUI \u2014 never asks: starts in build mode, auto-decides questions and auto-approves every tool permission that is not explicitly denied by your config (dangerous!)"},"api-key":{type:"string",describe:"Qortex API key for non-interactive authentication in headless mode (can also be set via $QLEX_API_KEY)"},sso:{type:"boolean",describe:"sign in via SSO device-code flow before starting a headless session \u2014 prints a URL and code, waits for browser approval (requires --headless)"},free:{type:"boolean",describe:"start in Free tier (no cost) \u2014 shorthand for the Free model tier"},default:{type:"boolean",describe:"start in Default tier \u2014 shorthand for the Default model tier"},fast:{type:"boolean",describe:"start in Fast tier \u2014 shorthand for the Fast model tier"},economy:{type:"boolean",describe:"start in Economy tier \u2014 shorthand for the Economy model tier"},power:{type:"boolean",describe:"start in Power tier \u2014 shorthand for the Power model tier"},orchestrated:{type:"boolean",describe:"start in Orchestrated tier \u2014 shorthand for the Orchestrated model tier"}},L=36,W="\x1B[38;5;214m",I="\x1B[0;2m",Q="\x1B[0m";function G(j,z){let B=Math.round(j/100*L),J=`${"\u25A0".repeat(B)}${"\uFF65".repeat(L-B)}`;return`\r${W}${J} ${j.toString().padStart(3)}%${Q} ${I}${z}${Q}`}
2
+ import{ds as X}from"./chunk-09geev0j.js";function D(j){return j.parserConfiguration({"populate--":!0}).scriptName("qitqode").wrap(100).help("help","show help").alias("help","h").version("version","show version number",X).alias("version","v").option("print-logs",{describe:"print logs to stderr",type:"boolean"}).option("log-level",{describe:"log level",type:"string",choices:["DEBUG","INFO","WARN","ERROR"]}).option("pure",{describe:"run without external plugins",type:"boolean"})}var H={port:{type:"number",describe:"port to listen on",default:0},hostname:{type:"string",describe:"hostname to listen on",default:"127.0.0.1"},mdns:{type:"boolean",describe:"enable mDNS service discovery (defaults hostname to 0.0.0.0)",default:!1},"mdns-domain":{type:"string",describe:"custom domain name for mDNS service (default: qitqode.local)",default:"qitqode.local"},cors:{type:"string",array:!0,describe:"additional domains to allow for CORS",default:[]},"no-auth":{type:"boolean",describe:"allow starting without authentication on non-loopback addresses (DANGEROUS)",default:!1}};function u(j){return j.options(H)}function F(j,z=process.argv){return z.some((B)=>B===j||B.startsWith(`${j}=`))}function P(j,z=process.argv){return F("--port",z)||F("--hostname",z)||F("--mdns",z)||!!j.mdns||j.port!==0||j.hostname!=="127.0.0.1"}function _(j,z,B=process.argv){let J=F("--port",B),Z=F("--hostname",B),$=F("--mdns",B),q=F("--mdns-domain",B),K=$?j.mdns:z?.server?.mdns??j.mdns,M=q?j["mdns-domain"]:z?.server?.mdnsDomain??j["mdns-domain"],N=J?j.port:z?.server?.port??j.port,U=Z?j.hostname:K&&!z?.server?.hostname?"0.0.0.0":z?.server?.hostname??j.hostname,V=z?.server?.cors??[],Y=Array.isArray(j.cors)?j.cors:j.cors?[j.cors]:[],b=[...V,...Y],A=j["no-auth"];return{hostname:U,port:N,mdns:K,mdnsDomain:M,cors:b,noAuth:A}}var k={model:{type:"string",alias:["m"],describe:"model to use in the format of provider/model"},continue:{alias:["c"],describe:"continue the last session",type:"boolean"},session:{alias:["s"],type:"string",describe:"session id to continue"},fork:{type:"boolean",describe:"fork the session when continuing (use with --continue or --session)"},prompt:{type:"string",describe:"prompt to use"},agent:{type:"string",describe:"agent to use"},dark:{type:"boolean",describe:"start in dark theme (overrides saved theme preference for this launch)"},light:{type:"boolean",describe:"start in light theme (overrides saved theme preference for this launch)"},monochrome:{type:"boolean",describe:"start in monochrome accessible rendering \u2014 no color, plain terminal, screen-reader friendly"},headless:{type:"boolean",describe:"headless permissionless mode for AI subagent use \u2014 auto-approves all tool permissions, implies --never-ask"},fullauto:{type:"boolean",describe:"full-auto mode for the interactive TUI \u2014 never asks: starts in build mode, auto-decides questions and auto-approves every tool permission that is not explicitly denied by your config (dangerous!)"},"api-key":{type:"string",describe:"Qortex API key for non-interactive authentication in headless mode (can also be set via $QLEX_API_KEY)"},sso:{type:"boolean",describe:"sign in via SSO device-code flow before starting a headless session \u2014 prints a URL and code, waits for browser approval (requires --headless)"},free:{type:"boolean",describe:"start in Free tier (no cost) \u2014 shorthand for the Free model tier"},default:{type:"boolean",describe:"start in Default tier \u2014 shorthand for the Default model tier"},fast:{type:"boolean",describe:"start in Fast tier \u2014 shorthand for the Fast model tier"},economy:{type:"boolean",describe:"start in Economy tier \u2014 shorthand for the Economy model tier"},power:{type:"boolean",describe:"start in Power tier \u2014 shorthand for the Power model tier"},orchestrated:{type:"boolean",describe:"start in Orchestrated tier \u2014 shorthand for the Orchestrated model tier"}},L=36,W="\x1B[38;5;214m",I="\x1B[0;2m",Q="\x1B[0m";function G(j,z){let B=Math.round(j/100*L),J=`${"\u25A0".repeat(B)}${"\uFF65".repeat(L-B)}`;return`\r${W}${J} ${j.toString().padStart(3)}%${Q} ${I}${z}${Q}`}
3
3
  export{D as Wf,H as Xf,u as Yf,P as Zf,_ as _f,k as $f,G as ag};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{W as R9}from"./chunk-0nbteyb0.js";import{Pd as E9}from"./chunk-65t9b9eq.js";import{Qd as P6,Td as p$,Ud as S9,Vd as U9,Yd as H9,Zd as q6}from"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import{ae as T0}from"./chunk-5w76kdjr.js";import{dg as O}from"./chunk-eg3syjtv.js";import{$g as j9,Bh as E$,xh as I9}from"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Nj as O6,Oj as M0,Tk as w9,Vk as D9,cl as b9,wj as T9}from"./chunk-qznr1emx.js";import{pl as N9}from"./chunk-6tstcwxp.js";import{El as A0,Nl as T$}from"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import"./chunk-vdxar0ct.js";import{Nr as C6}from"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-x9ptmxt7.js";import{hs as F9,ks as R6,ls as M9,qs as A9}from"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import{ft as L9}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{eH as V9}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import{sO as q0,tO as D,wO as E}from"./chunk-r9w0thdk.js";var JZ=D((zZ)=>{/*!
2
+ import{W as R9}from"./chunk-7msfwk15.js";import{Pd as E9}from"./chunk-k2g8346v.js";import{Qd as P6,Td as p$,Ud as S9,Vd as U9,Yd as H9,Zd as q6}from"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import{ae as T0}from"./chunk-5w76kdjr.js";import{dg as O}from"./chunk-eg3syjtv.js";import{$g as j9,Bh as E$,xh as I9}from"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Nj as O6,Oj as M0,Tk as w9,Vk as D9,cl as b9,wj as T9}from"./chunk-twp3mjj0.js";import{pl as N9}from"./chunk-6pe60dsw.js";import{El as A0,Nl as T$}from"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import"./chunk-w88ve2pm.js";import{Nr as C6}from"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-ztn9e8g1.js";import{hs as F9,ks as R6,ls as M9,qs as A9}from"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import{ft as L9}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{eH as V9}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import{sO as q0,tO as D,wO as E}from"./chunk-r9w0thdk.js";var JZ=D((zZ)=>{/*!
3
3
  * content-type
4
4
  * Copyright(c) 2015 Douglas Christopher Wilson
5
5
  * MIT Licensed
@@ -1,6 +1,6 @@
1
1
  // @bun
2
- import{a as $B,b as zB}from"./chunk-3atcc483.js";import"./chunk-h99tj1e4.js";import"./chunk-ehb4hd9c.js";import{B as XB}from"./chunk-gsez13bg.js";import{C as JB,E as VB}from"./chunk-c8k32724.js";import"./chunk-qktzz0sy.js";import{X as YB,Y as ZB}from"./chunk-5ysbwr4x.js";import"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import{ae as BB}from"./chunk-5w76kdjr.js";import{$f as i,Yf as g,Zf as w,_f as O}from"./chunk-qqxrvyx0.js";import{dg as H}from"./chunk-eg3syjtv.js";import{Fg as r}from"./chunk-msdypt5f.js";import{Bh as S}from"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Qj as o,Tk as e,xj as U}from"./chunk-qznr1emx.js";import"./chunk-6tstcwxp.js";import{Ml as T}from"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import{ao as a,go as s,vo as t}from"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import{Gr as n}from"./chunk-vdxar0ct.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import{bs as f}from"./chunk-x9ptmxt7.js";import{As as u,Bs as l,Ds as p,zs as c}from"./chunk-0vakk88p.js";import{Hs as A}from"./chunk-r5zy4za0.js";import{Qs as x}from"./chunk-tr6rdr6h.js";import{ct as E,et as q}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{eH as P}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import{wO as v}from"./chunk-r9w0thdk.js";import h from"path";import{fileURLToPath as KB}from"url";import{writeHeapSnapshot as MB}from"v8";import GB,{EOL as M}from"os";var WB={free:"free",default:"default",fast:"fast",economy:"economical",power:"power",orchestrated:"orchestrated"},m=ZB;function R(B){if(B.agent)return B.agent;return m}function QB(B,V){if(h.isAbsolute(B)||B.includes("/")||B.includes("\\")||B.startsWith(".")||B.startsWith("~"))return{error:"Directory not found: "+V};return{error:`Unknown command "${B}"`,hint:"Run `qitqode --help` to see the available commands, or pass an existing directory to start the TUI there."}}function bB(B){for(let[V,X]of Object.entries(WB))if(B[V]){let Z=f[X];if(Z)return`${Z.providerID}/${Z.modelID}`}return}function jB(B){return async(X,Z)=>{let Y=new Request(X,Z),$=Y.body?await Y.text():void 0,z=await B.call("fetch",{url:Y.url,method:Y.method,headers:Object.fromEntries(Y.headers.entries()),body:$});return new Response(z.body,{status:z.status,headers:z.headers})}}function CB(B){return{subscribe:async(V)=>{return B.on("global.event",(X)=>{V(X)})}}}async function FB(){if(typeof globalThis.QITQODE_WORKER_PATH<"u")return globalThis.QITQODE_WORKER_PATH;let B=new URL("./cli/cmd/tui/worker.js",import.meta.url);if(await E(KB(B)))return B;return new URL("./worker.ts",import.meta.url)}async function _B(B){let V=process.stdin.isTTY?void 0:await Bun.stdin.text();if(!B)return V;if(!V)return B;return V+`
3
- `+B}async function d(B){let V=a({baseUrl:B.url,fetch:B.fetch,directory:B.directory}),X=[{permission:"question",action:"deny",pattern:"*"},{permission:"plan_enter",action:"deny",pattern:"*"},{permission:"plan_exit",action:"deny",pattern:"*"}],Y=(await V.session.create({permission:X})).data?.id;if(!Y){H.error("headless: failed to create session");return}let $=await V.event.subscribe(),z=YB({sessionID:Y,query:async()=>{return(await V.session.status()).data?.[Y]}}),D=$.stream[Symbol.asyncIterator](),C=z.completion.then(()=>"DONE");(async()=>{try{while(!0){let W=await Promise.race([D.next(),C]);if(W==="DONE")break;let N=W;if(N.done)break;let G=N.value;z.onEvent(G);let K=G.properties;if(G.type==="message.part.updated"){let J=K?.part;if(!J||J.sessionID!==Y)continue;if(J.type==="text"&&J.time?.end){let F=String(J.text??"").trim();if(F)process.stdout.write(F+M)}}if(G.type==="permission.asked"){if(!K||K.sessionID!==Y)continue;await V.permission.reply({requestID:String(K.id),reply:"once"})}if(G.type==="session.error"){if(!K||K.sessionID!==Y||!K.error)continue;let J=K.error,F=J?.data!==null&&typeof J?.data==="object"&&"message"in J.data?String(J.data.message):String(J?.name??J);H.error(F)}}}finally{z.stop(),await D.return?.(void 0).catch(()=>{})}})().catch((W)=>{console.error(W),process.exit(1)});let y=B.model?e.parseModel(B.model):void 0;await V.session.prompt({sessionID:Y,agent:B.agent,model:y,parts:[{type:"text",text:B.prompt}]}),z.markStarted(),await z.completion}var aB=BB({command:"$0 [project]",describe:"start qitqode tui",builder:(B)=>g(B).positional("project",{type:"string",describe:"path to start qitqode in"}).options(i).option("never-ask",{type:"boolean",describe:"start in never-ask mode \u2014 auto-decide without asking (permissions excluded), toggle at runtime with /never-ask",default:!1}).check((V)=>{if(V.dark&&V.light)throw Error("--dark and --light are mutually exclusive");if(V.sso&&!V.headless)throw Error("--sso requires --headless");if(V.sso&&V["api-key"]!==void 0)throw Error("--sso and --api-key are mutually exclusive");let X=Object.keys(WB).filter((Z)=>V[Z]);if(X.length>1)throw Error(`${X.map((Z)=>`--${Z}`).join(" and ")} are mutually exclusive \u2014 choose one tier flag`);if(X.length===1&&V.model)throw Error(`--${X[0]} and --model are mutually exclusive \u2014 use one or the other`);return!0}),handler:async(B)=>{if(B.monochrome)process.env.QITQODE_TUI_ACCESSIBLE="1",process.env.NO_COLOR="1";let V=VB();try{JB();let X=XB(B);if(X){H.error(X),process.exitCode=1;return}let Z=bB(B)??B.model,Y=q(process.env.PWD??process.cwd()),$=B.project?q(h.isAbsolute(B.project)?B.project:h.join(Y,B.project)):q(process.cwd());if(B.project&&!await E($)){let J=QB(B.project,$);if(H.error(J.error),J.hint)H.println(J.hint);process.exitCode=1;return}let z=T($);if(z){if(B.project){H.error("Cannot start in "+$+": "+z),process.exitCode=1;return}let J=q(GB.homedir());if(T(J)){H.error("Cannot start in "+$+": "+z),process.exitCode=1;return}x.warn("unsafe start directory, falling back to home",{requested:$,home:J}),$=J}let D=await FB();try{process.chdir($)}catch{H.error("Failed to change directory to "+$);return}let C=q(process.cwd()),I=p({[u]:"worker",[c]:l()}),y=new Worker(D,{env:I});y.onerror=(J)=>{x.error("thread error",{message:J.message,filename:J.filename,lineno:J.lineno,colno:J.colno,error:J.error})};let W=n(y),N=()=>{W.call("reload",void 0).catch((J)=>{x.warn("worker reload failed",{error:A(J)})})};process.on("SIGUSR2",N);let G=!1,K=async()=>{if(G)return;G=!0,process.off("SIGUSR2",N),await o(W.call("shutdown",void 0),5000).catch((J)=>{x.warn("worker shutdown failed",{error:A(J)})}),y.terminate()};try{let J=import("./chunk-96wwns35.js"),F=import("./chunk-yvn8dmah.js").then(({TuiConfig:_})=>_.get()),L=await _B(B.prompt),HB=await F;if(B.headless&&w(O(B))){H.error("--headless cannot be combined with network-listener flags (--port, --hostname, --mdns)"),process.exitCode=1;return}let k=O(B),j=w(k)?{url:(await W.call("server",k)).url,fetch:void 0,events:void 0}:{url:"http://qitqode.internal",fetch:jB(W),events:CB(W)};if(setTimeout(()=>{W.call("checkUpgrade",{directory:C}).catch(()=>{})},1000).unref?.(),B.headless){if(!L){H.error("--headless requires a prompt: pass --prompt or pipe input via stdin"),process.exitCode=1;return}if(B.sso){try{let Q=await r({tryOpen:!1,onCode:(b)=>{if(process.stdout.write(M),process.stdout.write(" To sign in, open: "+b.verificationUri+M),process.stdout.write(" and enter code: "+b.userCode+M),b.verificationUriComplete)process.stdout.write(M+" Or open this link directly:"+M+" "+b.verificationUriComplete+M);process.stdout.write(M+" Waiting for approval... (ctrl+c to cancel)"+M)}});await S.runPromise(P.gen(function*(){yield*(yield*U.Service).set("forgewise",t(Q,{rotateRefreshToken:!0}))})),process.stdout.write(" Signed in as "+(Q.name||Q.email)+M)}catch(Q){H.error("SSO sign-in failed: "+A(Q)),process.exitCode=1;return}await d({url:j.url,fetch:j.fetch,prompt:L,model:Z,agent:R(B)??m,directory:C});return}let _=$B(typeof B["api-key"]==="string"?String(B["api-key"]):"");if(_)await S.runPromise(zB(_));else if(!await S.runPromise(P.gen(function*(){if(yield*P.promise(()=>s()))return!0;return!!(yield*(yield*U.Service).get("forgewise"))}))){H.error(`Not signed in. Use one of:
2
+ import{a as $B,b as zB}from"./chunk-a3edstpn.js";import"./chunk-t2n7vgsq.js";import"./chunk-ehb4hd9c.js";import{B as XB}from"./chunk-gsez13bg.js";import{C as JB,E as VB}from"./chunk-c8k32724.js";import"./chunk-cdja76vj.js";import{X as YB,Y as ZB}from"./chunk-5ysbwr4x.js";import"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import{ae as BB}from"./chunk-5w76kdjr.js";import{$f as i,Yf as g,Zf as w,_f as O}from"./chunk-1rtx2zsc.js";import{dg as H}from"./chunk-eg3syjtv.js";import{Fg as r}from"./chunk-8q38721t.js";import{Bh as S}from"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Qj as o,Tk as e,xj as U}from"./chunk-twp3mjj0.js";import"./chunk-6pe60dsw.js";import{Ml as T}from"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import{ao as a,go as s,vo as t}from"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import{Gr as n}from"./chunk-w88ve2pm.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import{bs as f}from"./chunk-ztn9e8g1.js";import{As as u,Bs as l,Ds as p,zs as c}from"./chunk-09geev0j.js";import{Hs as A}from"./chunk-r5zy4za0.js";import{Qs as x}from"./chunk-tr6rdr6h.js";import{ct as E,et as q}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{eH as P}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import{wO as v}from"./chunk-r9w0thdk.js";import h from"path";import{fileURLToPath as KB}from"url";import{writeHeapSnapshot as MB}from"v8";import GB,{EOL as M}from"os";var WB={free:"free",default:"default",fast:"fast",economy:"economical",power:"power",orchestrated:"orchestrated"},m=ZB;function R(B){if(B.agent)return B.agent;return m}function QB(B,V){if(h.isAbsolute(B)||B.includes("/")||B.includes("\\")||B.startsWith(".")||B.startsWith("~"))return{error:"Directory not found: "+V};return{error:`Unknown command "${B}"`,hint:"Run `qitqode --help` to see the available commands, or pass an existing directory to start the TUI there."}}function bB(B){for(let[V,X]of Object.entries(WB))if(B[V]){let Z=f[X];if(Z)return`${Z.providerID}/${Z.modelID}`}return}function jB(B){return async(X,Z)=>{let Y=new Request(X,Z),$=Y.body?await Y.text():void 0,z=await B.call("fetch",{url:Y.url,method:Y.method,headers:Object.fromEntries(Y.headers.entries()),body:$});return new Response(z.body,{status:z.status,headers:z.headers})}}function CB(B){return{subscribe:async(V)=>{return B.on("global.event",(X)=>{V(X)})}}}async function FB(){if(typeof globalThis.QITQODE_WORKER_PATH<"u")return globalThis.QITQODE_WORKER_PATH;let B=new URL("./cli/cmd/tui/worker.js",import.meta.url);if(await E(KB(B)))return B;return new URL("./worker.ts",import.meta.url)}async function _B(B){let V=process.stdin.isTTY?void 0:await Bun.stdin.text();if(!B)return V;if(!V)return B;return V+`
3
+ `+B}async function d(B){let V=a({baseUrl:B.url,fetch:B.fetch,directory:B.directory}),X=[{permission:"question",action:"deny",pattern:"*"},{permission:"plan_enter",action:"deny",pattern:"*"},{permission:"plan_exit",action:"deny",pattern:"*"}],Y=(await V.session.create({permission:X})).data?.id;if(!Y){H.error("headless: failed to create session");return}let $=await V.event.subscribe(),z=YB({sessionID:Y,query:async()=>{return(await V.session.status()).data?.[Y]}}),D=$.stream[Symbol.asyncIterator](),C=z.completion.then(()=>"DONE");(async()=>{try{while(!0){let W=await Promise.race([D.next(),C]);if(W==="DONE")break;let N=W;if(N.done)break;let G=N.value;z.onEvent(G);let K=G.properties;if(G.type==="message.part.updated"){let J=K?.part;if(!J||J.sessionID!==Y)continue;if(J.type==="text"&&J.time?.end){let F=String(J.text??"").trim();if(F)process.stdout.write(F+M)}}if(G.type==="permission.asked"){if(!K||K.sessionID!==Y)continue;await V.permission.reply({requestID:String(K.id),reply:"once"})}if(G.type==="session.error"){if(!K||K.sessionID!==Y||!K.error)continue;let J=K.error,F=J?.data!==null&&typeof J?.data==="object"&&"message"in J.data?String(J.data.message):String(J?.name??J);H.error(F)}}}finally{z.stop(),await D.return?.(void 0).catch(()=>{})}})().catch((W)=>{console.error(W),process.exit(1)});let y=B.model?e.parseModel(B.model):void 0;await V.session.prompt({sessionID:Y,agent:B.agent,model:y,parts:[{type:"text",text:B.prompt}]}),z.markStarted(),await z.completion}var aB=BB({command:"$0 [project]",describe:"start qitqode tui",builder:(B)=>g(B).positional("project",{type:"string",describe:"path to start qitqode in"}).options(i).option("never-ask",{type:"boolean",describe:"start in never-ask mode \u2014 auto-decide without asking (permissions excluded), toggle at runtime with /never-ask",default:!1}).check((V)=>{if(V.dark&&V.light)throw Error("--dark and --light are mutually exclusive");if(V.sso&&!V.headless)throw Error("--sso requires --headless");if(V.sso&&V["api-key"]!==void 0)throw Error("--sso and --api-key are mutually exclusive");let X=Object.keys(WB).filter((Z)=>V[Z]);if(X.length>1)throw Error(`${X.map((Z)=>`--${Z}`).join(" and ")} are mutually exclusive \u2014 choose one tier flag`);if(X.length===1&&V.model)throw Error(`--${X[0]} and --model are mutually exclusive \u2014 use one or the other`);return!0}),handler:async(B)=>{if(B.monochrome)process.env.QITQODE_TUI_ACCESSIBLE="1",process.env.NO_COLOR="1";let V=VB();try{JB();let X=XB(B);if(X){H.error(X),process.exitCode=1;return}let Z=bB(B)??B.model,Y=q(process.env.PWD??process.cwd()),$=B.project?q(h.isAbsolute(B.project)?B.project:h.join(Y,B.project)):q(process.cwd());if(B.project&&!await E($)){let J=QB(B.project,$);if(H.error(J.error),J.hint)H.println(J.hint);process.exitCode=1;return}let z=T($);if(z){if(B.project){H.error("Cannot start in "+$+": "+z),process.exitCode=1;return}let J=q(GB.homedir());if(T(J)){H.error("Cannot start in "+$+": "+z),process.exitCode=1;return}x.warn("unsafe start directory, falling back to home",{requested:$,home:J}),$=J}let D=await FB();try{process.chdir($)}catch{H.error("Failed to change directory to "+$);return}let C=q(process.cwd()),I=p({[u]:"worker",[c]:l()}),y=new Worker(D,{env:I});y.onerror=(J)=>{x.error("thread error",{message:J.message,filename:J.filename,lineno:J.lineno,colno:J.colno,error:J.error})};let W=n(y),N=()=>{W.call("reload",void 0).catch((J)=>{x.warn("worker reload failed",{error:A(J)})})};process.on("SIGUSR2",N);let G=!1,K=async()=>{if(G)return;G=!0,process.off("SIGUSR2",N),await o(W.call("shutdown",void 0),5000).catch((J)=>{x.warn("worker shutdown failed",{error:A(J)})}),y.terminate()};try{let J=import("./chunk-2mm37s1w.js"),F=import("./chunk-g26tersc.js").then(({TuiConfig:_})=>_.get()),L=await _B(B.prompt),HB=await F;if(B.headless&&w(O(B))){H.error("--headless cannot be combined with network-listener flags (--port, --hostname, --mdns)"),process.exitCode=1;return}let k=O(B),j=w(k)?{url:(await W.call("server",k)).url,fetch:void 0,events:void 0}:{url:"http://qitqode.internal",fetch:jB(W),events:CB(W)};if(setTimeout(()=>{W.call("checkUpgrade",{directory:C}).catch(()=>{})},1000).unref?.(),B.headless){if(!L){H.error("--headless requires a prompt: pass --prompt or pipe input via stdin"),process.exitCode=1;return}if(B.sso){try{let Q=await r({tryOpen:!1,onCode:(b)=>{if(process.stdout.write(M),process.stdout.write(" To sign in, open: "+b.verificationUri+M),process.stdout.write(" and enter code: "+b.userCode+M),b.verificationUriComplete)process.stdout.write(M+" Or open this link directly:"+M+" "+b.verificationUriComplete+M);process.stdout.write(M+" Waiting for approval... (ctrl+c to cancel)"+M)}});await S.runPromise(P.gen(function*(){yield*(yield*U.Service).set("forgewise",t(Q,{rotateRefreshToken:!0}))})),process.stdout.write(" Signed in as "+(Q.name||Q.email)+M)}catch(Q){H.error("SSO sign-in failed: "+A(Q)),process.exitCode=1;return}await d({url:j.url,fetch:j.fetch,prompt:L,model:Z,agent:R(B)??m,directory:C});return}let _=$B(typeof B["api-key"]==="string"?String(B["api-key"]):"");if(_)await S.runPromise(zB(_));else if(!await S.runPromise(P.gen(function*(){if(yield*P.promise(()=>s()))return!0;return!!(yield*(yield*U.Service).get("forgewise"))}))){H.error(`Not signed in. Use one of:
4
4
  qitqode auth login (browser / device-code flow)
5
5
  qitqode auth login --api-key (paste a Qortex API key)
6
6
  --api-key <key> (inline for this run)
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{n as a,o as b}from"./chunk-47z3x3dp.js";import"./chunk-78pt314g.js";import"./chunk-nftgx6bz.js";import"./chunk-c8k32724.js";import"./chunk-qktzz0sy.js";import"./chunk-tdyvps17.js";import"./chunk-gbkz04ke.js";import"./chunk-0nbteyb0.js";import"./chunk-55ykn8nz.js";import"./chunk-avefgbjg.js";import"./chunk-wyj8cpx5.js";import"./chunk-8wwdrwf2.js";import"./chunk-zc0cdvcv.js";import"./chunk-yhj01dz9.js";import"./chunk-d6jhs818.js";import"./chunk-0vxnkstz.js";import"./chunk-eg3syjtv.js";import"./chunk-8mm92zn2.js";import"./chunk-msdypt5f.js";import"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import"./chunk-qznr1emx.js";import"./chunk-6tstcwxp.js";import"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import"./chunk-vdxar0ct.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-7vmx8bg9.js";import"./chunk-tkrwcjkr.js";import"./chunk-x9ptmxt7.js";import"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";export{b as tui,a as rendererConfig};
2
+ import{n as a,o as b}from"./chunk-hg4039nz.js";import"./chunk-6fc3gw3e.js";import"./chunk-aj1sgq1d.js";import"./chunk-c8k32724.js";import"./chunk-cdja76vj.js";import"./chunk-thrfabyv.js";import"./chunk-gbkz04ke.js";import"./chunk-7msfwk15.js";import"./chunk-55ykn8nz.js";import"./chunk-avefgbjg.js";import"./chunk-wyj8cpx5.js";import"./chunk-8wwdrwf2.js";import"./chunk-zc0cdvcv.js";import"./chunk-yhj01dz9.js";import"./chunk-d6jhs818.js";import"./chunk-grnjm8ev.js";import"./chunk-eg3syjtv.js";import"./chunk-kp6gh35c.js";import"./chunk-8q38721t.js";import"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import"./chunk-twp3mjj0.js";import"./chunk-6pe60dsw.js";import"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import"./chunk-w88ve2pm.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-7vmx8bg9.js";import"./chunk-tkrwcjkr.js";import"./chunk-ztn9e8g1.js";import"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";export{b as tui,a as rendererConfig};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Pd as j}from"./chunk-65t9b9eq.js";import{ae as Q}from"./chunk-5w76kdjr.js";import{dg as M}from"./chunk-eg3syjtv.js";import{yg as N}from"./chunk-h823m51m.js";import{Bh as $}from"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Mj as J,cl as X}from"./chunk-qznr1emx.js";import"./chunk-6tstcwxp.js";import"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import{Qn as _}from"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import{Er as Z}from"./chunk-vdxar0ct.js";import{Nr as E}from"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-x9ptmxt7.js";import"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import{Ns as Y}from"./chunk-tr6rdr6h.js";import{ft as V}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";import{EOL as L}from"os";import k from"path";function P(){let q=["-R","-S"];if(process.platform!=="win32")return["less",...q];let z=_("less");if(z){if(V.stat(z)?.size)return[z,...q]}if(Y.QITQODE_GIT_BASH_PATH){let G=k.join(Y.QITQODE_GIT_BASH_PATH,"..","..","usr","bin","less.exe");if(V.stat(G)?.size)return[G,...q]}let B=_("git");if(B){let G=k.join(B,"..","..","usr","bin","less.exe");if(V.stat(G)?.size)return[G,...q]}return["cmd","/c","more"]}var g=Q({command:"session",describe:"manage sessions",builder:(q)=>q.command(T).command(D).command(v).demandCommand(),async handler(){}}),v=Q({command:"import-claude",describe:"import Claude Code sessions (~/.claude/projects) into qitqode",builder:(q)=>q.option("force",{describe:"re-sync every session, ignoring the mtime cache",type:"boolean",default:!1}),handler:async(q)=>{let z=await N.run({force:q.force});M.println(`Claude import: scanned ${z.scanned}, imported ${z.imported}, resynced ${z.resynced}, skipped ${z.skipped}`+(z.errors.length?`, errors ${z.errors.length}`:""));for(let B of z.errors)M.error(B)}}),D=Q({command:"delete <sessionID>",describe:"delete a session",builder:(q)=>{return q.positional("sessionID",{describe:"session ID to delete",type:"string",demandOption:!0})},handler:async(q)=>{await j(process.cwd(),async()=>{let z=J.make(q.sessionID);try{await $.runPromise(X.Service.use((B)=>B.get(z)))}catch{M.error(`Session not found: ${q.sessionID}`),process.exit(1)}await $.runPromise(X.Service.use((B)=>B.remove(z))),M.println(M.Style.TEXT_SUCCESS_BOLD+`Session ${q.sessionID} deleted`+M.Style.TEXT_NORMAL)})}}),T=Q({command:"list",describe:"list sessions",builder:(q)=>{return q.option("max-count",{alias:"n",describe:"limit to N most recent sessions",type:"number"}).option("format",{describe:"output format",type:"string",choices:["table","json"],default:"table"})},handler:async(q)=>{await j(process.cwd(),async()=>{let z=[...X.list({roots:!0,limit:q.maxCount})];if(z.length===0)return;let B;if(q.format==="json")B=f(z);else B=b(z);if(process.stdout.isTTY&&!q.maxCount&&q.format==="table"){let H=E.spawn(P(),{stdin:"pipe",stdout:"inherit",stderr:"inherit"});if(!H.stdin){console.log(B);return}H.stdin.write(B),H.stdin.end(),await H.exited}else console.log(B)})}});function b(q){let z=[],B=Math.max(20,...q.map((K)=>K.id.length)),G=Math.max(25,...q.map((K)=>K.title.length)),H=`Session ID${" ".repeat(B-10)} Title${" ".repeat(G-5)} Updated`;z.push(H),z.push("\u2500".repeat(H.length));for(let K of q){let A=Z.truncate(K.title,G),R=Z.todayTimeOrDateTime(K.time.updated),w=`${K.id.padEnd(B)} ${A.padEnd(G)} ${R}`;z.push(w)}return z.join(L)}function f(q){let z=q.map((B)=>({id:B.id,title:B.title,updated:B.time.updated,created:B.time.created,projectId:B.projectID,directory:B.directory}));return JSON.stringify(z,null,2)}export{T as SessionListCommand,v as SessionImportClaudeCommand,D as SessionDeleteCommand,g as SessionCommand};
2
+ import{Pd as j}from"./chunk-k2g8346v.js";import{ae as Q}from"./chunk-5w76kdjr.js";import{dg as M}from"./chunk-eg3syjtv.js";import{yg as N}from"./chunk-j4ad3mde.js";import{Bh as $}from"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Mj as J,cl as X}from"./chunk-twp3mjj0.js";import"./chunk-6pe60dsw.js";import"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import{Qn as _}from"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import{Er as Z}from"./chunk-w88ve2pm.js";import{Nr as E}from"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-ztn9e8g1.js";import"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import{Ns as Y}from"./chunk-tr6rdr6h.js";import{ft as V}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";import{EOL as L}from"os";import k from"path";function P(){let q=["-R","-S"];if(process.platform!=="win32")return["less",...q];let z=_("less");if(z){if(V.stat(z)?.size)return[z,...q]}if(Y.QITQODE_GIT_BASH_PATH){let G=k.join(Y.QITQODE_GIT_BASH_PATH,"..","..","usr","bin","less.exe");if(V.stat(G)?.size)return[G,...q]}let B=_("git");if(B){let G=k.join(B,"..","..","usr","bin","less.exe");if(V.stat(G)?.size)return[G,...q]}return["cmd","/c","more"]}var g=Q({command:"session",describe:"manage sessions",builder:(q)=>q.command(T).command(D).command(v).demandCommand(),async handler(){}}),v=Q({command:"import-claude",describe:"import Claude Code sessions (~/.claude/projects) into qitqode",builder:(q)=>q.option("force",{describe:"re-sync every session, ignoring the mtime cache",type:"boolean",default:!1}),handler:async(q)=>{let z=await N.run({force:q.force});M.println(`Claude import: scanned ${z.scanned}, imported ${z.imported}, resynced ${z.resynced}, skipped ${z.skipped}`+(z.errors.length?`, errors ${z.errors.length}`:""));for(let B of z.errors)M.error(B)}}),D=Q({command:"delete <sessionID>",describe:"delete a session",builder:(q)=>{return q.positional("sessionID",{describe:"session ID to delete",type:"string",demandOption:!0})},handler:async(q)=>{await j(process.cwd(),async()=>{let z=J.make(q.sessionID);try{await $.runPromise(X.Service.use((B)=>B.get(z)))}catch{M.error(`Session not found: ${q.sessionID}`),process.exit(1)}await $.runPromise(X.Service.use((B)=>B.remove(z))),M.println(M.Style.TEXT_SUCCESS_BOLD+`Session ${q.sessionID} deleted`+M.Style.TEXT_NORMAL)})}}),T=Q({command:"list",describe:"list sessions",builder:(q)=>{return q.option("max-count",{alias:"n",describe:"limit to N most recent sessions",type:"number"}).option("format",{describe:"output format",type:"string",choices:["table","json"],default:"table"})},handler:async(q)=>{await j(process.cwd(),async()=>{let z=[...X.list({roots:!0,limit:q.maxCount})];if(z.length===0)return;let B;if(q.format==="json")B=f(z);else B=b(z);if(process.stdout.isTTY&&!q.maxCount&&q.format==="table"){let H=E.spawn(P(),{stdin:"pipe",stdout:"inherit",stderr:"inherit"});if(!H.stdin){console.log(B);return}H.stdin.write(B),H.stdin.end(),await H.exited}else console.log(B)})}});function b(q){let z=[],B=Math.max(20,...q.map((K)=>K.id.length)),G=Math.max(25,...q.map((K)=>K.title.length)),H=`Session ID${" ".repeat(B-10)} Title${" ".repeat(G-5)} Updated`;z.push(H),z.push("\u2500".repeat(H.length));for(let K of q){let A=Z.truncate(K.title,G),R=Z.todayTimeOrDateTime(K.time.updated),w=`${K.id.padEnd(B)} ${A.padEnd(G)} ${R}`;z.push(w)}return z.join(L)}function f(q){let z=q.map((B)=>({id:B.id,title:B.title,updated:B.time.updated,created:B.time.created,projectId:B.projectID,directory:B.directory}));return JSON.stringify(z,null,2)}export{T as SessionListCommand,v as SessionImportClaudeCommand,D as SessionDeleteCommand,g as SessionCommand};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Pd as n}from"./chunk-65t9b9eq.js";import{ae as i}from"./chunk-5w76kdjr.js";import{Bh as r,Og as y,Pg as w,Yg as R,ph as K,qh as X}from"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Nj as V,Oj as W,Rj as C,Tk as J,Zj as M,cl as Y,dl as F,xk as g}from"./chunk-qznr1emx.js";import"./chunk-6tstcwxp.js";import{Ll as E,Nl as u}from"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import{Gr as U}from"./chunk-vdxar0ct.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-x9ptmxt7.js";import{As as B,Bs as _,Ds as H,zs as z}from"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import{Ws as S}from"./chunk-tr6rdr6h.js";import{kt as oo}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{XJ as x,eH as d}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import{xO as v,yO as P}from"./chunk-r9w0thdk.js";import{EOL as to}from"os";var I=i({command:"config",describe:"show resolved configuration",builder:(o)=>o,async handler(){await n(process.cwd(),async()=>{let o=await r.runPromise(F.Service.use((e)=>e.get()));process.stdout.write(JSON.stringify(o,null,2)+to)})}});import{EOL as b}from"os";var io=i({command:"search <query>",describe:"search files by query",builder:(o)=>o.positional("query",{type:"string",demandOption:!0,description:"Search query"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(w.Service.use((t)=>t.search({query:o.query})));process.stdout.write(e.join(b)+b)})}}),ro=i({command:"read <path>",describe:"read file contents as JSON",builder:(o)=>o.positional("path",{type:"string",demandOption:!0,description:"File path to read"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(w.Service.use((t)=>t.read(o.path)));process.stdout.write(JSON.stringify(e,null,2)+b)})}}),no=i({command:"status",describe:"show file status information",builder:(o)=>o,async handler(){await n(process.cwd(),async()=>{let o=await r.runPromise(w.Service.use((e)=>e.status()));process.stdout.write(JSON.stringify(o,null,2)+b)})}}),so=i({command:"list <path>",describe:"list files in a directory",builder:(o)=>o.positional("path",{type:"string",demandOption:!0,description:"File path to list"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(w.Service.use((t)=>t.list(o.path)));process.stdout.write(JSON.stringify(e,null,2)+b)})}}),mo=i({command:"tree [dir]",describe:"show directory tree",builder:(o)=>o.positional("dir",{type:"string",description:"Directory to tree",default:process.cwd()}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(y.Service.use((t)=>t.tree({cwd:o.dir,limit:200})));console.log(JSON.stringify(e,null,2))})}}),L=i({command:"file",describe:"file system debugging utilities",builder:(o)=>o.command(ro).command(no).command(so).command(io).command(mo).demandCommand(),async handler(){}});import{EOL as A}from"os";var q=i({command:"lsp",describe:"LSP debugging utilities",builder:(o)=>o.command(ao).command(co).command(lo).demandCommand(),async handler(){}}),ao=i({command:"diagnostics <file>",describe:"get diagnostics for a file",builder:(o)=>o.positional("file",{type:"string",demandOption:!0}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(C.Service.use((t)=>d.gen(function*(){return yield*t.touchFile(o.file,!0),yield*d.sleep(1000),yield*t.diagnostics()})));process.stdout.write(JSON.stringify(e,null,2)+A)})}}),co=i({command:"symbols <query>",describe:"search workspace symbols",builder:(o)=>o.positional("query",{type:"string",demandOption:!0}),async handler(o){await n(process.cwd(),async()=>{let s=[];try{const e=v(s,S.Default.time("symbols"),0);let t=await r.runPromise(C.Service.use((m)=>m.workspaceSymbol(o.query)));process.stdout.write(JSON.stringify(t,null,2)+A)}catch(a){var c=a,l=1}finally{P(s,c,l)}})}}),lo=i({command:"document-symbols <uri>",describe:"get symbols from a document",builder:(o)=>o.positional("uri",{type:"string",demandOption:!0}),async handler(o){await n(process.cwd(),async()=>{let s=[];try{const e=v(s,S.Default.time("document-symbols"),0);let t=await r.runPromise(C.Service.use((m)=>m.documentSymbol(o.uri)));process.stdout.write(JSON.stringify(t,null,2)+A)}catch(a){var c=a,l=1}finally{P(s,c,l)}})}});import{EOL as O}from"os";var k=i({command:"rg",describe:"ripgrep debugging utilities",builder:(o)=>o.command(po).command(uo).command(fo).demandCommand(),async handler(){}}),po=i({command:"tree",describe:"show file tree using ripgrep",builder:(o)=>o.option("limit",{type:"number"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(y.Service.use((t)=>t.tree({cwd:u.directory,limit:o.limit})));process.stdout.write(e+O)})}}),uo=i({command:"files",describe:"list files using ripgrep",builder:(o)=>o.option("query",{type:"string",description:"Filter files by query"}).option("glob",{type:"string",description:"Glob pattern to match files"}).option("limit",{type:"number",description:"Limit number of results"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(d.gen(function*(){return yield*(yield*y.Service).files({cwd:u.directory,glob:o.glob?[o.glob]:void 0}).pipe(x.take(o.limit??1/0),x.runCollect,d.map((s)=>[...s]))}));process.stdout.write(e.join(O)+O)})}}),fo=i({command:"search <pattern>",describe:"search file contents using ripgrep",builder:(o)=>o.positional("pattern",{type:"string",demandOption:!0,description:"Search pattern"}).option("glob",{type:"array",description:"File glob patterns"}).option("limit",{type:"number",description:"Limit number of results"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(y.Service.use((t)=>t.search({cwd:u.directory,pattern:o.pattern,glob:o.glob,limit:o.limit})));process.stdout.write(JSON.stringify(e.items,null,2)+O)})}});import{EOL as yo}from"os";var T=i({command:"scrap",describe:"list all known projects",builder:(o)=>o,async handler(){let o=S.Default.time("scrap"),e=await E.list();process.stdout.write(JSON.stringify(e,null,2)+yo),o.stop()}});import{EOL as go}from"os";var $=i({command:"skill",describe:"list all available skills",builder:(o)=>o,async handler(){await n(process.cwd(),async()=>{let o=await r.runPromise(d.gen(function*(){return yield*(yield*R.Service).all()}));process.stdout.write(JSON.stringify(o,null,2)+go)})}});var j=i({command:"snapshot",describe:"snapshot debugging utilities",builder:(o)=>o.command(bo).command(wo).command(So).demandCommand(),async handler(){}}),D=(o)=>n(process.cwd(),async()=>{console.log(await r.runPromise(M.Service.use(o)))}),G=(o)=>o.positional("hash",{type:"string",description:"hash",demandOption:!0}),bo=i({command:"track",describe:"track current snapshot state",async handler(){await D((o)=>o.track())}}),wo=i({command:"patch <hash>",describe:"show patch for a snapshot hash",builder:G,async handler(o){await D((e)=>e.patch(o.hash))}}),So=i({command:"diff <hash>",describe:"show diff for a snapshot hash",builder:G,async handler(o){await D((e)=>e.diff(o.hash))}});import{EOL as h}from"os";import{basename as ho}from"path";var Z=i({command:"agent <name>",describe:"show agent configuration details",builder:(o)=>o.positional("name",{type:"string",demandOption:!0,description:"Agent name"}).option("tool",{type:"string",description:"Tool id to execute"}).option("params",{type:"string",description:"Tool params as a JSON object"}),async handler(o){await n(process.cwd(),async()=>{let e=o.name,t=await r.runPromise(X.Service.use((m)=>m.get(e)));if(!t)process.stderr.write(`Agent ${e} not found, run '${ho(process.execPath)} agent list' to get an agent list`+h),process.exit(1);let s=await Co(t),a=await Oo(t,s),c=o.tool;if(c){let m=s.find((eo)=>eo.id===c);if(!m)process.stderr.write(`Tool ${c} not found for agent ${e}`+h),process.exit(1);if(a[c]===!1)process.stderr.write(`Tool ${c} is disabled for agent ${e}`+h),process.exit(1);let p=vo(o.params),f=await Po(t),N=await m.execute(p,f);process.stdout.write(JSON.stringify({tool:c,input:p,result:N},null,2)+h);return}let l={...t,tools:a};process.stdout.write(JSON.stringify(l,null,2)+h)})}});async function Co(o){return r.runPromise(d.gen(function*(){let e=yield*J.Service,t=yield*K.Service,s=o.model??(yield*e.defaultModel());return yield*t.tools({...s,agent:o})}))}async function Oo(o,e){let t=g.disabled(e.map((a)=>a.id),o.permission),s={};for(let a of e)s[a.id]=!t.has(a.id);return s}function vo(o){if(!o)return{};let e=o.trim();if(e.length===0)return{};let t=(()=>{try{return JSON.parse(e)}catch{throw Error("Failed to parse --params. Provide a valid JSON object.")}})();if(!t||typeof t!=="object"||Array.isArray(t))throw Error("Tool params must be an object.");return t}async function Po(o){let{session:e,messageID:t}=await r.runPromise(d.gen(function*(){let a=yield*Y.Service,c=yield*a.create({title:`Debug tool run (${o.name})`}),l=V.ascending(),m=o.model?o.model:yield*d.gen(function*(){return yield*(yield*J.Service).defaultModel()}),p=Date.now(),f={id:l,sessionID:c.id,role:"assistant",time:{created:p},parentID:l,modelID:m.modelID,providerID:m.providerID,mode:"debug",agent:o.name,path:{cwd:u.directory,root:u.worktree},cost:0,tokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}}};return yield*a.updateMessage(f),{session:c,messageID:l}})),s=g.merge(o.permission,e.permission??[]);return{sessionID:e.id,messageID:t,callID:W.ascending(),agent:o.name,abort:new AbortController().signal,messages:[],metadata:()=>d.void,ask(a){return d.sync(()=>{for(let c of a.patterns)if(g.evaluate(a.permission,c,s).action==="deny")throw new g.DeniedError({ruleset:s})})}}}var Q=i({command:"worker-smoke",describe:"start the TUI background worker and verify it initialises",builder:(o)=>o.option("timeout",{type:"number",describe:"milliseconds to wait for the worker to answer",default:30000}),handler:async(o)=>{let e=typeof globalThis.QITQODE_WORKER_PATH<"u"?globalThis.QITQODE_WORKER_PATH:new URL("../tui/worker.ts",import.meta.url),t=H({[B]:"worker",[z]:_()}),s=new Worker(e,{env:t}),a=new Promise((m,p)=>{s.onerror=(f)=>{p(Error(`worker crashed during startup: ${f.message||String(f.error??"unknown error")}`))},s.addEventListener("close",()=>{p(Error("worker exited before answering ping"))})}),c=new Promise((m,p)=>{setTimeout(()=>p(Error(`worker did not answer ping within ${o.timeout}ms`)),o.timeout)}),l=U(s);try{let m=await Promise.race([l.call("ping",void 0),a,c]);if(m!=="pong")throw Error(`worker answered ping with unexpected reply: ${JSON.stringify(m)}`);console.log("worker initialised: ping ok"),process.exit(0)}catch(m){console.error(m instanceof Error?m.message:String(m)),process.exit(1)}}});var Be=i({command:"debug",describe:"debugging and troubleshooting tools",builder:(o)=>o.command(I).command(q).command(k).command(L).command(T).command($).command(j).command(Z).command(Q).command(Ao).command({command:"wait",describe:"wait indefinitely (for debugging)",async handler(){await n(process.cwd(),async()=>{await new Promise((e)=>setTimeout(e,86400000))})}}).demandCommand(),async handler(){}}),Ao=i({command:"paths",describe:"show global paths (data, config, cache, state)",handler(){for(let[o,e]of Object.entries(oo.Path))console.log(o.padEnd(10),e)}});export{Be as DebugCommand};
2
+ import{Pd as n}from"./chunk-k2g8346v.js";import{ae as i}from"./chunk-5w76kdjr.js";import{Bh as r,Og as y,Pg as w,Yg as R,ph as K,qh as X}from"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Nj as V,Oj as W,Rj as C,Tk as J,Zj as M,cl as Y,dl as F,xk as g}from"./chunk-twp3mjj0.js";import"./chunk-6pe60dsw.js";import{Ll as E,Nl as u}from"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import{Gr as U}from"./chunk-w88ve2pm.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-ztn9e8g1.js";import{As as B,Bs as _,Ds as H,zs as z}from"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import{Ws as S}from"./chunk-tr6rdr6h.js";import{kt as oo}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{XJ as x,eH as d}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import{xO as v,yO as P}from"./chunk-r9w0thdk.js";import{EOL as to}from"os";var I=i({command:"config",describe:"show resolved configuration",builder:(o)=>o,async handler(){await n(process.cwd(),async()=>{let o=await r.runPromise(F.Service.use((e)=>e.get()));process.stdout.write(JSON.stringify(o,null,2)+to)})}});import{EOL as b}from"os";var io=i({command:"search <query>",describe:"search files by query",builder:(o)=>o.positional("query",{type:"string",demandOption:!0,description:"Search query"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(w.Service.use((t)=>t.search({query:o.query})));process.stdout.write(e.join(b)+b)})}}),ro=i({command:"read <path>",describe:"read file contents as JSON",builder:(o)=>o.positional("path",{type:"string",demandOption:!0,description:"File path to read"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(w.Service.use((t)=>t.read(o.path)));process.stdout.write(JSON.stringify(e,null,2)+b)})}}),no=i({command:"status",describe:"show file status information",builder:(o)=>o,async handler(){await n(process.cwd(),async()=>{let o=await r.runPromise(w.Service.use((e)=>e.status()));process.stdout.write(JSON.stringify(o,null,2)+b)})}}),so=i({command:"list <path>",describe:"list files in a directory",builder:(o)=>o.positional("path",{type:"string",demandOption:!0,description:"File path to list"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(w.Service.use((t)=>t.list(o.path)));process.stdout.write(JSON.stringify(e,null,2)+b)})}}),mo=i({command:"tree [dir]",describe:"show directory tree",builder:(o)=>o.positional("dir",{type:"string",description:"Directory to tree",default:process.cwd()}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(y.Service.use((t)=>t.tree({cwd:o.dir,limit:200})));console.log(JSON.stringify(e,null,2))})}}),L=i({command:"file",describe:"file system debugging utilities",builder:(o)=>o.command(ro).command(no).command(so).command(io).command(mo).demandCommand(),async handler(){}});import{EOL as A}from"os";var q=i({command:"lsp",describe:"LSP debugging utilities",builder:(o)=>o.command(ao).command(co).command(lo).demandCommand(),async handler(){}}),ao=i({command:"diagnostics <file>",describe:"get diagnostics for a file",builder:(o)=>o.positional("file",{type:"string",demandOption:!0}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(C.Service.use((t)=>d.gen(function*(){return yield*t.touchFile(o.file,!0),yield*d.sleep(1000),yield*t.diagnostics()})));process.stdout.write(JSON.stringify(e,null,2)+A)})}}),co=i({command:"symbols <query>",describe:"search workspace symbols",builder:(o)=>o.positional("query",{type:"string",demandOption:!0}),async handler(o){await n(process.cwd(),async()=>{let s=[];try{const e=v(s,S.Default.time("symbols"),0);let t=await r.runPromise(C.Service.use((m)=>m.workspaceSymbol(o.query)));process.stdout.write(JSON.stringify(t,null,2)+A)}catch(a){var c=a,l=1}finally{P(s,c,l)}})}}),lo=i({command:"document-symbols <uri>",describe:"get symbols from a document",builder:(o)=>o.positional("uri",{type:"string",demandOption:!0}),async handler(o){await n(process.cwd(),async()=>{let s=[];try{const e=v(s,S.Default.time("document-symbols"),0);let t=await r.runPromise(C.Service.use((m)=>m.documentSymbol(o.uri)));process.stdout.write(JSON.stringify(t,null,2)+A)}catch(a){var c=a,l=1}finally{P(s,c,l)}})}});import{EOL as O}from"os";var k=i({command:"rg",describe:"ripgrep debugging utilities",builder:(o)=>o.command(po).command(uo).command(fo).demandCommand(),async handler(){}}),po=i({command:"tree",describe:"show file tree using ripgrep",builder:(o)=>o.option("limit",{type:"number"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(y.Service.use((t)=>t.tree({cwd:u.directory,limit:o.limit})));process.stdout.write(e+O)})}}),uo=i({command:"files",describe:"list files using ripgrep",builder:(o)=>o.option("query",{type:"string",description:"Filter files by query"}).option("glob",{type:"string",description:"Glob pattern to match files"}).option("limit",{type:"number",description:"Limit number of results"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(d.gen(function*(){return yield*(yield*y.Service).files({cwd:u.directory,glob:o.glob?[o.glob]:void 0}).pipe(x.take(o.limit??1/0),x.runCollect,d.map((s)=>[...s]))}));process.stdout.write(e.join(O)+O)})}}),fo=i({command:"search <pattern>",describe:"search file contents using ripgrep",builder:(o)=>o.positional("pattern",{type:"string",demandOption:!0,description:"Search pattern"}).option("glob",{type:"array",description:"File glob patterns"}).option("limit",{type:"number",description:"Limit number of results"}),async handler(o){await n(process.cwd(),async()=>{let e=await r.runPromise(y.Service.use((t)=>t.search({cwd:u.directory,pattern:o.pattern,glob:o.glob,limit:o.limit})));process.stdout.write(JSON.stringify(e.items,null,2)+O)})}});import{EOL as yo}from"os";var T=i({command:"scrap",describe:"list all known projects",builder:(o)=>o,async handler(){let o=S.Default.time("scrap"),e=await E.list();process.stdout.write(JSON.stringify(e,null,2)+yo),o.stop()}});import{EOL as go}from"os";var $=i({command:"skill",describe:"list all available skills",builder:(o)=>o,async handler(){await n(process.cwd(),async()=>{let o=await r.runPromise(d.gen(function*(){return yield*(yield*R.Service).all()}));process.stdout.write(JSON.stringify(o,null,2)+go)})}});var j=i({command:"snapshot",describe:"snapshot debugging utilities",builder:(o)=>o.command(bo).command(wo).command(So).demandCommand(),async handler(){}}),D=(o)=>n(process.cwd(),async()=>{console.log(await r.runPromise(M.Service.use(o)))}),G=(o)=>o.positional("hash",{type:"string",description:"hash",demandOption:!0}),bo=i({command:"track",describe:"track current snapshot state",async handler(){await D((o)=>o.track())}}),wo=i({command:"patch <hash>",describe:"show patch for a snapshot hash",builder:G,async handler(o){await D((e)=>e.patch(o.hash))}}),So=i({command:"diff <hash>",describe:"show diff for a snapshot hash",builder:G,async handler(o){await D((e)=>e.diff(o.hash))}});import{EOL as h}from"os";import{basename as ho}from"path";var Z=i({command:"agent <name>",describe:"show agent configuration details",builder:(o)=>o.positional("name",{type:"string",demandOption:!0,description:"Agent name"}).option("tool",{type:"string",description:"Tool id to execute"}).option("params",{type:"string",description:"Tool params as a JSON object"}),async handler(o){await n(process.cwd(),async()=>{let e=o.name,t=await r.runPromise(X.Service.use((m)=>m.get(e)));if(!t)process.stderr.write(`Agent ${e} not found, run '${ho(process.execPath)} agent list' to get an agent list`+h),process.exit(1);let s=await Co(t),a=await Oo(t,s),c=o.tool;if(c){let m=s.find((eo)=>eo.id===c);if(!m)process.stderr.write(`Tool ${c} not found for agent ${e}`+h),process.exit(1);if(a[c]===!1)process.stderr.write(`Tool ${c} is disabled for agent ${e}`+h),process.exit(1);let p=vo(o.params),f=await Po(t),N=await m.execute(p,f);process.stdout.write(JSON.stringify({tool:c,input:p,result:N},null,2)+h);return}let l={...t,tools:a};process.stdout.write(JSON.stringify(l,null,2)+h)})}});async function Co(o){return r.runPromise(d.gen(function*(){let e=yield*J.Service,t=yield*K.Service,s=o.model??(yield*e.defaultModel());return yield*t.tools({...s,agent:o})}))}async function Oo(o,e){let t=g.disabled(e.map((a)=>a.id),o.permission),s={};for(let a of e)s[a.id]=!t.has(a.id);return s}function vo(o){if(!o)return{};let e=o.trim();if(e.length===0)return{};let t=(()=>{try{return JSON.parse(e)}catch{throw Error("Failed to parse --params. Provide a valid JSON object.")}})();if(!t||typeof t!=="object"||Array.isArray(t))throw Error("Tool params must be an object.");return t}async function Po(o){let{session:e,messageID:t}=await r.runPromise(d.gen(function*(){let a=yield*Y.Service,c=yield*a.create({title:`Debug tool run (${o.name})`}),l=V.ascending(),m=o.model?o.model:yield*d.gen(function*(){return yield*(yield*J.Service).defaultModel()}),p=Date.now(),f={id:l,sessionID:c.id,role:"assistant",time:{created:p},parentID:l,modelID:m.modelID,providerID:m.providerID,mode:"debug",agent:o.name,path:{cwd:u.directory,root:u.worktree},cost:0,tokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}}};return yield*a.updateMessage(f),{session:c,messageID:l}})),s=g.merge(o.permission,e.permission??[]);return{sessionID:e.id,messageID:t,callID:W.ascending(),agent:o.name,abort:new AbortController().signal,messages:[],metadata:()=>d.void,ask(a){return d.sync(()=>{for(let c of a.patterns)if(g.evaluate(a.permission,c,s).action==="deny")throw new g.DeniedError({ruleset:s})})}}}var Q=i({command:"worker-smoke",describe:"start the TUI background worker and verify it initialises",builder:(o)=>o.option("timeout",{type:"number",describe:"milliseconds to wait for the worker to answer",default:30000}),handler:async(o)=>{let e=typeof globalThis.QITQODE_WORKER_PATH<"u"?globalThis.QITQODE_WORKER_PATH:new URL("../tui/worker.ts",import.meta.url),t=H({[B]:"worker",[z]:_()}),s=new Worker(e,{env:t}),a=new Promise((m,p)=>{s.onerror=(f)=>{p(Error(`worker crashed during startup: ${f.message||String(f.error??"unknown error")}`))},s.addEventListener("close",()=>{p(Error("worker exited before answering ping"))})}),c=new Promise((m,p)=>{setTimeout(()=>p(Error(`worker did not answer ping within ${o.timeout}ms`)),o.timeout)}),l=U(s);try{let m=await Promise.race([l.call("ping",void 0),a,c]);if(m!=="pong")throw Error(`worker answered ping with unexpected reply: ${JSON.stringify(m)}`);console.log("worker initialised: ping ok"),process.exit(0)}catch(m){console.error(m instanceof Error?m.message:String(m)),process.exit(1)}}});var Be=i({command:"debug",describe:"debugging and troubleshooting tools",builder:(o)=>o.command(I).command(q).command(k).command(L).command(T).command($).command(j).command(Z).command(Q).command(Ao).command({command:"wait",describe:"wait indefinitely (for debugging)",async handler(){await n(process.cwd(),async()=>{await new Promise((e)=>setTimeout(e,86400000))})}}).demandCommand(),async handler(){}}),Ao=i({command:"paths",describe:"show global paths (data, config, cache, state)",handler(){for(let[o,e]of Object.entries(oo.Path))console.log(o.padEnd(10),e)}});export{Be as DebugCommand};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{Hk as e}from"./chunk-qznr1emx.js";import{Hl as r}from"./chunk-qqrc1h5b.js";import{lt as o}from"./chunk-kgptyf7n.js";var s=o.object({id:e.zod,type:o.string(),name:o.string(),branch:o.string().nullable(),directory:o.string().nullable(),extra:o.unknown().nullable(),projectID:r.zod});
2
+ import{Hk as e}from"./chunk-twp3mjj0.js";import{Hl as r}from"./chunk-jdx3jshm.js";import{lt as o}from"./chunk-kgptyf7n.js";var s=o.object({id:e.zod,type:o.string(),name:o.string(),branch:o.string().nullable(),directory:o.string().nullable(),extra:o.unknown().nullable(),projectID:r.zod});
3
3
  export{s as Mg};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{ae as b}from"./chunk-5w76kdjr.js";import{dg as t}from"./chunk-eg3syjtv.js";import{Bh as u}from"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Tk as y,_j as m}from"./chunk-qznr1emx.js";import{pl as v}from"./chunk-6tstcwxp.js";import{Nl as a}from"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import"./chunk-vdxar0ct.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-x9ptmxt7.js";import"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{eH as s}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";import{EOL as f}from"os";var M=b({command:"models [provider]",describe:"list all available models",builder:(r)=>{return r.positional("provider",{describe:"provider ID to filter models by",type:"string",array:!1}).option("verbose",{describe:"use more verbose model output (includes metadata like costs)",type:"boolean"}).option("refresh",{describe:"refresh the models cache from models.dev",type:"boolean"})},handler:async(r)=>{if(r.refresh)await v.refresh(!0),t.println(t.Style.TEXT_SUCCESS_BOLD+"Models cache refreshed"+t.Style.TEXT_NORMAL);await a.provide({directory:process.cwd(),async fn(){await u.runPromise(s.gen(function*(){let n=yield*(yield*y.Service).list(),l=(e,o)=>{let i=n[e],d=Object.entries(i.models).sort(([c],[p])=>c.localeCompare(p));for(let[c,p]of d)if(process.stdout.write(`${e}/${c}`),process.stdout.write(f),o)process.stdout.write(JSON.stringify(p,null,2)),process.stdout.write(f)};if(r.provider){let e=m.make(r.provider);if(!n[e]){yield*s.sync(()=>t.error(`Provider not found: ${r.provider}`));return}yield*s.sync(()=>l(e,r.verbose));return}let h=Object.keys(n).sort((e,o)=>{let i=e.startsWith("opencode"),d=o.startsWith("opencode");if(i&&!d)return-1;if(!i&&d)return 1;return e.localeCompare(o)});yield*s.sync(()=>{for(let e of h)l(m.make(e),r.verbose)})}))}})}});export{M as ModelsCommand};
2
+ import{ae as b}from"./chunk-5w76kdjr.js";import{dg as t}from"./chunk-eg3syjtv.js";import{Bh as u}from"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import{Tk as y,_j as m}from"./chunk-twp3mjj0.js";import{pl as v}from"./chunk-6pe60dsw.js";import{Nl as a}from"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import"./chunk-w88ve2pm.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-ztn9e8g1.js";import"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import{eH as s}from"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";import{EOL as f}from"os";var M=b({command:"models [provider]",describe:"list all available models",builder:(r)=>{return r.positional("provider",{describe:"provider ID to filter models by",type:"string",array:!1}).option("verbose",{describe:"use more verbose model output (includes metadata like costs)",type:"boolean"}).option("refresh",{describe:"refresh the models cache from models.dev",type:"boolean"})},handler:async(r)=>{if(r.refresh)await v.refresh(!0),t.println(t.Style.TEXT_SUCCESS_BOLD+"Models cache refreshed"+t.Style.TEXT_NORMAL);await a.provide({directory:process.cwd(),async fn(){await u.runPromise(s.gen(function*(){let n=yield*(yield*y.Service).list(),l=(e,o)=>{let i=n[e],d=Object.entries(i.models).sort(([c],[p])=>c.localeCompare(p));for(let[c,p]of d)if(process.stdout.write(`${e}/${c}`),process.stdout.write(f),o)process.stdout.write(JSON.stringify(p,null,2)),process.stdout.write(f)};if(r.provider){let e=m.make(r.provider);if(!n[e]){yield*s.sync(()=>t.error(`Provider not found: ${r.provider}`));return}yield*s.sync(()=>l(e,r.verbose));return}let h=Object.keys(n).sort((e,o)=>{let i=e.startsWith("opencode"),d=o.startsWith("opencode");if(i&&!d)return-1;if(!i&&d)return 1;return e.localeCompare(o)});yield*s.sync(()=>{for(let e of h)l(m.make(e),r.verbose)})}))}})}});export{M as ModelsCommand};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Cg as i,Dg as j,Eg as k,Fg as l,Gg as m,Hg as n}from"./chunk-msdypt5f.js";import"./chunk-w46g7kdq.js";import{io as a,jo as b,ko as c,lo as d,mo as e,no as f,ro as g,so as h}from"./chunk-rp9r3cvt.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-vdxar0ct.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-x9ptmxt7.js";import"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-r9w0thdk.js";export{f as resolveDevicePoll,h as refreshAccessToken,g as probeToken,l as loginDevice,n as loginBrowser,m as login,b as isReplitEnv,j as isNearExpiry,c as getConfig,i as getCallbackUri,k as fetchQreditsBalance,a as checkoutApiKey,d as ForgewiseError,e as DeviceFlowUnsupportedError};
2
+ import{Cg as i,Dg as j,Eg as k,Fg as l,Gg as m,Hg as n}from"./chunk-8q38721t.js";import"./chunk-w46g7kdq.js";import{io as a,jo as b,ko as c,lo as d,mo as e,no as f,ro as g,so as h}from"./chunk-ab4dq1bn.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-w88ve2pm.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-ztn9e8g1.js";import"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-r9w0thdk.js";export{f as resolveDevicePoll,h as refreshAccessToken,g as probeToken,l as loginDevice,n as loginBrowser,m as login,b as isReplitEnv,j as isNearExpiry,c as getConfig,i as getCallbackUri,k as fetchQreditsBalance,a as checkoutApiKey,d as ForgewiseError,e as DeviceFlowUnsupportedError};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{a,b,c,d,e,f,g}from"./chunk-3atcc483.js";import"./chunk-h99tj1e4.js";import"./chunk-ehb4hd9c.js";import"./chunk-qktzz0sy.js";import"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import"./chunk-5w76kdjr.js";import"./chunk-eg3syjtv.js";import"./chunk-msdypt5f.js";import"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import"./chunk-qznr1emx.js";import"./chunk-6tstcwxp.js";import"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import"./chunk-vdxar0ct.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-x9ptmxt7.js";import"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";export{f as statusEffect,a as resolveApiKeyFlag,e as logoutEffect,d as loginEffect,c as interactiveLogin,b as apiKeyLoginEffect,g as AuthCommand};
2
+ import{a,b,c,d,e,f,g}from"./chunk-a3edstpn.js";import"./chunk-t2n7vgsq.js";import"./chunk-ehb4hd9c.js";import"./chunk-cdja76vj.js";import"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import"./chunk-5w76kdjr.js";import"./chunk-eg3syjtv.js";import"./chunk-8q38721t.js";import"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import"./chunk-twp3mjj0.js";import"./chunk-6pe60dsw.js";import"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import"./chunk-w88ve2pm.js";import"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-ztn9e8g1.js";import"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";export{f as statusEffect,a as resolveApiKeyFlag,e as logoutEffect,d as loginEffect,c as interactiveLogin,b as apiKeyLoginEffect,g as AuthCommand};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Qd as T,Sd as q,Td as N,Ud as w,Vd as X,Yd as D}from"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import{dg as Q}from"./chunk-eg3syjtv.js";import{Bh as A}from"./chunk-azpnrnv9.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import"./chunk-qznr1emx.js";import{fl as $}from"./chunk-6tstcwxp.js";import"./chunk-qqrc1h5b.js";import"./chunk-fsahzvd5.js";import"./chunk-mh19kwzw.js";import"./chunk-88q0mtgp.js";import"./chunk-bvf2dcq4.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-rp9r3cvt.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-xq2kcar4.js";import"./chunk-qrxqfp59.js";import"./chunk-73r8bjjz.js";import"./chunk-vdxar0ct.js";import{Nr as _}from"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-x9ptmxt7.js";import"./chunk-0vakk88p.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import{ft as Y,kt as W}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";import V from"fs/promises";import L from"path";import R from"os";var g={command:"uninstall",describe:"uninstall qitqode and remove all related files",builder:(j)=>j.option("keep-config",{alias:"c",type:"boolean",describe:"keep configuration files",default:!1}).option("keep-data",{alias:"d",type:"boolean",describe:"keep session data and snapshots",default:!1}).option("dry-run",{type:"boolean",describe:"show what would be removed without removing",default:!1}).option("force",{alias:"f",type:"boolean",describe:"skip confirmation prompts",default:!1}),handler:async(j)=>{Q.empty(),Q.println(Q.logo(" ")),Q.empty(),w("Uninstall QitQode");let B=await A.runPromise($.Service.use((J)=>J.method()));N.info(`Installation method: ${B}`);let E=await v(j,B);if(await z(E,B),!j.force&&!j.dryRun){let J=await q({message:"Are you sure you want to uninstall?",initialValue:!1});if(!J||T(J)){X("Cancelled");return}}if(j.dryRun){N.warn("Dry run - no changes made"),X("Done");return}await G(B,E),X("Done")}};async function v(j,B){let E=[{path:W.Path.data,label:"Data",keep:j.keepData},{path:W.Path.cache,label:"Cache",keep:!1},{path:W.Path.config,label:"Config",keep:j.keepConfig},{path:W.Path.state,label:"State",keep:!1}],J=B==="curl"?await P():null,H=B==="curl"?process.execPath:null;return{directories:E,shellConfig:J,binary:H}}async function z(j,B){N.message("The following will be removed:");for(let E of j.directories){if(!await V.access(E.path).then(()=>!0).catch(()=>!1))continue;let H=await F(E.path),K=S(H),O=E.keep?Q.Style.TEXT_DIM+"(keeping)":"",M=E.keep?"\u25CB":"\u2713";N.info(` ${M} ${E.label}: ${Z(E.path)} ${Q.Style.TEXT_DIM}(${K})${O}`)}if(j.binary)N.info(` \u2713 Binary: ${Z(j.binary)}`);if(j.shellConfig)N.info(` \u2713 Shell PATH in ${Z(j.shellConfig)}`);if(B!=="curl"&&B!=="unknown"){let E={npm:"npm uninstall -g @qitqode/cli",pnpm:"pnpm uninstall -g @qitqode/cli",bun:"bun remove -g @qitqode/cli"};N.info(` \u2713 Package: ${E[B]||B}`)}}async function G(j,B){let E=D(),J=[];for(let H of B.directories){if(H.keep){N.step(`Skipping ${H.label} (--keep-${H.label.toLowerCase()})`);continue}if(!await V.access(H.path).then(()=>!0).catch(()=>!1))continue;E.start(`Removing ${H.label}...`);let O=await V.rm(H.path,{recursive:!0,force:!0}).catch((M)=>M);if(O){E.stop(`Failed to remove ${H.label}`,1),J.push(`${H.label}: ${O.message}`);continue}E.stop(`Removed ${H.label}`)}if(B.shellConfig){E.start("Cleaning shell config...");let H=await k(B.shellConfig).catch((K)=>K);if(H)E.stop("Failed to clean shell config",1),J.push(`Shell config: ${H.message}`);else E.stop("Cleaned shell config")}if(j!=="curl"&&j!=="unknown"){let K={npm:["npm","uninstall","-g","@qitqode/cli"],pnpm:["pnpm","uninstall","-g","@qitqode/cli"],bun:["bun","remove","-g","@qitqode/cli"]}[j];if(K){E.start(`Running ${K.join(" ")}...`);let O=await _.run(K,{nothrow:!0});if(O.code!==0)E.stop(`Package manager uninstall failed: exit code ${O.code}`,1),N.warn(`You may need to run manually: ${K.join(" ")}`);else E.stop("Package removed")}else N.warn(`Uninstall not supported for method "${j}" yet, skipping package removal`)}if(j==="curl"&&B.binary){Q.empty(),N.message("To finish removing the binary, run:"),N.info(` rm "${B.binary}"`);let H=L.dirname(B.binary);if(H.includes(".qitqode"))N.info(` rmdir "${H}" 2>/dev/null`)}if(J.length>0){Q.empty(),N.warn("Some operations failed:");for(let H of J)N.error(` ${H}`)}Q.empty(),N.success("Thank you for using QitQode!")}async function P(){let j=L.basename(process.env.SHELL||"bash"),B=R.homedir(),E=process.env.XDG_CONFIG_HOME||L.join(B,".config"),J={fish:[L.join(E,"fish","config.fish")],zsh:[L.join(B,".zshrc"),L.join(B,".zshenv"),L.join(E,"zsh",".zshrc"),L.join(E,"zsh",".zshenv")],bash:[L.join(B,".bashrc"),L.join(B,".bash_profile"),L.join(B,".profile"),L.join(E,"bash",".bashrc"),L.join(E,"bash",".bash_profile")],ash:[L.join(B,".ashrc"),L.join(B,".profile")],sh:[L.join(B,".profile")]},H=J[j]||J.bash;for(let K of H){if(!await V.access(K).then(()=>!0).catch(()=>!1))continue;let M=await Y.readText(K).catch(()=>"");if(M.includes("# qitqode")||M.includes(".qitqode/bin"))return K}return null}async function k(j){let E=(await Y.readText(j)).split(`
2
+ import{Qd as T,Sd as q,Td as N,Ud as w,Vd as X,Yd as D}from"./chunk-ff548b0j.js";import"./chunk-zc0cdvcv.js";import{dg as Q}from"./chunk-eg3syjtv.js";import{Bh as A}from"./chunk-r6p0bd2w.js";import"./chunk-w46g7kdq.js";import"./chunk-bd21p9zz.js";import"./chunk-p54bzjtv.js";import"./chunk-ha1w0xzh.js";import"./chunk-6m9jb0s9.js";import"./chunk-vygkwwjd.js";import"./chunk-twp3mjj0.js";import{fl as $}from"./chunk-6pe60dsw.js";import"./chunk-jdx3jshm.js";import"./chunk-6v5867cy.js";import"./chunk-mh19kwzw.js";import"./chunk-7j4qne3q.js";import"./chunk-snqa3zsm.js";import"./chunk-9zm6r55d.js";import"./chunk-vcygx6hs.js";import"./chunk-khzzmyk2.js";import"./chunk-y7hgevfv.js";import"./chunk-47k5jy1p.js";import"./chunk-ab4dq1bn.js";import"./chunk-ph8hn1wt.js";import"./chunk-ptqk1j2r.js";import"./chunk-cqtkxwd8.js";import"./chunk-pr7z5dj8.js";import"./chunk-dnnkq5y4.js";import"./chunk-t239rvej.js";import"./chunk-yz25607t.js";import"./chunk-7hvf9dgx.js";import"./chunk-wkg3c643.js";import"./chunk-fhqfqd5v.js";import"./chunk-cx78hhbx.js";import"./chunk-xv5z1bj6.js";import"./chunk-73r8bjjz.js";import"./chunk-w88ve2pm.js";import{Nr as _}from"./chunk-ztyy3ga3.js";import"./chunk-mmjgf680.js";import"./chunk-nj1ntakd.js";import"./chunk-cmb62jkt.js";import"./chunk-tkrwcjkr.js";import"./chunk-ztn9e8g1.js";import"./chunk-09geev0j.js";import"./chunk-r5zy4za0.js";import"./chunk-tr6rdr6h.js";import{ft as Y,kt as W}from"./chunk-at22twxx.js";import"./chunk-kgptyf7n.js";import"./chunk-j9h1sp4g.js";import"./chunk-p6crzjtf.js";import"./chunk-55fcmswd.js";import"./chunk-qnvsqnz5.js";import"./chunk-pxm4qvqk.js";import"./chunk-j8fcfhr2.js";import"./chunk-r9w0thdk.js";import V from"fs/promises";import L from"path";import R from"os";var g={command:"uninstall",describe:"uninstall qitqode and remove all related files",builder:(j)=>j.option("keep-config",{alias:"c",type:"boolean",describe:"keep configuration files",default:!1}).option("keep-data",{alias:"d",type:"boolean",describe:"keep session data and snapshots",default:!1}).option("dry-run",{type:"boolean",describe:"show what would be removed without removing",default:!1}).option("force",{alias:"f",type:"boolean",describe:"skip confirmation prompts",default:!1}),handler:async(j)=>{Q.empty(),Q.println(Q.logo(" ")),Q.empty(),w("Uninstall QitQode");let B=await A.runPromise($.Service.use((J)=>J.method()));N.info(`Installation method: ${B}`);let E=await v(j,B);if(await z(E,B),!j.force&&!j.dryRun){let J=await q({message:"Are you sure you want to uninstall?",initialValue:!1});if(!J||T(J)){X("Cancelled");return}}if(j.dryRun){N.warn("Dry run - no changes made"),X("Done");return}await G(B,E),X("Done")}};async function v(j,B){let E=[{path:W.Path.data,label:"Data",keep:j.keepData},{path:W.Path.cache,label:"Cache",keep:!1},{path:W.Path.config,label:"Config",keep:j.keepConfig},{path:W.Path.state,label:"State",keep:!1}],J=B==="curl"?await P():null,H=B==="curl"?process.execPath:null;return{directories:E,shellConfig:J,binary:H}}async function z(j,B){N.message("The following will be removed:");for(let E of j.directories){if(!await V.access(E.path).then(()=>!0).catch(()=>!1))continue;let H=await F(E.path),K=S(H),O=E.keep?Q.Style.TEXT_DIM+"(keeping)":"",M=E.keep?"\u25CB":"\u2713";N.info(` ${M} ${E.label}: ${Z(E.path)} ${Q.Style.TEXT_DIM}(${K})${O}`)}if(j.binary)N.info(` \u2713 Binary: ${Z(j.binary)}`);if(j.shellConfig)N.info(` \u2713 Shell PATH in ${Z(j.shellConfig)}`);if(B!=="curl"&&B!=="unknown"){let E={npm:"npm uninstall -g @qitqode/cli",pnpm:"pnpm uninstall -g @qitqode/cli",bun:"bun remove -g @qitqode/cli"};N.info(` \u2713 Package: ${E[B]||B}`)}}async function G(j,B){let E=D(),J=[];for(let H of B.directories){if(H.keep){N.step(`Skipping ${H.label} (--keep-${H.label.toLowerCase()})`);continue}if(!await V.access(H.path).then(()=>!0).catch(()=>!1))continue;E.start(`Removing ${H.label}...`);let O=await V.rm(H.path,{recursive:!0,force:!0}).catch((M)=>M);if(O){E.stop(`Failed to remove ${H.label}`,1),J.push(`${H.label}: ${O.message}`);continue}E.stop(`Removed ${H.label}`)}if(B.shellConfig){E.start("Cleaning shell config...");let H=await k(B.shellConfig).catch((K)=>K);if(H)E.stop("Failed to clean shell config",1),J.push(`Shell config: ${H.message}`);else E.stop("Cleaned shell config")}if(j!=="curl"&&j!=="unknown"){let K={npm:["npm","uninstall","-g","@qitqode/cli"],pnpm:["pnpm","uninstall","-g","@qitqode/cli"],bun:["bun","remove","-g","@qitqode/cli"]}[j];if(K){E.start(`Running ${K.join(" ")}...`);let O=await _.run(K,{nothrow:!0});if(O.code!==0)E.stop(`Package manager uninstall failed: exit code ${O.code}`,1),N.warn(`You may need to run manually: ${K.join(" ")}`);else E.stop("Package removed")}else N.warn(`Uninstall not supported for method "${j}" yet, skipping package removal`)}if(j==="curl"&&B.binary){Q.empty(),N.message("To finish removing the binary, run:"),N.info(` rm "${B.binary}"`);let H=L.dirname(B.binary);if(H.includes(".qitqode"))N.info(` rmdir "${H}" 2>/dev/null`)}if(J.length>0){Q.empty(),N.warn("Some operations failed:");for(let H of J)N.error(` ${H}`)}Q.empty(),N.success("Thank you for using QitQode!")}async function P(){let j=L.basename(process.env.SHELL||"bash"),B=R.homedir(),E=process.env.XDG_CONFIG_HOME||L.join(B,".config"),J={fish:[L.join(E,"fish","config.fish")],zsh:[L.join(B,".zshrc"),L.join(B,".zshenv"),L.join(E,"zsh",".zshrc"),L.join(E,"zsh",".zshenv")],bash:[L.join(B,".bashrc"),L.join(B,".bash_profile"),L.join(B,".profile"),L.join(E,"bash",".bashrc"),L.join(E,"bash",".bash_profile")],ash:[L.join(B,".ashrc"),L.join(B,".profile")],sh:[L.join(B,".profile")]},H=J[j]||J.bash;for(let K of H){if(!await V.access(K).then(()=>!0).catch(()=>!1))continue;let M=await Y.readText(K).catch(()=>"");if(M.includes("# qitqode")||M.includes(".qitqode/bin"))return K}return null}async function k(j){let E=(await Y.readText(j)).split(`
3
3
  `),J=[],H=!1;for(let O of E){let M=O.trim();if(M==="# qitqode"){H=!0;continue}if(H){if(H=!1,M.includes(".qitqode/bin")||M.includes("fish_add_path"))continue}if(M.startsWith("export PATH=")&&M.includes(".qitqode/bin")||M.startsWith("fish_add_path")&&M.includes(".qitqode"))continue;J.push(O)}while(J.length>0&&J[J.length-1].trim()==="")J.pop();let K=J.join(`
4
4
  `)+`
5
5
  `;await Y.write(j,K)}async function F(j){let B=0,E=async(J)=>{let H=await V.readdir(J,{withFileTypes:!0}).catch(()=>[]);for(let K of H){let O=L.join(J,K.name);if(K.isDirectory()){await E(O);continue}if(K.isFile()){let M=await V.stat(O).catch(()=>null);if(M)B+=M.size}}};return await E(j),B}function S(j){if(j<1024)return`${j} B`;if(j<1048576)return`${(j/1024).toFixed(1)} KB`;if(j<1073741824)return`${(j/1048576).toFixed(1)} MB`;return`${(j/1073741824).toFixed(1)} GB`}function Z(j){let B=R.homedir();if(j===B||j.startsWith(B+L.sep))return"~"+j.slice(B.length);return j}export{g as UninstallCommand};
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{An as C,Gn as K,jn as j,kn as R,ln as O,mn as A,sn as y,xn as q,yn as M}from"./chunk-bvf2dcq4.js";import{Nr as D}from"./chunk-ztyy3ga3.js";import{Es as m,Hs as v}from"./chunk-r5zy4za0.js";import{ft as d,ht as b,kt as I}from"./chunk-at22twxx.js";import{xO as T,yO as _}from"./chunk-r9w0thdk.js";import P from"path";function pt(t){let e=t&&typeof t==="object"&&"cause"in t?t.cause??t:t;if(!(e instanceof D.RunFailedError))return{error:e,detail:v(e),missing:!1};let r=e.stderr.toString().split(/\r?\n/).map((o)=>o.trim()).filter(Boolean),n=r.filter((o)=>o.startsWith("error:")).map((o)=>o.replace(/^error:\s*/,""));return{error:e,detail:n[0]??r.at(-1),missing:r.some((o)=>o.includes("No version matching"))}}var $={resolve:(t)=>q(t)},z={readText:(t)=>d.readText(t),write:async(t,e)=>{await d.write(t,e)},exists:(t)=>d.exists(t),files:(t,e)=>K(t,e)},G=z;function V(t){if(typeof t==="string")return t;if(!Array.isArray(t))return;if(typeof t[0]!=="string")return;return t[0]}function H(t){if(!t||typeof t!=="object"||Array.isArray(t))return;let e=t;if(!Array.isArray(e.plugin))return;return e.plugin}function Q(t){if(typeof t==="string"){let e=t.trim();if(e)return e;return}if(!m(t))return;for(let e of["import","default"]){let r=t[e];if(typeof r!=="string")continue;let n=r.trim();if(!n)continue;return n}}function U(t){if(!m(t))return;let e=t.config;if(!m(e))return;return e}function E(t,e){let r=t.exports;if(!m(r))return;let n=r[`./${e}`];if(!Q(n))return;return{opts:U(n)}}function X(t){let e=t.main;if(typeof e!=="string")return!1;return Boolean(e.trim())}function Y(t){let e=typeof t.json.name==="string"&&t.json.name.trim().length>0?t.json.name.trim():P.basename(t.dir),r=[],n=E(t.json,"server");if(n)r.push({kind:"server",opts:n.opts});else if(X(t.json))r.push({kind:"server"});let o=E(t.json,"tui");if(o)r.push({kind:"tui",opts:o.opts});if(!r.some((c)=>c.kind==="tui")&&C(e,t).length)r.push({kind:"tui"});return r}function g(t,e,r,n=!1){return A(t,O(t,e,r,{formattingOptions:{tabSize:2,insertSpaces:!0},isArrayInsertion:n}))}function Z(t,e,r,n,o=!1){let c=y(r).pkg,u=(e??[]).map((i,p)=>({item:i,i:p,spec:V(i)})).filter((i)=>{if(!i.spec)return!1;if(i.spec===r)return!0;if(i.spec.startsWith("file://"))return!1;return y(i.spec).pkg===c});if(!u.length){if(!e)return{mode:"add",text:g(t,["plugin"],[n])};return{mode:"add",text:g(t,["plugin",e.length],n,!0)}}if(!o)return{mode:"noop",text:t};let s=u[0];if(!s)return{mode:"noop",text:t};if(u.length===1&&s.spec===r)return{mode:"noop",text:t};let a=t;if(typeof s.item==="string")a=g(a,["plugin",s.i],n);if(Array.isArray(s.item)&&typeof s.item[0]==="string")a=g(a,["plugin",s.i,0],r);let l=u.map((i)=>i.i).filter((i)=>i!==s.i).sort((i,p)=>p-i);for(let i of l)a=g(a,["plugin",i],void 0);return{mode:"replace",text:a}}async function gt(t,e=$){let r=await e.resolve(t).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!r.ok)return{ok:!1,code:"install_failed",error:r.error};return{ok:!0,target:r.item}}async function dt(t){let e=await M(t).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!e.ok)return{ok:!1,code:"manifest_read_failed",file:t,error:e.error};let r=await Promise.resolve().then(()=>Y(e.item)).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!r.ok)return{ok:!1,code:"manifest_read_failed",file:e.item.pkg,error:r.error};if(!r.item.length)return{ok:!1,code:"manifest_no_targets",file:e.item.pkg};return{ok:!0,targets:r.item}}function tt(t){if(t.global)return t.config??I.Path.config;let r=t.vcs==="git"&&t.worktree!=="/"?t.worktree:t.directory;return P.join(r,".qitqode")}function et(t){if(t==="server")return"qitqode";return"tui"}async function rt(t,e,r,n,o){let x=[];try{let c=et(e.kind);const S=T(x,await b.acquire(`plug-config:${d.resolve(P.join(t,c))}`),1);let u=o.files(t,c);let s=u[0];for(let f of u){if(!await o.exists(f))continue;s=f;break}let a=await o.readText(s).catch((f)=>{if(f.code==="ENOENT")return"{}";return f});if(a instanceof Error)return{ok:!1,code:"patch_failed",kind:e.kind,error:a};let l=a.trim()?a:"{}";let i=[];let p=j(l,i,{allowTrailingComma:!0});if(i.length){let f=i[0],h=l.substring(0,f.offset).split(`
2
+ import{An as C,Gn as K,jn as j,kn as R,ln as O,mn as A,sn as y,xn as q,yn as M}from"./chunk-snqa3zsm.js";import{Nr as D}from"./chunk-ztyy3ga3.js";import{Es as m,Hs as v}from"./chunk-r5zy4za0.js";import{ft as d,ht as b,kt as I}from"./chunk-at22twxx.js";import{xO as T,yO as _}from"./chunk-r9w0thdk.js";import P from"path";function pt(t){let e=t&&typeof t==="object"&&"cause"in t?t.cause??t:t;if(!(e instanceof D.RunFailedError))return{error:e,detail:v(e),missing:!1};let r=e.stderr.toString().split(/\r?\n/).map((o)=>o.trim()).filter(Boolean),n=r.filter((o)=>o.startsWith("error:")).map((o)=>o.replace(/^error:\s*/,""));return{error:e,detail:n[0]??r.at(-1),missing:r.some((o)=>o.includes("No version matching"))}}var $={resolve:(t)=>q(t)},z={readText:(t)=>d.readText(t),write:async(t,e)=>{await d.write(t,e)},exists:(t)=>d.exists(t),files:(t,e)=>K(t,e)},G=z;function V(t){if(typeof t==="string")return t;if(!Array.isArray(t))return;if(typeof t[0]!=="string")return;return t[0]}function H(t){if(!t||typeof t!=="object"||Array.isArray(t))return;let e=t;if(!Array.isArray(e.plugin))return;return e.plugin}function Q(t){if(typeof t==="string"){let e=t.trim();if(e)return e;return}if(!m(t))return;for(let e of["import","default"]){let r=t[e];if(typeof r!=="string")continue;let n=r.trim();if(!n)continue;return n}}function U(t){if(!m(t))return;let e=t.config;if(!m(e))return;return e}function E(t,e){let r=t.exports;if(!m(r))return;let n=r[`./${e}`];if(!Q(n))return;return{opts:U(n)}}function X(t){let e=t.main;if(typeof e!=="string")return!1;return Boolean(e.trim())}function Y(t){let e=typeof t.json.name==="string"&&t.json.name.trim().length>0?t.json.name.trim():P.basename(t.dir),r=[],n=E(t.json,"server");if(n)r.push({kind:"server",opts:n.opts});else if(X(t.json))r.push({kind:"server"});let o=E(t.json,"tui");if(o)r.push({kind:"tui",opts:o.opts});if(!r.some((c)=>c.kind==="tui")&&C(e,t).length)r.push({kind:"tui"});return r}function g(t,e,r,n=!1){return A(t,O(t,e,r,{formattingOptions:{tabSize:2,insertSpaces:!0},isArrayInsertion:n}))}function Z(t,e,r,n,o=!1){let c=y(r).pkg,u=(e??[]).map((i,p)=>({item:i,i:p,spec:V(i)})).filter((i)=>{if(!i.spec)return!1;if(i.spec===r)return!0;if(i.spec.startsWith("file://"))return!1;return y(i.spec).pkg===c});if(!u.length){if(!e)return{mode:"add",text:g(t,["plugin"],[n])};return{mode:"add",text:g(t,["plugin",e.length],n,!0)}}if(!o)return{mode:"noop",text:t};let s=u[0];if(!s)return{mode:"noop",text:t};if(u.length===1&&s.spec===r)return{mode:"noop",text:t};let a=t;if(typeof s.item==="string")a=g(a,["plugin",s.i],n);if(Array.isArray(s.item)&&typeof s.item[0]==="string")a=g(a,["plugin",s.i,0],r);let l=u.map((i)=>i.i).filter((i)=>i!==s.i).sort((i,p)=>p-i);for(let i of l)a=g(a,["plugin",i],void 0);return{mode:"replace",text:a}}async function gt(t,e=$){let r=await e.resolve(t).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!r.ok)return{ok:!1,code:"install_failed",error:r.error};return{ok:!0,target:r.item}}async function dt(t){let e=await M(t).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!e.ok)return{ok:!1,code:"manifest_read_failed",file:t,error:e.error};let r=await Promise.resolve().then(()=>Y(e.item)).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!r.ok)return{ok:!1,code:"manifest_read_failed",file:e.item.pkg,error:r.error};if(!r.item.length)return{ok:!1,code:"manifest_no_targets",file:e.item.pkg};return{ok:!0,targets:r.item}}function tt(t){if(t.global)return t.config??I.Path.config;let r=t.vcs==="git"&&t.worktree!=="/"?t.worktree:t.directory;return P.join(r,".qitqode")}function et(t){if(t==="server")return"qitqode";return"tui"}async function rt(t,e,r,n,o){let x=[];try{let c=et(e.kind);const S=T(x,await b.acquire(`plug-config:${d.resolve(P.join(t,c))}`),1);let u=o.files(t,c);let s=u[0];for(let f of u){if(!await o.exists(f))continue;s=f;break}let a=await o.readText(s).catch((f)=>{if(f.code==="ENOENT")return"{}";return f});if(a instanceof Error)return{ok:!1,code:"patch_failed",kind:e.kind,error:a};let l=a.trim()?a:"{}";let i=[];let p=j(l,i,{allowTrailingComma:!0});if(i.length){let f=i[0],h=l.substring(0,f.offset).split(`
3
3
  `);return{ok:!1,code:"invalid_json",kind:e.kind,file:s,line:h.length,col:h[h.length-1].length+1,parse:R(f.error)}}let N=H(p);let F=e.opts?[r,e.opts]:r;let k=Z(l,N,r,F,n);if(k.mode==="noop")return{ok:!0,item:{kind:e.kind,mode:k.mode,file:s}};let w=await o.write(s,k.text).catch((f)=>f);if(w instanceof Error)return{ok:!1,code:"patch_failed",kind:e.kind,error:w};return{ok:!0,item:{kind:e.kind,mode:k.mode,file:s}}}catch(J){var B=J,L=1}finally{var W=_(x,B,L);W&&await W}}async function mt(t,e=G){let r=tt(t),n=[];for(let o of t.targets){let c=await rt(r,o,t.spec,Boolean(t.force),e);if(!c.ok)return{...c,dir:r};n.push(c.item)}return{ok:!0,dir:r,items:n}}
4
4
  export{pt as p,z as q,gt as r,dt as s,mt as t};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{Tl as f,Ul as Gj,Vl as Rj,Wl as Hj,Zl as s}from"./chunk-fsahzvd5.js";import{Jn as xj}from"./chunk-9zm6r55d.js";import{Pn as vj}from"./chunk-khzzmyk2.js";import{$q as Kj,Tq as P,Uq as wj,_q as k}from"./chunk-73r8bjjz.js";import{ds as a,es as y}from"./chunk-0vakk88p.js";import{Ns as I,Ws as h}from"./chunk-tr6rdr6h.js";import{ft as i,gt as Ij,ht as Jj,kt as Nj}from"./chunk-at22twxx.js";import{lt as j}from"./chunk-kgptyf7n.js";import{DE as o,TN as C,XJ as l,YE as d,eH as Q,zB as Wj}from"./chunk-qnvsqnz5.js";import{sO as Mj,uO as Oj,wO as Ej}from"./chunk-r9w0thdk.js";var tj={};Oj(tj,{stopRefresh:()=>aj,startRefresh:()=>sj,refresh:()=>jj,readModelCatalogResponse:()=>Pj,get:()=>fj,Provider:()=>cj,Model:()=>pj,MODEL_CATALOG_MAX_BYTES:()=>Aj,Data:()=>S});import hj from"path";var U={};Oj(U,{layer:()=>Bj,isPreview:()=>ij,isNewerVersion:()=>qj,isLocal:()=>mj,getReleaseType:()=>yj,defaultLayer:()=>uj,UpgradeFailedError:()=>x,USER_AGENT:()=>Sj,Service:()=>E,Installation:()=>U,Info:()=>Uj,Event:()=>Cj});var _j=(J)=>J.pipe(k.retryTransient({retryOn:"errors-and-responses",times:2,schedule:d.exponential(200).pipe(d.jittered)}));import Yj from"path";var z=Mj(xj(),1);import n from"crypto";import v from"fs";import Zj from"path";class H extends Error{constructor(J){super(J);this.name="SelfUpdateError"}}function $j(J){let V=J?.platform??process.platform,_=J?.arch??process.arch,$=J?.libc??"bionic",W=["qitqode",V==="win32"?"windows":V,_];if(_==="x64")W.push("baseline");if(V==="linux"&&$==="musl")W.push("musl");return`@qitqode/${W.join("-")}`}function kj(J,V){if(V.integrity){let _=V.integrity.match(/^(sha512|sha384|sha256)-([A-Za-z0-9+/=]+)$/);if(!_)throw new H(`registry returned an unrecognized integrity string: ${V.integrity}`);if(n.createHash(_[1]).update(J).digest("base64")!==_[2])throw new H(`checksum mismatch: downloaded tarball does not match the registry ${_[1]} integrity value; refusing to install`);return}if(V.shasum){if(n.createHash("sha1").update(J).digest("hex")!==V.shasum.toLowerCase())throw new H("checksum mismatch: downloaded tarball does not match the registry shasum; refusing to install");return}throw new H("registry provided no integrity metadata for the tarball; refusing to install")}function Qj(J,V){let _=(w,R)=>{let G=w,q=w+R;while(G<q&&J[G]!==0)G++;return new TextDecoder().decode(J.subarray(w,G))},$=0,W;while($+512<=J.length){if(J.subarray($,$+512).every((Z)=>Z===0))break;let R=_($+124,12).trim(),G=R?parseInt(R,8):0;if(!Number.isFinite(G)||G<0)throw new H("downloaded tarball is corrupt (bad tar header)");let q=String.fromCharCode(J[$+156]),B=_($,100),N=_($+345,155);if(N)B=`${N}/${B}`;if(W)B=W,W=void 0;let b=$+512,X=b+G;if(q==="L")W=new TextDecoder().decode(J.subarray(b,X)).replace(/\0+$/,"");else if((q==="0"||q==="\x00"||q==="")&&B===V)return J.slice(b,X);$=b+Math.ceil(G/512)*512}return}var A=(J)=>String(J instanceof Error?J.message:J),u=(J)=>Q.fail(new H(J)),p=(J,V)=>Q.try({try:J,catch:(_)=>new H(V(_))}),Xj=Q.fnUntraced(function*(J){let{target:V,execPath:_,packageName:$,registry:W}=J,w=J.gunzip??((K)=>Bun.gunzipSync(K)),R=Zj.dirname(_);yield*p(()=>v.accessSync(R,v.constants.W_OK),()=>`no write permission for ${R}; cannot replace ${_}. Fix the directory permissions or re-run with sufficient privileges.`);let G=`${W}/${$}/${encodeURIComponent(V)}`,B=(yield*J.fetchJson(G).pipe(Q.mapError((K)=>new H(`download failed: could not fetch ${$}@${V} from ${W} (${A(K)}). Check your network connection and that version ${V} exists.`))))?.dist;if(!B?.tarball)return yield*u(`registry response for ${$}@${V} has no tarball URL; cannot self-update`);let N=B.tarball,b=yield*J.fetchBytes(N).pipe(Q.mapError((K)=>new H(`download failed: could not download ${N} (${A(K)}). Check your network connection and try again.`)));yield*Q.try({try:()=>kj(b,B),catch:(K)=>K instanceof H?K:new H(A(K))});let X=yield*Q.try({try:()=>w(b),catch:()=>new H("downloaded tarball is corrupt (gunzip failed); try again")}),Z=Qj(X,"package/bin/qitqode")??Qj(X,"package/bin/qitqode.exe");if(!Z||Z.length===0)return yield*u(`tarball for ${$}@${V} does not contain the expected binary at bin/qitqode`);let O=Zj.join(R,`.qitqode-upgrade-${process.pid}`),Y=`${_}.backup-${process.pid}`,D=(K)=>{try{v.rmSync(K,{force:!0})}catch{}};yield*p(()=>v.writeFileSync(O,Z,{mode:493}),(K)=>{return D(O),`no write permission: could not write ${O} (${A(K)})`});let L=yield*J.runVersion(O).pipe(Q.mapError((K)=>{return D(O),new H(`downloaded binary failed its --version check (${A(K)}); keeping the current installation`)}));if(L.code!==0)return D(O),yield*u(`downloaded binary failed its --version check (exit ${L.code}); keeping the current installation`);let m=L.stdout.trim();if(m&&!m.includes(V))return D(O),yield*u(`downloaded binary reports version "${m}" instead of ${V}; keeping the current installation`);yield*p(()=>v.renameSync(_,Y),(K)=>{return D(O),`could not move the current binary aside (${A(K)}); check permissions on ${_}`}),yield*Q.try({try:()=>v.renameSync(O,_),catch:(K)=>{try{v.renameSync(Y,_)}catch{return new H(`failed to install the new binary AND failed to restore the old one; your previous binary is preserved at ${Y} \u2014 move it back to ${_} manually`)}return D(O),new H(`could not install the new binary (${A(K)}); the previous version was restored`)}}),D(Y)});var c=h.create({service:"installation"}),M="@qitqode/cli";function qj(J,V){if(!z.default.valid(J)||!z.default.valid(V))return!1;return z.default.gt(V,J)}var Cj={Updated:s.define("installation.updated",j.object({version:j.string()})),UpdateAvailable:s.define("installation.update-available",j.object({version:j.string()}))};function yj(J,V){if(!qj(J,V))throw Error(`Version ${V} is not newer than ${J}`);let _=z.default.major(J),$=z.default.minor(J),W=z.default.major(V),w=z.default.minor(V);if(W>_)return"major";if(w>$)return"minor";return"patch"}var Uj=j.object({version:j.string(),latest:j.string()}).meta({ref:"InstallationInfo"}),Sj=`qitqode/${y}/${a}/${I.QITQODE_CLIENT}`;function ij(){return y!=="latest"}function mj(){return y==="local"}class x extends C.TaggedErrorClass()("UpgradeFailedError",{stderr:C.String}){}var nj=C.Struct({version:C.String});class E extends Wj.Service()("@qitqode/Installation"){}var Bj=o.effect(E,Q.gen(function*(){let J=yield*k.HttpClient,V=k.filterStatusOk(_j(J)),_=yield*f.ChildProcessSpawner,$=(X,Z)=>Gj.make(X[0],X.slice(1),{cwd:Z?.cwd,env:Z?.env,extendEnv:!0}),W=Q.fnUntraced(function*(X){let Z=yield*Hj(_,X);return{code:Z.code,stdout:Z.text,stderr:Z.stderr}},Q.scoped),w=Q.fnUntraced(function*(X,Z){let O=yield*_.spawn($(X,Z)),Y=yield*l.mkString(l.decodeText(O.stdout));return yield*O.exitCode,Y},Q.scoped,Q.catch(()=>Q.succeed(""))),R=Q.fnUntraced(function*(X,Z){return yield*W($(X,Z))},Q.catch(()=>Q.succeed({code:f.ExitCode(1),stdout:"",stderr:""}))),G=Q.fn("Installation.method")(function*(){if(process.execPath.includes(Yj.join(".qitqode","bin")))return"curl";if(process.execPath.includes(Yj.join(".local","bin")))return"curl";let X=process.execPath.toLowerCase(),Z=[{name:"npm",command:()=>w(["npm","list","-g","--depth=0"])},{name:"pnpm",command:()=>w(["pnpm","list","-g","--depth=0"])},{name:"bun",command:()=>w(["bun","pm","ls","-g"])}];Z.sort((O,Y)=>{let D=X.includes(O.name),L=X.includes(Y.name);if(D&&!L)return-1;if(!D&&L)return 1;return 0});for(let O of Z)if((yield*O.command()).includes(M))return O.name;return"unknown"}),q=Q.fn("Installation.latest")(function*(X){let Z=X||(yield*G());if(Z==="curl"){let Y=(yield*w(["curl","-sI","https://github.com/qitqode/qitqode/releases/latest"])).match(/^location:.*\/tag\/v([0-9][^\s/]*)/im);if(Y)return Y[1];return yield*Q.die(Error("failed to resolve latest version from GitHub releases redirect"))}if(Z==="npm"||Z==="bun"||Z==="pnpm"){let Y=(yield*w(["npm","config","get","registry"])).trim()||"https://registry.npmjs.org",D=Y.endsWith("/")?Y.slice(0,-1):Y,L=yield*V.execute(P.get(`${D}/${encodeURIComponent(M)}/${y}`).pipe(P.acceptJson));return(yield*wj.schemaBodyJson(nj)(L)).version}return c.warn("unsupported update channel, skipping",{method:Z}),yield*Q.die(Error(`unsupported update channel: ${Z}`))},Q.orDie),B=Q.fnUntraced(function*(){let Z=(yield*w(["npm","config","get","registry"])).trim()||"https://registry.npmjs.org";return Z.endsWith("/")?Z.slice(0,-1):Z}),N=Q.fnUntraced(function*(X){let Z=yield*B();yield*Xj({target:X,execPath:process.env.QITQODE_SELF_UPDATE_TARGET_BINARY||process.execPath,packageName:$j(),registry:Z,fetchJson:(O)=>V.execute(P.get(O).pipe(P.acceptJson)).pipe(Q.flatMap((Y)=>Y.json)),fetchBytes:(O)=>V.execute(P.get(O)).pipe(Q.flatMap((Y)=>Y.arrayBuffer),Q.map((Y)=>new Uint8Array(Y))),runVersion:(O)=>R([O,"--version"]).pipe(Q.map((Y)=>({code:Y.code,stdout:Y.stdout})))}).pipe(Q.mapError((O)=>new x({stderr:O.message})))}),b=Q.fn("Installation.upgrade")(function*(X,Z){if(X==="curl"){yield*N(Z),c.info("upgraded",{method:X,target:Z});return}let Y=yield*(()=>{if(X==="npm")return R(["npm","install","-g",`${M}@${Z}`]);if(X==="pnpm")return R(["pnpm","install","-g",`${M}@${Z}`]);if(X==="bun")return R(["bun","install","-g",`${M}@${Z}`]);return new x({stderr:`Unknown method: ${X}`})})();if(Y.code!==0){let D=Y.stderr||"";return yield*new x({stderr:D})}c.info("upgraded",{method:X,target:Z,stdout:Y.stdout,stderr:Y.stderr}),yield*w([process.execPath,"--version"])});return E.of({info:Q.fn("Installation.info")(function*(){return{version:a,latest:yield*q()}}),method:G,latest:q,upgrade:b})})),uj=Bj.pipe(o.provide(Kj.layer),o.provide(Rj));var t=j.lazy(()=>j.union([j.string(),j.number(),j.boolean(),j.null(),j.array(t),j.record(j.string(),t)])),Dj=j.object({input:j.number(),output:j.number(),cache_read:j.number().optional(),cache_write:j.number().optional(),context_over_200k:j.object({input:j.number(),output:j.number(),cache_read:j.number().optional(),cache_write:j.number().optional()}).optional()}),r=j.object({id:j.string(),name:j.string(),family:j.string().optional(),release_date:j.string(),attachment:j.boolean(),reasoning:j.boolean(),temperature:j.boolean().optional(),tool_call:j.boolean(),interleaved:j.union([j.literal(!0),j.object({field:j.enum(["reasoning_content","reasoning_details"])}).strict()]).optional(),cost:Dj.optional(),limit:j.object({context:j.number(),input:j.number().optional(),output:j.number()}),modalities:j.object({input:j.array(j.enum(["text","audio","image","video","pdf"])),output:j.array(j.enum(["text","audio","image","video","pdf"]))}).optional(),experimental:j.object({modes:j.record(j.string(),j.object({cost:Dj.optional(),provider:j.object({body:j.record(j.string(),t).optional(),headers:j.record(j.string(),j.string()).optional()}).optional()})).optional()}).optional(),status:j.enum(["alpha","beta","deprecated"]).optional(),provider:j.object({npm:j.string().optional(),api:j.string().optional()}).optional()}),e=j.object({api:j.string().optional(),name:j.string(),env:j.array(j.string()),id:j.string(),npm:j.string().optional(),models:j.record(j.string(),r)});var Vj=h.create({service:"models.dev"}),bj=Fj(),F=hj.join(Nj.Path.cache,bj==="https://models.dev"?"models.json":`models-${Ij.fast(bj)}.json`),gj=300000,Aj=8388608,T,dj=j.record(j.string(),e),pj=r,cj=e;function Fj(){return I.QITQODE_MODELS_URL||"https://models.dev"}function lj(){return Date.now()-Number(i.stat(F)?.mtimeMs??0)<gj}function Lj(J){return!J&&lj()}function g(J){let V=dj.parse(typeof J==="string"?JSON.parse(J):J);for(let[_,$]of Object.entries(V))if($.id!==_)throw Error(`Invalid model provider: ${_}`);return V}async function zj(J){let V=await i.readJson(J).catch(()=>{return});if(!V)return;try{return g(V)}catch(_){Vj.warn("Ignoring invalid model catalog cache",{file:J,error:_});return}}async function Pj(J,V,_=Aj){let $=J.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase();if($!=="application/json"&&!$?.endsWith("+json"))throw Error(`Invalid model catalog content type: ${$||"missing"}`);let W=Number(J.headers.get("content-length"));if(Number.isFinite(W)&&W>_)throw Error("Model catalog response is too large");if(!J.body)return"";let w=J.body.getReader(),R=()=>void w.cancel(V.reason);V.addEventListener("abort",R,{once:!0});let G=new Uint8Array(_),q=0;try{for(;;){let B=await w.read();if(B.done)break;if(q+=B.value.byteLength,q>_)throw await w.cancel(),Error("Model catalog response is too large");G.set(B.value,q-B.value.byteLength)}}finally{V.removeEventListener("abort",R)}return new TextDecoder().decode(G.subarray(0,q))}var Tj=async()=>{let J=AbortSignal.timeout(1e4),V=await fetch(`${Fj()}/api.json`,{headers:{"User-Agent":U.USER_AGENT},signal:J});if(!V.ok)return;let _=g(await Pj(V,J));return JSON.stringify(_)},S=vj(async()=>{let J=await zj(I.QITQODE_MODELS_PATH??F);if(J)return J;let V=await import("./chunk-hwrrrbqd.js").then((_)=>g(_.snapshot)).catch(()=>{return});if(V)return V;if(I.QITQODE_DISABLE_MODELS_FETCH)return{};return Jj.withLock(`models-dev:${F}`,async()=>{let _=await zj(I.QITQODE_MODELS_PATH??F);if(_)return _;let $=await Tj();if($)return await i.write(F,$).catch((W)=>{Vj.error("Failed to write models cache",{error:W})}),g($);return{}})});async function fj(){return S()}async function jj(J=!1){if(Lj(J))return S.reset();await Jj.withLock(`models-dev:${F}`,async()=>{if(Lj(J))return S.reset();let V=await Tj();if(!V)return;await i.write(F,V),S.reset()}).catch((V)=>{Vj.error("Failed to fetch models.dev",{error:V})})}function sj(){if(T||I.QITQODE_DISABLE_MODELS_FETCH||process.argv.includes("--get-yargs-completions"))return;jj(),T=setInterval(async()=>{await jj()},3600000),T.unref()}function aj(){if(!T)return;clearInterval(T),T=void 0}
2
+ import{Tl as f,Ul as Gj,Vl as Rj,Wl as Hj,Zl as s}from"./chunk-6v5867cy.js";import{Jn as xj}from"./chunk-9zm6r55d.js";import{Pn as vj}from"./chunk-khzzmyk2.js";import{$q as Kj,Tq as P,Uq as wj,_q as k}from"./chunk-73r8bjjz.js";import{ds as a,es as y}from"./chunk-09geev0j.js";import{Ns as I,Ws as h}from"./chunk-tr6rdr6h.js";import{ft as i,gt as Ij,ht as Jj,kt as Nj}from"./chunk-at22twxx.js";import{lt as j}from"./chunk-kgptyf7n.js";import{DE as o,TN as C,XJ as l,YE as d,eH as Q,zB as Wj}from"./chunk-qnvsqnz5.js";import{sO as Mj,uO as Oj,wO as Ej}from"./chunk-r9w0thdk.js";var tj={};Oj(tj,{stopRefresh:()=>aj,startRefresh:()=>sj,refresh:()=>jj,readModelCatalogResponse:()=>Pj,get:()=>fj,Provider:()=>cj,Model:()=>pj,MODEL_CATALOG_MAX_BYTES:()=>Aj,Data:()=>S});import hj from"path";var U={};Oj(U,{layer:()=>Bj,isPreview:()=>ij,isNewerVersion:()=>qj,isLocal:()=>mj,getReleaseType:()=>yj,defaultLayer:()=>uj,UpgradeFailedError:()=>x,USER_AGENT:()=>Sj,Service:()=>E,Installation:()=>U,Info:()=>Uj,Event:()=>Cj});var _j=(J)=>J.pipe(k.retryTransient({retryOn:"errors-and-responses",times:2,schedule:d.exponential(200).pipe(d.jittered)}));import Yj from"path";var z=Mj(xj(),1);import n from"crypto";import v from"fs";import Zj from"path";class H extends Error{constructor(J){super(J);this.name="SelfUpdateError"}}function $j(J){let V=J?.platform??process.platform,_=J?.arch??process.arch,$=J?.libc??"bionic",W=["qitqode",V==="win32"?"windows":V,_];if(_==="x64")W.push("baseline");if(V==="linux"&&$==="musl")W.push("musl");return`@qitqode/${W.join("-")}`}function kj(J,V){if(V.integrity){let _=V.integrity.match(/^(sha512|sha384|sha256)-([A-Za-z0-9+/=]+)$/);if(!_)throw new H(`registry returned an unrecognized integrity string: ${V.integrity}`);if(n.createHash(_[1]).update(J).digest("base64")!==_[2])throw new H(`checksum mismatch: downloaded tarball does not match the registry ${_[1]} integrity value; refusing to install`);return}if(V.shasum){if(n.createHash("sha1").update(J).digest("hex")!==V.shasum.toLowerCase())throw new H("checksum mismatch: downloaded tarball does not match the registry shasum; refusing to install");return}throw new H("registry provided no integrity metadata for the tarball; refusing to install")}function Qj(J,V){let _=(w,R)=>{let G=w,q=w+R;while(G<q&&J[G]!==0)G++;return new TextDecoder().decode(J.subarray(w,G))},$=0,W;while($+512<=J.length){if(J.subarray($,$+512).every((Z)=>Z===0))break;let R=_($+124,12).trim(),G=R?parseInt(R,8):0;if(!Number.isFinite(G)||G<0)throw new H("downloaded tarball is corrupt (bad tar header)");let q=String.fromCharCode(J[$+156]),B=_($,100),N=_($+345,155);if(N)B=`${N}/${B}`;if(W)B=W,W=void 0;let b=$+512,X=b+G;if(q==="L")W=new TextDecoder().decode(J.subarray(b,X)).replace(/\0+$/,"");else if((q==="0"||q==="\x00"||q==="")&&B===V)return J.slice(b,X);$=b+Math.ceil(G/512)*512}return}var A=(J)=>String(J instanceof Error?J.message:J),u=(J)=>Q.fail(new H(J)),p=(J,V)=>Q.try({try:J,catch:(_)=>new H(V(_))}),Xj=Q.fnUntraced(function*(J){let{target:V,execPath:_,packageName:$,registry:W}=J,w=J.gunzip??((K)=>Bun.gunzipSync(K)),R=Zj.dirname(_);yield*p(()=>v.accessSync(R,v.constants.W_OK),()=>`no write permission for ${R}; cannot replace ${_}. Fix the directory permissions or re-run with sufficient privileges.`);let G=`${W}/${$}/${encodeURIComponent(V)}`,B=(yield*J.fetchJson(G).pipe(Q.mapError((K)=>new H(`download failed: could not fetch ${$}@${V} from ${W} (${A(K)}). Check your network connection and that version ${V} exists.`))))?.dist;if(!B?.tarball)return yield*u(`registry response for ${$}@${V} has no tarball URL; cannot self-update`);let N=B.tarball,b=yield*J.fetchBytes(N).pipe(Q.mapError((K)=>new H(`download failed: could not download ${N} (${A(K)}). Check your network connection and try again.`)));yield*Q.try({try:()=>kj(b,B),catch:(K)=>K instanceof H?K:new H(A(K))});let X=yield*Q.try({try:()=>w(b),catch:()=>new H("downloaded tarball is corrupt (gunzip failed); try again")}),Z=Qj(X,"package/bin/qitqode")??Qj(X,"package/bin/qitqode.exe");if(!Z||Z.length===0)return yield*u(`tarball for ${$}@${V} does not contain the expected binary at bin/qitqode`);let O=Zj.join(R,`.qitqode-upgrade-${process.pid}`),Y=`${_}.backup-${process.pid}`,D=(K)=>{try{v.rmSync(K,{force:!0})}catch{}};yield*p(()=>v.writeFileSync(O,Z,{mode:493}),(K)=>{return D(O),`no write permission: could not write ${O} (${A(K)})`});let L=yield*J.runVersion(O).pipe(Q.mapError((K)=>{return D(O),new H(`downloaded binary failed its --version check (${A(K)}); keeping the current installation`)}));if(L.code!==0)return D(O),yield*u(`downloaded binary failed its --version check (exit ${L.code}); keeping the current installation`);let m=L.stdout.trim();if(m&&!m.includes(V))return D(O),yield*u(`downloaded binary reports version "${m}" instead of ${V}; keeping the current installation`);yield*p(()=>v.renameSync(_,Y),(K)=>{return D(O),`could not move the current binary aside (${A(K)}); check permissions on ${_}`}),yield*Q.try({try:()=>v.renameSync(O,_),catch:(K)=>{try{v.renameSync(Y,_)}catch{return new H(`failed to install the new binary AND failed to restore the old one; your previous binary is preserved at ${Y} \u2014 move it back to ${_} manually`)}return D(O),new H(`could not install the new binary (${A(K)}); the previous version was restored`)}}),D(Y)});var c=h.create({service:"installation"}),M="@qitqode/cli";function qj(J,V){if(!z.default.valid(J)||!z.default.valid(V))return!1;return z.default.gt(V,J)}var Cj={Updated:s.define("installation.updated",j.object({version:j.string()})),UpdateAvailable:s.define("installation.update-available",j.object({version:j.string()}))};function yj(J,V){if(!qj(J,V))throw Error(`Version ${V} is not newer than ${J}`);let _=z.default.major(J),$=z.default.minor(J),W=z.default.major(V),w=z.default.minor(V);if(W>_)return"major";if(w>$)return"minor";return"patch"}var Uj=j.object({version:j.string(),latest:j.string()}).meta({ref:"InstallationInfo"}),Sj=`qitqode/${y}/${a}/${I.QITQODE_CLIENT}`;function ij(){return y!=="latest"}function mj(){return y==="local"}class x extends C.TaggedErrorClass()("UpgradeFailedError",{stderr:C.String}){}var nj=C.Struct({version:C.String});class E extends Wj.Service()("@qitqode/Installation"){}var Bj=o.effect(E,Q.gen(function*(){let J=yield*k.HttpClient,V=k.filterStatusOk(_j(J)),_=yield*f.ChildProcessSpawner,$=(X,Z)=>Gj.make(X[0],X.slice(1),{cwd:Z?.cwd,env:Z?.env,extendEnv:!0}),W=Q.fnUntraced(function*(X){let Z=yield*Hj(_,X);return{code:Z.code,stdout:Z.text,stderr:Z.stderr}},Q.scoped),w=Q.fnUntraced(function*(X,Z){let O=yield*_.spawn($(X,Z)),Y=yield*l.mkString(l.decodeText(O.stdout));return yield*O.exitCode,Y},Q.scoped,Q.catch(()=>Q.succeed(""))),R=Q.fnUntraced(function*(X,Z){return yield*W($(X,Z))},Q.catch(()=>Q.succeed({code:f.ExitCode(1),stdout:"",stderr:""}))),G=Q.fn("Installation.method")(function*(){if(process.execPath.includes(Yj.join(".qitqode","bin")))return"curl";if(process.execPath.includes(Yj.join(".local","bin")))return"curl";let X=process.execPath.toLowerCase(),Z=[{name:"npm",command:()=>w(["npm","list","-g","--depth=0"])},{name:"pnpm",command:()=>w(["pnpm","list","-g","--depth=0"])},{name:"bun",command:()=>w(["bun","pm","ls","-g"])}];Z.sort((O,Y)=>{let D=X.includes(O.name),L=X.includes(Y.name);if(D&&!L)return-1;if(!D&&L)return 1;return 0});for(let O of Z)if((yield*O.command()).includes(M))return O.name;return"unknown"}),q=Q.fn("Installation.latest")(function*(X){let Z=X||(yield*G());if(Z==="curl"){let Y=(yield*w(["curl","-sI","https://github.com/qitqode/qitqode/releases/latest"])).match(/^location:.*\/tag\/v([0-9][^\s/]*)/im);if(Y)return Y[1];return yield*Q.die(Error("failed to resolve latest version from GitHub releases redirect"))}if(Z==="npm"||Z==="bun"||Z==="pnpm"){let Y=(yield*w(["npm","config","get","registry"])).trim()||"https://registry.npmjs.org",D=Y.endsWith("/")?Y.slice(0,-1):Y,L=yield*V.execute(P.get(`${D}/${encodeURIComponent(M)}/${y}`).pipe(P.acceptJson));return(yield*wj.schemaBodyJson(nj)(L)).version}return c.warn("unsupported update channel, skipping",{method:Z}),yield*Q.die(Error(`unsupported update channel: ${Z}`))},Q.orDie),B=Q.fnUntraced(function*(){let Z=(yield*w(["npm","config","get","registry"])).trim()||"https://registry.npmjs.org";return Z.endsWith("/")?Z.slice(0,-1):Z}),N=Q.fnUntraced(function*(X){let Z=yield*B();yield*Xj({target:X,execPath:process.env.QITQODE_SELF_UPDATE_TARGET_BINARY||process.execPath,packageName:$j(),registry:Z,fetchJson:(O)=>V.execute(P.get(O).pipe(P.acceptJson)).pipe(Q.flatMap((Y)=>Y.json)),fetchBytes:(O)=>V.execute(P.get(O)).pipe(Q.flatMap((Y)=>Y.arrayBuffer),Q.map((Y)=>new Uint8Array(Y))),runVersion:(O)=>R([O,"--version"]).pipe(Q.map((Y)=>({code:Y.code,stdout:Y.stdout})))}).pipe(Q.mapError((O)=>new x({stderr:O.message})))}),b=Q.fn("Installation.upgrade")(function*(X,Z){if(X==="curl"){yield*N(Z),c.info("upgraded",{method:X,target:Z});return}let Y=yield*(()=>{if(X==="npm")return R(["npm","install","-g",`${M}@${Z}`]);if(X==="pnpm")return R(["pnpm","install","-g",`${M}@${Z}`]);if(X==="bun")return R(["bun","install","-g",`${M}@${Z}`]);return new x({stderr:`Unknown method: ${X}`})})();if(Y.code!==0){let D=Y.stderr||"";return yield*new x({stderr:D})}c.info("upgraded",{method:X,target:Z,stdout:Y.stdout,stderr:Y.stderr}),yield*w([process.execPath,"--version"])});return E.of({info:Q.fn("Installation.info")(function*(){return{version:a,latest:yield*q()}}),method:G,latest:q,upgrade:b})})),uj=Bj.pipe(o.provide(Kj.layer),o.provide(Rj));var t=j.lazy(()=>j.union([j.string(),j.number(),j.boolean(),j.null(),j.array(t),j.record(j.string(),t)])),Dj=j.object({input:j.number(),output:j.number(),cache_read:j.number().optional(),cache_write:j.number().optional(),context_over_200k:j.object({input:j.number(),output:j.number(),cache_read:j.number().optional(),cache_write:j.number().optional()}).optional()}),r=j.object({id:j.string(),name:j.string(),family:j.string().optional(),release_date:j.string(),attachment:j.boolean(),reasoning:j.boolean(),temperature:j.boolean().optional(),tool_call:j.boolean(),interleaved:j.union([j.literal(!0),j.object({field:j.enum(["reasoning_content","reasoning_details"])}).strict()]).optional(),cost:Dj.optional(),limit:j.object({context:j.number(),input:j.number().optional(),output:j.number()}),modalities:j.object({input:j.array(j.enum(["text","audio","image","video","pdf"])),output:j.array(j.enum(["text","audio","image","video","pdf"]))}).optional(),experimental:j.object({modes:j.record(j.string(),j.object({cost:Dj.optional(),provider:j.object({body:j.record(j.string(),t).optional(),headers:j.record(j.string(),j.string()).optional()}).optional()})).optional()}).optional(),status:j.enum(["alpha","beta","deprecated"]).optional(),provider:j.object({npm:j.string().optional(),api:j.string().optional()}).optional()}),e=j.object({api:j.string().optional(),name:j.string(),env:j.array(j.string()),id:j.string(),npm:j.string().optional(),models:j.record(j.string(),r)});var Vj=h.create({service:"models.dev"}),bj=Fj(),F=hj.join(Nj.Path.cache,bj==="https://models.dev"?"models.json":`models-${Ij.fast(bj)}.json`),gj=300000,Aj=8388608,T,dj=j.record(j.string(),e),pj=r,cj=e;function Fj(){return I.QITQODE_MODELS_URL||"https://models.dev"}function lj(){return Date.now()-Number(i.stat(F)?.mtimeMs??0)<gj}function Lj(J){return!J&&lj()}function g(J){let V=dj.parse(typeof J==="string"?JSON.parse(J):J);for(let[_,$]of Object.entries(V))if($.id!==_)throw Error(`Invalid model provider: ${_}`);return V}async function zj(J){let V=await i.readJson(J).catch(()=>{return});if(!V)return;try{return g(V)}catch(_){Vj.warn("Ignoring invalid model catalog cache",{file:J,error:_});return}}async function Pj(J,V,_=Aj){let $=J.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase();if($!=="application/json"&&!$?.endsWith("+json"))throw Error(`Invalid model catalog content type: ${$||"missing"}`);let W=Number(J.headers.get("content-length"));if(Number.isFinite(W)&&W>_)throw Error("Model catalog response is too large");if(!J.body)return"";let w=J.body.getReader(),R=()=>void w.cancel(V.reason);V.addEventListener("abort",R,{once:!0});let G=new Uint8Array(_),q=0;try{for(;;){let B=await w.read();if(B.done)break;if(q+=B.value.byteLength,q>_)throw await w.cancel(),Error("Model catalog response is too large");G.set(B.value,q-B.value.byteLength)}}finally{V.removeEventListener("abort",R)}return new TextDecoder().decode(G.subarray(0,q))}var Tj=async()=>{let J=AbortSignal.timeout(1e4),V=await fetch(`${Fj()}/api.json`,{headers:{"User-Agent":U.USER_AGENT},signal:J});if(!V.ok)return;let _=g(await Pj(V,J));return JSON.stringify(_)},S=vj(async()=>{let J=await zj(I.QITQODE_MODELS_PATH??F);if(J)return J;let V=await import("./chunk-hwrrrbqd.js").then((_)=>g(_.snapshot)).catch(()=>{return});if(V)return V;if(I.QITQODE_DISABLE_MODELS_FETCH)return{};return Jj.withLock(`models-dev:${F}`,async()=>{let _=await zj(I.QITQODE_MODELS_PATH??F);if(_)return _;let $=await Tj();if($)return await i.write(F,$).catch((W)=>{Vj.error("Failed to write models cache",{error:W})}),g($);return{}})});async function fj(){return S()}async function jj(J=!1){if(Lj(J))return S.reset();await Jj.withLock(`models-dev:${F}`,async()=>{if(Lj(J))return S.reset();let V=await Tj();if(!V)return;await i.write(F,V),S.reset()}).catch((V)=>{Vj.error("Failed to fetch models.dev",{error:V})})}function sj(){if(T||I.QITQODE_DISABLE_MODELS_FETCH||process.argv.includes("--get-yargs-completions"))return;jj(),T=setInterval(async()=>{await jj()},3600000),T.unref()}function aj(){if(!T)return;clearInterval(T),T=void 0}
3
3
  export{_j as el,U as fl,Aj as gl,pj as hl,cj as il,Pj as jl,S as kl,fj as ll,jj as ml,sj as nl,aj as ol,tj as pl};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
2
  import{Pn as G$}from"./chunk-khzzmyk2.js";import{Jr as A$}from"./chunk-ztyy3ga3.js";import{Or as k$}from"./chunk-mmjgf680.js";import{$s as KZ,Xs as Y$,Ys as U$,_s as CZ}from"./chunk-at22twxx.js";import{lt as SZ}from"./chunk-kgptyf7n.js";import{$z as oZ,BA as rZ,BE as RZ,BF as h,BJ as X$,CA as sZ,CF as K$,Dz as a,EF as c,EG as EZ,FF as vZ,GJ as JZ,JJ as fZ,KJ as iZ,LH as YZ,MD as Z$,OH as V$,OJ as PZ,PF as IZ,PJ as lZ,RI as d,SF as zZ,SG as p,TD as $$,TI as m,TJ as cZ,UD as E,WD as WZ,Wz as L,XD as q$,XJ as v,Xz as eZ,ZJ as B$,Zz as ZZ,eH as P,fK as F$,hF as $Z,iF as LZ,jF as qZ,jG as xZ,kF as f,kG as Q$,kJ as DZ,mB as gZ,mF as jZ,oF as D$,oJ as C,pF as i,sF as J$,vF as o,wE as z$,wJ as r,xA as kZ,xF as l}from"./chunk-qnvsqnz5.js";import{sO as u$,uO as BZ,wO as h$}from"./chunk-r9w0thdk.js";var pZ={};BZ(pZ,{makeHandle:()=>AZ,make:()=>GZ,ProcessId:()=>UZ,ExitCode:()=>FZ,ChildProcessSpawner:()=>W});var FZ=YZ(),UZ=YZ(),hZ="~effect/ChildProcessSpawner/ChildProcessHandle",j$={[hZ]:hZ,...kZ,toJSON(){return{_id:"ChildProcessHandle",pid:this.pid}}},AZ=(Z)=>Object.assign(Object.create(j$),Z),GZ=(Z)=>{let q=(B,Q)=>Z(B).pipe(h((U)=>fZ(Q?.includeStderr===!0?U.all:U.stdout)),r),z=(B,Q)=>iZ(q(B,Q));return W.of({spawn:Z,exitCode:(B)=>xZ(o(Z(B),(Q)=>Q.exitCode)),streamString:q,streamLines:z,lines:(B,Q)=>lZ(z(B,Q)),string:(B,Q)=>cZ(q(B,Q))})};class W extends gZ()("effect/process/ChildProcessSpawner"){}var x={};BZ(x,{setEnv:()=>HZ,setCwd:()=>yZ,prefix:()=>C$,pipeTo:()=>P$,parseFdName:()=>g,make:()=>k,isStandardCommand:()=>I$,isPipedCommand:()=>E$,isCommand:()=>s,fdName:()=>NZ});var MZ="~effect/unstable/process/ChildProcess",aZ={...rZ,...sZ,[MZ]:MZ,asEffect(){return W.use((Z)=>Z.spawn(this))}},s=(Z)=>oZ(Z,MZ),I$=(Z)=>Z._tag==="StandardCommand",E$=(Z)=>Z._tag==="PipedCommand",I=(Z,q,z)=>Object.assign(Object.create(aZ),{_tag:"StandardCommand",command:Z,args:q,options:z}),e=(Z,q,z={})=>Object.assign(Object.create(aZ),{_tag:"PipedCommand",left:Z,right:q,options:z}),k=function(...q){if(OZ(q[0])){let[U,...A]=q,G=bZ(U,A);return I(G[0]??"",G.slice(1),{})}if(typeof q[0]==="object"&&!Array.isArray(q[0])&&!OZ(q[0])){let U=q[0];return function(A,...G){let b=bZ(A,G);return I(b[0]??"",b.slice(1),U)}}if(typeof q[0]==="string"&&!Array.isArray(q[1])){let[U,A={}]=q;return I(U,[],A)}let[z,B=[],Q={}]=q;return I(z,B,Q)},P$=a((Z)=>s(Z[0])&&s(Z[1]),(Z,q,z)=>e(Z,q,z??{})),C$=function(...q){if(s(q[0])&&q.length>1){let[B,...Q]=q,U=dZ(Q);return _Z(B,U)}let z=dZ(q);return(B)=>_Z(B,z)},dZ=(Z)=>{if(OZ(Z[0])){let[B,...Q]=Z,U=bZ(B,Q);return{command:U[0]??"",args:U.slice(1)}}let[q,z=[]]=Z;return{command:q,args:z}},_Z=(Z,q)=>{switch(Z._tag){case"StandardCommand":return I(q.command,[...q.args,Z.command,...Z.args],Z.options);case"PipedCommand":return e(_Z(Z.left,q),Z.right,Z.options)}},yZ=a(2,(Z,q)=>{switch(Z._tag){case"StandardCommand":return I(Z.command,Z.args,{...Z.options,cwd:q});case"PipedCommand":return e(yZ(Z.left,q),yZ(Z.right,q),Z.options)}}),HZ=a(2,(Z,q)=>{switch(Z._tag){case"StandardCommand":{let z=Z.options.env===void 0?q:{...Z.options.env,...q};return I(Z.command,Z.args,{...Z.options,env:z})}case"PipedCommand":return e(HZ(Z.left,q),HZ(Z.right,q),Z.options)}}),OZ=(Z)=>Array.isArray(Z)&&("raw"in Z)&&Array.isArray(Z.raw),g=(Z)=>{let q=/^fd(\d+)$/.exec(Z);if(q===null)return;let z=parseInt(q[1],10);return z>=3?z:void 0},NZ=(Z)=>`fd${Z}`,bZ=(Z,q)=>{let z=[];for(let[B,Q]of Z.entries())z=S$(Z,q,z,Q,B);return z},S$=(Z,q,z,B,Q)=>{let U=Z.raw[Q];if(U===void 0)throw Error(`Invalid backslash sequence: ${Z.raw[Q]}`);let{hasLeadingWhitespace:A,hasTrailingWhitespace:G,tokens:b}=w$(B,U),N=nZ(z,b,A);if(Q===q.length)return N;let S=q[Q],QZ=Array.isArray(S)?S.map((VZ)=>mZ(VZ)):[mZ(S)];return nZ(N,QZ,G)},mZ=(Z)=>{if(typeof Z==="string")return Z;return String(Z)},tZ=new Set([" ","\t","\r",`
3
3
  `]),T$={x:3,u:5},w$=(Z,q)=>{if(q.length===0)return{tokens:[],hasLeadingWhitespace:!1,hasTrailingWhitespace:!1};let z=tZ.has(q[0]),B=[],Q=0;for(let A=0,G=0;A<Z.length;A+=1,G+=1){let b=q[G];if(tZ.has(b)){if(Q!==A)B.push(Z.slice(Q,A));Q=A+1}else if(b==="\\"){let N=q[G+1];if(N===`
4
- `)A-=1,G+=1;else if(N==="u"&&q[G+2]==="{")G=q.indexOf("}",G+3);else G+=T$[N]??1}}let U=Q===Z.length;if(!U)B.push(Z.slice(Q));return{tokens:B,hasLeadingWhitespace:z,hasTrailingWhitespace:U}},nZ=(Z,q,z)=>z||Z.length===0||q.length===0?[...Z,...q]:[...Z.slice(0,-1),`${Z.at(-1)}${q.at(0)}`,...q.slice(1)];var _$=u$(k$(),1);import*as M$ from"child_process";import{PassThrough as g$}from"stream";var R=(Z)=>Z instanceof globalThis.Error?Z:new globalThis.Error(String(Z)),x$=(Z)=>{switch(Z.code){case"ENOENT":return"NotFound";case"EACCES":return"PermissionDenied";case"EEXIST":return"AlreadyExists";case"EISDIR":return"BadResource";case"ENOTDIR":return"BadResource";case"EBUSY":return"Busy";case"ELOOP":return"BadResource";default:return"Unknown"}},y$=(Z)=>{let q=[],z=[],B=(A)=>{switch(A._tag){case"StandardCommand":q.push(A);return;case"PipedCommand":B(A.left),z.push(A.options),B(A.right);return}};if(B(Z),q.length===0)throw Error("flatten produced empty commands array");let[Q,...U]=q;return{commands:[Q,...U],opts:z}},O=(Z,q,z)=>{let B=y$(z).commands.map((Q)=>`${Q.command} ${Q.args.join(" ")}`).join(" | ");return V$({_tag:x$(q),module:"ChildProcess",method:Z,pathOrDescriptor:B,syscall:q.syscall,cause:q})},f$=D$(function*(){let Z=yield*B$,q=yield*F$,z=p(function*($){if(L($.cwd))return;return yield*Z.access($.cwd),q.resolve($.cwd)}),B=($)=>$.extendEnv?{...A$(),...$.env}:$.env,Q=($)=>DZ($)?"pipe":$,U=($)=>d($)?"pipe":$,A=($)=>{let D={stream:"pipe",encoding:"utf-8",endOnDone:!0};if(L($.stdin))return D;if(typeof $.stdin==="string")return{...D,stream:$.stdin};if(DZ($.stdin))return{...D,stream:$.stdin};return{stream:$.stdin.stream,encoding:$.stdin.encoding??D.encoding,endOnDone:$.stdin.endOnDone??D.endOnDone}},G=($,D)=>{let J=$[D];if(L(J))return{stream:"pipe"};if(typeof J==="string")return{stream:J};if(d(J))return{stream:J};return{stream:J.stream}},b=($)=>{if(L($.additionalFds))return[];return Object.entries($.additionalFds).flatMap(([D,J])=>{let K=g(D);return L(K)?[]:[{fd:K,config:J}]}).toSorted((D,J)=>D.fd-J.fd)},N=($,D,J,K)=>{let X=(F)=>process.platform==="win32"&&F==="pipe"?"overlapped":F,Y=[X(Q($.stream)),X(U(D.stream)),X(U(J.stream))];if(K.length===0)return Y;let V=K.reduce((F,_)=>Math.max(F,_.fd),2);for(let F=3;F<=V;F++)Y[F]="ignore";for(let F of K)Y[F.fd]=X("pipe");return Y},S=p(function*($,D,J){if(J.length===0)return{getInputFd:()=>m,getOutputFd:()=>C};let K=new Map,X=new Map;for(let Y of J){let V=D.stdio[Y.fd];switch(Y.config.type){case"input":{let F=m;if(V&&"write"in V)F=CZ.fromWritable({evaluate:()=>V,onError:(_)=>O(`fromWritable(fd${Y.fd})`,R(_),$),endOnDone:!0});if(Y.config.stream)yield*EZ(PZ(Y.config.stream,F));K.set(Y.fd,F);break}case"output":{let F=C;if(V&&"read"in V){let _=new g$;V.on("error",(y)=>_.destroy(R(y))),V.pipe(_),F=KZ.fromReadable({evaluate:()=>_,onError:(y)=>O(`fromReadable(fd${Y.fd})`,R(y),$)})}if(Y.config.sink)F=JZ(F,Y.config.sink);X.set(Y.fd,F);break}}}return{getInputFd:(Y)=>K.get(Y)??m,getOutputFd:(Y)=>X.get(Y)??C}}),QZ=($,D,J)=>LZ(()=>{let K=m;if(ZZ(D.stdin))K=CZ.fromWritable({evaluate:()=>D.stdin,onError:(X)=>O("fromWritable(stdin)",R(X),$),endOnDone:J.endOnDone,encoding:J.encoding});if(DZ(J.stream))return K$(EZ(PZ(J.stream,K)),K);return $Z(K)}),VZ=($,D,J,K)=>{let X=D.stdout?KZ.fromReadable({evaluate:()=>D.stdout,onError:(V)=>O("fromReadable(stdout)",R(V),$)}):C,Y=D.stderr?KZ.fromReadable({evaluate:()=>D.stderr,onError:(V)=>O("fromReadable(stderr)",R(V),$)}):C;if(d(J.stream))X=JZ(X,J.stream);if(d(K.stream))Y=JZ(Y,K.stream);return{stdout:X,stderr:Y,all:X$(X,Y)}},b$=($,D)=>jZ((J)=>{let K=$$(),X=_$.default($.command,$.args,D),Y=!1,V;return X.on("error",(F)=>{J(i(O("spawn",F,$)))}),X.on("exit",(...F)=>{V=F}),X.on("close",(...F)=>{if(Y)return;Y=!0,q$(K,Z$(V??F))}),X.on("spawn",()=>{J($Z([X,K]))}),qZ(()=>{X.kill("SIGTERM")})}),XZ=($,D,J)=>{if(globalThis.process.platform==="win32")return jZ((K)=>{M$.exec(`taskkill /pid ${D.pid} /T /F`,{windowsHide:!0},(X)=>{if(X)return K(i(O("kill",R(X),$)));K(f)})});return J$({try:()=>{globalThis.process.kill(-D.pid,J)},catch:(K)=>O("kill",R(K),$)})},wZ=($,D,J)=>LZ(()=>{if(D.kill(J))return f;return i(O("kill",Error("Failed to kill child process"),$))}),N$=($,D,J)=>(K)=>{let X=J?.killSignal??"SIGTERM";if(L(J?.forceKillAfter))return K(D,$,X);return zZ(K(D,$,X),{duration:J.forceKillAfter,orElse:()=>K(D,$,"SIGKILL")})},W$=($,D)=>{let J=D??"stdout";switch(J){case"stdout":return $.stdout;case"stderr":return $.stderr;case"all":return $.all;default:{let K=g(J);return eZ(K)?$.getOutputFd(K):$.stdout}}},T=p(function*($){switch($._tag){case"StandardCommand":{let D=A($.options),J=G($.options,"stdout"),K=G($.options,"stderr"),X=b($.options),Y=yield*z($.options),[V,F]=yield*Q$(b$($,{cwd:Y,env:B($.options),stdio:N(D,J,K,X),detached:$.options.detached??process.platform!=="win32",shell:$.options.shell,windowsHide:process.platform==="win32"}),p(function*([M,H]){let t=yield*WZ(H),n=N$(M,$,$.options);if(t){let[u]=yield*E(H);if(process.platform==="win32")return yield*f;if(u!==0&&ZZ(u))return yield*IZ(n(XZ));return yield*f}let w=(u)=>vZ(XZ($,M,u),()=>wZ($,M,u)),R$=$.options.killSignal??"SIGTERM",uZ=w(R$).pipe(l(E(H)),c),L$=$.options.forceKillAfter?zZ(uZ,{duration:$.options.forceKillAfter,orElse:()=>w("SIGKILL").pipe(l(E(H)),c)}):uZ;return yield*IZ(L$)})),_=yield*S($,V,X),y=VZ($,V,J,K),j=!0;return AZ({pid:UZ(V.pid),stdin:yield*QZ($,V,D),stdout:y.stdout,stderr:y.stderr,all:y.all,getInputFd:_.getInputFd,getOutputFd:_.getOutputFd,isRunning:h(WZ(F),(M)=>!M),exitCode:o(E(F),([M,H])=>{if(ZZ(M))return $Z(FZ(M));return i(O("exitCode",Error(`Process interrupted due to receipt of signal: '${H}'`),$))}),kill:(M)=>{let H=M?.killSignal??"SIGTERM",t=(w)=>vZ(XZ($,V,w),()=>wZ($,V,w)),n=t(H).pipe(l(E(F)),c);if(!M?.forceKillAfter)return n;return zZ(n,{duration:M.forceKillAfter,orElse:()=>t("SIGKILL").pipe(l(E(F)),c)})},unref:qZ(()=>{if(j)V.unref(),j=!1;return qZ(()=>{if(!j)V.ref(),j=!0})})})}case"PipedCommand":{let D=y$($),[J,...K]=D.commands,X=T(J);for(let Y=0;Y<K.length;Y++){let V=K[Y],F=D.opts[Y]??{},_=A(V.options),y=r(h(X,(H)=>W$(H,F.from))),j=F.to??"stdin";if(j==="stdin"){X=T(k(V.command,V.args,{...V.options,stdin:{..._,stream:y}}));continue}let M=g(j);if(L(M)){X=T(k(V.command,V.args,{...V.options,stdin:{..._,stream:y}}));continue}X=T(k(V.command,V.args,{...V.options,additionalFds:{...V.options.additionalFds,[NZ(M)]:{type:"input",stream:y}}}))}return yield*X}}});return GZ(T)}),i$=z$(W,f$),l$=i$.pipe(RZ(Y$.layer),RZ(U$)),Bq=G$(async()=>{let{makeRuntime:Z}=await import("./chunk-z8mj4z6e.js");return Z(W,l$)});var H$=(Z,q)=>P.gen(function*(){let z=yield*Z.spawn(q),[B,Q]=yield*P.all([v.mkString(v.decodeText(z.stdout)),v.mkString(v.decodeText(z.stderr))],{concurrency:2});return{code:yield*z.exitCode,text:B,stderr:Q}}).pipe(P.scoped),Mq=H$,_q=(Z,q,z)=>H$(Z,x.make("git",q,{cwd:z?.cwd,extendEnv:!0,stdin:"ignore"}));var TZ={};BZ(TZ,{payloads:()=>p$,define:()=>c$,BusEvent:()=>TZ});var O$=new Map;function c$(Z,q){let z={type:Z,properties:q};return O$.set(Z,z),z}function p$(){return O$.entries().map(([Z,q])=>{return SZ.object({type:SZ.literal(Z),properties:q.properties}).meta({ref:`Event.${q.type}`})}).toArray()}
4
+ `)A-=1,G+=1;else if(N==="u"&&q[G+2]==="{")G=q.indexOf("}",G+3);else G+=T$[N]??1}}let U=Q===Z.length;if(!U)B.push(Z.slice(Q));return{tokens:B,hasLeadingWhitespace:z,hasTrailingWhitespace:U}},nZ=(Z,q,z)=>z||Z.length===0||q.length===0?[...Z,...q]:[...Z.slice(0,-1),`${Z.at(-1)}${q.at(0)}`,...q.slice(1)];var _$=u$(k$(),1);import*as M$ from"child_process";import{PassThrough as g$}from"stream";var R=(Z)=>Z instanceof globalThis.Error?Z:new globalThis.Error(String(Z)),x$=(Z)=>{switch(Z.code){case"ENOENT":return"NotFound";case"EACCES":return"PermissionDenied";case"EEXIST":return"AlreadyExists";case"EISDIR":return"BadResource";case"ENOTDIR":return"BadResource";case"EBUSY":return"Busy";case"ELOOP":return"BadResource";default:return"Unknown"}},y$=(Z)=>{let q=[],z=[],B=(A)=>{switch(A._tag){case"StandardCommand":q.push(A);return;case"PipedCommand":B(A.left),z.push(A.options),B(A.right);return}};if(B(Z),q.length===0)throw Error("flatten produced empty commands array");let[Q,...U]=q;return{commands:[Q,...U],opts:z}},O=(Z,q,z)=>{let B=y$(z).commands.map((Q)=>`${Q.command} ${Q.args.join(" ")}`).join(" | ");return V$({_tag:x$(q),module:"ChildProcess",method:Z,pathOrDescriptor:B,syscall:q.syscall,cause:q})},f$=D$(function*(){let Z=yield*B$,q=yield*F$,z=p(function*($){if(L($.cwd))return;return yield*Z.access($.cwd),q.resolve($.cwd)}),B=($)=>$.extendEnv?{...A$(),...$.env}:$.env,Q=($)=>DZ($)?"pipe":$,U=($)=>d($)?"pipe":$,A=($)=>{let D={stream:"pipe",encoding:"utf-8",endOnDone:!0};if(L($.stdin))return D;if(typeof $.stdin==="string")return{...D,stream:$.stdin};if(DZ($.stdin))return{...D,stream:$.stdin};return{stream:$.stdin.stream,encoding:$.stdin.encoding??D.encoding,endOnDone:$.stdin.endOnDone??D.endOnDone}},G=($,D)=>{let J=$[D];if(L(J))return{stream:"pipe"};if(typeof J==="string")return{stream:J};if(d(J))return{stream:J};return{stream:J.stream}},b=($)=>{if(L($.additionalFds))return[];return Object.entries($.additionalFds).flatMap(([D,J])=>{let K=g(D);return L(K)?[]:[{fd:K,config:J}]}).toSorted((D,J)=>D.fd-J.fd)},N=($,D,J,K)=>{let X=(F)=>process.platform==="win32"&&F==="pipe"?"overlapped":F,Y=[X(Q($.stream)),X(U(D.stream)),X(U(J.stream))];if(K.length===0)return Y;let V=K.reduce((F,_)=>Math.max(F,_.fd),2);for(let F=3;F<=V;F++)Y[F]="ignore";for(let F of K)Y[F.fd]=X("pipe");return Y},S=p(function*($,D,J){if(J.length===0)return{getInputFd:()=>m,getOutputFd:()=>C};let K=new Map,X=new Map;for(let Y of J){let V=D.stdio[Y.fd];switch(Y.config.type){case"input":{let F=m;if(V&&"write"in V)F=CZ.fromWritable({evaluate:()=>V,onError:(_)=>O(`fromWritable(fd${Y.fd})`,R(_),$),endOnDone:!0});if(Y.config.stream)yield*EZ(PZ(Y.config.stream,F));K.set(Y.fd,F);break}case"output":{let F=C;if(V&&"read"in V){let _=new g$;V.on("error",(y)=>_.destroy(R(y))),V.pipe(_),F=KZ.fromReadable({evaluate:()=>_,onError:(y)=>O(`fromReadable(fd${Y.fd})`,R(y),$)})}if(Y.config.sink)F=JZ(F,Y.config.sink);X.set(Y.fd,F);break}}}return{getInputFd:(Y)=>K.get(Y)??m,getOutputFd:(Y)=>X.get(Y)??C}}),QZ=($,D,J)=>LZ(()=>{let K=m;if(ZZ(D.stdin))K=CZ.fromWritable({evaluate:()=>D.stdin,onError:(X)=>O("fromWritable(stdin)",R(X),$),endOnDone:J.endOnDone,encoding:J.encoding});if(DZ(J.stream))return K$(EZ(PZ(J.stream,K)),K);return $Z(K)}),VZ=($,D,J,K)=>{let X=D.stdout?KZ.fromReadable({evaluate:()=>D.stdout,onError:(V)=>O("fromReadable(stdout)",R(V),$)}):C,Y=D.stderr?KZ.fromReadable({evaluate:()=>D.stderr,onError:(V)=>O("fromReadable(stderr)",R(V),$)}):C;if(d(J.stream))X=JZ(X,J.stream);if(d(K.stream))Y=JZ(Y,K.stream);return{stdout:X,stderr:Y,all:X$(X,Y)}},b$=($,D)=>jZ((J)=>{let K=$$(),X=_$.default($.command,$.args,D),Y=!1,V;return X.on("error",(F)=>{J(i(O("spawn",F,$)))}),X.on("exit",(...F)=>{V=F}),X.on("close",(...F)=>{if(Y)return;Y=!0,q$(K,Z$(V??F))}),X.on("spawn",()=>{J($Z([X,K]))}),qZ(()=>{X.kill("SIGTERM")})}),XZ=($,D,J)=>{if(globalThis.process.platform==="win32")return jZ((K)=>{M$.exec(`taskkill /pid ${D.pid} /T /F`,{windowsHide:!0},(X)=>{if(X)return K(i(O("kill",R(X),$)));K(f)})});return J$({try:()=>{globalThis.process.kill(-D.pid,J)},catch:(K)=>O("kill",R(K),$)})},wZ=($,D,J)=>LZ(()=>{if(D.kill(J))return f;return i(O("kill",Error("Failed to kill child process"),$))}),N$=($,D,J)=>(K)=>{let X=J?.killSignal??"SIGTERM";if(L(J?.forceKillAfter))return K(D,$,X);return zZ(K(D,$,X),{duration:J.forceKillAfter,orElse:()=>K(D,$,"SIGKILL")})},W$=($,D)=>{let J=D??"stdout";switch(J){case"stdout":return $.stdout;case"stderr":return $.stderr;case"all":return $.all;default:{let K=g(J);return eZ(K)?$.getOutputFd(K):$.stdout}}},T=p(function*($){switch($._tag){case"StandardCommand":{let D=A($.options),J=G($.options,"stdout"),K=G($.options,"stderr"),X=b($.options),Y=yield*z($.options),[V,F]=yield*Q$(b$($,{cwd:Y,env:B($.options),stdio:N(D,J,K,X),detached:$.options.detached??process.platform!=="win32",shell:$.options.shell,windowsHide:process.platform==="win32"}),p(function*([M,H]){let t=yield*WZ(H),n=N$(M,$,$.options);if(t){let[u]=yield*E(H);if(process.platform==="win32")return yield*f;if(u!==0&&ZZ(u))return yield*IZ(n(XZ));return yield*f}let w=(u)=>vZ(XZ($,M,u),()=>wZ($,M,u)),R$=$.options.killSignal??"SIGTERM",uZ=w(R$).pipe(l(E(H)),c),L$=$.options.forceKillAfter?zZ(uZ,{duration:$.options.forceKillAfter,orElse:()=>w("SIGKILL").pipe(l(E(H)),c)}):uZ;return yield*IZ(L$)})),_=yield*S($,V,X),y=VZ($,V,J,K),j=!0;return AZ({pid:UZ(V.pid),stdin:yield*QZ($,V,D),stdout:y.stdout,stderr:y.stderr,all:y.all,getInputFd:_.getInputFd,getOutputFd:_.getOutputFd,isRunning:h(WZ(F),(M)=>!M),exitCode:o(E(F),([M,H])=>{if(ZZ(M))return $Z(FZ(M));return i(O("exitCode",Error(`Process interrupted due to receipt of signal: '${H}'`),$))}),kill:(M)=>{let H=M?.killSignal??"SIGTERM",t=(w)=>vZ(XZ($,V,w),()=>wZ($,V,w)),n=t(H).pipe(l(E(F)),c);if(!M?.forceKillAfter)return n;return zZ(n,{duration:M.forceKillAfter,orElse:()=>t("SIGKILL").pipe(l(E(F)),c)})},unref:qZ(()=>{if(j)V.unref(),j=!1;return qZ(()=>{if(!j)V.ref(),j=!0})})})}case"PipedCommand":{let D=y$($),[J,...K]=D.commands,X=T(J);for(let Y=0;Y<K.length;Y++){let V=K[Y],F=D.opts[Y]??{},_=A(V.options),y=r(h(X,(H)=>W$(H,F.from))),j=F.to??"stdin";if(j==="stdin"){X=T(k(V.command,V.args,{...V.options,stdin:{..._,stream:y}}));continue}let M=g(j);if(L(M)){X=T(k(V.command,V.args,{...V.options,stdin:{..._,stream:y}}));continue}X=T(k(V.command,V.args,{...V.options,additionalFds:{...V.options.additionalFds,[NZ(M)]:{type:"input",stream:y}}}))}return yield*X}}});return GZ(T)}),i$=z$(W,f$),l$=i$.pipe(RZ(Y$.layer),RZ(U$)),Bq=G$(async()=>{let{makeRuntime:Z}=await import("./chunk-jebss7x8.js");return Z(W,l$)});var H$=(Z,q)=>P.gen(function*(){let z=yield*Z.spawn(q),[B,Q]=yield*P.all([v.mkString(v.decodeText(z.stdout)),v.mkString(v.decodeText(z.stderr))],{concurrency:2});return{code:yield*z.exitCode,text:B,stderr:Q}}).pipe(P.scoped),Mq=H$,_q=(Z,q,z)=>H$(Z,x.make("git",q,{cwd:z?.cwd,extendEnv:!0,stdin:"ignore"}));var TZ={};BZ(TZ,{payloads:()=>p$,define:()=>c$,BusEvent:()=>TZ});var O$=new Map;function c$(Z,q){let z={type:Z,properties:q};return O$.set(Z,z),z}function p$(){return O$.entries().map(([Z,q])=>{return SZ.object({type:SZ.literal(Z),properties:q.properties}).meta({ref:`Event.${q.type}`})}).toArray()}
5
5
  export{W as Sl,pZ as Tl,x as Ul,l$ as Vl,H$ as Wl,Mq as Xl,_q as Yl,TZ as Zl};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{jn as D,kn as m,nn as R,on as X,sn as v,un as x,vn as S}from"./chunk-bvf2dcq4.js";import{Kn as A,On as L}from"./chunk-vcygx6hs.js";import{Es as U}from"./chunk-r5zy4za0.js";import{at as P,ft as F}from"./chunk-at22twxx.js";import{SD as s,TN as B,eH as k}from"./chunk-qnvsqnz5.js";import{uO as E}from"./chunk-r9w0thdk.js";var V={};E(V,{schema:()=>c,jsonc:()=>g,ConfigParse:()=>V});function g($,T){let J=[],j=D($,J,{allowTrailingComma:!0});if(J.length){let C=$.split(`
2
+ import{jn as D,kn as m,nn as R,on as X,sn as v,un as x,vn as S}from"./chunk-snqa3zsm.js";import{Kn as A,On as L}from"./chunk-vcygx6hs.js";import{Es as U}from"./chunk-r5zy4za0.js";import{at as P,ft as F}from"./chunk-at22twxx.js";import{SD as s,TN as B,eH as k}from"./chunk-qnvsqnz5.js";import{uO as E}from"./chunk-r9w0thdk.js";var V={};E(V,{schema:()=>c,jsonc:()=>g,ConfigParse:()=>V});function g($,T){let J=[],j=D($,J,{allowTrailingComma:!0});if(J.length){let C=$.split(`
3
3
  `),y=J.map((H)=>{let I=$.substring(0,H.offset).split(`
4
4
  `),Q=I.length,Z=I[I.length-1].length+1,K=C[Q-1],z=`${m(H.error)} at line ${Q}, column ${Z}`;if(!K)return z;return`${z}
5
5
  Line ${Q}: ${K}
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{hs as c,ls as s}from"./chunk-0vakk88p.js";var r=["openai","anthropic"],p=["deepseek","zai","zhipuai","moonshotai","moonshotai-cn","kimi-for-coding","stepfun"],d=["opencode","openrouter"],l=["alibaba","alibaba-cn","bytedance","alibaba-coding-plan","alibaba-coding-plan-cn","zai-coding-plan","zhipuai-coding-plan","tencent-coding-plan","minimax-coding-plan","minimax-cn-coding-plan","kuae-cloud-coding-plan"],R=["opencode-go","github-copilot","google","vercel"],P=[r,p,d,l,R],g=Object.fromEntries(P.flatMap((i,a,e)=>{let n=e.slice(0,a).reduce((o,t)=>o+t.length,0);return i.map((o,t)=>[o,n+t])}));function m(i){return i in g}function O(i,a,e){return c(i,s((n)=>a[n.id]??99,(n)=>n.name??n.id),(n)=>n.map((o)=>({label:o.name,value:o.id,hint:e(o)})))}
2
+ import{hs as c,ls as s}from"./chunk-09geev0j.js";var r=["openai","anthropic"],p=["deepseek","zai","zhipuai","moonshotai","moonshotai-cn","kimi-for-coding","stepfun"],d=["opencode","openrouter"],l=["alibaba","alibaba-cn","bytedance","alibaba-coding-plan","alibaba-coding-plan-cn","zai-coding-plan","zhipuai-coding-plan","tencent-coding-plan","minimax-coding-plan","minimax-cn-coding-plan","kuae-cloud-coding-plan"],R=["opencode-go","github-copilot","google","vercel"],P=[r,p,d,l,R],g=Object.fromEntries(P.flatMap((i,a,e)=>{let n=e.slice(0,a).reduce((o,t)=>o+t.length,0);return i.map((o,t)=>[o,n+t])}));function m(i){return i in g}function O(i,a,e){return c(i,s((n)=>a[n.id]??99,(n)=>n.name??n.id),(n)=>n.map((o)=>({label:o.name,value:o.id,hint:e(o)})))}
3
3
  export{g as U,m as V,O as W};