@coryrylan/cradle 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/agent/aliases.d.ts +19 -0
- package/dist/agent/extensions/providers.d.ts +1 -0
- package/dist/agent/folder.d.ts +76 -0
- package/dist/agent/launch.d.ts +108 -0
- package/dist/agent/packages.d.ts +28 -0
- package/dist/agent/state.d.ts +10 -0
- package/dist/cli.d.ts +2 -0
- package/dist/commands/doctor.d.ts +25 -0
- package/dist/commands/start.d.ts +94 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +95 -0
- package/dist/nono/linked-git-dir.d.ts +11 -0
- package/dist/nono/profiles.d.ts +66 -0
- package/dist/setup/install.d.ts +22 -0
- package/dist/setup/utils.d.ts +24 -0
- package/dist/util/proc.d.ts +21 -0
- package/dist/util/style.d.ts +2 -0
- package/dist/util/which.d.ts +19 -0
- package/package.json +233 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
// @bun
|
|
3
|
+
var r2=Object.create;var{getPrototypeOf:a2,defineProperty:NF,getOwnPropertyNames:e2}=Object;var D8=Object.prototype.hasOwnProperty;function u8(D){return this[D]}var F8,C8,E8=(D,u,F)=>{var C=D!=null&&typeof D==="object";if(C){var E=u?F8??=new WeakMap:C8??=new WeakMap,B=E.get(D);if(B)return B}F=D!=null?r2(a2(D)):{};let z=u||!D||!D.__esModule?NF(F,"default",{value:D,enumerable:!0}):F;for(let X of e2(D))if(!D8.call(z,X))NF(z,X,{get:u8.bind(D,X),enumerable:!0});if(C)E.set(D,z);return z};var B8=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var f0=B8((q7,Y0)=>{Y0.exports=function(u){if(u===void 0)u=2;if(u>=Error.stackTraceLimit)throw TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+u+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");var F=Error.prepareStackTrace;Error.prepareStackTrace=function(E,B){return B};var C=Error().stack;if(Error.prepareStackTrace=F,C!==null&&typeof C==="object")return C[u]?C[u].getFileName():void 0}});import{basename as E6,join as s2}from"path";import{notStrictEqual as n8,strictEqual as i8}from"assert";var $8={right:X8,center:G8};class AF{constructor(D){var u;this.width=D.width,this.wrap=(u=D.wrap)!==null&&u!==void 0?u:!0,this.rows=[]}span(...D){let u=this.div(...D);u.span=!0}resetOutput(){this.rows=[]}div(...D){if(D.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...D)&&typeof D[0]==="string")return this.applyLayoutDSL(D[0]);let u=D.map((F)=>{if(typeof F==="string")return this.colFromString(F);return F});return this.rows.push(u),u}shouldApplyLayoutDSL(...D){return D.length===1&&typeof D[0]==="string"&&/[\t\n]/.test(D[0])}applyLayoutDSL(D){let u=D.split(`
|
|
4
|
+
`).map((C)=>C.split("\t")),F=0;return u.forEach((C)=>{if(C.length>1&&MD.stringWidth(C[0])>F)F=Math.min(Math.floor(this.width*0.5),MD.stringWidth(C[0]))}),u.forEach((C)=>{this.div(...C.map((E,B)=>{return{text:E.trim(),padding:this.measurePadding(E),width:B===0&&C.length>1?F:void 0}}))}),this.rows[this.rows.length-1]}colFromString(D){return{text:D,padding:this.measurePadding(D)}}measurePadding(D){let u=MD.stripAnsi(D);return[0,u.match(/\s*$/)[0].length,0,u.match(/^\s*/)[0].length]}toString(){let D=[];return this.rows.forEach((u)=>{this.rowToString(u,D)}),D.filter((u)=>!u.hidden).map((u)=>u.text).join(`
|
|
5
|
+
`)}rowToString(D,u){return this.rasterize(D).forEach((F,C)=>{let E="";F.forEach((B,z)=>{let{width:X}=D[z],J=this.negatePadding(D[z]),f=B;if(J>MD.stringWidth(B))f+=" ".repeat(J-MD.stringWidth(B));if(D[z].align&&D[z].align!=="left"&&this.wrap){let O=$8[D[z].align];if(f=O(f,J),MD.stringWidth(f)<J)f+=" ".repeat((X||0)-MD.stringWidth(f)-1)}let W=D[z].padding||[0,0,0,0];if(W[3])E+=" ".repeat(W[3]);if(E+=RF(D[z],f,"| "),E+=f,E+=RF(D[z],f," |"),W[1])E+=" ".repeat(W[1]);if(C===0&&u.length>0)E=this.renderInline(E,u[u.length-1])}),u.push({text:E.replace(/ +$/,""),span:D.span})}),u}renderInline(D,u){let F=D.match(/^ */),C=F?F[0].length:0,E=u.text,B=MD.stringWidth(E.trimRight());if(!u.span)return D;if(!this.wrap)return u.hidden=!0,E+D;if(C<B)return D;return u.hidden=!0,E.trimRight()+" ".repeat(C-B)+D.trimLeft()}rasterize(D){let u=[],F=this.columnWidths(D),C;return D.forEach((E,B)=>{if(E.width=F[B],this.wrap)C=MD.wrap(E.text,this.negatePadding(E),{hard:!0}).split(`
|
|
6
|
+
`);else C=E.text.split(`
|
|
7
|
+
`);if(E.border)C.unshift("."+"-".repeat(this.negatePadding(E)+2)+"."),C.push("'"+"-".repeat(this.negatePadding(E)+2)+"'");if(E.padding)C.unshift(...Array(E.padding[0]||0).fill("")),C.push(...Array(E.padding[2]||0).fill(""));C.forEach((z,X)=>{if(!u[X])u.push([]);let J=u[X];for(let f=0;f<B;f++)if(J[f]===void 0)J.push("");J.push(z)})}),u}negatePadding(D){let u=D.width||0;if(D.padding)u-=(D.padding[3]||0)+(D.padding[1]||0);if(D.border)u-=4;return u}columnWidths(D){if(!this.wrap)return D.map((B)=>{return B.width||MD.stringWidth(B.text)});let u=D.length,F=this.width,C=D.map((B)=>{if(B.width)return u--,F-=B.width,B.width;return}),E=u?Math.floor(F/u):0;return C.map((B,z)=>{if(B===void 0)return Math.max(E,z8(D[z]));return B})}}function RF(D,u,F){if(D.border){if(/[.']-+[.']/.test(u))return"";if(u.trim().length!==0)return F;return" "}return""}function z8(D){let u=D.padding||[],F=1+(u[3]||0)+(u[1]||0);if(D.border)return F+4;return F}function Z8(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function X8(D,u){D=D.trim();let F=MD.stringWidth(D);if(F<u)return" ".repeat(u-F)+D;return D}function G8(D,u){D=D.trim();let F=MD.stringWidth(D);if(F>=u)return D;return" ".repeat(u-F>>1)+D}var MD;function SF(D,u){return MD=u,new AF({width:(D===null||D===void 0?void 0:D.width)||Z8(),wrap:D===null||D===void 0?void 0:D.wrap})}function tu({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var Q8=tu();function vD(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);if(!D.includes("\x1B")&&!D.includes("\x9B"))return D;return D.replace(Q8,"")}var xF=161,PF=1114109,bF=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],hF=12288,wF=65510,mF=[12288,12288,65281,65376,65504,65510];var cF=4352,vF=262141,du=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141];var Wu=(D,u)=>{let F=0,C=Math.floor(D.length/2)-1;while(F<=C){let E=Math.floor((F+C)/2),B=E*2;if(u<D[B])C=E-1;else if(u>D[B+1])F=E+1;else return!0}return!1};var pF=19968,[J8,M8]=O8(du);function O8(D){let u=D[0],F=D[1];for(let C=0;C<D.length;C+=2){let E=D[C],B=D[C+1];if(pF>=E&&pF<=B)return[E,B];if(B-E>F-u)u=E,F=B}return[u,F]}var tF=(D)=>{if(D<xF||D>PF)return!1;return Wu(bF,D)},dF=(D)=>{if(D<hF||D>wF)return!1;return Wu(mF,D)};var kF=(D)=>{if(D>=J8&&D<=M8)return!0;if(D<cF||D>vF)return!1;return Wu(du,D)};function Y8(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function yF(D,{ambiguousAsWide:u=!1}={}){if(Y8(D),dF(D)||kF(D)||u&&tF(D))return 2;return 1}var nF=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g};var f8=new Intl.Segmenter,U8=/^\p{Default_Ignorable_Code_Point}$/u;function TD(D,u={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:C=!1}=u;if(!C)D=vD(D);if(D.length===0)return 0;let E=0,B={ambiguousAsWide:!F};for(let{segment:z}of f8.segment(D)){let X=z.codePointAt(0);if(X<=31||X>=127&&X<=159)continue;if(X>=8203&&X<=8207||X===65279)continue;if(X>=768&&X<=879||X>=6832&&X<=6911||X>=7616&&X<=7679||X>=8400&&X<=8447||X>=65056&&X<=65071)continue;if(X>=55296&&X<=57343)continue;if(X>=65024&&X<=65039)continue;if(U8.test(z))continue;if(nF().test(z)){E+=2;continue}E+=yF(X,B)}return E}var iF=(D=0)=>(u)=>`\x1B[${u+D}m`,oF=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,gF=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,g={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},b6=Object.keys(g.modifier),q8=Object.keys(g.color),H8=Object.keys(g.bgColor),h6=[...q8,...H8];function W8(){let D=new Map;for(let[u,F]of Object.entries(g)){for(let[C,E]of Object.entries(F))g[C]={open:`\x1B[${E[0]}m`,close:`\x1B[${E[1]}m`},F[C]=g[C],D.set(E[0],E[1]);Object.defineProperty(g,u,{value:F,enumerable:!1})}return Object.defineProperty(g,"codes",{value:D,enumerable:!1}),g.color.close="\x1B[39m",g.bgColor.close="\x1B[49m",g.color.ansi=iF(),g.color.ansi256=oF(),g.color.ansi16m=gF(),g.bgColor.ansi=iF(10),g.bgColor.ansi256=oF(10),g.bgColor.ansi16m=gF(10),Object.defineProperties(g,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map((B)=>B+B).join("");let E=Number.parseInt(C,16);return[E>>16&255,E>>8&255,E&255]},enumerable:!1},hexToAnsi256:{value:(u)=>g.rgbToAnsi256(...g.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,E;if(u>=232)F=((u-232)*10+8)/255,C=F,E=F;else{u-=16;let X=u%36;F=Math.floor(u/36)/5,C=Math.floor(X/6)/5,E=X%6/5}let B=Math.max(F,C,E)*2;if(B===0)return 30;let z=30+(Math.round(E)<<2|Math.round(C)<<1|Math.round(F));if(B===2)z+=60;return z},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>g.ansi256ToAnsi(g.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>g.ansi256ToAnsi(g.hexToAnsi256(u)),enumerable:!1}}),g}var T8=W8(),lF=T8;var Vu=new Set(["\x1B","\x9B"]),V8=39,yu="\x07",aF="[",I8="]",eF="m",Tu=`${I8}8;;`,sF=(D)=>`${Vu.values().next().value}${aF}${D}${eF}`,rF=(D)=>`${Vu.values().next().value}${Tu}${D}${yu}`,L8=(D)=>D.split(" ").map((u)=>TD(u)),ku=(D,u,F)=>{let C=[...u],E=!1,B=!1,z=TD(vD(D.at(-1)));for(let[X,J]of C.entries()){let f=TD(J);if(z+f<=F)D[D.length-1]+=J;else D.push(J),z=0;if(Vu.has(J))E=!0,B=C.slice(X+1,X+1+Tu.length).join("")===Tu;if(E){if(B){if(J===yu)E=!1,B=!1}else if(J===eF)E=!1;continue}if(z+=f,z===F&&X<C.length-1)D.push(""),z=0}if(!z&&D.at(-1).length>0&&D.length>1)D[D.length-2]+=D.pop()},_8=(D)=>{let u=D.split(" "),F=u.length;while(F>0){if(TD(u[F-1])>0)break;F--}if(F===u.length)return D;return u.slice(0,F).join(" ")+u.slice(F).join("")},K8=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",E,B,z=L8(D),X=[""];for(let[O,Y]of D.split(" ").entries()){if(F.trim!==!1)X[X.length-1]=X.at(-1).trimStart();let q=TD(X.at(-1));if(O!==0){if(q>=u&&(F.wordWrap===!1||F.trim===!1))X.push(""),q=0;if(q>0||F.trim===!1)X[X.length-1]+=" ",q++}if(F.hard&&z[O]>u){let H=u-q,M=1+Math.floor((z[O]-H-1)/u);if(Math.floor((z[O]-1)/u)<M)X.push("");ku(X,Y,u);continue}if(q+z[O]>u&&q>0&&z[O]>0){if(F.wordWrap===!1&&q<u){ku(X,Y,u);continue}X.push("")}if(q+z[O]>u&&F.wordWrap===!1){ku(X,Y,u);continue}X[X.length-1]+=Y}if(F.trim!==!1)X=X.map((O)=>_8(O));let J=X.join(`
|
|
8
|
+
`),f=[...J],W=0;for(let[O,Y]of f.entries()){if(C+=Y,Vu.has(Y)){let{groups:H}=new RegExp(`(?:\\${aF}(?<code>\\d+)m|\\${Tu}(?<uri>.*)${yu})`).exec(J.slice(W))||{groups:{}};if(H.code!==void 0){let M=Number.parseFloat(H.code);E=M===V8?void 0:M}else if(H.uri!==void 0)B=H.uri.length===0?void 0:H.uri}let q=lF.codes.get(Number(E));if(f[O+1]===`
|
|
9
|
+
`){if(B)C+=rF("");if(E&&q)C+=sF(q)}else if(Y===`
|
|
10
|
+
`){if(E&&q)C+=sF(E);if(B)C+=rF(B)}W+=Y.length}return C};function nu(D,u,F){return String(D).normalize().replaceAll(`\r
|
|
11
|
+
`,`
|
|
12
|
+
`).split(`
|
|
13
|
+
`).map((C)=>K8(C,u,F)).join(`
|
|
14
|
+
`)}function iu(D){return SF(D,{stringWidth:TD,stripAnsi:vD,wrap:nu})}import{dirname as D0,resolve as u0}from"path";import{readdirSync as j8,statSync as N8}from"fs";function ou(D,u){let F=u0(".",D),C;if(!N8(F).isDirectory())F=D0(F);while(!0){if(C=u(F,j8(F)),C)return u0(F,C);if(F=D0(C=F),C===F)break}}import{inspect as o8}from"util";import{fileURLToPath as q0}from"url";import{format as S8}from"util";import{normalize as x8,resolve as P8}from"path";function pD(D){if(!(D!==D.toLowerCase()&&D!==D.toUpperCase()))D=D.toLowerCase();if(D.indexOf("-")===-1&&D.indexOf("_")===-1)return D;else{let F="",C=!1,E=D.match(/^-+/);for(let B=E?E[0].length:0;B<D.length;B++){let z=D.charAt(B);if(C)C=!1,z=z.toUpperCase();if(B!==0&&(z==="-"||z==="_"))C=!0;else if(z!=="-"&&z!=="_")F+=z}return F}}function Iu(D,u){let F=D.toLowerCase();u=u||"-";let C="";for(let E=0;E<D.length;E++){let B=F.charAt(E),z=D.charAt(E);if(B!==z&&E>0)C+=`${u}${F.charAt(E)}`;else C+=z}return C}function Lu(D){if(D===null||D===void 0)return!1;if(typeof D==="number")return!0;if(/^0x[0-9a-f]+$/i.test(D))return!0;if(/^0[^.]/.test(D))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(D)}function F0(D){if(Array.isArray(D))return D.map((z)=>typeof z!=="string"?z+"":z);D=D.trim();let u=0,F=null,C=null,E=null,B=[];for(let z=0;z<D.length;z++){if(F=C,C=D.charAt(z),C===" "&&!E){if(F!==" ")u++;continue}if(C===E)E=null;else if((C==="'"||C==='"')&&!E)E=C;if(!B[u])B[u]="";B[u]+=C}return B}var UD;(function(D){D.BOOLEAN="boolean",D.STRING="string",D.NUMBER="number",D.ARRAY="array"})(UD||(UD={}));var ND;class lu{constructor(D){ND=D}parse(D,u){let F=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},u),C=F0(D),E=typeof D==="string",B=R8(Object.assign(Object.create(null),F.alias)),z=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},F.configuration),X=Object.assign(Object.create(null),F.default),J=F.configObjects||[],f=F.envPrefix,W=z["populate--"],O=W?"--":"_",Y=Object.create(null),q=Object.create(null),H=F.__||ND.format,M={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},S=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,p=new RegExp("^--"+z["negation-prefix"]+"(.+)");if([].concat(F.array||[]).filter(Boolean).forEach(function(Z){let Q=typeof Z==="object"?Z.key:Z,T=Object.keys(Z).map(function(U){return{boolean:"bools",string:"strings",number:"numbers"}[U]}).filter(Boolean).pop();if(T)M[T][Q]=!0;M.arrays[Q]=!0,M.keys.push(Q)}),[].concat(F.boolean||[]).filter(Boolean).forEach(function(Z){M.bools[Z]=!0,M.keys.push(Z)}),[].concat(F.string||[]).filter(Boolean).forEach(function(Z){M.strings[Z]=!0,M.keys.push(Z)}),[].concat(F.number||[]).filter(Boolean).forEach(function(Z){M.numbers[Z]=!0,M.keys.push(Z)}),[].concat(F.count||[]).filter(Boolean).forEach(function(Z){M.counts[Z]=!0,M.keys.push(Z)}),[].concat(F.normalize||[]).filter(Boolean).forEach(function(Z){M.normalize[Z]=!0,M.keys.push(Z)}),typeof F.narg==="object")Object.entries(F.narg).forEach(([Z,Q])=>{if(typeof Q==="number")M.nargs[Z]=Q,M.keys.push(Z)});if(typeof F.coerce==="object")Object.entries(F.coerce).forEach(([Z,Q])=>{if(typeof Q==="function")M.coercions[Z]=Q,M.keys.push(Z)});if(typeof F.config<"u"){if(Array.isArray(F.config)||typeof F.config==="string")[].concat(F.config).filter(Boolean).forEach(function(Z){M.configs[Z]=!0});else if(typeof F.config==="object")Object.entries(F.config).forEach(([Z,Q])=>{if(typeof Q==="boolean"||typeof Q==="function")M.configs[Z]=Q})}Xu(F.key,B,F.default,M.arrays),Object.keys(X).forEach(function(Z){(M.aliases[Z]||[]).forEach(function(Q){X[Q]=X[Z]})});let m=null;pu();let BD=[],c=Object.assign(Object.create(null),{_:[]}),i={};for(let Z=0;Z<C.length;Z++){let Q=C[Z],T=Q.replace(/^-{3,}/,"---"),U,G,K,I,A,$D;if(Q!=="--"&&/^-/.test(Q)&&y(Q))uD(Q);else if(T.match(/^---+(=|$)/)){uD(Q);continue}else if(Q.match(/^--.+=/)||!z["short-option-groups"]&&Q.match(/^-.+=/)){if(I=Q.match(/^--?([^=]+)=([\s\S]*)$/),I!==null&&Array.isArray(I)&&I.length>=3)if(x(I[1],M.arrays))Z=LD(Z,I[1],C,I[2]);else if(x(I[1],M.nargs)!==!1)Z=s(Z,I[1],C,I[2]);else k(I[1],I[2],!0)}else if(Q.match(p)&&z["boolean-negation"]){if(I=Q.match(p),I!==null&&Array.isArray(I)&&I.length>=2)G=I[1],k(G,x(G,M.arrays)?[!1]:!1)}else if(Q.match(/^--.+/)||!z["short-option-groups"]&&Q.match(/^-[^-]+/)){if(I=Q.match(/^--?(.+)/),I!==null&&Array.isArray(I)&&I.length>=2)if(G=I[1],x(G,M.arrays))Z=LD(Z,G,C);else if(x(G,M.nargs)!==!1)Z=s(Z,G,C);else if(A=C[Z+1],A!==void 0&&(!A.match(/^-/)||A.match(S))&&!x(G,M.bools)&&!x(G,M.counts))k(G,A),Z++;else if(/^(true|false)$/.test(A))k(G,A),Z++;else k(G,v(G))}else if(Q.match(/^-.\..+=/)){if(I=Q.match(/^-([^=]+)=([\s\S]*)$/),I!==null&&Array.isArray(I)&&I.length>=3)k(I[1],I[2])}else if(Q.match(/^-.\..+/)&&!Q.match(S)){if(A=C[Z+1],I=Q.match(/^-(.\..+)/),I!==null&&Array.isArray(I)&&I.length>=2)if(G=I[1],A!==void 0&&!A.match(/^-/)&&!x(G,M.bools)&&!x(G,M.counts))k(G,A),Z++;else k(G,v(G))}else if(Q.match(/^-[^-]+/)&&!Q.match(S)){K=Q.slice(1,-1).split(""),U=!1;for(let XD=0;XD<K.length;XD++){if(A=Q.slice(XD+2),K[XD+1]&&K[XD+1]==="="){if($D=Q.slice(XD+3),G=K[XD],x(G,M.arrays))Z=LD(Z,G,C,$D);else if(x(G,M.nargs)!==!1)Z=s(Z,G,C,$D);else k(G,$D);U=!0;break}if(A==="-"){k(K[XD],A);continue}if(/[A-Za-z]/.test(K[XD])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(A)&&x(A,M.bools)===!1){k(K[XD],A),U=!0;break}if(K[XD+1]&&K[XD+1].match(/\W/)){k(K[XD],A),U=!0;break}else k(K[XD],v(K[XD]))}if(G=Q.slice(-1)[0],!U&&G!=="-")if(x(G,M.arrays))Z=LD(Z,G,C);else if(x(G,M.nargs)!==!1)Z=s(Z,G,C);else if(A=C[Z+1],A!==void 0&&(!/^(-|--)[^-]/.test(A)||A.match(S))&&!x(G,M.bools)&&!x(G,M.counts))k(G,A),Z++;else if(/^(true|false)$/.test(A))k(G,A),Z++;else k(G,v(G))}else if(Q.match(/^-[0-9]$/)&&Q.match(S)&&x(Q.slice(1),M.bools))G=Q.slice(1),k(G,v(G));else if(Q==="--"){BD=C.slice(Z+1);break}else if(z["halt-at-non-option"]){BD=C.slice(Z);break}else uD(Q)}if(DD(c,!0),DD(c,!1),N(c),d(),SD(c,M.aliases,X,!0),t(c),z["set-placeholder-key"])FD(c);if(Object.keys(M.counts).forEach(function(Z){if(!n(c,Z.split(".")))k(Z,0)}),W&&BD.length)c[O]=[];if(BD.forEach(function(Z){c[O].push(Z)}),z["camel-case-expansion"]&&z["strip-dashed"])Object.keys(c).filter((Z)=>Z!=="--"&&Z.includes("-")).forEach((Z)=>{delete c[Z]});if(z["strip-aliased"])[].concat(...Object.keys(B).map((Z)=>B[Z])).forEach((Z)=>{if(z["camel-case-expansion"]&&Z.includes("-"))delete c[Z.split(".").map((Q)=>pD(Q)).join(".")];delete c[Z]});function uD(Z){let Q=V("_",Z);if(typeof Q==="string"||typeof Q==="number")c._.push(Q)}function s(Z,Q,T,U){let G,K=x(Q,M.nargs);if(K=typeof K!=="number"||isNaN(K)?1:K,K===0){if(!ED(U))m=Error(H("Argument unexpected for: %s",Q));return k(Q,v(Q)),Z}let I=ED(U)?0:1;if(z["nargs-eats-options"]){if(T.length-(Z+1)+I<K)m=Error(H("Not enough arguments following: %s",Q));I=K}else{for(G=Z+1;G<T.length;G++)if(!T[G].match(/^-[^0-9]/)||T[G].match(S)||y(T[G]))I++;else break;if(I<K)m=Error(H("Not enough arguments following: %s",Q))}let A=Math.min(I,K);if(!ED(U)&&A>0)k(Q,U),A--;for(G=Z+1;G<A+Z+1;G++)k(Q,T[G]);return Z+A}function LD(Z,Q,T,U){let G=[],K=U||T[Z+1],I=x(Q,M.nargs);if(x(Q,M.bools)&&!/^(true|false)$/.test(K))G.push(!0);else if(ED(K)||ED(U)&&/^-/.test(K)&&!S.test(K)&&!y(K)){if(X[Q]!==void 0){let A=X[Q];G=Array.isArray(A)?A:[A]}}else{if(!ED(U))G.push(j(Q,U,!0));for(let A=Z+1;A<T.length;A++){if(!z["greedy-arrays"]&&G.length>0||I&&typeof I==="number"&&G.length>=I)break;if(K=T[A],/^-/.test(K)&&!S.test(K)&&!y(K))break;Z=A,G.push(j(Q,K,E))}}if(typeof I==="number"&&(I&&G.length<I||isNaN(I)&&G.length===0))m=Error(H("Not enough arguments following: %s",Q));return k(Q,G),Z}function k(Z,Q,T=E){if(/-/.test(Z)&&z["camel-case-expansion"]){let K=Z.split(".").map(function(I){return pD(I)}).join(".");Zu(Z,K)}let U=j(Z,Q,T),G=Z.split(".");if(jD(c,G,U),M.aliases[Z])M.aliases[Z].forEach(function(K){let I=K.split(".");jD(c,I,U)});if(G.length>1&&z["dot-notation"])(M.aliases[G[0]]||[]).forEach(function(K){let I=K.split("."),A=[].concat(G);if(A.shift(),I=I.concat(A),!(M.aliases[Z]||[]).includes(I.join(".")))jD(c,I,U)});if(x(Z,M.normalize)&&!x(Z,M.arrays))[Z].concat(M.aliases[Z]||[]).forEach(function(I){Object.defineProperty(i,I,{enumerable:!0,get(){return Q},set(A){Q=typeof A==="string"?ND.normalize(A):A}})})}function Zu(Z,Q){if(!(M.aliases[Z]&&M.aliases[Z].length))M.aliases[Z]=[Q],Y[Q]=!0;if(!(M.aliases[Q]&&M.aliases[Q].length))Zu(Q,Z)}function j(Z,Q,T){if(T)Q=A8(Q);if(x(Z,M.bools)||x(Z,M.counts)){if(typeof Q==="string")Q=Q==="true"}let U=Array.isArray(Q)?Q.map(function(G){return V(Z,G)}):V(Z,Q);if(x(Z,M.counts)&&(ED(U)||typeof U==="boolean"))U=gu();if(x(Z,M.normalize)&&x(Z,M.arrays))if(Array.isArray(Q))U=Q.map((G)=>{return ND.normalize(G)});else U=ND.normalize(Q);return U}function V(Z,Q){if(!z["parse-positional-numbers"]&&Z==="_")return Q;if(!x(Z,M.strings)&&!x(Z,M.bools)&&!Array.isArray(Q)){if(Lu(Q)&&z["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${Q}`)))||!ED(Q)&&x(Z,M.numbers))Q=Number(Q)}return Q}function N(Z){let Q=Object.create(null);SD(Q,M.aliases,X),Object.keys(M.configs).forEach(function(T){let U=Z[T]||Q[T];if(U)try{let G=null,K=ND.resolve(ND.cwd(),U),I=M.configs[T];if(typeof I==="function"){try{G=I(K)}catch(A){G=A}if(G instanceof Error){m=G;return}}else G=ND.require(K);h(G)}catch(G){if(G.name==="PermissionDenied")m=G;else if(Z[T])m=Error(H("Invalid JSON config file: %s",U))}})}function h(Z,Q){Object.keys(Z).forEach(function(T){let U=Z[T],G=Q?Q+"."+T:T;if(typeof U==="object"&&U!==null&&!Array.isArray(U)&&z["dot-notation"])h(U,G);else if(!n(c,G.split("."))||x(G,M.arrays)&&z["combine-arrays"])k(G,U)})}function d(){if(typeof J<"u")J.forEach(function(Z){h(Z)})}function DD(Z,Q){if(typeof f>"u")return;let T=typeof f==="string"?f:"",U=ND.env();Object.keys(U).forEach(function(G){if(T===""||G.lastIndexOf(T,0)===0){let K=G.split("__").map(function(I,A){if(A===0)I=I.substring(T.length);return pD(I)});if((Q&&M.configs[K.join(".")]||!Q)&&!n(Z,K))k(K.join("."),U[G])}})}function t(Z){let Q,T=new Set;Object.keys(Z).forEach(function(U){if(!T.has(U)){if(Q=x(U,M.coercions),typeof Q==="function")try{let G=V(U,Q(Z[U]));[].concat(M.aliases[U]||[],U).forEach((K)=>{T.add(K),Z[K]=G})}catch(G){m=G}}})}function FD(Z){return M.keys.forEach((Q)=>{if(~Q.indexOf("."))return;if(typeof Z[Q]>"u")Z[Q]=void 0}),Z}function SD(Z,Q,T,U=!1){Object.keys(T).forEach(function(G){if(!n(Z,G.split("."))){if(jD(Z,G.split("."),T[G]),U)q[G]=!0;(Q[G]||[]).forEach(function(K){if(n(Z,K.split(".")))return;jD(Z,K.split("."),T[G])})}})}function n(Z,Q){let T=Z;if(!z["dot-notation"])Q=[Q.join(".")];Q.slice(0,-1).forEach(function(G){T=T[G]||{}});let U=Q[Q.length-1];if(typeof T!=="object")return!1;else return U in T}function jD(Z,Q,T){let U=Z;if(!z["dot-notation"])Q=[Q.join(".")];Q.slice(0,-1).forEach(function($D){if($D=C0($D),typeof U==="object"&&U[$D]===void 0)U[$D]={};if(typeof U[$D]!=="object"||Array.isArray(U[$D])){if(Array.isArray(U[$D]))U[$D].push({});else U[$D]=[U[$D],{}];U=U[$D][U[$D].length-1]}else U=U[$D]});let G=C0(Q[Q.length-1]),K=x(Q.join("."),M.arrays),I=Array.isArray(T),A=z["duplicate-arguments-array"];if(!A&&x(G,M.nargs)){if(A=!0,!ED(U[G])&&M.nargs[G]===1||Array.isArray(U[G])&&U[G].length===M.nargs[G])U[G]=void 0}if(T===gu())U[G]=gu(U[G]);else if(Array.isArray(U[G]))if(A&&K&&I)U[G]=z["flatten-duplicate-arrays"]?U[G].concat(T):(Array.isArray(U[G][0])?U[G]:[U[G]]).concat([T]);else if(!A&&Boolean(K)===Boolean(I))U[G]=T;else U[G]=U[G].concat([T]);else if(U[G]===void 0&&K)U[G]=I?T:[T];else if(A&&!(U[G]===void 0||x(G,M.counts)||x(G,M.bools)))U[G]=[U[G],T];else U[G]=T}function Xu(...Z){Z.forEach(function(Q){Object.keys(Q||{}).forEach(function(T){if(M.aliases[T])return;M.aliases[T]=[].concat(B[T]||[]),M.aliases[T].concat(T).forEach(function(U){if(/-/.test(U)&&z["camel-case-expansion"]){let G=pD(U);if(G!==T&&M.aliases[T].indexOf(G)===-1)M.aliases[T].push(G),Y[G]=!0}}),M.aliases[T].concat(T).forEach(function(U){if(U.length>1&&/[A-Z]/.test(U)&&z["camel-case-expansion"]){let G=Iu(U,"-");if(G!==T&&M.aliases[T].indexOf(G)===-1)M.aliases[T].push(G),Y[G]=!0}}),M.aliases[T].forEach(function(U){M.aliases[U]=[T].concat(M.aliases[T].filter(function(G){return U!==G}))})})})}function x(Z,Q){let T=[].concat(M.aliases[Z]||[],Z),U=Object.keys(Q),G=T.find((K)=>U.includes(K));return G?Q[G]:!1}function Fu(Z){let Q=Object.keys(M);return[].concat(Q.map((U)=>M[U])).some(function(U){return Array.isArray(U)?U.includes(Z):U[Z]})}function jF(Z,...Q){return[].concat(...Q).some(function(U){let G=Z.match(U);return G&&Fu(G[1])})}function P(Z){if(Z.match(S)||!Z.match(/^-[^-]+/))return!1;let Q=!0,T,U=Z.slice(1).split("");for(let G=0;G<U.length;G++){if(T=Z.slice(G+2),!Fu(U[G])){Q=!1;break}if(U[G+1]&&U[G+1]==="="||T==="-"||/[A-Za-z]/.test(U[G])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(T)||U[G+1]&&U[G+1].match(/\W/))break}return Q}function y(Z){return z["unknown-options-as-args"]&&CD(Z)}function CD(Z){if(Z=Z.replace(/^-{3,}/,"--"),Z.match(S))return!1;if(P(Z))return!1;return!jF(Z,/^-+([^=]+?)=[\s\S]*$/,p,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function v(Z){if(!x(Z,M.bools)&&!x(Z,M.counts)&&`${Z}`in X)return X[Z];else return ZD(r(Z))}function ZD(Z){return{[UD.BOOLEAN]:!0,[UD.STRING]:"",[UD.NUMBER]:void 0,[UD.ARRAY]:[]}[Z]}function r(Z){let Q=UD.BOOLEAN;if(x(Z,M.strings))Q=UD.STRING;else if(x(Z,M.numbers))Q=UD.NUMBER;else if(x(Z,M.bools))Q=UD.BOOLEAN;else if(x(Z,M.arrays))Q=UD.ARRAY;return Q}function ED(Z){return Z===void 0}function pu(){Object.keys(M.counts).find((Z)=>{if(x(Z,M.arrays))return m=Error(H("Invalid configuration: %s, opts.count excludes opts.array.",Z)),!0;else if(x(Z,M.nargs))return m=Error(H("Invalid configuration: %s, opts.count excludes opts.narg.",Z)),!0;return!1})}return{aliases:Object.assign({},M.aliases),argv:Object.assign(i,c),configuration:z,defaulted:Object.assign({},q),error:m,newAliases:Object.assign({},Y)}}}function R8(D){let u=[],F=Object.create(null),C=!0;Object.keys(D).forEach(function(E){u.push([].concat(D[E],E))});while(C){C=!1;for(let E=0;E<u.length;E++)for(let B=E+1;B<u.length;B++)if(u[E].filter(function(X){return u[B].indexOf(X)!==-1}).length){u[E]=u[E].concat(u[B]),u.splice(B,1),C=!0;break}}return u.forEach(function(E){E=E.filter(function(z,X,J){return J.indexOf(z)===X});let B=E.pop();if(B!==void 0&&typeof B==="string")F[B]=E}),F}function gu(D){return D!==void 0?D+1:1}function C0(D){if(D==="__proto__")return"___proto___";return D}function A8(D){return typeof D==="string"&&(D[0]==="'"||D[0]==='"')&&D[D.length-1]===D[0]?D.substring(1,D.length-1):D}import{readFileSync as b8}from"fs";import{createRequire as E0}from"module";var su,ru,au,B0=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):20,$0=(ru=(su=process===null||process===void 0?void 0:process.versions)===null||su===void 0?void 0:su.node)!==null&&ru!==void 0?ru:(au=process===null||process===void 0?void 0:process.version)===null||au===void 0?void 0:au.slice(1);if($0){if(Number($0.match(/^([^.]+)/)[1])<B0)throw Error(`yargs parser supports a minimum Node.js version of ${B0}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var h8=process?process.env:{},z0=E0?E0(import.meta.url):void 0,Z0=new lu({cwd:process.cwd,env:()=>{return h8},format:S8,normalize:x8,resolve:P8,require:(D)=>{if(typeof z0<"u")return z0(D);else if(D.match(/\.json$/))return JSON.parse(b8(D,"utf8"));else throw Error("only .json config files are supported in ESM")}}),Gu=function(u,F){return Z0.parse(u.slice(),F).argv};Gu.detailed=function(D,u){return Z0.parse(D.slice(),u)};Gu.camelCase=pD;Gu.decamelize=Iu;Gu.looksLikeNumber=Lu;var X0=Gu;import{basename as g8,dirname as l8,extname as s8,relative as r8,resolve as U0,join as a8}from"path";function w8(){if(m8())return 0;return 1}function m8(){return c8()&&!process.defaultApp}function c8(){return!!process.versions.electron}function G0(){return process.argv[w8()]}import{readFileSync as v8,statSync as p8,writeFile as t8}from"fs";import{format as d8}from"util";import{resolve as k8}from"path";var Q0={fs:{readFileSync:v8,writeFile:t8},format:d8,resolve:k8,exists:(D)=>{try{return p8(D).isFile()}catch(u){return!1}}};var VD;class J0{constructor(D){D=D||{},this.directory=D.directory||"./locales",this.updateFiles=typeof D.updateFiles==="boolean"?D.updateFiles:!0,this.locale=D.locale||"en",this.fallbackToLanguage=typeof D.fallbackToLanguage==="boolean"?D.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...D){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let u=D.shift(),F=function(){};if(typeof D[D.length-1]==="function")F=D.pop();if(F=F||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][u]&&this.updateFiles)this.cache[this.locale][u]=u,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:F});else F();return VD.format.apply(VD.format,[this.cache[this.locale][u]||u].concat(D))}__n(){let D=Array.prototype.slice.call(arguments),u=D.shift(),F=D.shift(),C=D.shift(),E=function(){};if(typeof D[D.length-1]==="function")E=D.pop();if(!this.cache[this.locale])this._readLocaleFile();let B=C===1?u:F;if(this.cache[this.locale][u])B=this.cache[this.locale][u][C===1?"one":"other"];if(!this.cache[this.locale][u]&&this.updateFiles)this.cache[this.locale][u]={one:u,other:F},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:E});else E();let z=[B];if(~B.indexOf("%d"))z.push(C);return VD.format.apply(VD.format,z.concat(D))}setLocale(D){this.locale=D}getLocale(){return this.locale}updateLocale(D){if(!this.cache[this.locale])this._readLocaleFile();for(let u in D)if(Object.prototype.hasOwnProperty.call(D,u))this.cache[this.locale][u]=D[u]}_taggedLiteral(D,...u){let F="";return D.forEach(function(C,E){let B=u[E+1];if(F+=C,typeof B<"u")F+="%s"}),this.__.apply(this,[F].concat([].slice.call(u,1)))}_enqueueWrite(D){if(this.writeQueue.push(D),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let D=this,u=this.writeQueue[0],F=u.directory,C=u.locale,E=u.cb,B=this._resolveLocaleFile(F,C),z=JSON.stringify(this.cache[C],null,2);VD.fs.writeFile(B,z,"utf-8",function(X){if(D.writeQueue.shift(),D.writeQueue.length>0)D._processWriteQueue();E(X)})}_readLocaleFile(){let D={},u=this._resolveLocaleFile(this.directory,this.locale);try{if(VD.fs.readFileSync)D=JSON.parse(VD.fs.readFileSync(u,"utf-8"))}catch(F){if(F instanceof SyntaxError)F.message="syntax error in "+u;if(F.code==="ENOENT")D={};else throw F}this.cache[this.locale]=D}_resolveLocaleFile(D,u){let F=VD.resolve(D,"./",u+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(F)&&~u.lastIndexOf("_")){let C=VD.resolve(D,"./",u.split("_")[0]+".json");if(this._fileExistsSync(C))F=C}return F}_fileExistsSync(D){return VD.exists(D)}}function M0(D,u){VD=u;let F=new J0(D);return{__:F.__.bind(F),__n:F.__n.bind(F),setLocale:F.setLocale.bind(F),getLocale:F.getLocale.bind(F),updateLocale:F.updateLocale.bind(F),locale:F.locale}}var y8=(D)=>{return M0(D,Q0)},O0=y8;var H0=E8(f0(),1);import{createRequire as e8}from"module";import{readFileSync as D3,readdirSync as u3}from"fs";var eu=q0(import.meta.url),F3=eu.substring(0,eu.lastIndexOf("node_modules")),C3=e8(import.meta.url),W0={assert:{notStrictEqual:n8,strictEqual:i8},cliui:iu,findUp:ou,getEnv:(D)=>{return process.env[D]},inspect:o8,getProcessArgvBin:G0,mainFilename:F3||process.cwd(),Parser:X0,path:{basename:g8,dirname:l8,extname:s8,relative:r8,resolve:U0,join:a8},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(D,u)=>process.emitWarning(D,u),execPath:()=>process.execPath,exit:(D)=>{process.exit(D)},nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:D3,readdirSync:u3,require:C3,getCallerFile:()=>{let D=H0.default(3);return D.match(/^file:\/\//)?q0(D):D},stringWidth:TD,y18n:O0({directory:U0(eu,"../../../locales"),updateFiles:!1})};function GD(D,u,F,C){F.assert.notStrictEqual(D,u,C)}function DF(D,u){u.assert.strictEqual(typeof D,"string")}function Cu(D){return Object.keys(D)}function o(D){return!!D&&!!D.then&&typeof D.then==="function"}class a extends Error{constructor(D){super(D||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,a)}}function xD(D){let F=D.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),C=/\.*[\][<>]/g,E=F.shift();if(!E)throw Error(`No command found in: ${D}`);let B={cmd:E.replace(C,""),demanded:[],optional:[]};return F.forEach((z,X)=>{let J=!1;if(z=z.replace(/\s/g,""),/\.+[\]>]/.test(z)&&X===F.length-1)J=!0;if(/^\[/.test(z))B.optional.push({cmd:z.replace(C,"").split("|"),variadic:J});else B.demanded.push({cmd:z.replace(C,"").split("|"),variadic:J})}),B}var E3=["first","second","third","fourth","fifth","sixth"];function L(D,u,F){function C(){return typeof D==="object"?[{demanded:[],optional:[]},D,u]:[xD(`cmd ${D}`),u,F]}try{let E=0,[B,z,X]=C(),J=[].slice.call(z);while(J.length&&J[J.length-1]===void 0)J.pop();let f=X||J.length;if(f<B.demanded.length)throw new a(`Not enough arguments provided. Expected ${B.demanded.length} but received ${J.length}.`);let W=B.demanded.length+B.optional.length;if(f>W)throw new a(`Too many arguments provided. Expected max ${W} but received ${f}.`);B.demanded.forEach((O)=>{let Y=J.shift(),q=T0(Y);if(O.cmd.filter((M)=>M===q||M==="*").length===0)V0(q,O.cmd,E);E+=1}),B.optional.forEach((O)=>{if(J.length===0)return;let Y=J.shift(),q=T0(Y);if(O.cmd.filter((M)=>M===q||M==="*").length===0)V0(q,O.cmd,E);E+=1})}catch(E){console.warn(E.stack)}}function T0(D){if(Array.isArray(D))return"array";else if(D===null)return"null";return typeof D}function V0(D,u,F){throw new a(`Invalid ${E3[F]||"manyith"} argument. Expected ${u.join(" or ")} but received ${D}.`)}class uF{constructor(D){this.globalMiddleware=[],this.frozens=[],this.yargs=D}addMiddleware(D,u,F=!0,C=!1){if(L("<array|function> [boolean] [boolean] [boolean]",[D,u,F],arguments.length),Array.isArray(D)){for(let E=0;E<D.length;E++){if(typeof D[E]!=="function")throw Error("middleware must be a function");let B=D[E];B.applyBeforeValidation=u,B.global=F}Array.prototype.push.apply(this.globalMiddleware,D)}else if(typeof D==="function"){let E=D;E.applyBeforeValidation=u,E.global=F,E.mutates=C,this.globalMiddleware.push(D)}return this.yargs}addCoerceMiddleware(D,u){let F=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((C)=>{let E=[...F[u]||[],u];if(!C.option)return!0;else return!E.includes(C.option)}),D.option=u,this.addMiddleware(D,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let D=this.frozens.pop();if(D!==void 0)this.globalMiddleware=D}reset(){this.globalMiddleware=this.globalMiddleware.filter((D)=>D.global)}}function I0(D){if(!D)return[];return D.map((u)=>{return u.applyBeforeValidation=!1,u})}function tD(D,u,F,C){return F.reduce((E,B)=>{if(B.applyBeforeValidation!==C)return E;if(B.mutates){if(B.applied)return E;B.applied=!0}if(o(E))return E.then((z)=>Promise.all([z,B(z,u)])).then(([z,X])=>Object.assign(z,X));else{let z=B(E,u);return o(z)?z.then((X)=>Object.assign(E,X)):Object.assign(E,z)}},D)}function dD(D,u,F=(C)=>{throw C}){try{let C=B3(D)?D():D;return o(C)?C.then((E)=>u(E)):u(C)}catch(C){return F(C)}}function B3(D){return typeof D==="function"}var Eu=/(^\*)|(^\$0)/;class _0{constructor(D,u,F,C){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=C,this.usage=D,this.globalMiddleware=F,this.validation=u}addDirectory(D,u,F,C){C=C||{},this.requireCache.add(F);let E=this.shim.path.resolve(this.shim.path.dirname(F),D),B=this.shim.readdirSync(E,{recursive:C.recurse?!0:!1});if(!Array.isArray(C.extensions))C.extensions=["js"];let z=typeof C.visit==="function"?C.visit:(X)=>X;for(let X of B){let J=X.toString();if(C.exclude){let W=!1;if(typeof C.exclude==="function")W=C.exclude(J);else W=C.exclude.test(J);if(W)continue}if(C.include){let W=!1;if(typeof C.include==="function")W=C.include(J);else W=C.include.test(J);if(!W)continue}let f=!1;for(let W of C.extensions)if(J.endsWith(W))f=!0;if(f){let W=this.shim.path.join(E,J),O=u(W),Y=Object.create(null,Object.getOwnPropertyDescriptors({...O}));if(z(Y,W,J)){if(this.requireCache.has(W))continue;else this.requireCache.add(W);if(!Y.command)Y.command=this.shim.path.basename(W,this.shim.path.extname(W));this.addHandler(Y)}}}}addHandler(D,u,F,C,E,B){let z=[],X=I0(E);if(C=C||(()=>{}),Array.isArray(D))if($3(D))[D,...z]=D;else for(let J of D)this.addHandler(J);else if(Z3(D)){let J=Array.isArray(D.command)||typeof D.command==="string"?D.command:null;if(J===null)throw Error(`No command name given for module: ${this.shim.inspect(D)}`);if(D.aliases)J=[].concat(J).concat(D.aliases);this.addHandler(J,this.extractDesc(D),D.builder,D.handler,D.middlewares,D.deprecated);return}else if(L0(F)){this.addHandler([D].concat(z),u,F.builder,F.handler,F.middlewares,F.deprecated);return}if(typeof D==="string"){let J=xD(D);z=z.map((O)=>xD(O).cmd);let f=!1,W=[J.cmd].concat(z).filter((O)=>{if(Eu.test(O))return f=!0,!1;return!0});if(W.length===0&&f)W.push("$0");if(f)J.cmd=W[0],z=W.slice(1),D=D.replace(Eu,J.cmd);if(z.forEach((O)=>{this.aliasMap[O]=J.cmd}),u!==!1)this.usage.command(D,u,f,z,B);if(this.handlers[J.cmd]={original:D,description:u,handler:C,builder:F||{},middlewares:X,deprecated:B,demanded:J.demanded,optional:J.optional},f)this.defaultCommand=this.handlers[J.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(D,u,F,C,E,B){let z=this.handlers[D]||this.handlers[this.aliasMap[D]]||this.defaultCommand,X=u.getInternalMethods().getContext(),J=X.commands.slice(),f=!D;if(D)X.commands.push(D),X.fullCommands.push(z.original);let W=this.applyBuilderUpdateUsageAndParse(f,z,u,F.aliases,J,C,E,B);return o(W)?W.then((O)=>this.applyMiddlewareAndGetResult(f,z,O.innerArgv,X,E,O.aliases,u)):this.applyMiddlewareAndGetResult(f,z,W.innerArgv,X,E,W.aliases,u)}applyBuilderUpdateUsageAndParse(D,u,F,C,E,B,z,X){let J=u.builder,f=F;if(_u(J)){F.getInternalMethods().getUsageInstance().freeze();let W=J(F.getInternalMethods().reset(C),X);if(o(W))return W.then((O)=>{return f=j0(O)?O:F,this.parseAndUpdateUsage(D,u,f,E,B,z)})}else if(z3(J))F.getInternalMethods().getUsageInstance().freeze(),f=F.getInternalMethods().reset(C),Object.keys(u.builder).forEach((W)=>{f.option(W,J[W])});return this.parseAndUpdateUsage(D,u,f,E,B,z)}parseAndUpdateUsage(D,u,F,C,E,B){if(D)F.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(F))F.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(C,u),u.description);let z=F.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,E,B);return o(z)?z.then((X)=>({aliases:F.parsed.aliases,innerArgv:X})):{aliases:F.parsed.aliases,innerArgv:z}}shouldUpdateUsage(D){return!D.getInternalMethods().getUsageInstance().getUsageDisabled()&&D.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(D,u){let F=Eu.test(u.original)?u.original.replace(Eu,"").trim():u.original,C=D.filter((E)=>{return!Eu.test(E)});return C.push(F),`$0 ${C.join(" ")}`}handleValidationAndGetResult(D,u,F,C,E,B,z,X){if(!B.getInternalMethods().getHasOutput()){let J=B.getInternalMethods().runValidation(E,X,B.parsed.error,D);F=dD(F,(f)=>{return J(f),f})}if(u.handler&&!B.getInternalMethods().getHasOutput()){B.getInternalMethods().setHasOutput();let J=!!B.getOptions().configuration["populate--"];if(B.getInternalMethods().postProcess(F,J,!1,!1),F=tD(F,B,z,!1),F=dD(F,(f)=>{let W=u.handler(f);return o(W)?W.then(()=>f):f}),!D)B.getInternalMethods().getUsageInstance().cacheHelpMessage();if(o(F)&&!B.getInternalMethods().hasParseCallback())F.catch((f)=>{try{B.getInternalMethods().getUsageInstance().fail(null,f)}catch(W){}})}if(!D)C.commands.pop(),C.fullCommands.pop();return F}applyMiddlewareAndGetResult(D,u,F,C,E,B,z){let X={};if(E)return F;if(!z.getInternalMethods().getHasOutput())X=this.populatePositionals(u,F,C,z);let J=this.globalMiddleware.getMiddleware().slice(0).concat(u.middlewares),f=tD(F,z,J,!0);return o(f)?f.then((W)=>this.handleValidationAndGetResult(D,u,W,C,B,z,J,X)):this.handleValidationAndGetResult(D,u,f,C,B,z,J,X)}populatePositionals(D,u,F,C){u._=u._.slice(F.commands.length);let E=D.demanded.slice(0),B=D.optional.slice(0),z={};this.validation.positionalCount(E.length,u._.length);while(E.length){let X=E.shift();this.populatePositional(X,u,z)}while(B.length){let X=B.shift();this.populatePositional(X,u,z)}return u._=F.commands.concat(u._.map((X)=>""+X)),this.postProcessPositionals(u,z,this.cmdToParseOptions(D.original),C),z}populatePositional(D,u,F){let C=D.cmd[0];if(D.variadic)F[C]=u._.splice(0).map(String);else if(u._.length)F[C]=[String(u._.shift())]}cmdToParseOptions(D){let u={array:[],default:{},alias:{},demand:{}},F=xD(D);return F.demanded.forEach((C)=>{let[E,...B]=C.cmd;if(C.variadic)u.array.push(E),u.default[E]=[];u.alias[E]=B,u.demand[E]=!0}),F.optional.forEach((C)=>{let[E,...B]=C.cmd;if(C.variadic)u.array.push(E),u.default[E]=[];u.alias[E]=B}),u}postProcessPositionals(D,u,F,C){let E=Object.assign({},C.getOptions());E.default=Object.assign(F.default,E.default);for(let J of Object.keys(F.alias))E.alias[J]=(E.alias[J]||[]).concat(F.alias[J]);E.array=E.array.concat(F.array),E.config={};let B=[];if(Object.keys(u).forEach((J)=>{u[J].map((f)=>{if(E.configuration["unknown-options-as-args"])E.key[J]=!0;B.push(`--${J}`),B.push(f)})}),!B.length)return;let z=Object.assign({},E.configuration,{"populate--":!1}),X=this.shim.Parser.detailed(B,Object.assign({},E,{configuration:z}));if(X.error)C.getInternalMethods().getUsageInstance().fail(X.error.message,X.error);else{let J=Object.keys(u);Object.keys(u).forEach((f)=>{J.push(...X.aliases[f])}),Object.keys(X.argv).forEach((f)=>{if(J.includes(f)){if(!u[f])u[f]=X.argv[f];if(!this.isInConfigs(C,f)&&!this.isDefaulted(C,f)&&Object.prototype.hasOwnProperty.call(D,f)&&Object.prototype.hasOwnProperty.call(X.argv,f)&&(Array.isArray(D[f])||Array.isArray(X.argv[f])))D[f]=[].concat(D[f],X.argv[f]);else D[f]=X.argv[f]}})}}isDefaulted(D,u){let{default:F}=D.getOptions();return Object.prototype.hasOwnProperty.call(F,u)||Object.prototype.hasOwnProperty.call(F,this.shim.Parser.camelCase(u))}isInConfigs(D,u){let{configObjects:F}=D.getOptions();return F.some((C)=>Object.prototype.hasOwnProperty.call(C,u))||F.some((C)=>Object.prototype.hasOwnProperty.call(C,this.shim.Parser.camelCase(u)))}runDefaultBuilderOn(D){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(D)){let F=Eu.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");D.getInternalMethods().getUsageInstance().usage(F,this.defaultCommand.description)}let u=this.defaultCommand.builder;if(_u(u))return u(D,!0);else if(!L0(u))Object.keys(u).forEach((F)=>{D.option(F,u[F])});return}extractDesc({describe:D,description:u,desc:F}){for(let C of[D,u,F]){if(typeof C==="string"||C===!1)return C;GD(C,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let D=this.frozens.pop();GD(D,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=D}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function K0(D,u,F,C){return new _0(D,u,F,C)}function L0(D){return typeof D==="object"&&!!D.builder&&typeof D.handler==="function"}function $3(D){return D.every((u)=>typeof u==="string")}function _u(D){return typeof D==="function"}function z3(D){return typeof D==="object"}function Z3(D){return typeof D==="object"&&!Array.isArray(D)}function PD(D={},u=()=>!0){let F={};return Cu(D).forEach((C)=>{if(u(C,D[C]))F[C]=D[C]}),F}function bD(D){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((u)=>{let F=u;if(F._handle&&F.isTTY&&typeof F._handle.setBlocking==="function")F._handle.setBlocking(D)})}function X3(D){return typeof D==="boolean"}function R0(D,u){let F=u.y18n.__,C={},E=[];C.failFn=function(V){E.push(V)};let B=null,z=null,X=!0;C.showHelpOnFail=function(V=!0,N){let[h,d]=typeof V==="string"?[!0,V]:[V,N];if(D.getInternalMethods().isGlobalContext())z=d;return B=d,X=h,C};let J=!1;C.fail=function(V,N){let h=D.getInternalMethods().getLoggerInstance();if(E.length)for(let d=E.length-1;d>=0;--d){let DD=E[d];if(X3(DD)){if(N)throw N;else if(V)throw Error(V)}else DD(V,N,C)}else{if(D.getExitProcess())bD(!0);if(!J){if(J=!0,X)D.showHelp("error"),h.error();if(V||N)h.error(V||N);let d=B||z;if(d){if(V||N)h.error("");h.error(d)}}if(N=N||new a(V),D.getExitProcess())return D.exit(1);else if(D.getInternalMethods().hasParseCallback())return D.exit(1,N);else throw N}};let f=[],W=!1;C.usage=(j,V)=>{if(j===null)return W=!0,f=[],C;return W=!1,f.push([j,V||""]),C},C.getUsage=()=>{return f},C.getUsageDisabled=()=>{return W},C.getPositionalGroupName=()=>{return F("Positionals:")};let O=[];C.example=(j,V)=>{O.push([j,V||""])};let Y=[];C.command=function(V,N,h,d,DD=!1){if(h)Y=Y.map((t)=>{return t[2]=!1,t});Y.push([V,N||"",h,d,DD])},C.getCommands=()=>Y;let q={};C.describe=function(V,N){if(Array.isArray(V))V.forEach((h)=>{C.describe(h,N)});else if(typeof V==="object")Object.keys(V).forEach((h)=>{C.describe(h,V[h])});else q[V]=N},C.getDescriptions=()=>q;let H=[];C.epilog=(j)=>{H.push(j)};let M=!1,S;C.wrap=(j)=>{M=!0,S=j},C.getWrap=()=>{if(u.getEnv("YARGS_DISABLE_WRAP"))return null;if(!M)S=LD(),M=!0;return S};let p="__yargsString__:";C.deferY18nLookup=(j)=>p+j,C.help=function(){if(c)return c;BD();let V=D.customScriptName?D.$0:u.path.basename(D.$0),N=D.getDemandedOptions(),h=D.getDemandedCommands(),d=D.getDeprecatedOptions(),DD=D.getGroups(),t=D.getOptions(),FD=[];FD=FD.concat(Object.keys(q)),FD=FD.concat(Object.keys(N)),FD=FD.concat(Object.keys(h)),FD=FD.concat(Object.keys(t.default)),FD=FD.filter(uD),FD=Object.keys(FD.reduce((P,y)=>{if(y!=="_")P[y]=!0;return P},{}));let SD=C.getWrap(),n=u.cliui({width:SD,wrap:!!SD});if(!W){if(f.length)f.forEach((P)=>{if(n.div({text:`${P[0].replace(/\$0/g,V)}`}),P[1])n.div({text:`${P[1]}`,padding:[1,0,0,0]})}),n.div();else if(Y.length){let P=null;if(h._)P=`${V} <${F("command")}>
|
|
15
|
+
`;else P=`${V} [${F("command")}]
|
|
16
|
+
`;n.div(`${P}`)}}if(Y.length>1||Y.length===1&&!Y[0][2]){n.div(F("Commands:"));let P=D.getInternalMethods().getContext(),y=P.commands.length?`${P.commands.join(" ")} `:"";if(D.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)Y=Y.sort((v,ZD)=>v[0].localeCompare(ZD[0]));let CD=V?`${V} `:"";Y.forEach((v)=>{let ZD=`${CD}${y}${v[0].replace(/^\$0 ?/,"")}`;n.span({text:ZD,padding:[0,2,0,2],width:m(Y,SD,`${V}${y}`)+4},{text:v[1]});let r=[];if(v[2])r.push(`[${F("default")}]`);if(v[3]&&v[3].length)r.push(`[${F("aliases:")} ${v[3].join(", ")}]`);if(v[4])if(typeof v[4]==="string")r.push(`[${F("deprecated: %s",v[4])}]`);else r.push(`[${F("deprecated")}]`);if(r.length)n.div({text:r.join(" "),padding:[0,0,0,2],align:"right"});else n.div()}),n.div()}let jD=(Object.keys(t.alias)||[]).concat(Object.keys(D.parsed.newAliases)||[]);FD=FD.filter((P)=>!D.parsed.newAliases[P]&&jD.every((y)=>(t.alias[y]||[]).indexOf(P)===-1));let Xu=F("Options:");if(!DD[Xu])DD[Xu]=[];i(FD,t.alias,DD,Xu);let x=(P)=>/^--/.test(Ku(P)),Fu=Object.keys(DD).filter((P)=>DD[P].length>0).map((P)=>{let y=DD[P].filter(uD).map((CD)=>{if(jD.includes(CD))return CD;for(let v=0,ZD;(ZD=jD[v])!==void 0;v++)if((t.alias[ZD]||[]).includes(CD))return ZD;return CD});return{groupName:P,normalizedKeys:y}}).filter(({normalizedKeys:P})=>P.length>0).map(({groupName:P,normalizedKeys:y})=>{let CD=y.reduce((v,ZD)=>{return v[ZD]=[ZD].concat(t.alias[ZD]||[]).map((r)=>{if(P===C.getPositionalGroupName())return r;else return(/^[0-9]$/.test(r)?t.boolean.includes(ZD)?"-":"--":r.length>1?"--":"-")+r}).sort((r,ED)=>x(r)===x(ED)?0:x(r)?1:-1).join(", "),v},{});return{groupName:P,normalizedKeys:y,switches:CD}});if(Fu.filter(({groupName:P})=>P!==C.getPositionalGroupName()).some(({normalizedKeys:P,switches:y})=>!P.every((CD)=>x(y[CD]))))Fu.filter(({groupName:P})=>P!==C.getPositionalGroupName()).forEach(({normalizedKeys:P,switches:y})=>{P.forEach((CD)=>{if(x(y[CD]))y[CD]=G3(y[CD],4)})});if(Fu.forEach(({groupName:P,normalizedKeys:y,switches:CD})=>{n.div(P),y.forEach((v)=>{let ZD=CD[v],r=q[v]||"",ED=null;if(r.includes(p))r=F(r.substring(p.length));if(t.boolean.includes(v))ED=`[${F("boolean")}]`;if(t.count.includes(v))ED=`[${F("count")}]`;if(t.string.includes(v))ED=`[${F("string")}]`;if(t.normalize.includes(v))ED=`[${F("string")}]`;if(t.array.includes(v))ED=`[${F("array")}]`;if(t.number.includes(v))ED=`[${F("number")}]`;let pu=(T)=>typeof T==="string"?`[${F("deprecated: %s",T)}]`:`[${F("deprecated")}]`,Z=[v in d?pu(d[v]):null,ED,v in N?`[${F("required")}]`:null,t.choices&&t.choices[v]?`[${F("choices:")} ${C.stringifiedValues(t.choices[v])}]`:null,s(t.default[v],t.defaultDescription[v])].filter(Boolean).join(" ");n.span({text:Ku(ZD),padding:[0,2,0,2+N0(ZD)],width:m(CD,SD)+4},r);let Q=D.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(Z&&!Q)n.div({text:Z,padding:[0,0,0,2],align:"right"});else n.div()}),n.div()}),O.length)n.div(F("Examples:")),O.forEach((P)=>{P[0]=P[0].replace(/\$0/g,V)}),O.forEach((P)=>{if(P[1]==="")n.div({text:P[0],padding:[0,2,0,2]});else n.div({text:P[0],padding:[0,2,0,2],width:m(O,SD)+4},{text:P[1]})}),n.div();if(H.length>0){let P=H.map((y)=>y.replace(/\$0/g,V)).join(`
|
|
17
|
+
`);n.div(`${P}
|
|
18
|
+
`)}return n.toString().replace(/\s*$/,"")};function m(j,V,N){let h=0;if(!Array.isArray(j))j=Object.values(j).map((d)=>[d]);if(j.forEach((d)=>{h=Math.max(u.stringWidth(N?`${N} ${Ku(d[0])}`:Ku(d[0]))+N0(d[0]),h)}),V)h=Math.min(h,parseInt((V*0.5).toString(),10));return h}function BD(){let j=D.getDemandedOptions(),V=D.getOptions();(Object.keys(V.alias)||[]).forEach((N)=>{V.alias[N].forEach((h)=>{if(q[h])C.describe(N,q[h]);if(h in j)D.demandOption(N,j[h]);if(V.boolean.includes(h))D.boolean(N);if(V.count.includes(h))D.count(N);if(V.string.includes(h))D.string(N);if(V.normalize.includes(h))D.normalize(N);if(V.array.includes(h))D.array(N);if(V.number.includes(h))D.number(N)})})}let c;C.cacheHelpMessage=function(){c=this.help()},C.clearCachedHelpMessage=function(){c=void 0},C.hasCachedHelpMessage=function(){return!!c};function i(j,V,N,h){let d=[],DD=null;return Object.keys(N).forEach((t)=>{d=d.concat(N[t])}),j.forEach((t)=>{if(DD=[t].concat(V[t]),!DD.some((FD)=>d.indexOf(FD)!==-1))N[h].push(t)}),d}function uD(j){return D.getOptions().hiddenOptions.indexOf(j)<0||D.parsed.argv[D.getOptions().showHiddenOpt]}C.showHelp=(j)=>{let V=D.getInternalMethods().getLoggerInstance();if(!j)j="error";(typeof j==="function"?j:V[j])(C.help())},C.functionDescription=(j)=>{return["(",j.name?u.Parser.decamelize(j.name,"-"):F("generated-value"),")"].join("")},C.stringifiedValues=function(V,N){let h="",d=N||", ",DD=[].concat(V);if(!V||!DD.length)return h;return DD.forEach((t)=>{if(h.length)h+=d;h+=JSON.stringify(t)}),h};function s(j,V){let N=`[${F("default:")} `;if(j===void 0&&!V)return null;if(V)N+=V;else switch(typeof j){case"string":N+=`"${j}"`;break;case"object":N+=JSON.stringify(j);break;default:N+=j}return`${N}]`}function LD(){if(u.process.stdColumns)return Math.min(80,u.process.stdColumns);else return 80}let k=null;C.version=(j)=>{k=j},C.showVersion=(j)=>{let V=D.getInternalMethods().getLoggerInstance();if(!j)j="error";(typeof j==="function"?j:V[j])(k)},C.reset=function(V){return B=null,J=!1,f=[],W=!1,H=[],O=[],Y=[],q=PD(q,(N)=>!V[N]),C};let Zu=[];return C.freeze=function(){Zu.push({failMessage:B,failureOutput:J,usages:f,usageDisabled:W,epilogs:H,examples:O,commands:Y,descriptions:q})},C.unfreeze=function(V=!1){let N=Zu.pop();if(!N)return;if(V)q={...N.descriptions,...q},Y=[...N.commands,...Y],f=[...N.usages,...f],O=[...N.examples,...O],H=[...N.epilogs,...H];else({failMessage:B,failureOutput:J,usages:f,usageDisabled:W,epilogs:H,examples:O,commands:Y,descriptions:q}=N)},C}function FF(D){return typeof D==="object"}function G3(D,u){return FF(D)?{text:D.text,indentation:D.indentation+u}:{text:D,indentation:u}}function N0(D){return FF(D)?D.indentation:0}function Ku(D){return FF(D)?D.text:D}var A0=`###-begin-{{app_name}}-completions-###
|
|
19
|
+
#
|
|
20
|
+
# yargs command completion script
|
|
21
|
+
#
|
|
22
|
+
# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc
|
|
23
|
+
# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.
|
|
24
|
+
#
|
|
25
|
+
_{{app_name}}_yargs_completions()
|
|
26
|
+
{
|
|
27
|
+
local cur_word args type_list
|
|
28
|
+
|
|
29
|
+
cur_word="\${COMP_WORDS[COMP_CWORD]}"
|
|
30
|
+
args=("\${COMP_WORDS[@]}")
|
|
31
|
+
|
|
32
|
+
# ask yargs to generate completions.
|
|
33
|
+
# see https://stackoverflow.com/a/40944195/7080036 for the spaces-handling awk
|
|
34
|
+
mapfile -t type_list < <({{app_path}} --get-yargs-completions "\${args[@]}")
|
|
35
|
+
mapfile -t COMPREPLY < <(compgen -W "$( printf '%q ' "\${type_list[@]}" )" -- "\${cur_word}" |
|
|
36
|
+
awk '/ / { print "\\""$0"\\"" } /^[^ ]+$/ { print $0 }')
|
|
37
|
+
|
|
38
|
+
# if no match was found, fall back to filename completion
|
|
39
|
+
if [ \${#COMPREPLY[@]} -eq 0 ]; then
|
|
40
|
+
COMPREPLY=()
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
return 0
|
|
44
|
+
}
|
|
45
|
+
complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
|
|
46
|
+
###-end-{{app_name}}-completions-###
|
|
47
|
+
`,S0=`#compdef {{app_name}}
|
|
48
|
+
###-begin-{{app_name}}-completions-###
|
|
49
|
+
#
|
|
50
|
+
# yargs command completion script
|
|
51
|
+
#
|
|
52
|
+
# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc
|
|
53
|
+
# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.
|
|
54
|
+
#
|
|
55
|
+
_{{app_name}}_yargs_completions()
|
|
56
|
+
{
|
|
57
|
+
local reply
|
|
58
|
+
local si=$IFS
|
|
59
|
+
IFS=$'
|
|
60
|
+
' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}"))
|
|
61
|
+
IFS=$si
|
|
62
|
+
if [[ \${#reply} -gt 0 ]]; then
|
|
63
|
+
_describe 'values' reply
|
|
64
|
+
else
|
|
65
|
+
_default
|
|
66
|
+
fi
|
|
67
|
+
}
|
|
68
|
+
if [[ "'\${zsh_eval_context[-1]}" == "loadautofunc" ]]; then
|
|
69
|
+
_{{app_name}}_yargs_completions "$@"
|
|
70
|
+
else
|
|
71
|
+
compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
72
|
+
fi
|
|
73
|
+
###-end-{{app_name}}-completions-###
|
|
74
|
+
`;class x0{constructor(D,u,F,C){var E,B,z;this.yargs=D,this.usage=u,this.command=F,this.shim=C,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=(z=((E=this.shim.getEnv("SHELL"))===null||E===void 0?void 0:E.includes("zsh"))||((B=this.shim.getEnv("ZSH_NAME"))===null||B===void 0?void 0:B.includes("zsh")))!==null&&z!==void 0?z:!1}defaultCompletion(D,u,F,C){let E=this.command.getCommandHandlers();for(let z=0,X=D.length;z<X;++z)if(E[D[z]]&&E[D[z]].builder){let J=E[D[z]].builder;if(_u(J)){this.indexAfterLastReset=z+1;let f=this.yargs.getInternalMethods().reset();return J(f,!0),f.argv}}let B=[];this.commandCompletions(B,D,F),this.optionCompletions(B,D,u,F),this.choicesFromOptionsCompletions(B,D,u,F),this.choicesFromPositionalsCompletions(B,D,u,F),C(null,B)}commandCompletions(D,u,F){let C=this.yargs.getInternalMethods().getContext().commands;if(!F.match(/^-/)&&C[C.length-1]!==F&&!this.previousArgHasChoices(u))this.usage.getCommands().forEach((E)=>{let B=xD(E[0]).cmd;if(u.indexOf(B)===-1)if(!this.zshShell)D.push(B);else{let z=E[1]||"";D.push(B.replace(/:/g,"\\:")+":"+z)}})}optionCompletions(D,u,F,C){if((C.match(/^-/)||C===""&&D.length===0)&&!this.previousArgHasChoices(u)){let E=this.yargs.getOptions(),B=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(E.key).forEach((z)=>{let X=!!E.configuration["boolean-negation"]&&E.boolean.includes(z);if(!B.includes(z)&&!E.hiddenOptions.includes(z)&&!this.argsContainKey(u,z,X))this.completeOptionKey(z,D,C,X&&!!E.default[z])})}}choicesFromOptionsCompletions(D,u,F,C){if(this.previousArgHasChoices(u)){let E=this.getPreviousArgChoices(u);if(E&&E.length>0)D.push(...E.map((B)=>B.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(D,u,F,C){if(C===""&&D.length>0&&this.previousArgHasChoices(u))return;let E=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],B=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),z=E[F._.length-B-1];if(!z)return;let X=this.yargs.getOptions().choices[z]||[];for(let J of X)if(J.startsWith(C))D.push(J.replace(/:/g,"\\:"))}getPreviousArgChoices(D){if(D.length<1)return;let u=D[D.length-1],F="";if(!u.startsWith("-")&&D.length>1)F=u,u=D[D.length-2];if(!u.startsWith("-"))return;let C=u.replace(/^-+/,""),E=this.yargs.getOptions(),B=[C,...this.yargs.getAliases()[C]||[]],z;for(let X of B)if(Object.prototype.hasOwnProperty.call(E.key,X)&&Array.isArray(E.choices[X])){z=E.choices[X];break}if(z)return z.filter((X)=>!F||X.startsWith(F))}previousArgHasChoices(D){let u=this.getPreviousArgChoices(D);return u!==void 0&&u.length>0}argsContainKey(D,u,F){let C=(E)=>D.indexOf((/^[^0-9]$/.test(E)?"-":"--")+E)!==-1;if(C(u))return!0;if(F&&C(`no-${u}`))return!0;if(this.aliases){for(let E of this.aliases[u])if(C(E))return!0}return!1}completeOptionKey(D,u,F,C){var E,B,z,X;let J=D;if(this.zshShell){let Y=this.usage.getDescriptions(),q=(B=(E=this===null||this===void 0?void 0:this.aliases)===null||E===void 0?void 0:E[D])===null||B===void 0?void 0:B.find((S)=>{let p=Y[S];return typeof p==="string"&&p.length>0}),H=q?Y[q]:void 0,M=(X=(z=Y[D])!==null&&z!==void 0?z:H)!==null&&X!==void 0?X:"";J=`${D.replace(/:/g,"\\:")}:${M.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let f=(Y)=>/^--/.test(Y),W=(Y)=>/^[^0-9]$/.test(Y),O=!f(F)&&W(D)?"-":"--";if(u.push(O+J),C)u.push(O+"no-"+J)}customCompletion(D,u,F,C){if(GD(this.customCompletionFunction,null,this.shim),J3(this.customCompletionFunction)){let E=this.customCompletionFunction(F,u);if(o(E))return E.then((B)=>{this.shim.process.nextTick(()=>{C(null,B)})}).catch((B)=>{this.shim.process.nextTick(()=>{C(B,void 0)})});return C(null,E)}else if(M3(this.customCompletionFunction))return this.customCompletionFunction(F,u,(E=C)=>this.defaultCompletion(D,u,F,E),(E)=>{C(null,E)});else return this.customCompletionFunction(F,u,(E)=>{C(null,E)})}getCompletion(D,u){let F=D.length?D[D.length-1]:"",C=this.yargs.parse(D,!0),E=this.customCompletionFunction?(B)=>this.customCompletion(D,B,F,u):(B)=>this.defaultCompletion(D,B,F,u);return o(C)?C.then(E):E(C)}generateCompletionScript(D,u){let F=this.zshShell?S0:A0,C=this.shim.path.basename(D);if(D.match(/\.js$/))D=`./${D}`;return F=F.replace(/{{app_name}}/g,C),F=F.replace(/{{completion_command}}/g,u),F.replace(/{{app_path}}/g,D)}registerFunction(D){this.customCompletionFunction=D}setParsed(D){this.aliases=D.aliases}}function P0(D,u,F,C){return new x0(D,u,F,C)}function J3(D){return D.length<3}function M3(D){return D.length>3}function b0(D,u){if(D.length===0)return u.length;if(u.length===0)return D.length;let F=[],C;for(C=0;C<=u.length;C++)F[C]=[C];let E;for(E=0;E<=D.length;E++)F[0][E]=E;for(C=1;C<=u.length;C++)for(E=1;E<=D.length;E++)if(u.charAt(C-1)===D.charAt(E-1))F[C][E]=F[C-1][E-1];else if(C>1&&E>1&&u.charAt(C-2)===D.charAt(E-1)&&u.charAt(C-1)===D.charAt(E-2))F[C][E]=F[C-2][E-2]+1;else F[C][E]=Math.min(F[C-1][E-1]+1,Math.min(F[C][E-1]+1,F[C-1][E]+1));return F[u.length][D.length]}var h0=["$0","--","_"];function w0(D,u,F){let C=F.y18n.__,E=F.y18n.__n,B={};B.nonOptionCount=function(O){let Y=D.getDemandedCommands(),H=O._.length+(O["--"]?O["--"].length:0)-D.getInternalMethods().getContext().commands.length;if(Y._&&(H<Y._.min||H>Y._.max)){if(H<Y._.min)if(Y._.minMsg!==void 0)u.fail(Y._.minMsg?Y._.minMsg.replace(/\$0/g,H.toString()).replace(/\$1/,Y._.min.toString()):null);else u.fail(E("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",H,H.toString(),Y._.min.toString()));else if(H>Y._.max)if(Y._.maxMsg!==void 0)u.fail(Y._.maxMsg?Y._.maxMsg.replace(/\$0/g,H.toString()).replace(/\$1/,Y._.max.toString()):null);else u.fail(E("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",H,H.toString(),Y._.max.toString()))}},B.positionalCount=function(O,Y){if(Y<O)u.fail(E("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",Y,Y+"",O+""))},B.requiredArguments=function(O,Y){let q=null;for(let H of Object.keys(Y))if(!Object.prototype.hasOwnProperty.call(O,H)||typeof O[H]>"u")q=q||{},q[H]=Y[H];if(q){let H=[];for(let S of Object.keys(q)){let p=q[S];if(p&&H.indexOf(p)<0)H.push(p)}let M=H.length?`
|
|
75
|
+
${H.join(`
|
|
76
|
+
`)}`:"";u.fail(E("Missing required argument: %s","Missing required arguments: %s",Object.keys(q).length,Object.keys(q).join(", ")+M))}},B.unknownArguments=function(O,Y,q,H,M=!0){var S;let p=D.getInternalMethods().getCommandInstance().getCommands(),m=[],BD=D.getInternalMethods().getContext();if(Object.keys(O).forEach((c)=>{if(!h0.includes(c)&&!Object.prototype.hasOwnProperty.call(q,c)&&!Object.prototype.hasOwnProperty.call(D.getInternalMethods().getParseContext(),c)&&!B.isValidAndSomeAliasIsNotNew(c,Y))m.push(c)}),M&&(BD.commands.length>0||p.length>0||H))O._.slice(BD.commands.length).forEach((c)=>{if(!p.includes(""+c))m.push(""+c)});if(M){let i=((S=D.getDemandedCommands()._)===null||S===void 0?void 0:S.max)||0,uD=BD.commands.length+i;if(uD<O._.length)O._.slice(uD).forEach((s)=>{if(s=String(s),!BD.commands.includes(s)&&!m.includes(s))m.push(s)})}if(m.length)u.fail(E("Unknown argument: %s","Unknown arguments: %s",m.length,m.map((c)=>c.trim()?c:`"${c}"`).join(", ")))},B.unknownCommands=function(O){let Y=D.getInternalMethods().getCommandInstance().getCommands(),q=[],H=D.getInternalMethods().getContext();if(H.commands.length>0||Y.length>0)O._.slice(H.commands.length).forEach((M)=>{if(!Y.includes(""+M))q.push(""+M)});if(q.length>0)return u.fail(E("Unknown command: %s","Unknown commands: %s",q.length,q.join(", "))),!0;else return!1},B.isValidAndSomeAliasIsNotNew=function(O,Y){if(!Object.prototype.hasOwnProperty.call(Y,O))return!1;let q=D.parsed.newAliases;return[O,...Y[O]].some((H)=>!Object.prototype.hasOwnProperty.call(q,H)||!q[O])},B.limitedChoices=function(O){let Y=D.getOptions(),q={};if(!Object.keys(Y.choices).length)return;Object.keys(O).forEach((S)=>{if(h0.indexOf(S)===-1&&Object.prototype.hasOwnProperty.call(Y.choices,S))[].concat(O[S]).forEach((p)=>{if(Y.choices[S].indexOf(p)===-1&&p!==void 0)q[S]=(q[S]||[]).concat(p)})});let H=Object.keys(q);if(!H.length)return;let M=C("Invalid values:");H.forEach((S)=>{M+=`
|
|
77
|
+
${C("Argument: %s, Given: %s, Choices: %s",S,u.stringifiedValues(q[S]),u.stringifiedValues(Y.choices[S]))}`}),u.fail(M)};let z={};B.implies=function(O,Y){if(L("<string|object> [array|number|string]",[O,Y],arguments.length),typeof O==="object")Object.keys(O).forEach((q)=>{B.implies(q,O[q])});else{if(D.global(O),!z[O])z[O]=[];if(Array.isArray(Y))Y.forEach((q)=>B.implies(O,q));else GD(Y,void 0,F),z[O].push(Y)}},B.getImplied=function(){return z};function X(W,O){let Y=Number(O);if(O=isNaN(Y)?O:Y,typeof O==="number")O=W._.length>=O;else if(O.match(/^--no-.+/))O=O.match(/^--no-(.+)/)[1],O=!Object.prototype.hasOwnProperty.call(W,O);else O=Object.prototype.hasOwnProperty.call(W,O);return O}B.implications=function(O){let Y=[];if(Object.keys(z).forEach((q)=>{let H=q;(z[q]||[]).forEach((M)=>{let S=H,p=M;if(S=X(O,S),M=X(O,M),S&&!M)Y.push(` ${H} -> ${p}`)})}),Y.length){let q=`${C("Implications failed:")}
|
|
78
|
+
`;Y.forEach((H)=>{q+=H}),u.fail(q)}};let J={};B.conflicts=function(O,Y){if(L("<string|object> [array|string]",[O,Y],arguments.length),typeof O==="object")Object.keys(O).forEach((q)=>{B.conflicts(q,O[q])});else{if(D.global(O),!J[O])J[O]=[];if(Array.isArray(Y))Y.forEach((q)=>B.conflicts(O,q));else J[O].push(Y)}},B.getConflicting=()=>J,B.conflicting=function(O){if(Object.keys(O).forEach((Y)=>{if(J[Y])J[Y].forEach((q)=>{if(q&&O[Y]!==void 0&&O[q]!==void 0)u.fail(C("Arguments %s and %s are mutually exclusive",Y,q))})}),D.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(J).forEach((Y)=>{J[Y].forEach((q)=>{if(q&&O[F.Parser.camelCase(Y)]!==void 0&&O[F.Parser.camelCase(q)]!==void 0)u.fail(C("Arguments %s and %s are mutually exclusive",Y,q))})})},B.recommendCommands=function(O,Y){Y=Y.sort((S,p)=>p.length-S.length);let H=null,M=1/0;for(let S=0,p;(p=Y[S])!==void 0;S++){let m=b0(O,p);if(m<=3&&m<M)M=m,H=p}if(H)u.fail(C("Did you mean %s?",H))},B.reset=function(O){return z=PD(z,(Y)=>!O[Y]),J=PD(J,(Y)=>!O[Y]),B};let f=[];return B.freeze=function(){f.push({implied:z,conflicting:J})},B.unfreeze=function(){let O=f.pop();GD(O,void 0,F),{implied:z,conflicting:J}=O},B}var CF=[],Qu;function ju(D,u,F,C){Qu=C;let E={};if(Object.prototype.hasOwnProperty.call(D,"extends")){if(typeof D.extends!=="string")return E;let B=/\.json|\..*rc$/.test(D.extends),z=null;if(!B)try{z=import.meta.resolve(D.extends)}catch(X){return D}else z=Y3(u,D.extends);O3(z),CF.push(z),E=B?JSON.parse(Qu.readFileSync(z,"utf8")):C.require(D.extends),delete D.extends,E=ju(E,Qu.path.dirname(z),F,Qu)}return CF=[],F?m0(E,D):Object.assign({},E,D)}function O3(D){if(CF.indexOf(D)>-1)throw new a(`Circular extended configurations: '${D}'.`)}function Y3(D,u){return Qu.path.resolve(D,u)}function m0(D,u){let F={};function C(E){return E&&typeof E==="object"&&!Array.isArray(E)}Object.assign(F,D);for(let E of Object.keys(u))if(C(u[E])&&C(F[E]))F[E]=m0(D[E],u[E]);else F[E]=u[E];return F}var _=function(D,u,F,C,E){if(C==="m")throw TypeError("Private method is not writable");if(C==="a"&&!E)throw TypeError("Private accessor was defined without a setter");if(typeof u==="function"?D!==u||!E:!u.has(D))throw TypeError("Cannot write private member to an object whose class did not declare it");return C==="a"?E.call(D,F):E?E.value=F:u.set(D,F),F},$=function(D,u,F,C){if(F==="a"&&!C)throw TypeError("Private accessor was defined without a getter");if(typeof u==="function"?D!==u||!C:!u.has(D))throw TypeError("Cannot read private member from an object whose class did not declare it");return F==="m"?C:F==="a"?C.call(D):C?C.value:u.get(D)},e,kD,Ju,QD,OD,Nu,hD,yD,Ru,qD,Au,HD,_D,YD,WD,Su,nD,zD,R,xu,Pu,fD,iD,Bu,oD,wD,bu,b,gD,lD,sD,w,hu,KD,l;function C2(D){return(u=[],F=D.process.cwd(),C)=>{let E=new E2(u,F,C,D);return Object.defineProperty(E,"argv",{get:()=>{return E.parse()},enumerable:!0}),E.help(),E.version(),E}}var c0=Symbol("copyDoubleDash"),v0=Symbol("copyDoubleDash"),EF=Symbol("deleteFromParserHintObject"),p0=Symbol("emitWarning"),t0=Symbol("freeze"),d0=Symbol("getDollarZero"),rD=Symbol("getParserConfiguration"),k0=Symbol("getUsageConfiguration"),BF=Symbol("guessLocale"),y0=Symbol("guessVersion"),n0=Symbol("parsePositionalNumbers"),$F=Symbol("pkgUp"),mD=Symbol("populateParserHintArray"),$u=Symbol("populateParserHintSingleValueDictionary"),zF=Symbol("populateParserHintArrayDictionary"),ZF=Symbol("populateParserHintDictionary"),XF=Symbol("sanitizeKey"),GF=Symbol("setKey"),QF=Symbol("unfreeze"),i0=Symbol("validateAsync"),o0=Symbol("getCommandInstance"),g0=Symbol("getContext"),l0=Symbol("getHasOutput"),s0=Symbol("getLoggerInstance"),r0=Symbol("getParseContext"),a0=Symbol("getUsageInstance"),e0=Symbol("getValidationInstance"),wu=Symbol("hasParseCallback"),D2=Symbol("isGlobalContext"),aD=Symbol("postProcess"),u2=Symbol("rebase"),JF=Symbol("reset"),Mu=Symbol("runYargsParserAndExecuteCommands"),MF=Symbol("runValidation"),F2=Symbol("setHasOutput"),eD=Symbol("kTrackManuallySetKeys"),f3="en_US";class E2{constructor(D=[],u,F,C){this.customScriptName=!1,this.parsed=!1,e.set(this,void 0),kD.set(this,void 0),Ju.set(this,{commands:[],fullCommands:[]}),QD.set(this,null),OD.set(this,null),Nu.set(this,"show-hidden"),hD.set(this,null),yD.set(this,!0),Ru.set(this,{}),qD.set(this,!0),Au.set(this,[]),HD.set(this,void 0),_D.set(this,{}),YD.set(this,!1),WD.set(this,null),Su.set(this,!0),nD.set(this,void 0),zD.set(this,""),R.set(this,void 0),xu.set(this,void 0),Pu.set(this,{}),fD.set(this,null),iD.set(this,null),Bu.set(this,{}),oD.set(this,{}),wD.set(this,void 0),bu.set(this,!1),b.set(this,void 0),gD.set(this,!1),lD.set(this,!1),sD.set(this,!1),w.set(this,void 0),hu.set(this,{}),KD.set(this,null),l.set(this,void 0),_(this,b,C,"f"),_(this,wD,D,"f"),_(this,kD,u,"f"),_(this,xu,F,"f"),_(this,HD,new uF(this),"f"),this.$0=this[d0](),this[JF](),_(this,e,$(this,e,"f"),"f"),_(this,w,$(this,w,"f"),"f"),_(this,l,$(this,l,"f"),"f"),_(this,R,$(this,R,"f"),"f"),$(this,R,"f").showHiddenOpt=$(this,Nu,"f"),_(this,nD,this[v0](),"f"),$(this,b,"f").y18n.setLocale(f3)}addHelpOpt(D,u){if(L("[string|boolean] [string]",[D,u],arguments.length),$(this,WD,"f"))this[EF]($(this,WD,"f")),_(this,WD,null,"f");if(D===!1&&u===void 0)return this;return _(this,WD,typeof D==="string"?D:"help","f"),this.boolean($(this,WD,"f")),this.describe($(this,WD,"f"),u||$(this,w,"f").deferY18nLookup("Show help")),this}help(D,u){return this.addHelpOpt(D,u)}addShowHiddenOpt(D,u){if(L("[string|boolean] [string]",[D,u],arguments.length),D===!1&&u===void 0)return this;let F=typeof D==="string"?D:$(this,Nu,"f");return this.boolean(F),this.describe(F,u||$(this,w,"f").deferY18nLookup("Show hidden options")),$(this,R,"f").showHiddenOpt=F,this}showHidden(D,u){return this.addShowHiddenOpt(D,u)}alias(D,u){return L("<object|string|array> [string|array]",[D,u],arguments.length),this[zF](this.alias.bind(this),"alias",D,u),this}array(D){return L("<array|string>",[D],arguments.length),this[mD]("array",D),this[eD](D),this}boolean(D){return L("<array|string>",[D],arguments.length),this[mD]("boolean",D),this[eD](D),this}check(D,u){return L("<function> [boolean]",[D,u],arguments.length),this.middleware((F,C)=>{return dD(()=>{return D(F,C.getOptions())},(E)=>{if(!E)$(this,w,"f").fail($(this,b,"f").y18n.__("Argument check failed: %s",D.toString()));else if(typeof E==="string"||E instanceof Error)$(this,w,"f").fail(E.toString(),E);return F},(E)=>{return $(this,w,"f").fail(E.message?E.message:E.toString(),E),F})},!1,u),this}choices(D,u){return L("<object|string|array> [string|array]",[D,u],arguments.length),this[zF](this.choices.bind(this),"choices",D,u),this}coerce(D,u){if(L("<object|string|array> [function]",[D,u],arguments.length),Array.isArray(D)){if(!u)throw new a("coerce callback must be provided");for(let C of D)this.coerce(C,u);return this}else if(typeof D==="object"){for(let C of Object.keys(D))this.coerce(C,D[C]);return this}if(!u)throw new a("coerce callback must be provided");let F=D;return $(this,R,"f").key[F]=!0,$(this,HD,"f").addCoerceMiddleware((C,E)=>{var B;let z=(B=E.getAliases()[F])!==null&&B!==void 0?B:[],X=[F,...z].filter((J)=>Object.prototype.hasOwnProperty.call(C,J));if(X.length===0)return C;return dD(()=>{return u(C[X[0]])},(J)=>{return X.forEach((f)=>{C[f]=J}),C},(J)=>{throw new a(J.message)})},F),this}conflicts(D,u){return L("<string|object> [string|array]",[D,u],arguments.length),$(this,l,"f").conflicts(D,u),this}config(D="config",u,F){if(L("[object|string] [string|function] [function]",[D,u,F],arguments.length),typeof D==="object"&&!Array.isArray(D))return D=ju(D,$(this,kD,"f"),this[rD]()["deep-merge-config"]||!1,$(this,b,"f")),$(this,R,"f").configObjects=($(this,R,"f").configObjects||[]).concat(D),this;if(typeof u==="function")F=u,u=void 0;return this.describe(D,u||$(this,w,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(D)?D:[D]).forEach((C)=>{$(this,R,"f").config[C]=F||!0}),this}completion(D,u,F){if(L("[string] [string|boolean|function] [function]",[D,u,F],arguments.length),typeof u==="function")F=u,u=void 0;if(_(this,OD,D||$(this,OD,"f")||"completion","f"),!u&&u!==!1)u="generate completion script";if(this.command($(this,OD,"f"),u),F)$(this,QD,"f").registerFunction(F);return this}command(D,u,F,C,E,B){return L("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[D,u,F,C,E,B],arguments.length),$(this,e,"f").addHandler(D,u,F,C,E,B),this}commands(D,u,F,C,E,B){return this.command(D,u,F,C,E,B)}commandDir(D,u){L("<string> [object]",[D,u],arguments.length);let F=$(this,xu,"f")||$(this,b,"f").require;return $(this,e,"f").addDirectory(D,F,$(this,b,"f").getCallerFile(),u),this}count(D){return L("<array|string>",[D],arguments.length),this[mD]("count",D),this[eD](D),this}default(D,u,F){if(L("<object|string|array> [*] [string]",[D,u,F],arguments.length),F)DF(D,$(this,b,"f")),$(this,R,"f").defaultDescription[D]=F;if(typeof u==="function"){if(DF(D,$(this,b,"f")),!$(this,R,"f").defaultDescription[D])$(this,R,"f").defaultDescription[D]=$(this,w,"f").functionDescription(u);u=u.call()}return this[$u](this.default.bind(this),"default",D,u),this}defaults(D,u,F){return this.default(D,u,F)}demandCommand(D=1,u,F,C){if(L("[number] [number|string] [string|null|undefined] [string|null|undefined]",[D,u,F,C],arguments.length),typeof u!=="number")F=u,u=1/0;return this.global("_",!1),$(this,R,"f").demandedCommands._={min:D,max:u,minMsg:F,maxMsg:C},this}demand(D,u,F){if(Array.isArray(u))u.forEach((C)=>{GD(F,!0,$(this,b,"f")),this.demandOption(C,F)}),u=1/0;else if(typeof u!=="number")F=u,u=1/0;if(typeof D==="number")GD(F,!0,$(this,b,"f")),this.demandCommand(D,u,F,F);else if(Array.isArray(D))D.forEach((C)=>{GD(F,!0,$(this,b,"f")),this.demandOption(C,F)});else if(typeof F==="string")this.demandOption(D,F);else if(F===!0||typeof F>"u")this.demandOption(D);return this}demandOption(D,u){return L("<object|string|array> [string]",[D,u],arguments.length),this[$u](this.demandOption.bind(this),"demandedOptions",D,u),this}deprecateOption(D,u){return L("<string> [string|boolean]",[D,u],arguments.length),$(this,R,"f").deprecatedOptions[D]=u,this}describe(D,u){return L("<object|string|array> [string]",[D,u],arguments.length),this[GF](D,!0),$(this,w,"f").describe(D,u),this}detectLocale(D){return L("<boolean>",[D],arguments.length),_(this,yD,D,"f"),this}env(D){if(L("[string|boolean]",[D],arguments.length),D===!1)delete $(this,R,"f").envPrefix;else $(this,R,"f").envPrefix=D||"";return this}epilogue(D){return L("<string>",[D],arguments.length),$(this,w,"f").epilog(D),this}epilog(D){return this.epilogue(D)}example(D,u){if(L("<string|array> [string]",[D,u],arguments.length),Array.isArray(D))D.forEach((F)=>this.example(...F));else $(this,w,"f").example(D,u);return this}exit(D,u){if(_(this,YD,!0,"f"),_(this,hD,u,"f"),$(this,qD,"f"))$(this,b,"f").process.exit(D)}exitProcess(D=!0){return L("[boolean]",[D],arguments.length),_(this,qD,D,"f"),this}fail(D){if(L("<function|boolean>",[D],arguments.length),typeof D==="boolean"&&D!==!1)throw new a("Invalid first argument. Expected function or boolean 'false'");return $(this,w,"f").failFn(D),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(D,u){if(L("<array> [function]",[D,u],arguments.length),!u)return new Promise((F,C)=>{$(this,QD,"f").getCompletion(D,(E,B)=>{if(E)C(E);else F(B)})});else return $(this,QD,"f").getCompletion(D,u)}getDemandedOptions(){return L([],0),$(this,R,"f").demandedOptions}getDemandedCommands(){return L([],0),$(this,R,"f").demandedCommands}getDeprecatedOptions(){return L([],0),$(this,R,"f").deprecatedOptions}getDetectLocale(){return $(this,yD,"f")}getExitProcess(){return $(this,qD,"f")}getGroups(){return Object.assign({},$(this,_D,"f"),$(this,oD,"f"))}getHelp(){if(_(this,YD,!0,"f"),!$(this,w,"f").hasCachedHelpMessage()){if(!this.parsed){let u=this[Mu]($(this,wD,"f"),void 0,void 0,0,!0);if(o(u))return u.then(()=>{return $(this,w,"f").help()})}let D=$(this,e,"f").runDefaultBuilderOn(this);if(o(D))return D.then(()=>{return $(this,w,"f").help()})}return Promise.resolve($(this,w,"f").help())}getOptions(){return $(this,R,"f")}getStrict(){return $(this,gD,"f")}getStrictCommands(){return $(this,lD,"f")}getStrictOptions(){return $(this,sD,"f")}global(D,u){if(L("<string|array> [boolean]",[D,u],arguments.length),D=[].concat(D),u!==!1)$(this,R,"f").local=$(this,R,"f").local.filter((F)=>D.indexOf(F)===-1);else D.forEach((F)=>{if(!$(this,R,"f").local.includes(F))$(this,R,"f").local.push(F)});return this}group(D,u){L("<string|array> <string>",[D,u],arguments.length);let F=$(this,oD,"f")[u]||$(this,_D,"f")[u];if($(this,oD,"f")[u])delete $(this,oD,"f")[u];let C={};return $(this,_D,"f")[u]=(F||[]).concat(D).filter((E)=>{if(C[E])return!1;return C[E]=!0}),this}hide(D){return L("<string>",[D],arguments.length),$(this,R,"f").hiddenOptions.push(D),this}implies(D,u){return L("<string|object> [number|string|array]",[D,u],arguments.length),$(this,l,"f").implies(D,u),this}locale(D){if(L("[string]",[D],arguments.length),D===void 0)return this[BF](),$(this,b,"f").y18n.getLocale();return _(this,yD,!1,"f"),$(this,b,"f").y18n.setLocale(D),this}middleware(D,u,F){return $(this,HD,"f").addMiddleware(D,!!u,F)}nargs(D,u){return L("<string|object|array> [number]",[D,u],arguments.length),this[$u](this.nargs.bind(this),"narg",D,u),this}normalize(D){return L("<array|string>",[D],arguments.length),this[mD]("normalize",D),this}number(D){return L("<array|string>",[D],arguments.length),this[mD]("number",D),this[eD](D),this}option(D,u){if(L("<string|object> [object]",[D,u],arguments.length),typeof D==="object")Object.keys(D).forEach((F)=>{this.options(F,D[F])});else{if(typeof u!=="object")u={};if(this[eD](D),$(this,KD,"f")&&(D==="version"||(u===null||u===void 0?void 0:u.alias)==="version"))this[p0](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
79
|
+
`),void 0,"versionWarning");if($(this,R,"f").key[D]=!0,u.alias)this.alias(D,u.alias);let F=u.deprecate||u.deprecated;if(F)this.deprecateOption(D,F);let C=u.demand||u.required||u.require;if(C)this.demand(D,C);if(u.demandOption)this.demandOption(D,typeof u.demandOption==="string"?u.demandOption:void 0);if(u.conflicts)this.conflicts(D,u.conflicts);if("default"in u)this.default(D,u.default);if(u.implies!==void 0)this.implies(D,u.implies);if(u.nargs!==void 0)this.nargs(D,u.nargs);if(u.config)this.config(D,u.configParser);if(u.normalize)this.normalize(D);if(u.choices)this.choices(D,u.choices);if(u.coerce)this.coerce(D,u.coerce);if(u.group)this.group(D,u.group);if(u.boolean||u.type==="boolean"){if(this.boolean(D),u.alias)this.boolean(u.alias)}if(u.array||u.type==="array"){if(this.array(D),u.alias)this.array(u.alias)}if(u.number||u.type==="number"){if(this.number(D),u.alias)this.number(u.alias)}if(u.string||u.type==="string"){if(this.string(D),u.alias)this.string(u.alias)}if(u.count||u.type==="count")this.count(D);if(typeof u.global==="boolean")this.global(D,u.global);if(u.defaultDescription)$(this,R,"f").defaultDescription[D]=u.defaultDescription;if(u.skipValidation)this.skipValidation(D);let E=u.describe||u.description||u.desc,B=$(this,w,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(B,D)||typeof E==="string")this.describe(D,E);if(u.hidden)this.hide(D);if(u.requiresArg)this.requiresArg(D)}return this}options(D,u){return this.option(D,u)}parse(D,u,F){if(L("[string|array] [function|boolean|object] [function]",[D,u,F],arguments.length),this[t0](),typeof D>"u")D=$(this,wD,"f");if(typeof u==="object")_(this,iD,u,"f"),u=F;if(typeof u==="function")_(this,fD,u,"f"),u=!1;if(!u)_(this,wD,D,"f");if($(this,fD,"f"))_(this,qD,!1,"f");let C=this[Mu](D,!!u),E=this.parsed;if($(this,QD,"f").setParsed(this.parsed),o(C))return C.then((B)=>{if($(this,fD,"f"))$(this,fD,"f").call(this,$(this,hD,"f"),B,$(this,zD,"f"));return B}).catch((B)=>{if($(this,fD,"f"))$(this,fD,"f")(B,this.parsed.argv,$(this,zD,"f"));throw B}).finally(()=>{this[QF](),this.parsed=E});else{if($(this,fD,"f"))$(this,fD,"f").call(this,$(this,hD,"f"),C,$(this,zD,"f"));this[QF](),this.parsed=E}return C}parseAsync(D,u,F){let C=this.parse(D,u,F);return!o(C)?Promise.resolve(C):C}parseSync(D,u,F){let C=this.parse(D,u,F);if(o(C))throw new a(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return C}parserConfiguration(D){return L("<object>",[D],arguments.length),_(this,Pu,D,"f"),this}pkgConf(D,u){L("<string> [string]",[D,u],arguments.length);let F=null,C=this[$F](u||$(this,kD,"f"));if(C[D]&&typeof C[D]==="object")F=ju(C[D],u||$(this,kD,"f"),this[rD]()["deep-merge-config"]||!1,$(this,b,"f")),$(this,R,"f").configObjects=($(this,R,"f").configObjects||[]).concat(F);return this}positional(D,u){L("<string> <object>",[D,u],arguments.length);let F=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];u=PD(u,(B,z)=>{if(B==="type"&&!["string","number","boolean"].includes(z))return!1;return F.includes(B)});let C=$(this,Ju,"f").fullCommands[$(this,Ju,"f").fullCommands.length-1],E=C?$(this,e,"f").cmdToParseOptions(C):{array:[],alias:{},default:{},demand:{}};return Cu(E).forEach((B)=>{let z=E[B];if(Array.isArray(z)){if(z.indexOf(D)!==-1)u[B]=!0}else if(z[D]&&!(B in u))u[B]=z[D]}),this.group(D,$(this,w,"f").getPositionalGroupName()),this.option(D,u)}recommendCommands(D=!0){return L("[boolean]",[D],arguments.length),_(this,bu,D,"f"),this}required(D,u,F){return this.demand(D,u,F)}require(D,u,F){return this.demand(D,u,F)}requiresArg(D){if(L("<array|string|object> [number]",[D],arguments.length),typeof D==="string"&&$(this,R,"f").narg[D])return this;else this[$u](this.requiresArg.bind(this),"narg",D,NaN);return this}showCompletionScript(D,u){return L("[string] [string]",[D,u],arguments.length),D=D||this.$0,$(this,nD,"f").log($(this,QD,"f").generateCompletionScript(D,u||$(this,OD,"f")||"completion")),this}showHelp(D){if(L("[string|function]",[D],arguments.length),_(this,YD,!0,"f"),!$(this,w,"f").hasCachedHelpMessage()){if(!this.parsed){let F=this[Mu]($(this,wD,"f"),void 0,void 0,0,!0);if(o(F))return F.then(()=>{$(this,w,"f").showHelp(D)}),this}let u=$(this,e,"f").runDefaultBuilderOn(this);if(o(u))return u.then(()=>{$(this,w,"f").showHelp(D)}),this}return $(this,w,"f").showHelp(D),this}scriptName(D){return this.customScriptName=!0,this.$0=D,this}showHelpOnFail(D,u){return L("[boolean|string] [string]",[D,u],arguments.length),$(this,w,"f").showHelpOnFail(D,u),this}showVersion(D){return L("[string|function]",[D],arguments.length),$(this,w,"f").showVersion(D),this}skipValidation(D){return L("<array|string>",[D],arguments.length),this[mD]("skipValidation",D),this}strict(D){return L("[boolean]",[D],arguments.length),_(this,gD,D!==!1,"f"),this}strictCommands(D){return L("[boolean]",[D],arguments.length),_(this,lD,D!==!1,"f"),this}strictOptions(D){return L("[boolean]",[D],arguments.length),_(this,sD,D!==!1,"f"),this}string(D){return L("<array|string>",[D],arguments.length),this[mD]("string",D),this[eD](D),this}terminalWidth(){return L([],0),$(this,b,"f").process.stdColumns}updateLocale(D){return this.updateStrings(D)}updateStrings(D){return L("<object>",[D],arguments.length),_(this,yD,!1,"f"),$(this,b,"f").y18n.updateLocale(D),this}usage(D,u,F,C){if(L("<string|null|undefined> [string|boolean] [function|object] [function]",[D,u,F,C],arguments.length),u!==void 0)if(GD(D,null,$(this,b,"f")),(D||"").match(/^\$0( |$)/))return this.command(D,u,F,C);else throw new a(".usage() description must start with $0 if being used as alias for .command()");else return $(this,w,"f").usage(D),this}usageConfiguration(D){return L("<object>",[D],arguments.length),_(this,hu,D,"f"),this}version(D,u,F){if(L("[boolean|string] [string] [string]",[D,u,F],arguments.length),$(this,KD,"f"))this[EF]($(this,KD,"f")),$(this,w,"f").version(void 0),_(this,KD,null,"f");if(arguments.length===0)F=this[y0](),D="version";else if(arguments.length===1){if(D===!1)return this;F=D,D="version"}else if(arguments.length===2)F=u,u=void 0;return _(this,KD,typeof D==="string"?D:"version","f"),u=u||$(this,w,"f").deferY18nLookup("Show version number"),$(this,w,"f").version(F||void 0),this.boolean($(this,KD,"f")),this.describe($(this,KD,"f"),u),this}wrap(D){return L("<number|null|undefined>",[D],arguments.length),$(this,w,"f").wrap(D),this}[(e=new WeakMap,kD=new WeakMap,Ju=new WeakMap,QD=new WeakMap,OD=new WeakMap,Nu=new WeakMap,hD=new WeakMap,yD=new WeakMap,Ru=new WeakMap,qD=new WeakMap,Au=new WeakMap,HD=new WeakMap,_D=new WeakMap,YD=new WeakMap,WD=new WeakMap,Su=new WeakMap,nD=new WeakMap,zD=new WeakMap,R=new WeakMap,xu=new WeakMap,Pu=new WeakMap,fD=new WeakMap,iD=new WeakMap,Bu=new WeakMap,oD=new WeakMap,wD=new WeakMap,bu=new WeakMap,b=new WeakMap,gD=new WeakMap,lD=new WeakMap,sD=new WeakMap,w=new WeakMap,hu=new WeakMap,KD=new WeakMap,l=new WeakMap,c0)](D){if(!D._||!D["--"])return D;D._.push.apply(D._,D["--"]);try{delete D["--"]}catch(u){}return D}[v0](){return{log:(...D)=>{if(!this[wu]())console.log(...D);if(_(this,YD,!0,"f"),$(this,zD,"f").length)_(this,zD,$(this,zD,"f")+`
|
|
80
|
+
`,"f");_(this,zD,$(this,zD,"f")+D.join(" "),"f")},error:(...D)=>{if(!this[wu]())console.error(...D);if(_(this,YD,!0,"f"),$(this,zD,"f").length)_(this,zD,$(this,zD,"f")+`
|
|
81
|
+
`,"f");_(this,zD,$(this,zD,"f")+D.join(" "),"f")}}}[EF](D){Cu($(this,R,"f")).forEach((u)=>{if(((C)=>C==="configObjects")(u))return;let F=$(this,R,"f")[u];if(Array.isArray(F)){if(F.includes(D))F.splice(F.indexOf(D),1)}else if(typeof F==="object")delete F[D]}),delete $(this,w,"f").getDescriptions()[D]}[p0](D,u,F){if(!$(this,Ru,"f")[F])$(this,b,"f").process.emitWarning(D,u),$(this,Ru,"f")[F]=!0}[t0](){$(this,Au,"f").push({options:$(this,R,"f"),configObjects:$(this,R,"f").configObjects.slice(0),exitProcess:$(this,qD,"f"),groups:$(this,_D,"f"),strict:$(this,gD,"f"),strictCommands:$(this,lD,"f"),strictOptions:$(this,sD,"f"),completionCommand:$(this,OD,"f"),output:$(this,zD,"f"),exitError:$(this,hD,"f"),hasOutput:$(this,YD,"f"),parsed:this.parsed,parseFn:$(this,fD,"f"),parseContext:$(this,iD,"f")}),$(this,w,"f").freeze(),$(this,l,"f").freeze(),$(this,e,"f").freeze(),$(this,HD,"f").freeze()}[d0](){let D="",u;if(/\b(node|iojs|electron)(\.exe)?$/.test($(this,b,"f").process.argv()[0]))u=$(this,b,"f").process.argv().slice(1,2);else u=$(this,b,"f").process.argv().slice(0,1);if(D=u.map((F)=>{let C=this[u2]($(this,kD,"f"),F);return F.match(/^(\/|([a-zA-Z]:)?\\)/)&&C.length<F.length?C:F}).join(" ").trim(),$(this,b,"f").getEnv("_")&&$(this,b,"f").getProcessArgvBin()===$(this,b,"f").getEnv("_"))D=$(this,b,"f").getEnv("_").replace(`${$(this,b,"f").path.dirname($(this,b,"f").process.execPath())}/`,"");return D}[rD](){return $(this,Pu,"f")}[k0](){return $(this,hu,"f")}[BF](){if(!$(this,yD,"f"))return;let D=$(this,b,"f").getEnv("LC_ALL")||$(this,b,"f").getEnv("LC_MESSAGES")||$(this,b,"f").getEnv("LANG")||$(this,b,"f").getEnv("LANGUAGE")||"en_US";this.locale(D.replace(/[.:].*/,""))}[y0](){return this[$F]().version||"unknown"}[n0](D){let u=D["--"]?D["--"]:D._;for(let F=0,C;(C=u[F])!==void 0;F++)if($(this,b,"f").Parser.looksLikeNumber(C)&&Number.isSafeInteger(Math.floor(parseFloat(`${C}`))))u[F]=Number(C);return D}[$F](D){let u=D||"*";if($(this,Bu,"f")[u])return $(this,Bu,"f")[u];let F={};try{let C=D||$(this,b,"f").mainFilename;if($(this,b,"f").path.extname(C))C=$(this,b,"f").path.dirname(C);let E=$(this,b,"f").findUp(C,(B,z)=>{if(z.includes("package.json"))return"package.json";else return});GD(E,void 0,$(this,b,"f")),F=JSON.parse($(this,b,"f").readFileSync(E,"utf8"))}catch(C){}return $(this,Bu,"f")[u]=F||{},$(this,Bu,"f")[u]}[mD](D,u){u=[].concat(u),u.forEach((F)=>{F=this[XF](F),$(this,R,"f")[D].push(F)})}[$u](D,u,F,C){this[ZF](D,u,F,C,(E,B,z)=>{$(this,R,"f")[E][B]=z})}[zF](D,u,F,C){this[ZF](D,u,F,C,(E,B,z)=>{$(this,R,"f")[E][B]=($(this,R,"f")[E][B]||[]).concat(z)})}[ZF](D,u,F,C,E){if(Array.isArray(F))F.forEach((B)=>{D(B,C)});else if(((B)=>typeof B==="object")(F))for(let B of Cu(F))D(B,F[B]);else E(u,this[XF](F),C)}[XF](D){if(D==="__proto__")return"___proto___";return D}[GF](D,u){return this[$u](this[GF].bind(this),"key",D,u),this}[QF](){var D,u,F,C,E,B,z,X,J,f,W,O;let Y=$(this,Au,"f").pop();GD(Y,void 0,$(this,b,"f"));let q;D=this,u=this,F=this,C=this,E=this,B=this,z=this,X=this,J=this,f=this,W=this,O=this,{options:{set value(H){_(D,R,H,"f")}}.value,configObjects:q,exitProcess:{set value(H){_(u,qD,H,"f")}}.value,groups:{set value(H){_(F,_D,H,"f")}}.value,output:{set value(H){_(C,zD,H,"f")}}.value,exitError:{set value(H){_(E,hD,H,"f")}}.value,hasOutput:{set value(H){_(B,YD,H,"f")}}.value,parsed:this.parsed,strict:{set value(H){_(z,gD,H,"f")}}.value,strictCommands:{set value(H){_(X,lD,H,"f")}}.value,strictOptions:{set value(H){_(J,sD,H,"f")}}.value,completionCommand:{set value(H){_(f,OD,H,"f")}}.value,parseFn:{set value(H){_(W,fD,H,"f")}}.value,parseContext:{set value(H){_(O,iD,H,"f")}}.value}=Y,$(this,R,"f").configObjects=q,$(this,w,"f").unfreeze(),$(this,l,"f").unfreeze(),$(this,e,"f").unfreeze(),$(this,HD,"f").unfreeze()}[i0](D,u){return dD(u,(F)=>{return D(F),F})}getInternalMethods(){return{getCommandInstance:this[o0].bind(this),getContext:this[g0].bind(this),getHasOutput:this[l0].bind(this),getLoggerInstance:this[s0].bind(this),getParseContext:this[r0].bind(this),getParserConfiguration:this[rD].bind(this),getUsageConfiguration:this[k0].bind(this),getUsageInstance:this[a0].bind(this),getValidationInstance:this[e0].bind(this),hasParseCallback:this[wu].bind(this),isGlobalContext:this[D2].bind(this),postProcess:this[aD].bind(this),reset:this[JF].bind(this),runValidation:this[MF].bind(this),runYargsParserAndExecuteCommands:this[Mu].bind(this),setHasOutput:this[F2].bind(this)}}[o0](){return $(this,e,"f")}[g0](){return $(this,Ju,"f")}[l0](){return $(this,YD,"f")}[s0](){return $(this,nD,"f")}[r0](){return $(this,iD,"f")||{}}[a0](){return $(this,w,"f")}[e0](){return $(this,l,"f")}[wu](){return!!$(this,fD,"f")}[D2](){return $(this,Su,"f")}[aD](D,u,F,C){if(F)return D;if(o(D))return D;if(!u)D=this[c0](D);if(this[rD]()["parse-positional-numbers"]||this[rD]()["parse-positional-numbers"]===void 0)D=this[n0](D);if(C)D=tD(D,this,$(this,HD,"f").getMiddleware(),!1);return D}[JF](D={}){_(this,R,$(this,R,"f")||{},"f");let u={};u.local=$(this,R,"f").local||[],u.configObjects=$(this,R,"f").configObjects||[];let F={};u.local.forEach((B)=>{F[B]=!0,(D[B]||[]).forEach((z)=>{F[z]=!0})}),Object.assign($(this,oD,"f"),Object.keys($(this,_D,"f")).reduce((B,z)=>{let X=$(this,_D,"f")[z].filter((J)=>!(J in F));if(X.length>0)B[z]=X;return B},{})),_(this,_D,{},"f");let C=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],E=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(C.forEach((B)=>{u[B]=($(this,R,"f")[B]||[]).filter((z)=>!F[z])}),E.forEach((B)=>{u[B]=PD($(this,R,"f")[B],(z)=>!F[z])}),u.envPrefix=$(this,R,"f").envPrefix,_(this,R,u,"f"),_(this,w,$(this,w,"f")?$(this,w,"f").reset(F):R0(this,$(this,b,"f")),"f"),_(this,l,$(this,l,"f")?$(this,l,"f").reset(F):w0(this,$(this,w,"f"),$(this,b,"f")),"f"),_(this,e,$(this,e,"f")?$(this,e,"f").reset():K0($(this,w,"f"),$(this,l,"f"),$(this,HD,"f"),$(this,b,"f")),"f"),!$(this,QD,"f"))_(this,QD,P0(this,$(this,w,"f"),$(this,e,"f"),$(this,b,"f")),"f");return $(this,HD,"f").reset(),_(this,OD,null,"f"),_(this,zD,"","f"),_(this,hD,null,"f"),_(this,YD,!1,"f"),this.parsed=!1,this}[u2](D,u){return $(this,b,"f").path.relative(D,u)}[Mu](D,u,F,C=0,E=!1){var B,z,X,J;let f=!!F||E;D=D||$(this,wD,"f"),$(this,R,"f").__=$(this,b,"f").y18n.__,$(this,R,"f").configuration=this[rD]();let W=!!$(this,R,"f").configuration["populate--"],O=Object.assign({},$(this,R,"f").configuration,{"populate--":!0}),Y=$(this,b,"f").Parser.detailed(D,Object.assign({},$(this,R,"f"),{configuration:{"parse-positional-numbers":!1,...O}})),q=Object.assign(Y.argv,$(this,iD,"f")),H=void 0,M=Y.aliases,S=!1,p=!1;if(Object.keys(q).forEach((m)=>{if(m===$(this,WD,"f")&&q[m])S=!0;else if(m===$(this,KD,"f")&&q[m])p=!0}),q.$0=this.$0,this.parsed=Y,C===0)$(this,w,"f").clearCachedHelpMessage();try{if(this[BF](),u)return this[aD](q,W,!!F,!1);if($(this,WD,"f")){if([$(this,WD,"f")].concat(M[$(this,WD,"f")]||[]).filter((uD)=>uD.length>1).includes(""+q._[q._.length-1]))q._.pop(),S=!0}_(this,Su,!1,"f");let m=$(this,e,"f").getCommands(),BD=((B=$(this,QD,"f"))===null||B===void 0?void 0:B.completionKey)?[(z=$(this,QD,"f"))===null||z===void 0?void 0:z.completionKey,...(J=this.getAliases()[(X=$(this,QD,"f"))===null||X===void 0?void 0:X.completionKey])!==null&&J!==void 0?J:[]].some((i)=>Object.prototype.hasOwnProperty.call(q,i)):!1,c=S||BD||E;if(q._.length){if(m.length){let i;for(let uD=C||0,s;q._[uD]!==void 0;uD++)if(s=String(q._[uD]),m.includes(s)&&s!==$(this,OD,"f")){let LD=$(this,e,"f").runCommand(s,this,Y,uD+1,E,S||p||E);return this[aD](LD,W,!!F,!1)}else if(!i&&s!==$(this,OD,"f")){i=s;break}if(!$(this,e,"f").hasDefaultCommand()&&$(this,bu,"f")&&i&&!c)$(this,l,"f").recommendCommands(i,m)}if($(this,OD,"f")&&q._.includes($(this,OD,"f"))&&!BD){if($(this,qD,"f"))bD(!0);this.showCompletionScript(),this.exit(0)}}if($(this,e,"f").hasDefaultCommand()&&!c){let i=$(this,e,"f").runCommand(null,this,Y,0,E,S||p||E);return this[aD](i,W,!!F,!1)}if(BD){if($(this,qD,"f"))bD(!0);D=[].concat(D);let i=D.slice(D.indexOf(`--${$(this,QD,"f").completionKey}`)+1);return $(this,QD,"f").getCompletion(i,(uD,s)=>{if(uD)throw new a(uD.message);(s||[]).forEach((LD)=>{$(this,nD,"f").log(LD)}),this.exit(0)}),this[aD](q,!W,!!F,!1)}if(!$(this,YD,"f")){if(S){if($(this,qD,"f"))bD(!0);f=!0,this.showHelp((i)=>{$(this,nD,"f").log(i),this.exit(0)})}else if(p){if($(this,qD,"f"))bD(!0);f=!0,$(this,w,"f").showVersion("log"),this.exit(0)}}if(!f&&$(this,R,"f").skipValidation.length>0)f=Object.keys(q).some((i)=>$(this,R,"f").skipValidation.indexOf(i)>=0&&q[i]===!0);if(!f){if(Y.error)throw new a(Y.error.message);if(!BD){let i=this[MF](M,{},Y.error);if(!F)H=tD(q,this,$(this,HD,"f").getMiddleware(),!0);if(H=this[i0](i,H!==null&&H!==void 0?H:q),o(H)&&!F)H=H.then(()=>{return tD(q,this,$(this,HD,"f").getMiddleware(),!1)})}}}catch(m){if(m instanceof a)$(this,w,"f").fail(m.message,m);else throw m}return this[aD](H!==null&&H!==void 0?H:q,W,!!F,!0)}[MF](D,u,F,C){let E={...this.getDemandedOptions()};return(B)=>{if(F)throw new a(F.message);$(this,l,"f").nonOptionCount(B),$(this,l,"f").requiredArguments(B,E);let z=!1;if($(this,lD,"f"))z=$(this,l,"f").unknownCommands(B);if($(this,gD,"f")&&!z)$(this,l,"f").unknownArguments(B,D,u,!!C);else if($(this,sD,"f"))$(this,l,"f").unknownArguments(B,D,{},!1,!1);$(this,l,"f").limitedChoices(B),$(this,l,"f").implications(B),$(this,l,"f").conflicting(B)}}[F2](){_(this,YD,!0,"f")}[eD](D){if(typeof D==="string")$(this,R,"f").key[D]=!0;else for(let u of D)$(this,R,"f").key[u]=!0}}function j0(D){return!!D&&typeof D.getInternalMethods==="function"}var U3=C2(W0),B2=U3;var $2={name:"@coryrylan/cradle",version:"0.0.0",description:"A runtime for portable agents defined as folders \u2014 launches the pi coding agent configured from an agent folder, sandboxed with nono",main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",type:"module",exports:{".":{types:"./dist/index.d.ts",default:"./dist/index.js"}},bin:{cradle:"dist/index.js"},files:["README.md","CHANGELOG.md","LICENSE","package.json","dist/index.js","dist/**/*.d.ts","!dist/**/*.test.d.ts"],repository:{type:"git",url:"git+https://github.com/coryrylan/cradle.git",directory:"projects/cli"},keywords:["pi","agents","agent-folders","sandbox","nono","cli","bun"],author:"Cory Rylan (https://coryrylan.com)",license:"MIT",bugs:{url:"https://github.com/coryrylan/cradle/issues"},homepage:"https://github.com/coryrylan/cradle/tree/main/projects/cli#readme",engines:{bun:">=1.3.0"},publishConfig:{access:"public"},scripts:{start:"wireit",ci:"wireit","ci:nocache":"bun run clean && bun run ci",clean:"rm -rf dist",test:"wireit","test:coverage":"wireit",lint:"wireit",build:"wireit","install:local":"wireit","uninstall:local":"wireit",release:"wireit"},wireit:{start:{command:"bun src/index.ts",cache:!1},ci:{dependencies:["lint","build","test:coverage"]},test:{command:"bun test",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json","bunfig.toml"],output:[]},"test:coverage":{command:"bun test --coverage",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json","bunfig.toml"],output:[]},lint:{command:"eslint .",files:["src/**/*.ts","eslint.config.js","package.json"],output:[]},build:{dependencies:["build:js","build:tsc","build:darwin-arm64","build:darwin-x64","build:linux-x64","build:linux-arm64","build:windows-x64"]},"build:js":{command:"bun build ./src/index.ts --outdir=./dist --target=bun --format=esm --minify",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json"],output:["dist/index.js"]},"build:tsc":{command:"tsc --emitDeclarationOnly --project tsconfig.types.json",files:["src/**/*.ts","src/**/*.json","tsconfig.json","tsconfig.types.json"],output:["dist/**/*.d.ts"]},"build:darwin-arm64":{command:"bun build --compile --minify src/index.ts --target=bun-darwin-arm64 --outfile dist/cradle-macos-arm64",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json"],output:["dist/cradle-macos-arm64"]},"build:darwin-x64":{command:"bun build --compile --minify src/index.ts --target=bun-darwin-x64 --outfile dist/cradle-macos-x64",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json"],output:["dist/cradle-macos-x64"]},"build:linux-x64":{command:"bun build --compile --minify src/index.ts --target=bun-linux-x64 --outfile dist/cradle-linux-x64",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json"],output:["dist/cradle-linux-x64"]},"build:linux-arm64":{command:"bun build --compile --minify src/index.ts --target=bun-linux-arm64 --outfile dist/cradle-linux-arm64",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json"],output:["dist/cradle-linux-arm64"]},"build:windows-x64":{command:"bun build --compile --minify src/index.ts --target=bun-windows-x64 --outfile dist/cradle-windows-x64.exe",files:["src/**/*.ts","src/**/*.json","src/**/*.txt","tsconfig.json"],output:["dist/cradle-windows-x64.exe"]},"install:local":{dependencies:["build"],command:"bash install.sh",cache:!1},"uninstall:local":{command:'rm -f "$HOME/.local/bin/cradle"',cache:!1},release:{command:"HUSKY=0 bun x semantic-release",dependencies:["ci"]}},dependencies:{yargs:"18.0.0"},devDependencies:{"@eslint/js":"catalog:","@types/bun":"catalog:","@types/yargs":"17.0.35",eslint:"catalog:",typescript:"catalog:","typescript-eslint":"catalog:"}};import{join as H3}from"path";function W3(D){let{folder:u}=D,{settings:F}=u,C=[D.piBin,"--append-system-prompt",u.appendSystemFilePath,"--no-extensions","--no-skills","--no-prompt-templates"];if(u.providersJson!==null)C.push("-e",H3(D.extensionsDir,"providers.ts"));for(let E of D.packageEntries??[])C.push("-e",E);for(let E of u.extensionFiles)C.push("-e",E);if(u.skillsDir!==null)C.push("--skill",u.skillsDir);if(F.defaultProvider!==void 0)C.push("--provider",F.defaultProvider);if(F.defaultModel!==void 0)C.push("--model",F.defaultModel);if(F.defaultThinkingLevel!==void 0)C.push("--thinking",F.defaultThinkingLevel);return C.push("--session-dir",D.sessionsDir),C.push(...D.passthrough),C}function OF(D){return D.sandbox?{MISE_CACHE_DIR:D.miseCacheDir}:{}}function Ou(D){let u=W3(D);if(!D.sandbox)return u;return[D.nonoBin,"run",...D.verbose===!0?[]:["--silent"],"--profile",D.profilePath,"--",...u]}import{existsSync as T3}from"fs";import{homedir as V3}from"os";import{join as I3}from"path";function L3(D,u=V3()){let F=I3(u,".local","share","mise","shims",D);return T3(F)?F:null}var z2=(D)=>Bun.which(D)??L3(D);function YF(D,u=z2){return u(D)}function fF(D,u=z2){let F=YF(D,u);if(!F)throw Error(`required executable "${D}" not found on PATH \u2014 install it, then run \`cradle doctor\` to verify`);return F}var _3="recommended: the supported way to install pi/nono \u2014 cradle resolves them from mise shims and the sandbox profile assumes a mise-managed install",K3="required for sandboxed runs (a folder declaring sandbox/nono.json, or --sandbox/--offline/--allow-host); not needed otherwise";async function Z2(D={}){let u=(f)=>YF(f,D.which),F=async(f)=>f!==null&&D.readVersion?D.readVersion(f):null,C=u("pi"),E=u("nono"),B=u("mise"),[z,X,J]=await Promise.all([F(C),F(E),F(B)]);return[{name:"pi",bin:"pi",required:!0,found:C,version:z},{name:"nono",bin:"nono",required:!1,found:E,version:X,...E?{}:{note:K3}},{name:"mise",bin:"mise",required:!1,found:B,version:J,...B?{}:{note:_3}}]}function j3(D){let u=D.found?`\u2713 ${D.name.padEnd(8)} ${D.version??"?"} ${D.found}`:D.required?`\u2717 ${D.name.padEnd(8)} MISSING (required)`:`\u25CB ${D.name.padEnd(8)} not found (recommended)`;return D.note?`${u}
|
|
82
|
+
\u26A0 ${D.note}`:u}function X2(D){return D.map(j3).join(`
|
|
83
|
+
`)}function G2(D){return D.some((u)=>u.required&&!u.found)?1:0}import{exists as p1,mkdir as KF,rm as t1,writeFile as d2}from"fs/promises";import{homedir as d1}from"os";import{dirname as k1,join as qu}from"path";import{stat as y3}from"fs/promises";import{join as W2,resolve as n3}from"path";import{basename as R3,isAbsolute as A3,join as S3,relative as x3}from"path";var Yu={extends:"default",meta:{name:"cradle-pi"},groups:{include:["node_runtime","git_config","unlink_protection"]},filesystem:{read:["$HOME/.agents","$HOME/.local/share/mise","$HOME/.config/mise","$HOME/.local/state/mise","$HOME/.config/gh","/System/iOSSupport/System/Library/ExtensionKit/Extensions","/System/Library/AssetsV2/com_apple_MobileAsset_TTSAXResourceModelAssets","/System/Library/AssetsV2/com_apple_MobileAsset_UAF_Siri_TextToSpeech"],allow:["$HOME/.pi/agent"]},unsafe_macos_seatbelt_rules:['(allow user-preference-read (preference-domain "kCFPreferencesAnyApplication") (preference-domain "com.apple.speech.voice.prefs") (preference-domain "com.apple.speakselection") (preference-domain "com.apple.assistant.backedup") (preference-domain "com.apple.assistant.support") (preference-domain "com.apple.accessibility"))']};var Q2="nono-profile.json";function mu(D,u){let F=x3(D,u);return F===""||!F.startsWith("..")&&!A3(F)}function J2(D,u){let F=S3(u,".local","state","nono");return mu(D,F)||mu(F,D)?D:void 0}function UF(D,u){if(D==="~"||D==="$HOME")return u;if(D.startsWith("~/"))return`${u}${D.slice(1)}`;if(D.startsWith("$HOME/"))return`${u}${D.slice(5)}`;return D}function M2(D){let u=(B)=>UF(B,D.home),F=Yu.filesystem,C=D.network!==void 0?P3(D.network):void 0,E={...Yu,meta:{...Yu.meta,name:`cradle-${R3(D.stateDir)}`},filesystem:{...F,read:[...F.read??[],D.agentDir,...D.grants.read.map(u)],write:[...F.write??[],...D.grants.write.map(u)],allow:[...F.allow??[],D.cwd,D.stateDir,...D.linkedGitDir!==void 0?[D.linkedGitDir]:[],...D.grants.allow.map(u)]},unsafe_macos_seatbelt_rules:[...Yu.unsafe_macos_seatbelt_rules??[],...D.rules],...C!==void 0?{network:C}:{}};return JSON.stringify(E,null,2)}function P3(D){return{...D.block!==void 0?{block:D.block}:{},...D.networkProfile!==void 0?{network_profile:D.networkProfile}:{},...D.allowDomain!==void 0?{allow_domain:D.allowDomain}:{},...D.openPort!==void 0?{open_port:D.openPort}:{},...D.listenPort!==void 0?{listen_port:D.listenPort}:{}}}import{chmod as O2,lstat as b3,mkdir as h3,readdir as Y2,readFile as w3,rm as m3,writeFile as c3}from"fs/promises";import{dirname as v3,join as vu,relative as p3}from"path";function JD(D){return typeof D==="object"&&D!==null&&!Array.isArray(D)}function zu(D,u){try{return JSON.parse(D)}catch(F){throw Error(`${u} is not valid JSON: ${Du(F)}`,{cause:F})}}function Du(D){return D instanceof Error?D.message:String(D)}function ID(D,u){return typeof D==="object"&&D!==null&&"code"in D&&D.code===u}function qF(D){if(/^[A-Za-z0-9_./:@%+=,-]+$/u.test(D))return D;return`'${D.replaceAll("'","'\\''")}'`}function cD(D){return Array.isArray(D)&&D.every((u)=>typeof u==="string")}function fu(D){return/^(?:\/|~(?:\/|$)|\$HOME(?:\/|$)|[A-Za-z]:[\\/]|\\\\)/.test(D)}function uu(D,u,F,C){let E=Object.keys(D).filter((B)=>!F.includes(B));if(E.length>0)C.push(`${u}: unsupported keys ignored: ${E.join(", ")}`)}function cu(D,u,F,C){D.results.push({name:u,detail:F,status:C})}function t3(D,u,F){D.failures.push(`${u}: ${F}`),cu(D,u,F,"failed")}async function f2(D,u,F,C){try{if(await k3(F,C)){cu(D,u,F,"unchanged");return}if(D.dryRun){cu(D,u,`would replace ${F}`,"changed");return}await q2(F),await m3(F,{force:!0,recursive:!0});for(let E of C)await d3(F,E);cu(D,u,F,"changed")}catch(E){t3(D,u,Du(E))}}async function d3(D,u){let F=vu(D,u.rel);if(await h3(v3(F),{recursive:!0}),await c3(F,u.content,"utf8"),u.mode!==void 0)await O2(F,u.mode)}async function k3(D,u){let F=await U2(D);if(F.length!==u.length)return!1;let C=new Set(F);for(let E of u){if(!C.has(E.rel))return!1;if(await RD(vu(D,E.rel))!==E.content)return!1}return!0}async function U2(D,u=D){let F=await H2(D);if(!F||!F.isDirectory())return[];let C=[];for(let E of await Y2(D,{withFileTypes:!0})){let B=vu(D,E.name);if(E.isDirectory())C.push(...await U2(B,u));else C.push(p3(u,B))}return C}async function q2(D){let u=await H2(D);if(!u||u.isSymbolicLink())return;if(await O2(D,u.isDirectory()?493:420),!u.isDirectory())return;let F=await Y2(D);await Promise.all(F.map((C)=>q2(vu(D,C))))}async function RD(D){try{return await w3(D,"utf8")}catch(u){if(ID(u,"ENOENT"))return;throw u}}async function H2(D){try{return await b3(D)}catch(u){if(ID(u,"ENOENT"))return;throw u}}var i3=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;async function V2(D,u){if(!o3(D))return{dir:D,warnings:[]};let F=W2(u.home,".cradle","settings.json"),C=[],E=await g3(F,C),B=W2(u.cwd,D),z=E.get(D);if(z!==void 0){let X=n3(UF(z,u.home));if(await T2(B))C.push(r3(D,X));return{dir:X,warnings:C}}if(await T2(B))return{dir:B,warnings:C};throw Error(a3(D,B,F,E))}function o3(D){return i3.test(D)}async function T2(D){try{return(await y3(D)).isDirectory()}catch(u){if(ID(u,"ENOENT")||ID(u,"ENOTDIR"))return!1;throw u}}async function g3(D,u){let F=await RD(D);if(F===void 0)return new Map;let C=zu(F,D);if(!JD(C))return u.push(`${D}: settings must be a JSON object \u2014 ignored`),new Map;return uu(C,D,["agents"],u),l3(C,D,u)}function l3(D,u,F){let C=D.agents;if(C===void 0)return new Map;if(!JD(C))return F.push(`${u}: agents must be an object \u2014 ignored`),new Map;let E=Object.entries(C).map((B)=>{let[z,X]=B,J=s3(X,z,u,F);return J===void 0?void 0:[z,J]}).filter((B)=>B!==void 0);return new Map(E)}function s3(D,u,F,C){if(!JD(D)){C.push(`${F}: agents.${u} must be an object with a "path" \u2014 ignored`);return}let E=D.path;if(typeof E!=="string"||E.trim()===""){C.push(`${F}: agents.${u}.path must be a non-empty string \u2014 ignored`);return}if(!fu(E)){C.push(`${F}: agents.${u}.path must be an absolute, ~/, or $HOME/ path \u2014 ignored: ${E}`);return}return E}function r3(D,u){return`started alias "${D}" (${u}) \u2014 a directory named ${D} exists in the current directory; use ./${D} to run it instead`}function a3(D,u,F,C){let E=C.size>0?` (known agents: ${[...C.keys()].join(", ")})`:"";return`agent folder not found: ${u} \u2014 and no "agents.${D}" entry in ${F}${E}`}function I2(D){return`// generated by cradle from the agent folder's models.json \u2014 do not edit
|
|
84
|
+
import type { ExtensionAPI } from '@earendil-works/pi-coding-agent';
|
|
85
|
+
|
|
86
|
+
const providers = ${D} as const;
|
|
87
|
+
|
|
88
|
+
export default function (pi: ExtensionAPI): void {
|
|
89
|
+
for (const [name, config] of Object.entries(providers)) {
|
|
90
|
+
pi.registerProvider(name, config as never);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
`}import{lstat as G1,readdir as x2,stat as Q1}from"fs/promises";import{join as AD,resolve as J1}from"path";import{join as HF,resolve as e3,sep as L2}from"path";var D1=/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/,u1=/^[0-9A-Za-z.^~><=* +-]+$/;function _2(D,u,F){let C=D.packages;if(C===void 0)return[];if(!cD(C))return F.push(`${u}: packages must be an array of strings \u2014 ignored`),[];let E=F1(C,u,F);return C1(E,u,F)}function F1(D,u,F){let C=D.filter((B)=>B.startsWith("npm:")),E=D.filter((B)=>!B.startsWith("npm:"));if(E.length>0)F.push(`${u}: only npm: package sources are supported \u2014 ignored: ${E.join(", ")}`);return C}function C1(D,u,F){let C=[],E=[];for(let B of D){let z=E1(B.slice(4));if(z===null)E.push(B);else C.push(z)}if(E.length>0)F.push(`${u}: packages entries must be npm:<name>[@<version>] \u2014 ignored: ${E.join(", ")}`);return C}function E1(D){let u=D.lastIndexOf("@"),F=u>0,C=F?D.slice(0,u):D,E=F?D.slice(u+1):"latest";if(!D1.test(C)||!u1.test(E))return null;return{name:C,version:E}}function K2(D){let u=Object.fromEntries([...D].sort((F,C)=>F.name.localeCompare(C.name)).map((F)=>[F.name,F.version]));return`${JSON.stringify({name:"cradle-agent-packages",private:!0,dependencies:u},null,2)}
|
|
94
|
+
`}async function j2(D,u){let F=await Promise.all(u.map(async(C)=>{let E=[];return{entries:await B1(D,C,E),warnings:E}}));return{entries:F.flatMap((C)=>C.entries),warnings:F.flatMap((C)=>C.warnings)}}async function B1(D,u,F){let C=HF(D,"node_modules",u.name),E=await $1(u.name,C,F);if(E===null)return[];let B=z1(E);if(B===void 0)return Z1(u.name,C,F);let z=[];for(let X of B){let J=await X1(u.name,C,X,F);if(J!==null)z.push(J)}return z}async function $1(D,u,F){let C=HF(u,"package.json"),E=await RD(C);if(E===void 0)return F.push(`package ${D} is not installed \u2014 skipped`),null;try{let B=zu(E,C);if(!JD(B))return F.push(`package ${D}: ${C} must be a JSON object \u2014 skipped`),null;return B}catch(B){return F.push(`package ${D}: ${Du(B)} \u2014 skipped`),null}}function z1(D){let u=D.pi;if(u===void 0||!JD(u))return;let F=u.extensions;if(F===void 0||!cD(F))return;return F}async function Z1(D,u,F){let C=HF(u,"index.ts");if(await Bun.file(C).exists())return[C];return F.push(`package ${D} declares no pi extensions \u2014 skipped`),[]}async function X1(D,u,F,C){let E=e3(u,F),B=u.endsWith(L2)?u:`${u}${L2}`;if(E!==u&&!E.startsWith(B))return C.push(`package ${D}: extension entry "${F}" escapes the package directory \u2014 skipped`),null;if(!await Bun.file(E).exists())return C.push(`package ${D}: extension entry "${F}" not found \u2014 skipped`),null;return E}var N2=["off","minimal","low","medium","high","xhigh"],R2=new Set(["schedules","subagents","channels","connections"]),M1=new Set(["APPEND_SYSTEM.md","settings.json","models.json","skills","extensions","sandbox"]),O1=new Set([".git",".gitignore",".DS_Store","README.md","LICENSE"]),VF={read:[],write:[],allow:[]},WF={posture:"unconfigured",filesystem:VF,unsafeMacosSeatbeltRules:[]};async function P2(D){let u=J1(D),F=await Y1(u),C=new Map(F.map((B)=>[B.name,B]));if(!C.has("APPEND_SYSTEM.md")){let B=C.has("AGENTS.md")?" \u2014 found AGENTS.md, rename it to APPEND_SYSTEM.md":"";throw Error(`not an agent folder: ${u} (missing APPEND_SYSTEM.md${B} \u2014 see ARCHITECTURE.md)`)}let E=[];return f1(F,E),{dir:u,appendSystemFilePath:AD(u,"APPEND_SYSTEM.md"),settings:await U1(u,C.has("settings.json"),E),providersJson:await T1(u,C.has("models.json"),E),skillsDir:await I1(u,C.get("skills"),E),extensionFiles:await L1(u,C.get("extensions"),E),sandbox:await _1(u,C.get("sandbox"),E),warnings:E}}async function Y1(D){try{return await x2(D,{withFileTypes:!0})}catch(u){if(ID(u,"ENOENT")||ID(u,"ENOTDIR"))throw Error(`agent folder not found: ${D}`,{cause:u});throw u}}async function LF(D,u){if(u.isDirectory())return!0;if(!u.isSymbolicLink())return!1;try{return(await Q1(AD(D,u.name))).isDirectory()}catch(F){if(ID(F,"ENOENT"))return!1;throw F}}function f1(D,u){let F=D.filter((E)=>R2.has(E.name)).map((E)=>E.name),C=D.map((E)=>E.name).filter((E)=>!M1.has(E)&&!R2.has(E)&&!O1.has(E));if(F.length>0)u.push(`reserved for a future cradle release, ignored: ${F.join(", ")}`);if(C.length>0)u.push(`not part of the agent folder format, ignored: ${C.join(", ")}`)}async function U1(D,u,F){if(!u)return{};let C=AD(D,"settings.json"),E=await _F(C);H1(E,C,F);let B=IF(E,"defaultProvider",C,F),z=IF(E,"defaultModel",C,F),X=b1(E,C,F),J=_2(E,C,F),f=W1(E,C,F);return{...B!==void 0?{defaultProvider:B}:{},...z!==void 0?{defaultModel:z}:{},...X!==void 0?{defaultThinkingLevel:X}:{},...J.length>0?{packages:J}:{},...f!==void 0?{npmCommand:f}:{}}}var q1=new Set(["defaultProvider","defaultModel","defaultThinkingLevel","packages","npmCommand"]);function H1(D,u,F){let C=Object.keys(D).filter((E)=>!q1.has(E));if(C.length>0)F.push(`${u}: keys cradle does not map are ignored \u2014 pi reads them from ~/.pi/agent/settings.json or `+`the project's .pi/settings.json, not the agent folder: ${C.join(", ")}`)}var A2=new Set(["npm","pnpm","yarn","bun"]);function W1(D,u,F){let C=D.npmCommand;if(C===void 0)return;let[E,...B]=cD(C)?C:[];if(E===void 0||B.length>0||!A2.has(E)){let z=[...A2].join(", ");F.push(`${u}: npmCommand must be a single-element array naming one of ${z} \u2014 ignored`);return}return[E]}async function T1(D,u,F){if(!u)return null;let C=AD(D,"models.json"),E=await _F(C),B=E.providers;if(B===void 0||!JD(B))throw Error(`${C} must contain a "providers" object`);return uu(E,C,["providers"],F),JSON.stringify(V1(B),null,2)}function V1(D){let u={input:0,output:0,cacheRead:0,cacheWrite:0};return Object.fromEntries(Object.entries(D).map(([F,C])=>{if(!JD(C)||!Array.isArray(C.models))return[F,C];let E=C.models.map((B)=>JD(B)&&B.cost===void 0?{cost:u,...B}:B);return[F,{...C,models:E}]}))}async function I1(D,u,F){if(!u)return null;if(!await LF(D,u))return F.push("skills must be a directory \u2014 ignored"),null;return AD(D,"skills")}async function L1(D,u,F){if(!u)return[];if(!await LF(D,u))return F.push("extensions must be a directory \u2014 ignored"),[];let C=AD(D,"extensions"),E=await x2(C,{withFileTypes:!0});return(await Promise.all(E.sort((z,X)=>z.name.localeCompare(X.name)).map(async(z)=>{if(z.isFile()&&z.name.endsWith(".ts")&&!z.name.startsWith("."))return AD(C,z.name);if(z.isDirectory()){let X=AD(C,z.name,"index.ts");return await Bun.file(X).exists()?X:null}return null}))).filter((z)=>z!==null)}async function _1(D,u,F){if(!u)return WF;if(!await LF(D,u))return F.push("sandbox must be a directory \u2014 ignored"),WF;let C=AD(D,"sandbox","nono.json"),E=await K1(C);if(E===void 0)return F.push("sandbox/ has no nono.json \u2014 sandboxing stays off unless --sandbox is passed"),WF;let B=b2(E,"sandbox",C,F),z=R1(E,C,F);return N1(E,C,F),uu(E,C,["sandbox","network","filesystem","unsafe_macos_seatbelt_rules","net"],F),{posture:B===!1?"disabled":"enabled",...z!==void 0?{network:z}:{},filesystem:x1(E.filesystem,C,F),unsafeMacosSeatbeltRules:S1(E.unsafe_macos_seatbelt_rules,C,F)}}async function K1(D){return await j1(D)?_F(D):void 0}async function j1(D){try{return await G1(D),!0}catch(u){if(ID(u,"ENOENT"))return!1;throw u}}function N1(D,u,F){if(D.net!==void 0)F.push(`${u}: "net" was removed \u2014 use "network" instead (see ARCHITECTURE.md) \u2014 ignored`)}function R1(D,u,F){let C=D.network;if(C===void 0)return;if(!JD(C)){F.push(`${u}: network must be an object \u2014 ignored`);return}let E=`${u} network`;uu(C,E,["block","network_profile","allow_domain","open_port","listen_port"],F);let B=b2(C,"block",E,F),z=IF(C,"network_profile",E,F),X=A1(C,"allow_domain",E,F),J=S2(C,"open_port",E,F),f=S2(C,"listen_port",E,F),W={...B!==void 0?{block:B}:{},...z!==void 0?{networkProfile:z}:{},...X.length>0?{allowDomain:X}:{},...J.length>0?{openPort:J}:{},...f.length>0?{listenPort:f}:{}};return Object.keys(W).length>0?W:void 0}function A1(D,u,F,C){let E=D[u];if(E===void 0)return[];if(!cD(E))return C.push(`${F}: ${u} must be an array of strings \u2014 ignored`),[];let B=E.map((z)=>z.trim()).filter((z)=>z!=="");if(B.length!==E.length)C.push(`${F}: ${u} entries must be non-empty \u2014 blanks ignored`);return B}function S2(D,u,F,C){let E=D[u];if(E===void 0)return[];if(!Array.isArray(E))return C.push(`${F}: ${u} must be an array of port numbers \u2014 ignored`),[];let B=(X)=>typeof X==="number"&&Number.isInteger(X)&&X>=0&&X<=65535,z=E.filter((X)=>!B(X));if(z.length>0)C.push(`${F}: ${u} entries must be integers 0\u201365535 \u2014 ignored: ${z.join(", ")}`);return E.filter(B)}function S1(D,u,F){if(D===void 0)return[];if(!cD(D))return F.push(`${u}: unsafe_macos_seatbelt_rules must be an array of strings \u2014 ignored`),[];let C=(B)=>{let z=B.trim();return z.startsWith("(")&&z.endsWith(")")},E=D.filter((B)=>!C(B));if(E.length>0)F.push(`${u}: unsafe_macos_seatbelt_rules entries must be parenthesized s-expressions \u2014 ignored: ${E.join(", ")}`);return D.filter(C).map((B)=>B.trim())}function b2(D,u,F,C){let E=D[u];if(E===void 0)return;if(typeof E!=="boolean"){C.push(`${F}: ${u} must be true or false \u2014 ignored`);return}return E}function x1(D,u,F){if(D===void 0)return VF;if(!JD(D))return F.push(`${u}: filesystem must be an object \u2014 ignored`),VF;return uu(D,`${u} filesystem`,["read","write","allow"],F),{read:TF(D,"read",u,F),write:TF(D,"write",u,F),allow:TF(D,"allow",u,F)}}function TF(D,u,F,C){let E=D[u];if(E===void 0)return[];if(!cD(E))return C.push(`${F}: ${u} must be an array of strings \u2014 ignored`),[];let B=E.filter((z)=>!fu(z));if(B.length>0)C.push(`${F}: ${u} entries must be absolute, ~/, or $HOME/ paths \u2014 ignored: ${B.join(", ")}`);return E.filter(fu)}async function _F(D){let u=zu(await P1(D),D);if(!JD(u))throw Error(`${D} must be a JSON object`);return u}async function P1(D){let u;try{u=await RD(D)}catch(F){throw Error(`${D} could not be read: ${Du(F)}`,{cause:F})}if(u===void 0)throw Error(`${D} could not be read \u2014 broken symlink?`);return u}function IF(D,u,F,C){let E=D[u];if(E===void 0)return;if(typeof E!=="string"){C.push(`${F}: ${u} must be a string \u2014 ignored`);return}return E}function b1(D,u,F){let C=D.defaultThinkingLevel;if(C===void 0)return;if(typeof C!=="string"||!N2.includes(C)){F.push(`${u}: defaultThinkingLevel must be one of ${N2.join(", ")} \u2014 ignored`);return}return C}import{createHash as h1}from"crypto";import{homedir as w1}from"os";import{basename as m1,join as Uu}from"path";function c1(D){let u=m1(D).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),F=h1("sha256").update(D).digest("hex").slice(0,8);return`${u===""?"agent":u}-${F}`}function h2(D,u=w1(),F=process.env.CRADLE_STATE_DIR){let C=F||Uu(u,".cradle");return Uu(C,"agents",c1(D))}function w2(D){return{extensionsDir:Uu(D,"extensions"),sessionsDir:Uu(D,"sessions"),miseCacheDir:Uu(D,"mise-cache")}}import{readFile as v1}from"fs/promises";import{join as m2,resolve as c2}from"path";var v2="gitdir:";async function p2(D){try{return await v1(D,"utf8")}catch{return}}async function t2(D){let u=await p2(m2(D,".git"));if(u===void 0||!u.startsWith(v2))return;let F=c2(D,u.slice(v2.length).trim()),C=await p2(m2(F,"commondir")),E=C!==void 0?c2(F,C.trim()):F;return mu(D,E)?void 0:E}async function k2(D,u={}){let F=u.home??d1(),C=u.cwd??process.cwd(),{dir:E,warnings:B}=await V2(D.dir,{home:F,cwd:C}),z=await P2(E),X=h2(z.dir,F),{extensionsDir:J,sessionsDir:f,miseCacheDir:W}=w2(X),{sandbox:O,network:Y,warnings:q}=i1(D,z),H=[...B,...q],M=D.dryRun??!1,S=y1({folder:z,flags:D,sandbox:O,dryRun:M,stateDir:X,extensionsDir:J,sessionsDir:f,miseCacheDir:W,...u.which!==void 0?{which:u.which}:{}}),p=C6(z),m=O?await t2(C):void 0,BD=F6(O,z,Y,{home:F,cwd:C,stateDir:X,profilePath:S.profilePath,...m!==void 0?{linkedGitDir:m}:{}}),c=n1(z,X);return{files:p,extensionsDir:J,sessionsDir:f,warnings:H,profile:BD,packages:c,launch:S,dryRun:M}}function y1(D){let{folder:u,flags:F,sandbox:C,dryRun:E,stateDir:B,extensionsDir:z,sessionsDir:X,miseCacheDir:J,which:f}=D,{nonoBin:W,piBin:O}=u6(C,E,f),Y=qu(B,Q2);return{folder:u,stateDir:B,extensionsDir:z,sessionsDir:X,miseCacheDir:J,sandbox:C,passthrough:F.passthrough??[],nonoBin:W,piBin:O,profilePath:Y,...F.verbose?{verbose:!0}:{}}}function n1(D,u){let F=D.settings.packages;if(F===void 0||F.length===0)return null;return{npmDir:qu(u,"npm"),manifest:K2(F),specs:F,installCommand:[...D.settings.npmCommand??["npm"],"install","--ignore-scripts"]}}function i1(D,u){let{sandbox:F,warnings:C}=a1(D,u),E=[],B=o1(D,u,E);return{sandbox:F,network:B,warnings:s1(F,B,[...C,...E])}}function o1(D,u,F){if(D.offline)return{block:!0};let C=g1(D.allowHost??[],F);if(C.length>0)return{allowDomain:C};return u.sandbox.network}function g1(D,u){let F=D.map((C)=>C.trim()).filter((C)=>C!=="");if(F.length!==D.length)u.push("--allow-host entries must be non-empty \u2014 blanks ignored");return F}function l1(D){return D!==void 0&&(D.block===!0||(D.allowDomain?.length??0)>0)}function s1(D,u,F){if(D||!l1(u))return F;return[...F,"network policy has no effect without the sandbox \u2014 pi runs with no network isolation (--sandbox to enforce it)"]}function r1(D){return D.offline===!0||(D.allowHost?.length??0)>0}function a1(D,u){let F=D.noSandbox===void 0?void 0:!D.noSandbox;if(F!==void 0)return{sandbox:F,warnings:u.warnings};if(u.sandbox.posture==="enabled")return{sandbox:!0,warnings:u.warnings};let C=u.sandbox.posture==="disabled"?"sandbox disabled by sandbox/nono.json":"sandbox/nono.json not found";if(r1(D))return{sandbox:!0,warnings:[...u.warnings,`${C} \u2014 sandbox forced on to enforce the requested network policy (--no-sandbox to override)`]};return{sandbox:!1,warnings:[...u.warnings,`${C} \u2014 agent is running without OS isolation (--sandbox to force enable)`]}}async function y2(D,u={}){let F={dryRun:!1,results:[],failures:[]};if(await f2(F,"extensions",D.extensionsDir,D.files),F.failures.length>0)throw Error(`failed to write agent extensions: ${F.failures.join("; ")}`);if(await KF(D.sessionsDir,{recursive:!0}),D.profile!==null)await KF(k1(D.profile.path),{recursive:!0}),await d2(D.profile.path,D.profile.content,"utf8");let C={...D.launch,extensionsDir:D.extensionsDir,sessionsDir:D.sessionsDir};if(D.packages===null)return{argv:Ou(C),warnings:[]};return D6(D.packages,C,u)}async function e1(D,u){if(await RD(qu(D,"package.json"))!==u)return!1;return p1(qu(D,"node_modules"))}async function D6(D,u,F){if(await KF(D.npmDir,{recursive:!0}),!await e1(D.npmDir,D.manifest)){if(F.install===void 0)throw Error("packages declared but no installer provided");let B=qu(D.npmDir,"package.json");await d2(B,D.manifest,"utf8");try{await F.install(D.installCommand,D.npmDir)}catch(z){throw await t1(B,{force:!0}),z}}let{entries:C,warnings:E}=await j2(D.npmDir,D.specs);return{argv:Ou({...u,packageEntries:C}),warnings:E}}function u6(D,u,F){if(u)return{nonoBin:"nono",piBin:"pi"};let C=D?fF("nono",F):"nono",E=fF("pi",F);return{nonoBin:C,piBin:E}}function F6(D,u,F,C){if(!D)return null;let E=J2(C.cwd,C.home);if(E!==void 0)throw Error(`cannot sandbox from ${E} \u2014 this directory is (or contains) nono's protected state root `+"(~/.local/state/nono) and nono refuses to start with an overlapping grant; run `cradle start` from a project directory instead");let B=M2({home:C.home,cwd:C.cwd,agentDir:u.dir,stateDir:C.stateDir,grants:u.sandbox.filesystem,rules:u.sandbox.unsafeMacosSeatbeltRules,...F!==void 0?{network:F}:{},...C.linkedGitDir!==void 0?{linkedGitDir:C.linkedGitDir}:{}});return{path:C.profilePath,content:B}}function C6(D){if(D.providersJson===null)return[];return[{rel:"providers.ts",content:I2(D.providersJson)}]}function n2(D,u){return u?`\x1B[33m${D}\x1B[0m`:D}function i2(D,u){return()=>D.kill(u)}async function o2(D,u={}){let[F,...C]=D;if(!F)throw Error("runForeground requires at least one argument");let E=Bun.spawn([F,...C],{stdin:"inherit",stdout:"inherit",stderr:"inherit",env:{...process.env,...u}}),B=i2(E,"SIGINT"),z=i2(E,"SIGTERM");process.on("SIGINT",B),process.on("SIGTERM",z);try{return await E.exited}finally{process.off("SIGINT",B),process.off("SIGTERM",z)}}async function g2(D,u){let[F,...C]=D;if(!F)throw Error("runInstall requires at least one argument");let B=await Bun.spawn([F,...C],{cwd:u,stdin:"ignore",stdout:"inherit",stderr:"inherit",env:process.env}).exited;if(B!==0)throw Error(`package install failed (${D.join(" ")} exited ${B})`)}var Hu=B2(process.argv.slice(2)).scriptName("cradle").version($2.version).usage("$0 <cmd> [args]").parserConfiguration({"populate--":!0,"parse-numbers":!1,"parse-positional-numbers":!1}).strict();Hu.command("$0","show help",()=>{},async()=>{console.log(await Hu.getHelp())});Hu.command("start [dir]","run an agent folder with pi, sandboxed when sandbox/nono.json is present",(D)=>D.positional("dir",{type:"string",default:".",describe:"agent folder, or a name from ~/.cradle/settings.json (default: .)"}).option("offline",{type:"boolean",description:"block all outbound network (overrides the folder network policy; implies --sandbox)"}).option("allow-host",{type:"array",string:!0,description:"restrict network to these hosts (repeatable; overrides the folder allowlist; implies --sandbox)"}).option("sandbox",{type:"boolean",description:"run inside nono (--sandbox forces it when sandbox/nono.json is absent or opts out; --no-sandbox disables)"}).option("verbose",{type:"boolean",default:!1,description:"show nono's full sandbox capabilities banner instead of the one-line status"}).option("dry-run",{type:"boolean",default:!1,description:"print the write plan + command, do not spawn"}).epilogue("Everything after `--` is forwarded to pi."),async(D)=>{let u=(D["--"]??[]).map(String),F=(D.allowHost??[]).map(String),C={dir:D.dir,dryRun:D.dryRun,...D.sandbox!==void 0?{noSandbox:!D.sandbox}:{},...D.offline?{offline:!0}:{},...F.length?{allowHost:F}:{},...D.verbose?{verbose:!0}:{},...u.length?{passthrough:u}:{}};await B6(C)});Hu.command("doctor","check pi / nono / mise on PATH",()=>{},async()=>{let D=await Z2({readVersion:Z6});console.log(X2(D)),process.exitCode=G2(D)});async function B6(D){try{let u=await k2(D);if(l2(u.warnings),u.dryRun){$6(u);return}let F=await y2(u,{install:g2});if(l2(F.warnings),u.profile!==null&&!D.verbose)console.log("\uD83D\uDD12 Sandbox Active");process.exit(await o2(F.argv,OF(u.launch)))}catch(u){X6(u)}}function $6(D){for(let F of D.files)console.log(`write: ${s2(D.extensionsDir,F.rel)}`);if(D.profile!==null)console.log(`write: ${D.profile.path}`);if(D.packages!==null)z6(D.packages);let u=Object.entries(OF(D.launch)).map(([F,C])=>`${F}=${qF(C)}`);console.log([...u,...Ou(D.launch).map(qF)].join(" "))}function z6(D){console.log(`write: ${s2(D.npmDir,"package.json")}`);let u=D.specs.map((F)=>`${F.name}@${F.version}`).join(", ");console.log(`install: ${D.installCommand.join(" ")} (${D.npmDir}): ${u}`)}function l2(D){let u=process.stderr.isTTY===!0;for(let F of D)console.error(n2(`warning: ${F}`,u))}async function Z6(D){try{let u=Bun.spawn([D,"--version"],{stdout:"pipe",stderr:"ignore"}),[F,C]=await Promise.all([new Response(u.stdout).text(),u.exited]);if(C!==0)return null;let E=F.split(`
|
|
95
|
+
`)[0]?.trim();if(!E)return null;let B=`${E6(D)} `;return E.startsWith(B)?E.slice(B.length):E}catch{return null}}function X6(D){console.error(D instanceof Error?D.message:String(D)),process.exitCode=1}Hu.parse();
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A linked git worktree or a submodule checkout stores `.git` as a pointer
|
|
3
|
+
* FILE (`gitdir: /abs/path/to/main/.git/worktrees/<name>`) rather than a
|
|
4
|
+
* directory — the real git dir lives outside `cwd`. A sandboxed run only
|
|
5
|
+
* grants `cwd`, so without this resolved dir every git command inside the
|
|
6
|
+
* sandbox (including project hooks that shell out to `git rev-parse`) fails
|
|
7
|
+
* with `fatal: not a git repository`. Returns `undefined` for a regular
|
|
8
|
+
* repo (`.git` is a directory already covered by the cwd grant), a missing
|
|
9
|
+
* repo, a malformed pointer, or a pointer that already resolves inside `cwd`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveLinkedGitDir(cwd: string): Promise<string | undefined>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { AgentNetwork, AgentSandboxGrants } from '../agent/folder.js';
|
|
2
|
+
/** Filename of the generated per-agent nono profile, written into the agent's state dir. */
|
|
3
|
+
export declare const AGENT_PROFILE_FILE = "nono-profile.json";
|
|
4
|
+
/** True when `target` is `ancestor` itself, or nested under it. */
|
|
5
|
+
export declare function isAncestorOrSelf(ancestor: string, target: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* A sandboxed run's cwd becomes an `allow` grant in the generated profile (see
|
|
8
|
+
* `buildProfileJson`). nono refuses to start if any grant overlaps its own
|
|
9
|
+
* protected state root, `~/.local/state/nono` (see ARCHITECTURE.md: "never
|
|
10
|
+
* grant `/Users` or `~/`") — so a cwd of the user's home dir, an ancestor of
|
|
11
|
+
* it (`/Users`, `/`), or a directory that itself contains the protected root
|
|
12
|
+
* (`~/.local`, `~/.local/state`) would make nono reject the profile with an
|
|
13
|
+
* opaque error. Returns the offending `cwd` so the caller can fail fast with
|
|
14
|
+
* a friendly one instead; `undefined` when `cwd` is safe to grant.
|
|
15
|
+
*/
|
|
16
|
+
export declare function findDegenerateSandboxCwd(cwd: string, home: string): string | undefined;
|
|
17
|
+
/** Expand a leading `~` or `$HOME` against `home`; other paths pass through unchanged. */
|
|
18
|
+
export declare function expandHome(path: string, home: string): string;
|
|
19
|
+
export interface ProfileSpec {
|
|
20
|
+
readonly home: string;
|
|
21
|
+
/** pi's working dir (the target project) — granted read+write. */
|
|
22
|
+
readonly cwd: string;
|
|
23
|
+
/** The portable agent folder — granted read. */
|
|
24
|
+
readonly agentDir: string;
|
|
25
|
+
/** The agent's per-agent state dir — granted read+write, and where this profile is written. */
|
|
26
|
+
readonly stateDir: string;
|
|
27
|
+
/**
|
|
28
|
+
* The real git dir when `cwd` is a linked worktree or submodule checkout,
|
|
29
|
+
* resolved from the `.git` pointer file (see `./linked-git-dir.js`).
|
|
30
|
+
* Granted `allow`: git writes the index, locks, objects, and refs there, and
|
|
31
|
+
* without it every git command inside the sandbox fails with
|
|
32
|
+
* `fatal: not a git repository`. Absent for regular repos — a `.git`
|
|
33
|
+
* directory already sits inside the cwd grant.
|
|
34
|
+
*/
|
|
35
|
+
readonly linkedGitDir?: string;
|
|
36
|
+
/** Extra grants from the agent folder's `sandbox/nono.json`. */
|
|
37
|
+
readonly grants: AgentSandboxGrants;
|
|
38
|
+
/** Raw Seatbelt s-expr rules from the agent's `sandbox/nono.json`, merged after the base's. */
|
|
39
|
+
readonly rules: readonly string[];
|
|
40
|
+
/** Precedence-resolved network posture, emitted as the profile's `network` block. Absent ⇒ nono default (open). */
|
|
41
|
+
readonly network?: AgentNetwork;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build the per-agent nono profile: the embedded `cradle-pi` base (which
|
|
45
|
+
* `extends default`, pulls the `node_runtime` group, and grants mise/pi/say
|
|
46
|
+
* paths) merged with this run's grants — the target cwd, the agent folder, the
|
|
47
|
+
* state dir, the linked git dir when cwd is a worktree/submodule checkout, and
|
|
48
|
+
* the agent's own `sandbox/nono.json` entries. Regenerated every run into the
|
|
49
|
+
* state dir, so there is no shared global profile: each agent's permissions
|
|
50
|
+
* are fully described by its own directory.
|
|
51
|
+
*
|
|
52
|
+
* `meta.name` is derived from the state-dir basename so every agent gets a
|
|
53
|
+
* distinct profile identity (no cross-agent collisions in nono's state).
|
|
54
|
+
* `~`/`$HOME` in the agent's grants are expanded here; base entries keep their
|
|
55
|
+
* `$HOME` form (nono expands those). Net posture stays a `nono run` flag.
|
|
56
|
+
*
|
|
57
|
+
* The agent's `unsafe_macos_seatbelt_rules` are appended AFTER the base's rules:
|
|
58
|
+
* Seatbelt is last-match-wins, so a later agent rule can widen (or override) a
|
|
59
|
+
* base allow, never the reverse.
|
|
60
|
+
*
|
|
61
|
+
* The resolved `network` posture is emitted as the profile's `network` block
|
|
62
|
+
* (nono's canonical key names). Absent ⇒ no `network` block ⇒ nono default
|
|
63
|
+
* (open). nono enforces it — including failing closed on a bad key or an
|
|
64
|
+
* unenforceable platform — so there is no cradle-side fallback here.
|
|
65
|
+
*/
|
|
66
|
+
export declare function buildProfileJson(spec: ProfileSpec): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type SetupStatus = 'changed' | 'failed' | 'unchanged';
|
|
2
|
+
interface SetupResult {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly detail: string;
|
|
5
|
+
readonly status: SetupStatus;
|
|
6
|
+
}
|
|
7
|
+
export interface InstallContext {
|
|
8
|
+
readonly dryRun: boolean;
|
|
9
|
+
readonly results: SetupResult[];
|
|
10
|
+
readonly failures: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface TreeFile {
|
|
13
|
+
readonly rel: string;
|
|
14
|
+
readonly content: string;
|
|
15
|
+
readonly mode?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function addResult(ctx: InstallContext, name: string, detail: string, status: SetupStatus): void;
|
|
18
|
+
export declare function fail(ctx: InstallContext, name: string, detail: string): void;
|
|
19
|
+
/** Replace the `dest` directory tree with the bundled `files`, cleaning extras. */
|
|
20
|
+
export declare function installTree(ctx: InstallContext, name: string, dest: string, files: readonly TreeFile[]): Promise<void>;
|
|
21
|
+
export declare function readTextIfExists(path: string): Promise<string | undefined>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
2
|
+
[key: string]: JsonValue;
|
|
3
|
+
};
|
|
4
|
+
export declare function isRecord(value: JsonValue): value is {
|
|
5
|
+
[key: string]: JsonValue;
|
|
6
|
+
};
|
|
7
|
+
export declare function parseJson(text: string, path: string): JsonValue;
|
|
8
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
9
|
+
export declare function hasErrorCode(error: unknown, code: string): boolean;
|
|
10
|
+
export declare function quoteCommandPart(part: string): string;
|
|
11
|
+
/** Shared JSON string-array shape guard for folder/settings list readers. */
|
|
12
|
+
export declare function isStringArray(value: JsonValue): value is string[];
|
|
13
|
+
/**
|
|
14
|
+
* Only absolute (POSIX, Windows drive-letter, or UNC), `~/`, or `$HOME/`
|
|
15
|
+
* prefixed entries are trusted where a string becomes a nono grant/argv
|
|
16
|
+
* value — the shared flag-smuggling shape guard. The Windows shapes matter
|
|
17
|
+
* because `cradle-windows-x64.exe` is a shipped target: without them every
|
|
18
|
+
* drive-letter alias or grant is warned and dropped.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isPathShaped(value: string): boolean;
|
|
21
|
+
/** Warn once, naming every key in `record` not present in `supported`. */
|
|
22
|
+
export declare function warnUnsupportedKeys(record: {
|
|
23
|
+
readonly [key: string]: JsonValue;
|
|
24
|
+
}, path: string, supported: readonly string[], warnings: string[]): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type ForwardableSignal = 'SIGINT' | 'SIGTERM';
|
|
2
|
+
interface Killable {
|
|
3
|
+
kill(signal: ForwardableSignal): void;
|
|
4
|
+
}
|
|
5
|
+
/** A signal handler that forwards `signal` to `proc`. */
|
|
6
|
+
export declare function killOn(proc: Killable, signal: ForwardableSignal): () => void;
|
|
7
|
+
/**
|
|
8
|
+
* Spawn an interactive child process, inheriting the raw tty so a full-screen
|
|
9
|
+
* agent TUI works, and forwarding interrupt/terminate signals. Resolves with the
|
|
10
|
+
* child's exit code so the caller can propagate it.
|
|
11
|
+
*
|
|
12
|
+
* This is the only module that performs a real spawn; everything upstream
|
|
13
|
+
* (argv composition, bin resolution) is utils and unit-tested.
|
|
14
|
+
*
|
|
15
|
+
* `env` entries override the inherited `process.env` (used for the
|
|
16
|
+
* sandboxed-run `MISE_CACHE_DIR`, see `agent/launch.ts`'s `composeEnv`).
|
|
17
|
+
*/
|
|
18
|
+
export declare function runForeground(argv: readonly string[], env?: Record<string, string>): Promise<number>;
|
|
19
|
+
/** Run a package install (e.g. `npm install`) in `cwd`, inheriting output; throws on non-zero exit. */
|
|
20
|
+
export declare function runInstall(command: readonly string[], cwd: string): Promise<void>;
|
|
21
|
+
export {};
|