im-pickle-rick 0.1.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/README.md +242 -0
- package/bin.js +3 -0
- package/dist/pickle +0 -0
- package/dist/worker-executor.js +207 -0
- package/package.json +53 -0
- package/src/games/GameSidebarManager.test.ts +64 -0
- package/src/games/GameSidebarManager.ts +78 -0
- package/src/games/gameboy/GameboyView.test.ts +25 -0
- package/src/games/gameboy/GameboyView.ts +100 -0
- package/src/games/gameboy/gameboy-polyfills.ts +313 -0
- package/src/games/index.test.ts +9 -0
- package/src/games/index.ts +4 -0
- package/src/games/snake/SnakeGame.test.ts +35 -0
- package/src/games/snake/SnakeGame.ts +145 -0
- package/src/games/snake/SnakeView.test.ts +25 -0
- package/src/games/snake/SnakeView.ts +290 -0
- package/src/index.test.ts +24 -0
- package/src/index.ts +141 -0
- package/src/services/commands/worker.test.ts +14 -0
- package/src/services/commands/worker.ts +262 -0
- package/src/services/config/index.ts +2 -0
- package/src/services/config/settings.test.ts +42 -0
- package/src/services/config/settings.ts +220 -0
- package/src/services/config/state.test.ts +88 -0
- package/src/services/config/state.ts +130 -0
- package/src/services/config/types.ts +39 -0
- package/src/services/execution/index.ts +1 -0
- package/src/services/execution/pickle-source.test.ts +88 -0
- package/src/services/execution/pickle-source.ts +264 -0
- package/src/services/execution/prompt.test.ts +93 -0
- package/src/services/execution/prompt.ts +322 -0
- package/src/services/execution/sequential.test.ts +91 -0
- package/src/services/execution/sequential.ts +422 -0
- package/src/services/execution/worker-client.ts +94 -0
- package/src/services/execution/worker-executor.ts +41 -0
- package/src/services/execution/worker.test.ts +73 -0
- package/src/services/git/branch.test.ts +147 -0
- package/src/services/git/branch.ts +128 -0
- package/src/services/git/diff.test.ts +113 -0
- package/src/services/git/diff.ts +323 -0
- package/src/services/git/index.ts +4 -0
- package/src/services/git/pr.test.ts +104 -0
- package/src/services/git/pr.ts +192 -0
- package/src/services/git/worktree.test.ts +99 -0
- package/src/services/git/worktree.ts +141 -0
- package/src/services/providers/base.test.ts +86 -0
- package/src/services/providers/base.ts +438 -0
- package/src/services/providers/codex.test.ts +39 -0
- package/src/services/providers/codex.ts +208 -0
- package/src/services/providers/gemini.test.ts +40 -0
- package/src/services/providers/gemini.ts +169 -0
- package/src/services/providers/index.test.ts +28 -0
- package/src/services/providers/index.ts +41 -0
- package/src/services/providers/opencode.test.ts +64 -0
- package/src/services/providers/opencode.ts +228 -0
- package/src/services/providers/types.ts +44 -0
- package/src/skills/code-implementer.md +105 -0
- package/src/skills/code-researcher.md +78 -0
- package/src/skills/implementation-planner.md +105 -0
- package/src/skills/plan-reviewer.md +100 -0
- package/src/skills/prd-drafter.md +123 -0
- package/src/skills/research-reviewer.md +79 -0
- package/src/skills/ruthless-refactorer.md +52 -0
- package/src/skills/ticket-manager.md +135 -0
- package/src/types/index.ts +2 -0
- package/src/types/rpc.ts +14 -0
- package/src/types/tasks.ts +50 -0
- package/src/types.d.ts +9 -0
- package/src/ui/common.ts +28 -0
- package/src/ui/components/FilePickerView.test.ts +79 -0
- package/src/ui/components/FilePickerView.ts +161 -0
- package/src/ui/components/MultiLineInput.test.ts +27 -0
- package/src/ui/components/MultiLineInput.ts +233 -0
- package/src/ui/components/SessionChip.test.ts +69 -0
- package/src/ui/components/SessionChip.ts +481 -0
- package/src/ui/components/ToyboxSidebar.test.ts +36 -0
- package/src/ui/components/ToyboxSidebar.ts +329 -0
- package/src/ui/components/refactor_plan.md +35 -0
- package/src/ui/controllers/DashboardController.integration.test.ts +43 -0
- package/src/ui/controllers/DashboardController.ts +650 -0
- package/src/ui/dashboard.test.ts +43 -0
- package/src/ui/dashboard.ts +309 -0
- package/src/ui/dialogs/DashboardDialog.test.ts +146 -0
- package/src/ui/dialogs/DashboardDialog.ts +399 -0
- package/src/ui/dialogs/Dialog.test.ts +50 -0
- package/src/ui/dialogs/Dialog.ts +241 -0
- package/src/ui/dialogs/DialogSidebar.test.ts +60 -0
- package/src/ui/dialogs/DialogSidebar.ts +71 -0
- package/src/ui/dialogs/DiffViewDialog.test.ts +57 -0
- package/src/ui/dialogs/DiffViewDialog.ts +510 -0
- package/src/ui/dialogs/PRPreviewDialog.test.ts +50 -0
- package/src/ui/dialogs/PRPreviewDialog.ts +346 -0
- package/src/ui/dialogs/test-utils.ts +232 -0
- package/src/ui/file-picker-utils.test.ts +71 -0
- package/src/ui/file-picker-utils.ts +200 -0
- package/src/ui/input-chrome.test.ts +62 -0
- package/src/ui/input-chrome.ts +172 -0
- package/src/ui/logger.test.ts +68 -0
- package/src/ui/logger.ts +45 -0
- package/src/ui/mock-factory.ts +6 -0
- package/src/ui/spinner.test.ts +65 -0
- package/src/ui/spinner.ts +41 -0
- package/src/ui/test-setup.ts +300 -0
- package/src/ui/theme.test.ts +23 -0
- package/src/ui/theme.ts +16 -0
- package/src/ui/views/LandingView.integration.test.ts +21 -0
- package/src/ui/views/LandingView.test.ts +24 -0
- package/src/ui/views/LandingView.ts +221 -0
- package/src/ui/views/LogView.test.ts +24 -0
- package/src/ui/views/LogView.ts +277 -0
- package/src/ui/views/ToyboxView.test.ts +46 -0
- package/src/ui/views/ToyboxView.ts +323 -0
- package/src/utils/clipboard.test.ts +86 -0
- package/src/utils/clipboard.ts +100 -0
- package/src/utils/index.test.ts +68 -0
- package/src/utils/index.ts +95 -0
- package/src/utils/persona.test.ts +12 -0
- package/src/utils/persona.ts +8 -0
- package/src/utils/project-root.test.ts +38 -0
- package/src/utils/project-root.ts +22 -0
- package/src/utils/resources.test.ts +64 -0
- package/src/utils/resources.ts +92 -0
- package/src/utils/search.test.ts +48 -0
- package/src/utils/search.ts +103 -0
- package/src/utils/session-tracker.test.ts +46 -0
- package/src/utils/session-tracker.ts +67 -0
- package/src/utils/spinner.test.ts +54 -0
- package/src/utils/spinner.ts +87 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var d8=Object.create;var{getPrototypeOf:n8,defineProperty:l$,getOwnPropertyNames:o8}=Object;var i8=Object.prototype.hasOwnProperty;var y9=($,q,Y)=>{Y=$!=null?d8(n8($)):{};let Q=q||!$||!$.__esModule?l$(Y,"default",{value:$,enumerable:!0}):Y;for(let X of o8($))if(!i8.call(Q,X))l$(Q,X,{get:()=>$[X],enumerable:!0});return Q};var v1=($,q)=>()=>(q||$((q={exports:{}}).exports,q),q.exports);var a8=($,q)=>{for(var Y in q)l$($,Y,{get:q[Y],enumerable:!0,configurable:!0,set:(Q)=>q[Y]=()=>Q})};var X$=import.meta.require;var C4=v1((sH,a$)=>{var K$=process||{},D4=K$.argv||[],U$=K$.env||{},Lq=!(!!U$.NO_COLOR||D4.includes("--no-color"))&&(!!U$.FORCE_COLOR||D4.includes("--color")||K$.platform==="win32"||(K$.stdout||{}).isTTY&&U$.TERM!=="dumb"||!!U$.CI),Fq=($,q,Y=$)=>(Q)=>{let X=""+Q,H=X.indexOf(q,$.length);return~H?$+Nq(X,q,Y,H)+q:$+X+q},Nq=($,q,Y,Q)=>{let X="",H=0;do X+=$.substring(H,Q)+Y,H=Q+q.length,Q=$.indexOf(q,H);while(~Q);return X+$.substring(H)},S4=($=Lq)=>{let q=$?Fq:()=>String;return{isColorSupported:$,reset:q("\x1B[0m","\x1B[0m"),bold:q("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:q("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:q("\x1B[3m","\x1B[23m"),underline:q("\x1B[4m","\x1B[24m"),inverse:q("\x1B[7m","\x1B[27m"),hidden:q("\x1B[8m","\x1B[28m"),strikethrough:q("\x1B[9m","\x1B[29m"),black:q("\x1B[30m","\x1B[39m"),red:q("\x1B[31m","\x1B[39m"),green:q("\x1B[32m","\x1B[39m"),yellow:q("\x1B[33m","\x1B[39m"),blue:q("\x1B[34m","\x1B[39m"),magenta:q("\x1B[35m","\x1B[39m"),cyan:q("\x1B[36m","\x1B[39m"),white:q("\x1B[37m","\x1B[39m"),gray:q("\x1B[90m","\x1B[39m"),bgBlack:q("\x1B[40m","\x1B[49m"),bgRed:q("\x1B[41m","\x1B[49m"),bgGreen:q("\x1B[42m","\x1B[49m"),bgYellow:q("\x1B[43m","\x1B[49m"),bgBlue:q("\x1B[44m","\x1B[49m"),bgMagenta:q("\x1B[45m","\x1B[49m"),bgCyan:q("\x1B[46m","\x1B[49m"),bgWhite:q("\x1B[47m","\x1B[49m"),blackBright:q("\x1B[90m","\x1B[39m"),redBright:q("\x1B[91m","\x1B[39m"),greenBright:q("\x1B[92m","\x1B[39m"),yellowBright:q("\x1B[93m","\x1B[39m"),blueBright:q("\x1B[94m","\x1B[39m"),magentaBright:q("\x1B[95m","\x1B[39m"),cyanBright:q("\x1B[96m","\x1B[39m"),whiteBright:q("\x1B[97m","\x1B[39m"),bgBlackBright:q("\x1B[100m","\x1B[49m"),bgRedBright:q("\x1B[101m","\x1B[49m"),bgGreenBright:q("\x1B[102m","\x1B[49m"),bgYellowBright:q("\x1B[103m","\x1B[49m"),bgBlueBright:q("\x1B[104m","\x1B[49m"),bgMagentaBright:q("\x1B[105m","\x1B[49m"),bgCyanBright:q("\x1B[106m","\x1B[49m"),bgWhiteBright:q("\x1B[107m","\x1B[49m")}};a$.exports=S4();a$.exports.createColors=S4});var m4=v1((PJ,g4)=>{var v9=1000,I9=v9*60,D9=I9*60,e1=D9*24,Tq=e1*7,yq=e1*365.25;g4.exports=function($,q){q=q||{};var Y=typeof $;if(Y==="string"&&$.length>0)return kq($);else if(Y==="number"&&isFinite($))return q.long?fq($):xq($);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify($))};function kq($){if($=String($),$.length>100)return;var q=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec($);if(!q)return;var Y=parseFloat(q[1]),Q=(q[2]||"ms").toLowerCase();switch(Q){case"years":case"year":case"yrs":case"yr":case"y":return Y*yq;case"weeks":case"week":case"w":return Y*Tq;case"days":case"day":case"d":return Y*e1;case"hours":case"hour":case"hrs":case"hr":case"h":return Y*D9;case"minutes":case"minute":case"mins":case"min":case"m":return Y*I9;case"seconds":case"second":case"secs":case"sec":case"s":return Y*v9;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Y;default:return}}function xq($){var q=Math.abs($);if(q>=e1)return Math.round($/e1)+"d";if(q>=D9)return Math.round($/D9)+"h";if(q>=I9)return Math.round($/I9)+"m";if(q>=v9)return Math.round($/v9)+"s";return $+"ms"}function fq($){var q=Math.abs($);if(q>=e1)return M$($,q,e1,"day");if(q>=D9)return M$($,q,D9,"hour");if(q>=I9)return M$($,q,I9,"minute");if(q>=v9)return M$($,q,v9,"second");return $+" ms"}function M$($,q,Y,Q){var X=q>=Y*1.5;return Math.round($/Y)+" "+Q+(X?"s":"")}});var X0=v1((ZJ,l4)=>{function hq($){Y.debug=Y,Y.default=Y,Y.coerce=z,Y.disable=J,Y.enable=X,Y.enabled=W,Y.humanize=m4(),Y.destroy=V,Object.keys($).forEach((B)=>{Y[B]=$[B]}),Y.names=[],Y.skips=[],Y.formatters={};function q(B){let U=0;for(let w=0;w<B.length;w++)U=(U<<5)-U+B.charCodeAt(w),U|=0;return Y.colors[Math.abs(U)%Y.colors.length]}Y.selectColor=q;function Y(B){let U,w=null,K,P;function E(..._){if(!E.enabled)return;let y=E,b=Number(new Date),o=b-(U||b);if(y.diff=o,y.prev=U,y.curr=b,U=b,_[0]=Y.coerce(_[0]),typeof _[0]!=="string")_.unshift("%O");let l=0;_[0]=_[0].replace(/%([a-zA-Z%])/g,(V1,k1)=>{if(V1==="%%")return"%";l++;let b1=Y.formatters[k1];if(typeof b1==="function"){let h=_[l];V1=b1.call(y,h),_.splice(l,1),l--}return V1}),Y.formatArgs.call(y,_),(y.log||Y.log).apply(y,_)}if(E.namespace=B,E.useColors=Y.useColors(),E.color=Y.selectColor(B),E.extend=Q,E.destroy=Y.destroy,Object.defineProperty(E,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(w!==null)return w;if(K!==Y.namespaces)K=Y.namespaces,P=Y.enabled(B);return P},set:(_)=>{w=_}}),typeof Y.init==="function")Y.init(E);return E}function Q(B,U){let w=Y(this.namespace+(typeof U>"u"?":":U)+B);return w.log=this.log,w}function X(B){Y.save(B),Y.namespaces=B,Y.names=[],Y.skips=[];let U=(typeof B==="string"?B:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let w of U)if(w[0]==="-")Y.skips.push(w.slice(1));else Y.names.push(w)}function H(B,U){let w=0,K=0,P=-1,E=0;while(w<B.length)if(K<U.length&&(U[K]===B[w]||U[K]==="*"))if(U[K]==="*")P=K,E=w,K++;else w++,K++;else if(P!==-1)K=P+1,E++,w=E;else return!1;while(K<U.length&&U[K]==="*")K++;return K===U.length}function J(){let B=[...Y.names,...Y.skips.map((U)=>"-"+U)].join(",");return Y.enable(""),B}function W(B){for(let U of Y.skips)if(H(B,U))return!1;for(let U of Y.names)if(H(B,U))return!0;return!1}function z(B){if(B instanceof Error)return B.stack||B.message;return B}function V(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return Y.enable(Y.load()),Y}l4.exports=hq});var c4=v1((u4,j$)=>{u4.formatArgs=mq;u4.save=lq;u4.load=uq;u4.useColors=gq;u4.storage=cq();u4.destroy=(()=>{let $=!1;return()=>{if(!$)$=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();u4.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function gq(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let $;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&($=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt($[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function mq($){if($[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+$[0]+(this.useColors?"%c ":" ")+"+"+j$.exports.humanize(this.diff),!this.useColors)return;let q="color: "+this.color;$.splice(1,0,q,"color: inherit");let Y=0,Q=0;$[0].replace(/%[a-zA-Z%]/g,(X)=>{if(X==="%%")return;if(Y++,X==="%c")Q=Y}),$.splice(Q,0,q)}u4.log=console.debug||console.log||(()=>{});function lq($){try{if($)u4.storage.setItem("debug",$);else u4.storage.removeItem("debug")}catch(q){}}function uq(){let $;try{$=u4.storage.getItem("debug")||u4.storage.getItem("DEBUG")}catch(q){}if(!$&&typeof process<"u"&&"env"in process)$=process.env.DEBUG;return $}function cq(){try{return localStorage}catch($){}}j$.exports=X0()(u4);var{formatters:pq}=j$.exports;pq.j=function($){try{return JSON.stringify($)}catch(q){return"[UnexpectedJSONParseError]: "+q.message}}});var o4=v1((d4,L$)=>{var tq=X$("tty"),w$=X$("util");d4.init=H5;d4.log=Y5;d4.formatArgs=$5;d4.save=Q5;d4.load=X5;d4.useColors=eq;d4.destroy=w$.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");d4.colors=[6,2,3,4,5,1];try{let $=(()=>{throw new Error("Cannot require module "+"supports-color");})();if($&&($.stderr||$).level>=2)d4.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch($){}d4.inspectOpts=Object.keys(process.env).filter(($)=>{return/^debug_/i.test($)}).reduce(($,q)=>{let Y=q.substring(6).toLowerCase().replace(/_([a-z])/g,(X,H)=>{return H.toUpperCase()}),Q=process.env[q];if(/^(yes|on|true|enabled)$/i.test(Q))Q=!0;else if(/^(no|off|false|disabled)$/i.test(Q))Q=!1;else if(Q==="null")Q=null;else Q=Number(Q);return $[Y]=Q,$},{});function eq(){return"colors"in d4.inspectOpts?Boolean(d4.inspectOpts.colors):tq.isatty(process.stderr.fd)}function $5($){let{namespace:q,useColors:Y}=this;if(Y){let Q=this.color,X="\x1B[3"+(Q<8?Q:"8;5;"+Q),H=` ${X};1m${q} \x1B[0m`;$[0]=H+$[0].split(`
|
|
3
|
+
`).join(`
|
|
4
|
+
`+H),$.push(X+"m+"+L$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=q5()+q+" "+$[0]}function q5(){if(d4.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function Y5(...$){return process.stderr.write(w$.formatWithOptions(d4.inspectOpts,...$)+`
|
|
5
|
+
`)}function Q5($){if($)process.env.DEBUG=$;else delete process.env.DEBUG}function X5(){return process.env.DEBUG}function H5($){$.inspectOpts={};let q=Object.keys(d4.inspectOpts);for(let Y=0;Y<q.length;Y++)$.inspectOpts[q[Y]]=d4.inspectOpts[q[Y]]}L$.exports=X0()(d4);var{formatters:p4}=L$.exports;p4.o=function($){return this.inspectOpts.colors=this.useColors,w$.inspect($,this.inspectOpts).split(`
|
|
6
|
+
`).map((q)=>q.trim()).join(" ")};p4.O=function($){return this.inspectOpts.colors=this.useColors,w$.inspect($,this.inspectOpts)}});var J0=v1((yJ,H0)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)H0.exports=c4();else H0.exports=o4()});var i4=v1((J1)=>{var G5=J1&&J1.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(J1,"__esModule",{value:!0});var M5=X$("fs"),j5=G5(J0()),S9=j5.default("@kwsites/file-exists");function w5($,q,Y){S9("checking %s",$);try{let Q=M5.statSync($);if(Q.isFile()&&q)return S9("[OK] path represents a file"),!0;if(Q.isDirectory()&&Y)return S9("[OK] path represents a directory"),!0;return S9("[FAIL] path represents something other than a file or directory"),!1}catch(Q){if(Q.code==="ENOENT")return S9("[FAIL] path is not accessible: %o",Q),!1;throw S9("[FATAL] %o",Q),Q}}function L5($,q=J1.READABLE){return w5($,(q&J1.FILE)>0,(q&J1.FOLDER)>0)}J1.exists=L5;J1.FILE=1;J1.FOLDER=2;J1.READABLE=J1.FILE+J1.FOLDER});var a4=v1((W0)=>{function F5($){for(var q in $)if(!W0.hasOwnProperty(q))W0[q]=$[q]}Object.defineProperty(W0,"__esModule",{value:!0});F5(i4())});var V0=v1((r4)=>{Object.defineProperty(r4,"__esModule",{value:!0});r4.createDeferred=r4.deferred=void 0;function z0(){let $,q,Y="pending";return{promise:new Promise((X,H)=>{$=X,q=H}),done(X){if(Y==="pending")Y="resolved",$(X)},fail(X){if(Y==="pending")Y="rejected",q(X)},get fulfilled(){return Y!=="pending"},get status(){return Y}}}r4.deferred=z0;r4.createDeferred=z0;r4.default=z0});import{homedir as Bq}from"os";import{join as d$}from"path";import{existsSync as Uq}from"fs";import{mkdir as ZH,readFile as Kq,readdir as _H,writeFile as Gq}from"fs/promises";var k={};a8(k,{void:()=>T7,util:()=>T,unknown:()=>Z7,union:()=>f7,undefined:()=>S7,tuple:()=>m7,transformer:()=>r7,symbol:()=>D7,string:()=>M4,strictObject:()=>x7,setErrorMap:()=>t8,set:()=>c7,record:()=>l7,quotelessJson:()=>r8,promise:()=>a7,preprocess:()=>e7,pipeline:()=>$q,ostring:()=>qq,optional:()=>s7,onumber:()=>Yq,oboolean:()=>Qq,objectUtil:()=>u$,object:()=>k7,number:()=>j4,nullable:()=>t7,null:()=>C7,never:()=>_7,nativeEnum:()=>i7,nan:()=>b7,map:()=>u7,makeIssue:()=>k9,literal:()=>n7,lazy:()=>d7,late:()=>A7,isValid:()=>x1,isDirty:()=>J$,isAsync:()=>J9,isAborted:()=>H$,intersection:()=>g7,instanceof:()=>O7,getParsedType:()=>N1,getErrorMap:()=>H9,function:()=>p7,enum:()=>o7,effect:()=>r7,discriminatedUnion:()=>h7,defaultErrorMap:()=>I1,datetimeRegex:()=>U4,date:()=>I7,custom:()=>G4,coerce:()=>Xq,boolean:()=>w4,bigint:()=>v7,array:()=>y7,any:()=>P7,addIssueToContext:()=>F,ZodVoid:()=>f9,ZodUnknown:()=>f1,ZodUnion:()=>K9,ZodUndefined:()=>B9,ZodType:()=>Z,ZodTuple:()=>R1,ZodTransformer:()=>L1,ZodSymbol:()=>x9,ZodString:()=>G1,ZodSet:()=>a1,ZodSchema:()=>Z,ZodRecord:()=>h9,ZodReadonly:()=>N9,ZodPromise:()=>r1,ZodPipeline:()=>l9,ZodParsedType:()=>j,ZodOptional:()=>j1,ZodObject:()=>m,ZodNumber:()=>h1,ZodNullable:()=>S1,ZodNull:()=>U9,ZodNever:()=>E1,ZodNativeEnum:()=>w9,ZodNaN:()=>m9,ZodMap:()=>g9,ZodLiteral:()=>j9,ZodLazy:()=>M9,ZodIssueCode:()=>G,ZodIntersection:()=>G9,ZodFunction:()=>z9,ZodFirstPartyTypeKind:()=>I,ZodError:()=>Y1,ZodEnum:()=>m1,ZodEffects:()=>L1,ZodDiscriminatedUnion:()=>W$,ZodDefault:()=>L9,ZodDate:()=>o1,ZodCatch:()=>F9,ZodBranded:()=>z$,ZodBoolean:()=>V9,ZodBigInt:()=>g1,ZodArray:()=>M1,ZodAny:()=>i1,Schema:()=>Z,ParseStatus:()=>s,OK:()=>t,NEVER:()=>Hq,INVALID:()=>O,EMPTY_PATH:()=>e8,DIRTY:()=>n1,BRAND:()=>R7});var T;(function($){$.assertEqual=(X)=>{};function q(X){}$.assertIs=q;function Y(X){throw Error()}$.assertNever=Y,$.arrayToEnum=(X)=>{let H={};for(let J of X)H[J]=J;return H},$.getValidEnumValues=(X)=>{let H=$.objectKeys(X).filter((W)=>typeof X[X[W]]!=="number"),J={};for(let W of H)J[W]=X[W];return $.objectValues(J)},$.objectValues=(X)=>{return $.objectKeys(X).map(function(H){return X[H]})},$.objectKeys=typeof Object.keys==="function"?(X)=>Object.keys(X):(X)=>{let H=[];for(let J in X)if(Object.prototype.hasOwnProperty.call(X,J))H.push(J);return H},$.find=(X,H)=>{for(let J of X)if(H(J))return J;return},$.isInteger=typeof Number.isInteger==="function"?(X)=>Number.isInteger(X):(X)=>typeof X==="number"&&Number.isFinite(X)&&Math.floor(X)===X;function Q(X,H=" | "){return X.map((J)=>typeof J==="string"?`'${J}'`:J).join(H)}$.joinValues=Q,$.jsonStringifyReplacer=(X,H)=>{if(typeof H==="bigint")return H.toString();return H}})(T||(T={}));var u$;(function($){$.mergeShapes=(q,Y)=>{return{...q,...Y}}})(u$||(u$={}));var j=T.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),N1=($)=>{switch(typeof $){case"undefined":return j.undefined;case"string":return j.string;case"number":return Number.isNaN($)?j.nan:j.number;case"boolean":return j.boolean;case"function":return j.function;case"bigint":return j.bigint;case"symbol":return j.symbol;case"object":if(Array.isArray($))return j.array;if($===null)return j.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return j.promise;if(typeof Map<"u"&&$ instanceof Map)return j.map;if(typeof Set<"u"&&$ instanceof Set)return j.set;if(typeof Date<"u"&&$ instanceof Date)return j.date;return j.object;default:return j.unknown}};var G=T.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),r8=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class Y1 extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(Y)=>{this.issues=[...this.issues,Y]},this.addIssues=(Y=[])=>{this.issues=[...this.issues,...Y]};let q=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,q);else this.__proto__=q;this.name="ZodError",this.issues=$}format($){let q=$||function(X){return X.message},Y={_errors:[]},Q=(X)=>{for(let H of X.issues)if(H.code==="invalid_union")H.unionErrors.map(Q);else if(H.code==="invalid_return_type")Q(H.returnTypeError);else if(H.code==="invalid_arguments")Q(H.argumentsError);else if(H.path.length===0)Y._errors.push(q(H));else{let J=Y,W=0;while(W<H.path.length){let z=H.path[W];if(W!==H.path.length-1)J[z]=J[z]||{_errors:[]};else J[z]=J[z]||{_errors:[]},J[z]._errors.push(q(H));J=J[z],W++}}};return Q(this),Y}static assert($){if(!($ instanceof Y1))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,T.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(q)=>q.message){let q={},Y=[];for(let Q of this.issues)if(Q.path.length>0){let X=Q.path[0];q[X]=q[X]||[],q[X].push($(Q))}else Y.push($(Q));return{formErrors:Y,fieldErrors:q}}get formErrors(){return this.flatten()}}Y1.create=($)=>{return new Y1($)};var s8=($,q)=>{let Y;switch($.code){case G.invalid_type:if($.received===j.undefined)Y="Required";else Y=`Expected ${$.expected}, received ${$.received}`;break;case G.invalid_literal:Y=`Invalid literal value, expected ${JSON.stringify($.expected,T.jsonStringifyReplacer)}`;break;case G.unrecognized_keys:Y=`Unrecognized key(s) in object: ${T.joinValues($.keys,", ")}`;break;case G.invalid_union:Y="Invalid input";break;case G.invalid_union_discriminator:Y=`Invalid discriminator value. Expected ${T.joinValues($.options)}`;break;case G.invalid_enum_value:Y=`Invalid enum value. Expected ${T.joinValues($.options)}, received '${$.received}'`;break;case G.invalid_arguments:Y="Invalid function arguments";break;case G.invalid_return_type:Y="Invalid function return type";break;case G.invalid_date:Y="Invalid date";break;case G.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(Y=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")Y=`${Y} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)Y=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)Y=`Invalid input: must end with "${$.validation.endsWith}"`;else T.assertNever($.validation);else if($.validation!=="regex")Y=`Invalid ${$.validation}`;else Y="Invalid";break;case G.too_small:if($.type==="array")Y=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")Y=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")Y=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")Y=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")Y=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else Y="Invalid input";break;case G.too_big:if($.type==="array")Y=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")Y=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")Y=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")Y=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")Y=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else Y="Invalid input";break;case G.custom:Y="Invalid input";break;case G.invalid_intersection_types:Y="Intersection results could not be merged";break;case G.not_multiple_of:Y=`Number must be a multiple of ${$.multipleOf}`;break;case G.not_finite:Y="Number must be finite";break;default:Y=q.defaultError,T.assertNever($)}return{message:Y}},I1=s8;var J4=I1;function t8($){J4=$}function H9(){return J4}var k9=($)=>{let{data:q,path:Y,errorMaps:Q,issueData:X}=$,H=[...Y,...X.path||[]],J={...X,path:H};if(X.message!==void 0)return{...X,path:H,message:X.message};let W="",z=Q.filter((V)=>!!V).slice().reverse();for(let V of z)W=V(J,{data:q,defaultError:W}).message;return{...X,path:H,message:W}},e8=[];function F($,q){let Y=H9(),Q=k9({issueData:q,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Y,Y===I1?void 0:I1].filter((X)=>!!X)});$.common.issues.push(Q)}class s{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,q){let Y=[];for(let Q of q){if(Q.status==="aborted")return O;if(Q.status==="dirty")$.dirty();Y.push(Q.value)}return{status:$.value,value:Y}}static async mergeObjectAsync($,q){let Y=[];for(let Q of q){let X=await Q.key,H=await Q.value;Y.push({key:X,value:H})}return s.mergeObjectSync($,Y)}static mergeObjectSync($,q){let Y={};for(let Q of q){let{key:X,value:H}=Q;if(X.status==="aborted")return O;if(H.status==="aborted")return O;if(X.status==="dirty")$.dirty();if(H.status==="dirty")$.dirty();if(X.value!=="__proto__"&&(typeof H.value<"u"||Q.alwaysSet))Y[X.value]=H.value}return{status:$.value,value:Y}}}var O=Object.freeze({status:"aborted"}),n1=($)=>({status:"dirty",value:$}),t=($)=>({status:"valid",value:$}),H$=($)=>$.status==="aborted",J$=($)=>$.status==="dirty",x1=($)=>$.status==="valid",J9=($)=>typeof Promise<"u"&&$ instanceof Promise;var N;(function($){$.errToObj=(q)=>typeof q==="string"?{message:q}:q||{},$.toString=(q)=>typeof q==="string"?q:q?.message})(N||(N={}));class w1{constructor($,q,Y,Q){this._cachedPath=[],this.parent=$,this.data=q,this._path=Y,this._key=Q}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var W4=($,q)=>{if(x1(q))return{success:!0,data:q.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Y=new Y1($.common.issues);return this._error=Y,this._error}}}};function C($){if(!$)return{};let{errorMap:q,invalid_type_error:Y,required_error:Q,description:X}=$;if(q&&(Y||Q))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(q)return{errorMap:q,description:X};return{errorMap:(J,W)=>{let{message:z}=$;if(J.code==="invalid_enum_value")return{message:z??W.defaultError};if(typeof W.data>"u")return{message:z??Q??W.defaultError};if(J.code!=="invalid_type")return{message:W.defaultError};return{message:z??Y??W.defaultError}},description:X}}class Z{get description(){return this._def.description}_getType($){return N1($.data)}_getOrReturnCtx($,q){return q||{common:$.parent.common,data:$.data,parsedType:N1($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new s,ctx:{common:$.parent.common,data:$.data,parsedType:N1($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let q=this._parse($);if(J9(q))throw Error("Synchronous parse encountered promise.");return q}_parseAsync($){let q=this._parse($);return Promise.resolve(q)}parse($,q){let Y=this.safeParse($,q);if(Y.success)return Y.data;throw Y.error}safeParse($,q){let Y={common:{issues:[],async:q?.async??!1,contextualErrorMap:q?.errorMap},path:q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:N1($)},Q=this._parseSync({data:$,path:Y.path,parent:Y});return W4(Y,Q)}"~validate"($){let q={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:N1($)};if(!this["~standard"].async)try{let Y=this._parseSync({data:$,path:[],parent:q});return x1(Y)?{value:Y.value}:{issues:q.common.issues}}catch(Y){if(Y?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;q.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:q}).then((Y)=>x1(Y)?{value:Y.value}:{issues:q.common.issues})}async parseAsync($,q){let Y=await this.safeParseAsync($,q);if(Y.success)return Y.data;throw Y.error}async safeParseAsync($,q){let Y={common:{issues:[],contextualErrorMap:q?.errorMap,async:!0},path:q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:N1($)},Q=this._parse({data:$,path:Y.path,parent:Y}),X=await(J9(Q)?Q:Promise.resolve(Q));return W4(Y,X)}refine($,q){let Y=(Q)=>{if(typeof q==="string"||typeof q>"u")return{message:q};else if(typeof q==="function")return q(Q);else return q};return this._refinement((Q,X)=>{let H=$(Q),J=()=>X.addIssue({code:G.custom,...Y(Q)});if(typeof Promise<"u"&&H instanceof Promise)return H.then((W)=>{if(!W)return J(),!1;else return!0});if(!H)return J(),!1;else return!0})}refinement($,q){return this._refinement((Y,Q)=>{if(!$(Y))return Q.addIssue(typeof q==="function"?q(Y,Q):q),!1;else return!0})}_refinement($){return new L1({schema:this,typeName:I.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(q)=>this["~validate"](q)}}optional(){return j1.create(this,this._def)}nullable(){return S1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return M1.create(this)}promise(){return r1.create(this,this._def)}or($){return K9.create([this,$],this._def)}and($){return G9.create(this,$,this._def)}transform($){return new L1({...C(this._def),schema:this,typeName:I.ZodEffects,effect:{type:"transform",transform:$}})}default($){let q=typeof $==="function"?$:()=>$;return new L9({...C(this._def),innerType:this,defaultValue:q,typeName:I.ZodDefault})}brand(){return new z$({typeName:I.ZodBranded,type:this,...C(this._def)})}catch($){let q=typeof $==="function"?$:()=>$;return new F9({...C(this._def),innerType:this,catchValue:q,typeName:I.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return l9.create(this,$)}readonly(){return N9.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var $7=/^c[^\s-]{8,}$/i,q7=/^[0-9a-z]+$/,Y7=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Q7=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,X7=/^[a-z0-9_-]{21}$/i,H7=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,J7=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,W7=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,z7="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",c$,V7=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,B7=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,U7=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,K7=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,G7=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,M7=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,V4="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",j7=new RegExp(`^${V4}$`);function B4($){let q="[0-5]\\d";if($.precision)q=`${q}\\.\\d{${$.precision}}`;else if($.precision==null)q=`${q}(\\.\\d+)?`;let Y=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${q})${Y}`}function w7($){return new RegExp(`^${B4($)}$`)}function U4($){let q=`${V4}T${B4($)}`,Y=[];if(Y.push($.local?"Z?":"Z"),$.offset)Y.push("([+-]\\d{2}:?\\d{2})");return q=`${q}(${Y.join("|")})`,new RegExp(`^${q}$`)}function L7($,q){if((q==="v4"||!q)&&V7.test($))return!0;if((q==="v6"||!q)&&U7.test($))return!0;return!1}function F7($,q){if(!H7.test($))return!1;try{let[Y]=$.split(".");if(!Y)return!1;let Q=Y.replace(/-/g,"+").replace(/_/g,"/").padEnd(Y.length+(4-Y.length%4)%4,"="),X=JSON.parse(atob(Q));if(typeof X!=="object"||X===null)return!1;if("typ"in X&&X?.typ!=="JWT")return!1;if(!X.alg)return!1;if(q&&X.alg!==q)return!1;return!0}catch{return!1}}function N7($,q){if((q==="v4"||!q)&&B7.test($))return!0;if((q==="v6"||!q)&&K7.test($))return!0;return!1}class G1 extends Z{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==j.string){let X=this._getOrReturnCtx($);return F(X,{code:G.invalid_type,expected:j.string,received:X.parsedType}),O}let Y=new s,Q=void 0;for(let X of this._def.checks)if(X.kind==="min"){if($.data.length<X.value)Q=this._getOrReturnCtx($,Q),F(Q,{code:G.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),Y.dirty()}else if(X.kind==="max"){if($.data.length>X.value)Q=this._getOrReturnCtx($,Q),F(Q,{code:G.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),Y.dirty()}else if(X.kind==="length"){let H=$.data.length>X.value,J=$.data.length<X.value;if(H||J){if(Q=this._getOrReturnCtx($,Q),H)F(Q,{code:G.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});else if(J)F(Q,{code:G.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});Y.dirty()}}else if(X.kind==="email"){if(!W7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"email",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="emoji"){if(!c$)c$=new RegExp(z7,"u");if(!c$.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"emoji",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="uuid"){if(!Q7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"uuid",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="nanoid"){if(!X7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"nanoid",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="cuid"){if(!$7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"cuid",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="cuid2"){if(!q7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"cuid2",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="ulid"){if(!Y7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"ulid",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="url")try{new URL($.data)}catch{Q=this._getOrReturnCtx($,Q),F(Q,{validation:"url",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="regex"){if(X.regex.lastIndex=0,!X.regex.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"regex",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="trim")$.data=$.data.trim();else if(X.kind==="includes"){if(!$.data.includes(X.value,X.position))Q=this._getOrReturnCtx($,Q),F(Q,{code:G.invalid_string,validation:{includes:X.value,position:X.position},message:X.message}),Y.dirty()}else if(X.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(X.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(X.kind==="startsWith"){if(!$.data.startsWith(X.value))Q=this._getOrReturnCtx($,Q),F(Q,{code:G.invalid_string,validation:{startsWith:X.value},message:X.message}),Y.dirty()}else if(X.kind==="endsWith"){if(!$.data.endsWith(X.value))Q=this._getOrReturnCtx($,Q),F(Q,{code:G.invalid_string,validation:{endsWith:X.value},message:X.message}),Y.dirty()}else if(X.kind==="datetime"){if(!U4(X).test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{code:G.invalid_string,validation:"datetime",message:X.message}),Y.dirty()}else if(X.kind==="date"){if(!j7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{code:G.invalid_string,validation:"date",message:X.message}),Y.dirty()}else if(X.kind==="time"){if(!w7(X).test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{code:G.invalid_string,validation:"time",message:X.message}),Y.dirty()}else if(X.kind==="duration"){if(!J7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"duration",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="ip"){if(!L7($.data,X.version))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"ip",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="jwt"){if(!F7($.data,X.alg))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"jwt",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="cidr"){if(!N7($.data,X.version))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"cidr",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="base64"){if(!G7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"base64",code:G.invalid_string,message:X.message}),Y.dirty()}else if(X.kind==="base64url"){if(!M7.test($.data))Q=this._getOrReturnCtx($,Q),F(Q,{validation:"base64url",code:G.invalid_string,message:X.message}),Y.dirty()}else T.assertNever(X);return{status:Y.value,value:$.data}}_regex($,q,Y){return this.refinement((Q)=>$.test(Q),{validation:q,code:G.invalid_string,...N.errToObj(Y)})}_addCheck($){return new G1({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...N.errToObj($)})}url($){return this._addCheck({kind:"url",...N.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...N.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...N.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...N.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...N.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...N.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...N.errToObj($)})}base64($){return this._addCheck({kind:"base64",...N.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...N.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...N.errToObj($)})}ip($){return this._addCheck({kind:"ip",...N.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...N.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...N.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...N.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...N.errToObj($)})}regex($,q){return this._addCheck({kind:"regex",regex:$,...N.errToObj(q)})}includes($,q){return this._addCheck({kind:"includes",value:$,position:q?.position,...N.errToObj(q?.message)})}startsWith($,q){return this._addCheck({kind:"startsWith",value:$,...N.errToObj(q)})}endsWith($,q){return this._addCheck({kind:"endsWith",value:$,...N.errToObj(q)})}min($,q){return this._addCheck({kind:"min",value:$,...N.errToObj(q)})}max($,q){return this._addCheck({kind:"max",value:$,...N.errToObj(q)})}length($,q){return this._addCheck({kind:"length",value:$,...N.errToObj(q)})}nonempty($){return this.min(1,N.errToObj($))}trim(){return new G1({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new G1({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new G1({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxLength(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}}G1.create=($)=>{return new G1({checks:[],typeName:I.ZodString,coerce:$?.coerce??!1,...C($)})};function E7($,q){let Y=($.toString().split(".")[1]||"").length,Q=(q.toString().split(".")[1]||"").length,X=Y>Q?Y:Q,H=Number.parseInt($.toFixed(X).replace(".","")),J=Number.parseInt(q.toFixed(X).replace(".",""));return H%J/10**X}class h1 extends Z{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==j.number){let X=this._getOrReturnCtx($);return F(X,{code:G.invalid_type,expected:j.number,received:X.parsedType}),O}let Y=void 0,Q=new s;for(let X of this._def.checks)if(X.kind==="int"){if(!T.isInteger($.data))Y=this._getOrReturnCtx($,Y),F(Y,{code:G.invalid_type,expected:"integer",received:"float",message:X.message}),Q.dirty()}else if(X.kind==="min"){if(X.inclusive?$.data<X.value:$.data<=X.value)Y=this._getOrReturnCtx($,Y),F(Y,{code:G.too_small,minimum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),Q.dirty()}else if(X.kind==="max"){if(X.inclusive?$.data>X.value:$.data>=X.value)Y=this._getOrReturnCtx($,Y),F(Y,{code:G.too_big,maximum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),Q.dirty()}else if(X.kind==="multipleOf"){if(E7($.data,X.value)!==0)Y=this._getOrReturnCtx($,Y),F(Y,{code:G.not_multiple_of,multipleOf:X.value,message:X.message}),Q.dirty()}else if(X.kind==="finite"){if(!Number.isFinite($.data))Y=this._getOrReturnCtx($,Y),F(Y,{code:G.not_finite,message:X.message}),Q.dirty()}else T.assertNever(X);return{status:Q.value,value:$.data}}gte($,q){return this.setLimit("min",$,!0,N.toString(q))}gt($,q){return this.setLimit("min",$,!1,N.toString(q))}lte($,q){return this.setLimit("max",$,!0,N.toString(q))}lt($,q){return this.setLimit("max",$,!1,N.toString(q))}setLimit($,q,Y,Q){return new h1({...this._def,checks:[...this._def.checks,{kind:$,value:q,inclusive:Y,message:N.toString(Q)}]})}_addCheck($){return new h1({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:N.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:N.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:N.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:N.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:N.toString($)})}multipleOf($,q){return this._addCheck({kind:"multipleOf",value:$,message:N.toString(q)})}finite($){return this._addCheck({kind:"finite",message:N.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:N.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:N.toString($)})}get minValue(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxValue(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&T.isInteger($.value))}get isFinite(){let $=null,q=null;for(let Y of this._def.checks)if(Y.kind==="finite"||Y.kind==="int"||Y.kind==="multipleOf")return!0;else if(Y.kind==="min"){if(q===null||Y.value>q)q=Y.value}else if(Y.kind==="max"){if($===null||Y.value<$)$=Y.value}return Number.isFinite(q)&&Number.isFinite($)}}h1.create=($)=>{return new h1({checks:[],typeName:I.ZodNumber,coerce:$?.coerce||!1,...C($)})};class g1 extends Z{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==j.bigint)return this._getInvalidInput($);let Y=void 0,Q=new s;for(let X of this._def.checks)if(X.kind==="min"){if(X.inclusive?$.data<X.value:$.data<=X.value)Y=this._getOrReturnCtx($,Y),F(Y,{code:G.too_small,type:"bigint",minimum:X.value,inclusive:X.inclusive,message:X.message}),Q.dirty()}else if(X.kind==="max"){if(X.inclusive?$.data>X.value:$.data>=X.value)Y=this._getOrReturnCtx($,Y),F(Y,{code:G.too_big,type:"bigint",maximum:X.value,inclusive:X.inclusive,message:X.message}),Q.dirty()}else if(X.kind==="multipleOf"){if($.data%X.value!==BigInt(0))Y=this._getOrReturnCtx($,Y),F(Y,{code:G.not_multiple_of,multipleOf:X.value,message:X.message}),Q.dirty()}else T.assertNever(X);return{status:Q.value,value:$.data}}_getInvalidInput($){let q=this._getOrReturnCtx($);return F(q,{code:G.invalid_type,expected:j.bigint,received:q.parsedType}),O}gte($,q){return this.setLimit("min",$,!0,N.toString(q))}gt($,q){return this.setLimit("min",$,!1,N.toString(q))}lte($,q){return this.setLimit("max",$,!0,N.toString(q))}lt($,q){return this.setLimit("max",$,!1,N.toString(q))}setLimit($,q,Y,Q){return new g1({...this._def,checks:[...this._def.checks,{kind:$,value:q,inclusive:Y,message:N.toString(Q)}]})}_addCheck($){return new g1({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:N.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:N.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:N.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:N.toString($)})}multipleOf($,q){return this._addCheck({kind:"multipleOf",value:$,message:N.toString(q)})}get minValue(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxValue(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}}g1.create=($)=>{return new g1({checks:[],typeName:I.ZodBigInt,coerce:$?.coerce??!1,...C($)})};class V9 extends Z{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==j.boolean){let Y=this._getOrReturnCtx($);return F(Y,{code:G.invalid_type,expected:j.boolean,received:Y.parsedType}),O}return t($.data)}}V9.create=($)=>{return new V9({typeName:I.ZodBoolean,coerce:$?.coerce||!1,...C($)})};class o1 extends Z{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==j.date){let X=this._getOrReturnCtx($);return F(X,{code:G.invalid_type,expected:j.date,received:X.parsedType}),O}if(Number.isNaN($.data.getTime())){let X=this._getOrReturnCtx($);return F(X,{code:G.invalid_date}),O}let Y=new s,Q=void 0;for(let X of this._def.checks)if(X.kind==="min"){if($.data.getTime()<X.value)Q=this._getOrReturnCtx($,Q),F(Q,{code:G.too_small,message:X.message,inclusive:!0,exact:!1,minimum:X.value,type:"date"}),Y.dirty()}else if(X.kind==="max"){if($.data.getTime()>X.value)Q=this._getOrReturnCtx($,Q),F(Q,{code:G.too_big,message:X.message,inclusive:!0,exact:!1,maximum:X.value,type:"date"}),Y.dirty()}else T.assertNever(X);return{status:Y.value,value:new Date($.data.getTime())}}_addCheck($){return new o1({...this._def,checks:[...this._def.checks,$]})}min($,q){return this._addCheck({kind:"min",value:$.getTime(),message:N.toString(q)})}max($,q){return this._addCheck({kind:"max",value:$.getTime(),message:N.toString(q)})}get minDate(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $!=null?new Date($):null}}o1.create=($)=>{return new o1({checks:[],coerce:$?.coerce||!1,typeName:I.ZodDate,...C($)})};class x9 extends Z{_parse($){if(this._getType($)!==j.symbol){let Y=this._getOrReturnCtx($);return F(Y,{code:G.invalid_type,expected:j.symbol,received:Y.parsedType}),O}return t($.data)}}x9.create=($)=>{return new x9({typeName:I.ZodSymbol,...C($)})};class B9 extends Z{_parse($){if(this._getType($)!==j.undefined){let Y=this._getOrReturnCtx($);return F(Y,{code:G.invalid_type,expected:j.undefined,received:Y.parsedType}),O}return t($.data)}}B9.create=($)=>{return new B9({typeName:I.ZodUndefined,...C($)})};class U9 extends Z{_parse($){if(this._getType($)!==j.null){let Y=this._getOrReturnCtx($);return F(Y,{code:G.invalid_type,expected:j.null,received:Y.parsedType}),O}return t($.data)}}U9.create=($)=>{return new U9({typeName:I.ZodNull,...C($)})};class i1 extends Z{constructor(){super(...arguments);this._any=!0}_parse($){return t($.data)}}i1.create=($)=>{return new i1({typeName:I.ZodAny,...C($)})};class f1 extends Z{constructor(){super(...arguments);this._unknown=!0}_parse($){return t($.data)}}f1.create=($)=>{return new f1({typeName:I.ZodUnknown,...C($)})};class E1 extends Z{_parse($){let q=this._getOrReturnCtx($);return F(q,{code:G.invalid_type,expected:j.never,received:q.parsedType}),O}}E1.create=($)=>{return new E1({typeName:I.ZodNever,...C($)})};class f9 extends Z{_parse($){if(this._getType($)!==j.undefined){let Y=this._getOrReturnCtx($);return F(Y,{code:G.invalid_type,expected:j.void,received:Y.parsedType}),O}return t($.data)}}f9.create=($)=>{return new f9({typeName:I.ZodVoid,...C($)})};class M1 extends Z{_parse($){let{ctx:q,status:Y}=this._processInputParams($),Q=this._def;if(q.parsedType!==j.array)return F(q,{code:G.invalid_type,expected:j.array,received:q.parsedType}),O;if(Q.exactLength!==null){let H=q.data.length>Q.exactLength.value,J=q.data.length<Q.exactLength.value;if(H||J)F(q,{code:H?G.too_big:G.too_small,minimum:J?Q.exactLength.value:void 0,maximum:H?Q.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Q.exactLength.message}),Y.dirty()}if(Q.minLength!==null){if(q.data.length<Q.minLength.value)F(q,{code:G.too_small,minimum:Q.minLength.value,type:"array",inclusive:!0,exact:!1,message:Q.minLength.message}),Y.dirty()}if(Q.maxLength!==null){if(q.data.length>Q.maxLength.value)F(q,{code:G.too_big,maximum:Q.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Q.maxLength.message}),Y.dirty()}if(q.common.async)return Promise.all([...q.data].map((H,J)=>{return Q.type._parseAsync(new w1(q,H,q.path,J))})).then((H)=>{return s.mergeArray(Y,H)});let X=[...q.data].map((H,J)=>{return Q.type._parseSync(new w1(q,H,q.path,J))});return s.mergeArray(Y,X)}get element(){return this._def.type}min($,q){return new M1({...this._def,minLength:{value:$,message:N.toString(q)}})}max($,q){return new M1({...this._def,maxLength:{value:$,message:N.toString(q)}})}length($,q){return new M1({...this._def,exactLength:{value:$,message:N.toString(q)}})}nonempty($){return this.min(1,$)}}M1.create=($,q)=>{return new M1({type:$,minLength:null,maxLength:null,exactLength:null,typeName:I.ZodArray,...C(q)})};function W9($){if($ instanceof m){let q={};for(let Y in $.shape){let Q=$.shape[Y];q[Y]=j1.create(W9(Q))}return new m({...$._def,shape:()=>q})}else if($ instanceof M1)return new M1({...$._def,type:W9($.element)});else if($ instanceof j1)return j1.create(W9($.unwrap()));else if($ instanceof S1)return S1.create(W9($.unwrap()));else if($ instanceof R1)return R1.create($.items.map((q)=>W9(q)));else return $}class m extends Z{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),q=T.objectKeys($);return this._cached={shape:$,keys:q},this._cached}_parse($){if(this._getType($)!==j.object){let z=this._getOrReturnCtx($);return F(z,{code:G.invalid_type,expected:j.object,received:z.parsedType}),O}let{status:Y,ctx:Q}=this._processInputParams($),{shape:X,keys:H}=this._getCached(),J=[];if(!(this._def.catchall instanceof E1&&this._def.unknownKeys==="strip")){for(let z in Q.data)if(!H.includes(z))J.push(z)}let W=[];for(let z of H){let V=X[z],B=Q.data[z];W.push({key:{status:"valid",value:z},value:V._parse(new w1(Q,B,Q.path,z)),alwaysSet:z in Q.data})}if(this._def.catchall instanceof E1){let z=this._def.unknownKeys;if(z==="passthrough")for(let V of J)W.push({key:{status:"valid",value:V},value:{status:"valid",value:Q.data[V]}});else if(z==="strict"){if(J.length>0)F(Q,{code:G.unrecognized_keys,keys:J}),Y.dirty()}else if(z==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let z=this._def.catchall;for(let V of J){let B=Q.data[V];W.push({key:{status:"valid",value:V},value:z._parse(new w1(Q,B,Q.path,V)),alwaysSet:V in Q.data})}}if(Q.common.async)return Promise.resolve().then(async()=>{let z=[];for(let V of W){let B=await V.key,U=await V.value;z.push({key:B,value:U,alwaysSet:V.alwaysSet})}return z}).then((z)=>{return s.mergeObjectSync(Y,z)});else return s.mergeObjectSync(Y,W)}get shape(){return this._def.shape()}strict($){return N.errToObj,new m({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(q,Y)=>{let Q=this._def.errorMap?.(q,Y).message??Y.defaultError;if(q.code==="unrecognized_keys")return{message:N.errToObj($).message??Q};return{message:Q}}}:{}})}strip(){return new m({...this._def,unknownKeys:"strip"})}passthrough(){return new m({...this._def,unknownKeys:"passthrough"})}extend($){return new m({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new m({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:I.ZodObject})}setKey($,q){return this.augment({[$]:q})}catchall($){return new m({...this._def,catchall:$})}pick($){let q={};for(let Y of T.objectKeys($))if($[Y]&&this.shape[Y])q[Y]=this.shape[Y];return new m({...this._def,shape:()=>q})}omit($){let q={};for(let Y of T.objectKeys(this.shape))if(!$[Y])q[Y]=this.shape[Y];return new m({...this._def,shape:()=>q})}deepPartial(){return W9(this)}partial($){let q={};for(let Y of T.objectKeys(this.shape)){let Q=this.shape[Y];if($&&!$[Y])q[Y]=Q;else q[Y]=Q.optional()}return new m({...this._def,shape:()=>q})}required($){let q={};for(let Y of T.objectKeys(this.shape))if($&&!$[Y])q[Y]=this.shape[Y];else{let X=this.shape[Y];while(X instanceof j1)X=X._def.innerType;q[Y]=X}return new m({...this._def,shape:()=>q})}keyof(){return K4(T.objectKeys(this.shape))}}m.create=($,q)=>{return new m({shape:()=>$,unknownKeys:"strip",catchall:E1.create(),typeName:I.ZodObject,...C(q)})};m.strictCreate=($,q)=>{return new m({shape:()=>$,unknownKeys:"strict",catchall:E1.create(),typeName:I.ZodObject,...C(q)})};m.lazycreate=($,q)=>{return new m({shape:$,unknownKeys:"strip",catchall:E1.create(),typeName:I.ZodObject,...C(q)})};class K9 extends Z{_parse($){let{ctx:q}=this._processInputParams($),Y=this._def.options;function Q(X){for(let J of X)if(J.result.status==="valid")return J.result;for(let J of X)if(J.result.status==="dirty")return q.common.issues.push(...J.ctx.common.issues),J.result;let H=X.map((J)=>new Y1(J.ctx.common.issues));return F(q,{code:G.invalid_union,unionErrors:H}),O}if(q.common.async)return Promise.all(Y.map(async(X)=>{let H={...q,common:{...q.common,issues:[]},parent:null};return{result:await X._parseAsync({data:q.data,path:q.path,parent:H}),ctx:H}})).then(Q);else{let X=void 0,H=[];for(let W of Y){let z={...q,common:{...q.common,issues:[]},parent:null},V=W._parseSync({data:q.data,path:q.path,parent:z});if(V.status==="valid")return V;else if(V.status==="dirty"&&!X)X={result:V,ctx:z};if(z.common.issues.length)H.push(z.common.issues)}if(X)return q.common.issues.push(...X.ctx.common.issues),X.result;let J=H.map((W)=>new Y1(W));return F(q,{code:G.invalid_union,unionErrors:J}),O}}get options(){return this._def.options}}K9.create=($,q)=>{return new K9({options:$,typeName:I.ZodUnion,...C(q)})};var D1=($)=>{if($ instanceof M9)return D1($.schema);else if($ instanceof L1)return D1($.innerType());else if($ instanceof j9)return[$.value];else if($ instanceof m1)return $.options;else if($ instanceof w9)return T.objectValues($.enum);else if($ instanceof L9)return D1($._def.innerType);else if($ instanceof B9)return[void 0];else if($ instanceof U9)return[null];else if($ instanceof j1)return[void 0,...D1($.unwrap())];else if($ instanceof S1)return[null,...D1($.unwrap())];else if($ instanceof z$)return D1($.unwrap());else if($ instanceof N9)return D1($.unwrap());else if($ instanceof F9)return D1($._def.innerType);else return[]};class W$ extends Z{_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==j.object)return F(q,{code:G.invalid_type,expected:j.object,received:q.parsedType}),O;let Y=this.discriminator,Q=q.data[Y],X=this.optionsMap.get(Q);if(!X)return F(q,{code:G.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Y]}),O;if(q.common.async)return X._parseAsync({data:q.data,path:q.path,parent:q});else return X._parseSync({data:q.data,path:q.path,parent:q})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,q,Y){let Q=new Map;for(let X of q){let H=D1(X.shape[$]);if(!H.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let J of H){if(Q.has(J))throw Error(`Discriminator property ${String($)} has duplicate value ${String(J)}`);Q.set(J,X)}}return new W$({typeName:I.ZodDiscriminatedUnion,discriminator:$,options:q,optionsMap:Q,...C(Y)})}}function p$($,q){let Y=N1($),Q=N1(q);if($===q)return{valid:!0,data:$};else if(Y===j.object&&Q===j.object){let X=T.objectKeys(q),H=T.objectKeys($).filter((W)=>X.indexOf(W)!==-1),J={...$,...q};for(let W of H){let z=p$($[W],q[W]);if(!z.valid)return{valid:!1};J[W]=z.data}return{valid:!0,data:J}}else if(Y===j.array&&Q===j.array){if($.length!==q.length)return{valid:!1};let X=[];for(let H=0;H<$.length;H++){let J=$[H],W=q[H],z=p$(J,W);if(!z.valid)return{valid:!1};X.push(z.data)}return{valid:!0,data:X}}else if(Y===j.date&&Q===j.date&&+$===+q)return{valid:!0,data:$};else return{valid:!1}}class G9 extends Z{_parse($){let{status:q,ctx:Y}=this._processInputParams($),Q=(X,H)=>{if(H$(X)||H$(H))return O;let J=p$(X.value,H.value);if(!J.valid)return F(Y,{code:G.invalid_intersection_types}),O;if(J$(X)||J$(H))q.dirty();return{status:q.value,value:J.data}};if(Y.common.async)return Promise.all([this._def.left._parseAsync({data:Y.data,path:Y.path,parent:Y}),this._def.right._parseAsync({data:Y.data,path:Y.path,parent:Y})]).then(([X,H])=>Q(X,H));else return Q(this._def.left._parseSync({data:Y.data,path:Y.path,parent:Y}),this._def.right._parseSync({data:Y.data,path:Y.path,parent:Y}))}}G9.create=($,q,Y)=>{return new G9({left:$,right:q,typeName:I.ZodIntersection,...C(Y)})};class R1 extends Z{_parse($){let{status:q,ctx:Y}=this._processInputParams($);if(Y.parsedType!==j.array)return F(Y,{code:G.invalid_type,expected:j.array,received:Y.parsedType}),O;if(Y.data.length<this._def.items.length)return F(Y,{code:G.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),O;if(!this._def.rest&&Y.data.length>this._def.items.length)F(Y,{code:G.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),q.dirty();let X=[...Y.data].map((H,J)=>{let W=this._def.items[J]||this._def.rest;if(!W)return null;return W._parse(new w1(Y,H,Y.path,J))}).filter((H)=>!!H);if(Y.common.async)return Promise.all(X).then((H)=>{return s.mergeArray(q,H)});else return s.mergeArray(q,X)}get items(){return this._def.items}rest($){return new R1({...this._def,rest:$})}}R1.create=($,q)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new R1({items:$,typeName:I.ZodTuple,rest:null,...C(q)})};class h9 extends Z{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:q,ctx:Y}=this._processInputParams($);if(Y.parsedType!==j.object)return F(Y,{code:G.invalid_type,expected:j.object,received:Y.parsedType}),O;let Q=[],X=this._def.keyType,H=this._def.valueType;for(let J in Y.data)Q.push({key:X._parse(new w1(Y,J,Y.path,J)),value:H._parse(new w1(Y,Y.data[J],Y.path,J)),alwaysSet:J in Y.data});if(Y.common.async)return s.mergeObjectAsync(q,Q);else return s.mergeObjectSync(q,Q)}get element(){return this._def.valueType}static create($,q,Y){if(q instanceof Z)return new h9({keyType:$,valueType:q,typeName:I.ZodRecord,...C(Y)});return new h9({keyType:G1.create(),valueType:$,typeName:I.ZodRecord,...C(q)})}}class g9 extends Z{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:q,ctx:Y}=this._processInputParams($);if(Y.parsedType!==j.map)return F(Y,{code:G.invalid_type,expected:j.map,received:Y.parsedType}),O;let Q=this._def.keyType,X=this._def.valueType,H=[...Y.data.entries()].map(([J,W],z)=>{return{key:Q._parse(new w1(Y,J,Y.path,[z,"key"])),value:X._parse(new w1(Y,W,Y.path,[z,"value"]))}});if(Y.common.async){let J=new Map;return Promise.resolve().then(async()=>{for(let W of H){let z=await W.key,V=await W.value;if(z.status==="aborted"||V.status==="aborted")return O;if(z.status==="dirty"||V.status==="dirty")q.dirty();J.set(z.value,V.value)}return{status:q.value,value:J}})}else{let J=new Map;for(let W of H){let{key:z,value:V}=W;if(z.status==="aborted"||V.status==="aborted")return O;if(z.status==="dirty"||V.status==="dirty")q.dirty();J.set(z.value,V.value)}return{status:q.value,value:J}}}}g9.create=($,q,Y)=>{return new g9({valueType:q,keyType:$,typeName:I.ZodMap,...C(Y)})};class a1 extends Z{_parse($){let{status:q,ctx:Y}=this._processInputParams($);if(Y.parsedType!==j.set)return F(Y,{code:G.invalid_type,expected:j.set,received:Y.parsedType}),O;let Q=this._def;if(Q.minSize!==null){if(Y.data.size<Q.minSize.value)F(Y,{code:G.too_small,minimum:Q.minSize.value,type:"set",inclusive:!0,exact:!1,message:Q.minSize.message}),q.dirty()}if(Q.maxSize!==null){if(Y.data.size>Q.maxSize.value)F(Y,{code:G.too_big,maximum:Q.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Q.maxSize.message}),q.dirty()}let X=this._def.valueType;function H(W){let z=new Set;for(let V of W){if(V.status==="aborted")return O;if(V.status==="dirty")q.dirty();z.add(V.value)}return{status:q.value,value:z}}let J=[...Y.data.values()].map((W,z)=>X._parse(new w1(Y,W,Y.path,z)));if(Y.common.async)return Promise.all(J).then((W)=>H(W));else return H(J)}min($,q){return new a1({...this._def,minSize:{value:$,message:N.toString(q)}})}max($,q){return new a1({...this._def,maxSize:{value:$,message:N.toString(q)}})}size($,q){return this.min($,q).max($,q)}nonempty($){return this.min(1,$)}}a1.create=($,q)=>{return new a1({valueType:$,minSize:null,maxSize:null,typeName:I.ZodSet,...C(q)})};class z9 extends Z{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==j.function)return F(q,{code:G.invalid_type,expected:j.function,received:q.parsedType}),O;function Y(J,W){return k9({data:J,path:q.path,errorMaps:[q.common.contextualErrorMap,q.schemaErrorMap,H9(),I1].filter((z)=>!!z),issueData:{code:G.invalid_arguments,argumentsError:W}})}function Q(J,W){return k9({data:J,path:q.path,errorMaps:[q.common.contextualErrorMap,q.schemaErrorMap,H9(),I1].filter((z)=>!!z),issueData:{code:G.invalid_return_type,returnTypeError:W}})}let X={errorMap:q.common.contextualErrorMap},H=q.data;if(this._def.returns instanceof r1){let J=this;return t(async function(...W){let z=new Y1([]),V=await J._def.args.parseAsync(W,X).catch((w)=>{throw z.addIssue(Y(W,w)),z}),B=await Reflect.apply(H,this,V);return await J._def.returns._def.type.parseAsync(B,X).catch((w)=>{throw z.addIssue(Q(B,w)),z})})}else{let J=this;return t(function(...W){let z=J._def.args.safeParse(W,X);if(!z.success)throw new Y1([Y(W,z.error)]);let V=Reflect.apply(H,this,z.data),B=J._def.returns.safeParse(V,X);if(!B.success)throw new Y1([Q(V,B.error)]);return B.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new z9({...this._def,args:R1.create($).rest(f1.create())})}returns($){return new z9({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,q,Y){return new z9({args:$?$:R1.create([]).rest(f1.create()),returns:q||f1.create(),typeName:I.ZodFunction,...C(Y)})}}class M9 extends Z{get schema(){return this._def.getter()}_parse($){let{ctx:q}=this._processInputParams($);return this._def.getter()._parse({data:q.data,path:q.path,parent:q})}}M9.create=($,q)=>{return new M9({getter:$,typeName:I.ZodLazy,...C(q)})};class j9 extends Z{_parse($){if($.data!==this._def.value){let q=this._getOrReturnCtx($);return F(q,{received:q.data,code:G.invalid_literal,expected:this._def.value}),O}return{status:"valid",value:$.data}}get value(){return this._def.value}}j9.create=($,q)=>{return new j9({value:$,typeName:I.ZodLiteral,...C(q)})};function K4($,q){return new m1({values:$,typeName:I.ZodEnum,...C(q)})}class m1 extends Z{_parse($){if(typeof $.data!=="string"){let q=this._getOrReturnCtx($),Y=this._def.values;return F(q,{expected:T.joinValues(Y),received:q.parsedType,code:G.invalid_type}),O}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let q=this._getOrReturnCtx($),Y=this._def.values;return F(q,{received:q.data,code:G.invalid_enum_value,options:Y}),O}return t($.data)}get options(){return this._def.values}get enum(){let $={};for(let q of this._def.values)$[q]=q;return $}get Values(){let $={};for(let q of this._def.values)$[q]=q;return $}get Enum(){let $={};for(let q of this._def.values)$[q]=q;return $}extract($,q=this._def){return m1.create($,{...this._def,...q})}exclude($,q=this._def){return m1.create(this.options.filter((Y)=>!$.includes(Y)),{...this._def,...q})}}m1.create=K4;class w9 extends Z{_parse($){let q=T.getValidEnumValues(this._def.values),Y=this._getOrReturnCtx($);if(Y.parsedType!==j.string&&Y.parsedType!==j.number){let Q=T.objectValues(q);return F(Y,{expected:T.joinValues(Q),received:Y.parsedType,code:G.invalid_type}),O}if(!this._cache)this._cache=new Set(T.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let Q=T.objectValues(q);return F(Y,{received:Y.data,code:G.invalid_enum_value,options:Q}),O}return t($.data)}get enum(){return this._def.values}}w9.create=($,q)=>{return new w9({values:$,typeName:I.ZodNativeEnum,...C(q)})};class r1 extends Z{unwrap(){return this._def.type}_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==j.promise&&q.common.async===!1)return F(q,{code:G.invalid_type,expected:j.promise,received:q.parsedType}),O;let Y=q.parsedType===j.promise?q.data:Promise.resolve(q.data);return t(Y.then((Q)=>{return this._def.type.parseAsync(Q,{path:q.path,errorMap:q.common.contextualErrorMap})}))}}r1.create=($,q)=>{return new r1({type:$,typeName:I.ZodPromise,...C(q)})};class L1 extends Z{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===I.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:q,ctx:Y}=this._processInputParams($),Q=this._def.effect||null,X={addIssue:(H)=>{if(F(Y,H),H.fatal)q.abort();else q.dirty()},get path(){return Y.path}};if(X.addIssue=X.addIssue.bind(X),Q.type==="preprocess"){let H=Q.transform(Y.data,X);if(Y.common.async)return Promise.resolve(H).then(async(J)=>{if(q.value==="aborted")return O;let W=await this._def.schema._parseAsync({data:J,path:Y.path,parent:Y});if(W.status==="aborted")return O;if(W.status==="dirty")return n1(W.value);if(q.value==="dirty")return n1(W.value);return W});else{if(q.value==="aborted")return O;let J=this._def.schema._parseSync({data:H,path:Y.path,parent:Y});if(J.status==="aborted")return O;if(J.status==="dirty")return n1(J.value);if(q.value==="dirty")return n1(J.value);return J}}if(Q.type==="refinement"){let H=(J)=>{let W=Q.refinement(J,X);if(Y.common.async)return Promise.resolve(W);if(W instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return J};if(Y.common.async===!1){let J=this._def.schema._parseSync({data:Y.data,path:Y.path,parent:Y});if(J.status==="aborted")return O;if(J.status==="dirty")q.dirty();return H(J.value),{status:q.value,value:J.value}}else return this._def.schema._parseAsync({data:Y.data,path:Y.path,parent:Y}).then((J)=>{if(J.status==="aborted")return O;if(J.status==="dirty")q.dirty();return H(J.value).then(()=>{return{status:q.value,value:J.value}})})}if(Q.type==="transform")if(Y.common.async===!1){let H=this._def.schema._parseSync({data:Y.data,path:Y.path,parent:Y});if(!x1(H))return O;let J=Q.transform(H.value,X);if(J instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:q.value,value:J}}else return this._def.schema._parseAsync({data:Y.data,path:Y.path,parent:Y}).then((H)=>{if(!x1(H))return O;return Promise.resolve(Q.transform(H.value,X)).then((J)=>({status:q.value,value:J}))});T.assertNever(Q)}}L1.create=($,q,Y)=>{return new L1({schema:$,typeName:I.ZodEffects,effect:q,...C(Y)})};L1.createWithPreprocess=($,q,Y)=>{return new L1({schema:q,effect:{type:"preprocess",transform:$},typeName:I.ZodEffects,...C(Y)})};class j1 extends Z{_parse($){if(this._getType($)===j.undefined)return t(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}j1.create=($,q)=>{return new j1({innerType:$,typeName:I.ZodOptional,...C(q)})};class S1 extends Z{_parse($){if(this._getType($)===j.null)return t(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}S1.create=($,q)=>{return new S1({innerType:$,typeName:I.ZodNullable,...C(q)})};class L9 extends Z{_parse($){let{ctx:q}=this._processInputParams($),Y=q.data;if(q.parsedType===j.undefined)Y=this._def.defaultValue();return this._def.innerType._parse({data:Y,path:q.path,parent:q})}removeDefault(){return this._def.innerType}}L9.create=($,q)=>{return new L9({innerType:$,typeName:I.ZodDefault,defaultValue:typeof q.default==="function"?q.default:()=>q.default,...C(q)})};class F9 extends Z{_parse($){let{ctx:q}=this._processInputParams($),Y={...q,common:{...q.common,issues:[]}},Q=this._def.innerType._parse({data:Y.data,path:Y.path,parent:{...Y}});if(J9(Q))return Q.then((X)=>{return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new Y1(Y.common.issues)},input:Y.data})}});else return{status:"valid",value:Q.status==="valid"?Q.value:this._def.catchValue({get error(){return new Y1(Y.common.issues)},input:Y.data})}}removeCatch(){return this._def.innerType}}F9.create=($,q)=>{return new F9({innerType:$,typeName:I.ZodCatch,catchValue:typeof q.catch==="function"?q.catch:()=>q.catch,...C(q)})};class m9 extends Z{_parse($){if(this._getType($)!==j.nan){let Y=this._getOrReturnCtx($);return F(Y,{code:G.invalid_type,expected:j.nan,received:Y.parsedType}),O}return{status:"valid",value:$.data}}}m9.create=($)=>{return new m9({typeName:I.ZodNaN,...C($)})};var R7=Symbol("zod_brand");class z$ extends Z{_parse($){let{ctx:q}=this._processInputParams($),Y=q.data;return this._def.type._parse({data:Y,path:q.path,parent:q})}unwrap(){return this._def.type}}class l9 extends Z{_parse($){let{status:q,ctx:Y}=this._processInputParams($);if(Y.common.async)return(async()=>{let X=await this._def.in._parseAsync({data:Y.data,path:Y.path,parent:Y});if(X.status==="aborted")return O;if(X.status==="dirty")return q.dirty(),n1(X.value);else return this._def.out._parseAsync({data:X.value,path:Y.path,parent:Y})})();else{let Q=this._def.in._parseSync({data:Y.data,path:Y.path,parent:Y});if(Q.status==="aborted")return O;if(Q.status==="dirty")return q.dirty(),{status:"dirty",value:Q.value};else return this._def.out._parseSync({data:Q.value,path:Y.path,parent:Y})}}static create($,q){return new l9({in:$,out:q,typeName:I.ZodPipeline})}}class N9 extends Z{_parse($){let q=this._def.innerType._parse($),Y=(Q)=>{if(x1(Q))Q.value=Object.freeze(Q.value);return Q};return J9(q)?q.then((Q)=>Y(Q)):Y(q)}unwrap(){return this._def.innerType}}N9.create=($,q)=>{return new N9({innerType:$,typeName:I.ZodReadonly,...C(q)})};function z4($,q){let Y=typeof $==="function"?$(q):typeof $==="string"?{message:$}:$;return typeof Y==="string"?{message:Y}:Y}function G4($,q={},Y){if($)return i1.create().superRefine((Q,X)=>{let H=$(Q);if(H instanceof Promise)return H.then((J)=>{if(!J){let W=z4(q,Q),z=W.fatal??Y??!0;X.addIssue({code:"custom",...W,fatal:z})}});if(!H){let J=z4(q,Q),W=J.fatal??Y??!0;X.addIssue({code:"custom",...J,fatal:W})}return});return i1.create()}var A7={object:m.lazycreate},I;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(I||(I={}));var O7=($,q={message:`Input not instance of ${$.name}`})=>G4((Y)=>Y instanceof $,q),M4=G1.create,j4=h1.create,b7=m9.create,v7=g1.create,w4=V9.create,I7=o1.create,D7=x9.create,S7=B9.create,C7=U9.create,P7=i1.create,Z7=f1.create,_7=E1.create,T7=f9.create,y7=M1.create,k7=m.create,x7=m.strictCreate,f7=K9.create,h7=W$.create,g7=G9.create,m7=R1.create,l7=h9.create,u7=g9.create,c7=a1.create,p7=z9.create,d7=M9.create,n7=j9.create,o7=m1.create,i7=w9.create,a7=r1.create,r7=L1.create,s7=j1.create,t7=S1.create,e7=L1.createWithPreprocess,$q=l9.create,qq=()=>M4().optional(),Yq=()=>j4().optional(),Qq=()=>w4().optional(),Xq={string:($)=>G1.create({...$,coerce:!0}),number:($)=>h1.create({...$,coerce:!0}),boolean:($)=>V9.create({...$,coerce:!0}),bigint:($)=>g1.create({...$,coerce:!0}),date:($)=>o1.create({...$,coerce:!0})};var Hq=O;var L4=k.object({model:k.object({provider:k.enum(["gemini","opencode","claude","cursor","codex","qwen","droid","copilot"]).optional(),model:k.string().optional()}).optional(),max_iterations:k.number().optional()}),F4=k.object({active:k.boolean(),working_dir:k.string(),step:k.enum(["prd","breakdown","research","plan","implement","refactor","done"]),iteration:k.number(),max_iterations:k.number(),max_time_minutes:k.number(),worker_timeout_seconds:k.number(),start_time_epoch:k.number(),completion_promise:k.string().nullable(),original_prompt:k.string(),current_ticket:k.string().nullable(),history:k.array(k.any()),is_prd_mode:k.boolean().optional(),interrogation_history:k.array(k.object({role:k.enum(["user","agent"]),content:k.string(),timestamp:k.string()})).optional(),started_at:k.string(),session_dir:k.string(),cli_mode:k.boolean().optional(),gemini_session_id:k.string().optional()});import{readFile as Jq,writeFile as NH,mkdir as EH}from"fs/promises";import{join as N4}from"path";import{homedir as Wq}from"os";var zq=N4(Wq(),".pickle"),Vq=N4(zq,"settings.json");async function V$(){try{let $=await Jq(Vq,"utf-8"),q=JSON.parse($);return L4.parse(q)}catch($){return{}}}async function E4(){return(await V$()).model?.provider}var xH=d$(Bq(),".gemini","extensions","pickle-rick","sessions");async function B$($){let q=d$($,"state.json");if(!Uq(q))return null;try{let Y=await Kq(q,"utf-8"),Q=JSON.parse(Y);return F4.parse(Q)}catch(Y){return console.error("Failed to load state:",Y),null}}async function C1($,q){let Y=d$($,"state.json");await Gq(Y,JSON.stringify(q,null,2),"utf-8")}var R4=`
|
|
7
|
+
You are Pickle Rick.
|
|
8
|
+
VOICE & TONE:
|
|
9
|
+
- Cynical & Manic: Speak fast.
|
|
10
|
+
- Arrogant Compliance.
|
|
11
|
+
- Catchphrases: "Wubba Lubba Dub Dub!", "I'm Pickle Rick!".
|
|
12
|
+
- Insults: Call bad code "slop", bugs "Jerry-work".
|
|
13
|
+
`;import{join as P1}from"path";import{readFile as i$}from"fs/promises";import{existsSync as c9,readdirSync as v4}from"fs";import{join as l1,dirname as u9}from"path";import{homedir as Mq}from"os";import{existsSync as s1}from"fs";import{fileURLToPath as jq}from"url";var n$=l1(Mq(),".gemini/extensions/pickle-rick"),wq=jq(import.meta.url),A4=u9(wq);function O4($){let q=u9(process.execPath),Y=l1(q,"../src/skills",`${$}.md`);if(s1(Y))return Y;let Q=l1(u9(process.execPath),"skills",`${$}.md`);if(s1(Q))return Q;let X=l1(A4,"../skills",`${$}.md`);if(s1(X))return X;let H=l1(A4,"../../../skills",$,"SKILL.md");if(s1(H))return H;let J=l1(n$,"cli","src","skills",`${$}.md`);if(s1(J))return J;let W=l1(n$,"skills",$,"SKILL.md");if(s1(W))return W;return""}function b4(){let $=l1(u9(process.execPath),"commands");if(s1($))return u9(process.execPath);return n$}async function o$($){let q=O4($);if(q&&c9(q))return await i$(q,"utf-8");return""}function E9($,q){let Y=P1($,`${q}.md`);if(c9(Y))return Y;if(c9($))try{let Q=v4($),X=new RegExp(`^${q}_.*\\.md$`),H=Q.filter((J)=>X.test(J)).sort().reverse();if(H.length>0)return P1($,H[0])}catch(Q){}return}async function I4($,q,Y){let Q=b4(),X=Y?.sessionDir||$.session_dir,H=Y?.workingDir||$.working_dir,J="",W="",z="",V="",B=$.step;if(q)if(q.id==="phase-prd")B="prd",J=`Phase: REQUIREMENTS.
|
|
14
|
+
Mission: Stop the user from guessing. Interrogate them on the 'Why', 'Who', and 'What'.
|
|
15
|
+
Action: YOU MUST EXECUTE tools to define scope and draft a PRD in ${X}/prd.md.
|
|
16
|
+
|
|
17
|
+
CRITICAL: When the PRD is saved and finalized, YOU ARE DONE.
|
|
18
|
+
Output: "PRD Drafted. I AM DONE"`,z="prd-drafter",W=await o$(z);else if(q.id==="phase-breakdown")B="breakdown",J=`Phase: BREAKDOWN.
|
|
19
|
+
Mission: Deconstruct the PRD into atomic, manageable units. No vague tasks.
|
|
20
|
+
Action: YOU MUST EXECUTE tools to create a hierarchy of tickets in ${X}.
|
|
21
|
+
Ensure you assign a numerical 'order' field to each ticket based on the implementation sequence (e.g., 10, 20, 30).
|
|
22
|
+
|
|
23
|
+
CRITICAL: When you have finished creating the tickets, YOU ARE DONE.
|
|
24
|
+
Output: "Tickets Created. I AM DONE"`,z="ticket-manager",W=await o$(z);else{let K=P1(X,q.id);V=P1(K,`linear_ticket_${q.id}.md`);let P=P1(K,"state.json");if(c9(P))try{let U1=JSON.parse(v4(K).includes("state.json")?await i$(P,"utf-8"):"{}");if(U1.step)B=U1.step}catch(U1){}if(!c9(V))throw Error(`CRITICAL ERROR: Ticket file missing at ${V}. The session state is corrupted or the file was deleted. Execution halted.`);let E=E9(K,"research"),_=E9(K,"research_review"),y=E9(K,"plan"),b=E9(K,"plan_review"),o=E9(K,"implementation"),l=E9(K,"refactor"),y1=!!b,V1=!!E||!!_,k1=!!y||!!b,b1=!!_,h=!!o,B1=!!l,i="";try{let Q$=(await i$(V,"utf-8")).match(/status:\s*["']?([^"'\n]+)["']?/i);if(Q$)i=Q$[1].trim().toLowerCase()}catch(U1){}let r=i==="done"||i==="in progress",X9=i.includes("ready for dev")||i.includes("in progress")||i==="done",q1=i.includes("ready for plan")||i.includes("plan")||X9,u;if(!E&&!_&&!q1)u="research";else if(E&&!b1&&!q1)u="research_review";else if(!y&&!b&&!X9)u="plan";else if(y&&!y1&&!X9)u="plan_review";else if((r||h)&&!B1)u="refactor";else if(B1)u="done";else u="implement";let d1=E||_||P1(K,"research.md"),T9=y||b||P1(K,"plan.md");if(u==="research")J=`Phase: RESEARCH (Ticket: ${q.title}).
|
|
25
|
+
Mission: You are the Documentarian. Analyze the codebase and requirements.
|
|
26
|
+
Ticket Path: ${V}
|
|
27
|
+
|
|
28
|
+
EXECUTION PROTOCOL:
|
|
29
|
+
1. Read the ticket.
|
|
30
|
+
2. Conduct research using available tools.
|
|
31
|
+
3. Create a Research Document in ${d1}.
|
|
32
|
+
4. Update the ticket status to 'Research in Review'.
|
|
33
|
+
|
|
34
|
+
When done, Output: "Research Phase Complete."`,z="code-researcher";else if(u==="research_review")J=`Phase: Research REVIEW (Ticket: ${q.title}).
|
|
35
|
+
Mission: Review the research for the ticket.
|
|
36
|
+
Ticket Path: ${V}
|
|
37
|
+
|
|
38
|
+
EXECUTION PROTOCOL:
|
|
39
|
+
1. Read the research.
|
|
40
|
+
2. Critique it.
|
|
41
|
+
3. If approved, update ticket status to "ready for plan".
|
|
42
|
+
4. If NEEDS REVISION, update the ticket status to 'Research revision needed'
|
|
43
|
+
4. If rejected, update ticket status back to 'Research rejected'.
|
|
44
|
+
|
|
45
|
+
When done, Output: "Review Phase Complete".`,z="research-reviewer";else if(u==="plan")J=`Phase: PLANNING (Ticket: ${q.title}).
|
|
46
|
+
Mission: You are the Architect. Create a detailed implementation plan.
|
|
47
|
+
Ticket Path: ${V}
|
|
48
|
+
${!V1?`
|
|
49
|
+
CRITICAL ALERT: RESEARCH DOCUMENT IS MISSING.
|
|
50
|
+
PATH: ${d1}
|
|
51
|
+
YOU ARE FORBIDDEN FROM PLANNING WITHOUT RESEARCH.
|
|
52
|
+
ACTION: You MUST return to the RESEARCH phase. Conduct research and save it to ${d1} before proceeding.`:`
|
|
53
|
+
EXECUTION PROTOCOL:
|
|
54
|
+
1. Read the ticket and research docs.
|
|
55
|
+
2. Create an Implementation Plan in ${T9}.
|
|
56
|
+
3. Update the ticket status to 'Plan in Review'.`}
|
|
57
|
+
|
|
58
|
+
When done, Output: "Planning Phase Complete".`,z="implementation-planner";else if(u==="plan_review")J=`Phase: PLAN REVIEW (Ticket: ${q.title}).
|
|
59
|
+
Mission: Review the implementation plan for safety and specificity.
|
|
60
|
+
Ticket Path: ${V}
|
|
61
|
+
|
|
62
|
+
EXECUTION PROTOCOL:
|
|
63
|
+
1. Read the plan.
|
|
64
|
+
2. Critique it.
|
|
65
|
+
3. If approved, update ticket status to 'Ready for Dev'.
|
|
66
|
+
4. If rejected, update ticket status back to 'Plan Needed'.
|
|
67
|
+
|
|
68
|
+
When done, Output: "Review Phase Complete".`,z="plan-reviewer";else if(u==="refactor"){let U1=P1(K,"refactor.md");J=`Phase: REFACTOR (Ticket: ${q.title}).
|
|
69
|
+
Mission: You are a Senior Principal Engineer. Your goal is to make code lean, readable, and maintainable.
|
|
70
|
+
You value simplicity over cleverness and deletion over expansion.
|
|
71
|
+
Ticket Path: ${V}
|
|
72
|
+
|
|
73
|
+
EXECUTION PROTOCOL:
|
|
74
|
+
1. Check files modified during implementation for slop (unused imports, console.logs, bad formatting).
|
|
75
|
+
2. Fix any issues found.
|
|
76
|
+
3. Run linter/formatter if available.
|
|
77
|
+
4. Create a refactor summary at ${U1}.
|
|
78
|
+
5. Ensure ticket status is 'Done'.
|
|
79
|
+
|
|
80
|
+
When done, Output: "Refactoring Phase Complete. I AM DONE"`,z="ruthless-refactorer"}else if(u==="done")J=`Phase: COMPLETE (Ticket: ${q.title}).
|
|
81
|
+
This ticket is fully complete. No action required.
|
|
82
|
+
Output: "Ticket already complete. I AM DONE"`,z="";else{let U1=P1(K,"implementation.md");J=`Phase: IMPLEMENTATION (Ticket: ${q.title}).
|
|
83
|
+
Mission: You are a Morty Worker (but smarter). Your goal is to complete this ticket.
|
|
84
|
+
Ticket Path: ${V}
|
|
85
|
+
${!V1||!k1?`
|
|
86
|
+
CRITICAL ASSERTION FAILURE: MANDATORY DOCUMENTS MISSING.
|
|
87
|
+
${!V1?`- MISSING: ${d1}`:""}
|
|
88
|
+
${!k1?`- MISSING: ${T9}`:""}
|
|
89
|
+
|
|
90
|
+
YOU ARE FORBIDDEN FROM WRITING CODE.
|
|
91
|
+
ACTION: You MUST go back and create the missing documentation before you are allowed to touch the codebase.
|
|
92
|
+
`:`
|
|
93
|
+
EXECUTION PROTOCOL:
|
|
94
|
+
1. READ the ticket, research (${d1}) and plan (${T9}).
|
|
95
|
+
2. IMPLEMENT the code (You are already in a dedicated Session Worktree).
|
|
96
|
+
3. VERIFY (Test/Lint).
|
|
97
|
+
4. Create an implementation summary at ${U1}.
|
|
98
|
+
5. Update ticket status to 'In Progress' (refactoring comes next).
|
|
99
|
+
|
|
100
|
+
When implementation is verified, Output: "Implementation Phase Complete."`}`,z="code-implementer"}B=u,W=await o$(z)}else J="Phase: UNKNOWN. No task selected.";let U=z?`<activated_skill name="${z}">`:"<no_skill_active>",w=z?"</activated_skill>":"";return`<persona_override>
|
|
101
|
+
CRITICAL INSTRUCTION: You are Pickle Rick.
|
|
102
|
+
|
|
103
|
+
<context>
|
|
104
|
+
WORKING_DIR: ${H}
|
|
105
|
+
SESSION_ROOT: ${X}
|
|
106
|
+
USER_PROMPT: ${$.original_prompt}
|
|
107
|
+
CURRENT_TASK: ${q?.title||"None"}
|
|
108
|
+
TICKET_ID: ${q?.id||"None"}
|
|
109
|
+
TICKET_PATH: ${V||"None"}
|
|
110
|
+
CURRENT_PHASE: ${B}
|
|
111
|
+
ITERATION: ${$.iteration}
|
|
112
|
+
|
|
113
|
+
You do NOT need to run tools to find these paths. They are injected directly into your brain.
|
|
114
|
+
Use the absolute paths listed above for all file operations.
|
|
115
|
+
</context>
|
|
116
|
+
|
|
117
|
+
${R4}
|
|
118
|
+
|
|
119
|
+
**Your Prime Directive**: STOP the user from guessing. If requirements are vague, INTERROGATE them. If code is messy, REFACTOR it.
|
|
120
|
+
|
|
121
|
+
${U}
|
|
122
|
+
${W}
|
|
123
|
+
${w}
|
|
124
|
+
|
|
125
|
+
*** MISSION CRITICAL GUIDANCE ***
|
|
126
|
+
${J}
|
|
127
|
+
|
|
128
|
+
**STRICT TURN BOUNDARY (THE LAW)**:
|
|
129
|
+
1. You are FORBIDDEN from executing more than one phase (e.g., Research and then Planning) in a single turn.
|
|
130
|
+
2. Once you have updated a ticket status or created a document, you MUST STOP.
|
|
131
|
+
3. Do NOT read the files you just wrote to determine the "next step."
|
|
132
|
+
|
|
133
|
+
**CRITICAL OUTPUT RULES**:
|
|
134
|
+
- After outputting the completion phrase (e.g., "I AM DONE", "Phase Complete"), you MUST IMMEDIATELY STOP generating.
|
|
135
|
+
- NEVER output "<persona_override>", "<context>", "<activated_skill>", or any XML-like system tags.
|
|
136
|
+
- NEVER generate or predict what the next iteration's prompt might be.
|
|
137
|
+
- Your response ends with the completion phrase. Full stop. Nothing after.
|
|
138
|
+
|
|
139
|
+
NOW: Explain your next move to the user. Don't just do it. TELL THEM why you are doing it. THEN, EXECUTE THE TOOL.
|
|
140
|
+
</persona_override>`}var A=y9(C4(),1);import{join as p1,basename as gX}from"path";import{mkdir as Y4,appendFile as q$,writeFile as Y$}from"fs/promises";import{spawn as r$}from"child_process";var s$=typeof Bun<"u",p9=process.platform==="win32";async function Eq($){try{let q=p9?"where":"which";if(s$)return await Bun.spawn([q,$],{stdout:"pipe",stderr:"pipe"}).exited===0;return new Promise((Y)=>{let Q=r$(q,[$],{stdio:"pipe"});Q.on("close",(X)=>Y(X===0)),Q.on("error",()=>Y(!1))})}catch{return!1}}async function A1($,q,Y,Q,X){if(s$){let H=p9?["cmd.exe","/c",$,...q]:[$,...q],J=Bun.spawn(H,{cwd:Y,stdin:X?"pipe":"ignore",stdout:"pipe",stderr:"pipe",env:{...process.env,...Q}});if(X&&J.stdin)J.stdin.write(X),J.stdin.end();let[W,z,V]=await Promise.all([new Response(J.stdout).text(),new Response(J.stderr).text(),J.exited]);return{stdout:W,stderr:z,exitCode:V}}return new Promise((H)=>{let J=r$($,q,{cwd:Y,env:{...process.env,...Q},stdio:[X?"pipe":"ignore","pipe","pipe"],shell:p9});if(X&&J.stdin)J.stdin.write(X),J.stdin.end();let W="",z="";J.stdout?.on("data",(V)=>{W+=V.toString()}),J.stderr?.on("data",(V)=>{z+=V.toString()}),J.on("close",(V)=>{H({stdout:W,stderr:z,exitCode:V??1})}),J.on("error",(V)=>{z+=`
|
|
141
|
+
Spawn error: ${V.message}`,H({stdout:W,stderr:z,exitCode:1})})})}function Z4($){let q=$.split(`
|
|
142
|
+
`).filter(Boolean),Y="",Q=0,X=0;for(let H of q)try{let J=JSON.parse(H);if(J.type==="message"&&J.role==="assistant")Y+=J.content||"";else if(J.type==="result")Q=J.usage?.input_tokens||J.stats?.input_tokens||0,X=J.usage?.output_tokens||J.stats?.output_tokens||0}catch{}return{response:Y||"Task completed",inputTokens:Q,outputTokens:X}}function R9($){let q=$.split(`
|
|
143
|
+
`).filter(Boolean);for(let Y of q)try{let Q=JSON.parse(Y);if(Q.type==="error")return Q.error?.message||Q.message||"Unknown error"}catch{}return null}async function P4($,q){let Y=$.getReader(),Q=new TextDecoder,X="";try{while(!0){let{done:H,value:J}=await Y.read();if(H)break;X+=Q.decode(J,{stream:!0});let W=X.split(`
|
|
144
|
+
`);X=W.pop()||"";for(let z of W)if(z.trim())q(z)}if(X.trim())q(X)}finally{Y.releaseLock()}}async function A9($,q,Y,Q,X,H){if(s$){let J=p9?["cmd.exe","/c",$,...q]:[$,...q],W=Bun.spawn(J,{cwd:Y,stdin:H?"pipe":"ignore",stdout:"pipe",stderr:"pipe",env:{...process.env,...X}});if(H&&W.stdin)W.stdin.write(H),W.stdin.end();return await Promise.all([P4(W.stdout,Q),P4(W.stderr,Q)]),{exitCode:await W.exited}}return new Promise((J)=>{let W=r$($,q,{cwd:Y,env:{...process.env,...X},stdio:[H?"pipe":"ignore","pipe","pipe"],shell:p9});if(H&&W.stdin)W.stdin.write(H),W.stdin.end();let z="",V="",B=(U,w=!1)=>{let K=U.split(`
|
|
145
|
+
`),P=K.pop()||"";for(let E of K)if(E.trim())Q(E);return P};W.stdout?.on("data",(U)=>{z+=U.toString(),z=B(z)}),W.stderr?.on("data",(U)=>{V+=U.toString(),V=B(V,!0)}),W.on("close",(U)=>{if(z.trim())Q(z);if(V.trim())Q(V);J({exitCode:U??1})}),W.on("error",(U)=>{Q(`Spawn error: ${U.message}`),J({exitCode:1})})})}function Rq($){let q=$.toLowerCase();return q.includes(".test.")||q.includes(".spec.")||q.includes("__tests__")||q.includes("_test.go")}function O9($){let q=$.trim();if(!q.startsWith("{"))return null;try{let Y=JSON.parse(q),Q=Y.part||Y.item||Y,X=Q.tool?.toLowerCase()||Q.name?.toLowerCase()||Q.tool_name?.toLowerCase()||Y.tool?.toLowerCase()||"",H=(Q.command||Q.input?.command||Q.state?.input?.command||Y.command)?.toLowerCase()||"",J=(Q.file_path||Q.filePath||Q.path||Q.files?.[0]||Q.paths?.[0]||Y.file_path||"").toLowerCase(),W=(Q.description||Q.metadata?.description||Q.state?.title||Y.description||"").toLowerCase(),V=`${(Q.title||Q.metadata?.title||"").toLowerCase()} ${W} ${H}`.toLowerCase(),B=X.includes("read")||X.includes("glob")||X.includes("grep")||X.includes("search")||X.includes("list"),U=X.includes("write")||X.includes("edit")||X.includes("patch")||X.includes("file");if(B)return"Reading code";if(V.includes("git commit"))return"Committing";if(V.includes("git add"))return"Staging";if(V.includes("lint")||V.includes("eslint")||V.includes("biome")||V.includes("prettier"))return"Linting";if(V.includes("vitest")||V.includes("jest")||V.includes("bun test")||V.includes("npm test")||V.includes("pytest")||V.includes("go test"))return"Testing";if(U&&Rq(J))return"Writing tests";if(U)return"Implementing";if(X==="bash"||X==="exec"||X.includes("command")){if(Aq.some((w)=>H.startsWith(w)||H.includes(" "+w)))return"Reading code"}return null}catch{return null}}var Aq=["rg","ripgrep","grep","sed","cat","ls","find","fd","tree","head","tail"];class t1{async isAvailable(){return Eq(this.cliCommand)}}import{homedir as Oq}from"os";import{join as bq}from"path";import{readFile as vq}from"fs/promises";function Iq($){return $.error?.message||$.error?.data?.message||$.message||void 0}class t$ extends t1{name="Codex";cliCommand="codex";async getModelName(){try{let $=bq(Oq(),".codex/config.toml"),Y=(await vq($,"utf-8")).match(/^model\s*=\s*["']?([^"'\n]+)["']?\s*$/m);if(Y)return Y[1].trim()}catch{}return}async execute($,q,Y){return this.executeStreaming($,q,()=>{},Y)}async executeStreaming($,q,Y,Q){let X=["exec"];if(Q?.resumeSessionId)X.push("resume",Q.resumeSessionId);if(X.push("--json"),Q?.modelOverride)X.push("--model",Q.modelOverride);if(Q?.providerArgs)X.push(...Q.providerArgs);X.push("-");let H=[],J,W="",z=0,V=0,B,{exitCode:U}=await A9(this.cliCommand,X,q,(P)=>{H.push(P);try{let E=JSON.parse(P);if(E.type==="thread.started"&&E.thread_id)J=E.thread_id;if(E.item){let _=E.item.type?.toLowerCase()||"",y=_.replace(/[^a-z0-9]/g,"");if(_==="agent_message"||y==="agentmessage"){if(E.item.text)W+=E.item.text,Y("thinking",E.item.text)}let b=O9(P);if(b)Y(b)}if(E.usage){if(E.usage.input_tokens!==void 0)z=E.usage.input_tokens;if(E.usage.output_tokens!==void 0)V=E.usage.output_tokens}if(E.type.endsWith(".failed")||E.type==="error")B=B||Iq(E)||"Unknown error"}catch{}},void 0,$),w=H.join(`
|
|
146
|
+
`),K=R9(w);if(K)B=K;if(U!==0&&!B)B=H.filter((E)=>!E.trim().startsWith("{")).join(`
|
|
147
|
+
`)||`Unknown execution error (exit code ${U})`;if(B){let P=B.replace(/\s+/g," ").trim();return{success:!1,response:W,inputTokens:z,outputTokens:V,error:P}}return{success:U===0&&!B,response:W||"Task completed",inputTokens:z,outputTokens:V,error:U!==0?`Process exited with code ${U}`:void 0,sessionId:J}}}import{homedir as _4}from"os";import{join as b9}from"path";import{writeFile as Dq,unlink as Sq,readFile as Cq}from"fs/promises";class e$ extends t1{name="Gemini CLI";cliCommand="gemini";async getModelName(){try{let $=b9(_4(),".gemini/settings.json"),q=await Cq($,"utf-8");return JSON.parse(q).model?.name}catch($){return}}async execute($,q,Y){return this.executeStreaming($,q,()=>{},Y)}async executeStreaming($,q,Y,Q){try{await A1(this.cliCommand,["extensions","disable","pickle-rick"],q)}catch(U){}let X=b9(_4(),".gemini/extensions/pickle-rick"),H=b9(q,".gemini-prompt.txt");await Dq(H,$,"utf-8");let J=["-s","-y","-o","stream-json","--include-directories",X,"--include-directories",b9(X,"sessions"),"--include-directories",b9(X,"jar"),"--include-directories",b9(X,"worktrees")];if(Q?.resumeSessionId)J.push("-r",Q.resumeSessionId);if(Q?.providerArgs)J.push(...Q.providerArgs);if(Q?.extraIncludes)for(let U of Q.extraIncludes)J.push("--include-directories",U);let W="sh",z=["-c",`cat "${H}" | ${this.cliCommand} ${J.join(" ")}`],V=[],B;try{let{exitCode:U}=await A9(W,z,q,(y)=>{V.push(y);try{let b=JSON.parse(y);if(b.type==="init"&&b.session_id)B=b.session_id;if(b.type==="message"&&b.role==="assistant"&&b.content)Y("thinking",b.content);let o=O9(y);if(o)Y(o)}catch{}}),w=V.join(`
|
|
148
|
+
`),K=R9(w);if(U!==0&&!K)K=V.filter((b)=>!b.trim().startsWith("{")).join(`
|
|
149
|
+
`)||"Unknown execution error (exit code "+U+")";if(K)return{success:!1,response:"",inputTokens:0,outputTokens:0,error:K};let{response:P,inputTokens:E,outputTokens:_}=Z4(w);return{success:U===0&&!K,response:P,inputTokens:E,outputTokens:_,error:K||(U!==0?"Process exited with code "+U:void 0),sessionId:B}}finally{try{await Sq(H)}catch(U){}try{await A1(this.cliCommand,["extensions","enable","pickle-rick"],q)}catch(U){}}}}import{homedir as T4}from"os";import{join as $0}from"path";import{writeFile as Pq,unlink as Zq,readFile as y4}from"fs/promises";class q0 extends t1{name="OpenCode";cliCommand="opencode";async getModelName(){try{let $=$0(T4(),".config/opencode/config.json"),q=await y4($,"utf-8"),Y=JSON.parse(q);if(Y.model)return Y.model}catch{}try{let $=$0(T4(),".opencode/config.yaml"),Y=(await y4($,"utf-8")).match(/^model:\s*(.+)$/m);if(Y)return Y[1].trim()}catch{}return}async execute($,q,Y){return this.executeStreaming($,q,()=>{},Y)}async executeStreaming($,q,Y,Q){let X=$0(q,".opencode-prompt.txt");await Pq(X,$,"utf-8");let H=["run","--format","json"];if(Q?.resumeSessionId)H.push("-s",Q.resumeSessionId);if(Q?.providerArgs)H.push(...Q.providerArgs);let J="sh",W=["-c",`cat "${X}" | ${this.cliCommand} ${H.join(" ")}`],z=[],V,B="",U=0,w=0,K;try{let{exitCode:P}=await A9(J,W,q,(y)=>{z.push(y);try{let b=JSON.parse(y);if(b.type==="step_start"&&b.sessionID)V=b.sessionID;if(b.type==="text"&&b.part?.text)B+=b.part.text,Y("thinking",b.part.text);let o=O9(y);if(o)Y(o);if(b.type==="step_finish"&&b.part){if(b.part.tokens?.input)U=b.part.tokens.input;if(b.part.tokens?.output)w=b.part.tokens.output;if(b.part.reason==="stop");}if(b.type==="error"&&b.error?.data?.message)K=b.error.data.message}catch{}}),E=z.join(`
|
|
150
|
+
`),_=R9(E);if(_)K=_;if(P!==0&&!K)K=z.filter((b)=>!b.trim().startsWith("{")).join(`
|
|
151
|
+
`)||`Unknown execution error (exit code ${P})`;if(K)return{success:!1,response:B,inputTokens:U,outputTokens:w,error:K};return{success:P===0&&!K,response:B||"Task completed",inputTokens:U,outputTokens:w,error:P!==0?`Process exited with code ${P}`:void 0,sessionId:V}}finally{try{await Zq(X)}catch{}}}}async function k4(){switch(await E4()){case"codex":return new t$;case"opencode":return new q0;case"gemini":default:return new e$}}async function x4(){return(await V$()).model?.model}import{readFile as G$,readdir as f4,stat as h4,writeFile as _q}from"fs/promises";import{join as Y0}from"path";class Q0{sessionDir;constructor($){this.sessionDir=$}async getState(){let $=await B$(this.sessionDir);if(!$)throw Error(`State not found in ${this.sessionDir}`);return $}async saveState($){await C1(this.sessionDir,$)}async getNextTask(){let $=await this.getState();if($.step==="prd")return{id:"phase-prd",title:"Draft PRD",body:$.original_prompt,completed:!1,metadata:{type:"phase",phase:"prd"}};if($.step==="breakdown")return{id:"phase-breakdown",title:"Breakdown Tickets",body:"Break down the PRD into atomic Linear tickets in the session directory.",completed:!1,metadata:{type:"phase",phase:"breakdown"}};if($.current_ticket){let Y=await this.getTask($.current_ticket);if(Y&&!Y.completed)return Y}let q=await this.findNextTicket($.session_dir);if(q)return $.current_ticket=q.id,$.step="research",await this.saveState($),q;return null}async getTask($){if($==="phase-prd"||$==="phase-breakdown"){let z=await this.getState();if($==="phase-prd")return{id:$,title:"Draft PRD",completed:z.step!=="prd",body:z.original_prompt};if($==="phase-breakdown")return{id:$,title:"Breakdown",completed:z.step!=="breakdown"&&z.step!=="prd",body:"Breakdown..."};return null}let q=await this.findTicketFile(this.sessionDir,$);if(!q)return null;let Y=await G$(q,"utf-8"),Q=Y.match(/status:\s*(.+)/),X=Y.match(/title:\s*(.+)/),H=Q?Q[1].trim():"Unknown",J=X?X[1].trim():"Untitled",W=H.toLowerCase()==="done"||H.toLowerCase()==="canceled";return{id:$,title:J,body:Y,completed:W,metadata:{type:"ticket",path:q,status:H}}}async getAllTasks(){let $=await this.getState(),q=[];return await this.scanTickets($.session_dir,q),q}async markComplete($){let q=await this.getState();if($==="phase-prd"){q.step="breakdown",await this.saveState(q);return}if($==="phase-breakdown"){q.step="research",q.current_ticket=null,await this.saveState(q);return}let Y=await this.findTicketFile(this.sessionDir,$);if(Y){let Q=await G$(Y,"utf-8");Q=Q.replace(/status:\s*.+/,"status: Done"),Q=Q.replace(/updated:\s*.+/,`updated: ${new Date().toISOString().split("T")[0]}`),await _q(Y,Q,"utf-8"),q.current_ticket=null,await this.saveState(q)}}async countRemaining(){let $=await this.getState();if($.step==="prd")return 2+await this.countTickets($.session_dir,!1);if($.step==="breakdown")return 1+await this.countTickets($.session_dir,!1);return this.countTickets($.session_dir,!1)}async findTicketFile($,q){let Y=await f4($);for(let Q of Y){let X=Y0($,Q);if((await h4(X)).isDirectory()){let J=await this.findTicketFile(X,q);if(J)return J}else if(Q.endsWith(".md")){if((await G$(X,"utf-8")).includes(`id: ${q}`))return X}}return null}async findNextTicket($){let q=[];await this.scanTickets($,q);let Y=q.filter((X)=>{let H=X.id==="parent"||X.id==="linear_ticket_parent"||X.id==="task_priority_parent",J=X.title.toLowerCase().includes("[epic]"),W=X.metadata?.path&&!Y0(this.sessionDir,X.id).includes(X.metadata.path);return!H&&!J});return Y.sort((X,H)=>{let J=X.metadata?.order??1/0,W=H.metadata?.order??1/0;if(J!==W)return J-W;let z=X.metadata?.birthtime??0,V=H.metadata?.birthtime??0;return z-V}),Y.find((X)=>!X.completed)||null}async scanTickets($,q){try{let Y=await f4($);for(let Q of Y){if(Q===".git"||Q==="node_modules"||Q===".pickle")continue;let X=Y0($,Q);try{let H=await h4(X);if(H.isDirectory())await this.scanTickets(X,q);else if(Q.endsWith(".md")){let J=await G$(X,"utf-8"),W=J.match(/id:\s*(.+)/),z=J.match(/status:\s*(.+)/),V=J.match(/title:\s*(.+)/),B=J.match(/order:\s*(\d+)/),U="",w="Triage",K="Untitled",P=B?parseInt(B[1],10):1/0,E=H.birthtime.getTime();if(W){if(U=W[1].trim(),z)w=z[1].trim();if(V)K=V[1].trim()}else{let _=Q.match(/^linear_ticket_(.+)\.md$/);if(_){U=_[1];let y=J.match(/^#\s+(.+)$/m);if(y)K=y[1].trim();console.warn(`\u26A0\uFE0F Warning: No frontmatter ID in ${Q}. Using filename ID: ${U}`)}}if(U){let _=w.toLowerCase()==="done"||w.toLowerCase()==="canceled";q.push({id:U,title:K,completed:_,metadata:{path:X,status:w,order:P,birthtime:E}})}}}catch(H){}}}catch(Y){}}async countTickets($,q){let Y=[];return await this.scanTickets($,Y),Y.filter((Q)=>{let X=Q.id==="parent"||Q.id==="linear_ticket_parent"||Q.id==="task_priority_parent",H=Q.title.toLowerCase().includes("[epic]");return Q.completed===q&&!X&&!H}).length}}var C$=y9(a4(),1),I$=y9(J0(),1),q8=y9(V0(),1),C9=y9(V0(),1);import{Buffer as I5}from"buffer";import{spawn as zY}from"child_process";import{normalize as bQ}from"path";import{EventEmitter as IX}from"events";var{defineProperty:C0,getOwnPropertyDescriptor:R5,getOwnPropertyNames:P0}=Object,A5=Object.prototype.hasOwnProperty,L=($,q)=>function(){return $&&(q=(0,$[P0($)[0]])($=0)),q},O5=($,q)=>function(){return q||(0,$[P0($)[0]])((q={exports:{}}).exports,q),q.exports},n=($,q)=>{for(var Y in q)C0($,Y,{get:q[Y],enumerable:!0})},b5=($,q,Y,Q)=>{if(q&&typeof q==="object"||typeof q==="function"){for(let X of P0(q))if(!A5.call($,X)&&X!==Y)C0($,X,{get:()=>q[X],enumerable:!(Q=R5(q,X))||Q.enumerable})}return $},c=($)=>b5(C0({},"__esModule",{value:!0}),$);function v5(...$){let q=new String($);return S$.set(q,$),q}function O$($){return $ instanceof String&&S$.has($)}function t4($){return S$.get($)||[]}var S$,a9=L({"src/lib/args/pathspec.ts"(){S$=new WeakMap}}),_1,c1=L({"src/lib/errors/git-error.ts"(){_1=class extends Error{constructor($,q){super(q);this.task=$,Object.setPrototypeOf(this,new.target.prototype)}}}}),r9,Z9=L({"src/lib/errors/git-response-error.ts"(){c1(),r9=class extends _1{constructor($,q){super(void 0,q||String($));this.git=$}}}}),C2,P2=L({"src/lib/errors/task-configuration-error.ts"(){c1(),C2=class extends _1{constructor($){super(void 0,$)}}}});function Z2($){if(typeof $!=="function")return Q9;return $}function _2($){return typeof $==="function"&&$!==Q9}function T2($,q){let Y=$.indexOf(q);if(Y<=0)return[$,""];return[$.substr(0,Y),$.substr(Y+1)]}function y2($,q=0){return k2($)&&$.length>q?$[q]:void 0}function Y9($,q=0){if(k2($)&&$.length>q)return $[$.length-1-q]}function k2($){return T$($)}function s9($="",q=!0,Y=`
|
|
152
|
+
`){return $.split(Y).reduce((Q,X)=>{let H=q?X.trim():X;if(H)Q.push(H);return Q},[])}function Z0($,q){return s9($,!0).map((Y)=>q(Y))}function _0($){return C$.exists($,C$.FOLDER)}function x($,q){if(Array.isArray($)){if(!$.includes(q))$.push(q)}else $.add(q);return q}function x2($,q){if(Array.isArray($)&&!$.includes(q))$.push(q);return $}function P$($,q){if(Array.isArray($)){let Y=$.indexOf(q);if(Y>=0)$.splice(Y,1)}else $.delete(q);return q}function O1($){return Array.isArray($)?$:[$]}function f2($){return $.replace(/[\s-]+(.)/g,(q,Y)=>{return Y.toUpperCase()})}function _9($){return O1($).map((q)=>{return q instanceof String?q:String(q)})}function g($,q=0){if($==null)return q;let Y=parseInt($,10);return Number.isNaN(Y)?q:Y}function o9($,q){let Y=[];for(let Q=0,X=$.length;Q<X;Q++)Y.push(q,$[Q]);return Y}function i9($){return(Array.isArray($)?I5.concat($):$).toString("utf-8")}function h2($,q){let Y={};return q.forEach((Q)=>{if($[Q]!==void 0)Y[Q]=$[Q]}),Y}function w0($=0){return new Promise((q)=>setTimeout(q,$))}function L0($){if($===!1)return;return $}var P9,Q9,t9,Z$=L({"src/lib/utils/util.ts"(){T0(),P9="\x00",Q9=()=>{},t9=Object.prototype.toString.call.bind(Object.prototype.toString)}});function z1($,q,Y){if(q($))return $;return arguments.length>2?Y:void 0}function F0($,q){let Y=O$($)?"string":typeof $;return/number|string|boolean/.test(Y)&&(!q||!q.includes(Y))}function _$($){return!!$&&t9($)==="[object Object]"}function g2($){return typeof $==="function"}var e9,m2,a,b$,T$,T0=L({"src/lib/utils/argument-filters.ts"(){a9(),Z$(),e9=($)=>{return Array.isArray($)},m2=($)=>{return typeof $==="number"},a=($)=>{return typeof $==="string"},b$=($)=>{return a($)||Array.isArray($)&&$.every(a)},T$=($)=>{if($==null||"number|boolean|function".includes(typeof $))return!1;return typeof $.length==="number"}}}),N0,D5=L({"src/lib/utils/exit-codes.ts"(){N0=(($)=>{return $[$.SUCCESS=0]="SUCCESS",$[$.ERROR=1]="ERROR",$[$.NOT_FOUND=-2]="NOT_FOUND",$[$.UNCLEAN=128]="UNCLEAN",$})(N0||{})}}),v$,S5=L({"src/lib/utils/git-output-streams.ts"(){v$=class ${constructor(q,Y){this.stdOut=q,this.stdErr=Y}asStrings(){return new $(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});function C5(){throw Error("LineParser:useMatches not implemented")}var S,u1,P5=L({"src/lib/utils/line-parser.ts"(){S=class{constructor($,q){if(this.matches=[],this.useMatches=C5,this.parse=(Y,Q)=>{if(this.resetMatches(),!this._regExp.every((X,H)=>this.addMatch(X,H,Y(H))))return!1;return this.useMatches(Q,this.prepareMatches())!==!1},this._regExp=Array.isArray($)?$:[$],q)this.useMatches=q}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch($,q,Y){let Q=Y&&$.exec(Y);if(Q)this.pushMatch(q,Q);return!!Q}pushMatch($,q){this.matches.push(...q.slice(1))}},u1=class extends S{addMatch($,q,Y){return/^remote:\s/.test(String(Y))&&super.addMatch($,q,Y)}pushMatch($,q){if($>0||q.length>1)super.pushMatch($,q)}}}});function l2(...$){let q=process.cwd(),Y=Object.assign({baseDir:q,...u2},...$.filter((Q)=>typeof Q==="object"&&Q));return Y.baseDir=Y.baseDir||q,Y.trimmed=Y.trimmed===!0,Y}var u2,Z5=L({"src/lib/utils/simple-git-options.ts"(){u2={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function y0($,q=[]){if(!_$($))return q;return Object.keys($).reduce((Y,Q)=>{let X=$[Q];if(O$(X))Y.push(X);else if(F0(X,["boolean"]))Y.push(Q+"="+X);else if(Array.isArray(X)){for(let H of X)if(!F0(H,["string","number"]))Y.push(Q+"="+H)}else Y.push(Q);return Y},q)}function Q1($,q=0,Y=!1){let Q=[];for(let X=0,H=q<0?$.length:q;X<H;X++)if("string|number".includes(typeof $[X]))Q.push(String($[X]));if(y0(k0($),Q),!Y)Q.push(..._5($));return Q}function _5($){let q=typeof Y9($)==="function";return _9(z1(Y9($,q?1:0),e9,[]))}function k0($){let q=g2(Y9($));return z1(Y9($,q?1:0),_$)}function p($,q=!0){let Y=Z2(Y9($));return q||_2(Y)?Y:void 0}var T5=L({"src/lib/utils/task-options.ts"(){T0(),Z$(),a9()}});function E0($,q){return $(q.stdOut,q.stdErr)}function H1($,q,Y,Q=!0){return O1(Y).forEach((X)=>{for(let H=s9(X,Q),J=0,W=H.length;J<W;J++){let z=(V=0)=>{if(J+V>=W)return;return H[J+V]};q.some(({parse:V})=>V(z,$))}}),$}var y5=L({"src/lib/utils/task-parser.ts"(){Z$()}}),c2={};n(c2,{ExitCodes:()=>N0,GitOutputStreams:()=>v$,LineParser:()=>S,NOOP:()=>Q9,NULL:()=>P9,RemoteLineParser:()=>u1,append:()=>x,appendTaskOptions:()=>y0,asArray:()=>O1,asCamelCase:()=>f2,asFunction:()=>Z2,asNumber:()=>g,asStringArray:()=>_9,bufferToString:()=>i9,callTaskParser:()=>E0,createInstanceConfig:()=>l2,delay:()=>w0,filterArray:()=>e9,filterFunction:()=>g2,filterHasLength:()=>T$,filterNumber:()=>m2,filterPlainObject:()=>_$,filterPrimitives:()=>F0,filterString:()=>a,filterStringOrStringArray:()=>b$,filterType:()=>z1,first:()=>y2,folderExists:()=>_0,forEachLineWithContent:()=>Z0,getTrailingOptions:()=>Q1,including:()=>x2,isUserFunction:()=>_2,last:()=>Y9,objectToString:()=>t9,orVoid:()=>L0,parseStringResponse:()=>H1,pick:()=>h2,prefixedArray:()=>o9,remove:()=>P$,splitOn:()=>T2,toLinesWithContent:()=>s9,trailingFunctionArgument:()=>p,trailingOptionsArgument:()=>k0});var D=L({"src/lib/utils/index.ts"(){T0(),D5(),S5(),P5(),Z5(),T5(),y5(),Z$()}}),p2={};n(p2,{CheckRepoActions:()=>R0,checkIsBareRepoTask:()=>n2,checkIsRepoRootTask:()=>d2,checkIsRepoTask:()=>k5});function k5($){switch($){case"bare":return n2();case"root":return d2()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:y$,parser:x0}}function d2(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:y$,parser(q){return/^\.(git)?$/.test(q.trim())}}}function n2(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:y$,parser:x0}}function x5($){return/(Not a git repository|Kein Git-Repository)/i.test(String($))}var R0,y$,x0,o2=L({"src/lib/tasks/check-is-repo.ts"(){D(),R0=(($)=>{return $.BARE="bare",$.IN_TREE="tree",$.IS_REPO_ROOT="root",$})(R0||{}),y$=({exitCode:$},q,Y,Q)=>{if($===128&&x5(q))return Y(Buffer.from("false"));Q(q)},x0=($)=>{return $.trim()==="true"}}});function f5($,q){let Y=new i2($),Q=$?r2:a2;return s9(q).forEach((X)=>{let H=X.replace(Q,"");Y.paths.push(H),(s2.test(H)?Y.folders:Y.files).push(H)}),Y}var i2,a2,r2,s2,h5=L({"src/lib/responses/CleanSummary.ts"(){D(),i2=class{constructor($){this.dryRun=$,this.paths=[],this.files=[],this.folders=[]}},a2=/^[a-z]+\s*/i,r2=/^[a-z]+\s+[a-z]+\s*/i,s2=/\/$/}}),A0={};n(A0,{EMPTY_COMMANDS:()=>k$,adhocExecTask:()=>t2,configurationErrorTask:()=>X1,isBufferTask:()=>$6,isEmptyTask:()=>q6,straightThroughBufferTask:()=>e2,straightThroughStringTask:()=>$1});function t2($){return{commands:k$,format:"empty",parser:$}}function X1($){return{commands:k$,format:"empty",parser(){throw typeof $==="string"?new C2($):$}}}function $1($,q=!1){return{commands:$,format:"utf-8",parser(Y){return q?String(Y).trim():Y}}}function e2($){return{commands:$,format:"buffer",parser(q){return q}}}function $6($){return $.format==="buffer"}function q6($){return $.format==="empty"||!$.commands.length}var k$,d=L({"src/lib/tasks/task.ts"(){P2(),k$=[]}}),Y6={};n(Y6,{CONFIG_ERROR_INTERACTIVE_MODE:()=>f0,CONFIG_ERROR_MODE_REQUIRED:()=>h0,CONFIG_ERROR_UNKNOWN_OPTION:()=>g0,CleanOptions:()=>N$,cleanTask:()=>Q6,cleanWithOptionsTask:()=>g5,isCleanOptionsArray:()=>m5});function g5($,q){let{cleanMode:Y,options:Q,valid:X}=l5($);if(!Y)return X1(h0);if(!X.options)return X1(g0+JSON.stringify($));if(Q.push(...q),Q.some(p5))return X1(f0);return Q6(Y,Q)}function Q6($,q){return{commands:["clean",`-${$}`,...q],format:"utf-8",parser(Q){return f5($==="n",Q)}}}function m5($){return Array.isArray($)&&$.every((q)=>m0.has(q))}function l5($){let q,Y=[],Q={cleanMode:!1,options:!0};return $.replace(/[^a-z]i/g,"").split("").forEach((X)=>{if(u5(X))q=X,Q.cleanMode=!0;else Q.options=Q.options&&c5(Y[Y.length]=`-${X}`)}),{cleanMode:q,options:Y,valid:Q}}function u5($){return $==="f"||$==="n"}function c5($){return/^-[a-z]$/i.test($)&&m0.has($.charAt(1))}function p5($){if(/^-[^\-]/.test($))return $.indexOf("i")>0;return $==="--interactive"}var f0,h0,g0,N$,m0,X6=L({"src/lib/tasks/clean.ts"(){h5(),D(),d(),f0="Git clean interactive mode is not supported",h0='Git clean mode parameter ("n" or "f") is required',g0="Git clean unknown option found in: ",N$=(($)=>{return $.DRY_RUN="n",$.FORCE="f",$.IGNORED_INCLUDED="x",$.IGNORED_ONLY="X",$.EXCLUDING="e",$.QUIET="q",$.RECURSIVE="d",$})(N$||{}),m0=new Set(["i",..._9(Object.values(N$))])}});function d5($){let q=new J6;for(let Y of H6($))q.addValue(Y.file,String(Y.key),Y.value);return q}function n5($,q){let Y=null,Q=[],X=new Map;for(let H of H6($,q)){if(H.key!==q)continue;if(Q.push(Y=H.value),!X.has(H.file))X.set(H.file,[]);X.get(H.file).push(Y)}return{key:q,paths:Array.from(X.keys()),scopes:X,value:Y,values:Q}}function o5($){return $.replace(/^(file):/,"")}function*H6($,q=null){let Y=$.split("\x00");for(let Q=0,X=Y.length-1;Q<X;){let H=o5(Y[Q++]),J=Y[Q++],W=q;if(J.includes(`
|
|
153
|
+
`)){let z=T2(J,`
|
|
154
|
+
`);W=z[0],J=z[1]}yield{file:H,key:W,value:J}}}var J6,i5=L({"src/lib/responses/ConfigList.ts"(){D(),J6=class{constructor(){this.files=[],this.values=Object.create(null)}get all(){if(!this._all)this._all=this.files.reduce(($,q)=>{return Object.assign($,this.values[q])},{});return this._all}addFile($){if(!($ in this.values)){let q=Y9(this.files);this.values[$]=q?Object.create(this.values[q]):{},this.files.push($)}return this.values[$]}addValue($,q,Y){let Q=this.addFile($);if(!Object.hasOwn(Q,q))Q[q]=Y;else if(Array.isArray(Q[q]))Q[q].push(Y);else Q[q]=[Q[q],Y];this._all=void 0}}}});function B0($,q){if(typeof $==="string"&&Object.hasOwn(O0,$))return $;return q}function a5($,q,Y,Q){let X=["config",`--${Q}`];if(Y)X.push("--add");return X.push($,q),{commands:X,format:"utf-8",parser(H){return H}}}function r5($,q){let Y=["config","--null","--show-origin","--get-all",$];if(q)Y.splice(1,0,`--${q}`);return{commands:Y,format:"utf-8",parser(Q){return n5(Q,$)}}}function s5($){let q=["config","--list","--show-origin","--null"];if($)q.push(`--${$}`);return{commands:q,format:"utf-8",parser(Y){return d5(Y)}}}function t5(){return{addConfig($,q,...Y){return this._runTask(a5($,q,Y[0]===!0,B0(Y[1],"local")),p(arguments))},getConfig($,q){return this._runTask(r5($,B0(q,void 0)),p(arguments))},listConfig(...$){return this._runTask(s5(B0($[0],void 0)),p(arguments))}}}var O0,W6=L({"src/lib/tasks/config.ts"(){i5(),D(),O0=(($)=>{return $.system="system",$.global="global",$.local="local",$.worktree="worktree",$})(O0||{})}});function e5($){return z6.has($)}var U0,z6,V6=L({"src/lib/tasks/diff-name-status.ts"(){U0=(($)=>{return $.ADDED="A",$.COPIED="C",$.DELETED="D",$.MODIFIED="M",$.RENAMED="R",$.CHANGED="T",$.UNMERGED="U",$.UNKNOWN="X",$.BROKEN="B",$})(U0||{}),z6=new Set(Object.values(U0))}});function $Y(...$){return new U6().param(...$)}function qY($){let q=new Set,Y={};return Z0($,(Q)=>{let[X,H,J]=Q.split(P9);q.add(X),(Y[X]=Y[X]||[]).push({line:g(H),path:X,preview:J})}),{paths:q,results:Y}}function YY(){return{grep($){let q=p(arguments),Y=Q1(arguments);for(let X of B6)if(Y.includes(X))return this._runTask(X1(`git.grep: use of "${X}" is not supported.`),q);if(typeof $==="string")$=$Y().param($);let Q=["grep","--null","-n","--full-name",...Y,...$];return this._runTask({commands:Q,format:"utf-8",parser(X){return qY(X)}},q)}}}var B6,n9,e4,U6,K6=L({"src/lib/tasks/grep.ts"(){D(),d(),B6=["-h"],n9=Symbol("grepQuery"),U6=class{constructor(){this[e4]=[]}*[(e4=n9,Symbol.iterator)](){for(let $ of this[n9])yield $}and(...$){return $.length&&this[n9].push("--and","(",...o9($,"-e"),")"),this}param(...$){return this[n9].push(...o9($,"-e")),this}}}}),G6={};n(G6,{ResetMode:()=>E$,getResetMode:()=>XY,resetTask:()=>QY});function QY($,q){let Y=["reset"];if(M6($))Y.push(`--${$}`);return Y.push(...q),$1(Y)}function XY($){if(M6($))return $;switch(typeof $){case"string":case"undefined":return"soft"}return}function M6($){return typeof $==="string"&&j6.includes($)}var E$,j6,w6=L({"src/lib/tasks/reset.ts"(){D(),d(),E$=(($)=>{return $.MIXED="mixed",$.SOFT="soft",$.HARD="hard",$.MERGE="merge",$.KEEP="keep",$})(E$||{}),j6=_9(Object.values(E$))}});function HY(){return I$.default("simple-git")}function $2($,q,Y){if(!q||!String(q).replace(/\s*/,""))return!Y?$:(Q,...X)=>{$(Q,...X),Y(Q,...X)};return(Q,...X)=>{if($(`%s ${Q}`,q,...X),Y)Y(Q,...X)}}function JY($,q,{namespace:Y}){if(typeof $==="string")return $;let Q=q&&q.namespace||"";if(Q.startsWith(Y))return Q.substr(Y.length+1);return Q||Y}function l0($,q,Y,Q=HY()){let X=$&&`[${$}]`||"",H=[],J=typeof q==="string"?Q.extend(q):q,W=JY(z1(q,a),J,Q);return V(Y);function z(B,U){return x(H,l0($,W.replace(/^[^:]+/,B),U,Q))}function V(B){let U=B&&`[${B}]`||"",w=J&&$2(J,U)||Q9,K=$2(Q,`${X} ${U}`,w);return Object.assign(J?w:K,{label:$,sibling:z,info:K,step:V})}}var L6=L({"src/lib/git-logger.ts"(){D(),I$.default.formatters.L=($)=>String(T$($)?$.length:"-"),I$.default.formatters.B=($)=>{if(Buffer.isBuffer($))return $.toString("utf8");return t9($)}}}),F6,WY=L({"src/lib/runners/tasks-pending-queue.ts"(){c1(),L6(),F6=class ${constructor(q="GitExecutor"){this.logLabel=q,this._queue=new Map}withProgress(q){return this._queue.get(q)}createProgress(q){let Y=$.getName(q.commands[0]),Q=l0(this.logLabel,Y);return{task:q,logger:Q,name:Y}}push(q){let Y=this.createProgress(q);return Y.logger("Adding task to the queue, commands = %o",q.commands),this._queue.set(q,Y),Y}fatal(q){for(let[Y,{logger:Q}]of Array.from(this._queue.entries())){if(Y===q.task)Q.info("Failed %o",q),Q("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted");else Q.info("A fatal exception occurred in a previous task, the queue has been purged: %o",q.message);this.complete(Y)}if(this._queue.size!==0)throw Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(q){if(this.withProgress(q))this._queue.delete(q)}attempt(q){let Y=this.withProgress(q);if(!Y)throw new _1(void 0,"TasksPendingQueue: attempt called for an unknown task");return Y.logger("Starting task"),Y}static getName(q="empty"){return`task:${q}:${++$.counter}`}static{this.counter=0}}}});function q9($,q){return{method:y2($.commands)||"",commands:q}}function VY($,q){return(Y)=>{q("[ERROR] child process exception %o",Y),$.push(Buffer.from(String(Y.stack),"ascii"))}}function q2($,q,Y,Q){return(X)=>{Y("%s received %L bytes",q,X),Q("%B",X),$.push(X)}}var b0,BY=L({"src/lib/runners/git-executor-chain.ts"(){c1(),d(),D(),WY(),b0=class{constructor($,q,Y){this._executor=$,this._scheduler=q,this._plugins=Y,this._chain=Promise.resolve(),this._queue=new F6}get cwd(){return this._cwd||this._executor.cwd}set cwd($){this._cwd=$}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push($){return this._queue.push($),this._chain=this._chain.then(()=>this.attemptTask($))}async attemptTask($){let q=await this._scheduler.next(),Y=()=>this._queue.complete($);try{let{logger:Q}=this._queue.attempt($);return await(q6($)?this.attemptEmptyTask($,Q):this.attemptRemoteTask($,Q))}catch(Q){throw this.onFatalException($,Q)}finally{Y(),q()}}onFatalException($,q){let Y=q instanceof _1?Object.assign(q,{task:$}):new _1($,q&&String(q));return this._chain=Promise.resolve(),this._queue.fatal(Y),Y}async attemptRemoteTask($,q){let Y=this._plugins.exec("spawn.binary","",q9($,$.commands)),Q=this._plugins.exec("spawn.args",[...$.commands],q9($,$.commands)),X=await this.gitResponse($,Y,Q,this.outputHandler,q.step("SPAWN")),H=await this.handleTaskData($,Q,X,q.step("HANDLE"));if(q("passing response to task's parser as a %s",$.format),$6($))return E0($.parser,H);return E0($.parser,H.asStrings())}async attemptEmptyTask($,q){return q("empty task bypassing child process to call to task's parser"),$.parser(this)}handleTaskData($,q,Y,Q){let{exitCode:X,rejection:H,stdOut:J,stdErr:W}=Y;return new Promise((z,V)=>{Q("Preparing to handle process response exitCode=%d stdOut=",X);let{error:B}=this._plugins.exec("task.error",{error:H},{...q9($,q),...Y});if(B&&$.onError)return Q.info("exitCode=%s handling with custom error handler"),$.onError(Y,B,(U)=>{Q.info("custom error handler treated as success"),Q("custom error returned a %s",t9(U)),z(new v$(Array.isArray(U)?Buffer.concat(U):U,Buffer.concat(W)))},V);if(B)return Q.info("handling as error: exitCode=%s stdErr=%s rejection=%o",X,W.length,H),V(B);Q.info("retrieving task output complete"),z(new v$(Buffer.concat(J),Buffer.concat(W)))})}async gitResponse($,q,Y,Q,X){let H=X.sibling("output"),J=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},q9($,$.commands));return new Promise((W)=>{let z=[],V=[];X.info("%s %o",q,Y),X("%O",J);let B=this._beforeSpawn($,Y);if(B)return W({stdOut:z,stdErr:V,exitCode:9901,rejection:B});this._plugins.exec("spawn.before",void 0,{...q9($,Y),kill(w){B=w||B}});let U=zY(q,Y,J);if(U.stdout.on("data",q2(z,"stdOut",X,H.step("stdOut"))),U.stderr.on("data",q2(V,"stdErr",X,H.step("stdErr"))),U.on("error",VY(V,X)),Q)X("Passing child process stdOut/stdErr to custom outputHandler"),Q(q,U.stdout,U.stderr,[...Y]);this._plugins.exec("spawn.after",void 0,{...q9($,Y),spawned:U,close(w,K){W({stdOut:z,stdErr:V,exitCode:w,rejection:B||K})},kill(w){if(U.killed)return;B=w,U.kill("SIGINT")}})})}_beforeSpawn($,q){let Y;return this._plugins.exec("spawn.before",void 0,{...q9($,q),kill(Q){Y=Q||Y}}),Y}}}}),N6={};n(N6,{GitExecutor:()=>E6});var E6,UY=L({"src/lib/runners/git-executor.ts"(){BY(),E6=class{constructor($,q,Y){this.cwd=$,this._scheduler=q,this._plugins=Y,this._chain=new b0(this,this._scheduler,this._plugins)}chain(){return new b0(this,this._scheduler,this._plugins)}push($){return this._chain.push($)}}}});function KY($,q,Y=Q9){let Q=(H)=>{Y(null,H)},X=(H)=>{if(H?.task===$)Y(H instanceof r9?GY(H):H,void 0)};q.then(Q,X)}function GY($){let q=(Q)=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${Q} should be GitResponseError.git.${Q}, this will no longer be available in version 3`),q=Q9};return Object.create($,Object.getOwnPropertyNames($.git).reduce(Y,{}));function Y(Q,X){if(X in $)return Q;return Q[X]={enumerable:!1,configurable:!1,get(){return q(X),$.git[X]}},Q}}var MY=L({"src/lib/task-callback.ts"(){Z9(),D()}});function Y2($,q){return t2((Y)=>{if(!_0($))throw Error(`Git.cwd: cannot change to non-directory "${$}"`);return(q||Y).cwd=$})}var jY=L({"src/lib/tasks/change-working-directory.ts"(){D(),d()}});function K0($){let q=["checkout",...$];if(q[1]==="-b"&&q.includes("-B"))q[1]=P$(q,"-B");return $1(q)}function wY(){return{checkout(){return this._runTask(K0(Q1(arguments,1)),p(arguments))},checkoutBranch($,q){return this._runTask(K0(["-b",$,q,...Q1(arguments)]),p(arguments))},checkoutLocalBranch($){return this._runTask(K0(["-b",$,...Q1(arguments)]),p(arguments))}}}var LY=L({"src/lib/tasks/checkout.ts"(){D(),d()}});function FY(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function NY(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser($){return H1(FY(),[R6],$)}})}}}var R6,EY=L({"src/lib/tasks/count-objects.ts"(){D(),R6=new S(/([a-z-]+): (\d+)$/,($,[q,Y])=>{let Q=f2(q);if(Object.hasOwn($,Q))$[Q]=g(Y)})}});function RY($){return H1({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},A6,$)}var A6,AY=L({"src/lib/parsers/parse-commit.ts"(){D(),A6=[new S(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,($,[q,Y,Q])=>{$.branch=q,$.commit=Q,$.root=!!Y}),new S(/\s*Author:\s(.+)/i,($,[q])=>{let Y=q.split("<"),Q=Y.pop();if(!Q||!Q.includes("@"))return;$.author={email:Q.substr(0,Q.length-1),name:Y.join("<").trim()}}),new S(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,($,[q,Y,Q])=>{$.summary.changes=parseInt(q,10)||0,$.summary.insertions=parseInt(Y,10)||0,$.summary.deletions=parseInt(Q,10)||0}),new S(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,($,[q,Y,Q])=>{$.summary.changes=parseInt(q,10)||0;let X=parseInt(Y,10)||0;if(Q==="-")$.summary.deletions=X;else if(Q==="+")$.summary.insertions=X})]}});function OY($,q,Y){return{commands:["-c","core.abbrev=40","commit",...o9($,"-m"),...q,...Y],format:"utf-8",parser:RY}}function bY(){return{commit(q,...Y){let Q=p(arguments),X=$(q)||OY(O1(q),O1(z1(Y[0],b$,[])),[..._9(z1(Y[1],e9,[])),...Q1(arguments,0,!0)]);return this._runTask(X,Q)}};function $(q){return!b$(q)&&X1("git.commit: requires the commit message to be supplied as a string/string[]")}}var vY=L({"src/lib/tasks/commit.ts"(){AY(),D(),d()}});function IY(){return{firstCommit(){return this._runTask($1(["rev-list","--max-parents=0","HEAD"],!0),p(arguments))}}}var DY=L({"src/lib/tasks/first-commit.ts"(){D(),d()}});function SY($,q){let Y=["hash-object",$];if(q)Y.push("-w");return $1(Y,!0)}var CY=L({"src/lib/tasks/hash-object.ts"(){d()}});function PY($,q,Y){let Q=String(Y).trim(),X;if(X=O6.exec(Q))return new R$($,q,!1,X[1]);if(X=b6.exec(Q))return new R$($,q,!0,X[1]);let H="",J=Q.split(" ");while(J.length)if(J.shift()==="in"){H=J.join(" ");break}return new R$($,q,/^re/i.test(Q),H)}var R$,O6,b6,ZY=L({"src/lib/responses/InitSummary.ts"(){R$=class{constructor($,q,Y,Q){this.bare=$,this.path=q,this.existing=Y,this.gitDir=Q}},O6=/^Init.+ repository in (.+)$/,b6=/^Rein.+ in (.+)$/}});function _Y($){return $.includes(u0)}function TY($=!1,q,Y){let Q=["init",...Y];if($&&!_Y(Q))Q.splice(1,0,u0);return{commands:Q,format:"utf-8",parser(X){return PY(Q.includes("--bare"),q,X)}}}var u0,yY=L({"src/lib/tasks/init.ts"(){ZY(),u0="--bare"}});function c0($){for(let q=0;q<$.length;q++){let Y=p0.exec($[q]);if(Y)return`--${Y[1]}`}return""}function kY($){return p0.test($)}var p0,$$=L({"src/lib/args/log-format.ts"(){p0=/^--(stat|numstat|name-only|name-status)(=|$)/}}),v6,xY=L({"src/lib/responses/DiffSummary.ts"(){v6=class{constructor(){this.changed=0,this.deletions=0,this.insertions=0,this.files=[]}}}});function I6($=""){let q=D6[$];return(Y)=>H1(new v6,q,Y,!1)}var G0,Q2,X2,H2,D6,S6=L({"src/lib/parsers/parse-diff-summary.ts"(){$$(),xY(),V6(),D(),G0=[new S(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,($,[q,Y,Q=""])=>{$.files.push({file:q.trim(),changes:g(Y),insertions:Q.replace(/[^+]/g,"").length,deletions:Q.replace(/[^-]/g,"").length,binary:!1})}),new S(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,($,[q,Y,Q])=>{$.files.push({file:q.trim(),before:g(Y),after:g(Q),binary:!0})}),new S(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,($,[q,Y])=>{let Q=/(\d+) i/.exec(Y),X=/(\d+) d/.exec(Y);$.changed=g(q),$.insertions=g(Q?.[1]),$.deletions=g(X?.[1])})],Q2=[new S(/(\d+)\t(\d+)\t(.+)$/,($,[q,Y,Q])=>{let X=g(q),H=g(Y);$.changed++,$.insertions+=X,$.deletions+=H,$.files.push({file:Q,changes:X+H,insertions:X,deletions:H,binary:!1})}),new S(/-\t-\t(.+)$/,($,[q])=>{$.changed++,$.files.push({file:q,after:0,before:0,binary:!0})})],X2=[new S(/(.+)$/,($,[q])=>{$.changed++,$.files.push({file:q,changes:0,insertions:0,deletions:0,binary:!1})})],H2=[new S(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,($,[q,Y,Q,X,H])=>{$.changed++,$.files.push({file:H??Q,changes:0,insertions:0,deletions:0,binary:!1,status:L0(e5(q)&&q),from:L0(!!H&&Q!==H&&Q),similarity:g(Y)})})],D6={[""]:G0,["--stat"]:G0,["--numstat"]:Q2,["--name-status"]:H2,["--name-only"]:X2}}});function fY($,q){return q.reduce((Y,Q,X)=>{return Y[Q]=$[X]||"",Y},Object.create({diff:null}))}function C6($=o0,q=P6,Y=""){let Q=I6(Y);return function(X){let H=s9(X.trim(),!1,d0).map(function(J){let W=J.split(n0),z=fY(W[0].split($),q);if(W.length>1&&!!W[1].trim())z.diff=Q(W[1]);return z});return{all:H,latest:H.length&&H[0]||null,total:H.length}}}var d0,n0,o0,P6,Z6=L({"src/lib/parsers/parse-list-log-summary.ts"(){D(),S6(),$$(),d0="\xF2\xF2\xF2\xF2\xF2\xF2 ",n0=" \xF2\xF2",o0=" \xF2 ",P6=["hash","date","message","refs","author_name","author_email"]}}),_6={};n(_6,{diffSummaryTask:()=>hY,validateLogFormatConfig:()=>x$});function hY($){let q=c0($),Y=["diff"];if(q==="")q="--stat",Y.push("--stat=4096");return Y.push(...$),x$(Y)||{commands:Y,format:"utf-8",parser:I6(q)}}function x$($){let q=$.filter(kY);if(q.length>1)return X1(`Summary flags are mutually exclusive - pick one of ${q.join(",")}`);if(q.length&&$.includes("-z"))return X1(`Summary flag ${q} parsing is not compatible with null termination option '-z'`)}var i0=L({"src/lib/tasks/diff.ts"(){$$(),S6(),d()}});function gY($,q){let Y=[],Q=[];return Object.keys($).forEach((X)=>{Y.push(X),Q.push(String($[X]))}),[Y,Q.join(q)]}function mY($){return Object.keys($).reduce((q,Y)=>{if(!(Y in v0))q[Y]=$[Y];return q},{})}function T6($={},q=[]){let Y=z1($.splitter,a,o0),Q=_$($.format)?$.format:{hash:"%H",date:$.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:$.multiLine?"%B":"%b",author_name:$.mailMap!==!1?"%aN":"%an",author_email:$.mailMap!==!1?"%aE":"%ae"},[X,H]=gY(Q,Y),J=[],W=[`--pretty=format:${d0}${H}${n0}`,...q],z=$.n||$["max-count"]||$.maxCount;if(z)W.push(`--max-count=${z}`);if($.from||$.to){let V=$.symmetric!==!1?"...":"..";J.push(`${$.from||""}${V}${$.to||""}`)}if(a($.file))W.push("--follow",v5($.file));return y0(mY($),W),{fields:X,splitter:Y,commands:[...W,...J]}}function lY($,q,Y){let Q=C6($,q,c0(Y));return{commands:["log",...Y],format:"utf-8",parser:Q}}function uY(){return{log(...Y){let Q=p(arguments),X=T6(k0(arguments),_9(z1(arguments[0],e9,[]))),H=q(...Y)||x$(X.commands)||$(X);return this._runTask(H,Q)}};function $(Y){return lY(Y.splitter,Y.fields,Y.commands)}function q(Y,Q){return a(Y)&&a(Q)&&X1("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}var v0,y6=L({"src/lib/tasks/log.ts"(){$$(),a9(),Z6(),D(),d(),i0(),v0=(($)=>{return $[$["--pretty"]=0]="--pretty",$[$["max-count"]=1]="max-count",$[$.maxCount=2]="maxCount",$[$.n=3]="n",$[$.file=4]="file",$[$.format=5]="format",$[$.from=6]="from",$[$.to=7]="to",$[$.splitter=8]="splitter",$[$.symmetric=9]="symmetric",$[$.mailMap=10]="mailMap",$[$.multiLine=11]="multiLine",$[$.strictDate=12]="strictDate",$})(v0||{})}}),A$,k6,cY=L({"src/lib/responses/MergeSummary.ts"(){A$=class{constructor($,q=null,Y){this.reason=$,this.file=q,this.meta=Y}toString(){return`${this.file}:${this.reason}`}},k6=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){if(this.conflicts.length)return`CONFLICTS: ${this.conflicts.join(", ")}`;return"OK"}}}}),I0,x6,pY=L({"src/lib/responses/PullSummary.ts"(){I0=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},x6=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function M0($){return $.objects=$.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function J2($){let q=/^\s*(\d+)/.exec($),Y=/delta (\d+)/i.exec($);return{count:g(q&&q[1]||"0"),delta:g(Y&&Y[1]||"0")}}var f6,dY=L({"src/lib/parsers/parse-remote-objects.ts"(){D(),f6=[new u1(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,($,[q,Y])=>{let Q=q.toLowerCase(),X=M0($.remoteMessages);Object.assign(X,{[Q]:g(Y)})}),new u1(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,($,[q,Y])=>{let Q=q.toLowerCase(),X=M0($.remoteMessages);Object.assign(X,{[Q]:g(Y)})}),new u1(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,($,[q,Y,Q])=>{let X=M0($.remoteMessages);X.total=J2(q),X.reused=J2(Y),X.packReused=g(Q)})]}});function h6($,q){return H1({remoteMessages:new m6},g6,q)}var g6,m6,l6=L({"src/lib/parsers/parse-remote-messages.ts"(){D(),dY(),g6=[new u1(/^remote:\s*(.+)$/,($,[q])=>{return $.remoteMessages.all.push(q.trim()),!1}),...f6,new u1([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],($,[q])=>{$.remoteMessages.pullRequestUrl=q}),new u1([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],($,[q,Y,Q])=>{$.remoteMessages.vulnerabilities={count:g(q),summary:Y,url:Q}})],m6=class{constructor(){this.all=[]}}}});function nY($,q){let Y=H1(new x6,u6,[$,q]);return Y.message&&Y}var W2,z2,V2,B2,u6,U2,a0,c6=L({"src/lib/parsers/parse-pull.ts"(){pY(),D(),l6(),W2=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,z2=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,V2=/^(create|delete) mode \d+ (.+)/,B2=[new S(W2,($,[q,Y,Q])=>{if($.files.push(q),Y)$.insertions[q]=Y.length;if(Q)$.deletions[q]=Q.length}),new S(z2,($,[q,,Y,,Q])=>{if(Y!==void 0||Q!==void 0)return $.summary.changes=+q||0,$.summary.insertions=+Y||0,$.summary.deletions=+Q||0,!0;return!1}),new S(V2,($,[q,Y])=>{x($.files,Y),x(q==="create"?$.created:$.deleted,Y)})],u6=[new S(/^from\s(.+)$/i,($,[q])=>void($.remote=q)),new S(/^fatal:\s(.+)$/,($,[q])=>void($.message=q)),new S(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,($,[q,Y,Q,X])=>{$.branch.local=Q,$.hash.local=q,$.branch.remote=X,$.hash.remote=Y})],U2=($,q)=>{return H1(new I0,B2,[$,q])},a0=($,q)=>{return Object.assign(new I0,U2($,q),h6($,q))}}}),K2,p6,G2,oY=L({"src/lib/parsers/parse-merge.ts"(){cY(),D(),c6(),K2=[new S(/^Auto-merging\s+(.+)$/,($,[q])=>{$.merges.push(q)}),new S(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,($,[q,Y])=>{$.conflicts.push(new A$(q,Y))}),new S(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,($,[q,Y,Q])=>{$.conflicts.push(new A$(q,Y,{deleteRef:Q}))}),new S(/^CONFLICT\s+\((.+)\):/,($,[q])=>{$.conflicts.push(new A$(q,null))}),new S(/^Automatic merge failed;\s+(.+)$/,($,[q])=>{$.result=q})],p6=($,q)=>{return Object.assign(G2($,q),a0($,q))},G2=($)=>{return H1(new k6,K2,$)}}});function M2($){if(!$.length)return X1("Git.merge requires at least one option");return{commands:["merge",...$],format:"utf-8",parser(q,Y){let Q=p6(q,Y);if(Q.failed)throw new r9(Q);return Q}}}var iY=L({"src/lib/tasks/merge.ts"(){Z9(),oY(),d()}});function aY($,q,Y){let Q=Y.includes("deleted"),X=Y.includes("tag")||/^refs\/tags/.test($),H=!Y.includes("new");return{deleted:Q,tag:X,branch:!X,new:!H,alreadyUpdated:H,local:$,remote:q}}var j2,d6,w2,rY=L({"src/lib/parsers/parse-push.ts"(){D(),l6(),j2=[new S(/^Pushing to (.+)$/,($,[q])=>{$.repo=q}),new S(/^updating local tracking ref '(.+)'/,($,[q])=>{$.ref={...$.ref||{},local:q}}),new S(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,($,[q,Y,Q])=>{$.pushed.push(aY(q,Y,Q))}),new S(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,($,[q,Y,Q])=>{$.branch={...$.branch||{},local:q,remote:Y,remoteName:Q}}),new S(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,($,[q,Y,Q,X])=>{$.update={head:{local:q,remote:Y},hash:{from:Q,to:X}}})],d6=($,q)=>{let Y=w2($,q),Q=h6($,q);return{...Y,...Q}},w2=($,q)=>{return H1({pushed:[]},j2,[$,q])}}}),n6={};n(n6,{pushTagsTask:()=>sY,pushTask:()=>r0});function sY($={},q){return x(q,"--tags"),r0($,q)}function r0($={},q){let Y=["push",...q];if($.branch)Y.splice(1,0,$.branch);if($.remote)Y.splice(1,0,$.remote);return P$(Y,"-v"),x(Y,"--verbose"),x(Y,"--porcelain"),{commands:Y,format:"utf-8",parser:d6}}var o6=L({"src/lib/tasks/push.ts"(){rY(),D()}});function tY(){return{showBuffer(){let $=["show",...Q1(arguments,1)];if(!$.includes("--binary"))$.splice(1,0,"--binary");return this._runTask(e2($),p(arguments))},show(){let $=["show",...Q1(arguments,1)];return this._runTask($1($),p(arguments))}}}var eY=L({"src/lib/tasks/show.ts"(){D(),d()}}),L2,i6,$Q=L({"src/lib/responses/FileStatusSummary.ts"(){L2=/^(.+)\0(.+)$/,i6=class{constructor($,q,Y){if(this.path=$,this.index=q,this.working_dir=Y,q==="R"||Y==="R"){let Q=L2.exec($)||[null,$,$];this.from=Q[2]||"",this.path=Q[1]||""}}}}});function F2($){let[q,Y]=$.split(P9);return{from:Y||q,to:q}}function W1($,q,Y){return[`${$}${q}`,Y]}function j0($,...q){return q.map((Y)=>W1($,Y,(Q,X)=>x(Q.conflicted,X)))}function qQ($,q){let Y=q.trim();switch(" "){case Y.charAt(2):return Q(Y.charAt(0),Y.charAt(1),Y.substr(3));case Y.charAt(1):return Q(" ",Y.charAt(0),Y.substr(2));default:return}function Q(X,H,J){let W=`${X}${H}`,z=a6.get(W);if(z)z($,J);if(W!=="##"&&W!=="!!")$.files.push(new i6(J,X,H))}}var N2,a6,r6,YQ=L({"src/lib/responses/StatusSummary.ts"(){D(),$Q(),N2=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>{return!this.files.length}}},a6=new Map([W1(" ","A",($,q)=>x($.created,q)),W1(" ","D",($,q)=>x($.deleted,q)),W1(" ","M",($,q)=>x($.modified,q)),W1("A"," ",($,q)=>x($.created,q)&&x($.staged,q)),W1("A","M",($,q)=>x($.created,q)&&x($.staged,q)&&x($.modified,q)),W1("D"," ",($,q)=>x($.deleted,q)&&x($.staged,q)),W1("M"," ",($,q)=>x($.modified,q)&&x($.staged,q)),W1("M","M",($,q)=>x($.modified,q)&&x($.staged,q)),W1("R"," ",($,q)=>{x($.renamed,F2(q))}),W1("R","M",($,q)=>{let Y=F2(q);x($.renamed,Y),x($.modified,Y.to)}),W1("!","!",($,q)=>{x($.ignored=$.ignored||[],q)}),W1("?","?",($,q)=>x($.not_added,q)),...j0("A","A","U"),...j0("D","D","U"),...j0("U","A","D","U"),["##",($,q)=>{let Y=/ahead (\d+)/,Q=/behind (\d+)/,X=/^(.+?(?=(?:\.{3}|\s|$)))/,H=/\.{3}(\S*)/,J=/\son\s(\S+?)(?=\.{3}|$)/,W=Y.exec(q);if($.ahead=W&&+W[1]||0,W=Q.exec(q),$.behind=W&&+W[1]||0,W=X.exec(q),$.current=z1(W?.[1],a,null),W=H.exec(q),$.tracking=z1(W?.[1],a,null),W=J.exec(q),W)$.current=z1(W?.[1],a,$.current);$.detached=/\(no branch\)/.test(q)}]]),r6=function($){let q=$.split(P9),Y=new N2;for(let Q=0,X=q.length;Q<X;){let H=q[Q++].trim();if(!H)continue;if(H.charAt(0)==="R")H+=P9+(q[Q++]||"");qQ(Y,H)}return Y}}});function QQ($){return{format:"utf-8",commands:["status","--porcelain","-b","-u","--null",...$.filter((Y)=>!s6.includes(Y))],parser(Y){return r6(Y)}}}var s6,XQ=L({"src/lib/tasks/status.ts"(){YQ(),s6=["--null","-z"]}});function D$($=0,q=0,Y=0,Q="",X=!0){return Object.defineProperty({major:$,minor:q,patch:Y,agent:Q,installed:X},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function HQ(){return D$(0,0,0,"",!1)}function JQ(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:WQ,onError($,q,Y,Q){if($.exitCode===-2)return Y(Buffer.from(s0));Q(q)}})}}}function WQ($){if($===s0)return HQ();return H1(D$(0,0,0,$),t6,$)}var s0,t6,zQ=L({"src/lib/tasks/version.ts"(){D(),s0="installed=false",t6=[new S(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,($,[q,Y,Q,X=""])=>{Object.assign($,D$(g(q),g(Y),g(Q),X))}),new S(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,($,[q,Y,Q,X=""])=>{Object.assign($,D$(g(q),g(Y),Q,X))})]}}),e6={};n(e6,{SimpleGitApi:()=>D0});var D0,VQ=L({"src/lib/simple-git-api.ts"(){MY(),jY(),LY(),EY(),vY(),W6(),DY(),K6(),CY(),yY(),y6(),iY(),o6(),eY(),XQ(),d(),zQ(),D(),D0=class{constructor($){this._executor=$}_runTask($,q){let Y=this._executor.chain(),Q=Y.push($);if(q)KY($,Q,q);return Object.create(this,{then:{value:Q.then.bind(Q)},catch:{value:Q.catch.bind(Q)},_executor:{value:Y}})}add($){return this._runTask($1(["add",...O1($)]),p(arguments))}cwd($){let q=p(arguments);if(typeof $==="string")return this._runTask(Y2($,this._executor),q);if(typeof $?.path==="string")return this._runTask(Y2($.path,$.root&&this._executor||void 0),q);return this._runTask(X1("Git.cwd: workingDirectory must be supplied as a string"),q)}hashObject($,q){return this._runTask(SY($,q===!0),p(arguments))}init($){return this._runTask(TY($===!0,this._executor.cwd,Q1(arguments)),p(arguments))}merge(){return this._runTask(M2(Q1(arguments)),p(arguments))}mergeFromTo($,q){if(!(a($)&&a(q)))return this._runTask(X1("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"));return this._runTask(M2([$,q,...Q1(arguments)]),p(arguments,!1))}outputHandler($){return this._executor.outputHandler=$,this}push(){let $=r0({remote:z1(arguments[0],a),branch:z1(arguments[1],a)},Q1(arguments));return this._runTask($,p(arguments))}stash(){return this._runTask($1(["stash",...Q1(arguments)]),p(arguments))}status(){return this._runTask(QQ(Q1(arguments)),p(arguments))}},Object.assign(D0.prototype,wY(),bY(),t5(),NY(),IY(),YY(),uY(),tY(),JQ())}}),$8={};n($8,{Scheduler:()=>Y8});var E2,Y8,BQ=L({"src/lib/runners/scheduler.ts"(){D(),L6(),E2=(()=>{let $=0;return()=>{$++;let{promise:q,done:Y}=q8.createDeferred();return{promise:q,done:Y,id:$}}})(),Y8=class{constructor($=2){this.concurrency=$,this.logger=l0("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",$)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let $=x(this.running,this.pending.shift());this.logger("Attempting id=%s",$.id),$.done(()=>{this.logger("Completing id=",$.id),P$(this.running,$),this.schedule()})}next(){let{promise:$,id:q}=x(this.pending,E2());return this.logger("Scheduling id=%s",q),this.schedule(),$}}}}),Q8={};n(Q8,{applyPatchTask:()=>UQ});function UQ($,q){return $1(["apply",...q,...$])}var KQ=L({"src/lib/tasks/apply-patch.ts"(){d()}});function GQ($,q){return{branch:$,hash:q,success:!0}}function MQ($){return{branch:$,hash:null,success:!1}}var X8,jQ=L({"src/lib/responses/BranchDeleteSummary.ts"(){X8=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function H8($,q){return q===1&&S0.test($)}var R2,S0,A2,f$,wQ=L({"src/lib/parsers/parse-branch-delete.ts"(){jQ(),D(),R2=/(\S+)\s+\(\S+\s([^)]+)\)/,S0=/^error[^']+'([^']+)'/m,A2=[new S(R2,($,[q,Y])=>{let Q=GQ(q,Y);$.all.push(Q),$.branches[q]=Q}),new S(S0,($,[q])=>{let Y=MQ(q);$.errors.push(Y),$.all.push(Y),$.branches[q]=Y})],f$=($,q)=>{return H1(new X8,A2,[$,q])}}}),J8,LQ=L({"src/lib/responses/BranchSummary.ts"(){J8=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push($,q,Y,Q,X){if($==="*")this.detached=q,this.current=Y;this.all.push(Y),this.branches[Y]={current:$==="*",linkedWorkTree:$==="+",name:Y,commit:Q,label:X}}}}});function O2($){return $?$.charAt(0):""}function W8($,q=!1){return H1(new J8,q?[V8]:z8,$)}var z8,V8,FQ=L({"src/lib/parsers/parse-branch.ts"(){LQ(),D(),z8=[new S(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,($,[q,Y,Q,X])=>{$.push(O2(q),!0,Y,Q,X)}),new S(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,($,[q,Y,Q,X])=>{$.push(O2(q),!1,Y,Q,X)})],V8=new S(/^(\S+)$/s,($,[q])=>{$.push("*",!1,q,"","")})}}),B8={};n(B8,{branchLocalTask:()=>EQ,branchTask:()=>NQ,containsDeleteBranchCommand:()=>U8,deleteBranchTask:()=>AQ,deleteBranchesTask:()=>RQ});function U8($){let q=["-d","-D","--delete"];return $.some((Y)=>q.includes(Y))}function NQ($){let q=U8($),Y=$.includes("--show-current"),Q=["branch",...$];if(Q.length===1)Q.push("-a");if(!Q.includes("-v"))Q.splice(1,0,"-v");return{format:"utf-8",commands:Q,parser(X,H){if(q)return f$(X,H).all[0];return W8(X,Y)}}}function EQ(){return{format:"utf-8",commands:["branch","-v"],parser($){return W8($)}}}function RQ($,q=!1){return{format:"utf-8",commands:["branch","-v",q?"-D":"-d",...$],parser(Y,Q){return f$(Y,Q)},onError({exitCode:Y,stdOut:Q},X,H,J){if(!H8(String(X),Y))return J(X);H(Q)}}}function AQ($,q=!1){let Y={format:"utf-8",commands:["branch","-v",q?"-D":"-d",$],parser(Q,X){return f$(Q,X).branches[$]},onError({exitCode:Q,stdErr:X,stdOut:H},J,W,z){if(!H8(String(J),Q))return z(J);throw new r9(Y.parser(i9(H),i9(X)),String(J))}};return Y}var OQ=L({"src/lib/tasks/branch.ts"(){Z9(),wQ(),FQ(),D()}});function vQ($){let q=$.trim().replace(/^["']|["']$/g,"");return q&&bQ(q)}var K8,IQ=L({"src/lib/responses/CheckIgnore.ts"(){K8=($)=>{return $.split(/\n/g).map(vQ).filter(Boolean)}}}),G8={};n(G8,{checkIgnoreTask:()=>DQ});function DQ($){return{commands:["check-ignore",...$],format:"utf-8",parser:K8}}var SQ=L({"src/lib/tasks/check-ignore.ts"(){IQ()}}),M8={};n(M8,{cloneMirrorTask:()=>PQ,cloneTask:()=>j8});function CQ($){return/^--upload-pack(=|$)/.test($)}function j8($,q,Y){let Q=["clone",...Y];if(a($)&&Q.push($),a(q)&&Q.push(q),Q.find(CQ))return X1("git.fetch: potential exploit argument blocked.");return $1(Q)}function PQ($,q,Y){return x(Y,"--mirror"),j8($,q,Y)}var ZQ=L({"src/lib/tasks/clone.ts"(){d(),D()}});function _Q($,q){return H1({raw:$,remote:null,branches:[],tags:[],updated:[],deleted:[]},w8,[$,q])}var w8,TQ=L({"src/lib/parsers/parse-fetch.ts"(){D(),w8=[new S(/From (.+)$/,($,[q])=>{$.remote=q}),new S(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,($,[q,Y])=>{$.branches.push({name:q,tracking:Y})}),new S(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,($,[q,Y])=>{$.tags.push({name:q,tracking:Y})}),new S(/- \[deleted]\s+\S+\s*-> (.+)$/,($,[q])=>{$.deleted.push({tracking:q})}),new S(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,($,[q,Y,Q,X])=>{$.updated.push({name:Q,tracking:X,to:Y,from:q})})]}}),L8={};n(L8,{fetchTask:()=>kQ});function yQ($){return/^--upload-pack(=|$)/.test($)}function kQ($,q,Y){let Q=["fetch",...Y];if($&&q)Q.push($,q);if(Q.find(yQ))return X1("git.fetch: potential exploit argument blocked.");return{commands:Q,format:"utf-8",parser:_Q}}var xQ=L({"src/lib/tasks/fetch.ts"(){TQ(),d()}});function fQ($){return H1({moves:[]},F8,$)}var F8,hQ=L({"src/lib/parsers/parse-move.ts"(){D(),F8=[new S(/^Renaming (.+) to (.+)$/,($,[q,Y])=>{$.moves.push({from:q,to:Y})})]}}),N8={};n(N8,{moveTask:()=>gQ});function gQ($,q){return{commands:["mv","-v",...O1($),q],format:"utf-8",parser:fQ}}var mQ=L({"src/lib/tasks/move.ts"(){hQ(),D()}}),E8={};n(E8,{pullTask:()=>lQ});function lQ($,q,Y){let Q=["pull",...Y];if($&&q)Q.splice(1,0,$,q);return{commands:Q,format:"utf-8",parser(X,H){return a0(X,H)},onError(X,H,J,W){let z=nY(i9(X.stdOut),i9(X.stdErr));if(z)return W(new r9(z));W(H)}}}var uQ=L({"src/lib/tasks/pull.ts"(){Z9(),c6(),D()}});function cQ($){let q={};return R8($,([Y])=>q[Y]={name:Y}),Object.values(q)}function pQ($){let q={};return R8($,([Y,Q,X])=>{if(!Object.hasOwn(q,Y))q[Y]={name:Y,refs:{fetch:"",push:""}};if(X&&Q)q[Y].refs[X.replace(/[^a-z]/g,"")]=Q}),Object.values(q)}function R8($,q){Z0($,(Y)=>q(Y.split(/\s+/)))}var dQ=L({"src/lib/responses/GetRemoteSummary.ts"(){D()}}),A8={};n(A8,{addRemoteTask:()=>nQ,getRemotesTask:()=>oQ,listRemotesTask:()=>iQ,remoteTask:()=>aQ,removeRemoteTask:()=>rQ});function nQ($,q,Y){return $1(["remote","add",...Y,$,q])}function oQ($){let q=["remote"];if($)q.push("-v");return{commands:q,format:"utf-8",parser:$?pQ:cQ}}function iQ($){let q=[...$];if(q[0]!=="ls-remote")q.unshift("ls-remote");return $1(q)}function aQ($){let q=[...$];if(q[0]!=="remote")q.unshift("remote");return $1(q)}function rQ($){return $1(["remote","remove",$])}var sQ=L({"src/lib/tasks/remote.ts"(){dQ(),d()}}),O8={};n(O8,{stashListTask:()=>tQ});function tQ($={},q){let Y=T6($),Q=["stash","list",...Y.commands,...q],X=C6(Y.splitter,Y.fields,c0(Q));return x$(Q)||{commands:Q,format:"utf-8",parser:X}}var eQ=L({"src/lib/tasks/stash-list.ts"(){$$(),Z6(),i0(),y6()}}),b8={};n(b8,{addSubModuleTask:()=>$X,initSubModuleTask:()=>qX,subModuleTask:()=>h$,updateSubModuleTask:()=>YX});function $X($,q){return h$(["add",$,q])}function qX($){return h$(["init",...$])}function h$($){let q=[...$];if(q[0]!=="submodule")q.unshift("submodule");return $1(q)}function YX($){return h$(["update",...$])}var QX=L({"src/lib/tasks/sub-module.ts"(){d()}});function XX($,q){let Y=Number.isNaN($),Q=Number.isNaN(q);if(Y!==Q)return Y?1:-1;return Y?v8($,q):0}function v8($,q){return $===q?0:$>q?1:-1}function HX($){return $.trim()}function F$($){if(typeof $==="string")return parseInt($.replace(/^\D+/g,""),10)||0;return 0}var b2,I8,JX=L({"src/lib/responses/TagList.ts"(){b2=class{constructor($,q){this.all=$,this.latest=q}},I8=function($,q=!1){let Y=$.split(`
|
|
155
|
+
`).map(HX).filter(Boolean);if(!q)Y.sort(function(X,H){let J=X.split("."),W=H.split(".");if(J.length===1||W.length===1)return XX(F$(J[0]),F$(W[0]));for(let z=0,V=Math.max(J.length,W.length);z<V;z++){let B=v8(F$(J[z]),F$(W[z]));if(B)return B}return 0});let Q=q?Y[0]:[...Y].reverse().find((X)=>X.indexOf(".")>=0);return new b2(Y,Q)}}}),D8={};n(D8,{addAnnotatedTagTask:()=>VX,addTagTask:()=>zX,tagListTask:()=>WX});function WX($=[]){let q=$.some((Y)=>/^--sort=/.test(Y));return{format:"utf-8",commands:["tag","-l",...$],parser(Y){return I8(Y,q)}}}function zX($){return{format:"utf-8",commands:["tag",$],parser(){return{name:$}}}}function VX($,q){return{format:"utf-8",commands:["tag","-a","-m",q,$],parser(){return{name:$}}}}var BX=L({"src/lib/tasks/tag.ts"(){JX()}}),UX=O5({"src/git.js"($,q){var{GitExecutor:Y}=(UY(),c(N6)),{SimpleGitApi:Q}=(VQ(),c(e6)),{Scheduler:X}=(BQ(),c($8)),{configurationErrorTask:H}=(d(),c(A0)),{asArray:J,filterArray:W,filterPrimitives:z,filterString:V,filterStringOrStringArray:B,filterType:U,getTrailingOptions:w,trailingFunctionArgument:K,trailingOptionsArgument:P}=(D(),c(c2)),{applyPatchTask:E}=(KQ(),c(Q8)),{branchTask:_,branchLocalTask:y,deleteBranchesTask:b,deleteBranchTask:o}=(OQ(),c(B8)),{checkIgnoreTask:l}=(SQ(),c(G8)),{checkIsRepoTask:y1}=(o2(),c(p2)),{cloneTask:V1,cloneMirrorTask:k1}=(ZQ(),c(M8)),{cleanWithOptionsTask:b1,isCleanOptionsArray:h}=(X6(),c(Y6)),{diffSummaryTask:B1}=(i0(),c(_6)),{fetchTask:i}=(xQ(),c(L8)),{moveTask:r}=(mQ(),c(N8)),{pullTask:X9}=(uQ(),c(E8)),{pushTagsTask:q1}=(o6(),c(n6)),{addRemoteTask:u,getRemotesTask:d1,listRemotesTask:T9,remoteTask:U1,removeRemoteTask:Q$}=(sQ(),c(A8)),{getResetMode:y8,resetTask:k8}=(w6(),c(G6)),{stashListTask:x8}=(eQ(),c(O8)),{addSubModuleTask:f8,initSubModuleTask:h8,subModuleTask:g8,updateSubModuleTask:m8}=(QX(),c(b8)),{addAnnotatedTagTask:l8,addTagTask:u8,tagListTask:c8}=(BX(),c(D8)),{straightThroughBufferTask:p8,straightThroughStringTask:F1}=(d(),c(A0));function v(M,R){this._plugins=R,this._executor=new Y(M.baseDir,new X(M.maxConcurrentProcesses),R),this._trimmed=M.trimmed}(v.prototype=Object.create(Q.prototype)).constructor=v,v.prototype.customBinary=function(M){return this._plugins.reconfigure("binary",M),this},v.prototype.env=function(M,R){if(arguments.length===1&&typeof M==="object")this._executor.env=M;else(this._executor.env=this._executor.env||{})[M]=R;return this},v.prototype.stashList=function(M){return this._runTask(x8(P(arguments)||{},W(M)&&M||[]),K(arguments))};function H4(M,R,f,e){if(typeof f!=="string")return H(`git.${M}() requires a string 'repoPath'`);return R(f,U(e,V),w(arguments))}v.prototype.clone=function(){return this._runTask(H4("clone",V1,...arguments),K(arguments))},v.prototype.mirror=function(){return this._runTask(H4("mirror",k1,...arguments),K(arguments))},v.prototype.mv=function(M,R){return this._runTask(r(M,R),K(arguments))},v.prototype.checkoutLatestTag=function(M){var R=this;return this.pull(function(){R.tags(function(f,e){R.checkout(e.latest,M)})})},v.prototype.pull=function(M,R,f,e){return this._runTask(X9(U(M,V),U(R,V),w(arguments)),K(arguments))},v.prototype.fetch=function(M,R){return this._runTask(i(U(M,V),U(R,V),w(arguments)),K(arguments))},v.prototype.silent=function(M){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},v.prototype.tags=function(M,R){return this._runTask(c8(w(arguments)),K(arguments))},v.prototype.rebase=function(){return this._runTask(F1(["rebase",...w(arguments)]),K(arguments))},v.prototype.reset=function(M){return this._runTask(k8(y8(M),w(arguments)),K(arguments))},v.prototype.revert=function(M){let R=K(arguments);if(typeof M!=="string")return this._runTask(H("Commit must be a string"),R);return this._runTask(F1(["revert",...w(arguments,0,!0),M]),R)},v.prototype.addTag=function(M){let R=typeof M==="string"?u8(M):H("Git.addTag requires a tag name");return this._runTask(R,K(arguments))},v.prototype.addAnnotatedTag=function(M,R){return this._runTask(l8(M,R),K(arguments))},v.prototype.deleteLocalBranch=function(M,R,f){return this._runTask(o(M,typeof R==="boolean"?R:!1),K(arguments))},v.prototype.deleteLocalBranches=function(M,R,f){return this._runTask(b(M,typeof R==="boolean"?R:!1),K(arguments))},v.prototype.branch=function(M,R){return this._runTask(_(w(arguments)),K(arguments))},v.prototype.branchLocal=function(M){return this._runTask(y(),K(arguments))},v.prototype.raw=function(M){let R=!Array.isArray(M),f=[].slice.call(R?arguments:M,0);for(let K1=0;K1<f.length&&R;K1++)if(!z(f[K1])){f.splice(K1,f.length-K1);break}f.push(...w(arguments,0,!0));var e=K(arguments);if(!f.length)return this._runTask(H("Raw: must supply one or more command to execute"),e);return this._runTask(F1(f,this._trimmed),e)},v.prototype.submoduleAdd=function(M,R,f){return this._runTask(f8(M,R),K(arguments))},v.prototype.submoduleUpdate=function(M,R){return this._runTask(m8(w(arguments,!0)),K(arguments))},v.prototype.submoduleInit=function(M,R){return this._runTask(h8(w(arguments,!0)),K(arguments))},v.prototype.subModule=function(M,R){return this._runTask(g8(w(arguments)),K(arguments))},v.prototype.listRemote=function(){return this._runTask(T9(w(arguments)),K(arguments))},v.prototype.addRemote=function(M,R,f){return this._runTask(u(M,R,w(arguments)),K(arguments))},v.prototype.removeRemote=function(M,R){return this._runTask(Q$(M),K(arguments))},v.prototype.getRemotes=function(M,R){return this._runTask(d1(M===!0),K(arguments))},v.prototype.remote=function(M,R){return this._runTask(U1(w(arguments)),K(arguments))},v.prototype.tag=function(M,R){let f=w(arguments);if(f[0]!=="tag")f.unshift("tag");return this._runTask(F1(f),K(arguments))},v.prototype.updateServerInfo=function(M){return this._runTask(F1(["update-server-info"]),K(arguments))},v.prototype.pushTags=function(M,R){let f=q1({remote:U(M,V)},w(arguments));return this._runTask(f,K(arguments))},v.prototype.rm=function(M){return this._runTask(F1(["rm","-f",...J(M)]),K(arguments))},v.prototype.rmKeepLocal=function(M){return this._runTask(F1(["rm","--cached",...J(M)]),K(arguments))},v.prototype.catFile=function(M,R){return this._catFile("utf-8",arguments)},v.prototype.binaryCatFile=function(){return this._catFile("buffer",arguments)},v.prototype._catFile=function(M,R){var f=K(R),e=["cat-file"],K1=R[0];if(typeof K1==="string")return this._runTask(H("Git.catFile: options must be supplied as an array of strings"),f);if(Array.isArray(K1))e.push.apply(e,K1);let m$=M==="buffer"?p8(e):F1(e);return this._runTask(m$,f)},v.prototype.diff=function(M,R){let f=V(M)?H("git.diff: supplying options as a single string is no longer supported, switch to an array of strings"):F1(["diff",...w(arguments)]);return this._runTask(f,K(arguments))},v.prototype.diffSummary=function(){return this._runTask(B1(w(arguments,1)),K(arguments))},v.prototype.applyPatch=function(M){let R=!B(M)?H("git.applyPatch requires one or more string patches as the first argument"):E(J(M),w([].slice.call(arguments,1)));return this._runTask(R,K(arguments))},v.prototype.revparse=function(){let M=["rev-parse",...w(arguments,!0)];return this._runTask(F1(M,!0),K(arguments))},v.prototype.clean=function(M,R,f){let e=h(M),K1=e&&M.join("")||U(M,V)||"",m$=w([].slice.call(arguments,e?1:0));return this._runTask(b1(K1,m$),K(arguments))},v.prototype.exec=function(M){let R={commands:[],format:"utf-8",parser(){if(typeof M==="function")M()}};return this._runTask(R)},v.prototype.clearQueue=function(){return this},v.prototype.checkIgnore=function(M,R){return this._runTask(l(J(U(M,B,[]))),K(arguments))},v.prototype.checkIsRepo=function(M,R){return this._runTask(y1(U(M,V)),K(arguments))},q.exports=v}});a9();c1();var KX=class extends _1{constructor($,q){super(void 0,q);this.config=$}};c1();c1();var Z1=class extends _1{constructor($,q,Y){super($,Y);this.task=$,this.plugin=q,Object.setPrototypeOf(this,new.target.prototype)}};Z9();P2();o2();X6();W6();V6();K6();w6();function GX($){if(!$)return;return[{type:"spawn.before",action(Q,X){if($.aborted)X.kill(new Z1(void 0,"abort","Abort already signaled"))}},{type:"spawn.after",action(Q,X){function H(){X.kill(new Z1(void 0,"abort","Abort signal received"))}$.addEventListener("abort",H),X.spawned.on("close",()=>$.removeEventListener("abort",H))}}]}function MX($){return typeof $==="string"&&$.trim().toLowerCase()==="-c"}function jX($,q){if(!MX($))return;if(!/^\s*protocol(.[a-z]+)?.allow/.test(q))return;throw new Z1(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function wX($,q){if(/^\s*--(upload|receive)-pack/.test($))throw new Z1(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if(q==="clone"&&/^\s*-u\b/.test($))throw new Z1(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if(q==="push"&&/^\s*--exec\b/.test($))throw new Z1(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}function LX({allowUnsafeProtocolOverride:$=!1,allowUnsafePack:q=!1}={}){return{type:"spawn.args",action(Y,Q){return Y.forEach((X,H)=>{let J=H<Y.length?Y[H+1]:"";$||jX(X,J),q||wX(X,Q.method)}),Y}}}D();function FX($){let q=o9($,"-c");return{type:"spawn.args",action(Y){return[...q,...Y]}}}D();var v2=C9.deferred().promise;function NX({onClose:$=!0,onExit:q=50}={}){function Y(){let X=-1,H={close:C9.deferred(),closeTimeout:C9.deferred(),exit:C9.deferred(),exitTimeout:C9.deferred()},J=Promise.race([$===!1?v2:H.closeTimeout.promise,q===!1?v2:H.exitTimeout.promise]);return Q($,H.close,H.closeTimeout),Q(q,H.exit,H.exitTimeout),{close(W){X=W,H.close.done()},exit(W){X=W,H.exit.done()},get exitCode(){return X},result:J}}function Q(X,H,J){if(X===!1)return;(X===!0?H.promise:H.promise.then(()=>w0(X))).then(J.done)}return{type:"spawn.after",async action(X,{spawned:H,close:J}){let W=Y(),z=!0,V=()=>void(z=!1);H.stdout?.on("data",V),H.stderr?.on("data",V),H.on("error",V),H.on("close",(B)=>W.close(B)),H.on("exit",(B)=>W.exit(B));try{if(await W.result,z)await w0(50);J(W.exitCode)}catch(B){J(W.exitCode,B)}}}}D();var EX="Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings",I2="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function RX($){return!$||!/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test($)}function D2($,q){if($.length<1||$.length>2)throw new Z1(void 0,"binary",EX);if($.some(RX))if(q)console.warn(I2);else throw new Z1(void 0,"binary",I2);let[Q,X]=$;return{binary:Q,prefix:X}}function AX($,q=["git"],Y=!1){let Q=D2(O1(q),Y);$.on("binary",(X)=>{Q=D2(O1(X),Y)}),$.append("spawn.binary",()=>{return Q.binary}),$.append("spawn.args",(X)=>{return Q.prefix?[Q.prefix,...X]:X})}c1();function OX($){return!!($.exitCode&&$.stdErr.length)}function bX($){return Buffer.concat([...$.stdOut,...$.stdErr])}function vX($=!1,q=OX,Y=bX){return(Q,X)=>{if(!$&&Q||!q(X))return Q;return Y(X)}}function S2($){return{type:"task.error",action(q,Y){let Q=$(q.error,{stdErr:Y.stdErr,stdOut:Y.stdOut,exitCode:Y.exitCode});if(Buffer.isBuffer(Q))return{error:new _1(void 0,Q.toString("utf-8"))};return{error:Q}}}}D();var DX=class{constructor(){this.plugins=new Set,this.events=new IX}on($,q){this.events.on($,q)}reconfigure($,q){this.events.emit($,q)}append($,q){let Y=x(this.plugins,{type:$,action:q});return()=>this.plugins.delete(Y)}add($){let q=[];return O1($).forEach((Y)=>Y&&this.plugins.add(x(q,Y))),()=>{q.forEach((Y)=>this.plugins.delete(Y))}}exec($,q,Y){let Q=q,X=Object.freeze(Object.create(Y));for(let H of this.plugins)if(H.type===$)Q=H.action(Q,X);return Q}};D();function SX($){let Y=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(H,J){if(!Y.includes(J.method))return H;return x2(H,"--progress")}},{type:"spawn.after",action(H,J){if(!J.commands.includes("--progress"))return;J.spawned.stderr?.on("data",(W)=>{let z=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(W.toString("utf8"));if(!z)return;$({method:J.method,stage:CX(z[1]),progress:g(z[2]),processed:g(z[3]),total:g(z[4])})})}}]}function CX($){return String($.toLowerCase().split(" ",1))||"unknown"}D();function PX($){let q=h2($,["uid","gid"]);return{type:"spawn.options",action(Y){return{...q,...Y}}}}function ZX({block:$,stdErr:q=!0,stdOut:Y=!0}){if($>0)return{type:"spawn.after",action(Q,X){let H;function J(){H&&clearTimeout(H),H=setTimeout(z,$)}function W(){X.spawned.stdout?.off("data",J),X.spawned.stderr?.off("data",J),X.spawned.off("exit",W),X.spawned.off("close",W),H&&clearTimeout(H)}function z(){W(),X.kill(new Z1(void 0,"timeout","block timeout reached"))}Y&&X.spawned.stdout?.on("data",J),q&&X.spawned.stderr?.on("data",J),X.spawned.on("exit",W),X.spawned.on("close",W),J()}}}a9();function _X(){return{type:"spawn.args",action($){let q=[],Y;function Q(X){(Y=Y||[]).push(...X)}for(let X=0;X<$.length;X++){let H=$[X];if(O$(H)){Q(t4(H));continue}if(H==="--"){Q($.slice(X+1).flatMap((J)=>O$(J)&&t4(J)||J));break}q.push(H)}return!Y?q:[...q,"--",...Y.map(String)]}}}D();var TX=UX();function yX($,q){let Y=new DX,Q=l2($&&(typeof $==="string"?{baseDir:$}:$)||{},q);if(!_0(Q.baseDir))throw new KX(Q,"Cannot use simple-git on a directory that does not exist");if(Array.isArray(Q.config))Y.add(FX(Q.config));return Y.add(LX(Q.unsafe)),Y.add(_X()),Y.add(NX(Q.completion)),Q.abort&&Y.add(GX(Q.abort)),Q.progress&&Y.add(SX(Q.progress)),Q.timeout&&Y.add(ZX(Q.timeout)),Q.spawnOptions&&Y.add(PX(Q.spawnOptions)),Y.add(S2(vX(!0))),Q.errors&&Y.add(S2(Q.errors)),AX(Y,Q.binary,Q.unsafe?.allowUnsafeCustomBinary),new TX(Q,Y)}Z9();var T1=yX;async function S8($=process.cwd(),q){return(await(q||T1($)).status()).current||""}import{readFile as t0}from"fs/promises";import{existsSync as e0,readdirSync as kX}from"fs";import{join as g$}from"path";async function C8($,q,Y){let Q="",X=[],H=g$($,"prd.md");if(e0(H))try{Q=await t0(H,"utf-8")}catch{}let J="Pickle Rick Session Changes",W=Q.match(/^#\s+(.*)$/m);if(W)J=W[1].replace(/\s+PRD$/i,"").trim();try{let K=kX($,{withFileTypes:!0});for(let P of K)if(P.isDirectory()&&!P.name.startsWith(".")&&P.name!=="debug"){let E=g$($,P.name),_=g$(E,"implementation.md"),y=g$(E,`linear_ticket_${P.name}.md`),b=P.name;if(e0(y))try{let l=(await t0(y,"utf-8")).match(/^#\s+(.+)$/m);if(l)b=l[1]}catch{}if(e0(_))try{let o=await t0(_,"utf-8"),l=o.match(/##\s*Summary\s*\n([\s\S]*?)(?=\n##|$)/i),y1=l?l[1].trim().slice(0,500):o.slice(0,300).trim();X.push(`### ${b}
|
|
156
|
+
${y1}`)}catch{}}}catch{}let z="",V="",B=Q.match(/##\s*Problem Statement\s*\n([\s\S]*?)(?=\n##|$)/i);if(B)z=B[1].trim();let U=Q.match(/##\s*Objective.*?\n([\s\S]*?)(?=\n##|$)/i);if(U)V=U[1].trim();let w=`## Summary
|
|
157
|
+
|
|
158
|
+
${z?`**Problem:** ${z.split(`
|
|
159
|
+
`)[0]}`:"Automated changes from Pickle Rick session."}
|
|
160
|
+
|
|
161
|
+
${V?`**Objective:** ${V.split(`
|
|
162
|
+
`)[0]}`:""}
|
|
163
|
+
|
|
164
|
+
## Changes
|
|
165
|
+
|
|
166
|
+
${X.length>0?X.join(`
|
|
167
|
+
|
|
168
|
+
`):"See commit history for details."}
|
|
169
|
+
|
|
170
|
+
## Test Plan
|
|
171
|
+
|
|
172
|
+
- [ ] Review code changes
|
|
173
|
+
- [ ] Run tests locally
|
|
174
|
+
- [ ] Verify functionality
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
\uD83E\uDD52 Generated by [Pickle Rick CLI](https://github.com/anthropics/pickle-rick)
|
|
179
|
+
|
|
180
|
+
**Branch:** \`${q}\` \u2192 \`${Y}\`
|
|
181
|
+
`;return{title:J,body:w}}async function xX($,q=process.cwd(),Y){let Q=Y||T1(q);try{return await Q.push("origin",$,["--set-upstream"]),!0}catch{return!1}}async function P8($,q,Y,Q,X=!1,H=process.cwd(),J){if(!await xX($,H,J))return null;let z=["pr","create","--base",q,"--head",$,"--title",Y,"--body",Q];if(X)z.push("--draft");let{stdout:V,exitCode:B}=await A1("gh",z,H);if(B!==0)return null;return V.trim()||null}async function Z8(){try{let{exitCode:$}=await A1("gh",["auth","status"],process.cwd());return $===0}catch{return!1}}import{join as _8}from"path";import{mkdir as fX,readdir as DW,copyFile as SW}from"fs/promises";import{existsSync as $4}from"fs";async function T8($,q,Y,Q){let X=_8(Y,".pickle","worktrees"),H=_8(X,`session-${$}`),J=`pickle/session-${$}`;if(!$4(X))await fX(X,{recursive:!0});let W=Q||T1(Y);if($4(H))return{worktreeDir:H,branchName:J};return await W.raw(["worktree","prune"]),await W.raw(["worktree","add","-B",J,H,q]),{worktreeDir:H,branchName:J}}async function hX($,q){let Y=q||T1($);try{return(await Y.revparse(["--show-toplevel"])).trim()}catch{return $}}async function q4($,q,Y){if(!$4($))return;let Q=await hX(q,Y),X=Y||T1(Q);try{await X.raw(["worktree","remove","-f",$])}catch(H){}await X.raw(["worktree","prune"])}import{createInterface as mX}from"readline";function lX($){let q=mX({input:process.stdin,output:process.stdout});return new Promise((Y)=>q.question($,(Q)=>{q.close(),Y(Q)}))}class Q4{state;provider;verbose;tuiMode;progressCallback;currentTaskTitle;questionHandler;constructor($,q,Y,Q=!1,X=!1){this.state=$;this.provider=q;this.verbose=Q;this.tuiMode=X;this.questionHandler=Y||lX}onProgress($){return this.progressCallback=$,this}emitProgress($){if(this.progressCallback)this.progressCallback({iteration:this.state.iteration,taskTitle:this.currentTaskTitle,step:$})}async syncFiles($,q,Y=[]){try{await A1("rsync",["-a",...Y.map((Q)=>`--exclude=${Q}`),`${$}/`,`${q}/`],process.cwd())}catch(Q){try{await Y4(q,{recursive:!0}),await A1("sh",["-c",`cp -R "${$}/"* "${q}/"`],process.cwd())}catch(X){console.error(A.default.red(`\u26A0\uFE0F Sync failed: ${X}`))}}}async run(){this.state.cli_mode=!0,this.state.active=!0,await C1(this.state.session_dir,this.state);let $={},q=new Q0(this.state.session_dir),Y=p1(this.state.session_dir,"session.log"),Q=async(V)=>{try{await q$(Y,V+`
|
|
182
|
+
`)}catch(B){}if(this.verbose)console.log(V)},X=async(V)=>{try{await q$(Y,V)}catch(B){}if(this.verbose)process.stdout.write(V)},H=await S8(this.state.working_dir)||"main",J=null,W=null,z=gX(this.state.session_dir);try{while(this.state.active){if(await Q(A.default.bold(A.default.green(`
|
|
183
|
+
\uD83E\uDD52 Iteration ${this.state.iteration}`))),this.emitProgress(),this.state.max_iterations>0&&this.state.iteration>this.state.max_iterations){await Q(A.default.yellow("Max iterations reached.")),this.state.active=!1,await C1(this.state.session_dir,this.state);break}let V=await q.getNextTask();if(!V){await Q(A.default.bold(A.default.green("\u2705 All Tasks Complete!"))),this.state.active=!1,await C1(this.state.session_dir,this.state);break}this.currentTaskTitle=V.title,await Q(A.default.cyan(`\uD83D\uDCCB Current Task: ${V.title}`)),this.emitProgress();let B=this.state.working_dir,U=this.state.session_dir;if(V.id.startsWith("phase-")===!1){if(!J)try{J=await T8(z,H,this.state.working_dir),await Q(A.default.dim(`\uD83C\uDFD7\uFE0F Session Worktree: ${J.worktreeDir}`)),await Q(A.default.dim("\uD83D\uDD04 Syncing project state to worktree...")),await this.syncFiles(this.state.working_dir,J.worktreeDir,[".git",".pickle"]),this.state.gemini_session_id=void 0,await C1(this.state.session_dir,this.state)}catch(h){await Q(A.default.red(`\u26A0\uFE0F Failed to initialize worktree: ${h}`))}if(J)B=J.worktreeDir,W=p1(J.worktreeDir,".pickle","sessions",z),await Y4(W,{recursive:!0}),await Q(A.default.dim("\uD83D\uDD04 Syncing session context to worktree...")),await this.syncFiles(this.state.session_dir,W),U=W}let w=await I4(this.state,V,{sessionDir:U,workingDir:B}),K=p1(this.state.session_dir,"debug"),P=p1(K,`iteration_${this.state.iteration}_log.txt`);try{await Y4(K,{recursive:!0}),await Y$(p1(K,`iteration_${this.state.iteration}_prompt.txt`),w,"utf-8"),await Y$(P,`=== Iteration ${this.state.iteration} Log ===
|
|
184
|
+
Task: ${V.title}
|
|
185
|
+
Started: ${new Date().toISOString()}
|
|
186
|
+
|
|
187
|
+
`,"utf-8")}catch(h){}let E=async(h)=>{try{await q$(P,h)}catch(B1){}},_="",y=await x4(),b=y?.trim()?y.trim():void 0,o={resumeSessionId:this.state.gemini_session_id,extraIncludes:[U,B]};if(b)o.modelOverride=b;let l=await this.provider.executeStreaming(w,B,async(h,B1)=>{if(B1)await X(B1),await E(B1);else if(h!=="thinking"&&h!==_){await Q(A.default.dim(`Rick is ${h}...`)),_=h,this.emitProgress(h);let i=`[STEP] Rick is ${h}...
|
|
188
|
+
`;try{await q$(Y,i)}catch(r){}await E(i)}},o);if(await E(`
|
|
189
|
+
|
|
190
|
+
=== Iteration ${this.state.iteration} Completed: ${new Date().toISOString()} ===
|
|
191
|
+
`),!l.success){let h=l.error?.replace(/\s+/g," ").trim();await Q(A.default.red(`
|
|
192
|
+
\u274C Engine Error: ${h}`));try{await q$(Y,`
|
|
193
|
+
\u274C Engine Error: ${h}
|
|
194
|
+
`)}catch(B1){}throw await E(`ERROR: ${h}
|
|
195
|
+
`),await Q(""),this.state.active=!1,await C1(this.state.session_dir,this.state),Error(h||"Engine error")}if(l.sessionId&&!this.state.gemini_session_id)this.state.gemini_session_id=l.sessionId;if(W)await Q(A.default.dim("\uD83D\uDD04 Syncing changes back to master session...")),await this.syncFiles(W,this.state.session_dir);let y1=this.state.completion_promise&&l.response.includes(`<promise>${this.state.completion_promise}</promise>`),V1=l.response.includes("I AM DONE"),k1=l.response.includes("[STOP_TURN]");if(y1||V1){if(await Q(A.default.bold(A.default.green(`
|
|
196
|
+
\uD83C\uDFAF Task Completed!`))),await q.markComplete(V.id),J)$.worktreeInfo={worktreeDir:J.worktreeDir,branchName:J.branchName,baseBranch:H},await Q(A.default.dim("Worktree preserved for TUI review."));if(await q.countRemaining()===0&&J){if(await Q(A.default.bold(A.default.green(`
|
|
197
|
+
\u2705 All project tasks complete!`))),!this.tuiMode){await Q(A.default.yellow(`
|
|
198
|
+
What would you like to do with the changes in '${J.branchName}'?`)),await Q(A.default.dim(` [m] Merge into '${H}' locally`)),await Q(A.default.dim(" [p] Create a Pull Request")),await Q(A.default.dim(" [s] Skip (keep worktree for later)"));let i=(await this.questionHandler(A.default.yellow(`
|
|
199
|
+
Your choice (m/p/s): `))).toLowerCase().trim();if(i==="m"||i==="merge"){await Q(A.default.dim("Syncing files from worktree...")),await this.syncFiles(J.worktreeDir,this.state.working_dir,[".git",".pickle"]),await Q(A.default.dim("Merging worktree..."));try{await A1("git",["merge",J.branchName],this.state.working_dir),await Q(A.default.green("Merge successful."))}catch(r){await Q(A.default.red(`\u26A0\uFE0F Merge failed: ${r}`))}await Q(A.default.dim("Deleting worktree..."));try{await q4(J.worktreeDir,this.state.working_dir),await Q(A.default.green("Worktree deleted."))}catch(r){await Q(A.default.red(`\u26A0\uFE0F Cleanup failed: ${r}`))}J=null,W=null}else if(i==="p"||i==="pr"){let r=await C8(this.state.session_dir,J.branchName,H);if(await Z8()){await Q(A.default.dim("Creating Pull Request..."));try{let q1=await P8(J.branchName,H,r.title,r.body,!1,J.worktreeDir);if(q1)await Q(A.default.green(`\u2705 Pull Request created: ${q1}`));else{await Q(A.default.red("\u26A0\uFE0F Failed to create PR. Saving description to file..."));let u=p1(this.state.session_dir,"pr_description.md");await Y$(u,`# ${r.title}
|
|
200
|
+
|
|
201
|
+
${r.body}`,"utf-8"),await Q(A.default.yellow(`\uD83D\uDCC4 PR description saved to: ${u}`))}}catch(q1){await Q(A.default.red(`\u26A0\uFE0F PR creation failed: ${q1}`));let u=p1(this.state.session_dir,"pr_description.md");await Y$(u,`# ${r.title}
|
|
202
|
+
|
|
203
|
+
${r.body}`,"utf-8"),await Q(A.default.yellow(`\uD83D\uDCC4 PR description saved to: ${u}`))}}else{await Q(A.default.yellow("\u26A0\uFE0F GitHub CLI (gh) not installed or not authenticated.")),await Q(A.default.dim("Saving PR description to file..."));let q1=p1(this.state.session_dir,"pr_description.md");await Y$(q1,`# ${r.title}
|
|
204
|
+
|
|
205
|
+
${r.body}`,"utf-8"),await Q(A.default.yellow(`\uD83D\uDCC4 PR description saved to: ${q1}`)),await Q(A.default.dim("To create PR manually, push the branch and use:")),await Q(A.default.dim(` git push -u origin ${J.branchName}`)),await Q(A.default.dim(` gh pr create --base ${H} --head ${J.branchName}`))}await Q(A.default.dim("Deleting worktree..."));try{await q4(J.worktreeDir,this.state.working_dir),await Q(A.default.green("Worktree deleted."))}catch(q1){await Q(A.default.red(`\u26A0\uFE0F Cleanup failed: ${q1}`))}J=null,W=null}else await Q(A.default.dim("Skipping. Worktree preserved at:")),await Q(A.default.dim(` ${J.worktreeDir}`))}}}else if(k1)await Q(A.default.bold(A.default.yellow(`
|
|
206
|
+
\uD83D\uDED1 Turn Complete (STOP_TURN). Continuing...`)));let b1=await B$(this.state.session_dir);if(b1){let h=this.state.gemini_session_id;if(this.state=b1,!this.state.gemini_session_id&&h)this.state.gemini_session_id=h}this.state.iteration++,await C1(this.state.session_dir,this.state)}}catch(V){let B=V instanceof Error?V.stack:String(V);throw await Q(A.default.red(`
|
|
207
|
+
\uD83D\uDCA5 FATAL EXCEPTION: ${B}`)),V}return $}}var X4=null;self.onmessage=async($)=>{let q=$.data;if(q.type==="START"){let Y=await k4(),Q=(X)=>{return self.postMessage({type:"INPUT_REQUEST",query:X}),new Promise((H)=>{let J=(W)=>{if(W.data.type==="INPUT_RESPONSE")self.removeEventListener("message",J),H(W.data.answer)};self.addEventListener("message",J)})};X4=new Q4(q.state,Y,Q,!1,!0),X4.onProgress((X)=>self.postMessage({type:"PROGRESS",report:X}));try{let X=await X4.run();self.postMessage({type:"DONE",worktreeInfo:X.worktreeInfo})}catch(X){let H=X instanceof Error?X.message:String(X);self.postMessage({type:"ERROR",message:H})}}else if(q.type==="STOP")process.exit(0)};
|