@maincode-ai/matilda-code 0.21.13-nightly.20261027.e00306cd3 → 0.21.13-preview.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.
Files changed (89) hide show
  1. package/chunks/agent-4WVOGPYV.js +3 -0
  2. package/chunks/agent-headless-KZCTMP7N.js +3 -0
  3. package/chunks/{askUserQuestion-L3WDL2T4.js → askUserQuestion-6WS5ZWRA.js} +1 -1
  4. package/chunks/{ca-UBWUTZVZ.js → ca-GTBBJB6L.js} +1 -1
  5. package/chunks/{chunk-WTU6GSZH.js → chunk-3KKFNVI6.js} +1 -1
  6. package/chunks/chunk-4OWMT5UV.js +120 -0
  7. package/chunks/{chunk-62GTGPTP.js → chunk-5WRYWBB4.js} +1 -1
  8. package/chunks/{chunk-4CVGYUEL.js → chunk-AH4W5RL2.js} +1 -1
  9. package/chunks/{chunk-LOB42ODE.js → chunk-DP2GG4BM.js} +1 -1
  10. package/chunks/{chunk-I3CV4LOD.js → chunk-E2WUZZFL.js} +1 -1
  11. package/chunks/{chunk-6365AZBW.js → chunk-EVIJ4V55.js} +1 -1
  12. package/chunks/{chunk-GKEUZTOB.js → chunk-G4XYQR6C.js} +1 -1
  13. package/chunks/{chunk-ZQKABJBB.js → chunk-IR3O4MBT.js} +1 -1
  14. package/chunks/{chunk-YTB3OFTT.js → chunk-JD4JPY2P.js} +1 -1
  15. package/chunks/{chunk-V4D3LER3.js → chunk-LQYPJU36.js} +544 -544
  16. package/chunks/{chunk-ONANBLIE.js → chunk-OFP2ROZ7.js} +1 -1
  17. package/chunks/{chunk-JU7QTSKS.js → chunk-OIJ6FGWD.js} +1 -1
  18. package/chunks/{chunk-J3AMKDX6.js → chunk-QBGN32YW.js} +1 -1
  19. package/chunks/{chunk-XBTBZHRC.js → chunk-QFGR7ORH.js} +1 -1
  20. package/chunks/{chunk-DB5LMKXU.js → chunk-R5KAUFJR.js} +1 -1
  21. package/chunks/{chunk-GILXFDEG.js → chunk-RBGGCVWD.js} +1 -1
  22. package/chunks/{chunk-OBE5S4GG.js → chunk-VENUGZ5L.js} +1 -1
  23. package/chunks/{chunk-O7VPFJ3R.js → chunk-VTBFOUDI.js} +1 -1
  24. package/chunks/{chunk-6PFK4XTH.js → chunk-VW6Q43PZ.js} +2 -2
  25. package/chunks/{chunk-HPO2YWG4.js → chunk-WLB26FDD.js} +1 -1
  26. package/chunks/{chunk-VUJRLLGL.js → chunk-WYUJ36HZ.js} +1 -1
  27. package/chunks/{chunk-NK2QMGCC.js → chunk-XYAIE36G.js} +2 -2
  28. package/chunks/{computer-use-N6KGNST6.js → computer-use-YXOX3Q5O.js} +1 -1
  29. package/chunks/{cron-create-4XBY5RVI.js → cron-create-OCYM4HNG.js} +1 -1
  30. package/chunks/{cron-delete-BH4VP3LX.js → cron-delete-LAWZU6LE.js} +1 -1
  31. package/chunks/{cron-list-XXRFKNGM.js → cron-list-BCIXV7CX.js} +1 -1
  32. package/chunks/{de-LEEHWWJ2.js → de-CEHU2QRR.js} +1 -1
  33. package/chunks/{edit-6ULTLTJQ.js → edit-YZ6XRSXL.js} +1 -1
  34. package/chunks/{en-LNOIHFSQ.js → en-Y755FYW7.js} +1 -1
  35. package/chunks/{enter-worktree-V2VANZYJ.js → enter-worktree-GZPML7CR.js} +1 -1
  36. package/chunks/{enterPlanMode-75H54S3Z.js → enterPlanMode-CVXXBWOO.js} +1 -1
  37. package/chunks/{exit-worktree-KPB32K6P.js → exit-worktree-JXDNEOAW.js} +1 -1
  38. package/chunks/{exitPlanMode-K7JRP22Y.js → exitPlanMode-TFVL2QJO.js} +1 -1
  39. package/chunks/{fr-4TA2AIU6.js → fr-PCCFNMP6.js} +1 -1
  40. package/chunks/{glob-ACAIHWST.js → glob-5L6T2OAD.js} +1 -1
  41. package/chunks/{goal-tools-VPFXBI6M.js → goal-tools-DBHXH5DG.js} +1 -1
  42. package/chunks/{grep-R4K75RXS.js → grep-J7T4EXPY.js} +1 -1
  43. package/chunks/{ja-VXDMQKRW.js → ja-C4IJKHYL.js} +1 -1
  44. package/chunks/{keychain-token-storage-7VYNARRB.js → keychain-token-storage-RQFXZUKF.js} +1 -1
  45. package/chunks/{ls-4ZEICYPK.js → ls-LVWC7JN2.js} +1 -1
  46. package/chunks/{lsp-4US2RIIV.js → lsp-5VYXJ3SM.js} +1 -1
  47. package/chunks/{mcp-client-ZKQFYCFN.js → mcp-client-EZSMZWGS.js} +1 -1
  48. package/chunks/{monitor-KSNFIY54.js → monitor-HJCMPNDI.js} +1 -1
  49. package/chunks/{notebook-edit-655ZNV6Q.js → notebook-edit-62T7J5RF.js} +1 -1
  50. package/chunks/{openaiContentGenerator-BG3OM453.js → openaiContentGenerator-SPSIXCCZ.js} +8 -8
  51. package/chunks/{pt-WEIMCOKI.js → pt-GM4GVS7E.js} +1 -1
  52. package/chunks/read-file-PMRIGC6D.js +3 -0
  53. package/chunks/ripGrep-MFGKGCKA.js +3 -0
  54. package/chunks/{ru-WFLK34ZL.js → ru-FGESI6LX.js} +1 -1
  55. package/chunks/{scheduler-AVYCIBEK.js → scheduler-3O76VPWP.js} +1 -1
  56. package/chunks/{send-message-ND2SRKX5.js → send-message-YR63X46X.js} +1 -1
  57. package/chunks/shell-44X3D7YA.js +3 -0
  58. package/chunks/{skill-AB2X2DTC.js → skill-UQMCUAST.js} +1 -1
  59. package/chunks/{symbol-search-VICSUEZH.js → symbol-search-UTRGJAO2.js} +1 -1
  60. package/chunks/{syntheticOutput-Z7DQKMRI.js → syntheticOutput-653VCVMY.js} +1 -1
  61. package/chunks/{task-create-BQ73FRTH.js → task-create-TAKTFQSW.js} +1 -1
  62. package/chunks/{task-detach-JCHSLUOR.js → task-detach-H3FZKL54.js} +1 -1
  63. package/chunks/{task-list-6ESRFO5F.js → task-list-ICQNSQZS.js} +1 -1
  64. package/chunks/{task-stop-74H2CPAJ.js → task-stop-4I3A3RGM.js} +1 -1
  65. package/chunks/{task-update-R3BN6KPQ.js → task-update-COPYWCFV.js} +1 -1
  66. package/chunks/{team-create-UTKRPUPZ.js → team-create-RVBZSB6O.js} +1 -1
  67. package/chunks/{team-delete-PCCGTLGL.js → team-delete-CCIBYEVZ.js} +1 -1
  68. package/chunks/todoWrite-RKNGMZ5N.js +3 -0
  69. package/chunks/{tool-search-FJ5MAPQ6.js → tool-search-EJ4DEPVO.js} +1 -1
  70. package/chunks/{web-fetch-DEUGZQZS.js → web-fetch-WCGA252Q.js} +1 -1
  71. package/chunks/{web-search-PUUIEFJO.js → web-search-RHTJAF72.js} +1 -1
  72. package/chunks/{workflow-CBADL3IM.js → workflow-F5KP553F.js} +2 -2
  73. package/chunks/{write-file-QGCL2AJL.js → write-file-3GA55J4D.js} +1 -1
  74. package/cli.js +427 -427
  75. package/locales/ca.js +0 -1
  76. package/locales/de.js +0 -1
  77. package/locales/en.js +0 -1
  78. package/locales/fr.js +0 -1
  79. package/locales/ja.js +0 -1
  80. package/locales/pt.js +0 -1
  81. package/locales/ru.js +0 -1
  82. package/package.json +2 -2
  83. package/chunks/agent-H5JE3RJQ.js +0 -3
  84. package/chunks/agent-headless-H2JZZ7UV.js +0 -3
  85. package/chunks/chunk-GSRXW64P.js +0 -120
  86. package/chunks/read-file-4VSUKSRB.js +0 -3
  87. package/chunks/ripGrep-PNALN2GG.js +0 -3
  88. package/chunks/shell-GUHQNOMZ.js +0 -3
  89. package/chunks/todoWrite-BZI75DFV.js +0 -3
@@ -0,0 +1,120 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import{d as Ze,f as K}from"./chunk-WYUJ36HZ.js";import{b as k,e as ne}from"./chunk-LVDDFAK4.js";import{a as Dn,d as Ln,n as et}from"./chunk-EYZPVR7N.js";import{a as Gn,b as Vt,c as Kn,d as $n}from"./chunk-FKHUEFMK.js";import{Aa as Gt,Ca as Kt,M as le,O as He,P as qe,Q as Je,Y as Ye,Z as oe,c as q,la as Xe,ma as Qe,tb as $t,ub as Bt,wb as jt,ya as Ft}from"./chunk-VW6Q43PZ.js";import{I as ze,S as N,c as Un,d as Nn,e as H,f as ke,j as Fn,p as Ve}from"./chunk-XYAIE36G.js";import{h as j,i as We,k as Ut,m as Nt}from"./chunk-HEJO7OBH.js";import{b as p}from"./chunk-GZPNIYVZ.js";p();p();p();p();p();var V=class extends Error{constructor(e,n){super(`${e} at position ${n}`),this.position=n}};p();function Bn(t){return/^[0-9A-Fa-f]$/.test(t)}function Y(t){return t>="0"&&t<="9"}function jn(t){return t>=" "}function _e(t){return`,:[]/{}()
4
+ +`.includes(t)}function zt(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function Wt(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var Ht=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,qt=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Jt(t){return`,[]/{}
5
+ +`.includes(t)}function Yt(t){return we(t)||Tr.test(t)}var Tr=/^[[{\w-]$/;function Vn(t){return t===`
6
+ `||t==="\r"||t===" "||t==="\b"||t==="\f"}function J(t,e){let n=t.charCodeAt(e);return n===32||n===10||n===9||n===13}function zn(t,e){let n=t.charCodeAt(e);return n===32||n===9||n===13}function Wn(t,e){let n=t.charCodeAt(e);return n===160||n>=8192&&n<=8202||n===8239||n===8287||n===12288}function we(t){return Xt(t)||tt(t)}function Xt(t){return t==='"'||t==="\u201C"||t==="\u201D"}function Qt(t){return t==='"'}function tt(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function Zt(t){return t==="'"}function ue(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=t.lastIndexOf(e);return o!==-1?t.substring(0,o)+(n?"":t.substring(o+1)):t}function F(t,e){let n=t.length;if(!J(t,n-1))return t+e;for(;J(t,n-1);)n--;return t.substring(0,n)+e+t.substring(n)}function Hn(t,e,n){return t.substring(0,e)+t.substring(e+n)}function qn(t){return/[,\n][ \t\r]*$/.test(t)}var Sr={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},Ar={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
7
+ `,r:"\r",t:" "};function nt(t){let e=0,n="";c(["```","[```","{```"]),i()||ee(),c(["```","```]","```}"]);let r=f(",");for(r&&s(),Yt(t[e])&&qn(n)?(r||(n=F(n,",")),T()):r&&(n=ue(n,","));t[e]==="}"||t[e]==="]";)e++,s();if(e>=t.length)return n;Be();function i(){s();let y=m()||C()||S()||w()||v()||B(!1)||Dt();return s(),y}function s(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,A=e,E=a(y);do E=l(),E&&(E=a(y));while(E);return e>A}function a(y){let A=y?J:zn,E="";for(;;)if(A(t,e))E+=t[e],e++;else if(Wn(t,e))E+=" ",e++;else break;return E.length>0?(n+=E,!0):!1}function l(){if(t[e]==="/"&&t[e+1]==="*"){for(;e<t.length&&!Er(t,e);)e++;return e+=2,!0}if(t[e]==="/"&&t[e+1]==="/"){for(;e<t.length&&t[e]!==`
8
+ `;)e++;return!0}return!1}function c(y){if(u(y)){if(zt(t[e]))for(;e<t.length&&Wt(t[e]);)e++;return s(),!0}return!1}function u(y){a(!0);for(let A of y){let E=e+A.length;if(t.slice(e,E)===A)return e=E,!0}return!1}function f(y){return t[e]===y?(n+=t[e],e++,!0):!1}function d(y){return t[e]===y?(e++,!0):!1}function g(){return d("\\")}function h(){return s(),t[e]==="."&&t[e+1]==="."&&t[e+2]==="."?(e+=3,s(),d(","),!0):!1}function m(){if(t[e]==="{"){n+="{",e++,s(),d(",")&&s();let y=!0;for(;e<t.length&&t[e]!=="}";){let A;if(y?(A=!0,y=!1):(A=f(","),A||(n=F(n,",")),s()),h(),!(S()||B(!0))){t[e]==="}"||t[e]==="{"||t[e]==="]"||t[e]==="["||t[e]===void 0?n=ue(n,","):L();break}s();let je=f(":"),te=e>=t.length;je||(Yt(t[e])||te?n=F(n,":"):ve()),i()||(je||te?n+="null":ve())}return t[e]==="}"?(n+="}",e++):n=F(n,"}"),!0}return!1}function C(){if(t[e]==="["){n+="[",e++,s(),d(",")&&s();let y=!0;for(;e<t.length&&t[e]!=="]";)if(y?y=!1:f(",")||(n=F(n,",")),h(),!i()){n=ue(n,",");break}return t[e]==="]"?(n+="]",e++):n=F(n,"]"),!0}return!1}function T(){let y=!0,A=!0;for(;A;)y?y=!1:f(",")||(n=F(n,",")),A=i();A||(n=ue(n,",")),n=`[
9
+ ${n}
10
+ ]`}function S(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,E=t[e]==="\\";if(E&&(e++,E=!0),we(t[e])){let je=Qt(t[e])?Qt:Zt(t[e])?Zt:tt(t[e])?tt:Xt,te=e,Me=n.length,M='"';for(e++;;){if(e>=t.length){let O=P(e-1);return!y&&_e(t.charAt(O))?(e=te,n=n.substring(0,Me),S(!0)):(M=F(M,'"'),n+=M,!0)}if(e===A)return M=F(M,'"'),n+=M,!0;if(je(t[e])){let O=e,Lt=M.length;if(M+='"',e++,n+=M,s(!1),y||e>=t.length||_e(t[e])||we(t[e])||Y(t[e]))return R(),!0;let W=P(O-1),Pn=t.charAt(W);if(Pn===",")return e=te,n=n.substring(0,Me),S(!1,W);if(_e(Pn))return e=te,n=n.substring(0,Me),S(!0);n=n.substring(0,Me),e=O+1,M=`${M.substring(0,Lt)}\\${M.substring(Lt)}`}else if(y&&Jt(t[e])){if(t[e-1]===":"&&Ht.test(t.substring(te+1,e+2)))for(;e<t.length&&qt.test(t[e]);)M+=t[e],e++;return M=F(M,'"'),n+=M,R(),!0}else if(t[e]==="\\"){let O=t.charAt(e+1);if(Ar[O]!==void 0)M+=t.slice(e,e+2),e+=2;else if(O==="u"){let W=2;for(;W<6&&Bn(t[e+W]);)W++;W===6?(M+=t.slice(e,e+6),e+=6):e+W>=t.length?e=t.length:yr()}else M+=O,e+=2}else{let O=t.charAt(e);O==='"'&&t[e-1]!=="\\"?(M+=`\\${O}`,e++):Vn(O)?(M+=Sr[O],e++):(jn(O)||Z(O),M+=O,e++)}E&&g()}}return!1}function R(){let y=!1;for(s();t[e]==="+";){y=!0,e++,s(),n=ue(n,'"',!0);let A=n.length;S()?n=Hn(n,A,1):n=F(n,'"')}return y}function w(){let y=e;if(t[e]==="-"){if(e++,ae())return I(y),!0;if(!Y(t[e]))return e=y,!1}for(;Y(t[e]);)e++;if(t[e]==="."){if(e++,ae())return I(y),!0;if(!Y(t[e]))return e=y,!1;for(;Y(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,ae())return I(y),!0;if(!Y(t[e]))return e=y,!1;for(;Y(t[e]);)e++}if(!ae())return e=y,!1;if(e>y){let A=t.slice(y,e),E=/^0\d/.test(A);return n+=E?`"${A}"`:A,!0}return!1}function v(){return x("true","true")||x("false","false")||x("null","null")||x("True","true")||x("False","false")||x("None","null")}function x(y,A){return t.slice(e,e+y.length)===y?(n+=A,e+=y.length,!0):!1}function B(y){let A=e;if(zt(t[e])){for(;e<t.length&&Wt(t[e]);)e++;let E=e;for(;J(t,E);)E++;if(t[E]==="(")return e=E+1,i(),t[e]===")"&&(e++,t[e]===";"&&e++),!0}for(;e<t.length&&!Jt(t[e])&&!we(t[e])&&(!y||t[e]!==":");)e++;if(t[e-1]===":"&&Ht.test(t.substring(A,e+2)))for(;e<t.length&&qt.test(t[e]);)e++;if(e>A){for(;J(t,e-1)&&e>0;)e--;let E=t.slice(A,e);return n+=E==="undefined"?"null":JSON.stringify(E),t[e]==='"'&&e++,!0}}function Dt(){if(t[e]==="/"){let y=e;for(e++;e<t.length&&(t[e]!=="/"||t[e-1]==="\\");)e++;return e++,n+=`"${t.substring(y,e)}"`,!0}}function P(y){let A=y;for(;A>0&&J(t,A);)A--;return A}function ae(){return e>=t.length||_e(t[e])||J(t,e)}function I(y){n+=`${t.slice(y,e)}0`}function Z(y){throw new V(`Invalid character ${JSON.stringify(y)}`,e)}function Be(){throw new V(`Unexpected character ${JSON.stringify(t[e])}`,e)}function ee(){throw new V("Unexpected end of json string",t.length)}function L(){throw new V("Object key expected",e)}function ve(){throw new V("Colon expected",e)}function yr(){let y=t.slice(e,e+6);throw new V(`Invalid unicode character "${y}"`,e)}}function Er(t,e){return t[e]==="*"&&t[e+1]==="/"}var Rr=N("JSON_PARSE");function br(t,e={}){if(!t||typeof t!="string")return e;try{return JSON.parse(t)}catch(n){let o=vr(t);if(o!==void 0)return o;try{let r=nt(t);return JSON.parse(r)}catch(r){let i=Xn(t);if(i&&i!==t)try{return JSON.parse(nt(i))}catch{}return Rr.error("Failed to parse JSON even with jsonrepair:",{originalError:n,repairError:r,jsonString:t}),e}}}var Jn=Symbol("tool-args-parse-failed");function Yn(t){if(t==null)return{};let e=typeof t=="string"?t.trim():"";if(!e)return{};let n=br(e,Jn);return n===Jn?null:n&&typeof n=="object"&&!Array.isArray(n)?n:null}function vr(t){let e=Xn(t);if(e&&e!==t.trim())try{return JSON.parse(e)}catch{return}}function Xn(t){let e=t.trimStart();if(!e)return null;let n=e[0];if(n!=="{"&&n!=="[")return null;let o=0,r=!1,i=!1;for(let s=0;s<e.length;s++){let a=e[s];if(r){i?i=!1:a==="\\"?i=!0:a==='"'&&(r=!1);continue}if(a==='"'){r=!0;continue}if(a==="{"||a==="[")o++;else if(a==="}"||a==="]"){if(o--,o===0)return e.slice(0,s+1);if(o<0)return null}}return null}p();var Mr=/[A-Za-z\u00C0-\u024F]/g;function kr(t){return t>=1024&&t<=1279||t>=1280&&t<=1327||t>=11744&&t<=11775||t>=42560&&t<=42655||t>=12352&&t<=12543||t>=13312&&t<=19903||t>=19968&&t<=40959||t>=63744&&t<=64255||t>=44032&&t<=55215}function en(t){let e=t.codePointAt(0);return e!==void 0&&kr(e)}function _r(t){let e=t.match(Mr)?.length??0;if(e<24)return!1;let n=0;for(let o of t)en(o)&&n++;return n===0||e>=n*8}function ot(t){if(!t||!_r(t))return t;let e="",n=0,o=[...t];for(;n<o.length;){if(!en(o[n])){e+=o[n],n++;continue}let r=n;for(;r>0&&o[r-1]===" ";)r--;let i=n+1;for(;i<o.length&&en(o[i]);)i++;for(;i<o.length&&o[i]===" ";)i++;let s=r>0?o[r-1]:"",a=i<o.length?o[i]:"";(/[A-Za-z0-9]/.test(s)&&/[A-Za-z0-9]/.test(a)||o[r]===" "||o[i-1]===" ")&&(e+=" "),n=i,r<n&&o[r]===" "&&e.endsWith(" ")&&(e=e.slice(0,-1))}return e.replace(/ {2,}/g," ")}p();var ce=N("TAGGED_THINKING_PARSER"),Ie=["<think>","<thinking>"],Oe=["</think>","</thinking>"],wr=Math.max(...Ie.map(t=>t.length),...Oe.map(t=>t.length));function xe(t,e,n){e&&t.push(n==="thought"?{text:e,thought:!0}:{text:e})}function rt(t,e,n){let o=t.length-e;return o<=0||o>wr?!1:n.some(r=>r.startsWith(t.slice(e,e+o)))}function it(t,e,n){return n.find(o=>t.startsWith(o,e))}function nn(t){if(!t)return t;let e=t;return e=e.replace(/<\/?think(?:ing)?>/gi,""),e=e.replace(/[A-Za-z]*long[_-]?message[_-]?THINKING/gi,""),e=e.replace(/\bM?long[_-]?message\b/gi,""),e=e.replace(/(^|[\s>])THINKING(?=[\sA-Z<]|$)/g,"$1"),e!==t&&(e=e.replace(/[ \t]{2,}/g," ")),e}function Qn(t){let e=[];for(let n of t){if(n.thought===!0||typeof n.text!="string"){e.push(n);continue}let o=ot(nn(n.text));(o.length>0||/^\s+$/.test(n.text))&&e.push({text:o.length>0?o:n.text})}return e}var tn=class{mode="text";buffer="";parse(e,n=!1){this.buffer+=e;let o=this.buffer.toLowerCase(),r=[],i="",s=0;for(;s<this.buffer.length;){if(this.mode==="text"){let a=it(o,s,Ie);if(a){ce.debug(`taggedThinking: detected open tag "${a}" at offset ${s}`),xe(r,i,this.mode),i="",this.mode="thought",s+=a.length;continue}let l=it(o,s,Oe);if(l){ce.debug(`taggedThinking: dropping orphan close tag "${l}" at offset ${s}`),xe(r,i,this.mode),i="",s+=l.length;continue}if(!n&&(rt(o,s,Ie)||rt(o,s,Oe)))break}else{let a=it(o,s,Oe);if(a){ce.debug(`taggedThinking: detected close tag "${a}" at offset ${s}`),xe(r,i,this.mode),i="",this.mode="text",s+=a.length;continue}let l=it(o,s,Ie);if(l){s+=l.length;continue}if(!n&&(rt(o,s,Oe)||rt(o,s,Ie)))break}i+=this.buffer[s],s+=1}return s<this.buffer.length?(xe(r,i,this.mode),this.buffer=this.buffer.slice(s),ce.debug(`taggedThinking: emitted ${r.length} part(s), buffered ${this.buffer.length} char(s)`),Qn(r)):(this.buffer="",this.mode==="thought"&&i&&ce.warn(`taggedThinking: flushing ${i.length} chars of unclosed thought on stream end`),xe(r,i,this.mode),ce.debug(`taggedThinking: emitted ${r.length} part(s), flush complete`),Qn(r))}};function Zn(t){return new tn().parse(t,!0)}p();function eo(t,e="auto"){return e==="openapi_30"?xr(t):t}function xr(t){let e=n=>{if(typeof n!="object"||n===null)return n;if(Array.isArray(n))return n.map(e);let o=n,r={};if(Array.isArray(o.type)){let i=o.type;i.length===2&&i.includes("null")?(r.type=i.find(s=>s!=="null"),r.nullable=!0):r.type=i[0]}else o.type!==void 0&&(r.type=o.type);o.const!==void 0&&(r.enum=[o.const],delete r.const),typeof o.exclusiveMinimum=="number"&&(r.minimum=o.exclusiveMinimum,r.exclusiveMinimum=!0),typeof o.exclusiveMaximum=="number"&&(r.maximum=o.exclusiveMaximum,r.exclusiveMaximum=!0),Array.isArray(o.items)?delete r.items:typeof o.items=="object"&&o.items!==null&&(r.items=e(o.items)),Array.isArray(o.enum)&&(r.enum=o.enum.map(String));for(let[i,s]of Object.entries(o))i==="type"||i==="const"||i==="exclusiveMinimum"||i==="exclusiveMaximum"||i==="items"||i==="enum"||i==="$schema"||i==="$id"||i==="default"||i==="dependencies"||i==="patternProperties"||(r[i]=e(s));return r};return e(t)}p();function de(t){return!Number.isFinite(t)||t<=0?0:Math.ceil(t/4)}function st(t){let e=t.candidates||0,n=t.thoughts||0;return n>e?e+n:Math.max(e,n)}function Ir(t){return t.total&&t.total>0?Math.max(t.total,(t.prompt||0)+st(t)):(t.prompt||0)+st(t)}function Or(t){let e=Math.max(0,t.thoughtsTokens||0),n=st({candidates:t.outputTokens||0,thoughts:e}),o=Math.max(t.totalTokens||0,(t.inputTokens||0)+n);return{...t,outputTokens:n,thoughtsTokens:e,totalTokens:o}}var z=N("CONVERTER"),ao="(attached media from previous tool call)";function lo(t,e={}){let n=t.prompt_tokens||0,o=t.completion_tokens||0,r=t.total_tokens||0,i=t.prompt_tokens_details,s=i?.cached_tokens??i?.cachedTokens??t.cached_tokens??t.prompt_cache_hit_tokens??t.cache_read_input_tokens??0,a=t.completion_tokens_details,l=a?.reasoning_tokens??a?.reasoningTokens??t.reasoning_tokens??0,c=Math.max(0,e.estimatedReasoningTokens??0),u=Math.max(0,e.estimatedContentTokens??0),f=l>0?l:c,d=o;f>0&&(o>=f?d=o:d=o+f),(u>0||c>0)&&(d=Math.max(d,u+(l>0?0:c),u+f)),r>n&&(n>0||o>0||f>0)&&(d=Math.max(d,r-n)),f===0&&c>0&&(f=c),f>d&&(f=d);let g=t.usage_is_incomplete===!0||o>0&&n===0||r>0&&n===0&&o===0,h=n,m=r;return(m===0&&(h>0||d>0)||m>0&&h>0&&m<h+d)&&(m=h+d),{promptTokenCount:h,candidatesTokenCount:d,totalTokenCount:m,cachedContentTokenCount:s,thoughtsTokenCount:f,...g?{usageIsIncomplete:!0}:{}}}var Pr=64,to=1024;function no(t,e){if(t.length===0)return"";if(e.emittedText.length===0)return e.emittedText=t,e.emittedLength=t.length,t;if(e.cumulativeMode){if(t.startsWith(e.emittedText)){let n=t.slice(e.emittedText.length);return e.emittedText=t,e.emittedLength=t.length,n}return e.emittedText.startsWith(t)?(z.debug(`normalizeStreamingTextDelta: cumulative rewind suppression (emitted=${e.emittedText.length}b, chunk=${t.length}b)`),""):(z.debug("normalizeStreamingTextDelta: exiting cumulative mode (chunk does not match prior accumulated text)"),e.cumulativeMode=!1,e.emittedText=t,e.emittedLength+=t.length,t)}if(t.length>e.emittedText.length&&t.startsWith(e.emittedText)){let n=e.emittedText.length,r=n>=to&&e.emittedLength>n?e.emittedLength:n;if(t.length>r){let i=t.slice(r);return e.emittedText=t,e.emittedLength=t.length,e.cumulativeMode=!0,z.debug(`normalizeStreamingTextDelta: entered cumulative mode (prefix overlap, baseline=${n}b sliceFrom=${r}b -> curr=${t.length}b)`),i}}return t===e.emittedText?t.length>=Pr?(e.cumulativeMode=!0,z.debug(`normalizeStreamingTextDelta: entered cumulative mode (exact repeat, ${t.length}b)`),""):(e.emittedLength+=t.length,t):(e.emittedText.length<to&&(e.emittedText+=t),e.emittedLength+=t.length,t)}function uo(t){if(!t||typeof t!="object")return t;let e=JSON.parse(JSON.stringify(t)),n=o=>{if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return o.map(n);let r={};for(let[i,s]of Object.entries(o))if(i==="type"&&typeof s=="string"){let a=s.toLowerCase();a==="integer"?r[i]="integer":a==="number"?r[i]="number":r[i]=a}else i==="minimum"||i==="maximum"||i==="multipleOf"?typeof s=="string"&&!isNaN(Number(s))?r[i]=Number(s):r[i]=s:i==="minLength"||i==="maxLength"||i==="minItems"||i==="maxItems"?typeof s=="string"&&!isNaN(Number(s))?r[i]=parseInt(s,10):r[i]=s:typeof s=="object"?r[i]=n(s):r[i]=s;return r};return n(e)}async function Dr(t,e="auto"){let n=[];for(let o of t){let r;if("tool"in o?r=await o.tool():r=o,r.functionDeclarations){for(let i of r.functionDeclarations)if(i.name&&i.description){let s;i.parametersJsonSchema?s={...i.parametersJsonSchema}:i.parameters&&(s=uo(i.parameters)),s&&(s=eo(s,e)),n.push({type:"function",function:{name:i.name,description:i.description,parameters:s}})}}}return n}function Lr(t,e,n={cleanOrphanToolCalls:!0}){let o=[];return Nr(t,o),Fr(t.contents,o,e),o=so(o),n.cleanOrphanToolCalls&&(o=qr(o),o=so(o)),o}function Ur(t,e){let n=t.candidates?.[0],o=n?.content?.parts||[],r=[],i=[],s=[],a=0;for(let m of o)typeof m=="string"?i.push(m):"text"in m&&m.text?"thought"in m&&m.thought?r.push(m.text):i.push(m.text):"functionCall"in m&&m.functionCall&&(s.push({id:m.functionCall.id||`call_${a}`,type:"function",function:{name:m.functionCall.name||"",arguments:JSON.stringify(m.functionCall.args||{})}}),a+=1);let l={role:"assistant",content:i.join("")||null,refusal:null},c=r.join("");c&&(l.reasoning_content=c),s.length>0&&(l.tool_calls=s);let u=Hr(n?.finishReason),f=t.usageMetadata,d={prompt_tokens:f?.promptTokenCount||0,completion_tokens:f?.candidatesTokenCount||0,total_tokens:f?.totalTokenCount||0};f?.cachedContentTokenCount!==void 0&&(d.prompt_tokens_details={cached_tokens:f.cachedContentTokenCount});let g=t.createTime?Number(t.createTime):Date.now(),h=Number.isFinite(g)?Math.floor(g/1e3):Math.floor(Date.now()/1e3);return{id:t.responseId||`gemini-${Date.now()}`,object:"chat.completion",created:h,model:t.modelVersion||e.model,choices:[{index:0,message:l,finish_reason:u,logprobs:null}],usage:d}}function Nr(t,e){if(!t.config?.systemInstruction)return;let n=po(t.config.systemInstruction);n&&e.push({role:"system",content:n})}function Fr(t,e,n){if(Array.isArray(t))for(let o of t)oo(o,e,n);else t&&oo(t,e,n)}function oo(t,e,n){if(typeof t=="string"){e.push({role:"user",content:t});return}if(!Br(t))return;let o=t.parts||[],r=t.role==="model"?"assistant":"user",i=[],s=[],a=[],l=0,c=new Set,u=new Set,f=[];for(let d of o){if(typeof d=="string"){i.push({type:"text",text:d});continue}"text"in d&&"thought"in d&&d.thought&&r==="assistant"&&d.text&&s.push(d.text),"text"in d&&d.text&&!("thought"in d&&d.thought)&&i.push({type:"text",text:d.text});let g=co(d,n);if(g&&r==="user"&&i.push(g),"functionCall"in d&&d.functionCall&&r==="assistant"){let h=d.functionCall.id;if(h){if(c.has(h)){z.debug(`Dropping duplicate functionCall id=${h} while converting content`);continue}c.add(h)}a.push({id:h||`call_${l}`,type:"function",function:{name:d.functionCall.name||"",arguments:JSON.stringify(d.functionCall.args||{})}}),l+=1}if(d.functionResponse&&r==="user"){let h=d.functionResponse.id;if(h){if(u.has(h))continue;u.add(h)}let m=Kr(d.functionResponse,n);if(m){if(n.splitToolMedia&&Array.isArray(m.content)){let C=[],T=[];for(let S of m.content)S&&(S.type==="image_url"||S.type==="input_audio"||S.type==="video_url"||S.type==="file")?C.push(S):S&&S.type==="text"&&T.push(S);if(C.length>0){let S=T.map(R=>R.text).join(`
11
+ `);m.content=S||"[media attached in following user message]",f.push(...C)}}e.push(m)}}}if(f.length>0&&e.push({role:"user",content:[{type:"text",text:ao},...f]}),r==="assistant"){if(i.length===0&&a.length===0&&s.length===0)return;let g={role:"assistant",content:i.filter(m=>m.type==="text").map(m=>m.text).join("")||(s.length>0?"":null)};a.length>0&&(g.tool_calls=a);let h=s.join("");h&&(g.reasoning_content=h),e.push(g);return}i.length>0&&e.push({role:"user",content:i})}function Gr(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="object"){let e=t,n=e.output;if(typeof n=="string")return n;let o=e.error;if(typeof o=="string")return o}try{return JSON.stringify(t)??String(t)}catch{return String(t)}}function Kr(t,e){let n=Gr(t.response),o=[];n&&o.push({type:"text",text:n});for(let r of t.parts||[]){if("text"in r&&typeof r.text=="string"){r.text.length>0&&o.push({type:"text",text:r.text});continue}let i=co(r,e);i&&o.push(i)}return o.length===0?{role:"tool",tool_call_id:t.id||"",content:""}:{role:"tool",tool_call_id:t.id||"",content:o}}function co(t,e){let{modalities:n}=e;if(t.inlineData?.mimeType&&t.inlineData?.data){let o=t.inlineData.mimeType,r=ro(o),i=t.inlineData.displayName||o;if(r==="image")return n.image?{type:"image_url",image_url:{url:`data:${o};base64,${t.inlineData.data}`}}:re("image",i,e);if(o==="application/pdf")return n.pdf?{type:"file",file:{filename:t.inlineData.displayName||"document.pdf",file_data:`data:${o};base64,${t.inlineData.data}`}}:re("pdf",i,e);if(r==="audio"){if(!n.audio)return re("audio",i,e);let s=$r(o);if(s)return{type:"input_audio",input_audio:{data:`data:${o};base64,${t.inlineData.data}`,format:s}}}return r==="video"?n.video?{type:"video_url",video_url:{url:`data:${o};base64,${t.inlineData.data}`}}:re("video",i,e):{type:"text",text:`Unsupported inline media type: ${o} (${i}).`}}if(t.fileData?.mimeType&&t.fileData?.fileUri){let o=t.fileData.displayName||"file",r=t.fileData.fileUri,i=t.fileData.mimeType,s=ro(i);if(s==="image")return n.image?{type:"image_url",image_url:{url:r}}:re("image",o,e);if(i==="application/pdf")return n.pdf?{type:"file",file:{filename:o,file_data:r}}:re("pdf",o,e);if(s==="video")return n.video?{type:"video_url",video_url:{url:r}}:re("video",o,e);let a=t.fileData.displayName?` (${t.fileData.displayName})`:"";return{type:"text",text:`Unsupported file media type: ${i}${a}.`}}return null}function re(t,e,n){z.warn(`Model '${n.model}' does not support ${t} input. Replacing with text placeholder: ${e}`);let o;return t==="pdf"?o=`This model does not support PDF input directly. The read_file tool cannot extract PDF content either. To extract text from the PDF file, try using skills if applicable, or guide user to install pdf skill by running this slash command:
12
+ /extensions install https://github.com/anthropics/skills:document-skills`:o=`This model does not support ${t} input. The read_file tool cannot process this type of file either. To handle this file, try using skills if applicable, or any tools installed at system wide, or let the user know you cannot process this type of file.`,{type:"text",text:`[Unsupported ${t} file: "${e}". ${o}]`}}function ro(t){return t.startsWith("image/")?"image":t.startsWith("audio/")?"audio":t.startsWith("video/")?"video":"file"}function $r(t){return t.includes("wav")?"wav":t.includes("mp3")||t.includes("mpeg")?"mp3":null}function Br(t){return typeof t=="object"&&t!==null&&"role"in t&&"parts"in t&&Array.isArray(t.parts)}function po(t){return typeof t=="string"?t:Array.isArray(t)?t.map(e=>po(e)).filter(Boolean).join(`
13
+ `):typeof t=="object"&&t!==null&&"parts"in t&&t.parts?.map(n=>typeof n=="string"?n:"text"in n&&n.text||"").filter(Boolean).join(`
14
+ `)||""}function at(t,e,n=!0){if(e.taggedThinkingParser)return e.taggedThinkingParser.parse(t,n);if(e.responseParsingOptions?.taggedThinkingTags)return Zn(t);if(!t)return[];let o=ot(nn(t));return o?[{text:o}]:[]}function jr(t,e){let n=t.choices?.[0],o=new ne;if(n){let r=[];if(!e.responseParsingOptions?.taggedThinkingTags){let i=n.message.reasoning_content??n.message.reasoning;i&&r.push({text:i,thought:!0})}if(n.message.content&&r.push(...at(n.message.content,e)),n.message.tool_calls){for(let i of n.message.tool_calls)if(i.function){let s=Yn(i.function.arguments);if(s===null)continue;r.push({functionCall:{id:i.id,name:i.function.name,args:s}})}}o.candidates=[{content:{parts:r,role:"model"},finishReason:fo(n.finish_reason),index:0,safetyRatings:[]}]}else o.candidates=[];if(o.responseId=t.id,o.createTime=t.created?t.created.toString():new Date().getTime().toString(),o.modelVersion=e.model,o.promptFeedback={safetyRatings:[]},t.usage){let r=t.choices?.[0]?.message,i=r?.reasoning_content??r?.reasoning??"",s=typeof r?.content=="string"?r.content:"";o.usageMetadata=lo(t.usage,{estimatedReasoningTokens:de(i.length),estimatedContentTokens:de(s.length)})}return o}function Vr(t,e){let n=t.choices?.[0],o=new ne,r=e.toolCallParser;if(!r)throw new Error("convertOpenAIChunkToGemini requires requestContext.toolCallParser \u2014 attach a fresh StreamingToolCallParser at stream start.");if(n){let i=[];if(!e.responseParsingOptions?.taggedThinkingTags){let c=n.delta?.reasoning_content??n.delta?.reasoning;if(c){let u=no(c,e.reasoningDeltaState??={emittedText:"",emittedLength:0,cumulativeMode:!1});u&&i.push({text:u,thought:!0})}}if(typeof n.delta?.content=="string"){let c=no(n.delta.content,e.textDeltaState??={emittedText:"",emittedLength:0,cumulativeMode:!1});(c||n.finish_reason)&&i.push(...at(c,e,!!n.finish_reason))}else n.finish_reason&&i.push(...at("",e,!0));if(n.delta?.tool_calls)for(let c of n.delta.tool_calls){let u=c.index??0;c.function?.arguments?r.addChunk(u,c.function.arguments,c.id,c.function.name):r.addChunk(u,"",c.id,c.function?.name)}let s=!1;if(n.finish_reason){s=r.hasIncompleteToolCalls();let c=r.getCompletedToolCalls();for(let u of c)u.name&&i.push({functionCall:{id:u.id||`call_${Date.now()}_${Math.random().toString(36).substring(2,9)}`,name:u.name,args:u.args}})}let a=s&&n.finish_reason!=="length"?"length":n.finish_reason,l={content:{parts:i,role:"model"},index:0,safetyRatings:[]};a&&(l.finishReason=fo(a)),o.candidates=[l]}else o.candidates=[];return o.responseId=t.id,o.createTime=t.created?t.created.toString():new Date().getTime().toString(),o.modelVersion=e.model,o.promptFeedback={safetyRatings:[]},t.usage&&(o.usageMetadata=lo(t.usage,Wr(e))),o}function zr(t){let e=t.toolCallParser;if(!e)return null;let n=[],o=e.getStrictCompletedToolCalls(),r=e.hasIncompleteToolCalls();for(let s of o)s.name&&n.push({functionCall:{id:s.id||`call_${Date.now()}_${Math.random().toString(36).substring(2,9)}`,name:s.name,args:s.args}});if(n.push(...at("",t,!0)),n.length===0&&!r)return null;let i=new ne;return i.candidates=[{content:{parts:n,role:"model"},index:0,safetyRatings:[],finishReason:r?k.MAX_TOKENS:k.STOP}],i.responseId=`stream-flush-${Date.now()}`,i.createTime=new Date().getTime().toString(),i.modelVersion=t.model,i.promptFeedback={safetyRatings:[]},i}function Wr(t){return{estimatedReasoningTokens:de(t.reasoningDeltaState?.emittedLength??0),estimatedContentTokens:de(t.textDeltaState?.emittedLength??0)}}function fo(t){return t?{stop:k.STOP,length:k.MAX_TOKENS,content_filter:k.SAFETY,function_call:k.STOP,tool_calls:k.STOP}[t]||k.FINISH_REASON_UNSPECIFIED:k.FINISH_REASON_UNSPECIFIED}function Hr(t){if(!t)return"stop";switch(t){case k.STOP:return"stop";case k.MAX_TOKENS:return"length";case k.SAFETY:case k.RECITATION:case k.BLOCKLIST:case k.PROHIBITED_CONTENT:case k.SPII:case k.IMAGE_SAFETY:case k.IMAGE_RECITATION:case k.IMAGE_PROHIBITED_CONTENT:case k.IMAGE_OTHER:return"content_filter";case k.NO_IMAGE:return"stop";default:return"stop"}}function on(t){return t.role==="assistant"&&"tool_calls"in t&&Array.isArray(t.tool_calls)&&t.tool_calls.length>0}function io(t){if(t.role!=="user"||!("content"in t)||!Array.isArray(t.content))return!1;let e=t.content[0];return e?.type==="text"&&e.text===ao}function qr(t){let e=[],n=new Map,o=new Map,r=new Map,i=new Set,s=new Set;for(let a=0;a<t.length;a+=1){let l=t[a];if(on(l)){let c=[],u=new Set;for(let C of l.tool_calls){let T=C.id;!T||s.has(T)||u.has(T)||(u.add(T),c.push(C))}let f=new Set,d=[],g=[],h=!1;for(let C=a+1;C<t.length;C+=1){let T=t[C];if(T.role==="tool"&&"tool_call_id"in T){if(!T.tool_call_id){h=!1;continue}u.has(T.tool_call_id)&&!f.has(T.tool_call_id)?(f.add(T.tool_call_id),d.push(C),h=!0):h=!1;continue}if(io(T)){h&&g.push(C);continue}if(!(T.role==="assistant"&&!on(T)))break}let m=c.filter(C=>f.has(C.id));for(let C of m)s.add(C.id);n.set(a,m),o.set(a,d),r.set(a,g)}}for(let a=0;a<t.length;a+=1){if(i.has(a))continue;let l=t[a];if(on(l)){let c=l.reasoning_content,u=n.get(a)??[];if(u.length>0){let f={...l};f.tool_calls=u,e.push(f);for(let d of o.get(a)??[]){let g=t[d];g&&(e.push(g),i.add(d))}for(let d of r.get(a)??[]){let g=t[d];g&&(e.push(g),i.add(d))}}else if(typeof l.content=="string"&&l.content.trim()||c){let f={...l};delete f.tool_calls,e.push(f)}else z.debug(`cleanOrphanedToolCalls: dropping assistant with ${l.tool_calls.length} orphaned tool call(s) and no text/reasoning content`)}else l.role==="tool"&&"tool_call_id"in l?z.debug(`cleanOrphanedToolCalls: dropping orphaned tool response ${l.tool_call_id||"<empty>"}`):io(l)?z.debug("cleanOrphanedToolCalls: dropping orphaned split tool media message"):e.push(l)}return e}function so(t){let e=[];for(let n of t){if(n.role==="assistant"&&e.length>0){let o=e[e.length-1];if(o.role==="assistant"){let r="tool_calls"in o?o.tool_calls||[]:[],i="tool_calls"in n?n.tool_calls||[]:[],s=o.content,a=n.content,l=Array.isArray(s)||Array.isArray(a),c;if(l){let f=Array.isArray(s)?s:typeof s=="string"&&s?[{type:"text",text:s}]:[],d=Array.isArray(a)?a:typeof a=="string"&&a?[{type:"text",text:a}]:[];c=[...f,...d]}else c=[typeof s=="string"?s:"",typeof a=="string"?a:""].filter(Boolean).join("")||null;let u=[...r,...i];o.content=c||null,u.length>0&&(o.tool_calls=u);continue}}e.push(n)}return e}var lt={convertGeminiToolParametersToOpenAI:uo,convertGeminiToolsToOpenAI:Dr,convertGeminiRequestToOpenAI:Lr,convertGeminiResponseToOpenAI:Ur,convertOpenAIResponseToGemini:jr,convertOpenAIChunkToGemini:Vr,flushOpenAIStreamToGemini:zr};p();p();p();Nt();var Jr=new Set(["service.version","service.instance.id","session.id"]);function ie(t,e){We.warn(t),e?.push(t)}function go(t,e){if(!t)return{};let n={};for(let o of t.split(",")){let r=o.trim();if(!r)continue;let i=r.indexOf("=");if(i<0){ie(`Skipping malformed OTEL_RESOURCE_ATTRIBUTES entry: "${r}" (hint: percent-encode literal commas as %2C)`,e);continue}let s=r.slice(0,i).trim();if(!s)continue;let a=r.slice(i+1).trim(),l;try{l=decodeURIComponent(s)}catch{ie(`Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES key "${s}", using raw key`,e),l=s}let c;try{c=decodeURIComponent(a)}catch{ie(`Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES for key "${l}", using raw value`,e),c=a}n[l]=c}return n}function rn(t,e,n){for(let o of Jr)o in t&&(ie(`${e} cannot override reserved key "${o}"; ignoring`,n),delete t[o]);return t}function mo(t,e){if(t==null)return{};if(typeof t!="object"||Array.isArray(t))return ie("settings.telemetry.resourceAttributes must be an object; ignoring",e),{};let n={};for(let[o,r]of Object.entries(t)){let i=o.trim();if(!i){ie("settings.telemetry.resourceAttributes has an empty or whitespace-only key; ignoring",e);continue}typeof r=="string"?n[i]=r:ie(`settings.telemetry.resourceAttributes value for "${i}" must be a string (got ${typeof r}); ignoring`,e)}return n}function Pe(t){if(t!==void 0)return t==="true"||t==="1"}async function Yr(t){let e=t.argv??{},n=t.env??{},o=t.settings??{},r=e.telemetry??Pe(n.MATILDA_TELEMETRY_ENABLED)??o.enabled,i=e.telemetryOtlpEndpoint??n.MATILDA_TELEMETRY_OTLP_ENDPOINT??n.OTEL_EXPORTER_OTLP_ENDPOINT??o.otlpEndpoint,s=e.telemetryOtlpProtocol??n.MATILDA_TELEMETRY_OTLP_PROTOCOL??o.otlpProtocol,a=["grpc","http"].find(v=>v===s);if(s!==void 0&&a===void 0)throw new Fn(`Invalid telemetry OTLP protocol: ${String(s)}. Valid values are: grpc, http`);let l=e.telemetryLogPrompts??Pe(n.MATILDA_TELEMETRY_LOG_PROMPTS)??o.logPrompts,c=Pe(n.MATILDA_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTES)??o.includeSensitiveSpanAttributes??!1,u=e.telemetryOutfile??n.MATILDA_TELEMETRY_OUTFILE??o.outfile,f=n.MATILDA_TELEMETRY_OTLP_TRACES_ENDPOINT??n.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT??o.otlpTracesEndpoint,d=n.MATILDA_TELEMETRY_OTLP_LOGS_ENDPOINT??n.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT??o.otlpLogsEndpoint,g=n.MATILDA_TELEMETRY_OTLP_METRICS_ENDPOINT??n.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT??o.otlpMetricsEndpoint,h=[],m=rn(go(n.OTEL_RESOURCE_ATTRIBUTES,h),"OTEL_RESOURCE_ATTRIBUTES",h),C=rn(mo(o.resourceAttributes,h),"settings.telemetry.resourceAttributes",h),T={...m,...C},S=n.OTEL_SERVICE_NAME?.trim();S&&(T["service.name"]=S);let R=Object.keys(T).length?T:void 0,w=Pe(n.MATILDA_TELEMETRY_METRICS_INCLUDE_SESSION_ID)??o.metrics?.includeSessionId??!1;return{enabled:r,otlpEndpoint:i,otlpProtocol:a,otlpTracesEndpoint:f,otlpLogsEndpoint:d,otlpMetricsEndpoint:g,logPrompts:l,includeSensitiveSpanAttributes:c,outfile:u,resourceAttributes:R,metrics:{includeSessionId:w},resourceAttributeWarnings:h.length?h:void 0}}p();Nt();import*as Q from"node:fs";import*as Pt from"node:path";p();p();p();p();Nt();p();import{AsyncLocalStorage as Xr}from"node:async_hooks";var ho=new Xr;p();import*as G from"node:path";import{promises as dt}from"node:fs";p();p();import Qr from"crypto";var ct=new Uint8Array(256),ut=ct.length;function sn(){return ut>ct.length-16&&(Qr.randomFillSync(ct),ut=0),ct.slice(ut,ut+=16)}p();var _=[];for(let t=0;t<256;++t)_.push((t+256).toString(16).slice(1));function Co(t,e=0){return _[t[e+0]]+_[t[e+1]]+_[t[e+2]]+_[t[e+3]]+"-"+_[t[e+4]]+_[t[e+5]]+"-"+_[t[e+6]]+_[t[e+7]]+"-"+_[t[e+8]]+_[t[e+9]]+"-"+_[t[e+10]]+_[t[e+11]]+_[t[e+12]]+_[t[e+13]]+_[t[e+14]]+_[t[e+15]]}p();p();import Zr from"crypto";var an={randomUUID:Zr.randomUUID};function ei(t,e,n){if(an.randomUUID&&!e&&!t)return an.randomUUID();t=t||{};let o=t.random||(t.rng||sn)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,e){n=n||0;for(let r=0;r<16;++r)e[n+r]=o[r];return e}return Co(o)}var ln=ei;import*as X from"os";var pt=N("OPENAI_LOGGER"),ti="########",ni=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function oi(t,e){let n=e||process.cwd();if(!t)return G.join(n,"logs","openai");let o=t;return t==="~"||t.startsWith("~/")?o=G.join(X.homedir(),t.slice(1)):G.isAbsolute(t)||(o=G.resolve(n,t)),G.normalize(o)}function yo(t){return t&&t.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||void 0}function ri(t){let e=t.split("#");if(e.length!==3)return;let[,n,o]=e;if(!(!n||!o||!/^\d+$/.test(o)))return`subagent-${n}`}function ii(t){if(t)return le(t)?yo(t):yo(ri(t))}function si(t){if(!t)return;let e=t.indexOf(ti);if(e>0)return t.slice(0,e);if(ni.test(t))return t;let n=t.split("#");if(n.length>=3&&n[0])return n[0]}function ai(t){let e=t?.trim(),n=si(e);return!e&&!n?null:{...e?{promptId:e}:{},...n?{sessionId:n}:{}}}var De=class{logDir;initialized=!1;constructor(e,n){this.logDir=oi(e,n)}async initialize(){if(!this.initialized)try{await dt.mkdir(this.logDir,{recursive:!0}),this.initialized=!0}catch(e){throw pt.error("Failed to initialize OpenAI logger:",e),new Error(`Failed to initialize OpenAI logger: ${e}`)}}async logInteraction(e,n,o,r){this.initialized||await this.initialize();let i=new Date().toISOString().replace(/:/g,"-"),s=ln().slice(0,8),a=ii(r),l=a?`openai-${i}-${s}-${a}.json`:`openai-${i}-${s}.json`,c=G.join(this.logDir,l),u={timestamp:new Date().toISOString(),request:e,response:n||null,error:o?{message:o.message,stack:o.stack}:null,context:ai(r),system:{hostname:X.hostname(),platform:X.platform(),release:X.release(),nodeVersion:process.version}};try{return await dt.writeFile(c,JSON.stringify(u,null,2),"utf-8"),c}catch(f){throw pt.error("Failed to write OpenAI log file:",f),new Error(`Failed to write OpenAI log file: ${f}`)}}async getLogFiles(e){this.initialized||await this.initialize();try{let o=(await dt.readdir(this.logDir)).filter(r=>r.startsWith("openai-")&&r.endsWith(".json")).map(r=>G.join(this.logDir,r)).sort().reverse();return e?o.slice(0,e):o}catch(n){return n.code==="ENOENT"?[]:(pt.error("Failed to read OpenAI log directory:",n),[])}}async readLogFile(e){try{let n=await dt.readFile(e,"utf-8");return JSON.parse(n)}catch(n){throw pt.error(`Failed to read log file ${e}:`,n),new Error(`Failed to read log file: ${n}`)}}},bl=new De;p();var li="MATILDA_CODE_PROFILE_RUNTIME";function To(t=process.env){return t[li]==="1"}var cn=class{enabled;now;startedAt;requestIndex=0;openAIWireRequestIndex=0;requests=[];openaiWireRequests=[];tools=So();constructor(e={}){this.enabled=e.enabled??To(),this.now=e.now??(()=>new Date().toISOString()),this.startedAt=this.now()}reset(e={}){this.enabled=e.enabled??To(),this.startedAt=this.now(),this.requestIndex=0,this.openAIWireRequestIndex=0,this.requests=[],this.openaiWireRequests=[],this.tools=So()}isEnabled(){return this.enabled}recordGenerateContentRequest(e,n){this.enabled&&(this.requestIndex+=1,this.requests.push({index:this.requestIndex,timestamp:this.now(),source:n.source,model:e.model,stream:n.stream,serializedBytes:D(gi(e)),contents:Ao(e.contents),systemInstructionBytes:di(e.config?.systemInstruction),generationConfigBytes:D(Eo(e.config)),tools:fi(e.config?.tools)}))}recordOpenAIWireRequest(e){this.enabled&&(this.openAIWireRequestIndex+=1,this.openaiWireRequests.push({index:this.openAIWireRequestIndex,timestamp:this.now(),...ui(e)}))}recordToolUse(e,n){if(!this.enabled)return;let o=D(n),r=this.getToolNameDiagnostics(e);r.uses+=1,r.argBytes+=o,r.maxArgBytes=Math.max(r.maxArgBytes,o),this.tools.toolUseCount+=1,this.tools.totalToolUseArgBytes+=o,this.tools.maxToolUseArgBytes=Math.max(this.tools.maxToolUseArgBytes,o)}recordToolResult(e){if(!this.enabled)return;let n=this.getToolNameDiagnostics(e.name);n.results+=1,n.resultBytes+=e.resultBytes,n.maxResultBytes=Math.max(n.maxResultBytes,e.resultBytes),e.isError&&(n.errors+=1,this.tools.toolResultErrorCount+=1),this.tools.toolResultCount+=1,this.tools.totalToolResultBytes+=e.resultBytes,this.tools.maxToolResultBytes=Math.max(this.tools.maxToolResultBytes,e.resultBytes)}snapshot(){return{enabled:this.enabled,startedAt:this.startedAt,requests:this.requests.map(e=>({...e,contents:{...e.contents,roleCounts:{...e.contents.roleCounts}},tools:{...e.tools}})),openaiWireRequests:this.openaiWireRequests.map(e=>({...e,messageBytesByRole:{...e.messageBytesByRole},topLevelKeys:[...e.topLevelKeys]})),tools:{...this.tools,byName:Object.fromEntries(Object.entries(this.tools.byName).map(([e,n])=>[e,{...n}]))}}}getToolNameDiagnostics(e){let n=this.tools.byName[e];if(n)return n;let o=ci();return this.tools.byName[e]=o,o}},dn=new cn;function ui(t){let e=pe(t),n=Array.isArray(e.messages)?e.messages:[],o=Array.isArray(e.tools)?e.tools:[],r={};for(let i of n){let s=pe(i),a=typeof s.role=="string"?s.role:"unknown";r[a]=(r[a]??0)+D(s.content)}return{model:typeof e.model=="string"?e.model:"unknown",stream:e.stream===!0,bodyBytes:D(t),messageCount:n.length,messageBytesByRole:r,toolsCount:o.length,toolSchemaBytes:D(o),topLevelKeys:Object.keys(e).sort()}}function So(){return{toolUseCount:0,toolResultCount:0,toolResultErrorCount:0,totalToolUseArgBytes:0,maxToolUseArgBytes:0,totalToolResultBytes:0,maxToolResultBytes:0,byName:Object.create(null)}}function ci(){return{uses:0,argBytes:0,maxArgBytes:0,results:0,errors:0,resultBytes:0,maxResultBytes:0}}function Ao(t){let e={count:0,roleCounts:{},partCount:0,textBytes:0,functionCallCount:0,functionCallArgBytes:0,functionResponseCount:0,functionResponseBytes:0,inlineDataCount:0,inlineDataBytes:0,fileDataCount:0},n=Array.isArray(t)?t:t==null?[]:[t];for(let o of n){if(e.count+=1,typeof o=="string"){e.roleCounts.user=(e.roleCounts.user??0)+1,e.partCount+=1,e.textBytes+=D(o);continue}let r=pe(o),i=typeof r.role=="string"?r.role:"unknown";e.roleCounts[i]=(e.roleCounts[i]??0)+1;let s=Array.isArray(r.parts)?r.parts:[];pi(s,e)}return e}function di(t){return Ao(t).textBytes}function pi(t,e){for(let n of t){if(e.partCount+=1,typeof n=="string"){e.textBytes+=D(n);continue}let o=pe(n);typeof o.text=="string"&&(e.textBytes+=D(o.text));let r=un(o.functionCall);r&&(e.functionCallCount+=1,e.functionCallArgBytes+=D(r.args));let i=un(o.functionResponse);i&&(e.functionResponseCount+=1,e.functionResponseBytes+=D(i.response)+D(i.parts));let s=un(o.inlineData);s&&(e.inlineDataCount+=1,e.inlineDataBytes+=D(s.data)),o.fileData&&(e.fileDataCount+=1)}}function fi(t){let e=Array.isArray(t)?t:[],n=0;for(let o of e){let r=pe(o),i=Array.isArray(r.functionDeclarations)?r.functionDeclarations:[];n+=i.length}return{count:e.length,functionDeclarationCount:n,schemaBytes:D(e)}}function gi(t){return{model:t.model,contents:t.contents,config:Eo(t.config)}}function Eo(t){if(!t)return;let e=pe(t),n={};for(let[o,r]of Object.entries(e))o!=="abortSignal"&&(n[o]=r);return n}function D(t){return t==null?0:typeof t=="string"?Buffer.byteLength(t,"utf8"):Buffer.byteLength(mi(t),"utf8")}function mi(t){try{return JSON.stringify(t)??""}catch{return"[unserializable]"}}function pe(t){return typeof t=="object"&&t!==null?t:{}}function un(t){return typeof t=="object"&&t!==null?t:null}p();function Ro(t){let e=t.candidates?.[0]?.content?.parts;return!e||e.length===0?!1:e.some(hi)}function hi(t){if(t===null||typeof t!="object")return!1;let e=t;return typeof e.text=="string"&&e.text.length>0||e.functionCall!==void 0||e.inlineData!==void 0||e.executableCode!==void 0||e.thought===!0}function bo(){let t=Dn.getStore();return{attempt:t?.attempt??1,requestSetupMs:t?.requestSetupMs,retryTotalDelayMs:t?.retryTotalDelayMs}}var se=N("LOGGING_CONTENT_GENERATOR"),Ci=4096,vo="...[truncated]",yi=Ci-vo.length,Le=class{constructor(e,n,o){this.wrapped=e;this.config=n;this.modalities=o.modalities,this.splitToolMedia=o.splitToolMedia,this.generatorAuthType=o.authType,o.enableOpenAILogging&&(this.openaiLogger=new De(o.openAILoggingDir,n.getWorkingDir()),this.schemaCompliance=o.schemaCompliance)}openaiLogger;schemaCompliance;modalities;splitToolMedia;generatorAuthType;getWrapped(){return this.wrapped}logApiRequest(e,n,o){let r=JSON.stringify(e);Ft(this.config,new $t(n,o,r,q.getStore()))}_logApiResponse(e,n,o,r,i,s){Kt(this.config,new jt(e,o,n,r,this.generatorAuthType,i,s,q.getStore()))}_logApiError(e,n,o,r,i){let s=Nn(o),a=ke(o),l=o?.requestID||o?.request_id||e,c=H(o);Gt(this.config,new Bt({responseId:l,model:r,durationMs:n,promptId:i,authType:this.generatorAuthType,errorMessage:s,errorType:a,statusCode:c,subagentName:q.getStore()}))}safelyLogApiError(e,n,o,r,i){try{this._logApiError(e,n,o,r,i)}catch(s){se.warn("Failed to log API error:",s)}}safelyLogApiResponse(e,n,o,r,i,s){try{this._logApiResponse(e,n,o,r,i,s)}catch(a){se.warn("Failed to log API response:",a)}}getClientVisibleModelId(e,n){return("isManagedMatildaModel"in this.config&&typeof this.config.isManagedMatildaModel=="function"?this.config.isManagedMatildaModel(e):!1)&&"getPublicModelId"in this.config&&typeof this.config.getPublicModelId=="function"?this.config.getPublicModelId(e):n||e}async generateContent(e,n){let o=bo(),r=Ye(e.model,n);try{r.setAttribute("llm_request.stream",!1)}catch{}let i=Ut.setSpan(j.active(),r),s=Date.now(),a=le(n),l=this.startCaptureSession();try{dn.recordGenerateContentRequest(e,{stream:!1,source:"generateContent"}),a||(He(this.config,r,e.config?.systemInstruction),qe(this.config,r,e.config?.tools));let c=await j.with(i,async()=>{a||this.logApiRequest(this.toContents(e.contents),e.model,n);let u=await l.wrap(()=>this.wrapped.generateContent(e,n)),f=Date.now()-s,d=a?void 0:this.extractResponseText(u);a||Je(this.config,r,d),this.safelyLogApiResponse(u.responseId??"",f,this.getClientVisibleModelId(e.model,u.modelVersion),n,u.usageMetadata,d);try{await this.safelyLogOpenAIInteraction(await l.resolve(e),u,void 0,n)}catch(g){se.warn("Failed to log OpenAI interaction:",g)}return u});return oe(r,{success:!0,inputTokens:c.usageMetadata?.promptTokenCount,outputTokens:c.usageMetadata?.candidatesTokenCount,cachedInputTokens:c.usageMetadata?.cachedContentTokenCount,durationMs:Date.now()-s,responseId:c.responseId||void 0,finishReason:c.candidates?.[0]?.finishReason||void 0,thoughtsTokenCount:c.usageMetadata?.thoughtsTokenCount,subagentName:q.getStore()||void 0,...o}),c}catch(c){let u=Date.now()-s,f=e.config?.abortSignal?.aborted??!1;throw oe(r,{success:!1,durationMs:u,error:f?Qe:Xe,errorType:ke(c),errorStatusCode:H(c),subagentName:q.getStore()||void 0,...o}),await j.with(i,async()=>{this.safelyLogApiError("",u,c,this.getClientVisibleModelId(e.model),n);try{await this.safelyLogOpenAIInteraction(await l.resolve(e),void 0,c,n)}catch(d){se.warn("Failed to log OpenAI interaction:",d)}}),c}}async generateContentStream(e,n){let o=bo(),r=Ye(e.model,n);try{r.setAttribute("llm_request.stream",!0)}catch{}let i=Ut.setSpan(j.active(),r),s=Date.now(),a=le(n),l=this.startCaptureSession(),c;try{dn.recordGenerateContentRequest(e,{stream:!0,source:"generateContentStream"}),a||(He(this.config,r,e.config?.systemInstruction),qe(this.config,r,e.config?.tools)),c=await j.with(i,async()=>(a||this.logApiRequest(this.toContents(e.contents),e.model,n),l.wrap(()=>this.wrapped.generateContentStream(e,n))))}catch(f){let d=Date.now()-s;j.with(i,()=>this.safelyLogApiError("",d,f,e.model,n));let g=e.config?.abortSignal?.aborted??!1;oe(r,{success:!1,durationMs:d,error:g?Qe:Xe,errorType:ke(f),errorStatusCode:H(f),subagentName:q.getStore()||void 0,...o});try{await this.safelyLogOpenAIInteraction(await l.resolve(e),void 0,f,n)}catch(h){se.warn("Failed to log OpenAI interaction:",h)}throw f}let u;if(this.openaiLogger)try{u=await l.resolve(e)}catch(f){se.warn("Failed to resolve OpenAI request:",f)}return j.with(i,()=>this.loggingStreamWrapper(c,s,n,e.model,u,r,i,e.config?.abortSignal,o))}startCaptureSession(){let e,n=!this.openaiLogger;return{wrap:o=>n?o():ho.run(r=>{e=r},o),resolve:async o=>this.openaiLogger?e??await this.buildOpenAIRequestForLogging(o):void 0}}async*loggingStreamWrapper(e,n,o,r,i,s,a,l,c){let u=le(o),f=!u||!!this.openaiLogger,d=[],g="",h="",m,C=!1,T,S=!1,R,w=q.getStore(),v,x=!1,B=I=>a?j.with(a,I):I(),Dt=5*6e4,P,ae=s?()=>{x||(P!==void 0&&clearTimeout(P),P=setTimeout(()=>{try{s.setAttribute("stream.timed_out",!0)}catch{}oe(s,{success:!1,durationMs:Date.now()-n,error:"Stream span timed out (idle)",responseId:g||void 0,subagentName:w||void 0,...c}),x=!0},Dt),P.unref())}:void 0;try{for await(let L of e){!g&&L.responseId&&(g=L.responseId),!h&&L.modelVersion&&(h=L.modelVersion),f&&d.push(L),L.usageMetadata&&(m=L.usageMetadata);let ve=L.candidates?.[0];ve?.finishReason&&(T=ve.finishReason),L.functionCalls?.length&&(S=!0),v===void 0&&Ro(L)&&(v=Date.now()-n),ae?.(),yield L,P!==void 0&&(clearTimeout(P),P=void 0)}P!==void 0&&(clearTimeout(P),P=void 0);let I=Date.now()-n,Z=f?this.consolidateGeminiResponsesForLogging(d):void 0,Be=u?void 0:this.extractResponseText(Z),ee=!T&&!S?new Error("Model stream ended without a finish reason"):void 0;ee&&(C=!0,R=ee),x||(ee?(B(()=>this.safelyLogApiError(g,I,ee,this.getClientVisibleModelId(r,h),o)),await B(()=>this.safelyLogOpenAIInteraction(i,Z,ee,o))):(B(()=>this.safelyLogApiResponse(g,I,this.getClientVisibleModelId(r,h),o,m,Be)),!u&&s&&Je(this.config,s,Be),await B(()=>this.safelyLogOpenAIInteraction(i,Z,void 0,o))))}catch(I){if(C=!0,R=I,!x){let Z=Date.now()-n;B(()=>this.safelyLogApiError(g,Z,I,this.getClientVisibleModelId(r,h),o)),await B(()=>this.safelyLogOpenAIInteraction(i,void 0,I,o))}throw I}finally{if(P!==void 0&&clearTimeout(P),s&&!x){let I=l?.aborted??!1;oe(s,{success:!C,inputTokens:m?.promptTokenCount,outputTokens:m?.candidatesTokenCount,cachedInputTokens:m?.cachedContentTokenCount,ttftMs:v,durationMs:Date.now()-n,error:C?I?Qe:Xe:void 0,responseId:g||void 0,finishReason:T,thoughtsTokenCount:m?.thoughtsTokenCount,subagentName:w||void 0,errorType:R?ke(R):void 0,errorStatusCode:R?H(R):void 0,...c})}}}async buildOpenAIRequestForLogging(e){if(!this.openaiLogger)return;let n=this.createLoggingRequestContext(e.model),o=lt.convertGeminiRequestToOpenAI(e,n,{cleanOrphanToolCalls:!1}),r={model:e.model,messages:o};return e.config?.tools&&(r.tools=await lt.convertGeminiToolsToOpenAI(e.config.tools,this.schemaCompliance??"auto")),e.config?.temperature!==void 0&&(r.temperature=e.config.temperature),e.config?.topP!==void 0&&(r.top_p=e.config.topP),e.config?.maxOutputTokens!==void 0&&(r.max_tokens=e.config.maxOutputTokens),e.config?.presencePenalty!==void 0&&(r.presence_penalty=e.config.presencePenalty),e.config?.frequencyPenalty!==void 0&&(r.frequency_penalty=e.config.frequencyPenalty),r}createLoggingRequestContext(e){return{model:e,modalities:this.modalities??{},splitToolMedia:this.splitToolMedia??!0,startTime:0}}async logOpenAIInteraction(e,n,o,r){if(!this.openaiLogger||!e)return;let i=n?this.convertGeminiResponseToOpenAIForLogging(n,e):void 0;await this.openaiLogger.logInteraction(e,i,o instanceof Error?o:o?new Error(String(o)):void 0,r)}async safelyLogOpenAIInteraction(e,n,o,r){try{await this.logOpenAIInteraction(e,n,o,r)}catch(i){se.warn("Failed to log OpenAI interaction:",i)}}convertGeminiResponseToOpenAIForLogging(e,n){let o=new ne;return Object.assign(o,e),o.modelVersion=this.getClientVisibleModelId(n.model,e.modelVersion),lt.convertGeminiResponseToOpenAI(o,this.createLoggingRequestContext(n.model))}consolidateGeminiResponsesForLogging(e){if(e.length===0)return;let n=new ne,o=[],r=new Map,i,s;for(let c of e){c.usageMetadata&&(s=c.usageMetadata);let u=c.candidates?.[0];u?.finishReason&&(i=u.finishReason);let f=u?.content?.parts??[];for(let d of f){if(typeof d=="string"){o.push({text:d});continue}if("text"in d){d.text&&o.push({text:d.text,...d.thought?{thought:!0}:{},...d.thoughtSignature?{thoughtSignature:d.thoughtSignature}:{}});continue}if("functionCall"in d&&d.functionCall){let g=d.functionCall.id||d.functionCall.name||"tool_call",h=r.get(g),m={functionCall:d.functionCall};h!==void 0?o[h]=m:(r.set(g,o.length),o.push(m));continue}if("functionResponse"in d&&d.functionResponse){o.push({functionResponse:d.functionResponse});continue}o.push(d)}}let a=e[e.length-1],l=a.candidates?.[0];return n.responseId=a.responseId,n.createTime=a.createTime,n.modelVersion=a.modelVersion,n.promptFeedback=a.promptFeedback,n.usageMetadata=s,n.candidates=[{content:{role:l?.content?.role||"model",parts:o},...i?{finishReason:i}:{},index:0,safetyRatings:l?.safetyRatings||[]}],n}extractResponseText(e){let n=e?.candidates?.[0]?.content?.parts;if(!n?.length)return;let o="",r=!1,i=!1,s=a=>{if(r=!0,i)return;let l=yi-o.length;if(a.length<=l){o+=a;return}o+=a.slice(0,Math.max(0,l)),i=!0};for(let a of n){if(typeof a=="string"){s(a);continue}"text"in a&&typeof a.text=="string"&&!("thought"in a&&a.thought)&&s(a.text)}if(r)return i?`${o}${vo}`:o}async countTokens(e){return this.wrapped.countTokens(e)}async embedContent(e){return this.wrapped.embedContent(e)}useSummarizedThinking(){return this.wrapped.useSummarizedThinking()}toContents(e){return Array.isArray(e)?e.map(n=>this.toContent(n)):[this.toContent(e)]}toContent(e){return Array.isArray(e)?{role:"user",parts:this.toParts(e)}:typeof e=="string"?{role:"user",parts:[{text:e}]}:"parts"in e?{...e,parts:e.parts?this.toParts(e.parts.filter(n=>n!=null)):[]}:{role:"user",parts:[this.toPart(e)]}}toParts(e){return e.map(n=>this.toPart(n))}toPart(e){if(typeof e=="string")return{text:e};if("thought"in e&&e.thought){let n=`[Thought: ${e.thought}]`,o={...e};if(delete o.thought,"functionCall"in o||"functionResponse"in o||"inlineData"in o||"fileData"in o)return o;let i=o.text,s=i?String(i):"",a=s?`${s}
15
+ ${n}`:n;return{...o,text:a}}return e}};p();var pn="x-matilda-organization-id",Ti=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Zl(t){if(t!==void 0){if(typeof t!="string"||t.length!==36||!Ti.test(t))throw new Error("--organization-id must be a single UUID.");return t.toLowerCase()}}function fn(t){if(t)try{let e=new URL(t);if((e.hostname==="matilda.maincode.com"&&e.protocol==="https:"&&!e.port||e.hostname==="core-api.matilda"&&(e.protocol==="http:"||e.protocol==="https:"))&&!e.username&&!e.password&&!e.search&&!e.hash)return e}catch{}}function gn(t,e,n){if(e===void 0&&n===void 0)return;let o=fn(t.baseUrl);if(!o||o.pathname.replace(/\/$/,"")!=="/api/v1/code"||t.authType!=="openai")throw new Error("Organization selection and credit spending require the first-party Matilda Core Code endpoint.")}function Mo(t){for(let e of Object.keys(t??{})){let n=e.toLowerCase();if(n===pn)throw new Error("Select the organization with --organization-id, not customHeaders.");if(n.startsWith("x-matilda-usage-credit-"))throw new Error("Code credit spending through customHeaders is not supported.")}}function eu(t,e,n,o,r){gn(n,o,r);let i=fn(n.baseUrl),s=fn(t instanceof Request?t.url:String(t));if(!s||s.origin!==i.origin||s.pathname!=="/api/v1/code/chat/completions")throw new Error("The selected organization cannot be sent to this endpoint.");let a=e.get(pn);if(a!==null&&a!==o)throw new Error("The request organization conflicts with --organization-id.");o!==void 0&&e.set(pn,o)}p();function ko(t){switch(t){case"openai":return"OPENAI_API_KEY";default:return"API_KEY"}}function _o(t){switch(t){case"openai":return"OPENAI_MODEL";default:return"MODEL"}}var fe=class extends Error{constructor(e){super(e),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},ft=class extends fe{code="STRICT_MISSING_CREDENTIALS";constructor(e,n,o){let r=e||"(unknown)",i=n||"(unknown)";super(`Missing credentials for modelProviders model '${i}'. `+(o?`Current configured envKey: '${o}'. Set that environment variable, or update modelProviders.${r}[].envKey.`:`Configure modelProviders.${r}[].envKey and set that environment variable.`))}},gt=class extends fe{code="STRICT_MISSING_MODEL_ID";constructor(e){super(`Missing model id for strict modelProviders resolution (authType: ${e}).`)}},mt=class extends fe{code="MISSING_API_KEY";constructor(e){super(`Missing API key for ${e.authType} auth. Current model: '${e.model||"(unknown)"}', baseUrl: '${e.baseUrl||"(default)"}'. Provide an API key via settings (security.auth.apiKey), or set the environment variable '${e.envKey}'.`)}},ht=class extends fe{code="MISSING_MODEL";constructor(e){super(`Missing model for ${e.authType} auth. Set the environment variable '${e.envKey}'.`)}};p();import Tn from"node:process";p();function iu(t,e,n,o=2048){let r=e-n-o;return!Number.isFinite(r)||r<=0?0:Math.min(t,r)}var b={"32k":32768,"64k":65536,"128k":131072,"200k":2e5,"256k":262144,"272k":272e3,"400k":4e5,"512k":524288,"1m":1e6,"4k":4096,"8k":8192,"16k":16384};function Ct(t){let e=(t??"").toLowerCase().trim();return e=e.replace(/^.*\//,""),e=e.split("|").pop()??e,e=e.split(":").pop()??e,e=e.replace(/\s+/g,"-"),e=e.replace(/-preview/g,""),e.match(/^kimi-k2-\d{4}$/)||(e=e.replace(/-(?:\d{4,}|\d+x\d+b|v\d+(?:\.\d+)*|(?<=-[^-]+-)\d+(?:\.\d+)+|latest|exp)$/g,"")),e=e.replace(/-(?:\d?bit|int[48]|bf16|fp16|q[45]|quantized)$/g,""),e}var Si=[[/^gemini-3/,b["1m"]],[/^gemini-/,b["1m"]],[/^gpt-5/,b["272k"]],[/^gpt-/,b["128k"]],[/^o\d/,b["200k"]],[/^claude-/,b["200k"]],[/^glm-5(\.[01])?(-|$)/,202752],[/^glm-(?:[5-9]|\d{2,})/,b["1m"]],[/^glm-/,202752],[/^matilda-code$/,b["1m"]],[/^matilda/,b["256k"]],[/^ornith/,b["64k"]],[/^kimi-/,b["256k"]],[/^seed-oss/,b["512k"]]],wo=[[/^gemini-3/,b["64k"]],[/^gemini-/,b["8k"]],[/^gpt-5/,b["128k"]],[/^gpt-/,b["16k"]],[/^o\d/,b["128k"]],[/^claude-opus-4-6/,b["128k"]],[/^claude-sonnet-4-6/,b["64k"]],[/^claude-/,b["64k"]],[/^glm-5\.2/,b["64k"]],[/^glm-5/,b["64k"]],[/^glm-4\.7/,b["16k"]],[/^matilda-code$/,b["64k"]],[/^matilda$/,b["64k"]],[/^matilda-core$/,b["64k"]],[/^ornith/,b["32k"]],[/^kimi-k2\.5/,b["32k"]]];function Ai(t,e="input"){let n=Ct(t),o=e==="output"?wo:Si;for(let[r,i]of o)if(r.test(n))return i}function su(t){let e=Ct(t);return wo.some(([n])=>n.test(e))}function Ei(t,e="input"){return Ai(t,e)}function yt(t,e="input"){return Ei(t,e)??(e==="output"?32e3:131072)}p();p();var xo={image:!0,pdf:!0,audio:!0,video:!0},Ri=[[/^gemini-3/,xo],[/^gemini-/,xo],[/^gpt-5/,{image:!0}],[/^gpt-/,{image:!0}],[/^o\d/,{image:!0}],[/^claude-/,{image:!0,pdf:!0}],[/^glm-4\.5v/,{image:!0}],[/^glm-5(?:-|$)/,{}],[/^glm-/,{}],[/^kimi-k2\.5/,{image:!0,video:!0}],[/^kimi-/,{}],[/^doubao-seed(ance|ream)/,{}],[/^doubao-seed/,{image:!0}],[/^doubao-.*(vision|vl)/,{image:!0}],[/^doubao/,{}]];function Tt(t){let e=Ct(t);for(let[n,o]of Ri)if(n.test(e))return{...o};return{}}p();function Io(t,e,n={kind:"default"}){for(let o of t)if(Oo(o.value))return{value:o.value,source:o.source};return{value:e,source:n}}function mn(t){for(let e of t)if(Oo(e.value))return{value:e.value,source:e.source}}function Oo(t){return!(t==null||typeof t=="string"&&t.trim()==="")}function St(t){return{kind:"cli",detail:t}}function bi(t){return{kind:"env",envKey:t}}function Ue(t){return{kind:"settings",settingsPath:t}}function ge(t,e,n){return{kind:"modelProviders",authType:t,modelId:e,detail:n}}function hn(t){return{kind:"default",detail:t}}function At(t){return{kind:"computed",detail:t}}function Et(t,e,n){let o=t[e];return{value:o!==void 0?n?n(o):o:void 0,source:bi(e)}}function U(t,e){return{value:t,source:e}}p();var me=["samplingParams","timeout","maxRetries","retryErrorCodes","enableCacheControl","schemaCompliance","reasoning","contextWindowSize","customHeaders","extra_body","modalities","splitToolMedia","openAIRequestProfile"],Po=["model","apiKey","apiKeyEnvKey","baseUrl"],Rt=[...Po,...me],Do={openai:{apiKey:["OPENAI_API_KEY"],baseUrl:["OPENAI_BASE_URL"],model:["OPENAI_MODEL","MATILDA_MODEL"]}},Lo={openai:et};var he="MATILDA_API_KEY",vi="matilda-code-1.0";function Mi(t,e){if(!t)return!0;try{let{hostname:n}=new URL(t);return n==="matilda.maincode.com"||n.endsWith(".matilda.maincode.com")||Ze(t,e)}catch{return!1}}function ki(t,e,n,o){if(o?.timeout!==void 0)return;let r=t.MATILDA_CODE_API_TIMEOUT_MS;if(r===void 0)return;let i=Number(r);Number.isFinite(i)&&i>0&&(e.timeout=Math.floor(i),n.timeout={kind:"env",envKey:"MATILDA_CODE_API_TIMEOUT_MS"})}function Eu(t){let{authType:e,cli:n,settings:o,env:r,modelProvider:i,proxy:s}=t,a=[],l={},c=e?Do[e]:{model:[],apiKey:[],baseUrl:[]},u=[];e&&i&&u.push(U(i.id,ge(e,i.id,"model.id"))),n?.model&&u.push(U(n.model,St("--model"))),e==="openai"&&r[he]&&!r.OPENAI_MODEL&&!r.MATILDA_MODEL&&u.push(U(vi,{kind:"env",envKey:he}));for(let v of c.model)u.push(Et(r,v));o?.model&&u.push(U(o.model,Ue("model.name")));let f=e?Lo[e]:"",d=Io(u,f,hn(f));l.model=d.source;let g=[];if(e&&i?.envKey){let v=r[i.envKey];v&&g.push(U(v,{kind:"env",envKey:i.envKey,via:ge(e,i.id,"envKey")}))}if(n?.apiKey&&g.push(U(n.apiKey,St("--openaiApiKey"))),!i?.envKey){let v=r[he];e==="openai"&&v&&Mi(r.OPENAI_BASE_URL,r)&&g.push(U(v,{kind:"env",envKey:he}));for(let x of c.apiKey)g.push(Et(r,x))}o?.apiKey&&g.push(U(o.apiKey,Ue("security.auth.apiKey")));let h=mn(g);h&&(l.apiKey=h.source);let m=[];e&&i?.baseUrl&&m.push(U(i.baseUrl,ge(e,i.id,"baseUrl"))),n?.baseUrl&&m.push(U(n.baseUrl,St("--openaiBaseUrl"))),e==="openai"&&r[he]&&!r.OPENAI_BASE_URL&&m.push(U(K(r),{kind:"env",envKey:he}));for(let v of c.baseUrl)m.push(Et(r,v));o?.baseUrl&&m.push(U(o.baseUrl,Ue("security.auth.baseUrl")));let C=mn(m)??(e==="openai"?{value:K(r),source:hn("the configured Matilda endpoint")}:void 0);C&&(l.baseUrl=C.source);let T;e&&i?.envKey&&(T=i.envKey,l.apiKeyEnvKey={...ge(e,i.id,"envKey"),envKey:i.envKey});let S=bt(o?.generationConfig,i?.generationConfig,e,i?.id??d.value,r),R=S.config;Object.assign(l,S.sources);let w={authType:e,model:d.value||"",apiKey:h?.value,apiKeyEnvKey:T,baseUrl:C?.value,proxy:s,...R};return s&&(l.proxy=At("Config.getProxy()")),l.authType=At("provided by caller"),{config:w,sources:l,warnings:a}}function bt(t,e,n,o,r){let i={},s=_i(t,e,n,o,i);return ki(r,s,i,e),{config:s,sources:i}}function _i(t,e,n,o,r){let i={};for(let s of me)n&&e&&s in e?(i[s]=e[s],r[s]=ge(n,o||"",`generationConfig.${s}`)):t&&s in t&&(i[s]=t[s],r[s]=Ue(`model.generationConfig.${s}`));return i.modalities===void 0&&o&&(i.modalities=Tt(o),r.modalities=At("auto-detected from model")),i}p();var vt="$runtime|";function Mu(t){let e=t;for(;e.startsWith(vt);){let n=e.split("|").slice(2).join("|");if(!n)break;e=n}return e}p();p();var yn=N("MODEL_REGISTRY");function Uo(t){if(Object.values($).includes(t))return t}function No(t,e){return e?`${t}\0${e}`:t}var Mt=class{modelsByAuthType;constructor(e){if(this.modelsByAuthType=new Map,e)for(let[n,o]of Object.entries(e)){let r=Uo(n);if(!r){yn.warn(`Invalid authType key "${n}" in modelProviders config. Expected one of: ${Object.values($).join(", ")}. Skipping.`);continue}this.registerAuthTypeModels(r,o)}}registerAuthTypeModels(e,n){let o=new Map;for(let r of n){let i=No(r.id,r.baseUrl);if(o.has(i)){yn.warn(`Duplicate model id "${r.id}"${r.baseUrl?` with baseUrl "${r.baseUrl}"`:""} for authType "${e}". Using the first registered config.`);continue}let s=this.resolveModelConfig(r,e);o.set(i,s)}this.modelsByAuthType.set(e,o)}getModelsForAuthType(e){let n=this.modelsByAuthType.get(e);return n?Array.from(n.values()).map(o=>({id:o.id,label:o.name,description:o.description,capabilities:o.capabilities,authType:o.authType,isVision:o.capabilities?.vision??!1,contextWindowSize:o.generationConfig.contextWindowSize??yt(o.id),modalities:o.generationConfig.modalities??Tt(o.id),baseUrl:o.baseUrl,envKey:o.envKey})):[]}getModel(e,n,o){let r=this.modelsByAuthType.get(e);if(!r)return;if(o)return r.get(No(n,o));let i=r.get(n);if(i)return i;for(let s of r.values())if(s.id===n)return s}hasModel(e,n,o){return this.getModel(e,n,o)!==void 0}getDefaultModelForAuthType(e){let n=this.modelsByAuthType.get(e);if(!(!n||n.size===0))return Array.from(n.values())[0]}resolveModelConfig(e,n){return this.validateModelConfig(e,n),{...e,authType:n,name:e.name||e.id,baseUrl:e.baseUrl||K(),generationConfig:{...e.generationConfig??{}},capabilities:e.capabilities||{}}}validateModelConfig(e,n){if(!e.id)throw new Error(`Model config in authType '${n}' missing required field: id`)}reloadModels(e){if(this.modelsByAuthType.clear(),e)for(let[n,o]of Object.entries(e)){let r=Uo(n);if(!r){yn.warn(`Invalid authType key "${n}" in modelProviders config. Expected one of: ${Object.values($).join(", ")}. Skipping.`);continue}this.registerAuthTypeModels(r,o)}}};var Fo=class t{modelRegistry;currentAuthType;_generationConfig;generationConfigSources;strictModelProviderSelection=!1;hasManualCredentials=!1;onModelChange;authTypeWasExplicitlyProvided;settingsGenerationConfig;runtimeModelSnapshots=new Map;activeRuntimeModelSnapshotId;static deepClone(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(o=>t.deepClone(o));let n={};for(let o of Object.keys(e))n[o]=t.deepClone(e[o]);return n}constructor(e={}){this.modelRegistry=new Mt(e.modelProvidersConfig),this.onModelChange=e.onModelChange,this._generationConfig={...e.generationConfig||{}},this.generationConfigSources=e.generationConfigSources||{},this.settingsGenerationConfig=t.deepClone(e.settingsGenerationConfig),this.authTypeWasExplicitlyProvided=e.initialAuthType!==void 0,this.currentAuthType=e.initialAuthType}createStateSnapshotForRollback(){return{currentAuthType:this.currentAuthType,generationConfig:t.deepClone(this._generationConfig),generationConfigSources:t.deepClone(this.generationConfigSources),strictModelProviderSelection:this.strictModelProviderSelection,hasManualCredentials:this.hasManualCredentials,activeRuntimeModelSnapshotId:this.activeRuntimeModelSnapshotId}}rollbackToStateSnapshot(e){this.currentAuthType=e.currentAuthType,this._generationConfig=e.generationConfig,this.generationConfigSources=e.generationConfigSources,this.strictModelProviderSelection=e.strictModelProviderSelection,this.hasManualCredentials=e.hasManualCredentials,this.activeRuntimeModelSnapshotId=e.activeRuntimeModelSnapshotId}getModel(){return this._generationConfig.model||et}getCurrentAuthType(){return this.currentAuthType}wasAuthTypeExplicitlyProvided(){return this.authTypeWasExplicitlyProvided}getAvailableModels(){return this.currentAuthType?this.modelRegistry.getModelsForAuthType(this.currentAuthType):[]}getAvailableModelsForAuthType(e){return this.modelRegistry.getModelsForAuthType(e)}getAllConfiguredModels(e){let n=e&&e.length>0?e:Object.values($),o=new Set,r=[];for(let a of n)o.has(a)||(o.add(a),r.push(a));let i=this.getRuntimeModelOption(),s=[];for(let a of r)i&&i.authType===a&&s.push(i),s.push(...this.modelRegistry.getModelsForAuthType(a));return s}hasModel(e,n){return this.modelRegistry.hasModel(e,n)}getResolvedModel(e,n){let o=this.modelRegistry.getModel(e,n);if(o)return{...o,generationConfig:this.resolveEntryGenerationConfig(o).config}}resolveEntryGenerationConfig(e){return bt(this.settingsGenerationConfig,e.generationConfig,e.authType,e.id,Tn.env)}isManagedMatildaResolvedModel(e){return e?.id===Vt&&e?.envKey===Gn&&e?.baseUrl===$n&&e?.generationConfig?.openAIRequestProfile==="matilda-code"}isManagedMatildaModel(e){let n=e.trim();return!n||!this.currentAuthType?!1:this.isManagedMatildaResolvedModel(this.modelRegistry.getModel(this.currentAuthType,n))}getPublicModelId(e){return this.isManagedMatildaModel(e)?Vt:e}getModelDisplayName(e){return this.isManagedMatildaModel(e)?Kn:this.currentAuthType?this.modelRegistry.getModel(this.currentAuthType,e)?.name??e:e}async setModel(e,n){if(this.currentAuthType&&this.modelRegistry.hasModel(this.currentAuthType,e)){await this.switchModel(this.currentAuthType,e);return}let o=this.createStateSnapshotForRollback();try{this.strictModelProviderSelection=!1,this._generationConfig.model=e,this.generationConfigSources.model={kind:"programmatic",detail:n?.reason||"setModel"},this.applyRawModelDerivedDefaults(e),this.onModelChange&&this.currentAuthType&&await this.onModelChange(this.currentAuthType)}catch(r){throw this.rollbackToStateSnapshot(o),r}}applyRawModelDerivedDefaults(e){let n=bt(this.settingsGenerationConfig,void 0,this.currentAuthType,e,Tn.env);this.shouldUpdateModelDerivedDefault("modalities")&&this.applyResolvedField("modalities",n),this.shouldUpdateModelDerivedDefault("contextWindowSize")&&(this.applyResolvedField("contextWindowSize",n),this.fillContextWindowSize(e))}applyResolvedField(e,n){this._generationConfig[e]=t.deepClone(n.config[e]);let o=n.sources[e];o?this.generationConfigSources[e]=o:delete this.generationConfigSources[e]}fillContextWindowSize(e){this._generationConfig.contextWindowSize===void 0&&(this._generationConfig.contextWindowSize=yt(e,"input"),this.generationConfigSources.contextWindowSize={kind:"computed",detail:"auto-detected from model"})}shouldUpdateModelDerivedDefault(e){let n=this.generationConfigSources[e];return n===void 0||n.kind==="computed"||n.kind==="default"||n.kind==="modelProviders"||n.kind==="programmatic"||n.kind==="unknown"}async switchModel(e,n,o){let r=this.extractRuntimeModelSnapshotId(n);if(r){await this.switchToRuntimeModel(r);return}let i=this.createStateSnapshotForRollback();try{let s=e!==this.currentAuthType;this.currentAuthType=e;let a=this.modelRegistry.getModel(e,n,o?.baseUrl);if(!a)throw new Error(`Model '${n}' not found for authType '${e}'`);let l=i.generationConfig.model||"",c=!s&&l?this.modelRegistry.getModel(e,l,i.generationConfig.baseUrl)??this.modelRegistry.getModel(e,l):void 0,u=!s&&!!i.generationConfig.apiKey&&!!a.envKey&&c?.envKey===a.envKey&&c.baseUrl===a.baseUrl,f=u?i.generationConfig.apiKey:void 0,d=u?i.generationConfigSources.apiKey:void 0;this.applyResolvedModelDefaults(a),!this._generationConfig.apiKey&&f&&(this._generationConfig.apiKey=f,d&&(this.generationConfigSources.apiKey=t.deepClone(d))),this.activeRuntimeModelSnapshotId=void 0,this.onModelChange&&await this.onModelChange(e)}catch(s){throw this.rollbackToStateSnapshot(i),s}}buildRuntimeModelSnapshotId(e,n){return`${vt}${e}|${n}`}extractRuntimeModelSnapshotId(e){if(e.startsWith(vt))return this.runtimeModelSnapshots.has(e)?e:void 0;if(this.runtimeModelSnapshots.has(e))return e}getGenerationConfig(){return this._generationConfig}getGenerationConfigSources(){return this.generationConfigSources}mergeSettingsGenerationConfig(e){if(e)for(let n of me)!(n in this._generationConfig)&&n in e&&(this._generationConfig[n]=e[n],this.generationConfigSources[n]={kind:"settings",detail:`model.generationConfig.${n}`})}updateCredentials(e,n){(e.apiKey||e.baseUrl||e.model)&&(this.hasManualCredentials=!0,this.clearProviderSourcedConfig()),e.apiKey&&(this._generationConfig.apiKey=e.apiKey,this.generationConfigSources.apiKey={kind:"programmatic",detail:"updateCredentials"}),e.baseUrl&&(this._generationConfig.baseUrl=e.baseUrl,this.generationConfigSources.baseUrl={kind:"programmatic",detail:"updateCredentials"}),e.model&&(this._generationConfig.model=e.model,this.generationConfigSources.model={kind:"programmatic",detail:"updateCredentials"}),this.strictModelProviderSelection=!1,this._generationConfig.apiKeyEnvKey=void 0,n&&this.mergeSettingsGenerationConfig(n),this.syncRuntimeModelSnapshotWithCredentials()}syncRuntimeModelSnapshotWithCredentials(){let e=this.currentAuthType,{model:n,apiKey:o,baseUrl:r}=this._generationConfig;if(!(!n||!e||!o||!r)&&!this.modelRegistry.hasModel(e,n,r))if(this.activeRuntimeModelSnapshotId&&this.runtimeModelSnapshots.has(this.activeRuntimeModelSnapshotId)){let i=this.runtimeModelSnapshots.get(this.activeRuntimeModelSnapshotId);i.apiKey=o,i.baseUrl=r,i.modelId=n;let s=this.buildRuntimeModelSnapshotId(i.authType,i.modelId);s!==i.id&&(this.runtimeModelSnapshots.delete(i.id),i.id=s,this.runtimeModelSnapshots.set(s,i),this.activeRuntimeModelSnapshotId=s),i.createdAt=Date.now()}else this.detectAndCaptureRuntimeModel()}clearProviderSourcedConfig(){for(let e of Rt)this.generationConfigSources[e]?.kind==="modelProviders"&&(delete this._generationConfig[e],delete this.generationConfigSources[e])}isStrictModelProviderSelection(){return this.strictModelProviderSelection}resetStrictModelProviderSelection(){this.strictModelProviderSelection=!1}applyResolvedModelDefaults(e){if(this.strictModelProviderSelection=!0,this.hasManualCredentials=!1,this._generationConfig.model=e.id,this.generationConfigSources.model={kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"model.id"},this._generationConfig.apiKey=void 0,this._generationConfig.apiKeyEnvKey=void 0,e.envKey!==void 0){let o=Tn.env[e.envKey];o&&(this._generationConfig.apiKey=o,this.generationConfigSources.apiKey={kind:"env",envKey:e.envKey,via:{kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"envKey"}}),this._generationConfig.apiKeyEnvKey=e.envKey,this.generationConfigSources.apiKeyEnvKey={kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"envKey"}}this._generationConfig.baseUrl=e.baseUrl,this.generationConfigSources.baseUrl={kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"baseUrl"};let n=this.resolveEntryGenerationConfig(e);for(let o of me)this.applyResolvedField(o,n);this.fillContextWindowSize(e.id)}syncAfterAuthRefresh(e,n){this.strictModelProviderSelection=!1;let o=this.currentAuthType;this.currentAuthType=e;let r=this.generationConfigSources.baseUrl?.kind==="modelProviders"?this._generationConfig.baseUrl:void 0,i=n?this.modelRegistry.getModel(e,n,r)??this.modelRegistry.getModel(e,n):void 0;if(i){let g=this.generationConfigSources.baseUrl?.kind==="modelProviders"&&(this._generationConfig.apiKeyEnvKey!==i.envKey||this._generationConfig.baseUrl!==i.baseUrl),h=o===e&&this._generationConfig.model===n&&!g,m=h?this._generationConfig.apiKey:void 0,C=h&&this.generationConfigSources.apiKey?{...this.generationConfigSources.apiKey}:void 0,T=this.generationConfigSources.baseUrl,S=h&&!!this._generationConfig.baseUrl&&(T?.kind==="cli"||T?.kind==="env"||T?.kind==="settings"),R=S?this._generationConfig.baseUrl:void 0,w=S&&T?{...T}:void 0;this.applyResolvedModelDefaults(i),h&&!this._generationConfig.apiKey&&m&&(this._generationConfig.apiKey=m,C&&(this.generationConfigSources.apiKey=C)),R&&(this._generationConfig.baseUrl=R,w&&(this.generationConfigSources.baseUrl=w)),this.strictModelProviderSelection=!0,this.activeRuntimeModelSnapshotId=void 0;return}let s=this.generationConfigSources.apiKey,a=this.generationConfigSources.baseUrl,l=this._generationConfig.apiKey&&s?.kind!=="modelProviders"||this._generationConfig.baseUrl&&a?.kind!=="modelProviders";if(!(o!==e)&&(n===void 0||!this.modelRegistry.hasModel(e,n))&&(this.hasManualCredentials||l)){n&&(this._generationConfig.model=n,this.generationConfigSources.model||(this.generationConfigSources.model={kind:"programmatic",detail:"auth refresh (preserved credentials)"}));return}let f=this.modelRegistry.getDefaultModelForAuthType(e);if(f){this.applyResolvedModelDefaults(f),this.activeRuntimeModelSnapshotId=void 0;return}n&&(this._generationConfig.model=n,this.generationConfigSources.model||(this.generationConfigSources.model={kind:"programmatic",detail:"auth refresh (no default model)"}))}setOnModelChange(e){this.onModelChange=e}detectAndCaptureRuntimeModel(){let{model:e,apiKey:n,baseUrl:o,apiKeyEnvKey:r,...i}=this._generationConfig,s=this.currentAuthType;if(!e||!s)return;if(this.modelRegistry.hasModel(s,e,o)){this.clearRuntimeModelSnapshotForAuthType(s);return}if(!(this._generationConfig.apiKey&&this._generationConfig.baseUrl))return;let l=this.buildRuntimeModelSnapshotId(s,e),c={id:l,authType:s,modelId:e,apiKey:n,baseUrl:o,apiKeyEnvKey:r,generationConfig:i,sources:{...this.generationConfigSources},createdAt:Date.now()};return this.runtimeModelSnapshots.set(l,c),this.activeRuntimeModelSnapshotId=l,this.cleanupOldRuntimeModelSnapshots(),l}getActiveRuntimeModelSnapshot(){if(this.activeRuntimeModelSnapshotId)return this.runtimeModelSnapshots.get(this.activeRuntimeModelSnapshotId)}getActiveRuntimeModelSnapshotId(){return this.activeRuntimeModelSnapshotId}async switchToRuntimeModel(e){let n=this.runtimeModelSnapshots.get(e);if(!n)throw new Error(`Runtime model snapshot '${e}' not found`);let o=this.createStateSnapshotForRollback();try{this.currentAuthType=n.authType,this.activeRuntimeModelSnapshotId=e,this.strictModelProviderSelection=!1,this.hasManualCredentials=!0,this._generationConfig.model=n.modelId,this.generationConfigSources.model={kind:"programmatic",detail:"runtimeModelSwitch"},n.apiKey&&(this._generationConfig.apiKey=n.apiKey,this.generationConfigSources.apiKey=n.sources.apiKey||{kind:"programmatic",detail:"runtimeModelSwitch"}),n.baseUrl&&(this._generationConfig.baseUrl=n.baseUrl,this.generationConfigSources.baseUrl=n.sources.baseUrl||{kind:"programmatic",detail:"runtimeModelSwitch"}),n.apiKeyEnvKey&&(this._generationConfig.apiKeyEnvKey=n.apiKeyEnvKey),n.generationConfig&&Object.assign(this._generationConfig,n.generationConfig),this.onModelChange&&await this.onModelChange(n.authType)}catch(r){throw this.rollbackToStateSnapshot(o),r}}getRuntimeModelOption(){let e=this.getActiveRuntimeModelSnapshot();if(e)return{id:e.modelId,label:e.modelId,authType:e.authType,isVision:!1,contextWindowSize:e.generationConfig?.contextWindowSize,isRuntimeModel:!0,runtimeSnapshotId:e.id}}clearRuntimeModelSnapshotForAuthType(e){for(let[n,o]of this.runtimeModelSnapshots.entries())o.authType===e&&(this.runtimeModelSnapshots.delete(n),this.activeRuntimeModelSnapshotId===n&&(this.activeRuntimeModelSnapshotId=void 0))}cleanupOldRuntimeModelSnapshots(){let e=new Map;for(let n of this.runtimeModelSnapshots.values()){let o=e.get(n.authType);(!o||n.createdAt>o.createdAt)&&e.set(n.authType,n)}this.runtimeModelSnapshots.clear();for(let n of e.values())this.runtimeModelSnapshots.set(n.id,n);this.activeRuntimeModelSnapshotId&&!this.runtimeModelSnapshots.has(this.activeRuntimeModelSnapshotId)&&(this.activeRuntimeModelSnapshotId=void 0)}reloadModelProvidersConfig(e){this.modelRegistry.reloadModels(e)}};p();import{mkdirSync as es,readFileSync as ts}from"node:fs";import{dirname as ns,join as os}from"node:path";p();p();import{randomBytes as wi,createHash as xi}from"node:crypto";import{setTimeout as Ii}from"node:timers/promises";var Oi="urn:ietf:params:oauth:grant-type:device_code";function Go(t){return t==="localhost"||t==="127.0.0.1"||t==="::1"||t==="[::1]"}function An(){let t=wi(32).toString("base64url"),e=xi("sha256").update(t).digest("base64url");return{codeVerifier:t,codeChallenge:e}}function Ce(t,e){let n=typeof t=="object"&&t!==null?t:{};if(typeof n.access_token!="string"||n.access_token==="")throw new Error("The token response has no access token");return{accessToken:n.access_token,refreshToken:n.refresh_token??e?.refreshToken,expiresAt:Date.now()+(n.expires_in??3600)*1e3,idToken:n.id_token??e?.idToken}}var Pi=15e3;async function En(t){let e=t.replace(/\/+$/,""),n=new URL("/.well-known/oauth-authorization-server",e);if(n.protocol!=="https:"&&!Go(n.hostname))throw new Error(`Refusing OAuth discovery over insecure transport: ${n.origin}`);let o=await fetch(n,{headers:{accept:"application/json"},signal:AbortSignal.timeout(Pi)});if(!o.ok)throw new Error(`OAuth discovery failed (${o.status}) for ${n.origin}`);let r=await o.json();if(!r.issuer||!r.authorization_endpoint||!r.token_endpoint)throw new Error(`OAuth discovery document missing required fields for ${n.origin}`);return{issuer:r.issuer,authorization_endpoint:r.authorization_endpoint,token_endpoint:r.token_endpoint,device_authorization_endpoint:r.device_authorization_endpoint}}var Di=15e3,Sn="Device code expired: restart the sign-in";async function Rn(t,e,n={}){let o;try{o=await fetch(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:e.clientId,scope:e.scope??"openid offline_access"}),signal:Bo(AbortSignal.timeout(Di),n.signal)})}catch(i){throw jo(i,n.signal)?new Error("The device code request timed out"):i}if(!o.ok)throw new Error(`Device code request failed (${o.status})`);let r=await o.json();return{deviceCode:r.device_code,userCode:r.user_code,verificationUri:r.verification_uri,verificationUriComplete:r.verification_uri_complete,expiresAt:Date.now()+r.expires_in*1e3,interval:r.interval??5}}async function Ko(t,e,n={}){let o=await fetch(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:Oi,client_id:e.clientId,device_code:e.deviceCode}),signal:n.signal});if(o.ok)return{kind:"authorized",tokens:Ce(await o.json())};let r=await o.json().catch(()=>({})),i=typeof r.error=="string"?r.error:"unknown";switch(i){case"authorization_pending":return{kind:"pending"};case"slow_down":return{kind:"slow_down"};default:return{kind:"error",error:i}}}async function $o(t,e,n={}){let o=e.interval*1e3;try{for(;Date.now()<e.expiresAt;){await Ii(Math.min(o,e.expiresAt-Date.now()),void 0,{signal:n.signal});let r=e.expiresAt-Date.now();if(r<=0)break;let i=await Ko(t,e,{signal:Bo(AbortSignal.timeout(r),n.signal)});if(i.kind==="authorized")return i.tokens;if(i.kind!=="pending"){if(i.kind==="slow_down"){o+=5e3;continue}switch(i.error){case"expired_token":throw new Error(Sn);case"access_denied":throw new Error("User denied the authorization request");default:throw new Error(`Device flow error: ${i.error}`)}}}}catch(r){throw jo(r,n.signal)?new Error(Sn):r}throw new Error(Sn)}function Bo(t,e){return e?AbortSignal.any([t,e]):t}function jo(t,e){return!e?.aborted&&t instanceof Error&&t.name==="TimeoutError"}p();import{randomBytes as Li}from"node:crypto";import{promises as ye,openSync as Ui,closeSync as Ni,unlinkSync as zo,statSync as Fi}from"node:fs";import{dirname as Gi}from"node:path";var Vo=new Map,Ki=2e4,$i=3e4,Bi=50;function bn(t,e={}){let n=async()=>{try{let s=await ye.readFile(t,"utf8"),a=JSON.parse(s);return a&&typeof a=="object"?a:{}}catch(s){if(s.code==="ENOENT")return{};throw s}},o=async(s,a)=>{await ye.mkdir(Gi(t),{recursive:!0});let l=`${t}.${process.pid}.${Li(4).toString("hex")}.tmp`;try{await ye.writeFile(l,JSON.stringify(s,null,2),{mode:384}),a?.throwIfAborted(),await ye.rename(l,t)}catch(c){throw await ye.rm(l,{force:!0}).catch(()=>{}),c}await ye.chmod(t,384).catch(()=>{})},r=(s,a={})=>{let c=(Vo.get(t)??Promise.resolve()).then(async()=>{a.signal?.throwIfAborted();let u=await n(),f=!1;for(let[d,g]of Object.entries(s)){if(g===null){if(!(d in u))continue;delete u[d]}else{if(u[d]===g)continue;u[d]=g}f=!0}f&&await o(u,a.signal),a.onCommit?.()});return Vo.set(t,c.catch(()=>{})),c};return{store:{async get(s){return(await n())[s]??null},set:(s,a,l)=>r({[s]:a},l),remove:(s,a)=>r({[s]:null},a)},lock:ji(`${t}.lock`,e.lockTimeoutMs??Ki),update:r}}function ji(t,e){let n=Promise.resolve();return o=>{let r=n.then(async()=>{await Vi(t,e);try{return await o()}finally{zi(t)}});return n=r.then(()=>{},()=>{}),r}}async function Vi(t,e){let n=Date.now()+e;for(;;)try{Ni(Ui(t,"wx"));return}catch(o){if(o.code!=="EEXIST")throw o;try{if(Date.now()-Fi(t).mtimeMs>$i){zo(t);continue}}catch{continue}if(Date.now()>n)throw Object.assign(new Error(`Timed out acquiring credential lock at ${t}`),{code:"ETIMEDOUT"});await Wi(Bi)}}function zi(t){try{zo(t)}catch{}}function Wi(t){return new Promise(e=>setTimeout(e,t))}p();var Te=class extends Error{code="invalid_grant";constructor(e="Refresh token is no longer valid \u2014 sign in again."){super(e),this.name="InvalidGrantError"}};function vn(t){let e=t.storageKey??"default",n=t.fetchImpl??fetch,o=t.expirySkewMs??6e4,r=t.refreshTimeoutMs??15e3,i=null,s=async()=>{let c=await t.store.get(e);if(!c)return null;try{let u=JSON.parse(c);return u.accessToken?u:null}catch{return null}},a=c=>c.expiresAt-Date.now()>o,l=c=>t.lock(async()=>{let u=await s()??c;if(u.accessToken!==c.accessToken&&a(u))return u.accessToken;if(!u.refreshToken)throw new Te("No refresh token available \u2014 sign in again.");let f;try{let g=await n(t.tokenEndpoint,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",client_id:t.clientId,refresh_token:u.refreshToken}),signal:AbortSignal.timeout(r)});if(!g.ok){let h=await g.text().catch(()=>"");throw g.status>=400&&g.status<500&&Hi(h)==="invalid_grant"?(await t.store.remove(e),new Te):Object.assign(new Error(`Token refresh failed (${g.status})`),{status:g.status})}f=await g.json()}catch(g){throw g?.name==="TimeoutError"?Object.assign(new Error(`Token refresh timed out after ${r} ms`),{code:"ETIMEDOUT",cause:g}):g}let d=Ce(f,u);return await t.store.set(e,JSON.stringify(d)),d.accessToken});return{async getAccessToken(c){let u=await s();if(!u)throw new Te("Not signed in.");return!c?.forceRefresh&&a(u)?u.accessToken:(i||(i=l(u).finally(()=>{i=null})),i)}}}function Hi(t){try{return JSON.parse(t).error}catch{return}}p();import{createServer as qi}from"node:http";import{randomBytes as Ji}from"node:crypto";async function kt(t){if(t.transport.kind==="device")return Yi(t);if(t.transport.kind!=="loopback")throw new Error(`Unsupported login transport: ${t.transport.kind}`);if(t.signal?.aborted)throw new Error("Login aborted");let e=m=>t.onEvent?.(m),{codeVerifier:n,codeChallenge:o}=An(),r=Ji(16).toString("hex"),i=t.timeoutMs??5*60*1e3,s=t.transport.successRedirect,a=t.transport.port;e({type:"state",status:"idle"});let l,c,u=new Promise((m,C)=>{l=m,c=C});u.catch(()=>{});let f=qi((m,C)=>{let T=new URL(m.url??"/","http://127.0.0.1");if(T.pathname!=="/callback"){C.writeHead(404).end();return}let S=T.searchParams.get("error"),R=T.searchParams.get("state"),w=T.searchParams.get("code");if(S){let v=T.searchParams.get("error_description"),x=v?`OAuth error: ${S} (${v})`:`OAuth error: ${S}`;C.writeHead(400,{"content-type":"text/plain; charset=utf-8"}).end(`Sign-in failed: ${S}
16
+ `,()=>c(new Error(x)));return}if(R!==r){C.writeHead(400).end("State mismatch"),c(new Error("OAuth state mismatch"));return}if(!w){C.writeHead(400).end("Missing authorization code");return}Xi(C,s,()=>l(w))}),d=await new Promise((m,C)=>{f.once("error",C),f.listen(a??0,"127.0.0.1",()=>{m(f.address().port)})}),g=setTimeout(()=>c(new Error("Login timed out \u2014 the browser never reached the local callback. The hosted success page is not a completed sign-in.")),i),h=()=>c(new Error("Login aborted"));t.signal?.addEventListener("abort",h,{once:!0}),t.signal?.aborted&&h();try{t.signal?.throwIfAborted();let m=`http://127.0.0.1:${d}/callback`,C=new URL(t.metadata.authorization_endpoint);C.searchParams.set("client_id",t.clientId),C.searchParams.set("response_type","code"),C.searchParams.set("redirect_uri",m),C.searchParams.set("code_challenge",o),C.searchParams.set("code_challenge_method","S256"),C.searchParams.set("state",r),C.searchParams.set("prompt","select_account"),C.searchParams.set("scope",t.scope??"openid offline_access");let T=C.toString();e({type:"authorize_url",url:T}),e({type:"state",status:"awaiting_user"}),t.openBrowser&&await t.openBrowser(T);let S=await u;await Wo(f),e({type:"state",status:"exchanging"});let R=await fetch(t.metadata.token_endpoint,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:t.clientId,code:S,code_verifier:n,redirect_uri:m}),signal:t.signal});if(!R.ok){let v=await R.text().catch(()=>"");throw new Error(`Token exchange failed (${R.status}): ${v}`)}let w=Ce(await R.json());return e({type:"state",status:"authenticated"}),w}catch(m){throw e({type:"state",status:"error"}),t.signal?.aborted?new Error("Login aborted"):m}finally{clearTimeout(g),t.signal?.removeEventListener("abort",h),await Wo(f)}}async function Yi(t){let e=t.metadata.device_authorization_endpoint;if(!e)throw new Error("The authorization server does not offer device sign-in");if(t.signal?.aborted)throw new Error("Login aborted");let n=o=>t.onEvent?.(o);n({type:"state",status:"idle"});try{let o=await Rn(e,{clientId:t.clientId,scope:t.scope},{signal:t.signal});n({type:"user_code",userCode:o.userCode,verificationUri:o.verificationUri,verificationUriComplete:o.verificationUriComplete}),n({type:"state",status:"awaiting_user"});let r=await $o(t.metadata.token_endpoint,{clientId:t.clientId,deviceCode:o.deviceCode,interval:o.interval,expiresAt:o.expiresAt},{signal:t.signal});return n({type:"state",status:"authenticated"}),r}catch(o){throw n({type:"state",status:"error"}),t.signal?.aborted?new Error("Login aborted"):o}}function Wo(t){return t.listening?new Promise(e=>{t.close(()=>e()),t.closeAllConnections()}):Promise.resolve()}function Xi(t,e,n){t.writeHead(302,{location:e}).end(n)}p();var Qi=["www-browser"];function Zi(t){let e=t.replace(/\\/g,"/").split("/").pop();return!!e&&Qi.includes(e)}function Ho(t={}){let n=process.env.BROWSER?.trim()?.match(/^\S+/)?.[0];if(!t.ignoreBrowserBlocklist&&process.platform!=="win32"&&n&&Zi(n)||process.env.CI||process.env.DEBIAN_FRONTEND==="noninteractive")return!1;let o=!!process.env.SSH_CONNECTION;return!(process.platform==="linux"&&!["DISPLAY","WAYLAND_DISPLAY","MIR_SOCKET"].some(s=>!!process.env[s])||o&&process.platform!=="linux")}var Ae="matilda-code",Jo="matilda-desktop",Yo="openid profile email offline_access",Ne="MATILDA_API_KEY",rs="matilda";function Ee(t){return t.trim().replace(/\/+$/,"").replace(/\/api\/v1(?:\/code)?$/i,"")}function Xo(){return os(ze.getGlobalMatildaDir(),"matilda-auth.json")}function wt(){let t=Xo();return es(ns(t),{recursive:!0}),bn(t)}function is(t){return t==="desktop"}function Ge(t){return t?.clientId?t.clientId:is(t?.channel)?Jo:Ae}function Fe(t){return`matilda:${t}`}function xt(t){return`${Fe(t)}:refresh-rejected`}function Ke(t){return t===Ae?[Fe(t),rs]:[Fe(t)]}function ss(){try{let t=ts(Xo(),"utf8");return JSON.parse(t)}catch{return{}}}function _t(t){if(!t)return null;try{let e=JSON.parse(t);return typeof e?.accessToken=="string"&&typeof e?.baseUrl=="string"?e:null}catch{return null}}function as(t,e){return Ee(t)===Ee(e)}function ls(t){if(!t)return{};try{let e=t.split(".")[1],n=Buffer.from(e.replace(/-/g,"+").replace(/_/g,"/"),"base64").toString("utf8"),o=JSON.parse(n);return{sub:o.sub,email:o.email,name:o.name}}catch{return{}}}function Qo(t,e){let n=ls(t.idToken);return{accessToken:t.accessToken,accessTokenExpiresAt:t.expiresAt,refreshToken:t.refreshToken??"",userId:n.sub,email:n.email,displayName:n.name,baseUrl:e}}var qo=new Map;async function kn(t){let e=qo.get(t);if(e)return e;try{let n=await En(t);return qo.set(t,n),n}catch{return{issuer:t,authorization_endpoint:`${t}/api/auth/oauth/authorize`,token_endpoint:`${t}/api/auth/oauth/token`,device_authorization_endpoint:`${t}/api/auth/oauth/device/code`}}}function Re(t){try{let e=ss(),n=Ge(t);for(let o of Ke(n)){let r=_t(e[o]);if(r)return r}return null}catch{return null}}function Zo(t){let e=Re(t);return!e||t?.baseUrl&&!as(e.baseUrl,t.baseUrl)?null:e}function _n(t){return Zo(t)!==null}async function er(t,e){for(let n of e){let o=await t.get(n);if(_t(o))return o}return null}async function us(t,e){let n=Ge(t),o=Ke(n),{store:r,lock:i}=wt();await i(async()=>{let s=await er(r,o);if(!(s!==null&&s!==e)){for(let a of o)await r.remove(a);await r.set(xt(n),"1"),delete process.env[Ne]}})}function cs(t){return t instanceof Error?t.code==="invalid_grant"||t.name==="InvalidGrantError"?!0:t.message==="Token refresh failed (401)":!1}function Se(t){Mn({authStage:t.authStage,authOutcome:t.authOutcome,occurrenceCount:t.occurrenceCount},{baseUrl:t.baseUrl,token:t.token}).catch(()=>{})}async function tr(t,e,n={}){let o=Ge(e),r=Fe(o),i={[r]:JSON.stringify(t),[xt(o)]:null};for(let l of Ke(o))l!==r&&(i[l]=null);let{lock:s,update:a}=wt();await s(()=>a(i,{signal:n.signal,onCommit:()=>{process.env[Ne]=t.accessToken}}))}async function ds(t,e){for(let n of Ke(e))await t.remove(n);await t.remove(xt(e)),delete process.env[Ne]}function Ic(t){let e=Re(t);return e?{authenticated:!0,userId:e.userId,email:e.email,displayName:e.displayName,baseUrl:e.baseUrl,accessTokenExpiresAt:e.accessTokenExpiresAt}:{authenticated:!1}}async function Oc(t){let e={channel:t?.channel,clientId:t?.clientId},{store:n,lock:o}=wt(),r=await o(async()=>{let i=Re(e);return await ds(n,Ge(e)),i});if(r?.accessToken){let i=Ee(r.baseUrl);await fetch(`${i}/api/auth/logout`,{method:"POST",headers:{authorization:`Bearer ${r.accessToken}`,"content-type":"application/json"},body:JSON.stringify(r.refreshToken?{refreshToken:r.refreshToken}:{}),signal:t?.signal??AbortSignal.timeout(5e3)}).catch(()=>{})}}async function nr(t){let e=Ge(t),n=Fe(e),o=Zo({baseUrl:t?.baseUrl,channel:t?.channel,clientId:e});if(!o)return t?.fallbackAccessToken??process.env[Ne]??"";let r=Ee(o.baseUrl),i=await kn(r),{store:s,lock:a}=wt(),{manager:l,startedFrom:c}=ps(s,a,i.token_endpoint,o.baseUrl,e,n,t?.signal),u=e===Ae&&(!!t?.forceRefresh||o.accessTokenExpiresAt-Date.now()<=3e5),f;try{f=await l.getAccessToken({forceRefresh:t?.forceRefresh})}catch(d){throw u&&Se({baseUrl:o.baseUrl,token:o.accessToken,authStage:"refresh",authOutcome:"failed"}),!cs(d)||d instanceof Ve?d:(e===Jo&&await us({channel:t?.channel,clientId:e},c()),new Ve({cause:d}))}return u&&Se({baseUrl:o.baseUrl,token:f,authStage:"refresh",authOutcome:"succeeded"}),process.env[Ne]=f,f}function ps(t,e,n,o,r,i,s){let a=Ke(r),l=(g,h)=>{let m=[h?.signal,s].filter(C=>C instanceof AbortSignal);return fetch(g,{...h,signal:m.length>1?AbortSignal.any(m):m[0]})},c=g=>er(t,g===i?a:[g]),u=null;return{manager:vn({tokenEndpoint:n,clientId:r,store:{get:async g=>{u=await c(g);let h=_t(u);if(!h?.accessToken)return null;let m={accessToken:h.accessToken,refreshToken:h.refreshToken,expiresAt:h.accessTokenExpiresAt};return JSON.stringify(m)},set:async(g,h)=>{let m=await c(g);if(m===null||m!==u)throw new Ve;let C=JSON.parse(h),T=_t(m)??{},S={...T,accessToken:C.accessToken,accessTokenExpiresAt:C.expiresAt,refreshToken:C.refreshToken??T.refreshToken??"",baseUrl:T.baseUrl??o};await t.set(i,JSON.stringify(S)),await t.remove(xt(r));for(let R of a)R!==i&&await t.remove(R)},remove:async g=>{if(await c(g)!==u)return;let h=g===i?a:[g];for(let m of h)await t.remove(m)}},storageKey:i,lock:e,fetchImpl:l,expirySkewMs:3e5}),startedFrom:()=>u}}function fs(){return process.env.MATILDA_AUTH_SKIP_BROWSER!=="1"&&Ho()}async function Pc(t){let e=Ee(t.baseUrl),n=await kn(e),o="",r=0,i=0,s={},a=f=>{s[f]=(s[f]??0)+1},c=await(f=>(r+=1,kt({metadata:n,clientId:Ae,scope:f,transport:{kind:"loopback",successRedirect:`${e}/api/auth/oauth/success?client_id=${encodeURIComponent(Ae)}`},signal:t.signal,onEvent:d=>{d.type==="authorize_url"&&(o=d.url,t.onAuthorizeUrl?.(d.url)),d.type==="state"&&d.status==="exchanging"&&(i+=1)},openBrowser:async d=>{if(t.openBrowser===!1||!fs()){a("skipped");return}try{let{default:g}=await import("./open-QQ7FWG4A.js");(await g(d)).once("error",()=>{}),a("succeeded")}catch{a("failed")}}})))(Yo),u=Qo(c,t.baseUrl);await tr(u),Se({baseUrl:t.baseUrl,token:u.accessToken,authStage:"auth_started",authOutcome:"started",occurrenceCount:r});for(let[f,d]of Object.entries(s))Se({baseUrl:t.baseUrl,token:u.accessToken,authStage:"browser_opened",authOutcome:f,occurrenceCount:d});return i>0&&Se({baseUrl:t.baseUrl,token:u.accessToken,authStage:"callback_received",authOutcome:"succeeded",occurrenceCount:i}),Se({baseUrl:t.baseUrl,token:u.accessToken,authStage:"token_persisted",authOutcome:"succeeded"}),{...u,authorizeUrl:o}}async function Dc(t){let e=Ee(t.baseUrl),n=await kn(e),o=await kt({metadata:n,clientId:Ae,scope:Yo,transport:{kind:"device"},signal:t.signal,onEvent:i=>{i.type==="user_code"&&t.onDeviceCode({userCode:i.userCode,verificationUri:i.verificationUri,verificationUriComplete:i.verificationUriComplete})}}),r=Qo(o,t.baseUrl);return await tr(r),r}p();p();p();function It(t){return typeof t=="object"&&t!==null&&"error"in t&&typeof t.error=="object"&&"message"in t.error}function or(t){return typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"}p();function rr(t){let e=Math.max(1,t.attempt),n=Math.min(t.maxDelayMs,2147483647),o=Math.min(e-1,31),r=Math.min(t.initialDelayMs*Math.pow(2,o),n),s=(t.retryAfterMode??"ignore")==="ignore"?null:gs(t.error);if(s!==null&&s>0){let u=Math.min(t.retryAfterMaxDelayMs??t.maxDelayMs,2147483647),f=Math.min(s,u);return Math.max(r,f)}let a=t.jitterRatio??0;if(a<=0)return r;let l=t.random??Math.random,c=r*a*(l()*2-1);return Math.min(Math.max(0,r+c),n)}function gs(t){let e=ir(t,"retry-after")??ms(t,"retry-after");if(e===null)return null;let n=e.trim();if(/^\d+(\.\d+)?$/.test(n)){let i=Number(n);if(Number.isFinite(i)&&i>=0)return Math.min(i*1e3,2147483647)}let o=Date.parse(n);if(!Number.isFinite(o))return null;let r=o-Date.now();return r>0?Math.min(r,2147483647):0}function ir(t,e){if(!hs(t))return null;let{headers:n}=t;if(typeof n.get=="function"){let r=n.get(e);return typeof r=="string"?r:null}if(typeof n!="object"||n===null)return null;let o=e.toLowerCase();for(let[r,i]of Object.entries(n))if(r.toLowerCase()===o)return typeof i=="string"?i:null;return null}function ms(t,e){return Cs(t)?ir(t.response,e):null}function hs(t){return typeof t=="object"&&t!==null&&"headers"in t&&t.headers!=null}function Cs(t){return typeof t=="object"&&t!==null&&"response"in t&&typeof t.response=="object"&&t.response!==null&&"headers"in t.response&&t.response.headers!=null}var ys=new Set([429,503,1302,1305]);function wn(t,e){if(xn(t))return!1;let n=Ss(t);return n===null?!1:!!(ys.has(n)||e&&e.includes(n))}function xn(t){return Ts(t)==="insufficient_quota"}function Ts(t){let e=ar(t)?.code;if(e!==void 0)return e;let n=typeof t=="object"&&t!==null&&"code"in t?t.code:void 0;return typeof n=="string"||typeof n=="number"?n:void 0}function sr(t){let e=H(t),n=ar(t),o=lr(t),r=o?.includes("event:error")||o?.includes("HTTP_STATUS/")?"sse":e!==void 0?"http":"unknown";return{...e!==void 0?{statusCode:e}:{},...n?.code!==void 0?{providerCode:String(n.code)}:{},...n?.message!==void 0?{providerMessage:n.message}:{},...n?.requestId!==void 0?{requestId:n.requestId}:{},transport:r}}function Vc(t,e){return rr({attempt:t,initialDelayMs:e.initialDelayMs,maxDelayMs:e.maxDelayMs,retryAfterMode:"minimum",retryAfterMaxDelayMs:e.maxDelayMs,error:e.error})}function Ss(t){if(It(t)){let n=Number(t.error.code);if(Number.isFinite(n)&&n>0)return n}let e=t instanceof Error?t.message:typeof t=="string"?t:null;if(e){let n=e.indexOf("{");if(n!==-1)try{let o=JSON.parse(e.substring(n));if(It(o)){let r=Number(o.error.code);if(Number.isFinite(r)&&r>0)return r}}catch{}}if(or(t)&&typeof t.status=="number")return t.status;if(t instanceof Error&&"status"in t){let n=t.status;if(typeof n=="number")return n}return H(t)??null}function ar(t){for(let e of As(t)){if(typeof e!="object"||e===null)continue;let n=e,o=e.error,i=(typeof o=="object"&&o!==null?o:void 0)??n,s=typeof i.code=="string"||typeof i.code=="number"?i.code:void 0,a=typeof i.message=="string"?i.message:void 0,l=typeof i.request_id=="string"?i.request_id:typeof i.requestId=="string"?i.requestId:typeof n.request_id=="string"?n.request_id:typeof n.requestId=="string"?n.requestId:void 0;if(s!==void 0||a!==void 0||l!==void 0)return{code:s,message:a,requestId:l}}return It(t)?{code:t.error.code,message:t.error.message}:null}function As(t){let e=lr(t);if(!e)return[];let n=[];for(let i of e.split(/\r?\n/)){if(!i.startsWith("data:"))continue;let s=i.slice(5).trim();if(!(!s||s==="[DONE]"))try{n.push(JSON.parse(s))}catch{}}if(n.length>0)return n;let o=e.indexOf("{"),r=e.lastIndexOf("}");if(o!==-1&&r>o)try{n.push(JSON.parse(e.slice(o,r+1)))}catch{}return n}function lr(t){return t instanceof Error?t.message:typeof t=="string"?t:null}function Es(t,e={}){if(Rs(t))return{kind:"abort",diagnosis:"fail-fast",reason:"aborted"};let n=sr(t),o=n.statusCode,r=ws(t),i=n.providerCode??r.providerCode,s=n.providerMessage??r.providerMessage,a=n.requestId??r.requestId,l={...o!==void 0?{statusCode:o}:{},...i!==void 0?{providerCode:i}:{},...s!==void 0?{providerMessage:s}:{},...a!==void 0?{requestId:a}:{}};if(_s(i))return{kind:"provider-business",diagnosis:"fail-fast",reason:"allocated-quota-exceeded",...l};if(xn(t))return{kind:"provider-business",diagnosis:"fail-fast",reason:"insufficient-quota",...l};if(wn(t,e.extraRetryErrorCodes))return{kind:n.transport==="sse"?"sse-provider":o!==void 0?"http":"provider",diagnosis:"retryable",reason:"rate-limit",...l};let c=vs(t);if(c!==void 0&&(o===void 0||o>=500))return{kind:"transport",diagnosis:"retryable",reason:"transport-error",transportCode:c,...o!==void 0?{statusCode:o}:{}};if(o!==void 0){let u=n.transport==="sse"?"sse-provider":"http";return o===529?{kind:u,diagnosis:"retryable",reason:"capacity-overload",...l}:o===401||o===403?{kind:u,diagnosis:"fail-fast",reason:"auth-error",...l}:o>=400&&o<500?{kind:u,diagnosis:"fail-fast",reason:"client-error",...l}:o>=500&&o<600?{kind:u,diagnosis:"retryable",reason:"server-error",...l}:{kind:u,diagnosis:"unknown",reason:"http-status",...l}}return i==="upstream_unavailable"||i==="upstream_timeout"||i==="incomplete_stream"?{kind:"sse-provider",diagnosis:"retryable",reason:"server-error",...l}:{kind:"unknown",diagnosis:"unknown",reason:"unclassified",...l}}function Jc(t){let e=t.statusCode??Number(t.providerCode);return t.kind!=="transport"&&t.diagnosis!=="fail-fast"&&(e>=500&&e<600||t.kind==="sse-provider"&&t.reason==="server-error"&&t.diagnosis==="retryable")}function ur(t,e){return wn(t,e)||Es(t,{extraRetryErrorCodes:e}).diagnosis==="retryable"}function Rs(t){return Un(t)?!0:t instanceof Error&&t.name==="CanceledError"}var bs=5;function vs(t){let e=t;for(let n=0;n<=bs;n++){if(typeof e!="object"||e===null)return;let o=e.code;if(typeof o=="string"&&Ms(o))return o;e=e instanceof Error?e.cause:void 0}}function Ms(t){return ks.has(t)}var ks=new Set(["EAI_AGAIN","ECONNABORTED","ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETDOWN","ENETUNREACH","ENOTFOUND","EPIPE","ETIMEDOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_SOCKET","ConnectionClosed","ConnectionRefused","ConnectionReset","ConnectionTimedOut","FailedToOpenSocket","HostUnreachable","NetworkUnreachable"]);function _s(t){return t==="Throttling.AllocationQuota"}function ws(t){if(typeof t!="object"||t===null)return{};let e=t,n=typeof e.code=="string"||typeof e.code=="number"?String(e.code):void 0,o=typeof e.code=="number"&&e.code>=100&&e.code<600,r=t instanceof Error&&n?.startsWith("ERR_")||o?void 0:n,i=typeof e.request_id=="string"?e.request_id:typeof e.requestId=="string"?e.requestId:void 0,s=typeof e.message=="string"&&(!(t instanceof Error)||r!==void 0||i!==void 0)?e.message:void 0;return{...r!==void 0?{providerCode:r}:{},...s!==void 0?{providerMessage:s}:{},...i!==void 0?{requestId:i}:{}}}var $=(e=>(e.USE_OPENAI="openai",e))($||{}),Ot="MATILDA_API_KEY";function xs(t,e){if(t.apiKey||t.apiKeyEnvKey!==Ot)return;let n=t.baseUrl||K();if(!_n({baseUrl:n,channel:e}))return;let o=Re({channel:e});o?.accessToken&&(t.apiKey=o.accessToken,process.env[Ot]=o.accessToken)}async function Is(t,e){if(t.apiKeyEnvKey!==Ot)return;let n=t.baseUrl||K();if(!_n({baseUrl:n,channel:e}))return;let o=Re({channel:e});if(!o?.accessToken)return;let r;try{r=await nr({baseUrl:n,fallbackAccessToken:o.accessToken,channel:e})}catch(i){if(!ur(i))throw i;r=o.accessToken}r&&(t.apiKey=r,process.env[Ot]=r)}function In(t,e,n){t[e]=n}function Os(t,e){return t?.[e]}function id(t,e,n,o,r){let i={...o||{}},s=r?.strictModelProvider===!0,a={...n||{},authType:e,proxy:t?.getProxy()};In(i,"authType",{kind:"computed",detail:"provided by caller"}),t?.getProxy()&&In(i,"proxy",{kind:"computed",detail:"Config.getProxy()"});let l=u=>Os(o,u)??{kind:"unknown"};for(let u of Rt)n&&u in n&&!i[u]&&In(i,u,l(u));xs(a,t.getChannel());let c=Cn(a,s);if(!c.valid)throw new Error(c.errors.map(u=>u.message).join(`
17
+ `));return{config:a,sources:i}}function Cn(t,e=!1){let n=[];if(!t.apiKey)if(e)n.push(new ft(t.authType,t.model,t.apiKeyEnvKey));else{let o=t.apiKeyEnvKey||ko(t.authType);n.push(new mt({authType:t.authType,model:t.model,baseUrl:t.baseUrl,envKey:o}))}if(!t.model)if(e)n.push(new gt(t.authType));else{let o=_o(t.authType);n.push(new ht({authType:t.authType,envKey:o}))}return{valid:n.length===0,errors:n}}function Ps(t){let e=t;for(;e instanceof Error;){if("code"in e&&e.code==="ERR_MODULE_NOT_FOUND")return e;e=e.cause}}async function sd(t,e,n){gn(t,e.getOrganizationId?.(),e.getCodeCreditLimitMinor?.()),Mo(t.customHeaders),await Is(t,e.getChannel());let o=Cn(t,!1);if(!o.valid)throw new Error(o.errors.map(s=>s.message).join(`
18
+ `));let r=t.authType;if(!r)throw new Error("ContentGeneratorConfig must have an authType");let i;try{if(r==="openai"){let{applyDeclaredInputModalities:s,createOpenAIContentGenerator:a}=await import("./openaiContentGenerator-SPSIXCCZ.js");await s(t,e,n),i=a(t,e)}else throw new Error(`Error creating contentGenerator: Unsupported authType: ${r}`)}catch(s){let a=Ps(s);throw a?new Error(`Matilda was updated in the background and needs to be restarted.
19
+ Please exit and restart Matilda to use the '${r}' provider.`,{cause:a}):s}return new Le(i,e,t)}var Ds=["x-matilda-client-name","x-matilda-client-version","x-matilda-client-operating-system","x-matilda-client-architecture","x-matilda-client-distribution-channel","x-matilda-client-release-channel"],Ls=new Set([...Ds,...Ln]),Us=new Set(["VSCode","ACP","SDK","CI"]),be="(?:0|[1-9]\\d{0,4})\\.(?:0|[1-9]\\d{0,4})\\.(?:0|[1-9]\\d{0,4})",Ns="[A-Za-z][0-9A-Za-z-]{0,23}",cr="(?:0|[1-9]\\d{0,11}|[0-9A-Fa-f]{7,12})",Fs=new RegExp(`^${be}(?:-${Ns}(?:\\.${cr})+)?$`),Gs=63,Ks=new RegExp(`^${be}$`),$s=new RegExp(`^${be}-preview\\.(?:0|[1-9]\\d{0,11})$`),Bs=new RegExp(`^${be}-canary\\.(?:0|[1-9]\\d{0,11})$`),js=new RegExp(`^${be}-nightly\\.(?:0|[1-9]\\d{0,11})\\.[0-9A-Fa-f]{7,12}$`),Vs=new RegExp(`^${be}-(preview|canary|nightly|development|internal)(?:\\.${cr})+$`);function zs(t){return t==="desktop"?"desktop":t===void 0||Us.has(t)?"code_cli":"unknown"}function Ws(t){if(t==="android")return"android";if(t==="darwin")return"macos";if(t==="win32")return"windows";if(t==="linux")return"linux"}function Hs(t){if(t==="x64")return"x64";if(t==="arm64")return"arm64"}function qs(t){if(t===void 0)return"npm";if(t==="desktop")return"direct-download";if(t==="VSCode")return"vscode-marketplace"}function Js(t,e){if(e==="desktop")return"matilda-desktop";if(t==="VSCode")return"matilda-vscode";if(e==="code_cli")return"matilda-code"}function Ys(t){if(typeof t=="string"&&!(t.length>Gs||!Fs.test(t)))return t}function Xs(t){if(t!==void 0)return Ks.test(t)?"stable":$s.test(t)?"preview":Bs.test(t)?"canary":js.test(t)?"nightly":Vs.exec(t)?.[1]}function dr(t,e=process.platform,n=process.arch){let o=t.getChannel?.(),r=zs(o),i=Ys(o==="desktop"&&process.env.CRAFT_AGENT_VERSION!==void 0?process.env.CRAFT_AGENT_VERSION:t.getCliVersion?.()),s=Xs(i),a=Ws(e),l=Hs(n),c=qs(o),u=Js(o,r);return{...u?{"x-matilda-client-name":u}:{},...i?{"x-matilda-client-version":i}:{},...a?{"x-matilda-client-operating-system":a}:{},...l?{"x-matilda-client-architecture":l}:{},...c?{"x-matilda-client-distribution-channel":c}:{},...s?{"x-matilda-client-release-channel":s}:{}}}function pd(t){let e=t.toLowerCase();return Ls.has(e)||e.startsWith("x-matilda-reported-")}function Qs(t){let e=t??K();try{let n=new URL(e);if(n.protocol!=="https:"&&n.protocol!=="http:")return!1;let o=n.hostname.toLowerCase();return o==="matilda.maincode.com"||o.endsWith(".matilda.maincode.com")||o==="core-api.matilda"||Ze(e)}catch{return!1}}function fd(t,e=t.apiKey){return t.authType==="openai"&&!!e&&Qs(t.baseUrl)}var Zs=3e3,$e=1,ea=24*60*60*1e3,pr=20,fr=999,ta=new Set(["UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","SELF_SIGNED_CERT_IN_CHAIN","DEPTH_ZERO_SELF_SIGNED_CERT","CERT_HAS_EXPIRED","ERR_TLS_CERT_ALTNAME_INVALID"]),na=new Set(["ENOTFOUND","EAI_AGAIN"]),oa=new Set(["ECONNREFUSED","EHOSTUNREACH","ENETUNREACH"]),ra=new Set(["ABORT_ERR","ETIMEDOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT"]),ia=new Set(["ECONNRESET","EPIPE","UND_ERR_SOCKET"]);function sa(t){return`${new URL(t).origin}/api/client-events`}function aa(t){let e={eventType:t.eventType,platform:"cli"};return t.eventType==="network_error"&&(e.transportReason=t.transportReason,e.transportStage=t.transportStage,e.responseReceived=t.responseReceived,e.occurrenceCount=t.occurrenceCount),t.eventType==="auth_funnel"&&(e.authStage=t.authStage,e.authOutcome=t.authOutcome,e.occurrenceCount=t.occurrenceCount),t.eventType==="network_error"&&(e.reportedSurface=t.reportedSurface,e.reportedOs=t.reportedOs,e.reportedArchitecture=t.reportedArchitecture,e.reportedProcess=t.reportedProcess,e.reportedReleaseChannel=t.reportedReleaseChannel,t.reportedVersion&&(e.reportedVersion=t.reportedVersion)),e}async function On(t,e){let{baseUrl:n,token:o}=e;if(!n||!o)return!1;let r=e.fetchImpl??fetch,i=new AbortController,s=setTimeout(()=>i.abort(),e.timeoutMs??Zs);try{let a=await r(sa(n),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${o}`},body:JSON.stringify(aa(t)),signal:i.signal});return a.ok?!0:(We.warn(`client-events beacon: server rejected payload (HTTP ${a.status})`),!1)}catch{return!1}finally{clearTimeout(s)}}async function Mn(t,e){let n=typeof t.occurrenceCount=="number"&&Number.isFinite(t.occurrenceCount)?Math.max(1,Math.min(Math.floor(t.occurrenceCount),fr)):1;return On({eventType:"auth_funnel",authStage:t.authStage,authOutcome:t.authOutcome,occurrenceCount:n},e)}function gr(){try{let t=Q.readFileSync(Cr(),"utf8"),e=JSON.parse(t);return e.schemaVersion!==$e||!Array.isArray(e.failures)?void 0:{schemaVersion:$e,failures:e.failures.filter(la)}}catch{return}}function la(t){if(!t||typeof t!="object")return!1;let e=t;return e.eventType==="network_error"&&typeof e.transportReason=="string"&&typeof e.transportStage=="string"&&typeof e.responseReceived=="boolean"&&typeof e.occurrenceCount=="number"&&typeof e.reportedSurface=="string"&&typeof e.reportedOs=="string"&&typeof e.reportedArchitecture=="string"&&typeof e.reportedProcess=="string"&&typeof e.reportedReleaseChannel=="string"&&typeof e.firstObservedAtMs=="number"&&typeof e.lastObservedAtMs=="number"}function mr(t){let e=Cr();if(t.failures.length===0){try{Q.rmSync(e,{force:!0})}catch{}return}try{Q.mkdirSync(Pt.dirname(e),{recursive:!0}),Q.writeFileSync(e,`${JSON.stringify(t)}
20
+ `,"utf8")}catch{}}function hr(t,e){return t.filter(n=>e-n.lastObservedAtMs<=ea).sort((n,o)=>n.firstObservedAtMs-o.firstObservedAtMs).slice(-pr)}function ua(t){let e=dr(t);return{reportedSurface:e["x-matilda-client-name"]==="matilda-desktop"?"desktop":e["x-matilda-client-name"]==="matilda-code"||e["x-matilda-client-name"]==="matilda-vscode"?"code_cli":"unknown",reportedOs:e["x-matilda-client-operating-system"]??"unknown",reportedArchitecture:e["x-matilda-client-architecture"]??"unknown",reportedProcess:e["x-matilda-client-name"]??"unknown",reportedVersion:e["x-matilda-client-version"],reportedReleaseChannel:e["x-matilda-client-release-channel"]??"unknown"}}function ca(t){if(!t||typeof t!="object")return;let e=t.code;if(typeof e=="string")return e;if(!(t instanceof Error)||!t.cause||typeof t.cause!="object")return;let n=t.cause.code;return typeof n=="string"?n:void 0}function da(t){if(!(!t||typeof t!="object"))for(let e of["status","statusCode"]){let n=t[e];if(typeof n=="number")return n}}function pa(t,e){let n=ca(t);if(n&&ta.has(n))return{reason:"tls",stage:"tls",responseReceived:!1};if(n&&na.has(n))return{reason:"dns",stage:"resolve",responseReceived:!1};if(n&&oa.has(n))return{reason:"connect",stage:"connect",responseReceived:!1};if(n&&ra.has(n))return{reason:"timeout",stage:n==="UND_ERR_BODY_TIMEOUT"?"response":"request",responseReceived:n==="UND_ERR_BODY_TIMEOUT"};if(n&&ia.has(n))return{reason:"reset",stage:n==="UND_ERR_SOCKET"?"response":"request",responseReceived:n==="UND_ERR_SOCKET"};let o=da(t),r=t instanceof Error?t.message.toLowerCase():String(t).toLowerCase();if(r.includes("self signed")||r.includes("certificate")||r.includes("tls"))return{reason:"tls",stage:"tls",responseReceived:!1};if(o===407||n==="proxy_auth_required")return{reason:"proxy",stage:"connect",responseReceived:!0};if(e&&r.includes("proxy")&&(r.includes("407")||r.includes("connect")||r.includes("fetch failed")))return{reason:"proxy",stage:"connect",responseReceived:!1};if(r.includes("timed out")||r.includes("timeout")||r.includes("deadline exceeded"))return{reason:"timeout",stage:"request",responseReceived:!1};if(r.includes("fetch failed"))return{reason:"unknown",stage:"unknown",responseReceived:!1}}function fa(t,e){return t.findIndex(n=>n.transportReason===e.transportReason&&n.transportStage===e.transportStage&&n.responseReceived===e.responseReceived&&n.reportedSurface===e.reportedSurface&&n.reportedOs===e.reportedOs&&n.reportedArchitecture===e.reportedArchitecture&&n.reportedProcess===e.reportedProcess&&n.reportedVersion===e.reportedVersion&&n.reportedReleaseChannel===e.reportedReleaseChannel)}function Td(t,e){let n=ua(e.cliConfig);if(n.reportedSurface!=="code_cli"&&n.reportedSurface!=="desktop")return!1;let o=pa(t,e.proxyConfigured);if(!o)return!1;let r=Date.now(),i={eventType:"network_error",transportReason:o.reason,transportStage:o.stage,responseReceived:o.responseReceived,occurrenceCount:1,...n,firstObservedAtMs:r,lastObservedAtMs:r},s=gr()??{schemaVersion:$e,failures:[]},a=hr(s.failures,r),l=fa(a,i);if(l>=0){let c=a[l];a[l]={...c,occurrenceCount:Math.min(c.occurrenceCount+1,fr),lastObservedAtMs:r}}else a.push(i);return mr({schemaVersion:$e,failures:a.slice(-pr)}),!0}async function Sd(t){let e=gr();if(!e)return;let n=hr(e.failures,Date.now()),o=[];for(let r=0;r<n.length;r+=1){let i=n[r];if(!await On({eventType:i.eventType,transportReason:i.transportReason,transportStage:i.transportStage,responseReceived:i.responseReceived,occurrenceCount:i.occurrenceCount,reportedSurface:i.reportedSurface,reportedOs:i.reportedOs,reportedArchitecture:i.reportedArchitecture,reportedProcess:i.reportedProcess,reportedVersion:i.reportedVersion,reportedReleaseChannel:i.reportedReleaseChannel},t)){o.push(...n.slice(r));break}}mr({schemaVersion:$e,failures:o})}function Cr(){return Pt.join(ze.getGlobalMatildaDir(),"telemetry","cli-transport-failures.json")}var _f="http://localhost:4317";export{Zi as a,Ho as b,br as c,tn as d,st as e,Ir as f,Or as g,lt as h,ho as i,oi as j,dn as k,Yr as l,dr as m,pd as n,fd as o,Mn as p,Td as q,Sd as r,_f as s,Zl as t,gn as u,Mo as v,eu as w,iu as x,su as y,yt as z,me as A,Do as B,Eu as C,Mu as D,Fo as E,Re as F,_n as G,Ic as H,Oc as I,nr as J,fs as K,Pc as L,Dc as M,It as N,or as O,rr as P,gs as Q,wn as R,xn as S,Ts as T,sr as U,Vc as V,Es as W,Jc as X,ur as Y,$ as Z,id as _,sd as $};
21
+ /**
22
+ * @license
23
+ * Copyright 2025 Matilda
24
+ * SPDX-License-Identifier: Apache-2.0
25
+ */
26
+ /**
27
+ * @license
28
+ * Copyright 2025 Google LLC
29
+ * SPDX-License-Identifier: Apache-2.0
30
+ */
31
+ /**
32
+ * @license
33
+ * Copyright 2026 Matilda Team
34
+ * SPDX-License-Identifier: Apache-2.0
35
+ */
36
+ /**
37
+ * @license
38
+ * Copyright 2026 Matilda
39
+ * SPDX-License-Identifier: Apache-2.0
40
+ */
41
+ /**
42
+ * @license
43
+ * Copyright 2025 Matilda Team
44
+ * SPDX-License-Identifier: Apache-2.0
45
+ */
46
+ /**
47
+ * @license
48
+ * Copyright 2026 Maincode
49
+ * SPDX-License-Identifier: Apache-2.0
50
+ *
51
+ * Low-level OAuth primitives for core-auth's unified `/api/auth/oauth/*` flow
52
+ * (ADR-029): PKCE pair generation, RFC 8414 discovery, the RFC 8628 device
53
+ * grant, and refresh. Vendored (as source) from matilda-core's
54
+ * `packages/client-sdk/src/auth.ts` and extended to carry the `id_token`
55
+ * (display identity) that the higher-level flows need. Node built-ins only —
56
+ * no third-party runtime dependencies.
57
+ */
58
+ /**
59
+ * @license
60
+ * Copyright 2026 Maincode
61
+ * SPDX-License-Identifier: Apache-2.0
62
+ *
63
+ * File-backed token store + cross-process lock. The store persists a JSON map
64
+ * (`{ [key]: value }`) at 0600 so callers can key several credentials in one
65
+ * file; the lock is an O_EXCL lockfile that serialises refreshes across
66
+ * processes (the guarantee a plaintext read/modify/write can't give).
67
+ */
68
+ /**
69
+ * @license
70
+ * Copyright 2026 Maincode
71
+ * SPDX-License-Identifier: Apache-2.0
72
+ *
73
+ * Hardened access-token manager: returns a valid access token, refreshing via
74
+ * core-auth's token endpoint when expired or forced. Single-flight within the
75
+ * process, serialised across processes by the store's lock, carries a prior
76
+ * refresh token forward when the response omits one, and evicts on a terminal
77
+ * `invalid_grant` so a dead session doesn't wedge the caller in a refresh loop.
78
+ */
79
+ /**
80
+ * @license
81
+ * Copyright 2026 Maincode
82
+ * SPDX-License-Identifier: Apache-2.0
83
+ *
84
+ * Browser login orchestration: PKCE + a loopback capture server, driven off
85
+ * discovery metadata. Unlike a bare loopback helper, this emits lifecycle
86
+ * events for a UI, honours an AbortSignal, and — instead of serving its own
87
+ * HTML — 302-redirects the browser to an app-owned branded landing
88
+ * (`successRedirect`). Returns a TokenSet including the `id_token`.
89
+ */
90
+ /**
91
+ * @license
92
+ * Copyright 2026 Maincode
93
+ * SPDX-License-Identifier: Apache-2.0
94
+ *
95
+ * Node auth surface for `@maincode-ai/matilda-client-sdk/auth/node`.
96
+ * Re-exports the OAuth primitives plus the higher-level login flow, file token
97
+ * store, and hardened token manager that the CLI (`packages/core`) and the
98
+ * Electron desktop app consume.
99
+ */
100
+ /**
101
+ * @license
102
+ * Copyright 2026 Maincode
103
+ * SPDX-License-Identifier: Apache-2.0
104
+ *
105
+ * Matilda account auth for the CLI, backed by the shared client SDK.
106
+ *
107
+ * The OAuth dance (PKCE, loopback capture, code exchange, refresh, cross-process
108
+ * token locking) is owned by `@maincode-ai/matilda-client-sdk/auth/node` — the
109
+ * auth team's tested implementation of ADR-029's unified `/api/auth/oauth/*`
110
+ * flow. This module keeps ONLY the CLI-specific concerns: which endpoint, the
111
+ * on-disk credential shape the rest of the CLI already reads, and surfacing the
112
+ * authorize URL to the Ink UI. No PKCE crypto, no loopback server, no token
113
+ * exchange lives here anymore (replaced the 391-line hand-rolled beta that hit
114
+ * the divergent `/api/auth/cli/*` endpoints and stored tokens in plaintext).
115
+ */
116
+ /**
117
+ * @license
118
+ * Copyright 2026 Google LLC
119
+ * SPDX-License-Identifier: Apache-2.0
120
+ */
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{S as M,b as u}from"./chunk-NK2QMGCC.js";import{b as I}from"./chunk-GZPNIYVZ.js";I();import*as P from"node:crypto";import*as n from"node:fs";import*as f from"node:fs/promises";import*as O from"node:path";var C=M("ATOMIC_WRITE");async function L(t,o,e,i,w=f.rename){for(let a=0;a<=e;a++)try{await w(t,o);return}catch(c){if(!(u(c)&&(c.code==="EPERM"||c.code==="EACCES"))||a===e)throw c;await new Promise(v=>setTimeout(v,i*2**a))}}async function $(t){let e=t;for(let w=0;w<40;w++){let a;try{a=await f.lstat(e)}catch(l){if(u(l)&&l.code==="ENOENT")return e;throw l}if(!a.isSymbolicLink())return e;let c=await f.readlink(e);if(O.isAbsolute(c))e=c;else{let l=await f.realpath(O.dirname(e));e=O.resolve(l,c)}}let i=new Error(`ELOOP: too many levels of symbolic links, resolve '${t}'`);throw i.code="ELOOP",i}async function B(t,o,e,i){let w=e?.retries??3,a=e?.delayMs??50,c=e?.flush??!0,l=e?.encoding??"utf-8",v=i?.rename??f.rename,F=i?.writeFile??f.writeFile,x=i?.open??f.open,T=i?.chmod??f.chmod,A=i?.fchmod??((d,s)=>d.chmod(s)),b=i?.unlink??f.unlink,r=e?.noFollow?t:await $(t).catch(d=>{throw N(d,t)}),S;try{S=await f.stat(r)}catch(d){if(!u(d)||d.code!=="ENOENT")throw d}let W;(!e?.forceMode||e?.mode===void 0)&&(W=S!==void 0?S.mode&4095:void 0);let y=W??e?.mode,p={};typeof o=="string"&&(p.encoding=l),c&&(p.flush=!0),y!==void 0&&(p.mode=y);let k=async d=>{if(y!==void 0)try{await T(d,y)}catch(s){if(!u(s)||s.code!=="ENOSYS"&&s.code!=="ENOTSUP")throw s}},h=()=>{if(S===void 0||process.platform==="win32")return!1;let d=process.geteuid?.();return d===void 0?!1:S.uid!==d};if(S!==void 0&&S.isFile()&&h()){await f.writeFile(r,o,p),await k(r);return}let m=`${r}.${P.randomBytes(6).toString("hex")}.tmp`;try{await F(m,o,p),await k(m),await L(m,r,w,a,v)}catch(d){try{await b(m)}catch{}if(u(d)&&d.code==="EXDEV")try{if(e?.noFollow){try{await b(r)}catch(g){if(!u(g)||g.code!=="ENOENT")throw g}let s=await x(r,n.constants.O_WRONLY|n.constants.O_CREAT|n.constants.O_EXCL,y??438),E=!1;try{try{if(await s.writeFile(typeof o=="string"?Buffer.from(o,l):o),c&&await s.sync(),y!==void 0)try{await A(s,y)}catch(g){if(!u(g)||g.code!=="ENOSYS"&&g.code!=="ENOTSUP")throw g}E=!0}finally{await s.close()}}catch(g){if(!E)try{await b(r)}catch(R){C.debug(`orphan unlink failed for ${r}:`,R)}throw g}}else await F(r,o,p),await k(r);return}catch(s){throw N(s,r)}throw N(d,r)}}function N(t,o,e="atomicWriteFile"){return t instanceof Error&&!t.message.startsWith(`${e}(`)&&(t.message=`${e}(${JSON.stringify(o)}): ${t.message}`),t}async function X(t,o,e){await B(t,JSON.stringify(o,null,2),{encoding:"utf-8",...e})}function H(t){if(t<=0)return;let o=new SharedArrayBuffer(4),e=new Int32Array(o);Atomics.wait(e,0,0,t)}function Y(t,o,e,i,w=n.renameSync){for(let a=0;a<=e;a++)try{w(t,o);return}catch(c){if(!(u(c)&&(c.code==="EPERM"||c.code==="EACCES"))||a===e)throw c;H(i*2**a)}}function D(t){let e=t;for(let w=0;w<40;w++){let a;try{a=n.lstatSync(e)}catch(l){if(u(l)&&l.code==="ENOENT")return e;throw l}if(!a.isSymbolicLink())return e;let c=n.readlinkSync(e);if(O.isAbsolute(c))e=c;else{let l=n.realpathSync(O.dirname(e));e=O.resolve(l,c)}}let i=new Error(`ELOOP: too many levels of symbolic links, resolve '${t}'`);throw i.code="ELOOP",i}function V(t,o,e,i){let w=e?.retries??3,a=e?.delayMs??50,c=e?.flush??!0,l=e?.encoding??"utf-8",v=i?.rename??n.renameSync,F=i?.writeFile??n.writeFileSync,x=i?.open??n.openSync,T=i?.chmod??n.chmodSync,A=i?.fchmod??n.fchmodSync,b=i?.unlink??n.unlinkSync,r;if(e?.noFollow)r=t;else try{r=D(t)}catch(h){throw N(h,t,"atomicWriteFileSync")}let S=`${r}.${P.randomBytes(6).toString("hex")}.tmp`,W;if(!e?.forceMode||e?.mode===void 0)try{W=n.statSync(r).mode&4095}catch(h){if(!u(h)||h.code!=="ENOENT")throw h}let y=W??e?.mode,p={};typeof o=="string"&&(p.encoding=l),c&&(p.flush=!0),y!==void 0&&(p.mode=y);let k=h=>{if(y!==void 0)try{T(h,y)}catch(m){if(!u(m)||m.code!=="ENOSYS"&&m.code!=="ENOTSUP")throw m}};try{F(S,o,p),k(S),Y(S,r,w,a,v)}catch(h){try{b(S)}catch{}if(u(h)&&h.code==="EXDEV")try{if(e?.noFollow){try{b(r)}catch(s){if(!u(s)||s.code!=="ENOENT")throw s}let m=x(r,n.constants.O_WRONLY|n.constants.O_CREAT|n.constants.O_EXCL,y??438),d=!1;try{try{let s=typeof o=="string"?Buffer.from(o,l):o;if(n.writeFileSync(m,s),c&&n.fsyncSync(m),y!==void 0)try{A(m,y)}catch(E){if(!u(E)||E.code!=="ENOSYS"&&E.code!=="ENOTSUP")throw E}d=!0}finally{n.closeSync(m)}}catch(s){if(!d)try{b(r)}catch(E){C.debug(`orphan unlink failed for ${r}:`,E)}throw s}}else F(r,o,p),k(r);return}catch(m){throw N(m,r,"atomicWriteFileSync")}throw N(h,r,"atomicWriteFileSync")}}export{B as a,X as b,V as c};
3
+ import{S as M,b as u}from"./chunk-XYAIE36G.js";import{b as I}from"./chunk-GZPNIYVZ.js";I();import*as P from"node:crypto";import*as n from"node:fs";import*as f from"node:fs/promises";import*as O from"node:path";var C=M("ATOMIC_WRITE");async function L(t,o,e,i,w=f.rename){for(let a=0;a<=e;a++)try{await w(t,o);return}catch(c){if(!(u(c)&&(c.code==="EPERM"||c.code==="EACCES"))||a===e)throw c;await new Promise(v=>setTimeout(v,i*2**a))}}async function $(t){let e=t;for(let w=0;w<40;w++){let a;try{a=await f.lstat(e)}catch(l){if(u(l)&&l.code==="ENOENT")return e;throw l}if(!a.isSymbolicLink())return e;let c=await f.readlink(e);if(O.isAbsolute(c))e=c;else{let l=await f.realpath(O.dirname(e));e=O.resolve(l,c)}}let i=new Error(`ELOOP: too many levels of symbolic links, resolve '${t}'`);throw i.code="ELOOP",i}async function B(t,o,e,i){let w=e?.retries??3,a=e?.delayMs??50,c=e?.flush??!0,l=e?.encoding??"utf-8",v=i?.rename??f.rename,F=i?.writeFile??f.writeFile,x=i?.open??f.open,T=i?.chmod??f.chmod,A=i?.fchmod??((d,s)=>d.chmod(s)),b=i?.unlink??f.unlink,r=e?.noFollow?t:await $(t).catch(d=>{throw N(d,t)}),S;try{S=await f.stat(r)}catch(d){if(!u(d)||d.code!=="ENOENT")throw d}let W;(!e?.forceMode||e?.mode===void 0)&&(W=S!==void 0?S.mode&4095:void 0);let y=W??e?.mode,p={};typeof o=="string"&&(p.encoding=l),c&&(p.flush=!0),y!==void 0&&(p.mode=y);let k=async d=>{if(y!==void 0)try{await T(d,y)}catch(s){if(!u(s)||s.code!=="ENOSYS"&&s.code!=="ENOTSUP")throw s}},h=()=>{if(S===void 0||process.platform==="win32")return!1;let d=process.geteuid?.();return d===void 0?!1:S.uid!==d};if(S!==void 0&&S.isFile()&&h()){await f.writeFile(r,o,p),await k(r);return}let m=`${r}.${P.randomBytes(6).toString("hex")}.tmp`;try{await F(m,o,p),await k(m),await L(m,r,w,a,v)}catch(d){try{await b(m)}catch{}if(u(d)&&d.code==="EXDEV")try{if(e?.noFollow){try{await b(r)}catch(g){if(!u(g)||g.code!=="ENOENT")throw g}let s=await x(r,n.constants.O_WRONLY|n.constants.O_CREAT|n.constants.O_EXCL,y??438),E=!1;try{try{if(await s.writeFile(typeof o=="string"?Buffer.from(o,l):o),c&&await s.sync(),y!==void 0)try{await A(s,y)}catch(g){if(!u(g)||g.code!=="ENOSYS"&&g.code!=="ENOTSUP")throw g}E=!0}finally{await s.close()}}catch(g){if(!E)try{await b(r)}catch(R){C.debug(`orphan unlink failed for ${r}:`,R)}throw g}}else await F(r,o,p),await k(r);return}catch(s){throw N(s,r)}throw N(d,r)}}function N(t,o,e="atomicWriteFile"){return t instanceof Error&&!t.message.startsWith(`${e}(`)&&(t.message=`${e}(${JSON.stringify(o)}): ${t.message}`),t}async function X(t,o,e){await B(t,JSON.stringify(o,null,2),{encoding:"utf-8",...e})}function H(t){if(t<=0)return;let o=new SharedArrayBuffer(4),e=new Int32Array(o);Atomics.wait(e,0,0,t)}function Y(t,o,e,i,w=n.renameSync){for(let a=0;a<=e;a++)try{w(t,o);return}catch(c){if(!(u(c)&&(c.code==="EPERM"||c.code==="EACCES"))||a===e)throw c;H(i*2**a)}}function D(t){let e=t;for(let w=0;w<40;w++){let a;try{a=n.lstatSync(e)}catch(l){if(u(l)&&l.code==="ENOENT")return e;throw l}if(!a.isSymbolicLink())return e;let c=n.readlinkSync(e);if(O.isAbsolute(c))e=c;else{let l=n.realpathSync(O.dirname(e));e=O.resolve(l,c)}}let i=new Error(`ELOOP: too many levels of symbolic links, resolve '${t}'`);throw i.code="ELOOP",i}function V(t,o,e,i){let w=e?.retries??3,a=e?.delayMs??50,c=e?.flush??!0,l=e?.encoding??"utf-8",v=i?.rename??n.renameSync,F=i?.writeFile??n.writeFileSync,x=i?.open??n.openSync,T=i?.chmod??n.chmodSync,A=i?.fchmod??n.fchmodSync,b=i?.unlink??n.unlinkSync,r;if(e?.noFollow)r=t;else try{r=D(t)}catch(h){throw N(h,t,"atomicWriteFileSync")}let S=`${r}.${P.randomBytes(6).toString("hex")}.tmp`,W;if(!e?.forceMode||e?.mode===void 0)try{W=n.statSync(r).mode&4095}catch(h){if(!u(h)||h.code!=="ENOENT")throw h}let y=W??e?.mode,p={};typeof o=="string"&&(p.encoding=l),c&&(p.flush=!0),y!==void 0&&(p.mode=y);let k=h=>{if(y!==void 0)try{T(h,y)}catch(m){if(!u(m)||m.code!=="ENOSYS"&&m.code!=="ENOTSUP")throw m}};try{F(S,o,p),k(S),Y(S,r,w,a,v)}catch(h){try{b(S)}catch{}if(u(h)&&h.code==="EXDEV")try{if(e?.noFollow){try{b(r)}catch(s){if(!u(s)||s.code!=="ENOENT")throw s}let m=x(r,n.constants.O_WRONLY|n.constants.O_CREAT|n.constants.O_EXCL,y??438),d=!1;try{try{let s=typeof o=="string"?Buffer.from(o,l):o;if(n.writeFileSync(m,s),c&&n.fsyncSync(m),y!==void 0)try{A(m,y)}catch(E){if(!u(E)||E.code!=="ENOSYS"&&E.code!=="ENOTSUP")throw E}d=!0}finally{n.closeSync(m)}}catch(s){if(!d)try{b(r)}catch(E){C.debug(`orphan unlink failed for ${r}:`,E)}throw s}}else F(r,o,p),k(r);return}catch(m){throw N(m,r,"atomicWriteFileSync")}throw N(h,r,"atomicWriteFileSync")}}export{B as a,X as b,V as c};
4
4
  /**
5
5
  * @license
6
6
  * Copyright 2025 Matilda Team
@@ -1,3 +1,3 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{a as f}from"./chunk-GT6MSEK4.js";import{b as g}from"./chunk-62GTGPTP.js";import{A as d,I as m,S as p}from"./chunk-NK2QMGCC.js";import{b as u}from"./chunk-GZPNIYVZ.js";u();import*as a from"node:fs/promises";import*as s from"node:path";var x=p("CRON_TASKS_FILE"),T="scheduled_tasks.json",L=`~/.matilda/tmp/<project-hash>/${T}`,E=15,w=2e3,b=3e3,P=0,h=new Map;function C(e){let t=h.get(e);return t||(t=new f,h.set(e,t)),t}function c(e){return s.join(m.getGlobalTempDir(),d(e),T)}async function k(e){let t=c(e),i;try{i=await a.readFile(t,"utf-8")}catch(o){if(o.code==="ENOENT")return[];throw o}let r;try{r=JSON.parse(i)}catch{throw new Error(`Malformed JSON in ${t} \u2014 fix or delete the file; refusing to treat it as an empty schedule.`)}if(!Array.isArray(r))throw new Error(`Expected a JSON array in ${t} \u2014 fix or delete the file; refusing to treat it as an empty schedule.`);let n=r.filter(A);return n.length!==r.length&&x.warn(`Dropped ${r.length-n.length} invalid task entr${r.length-n.length===1?"y":"ies"} from ${t}; a later write will persist without ${r.length-n.length===1?"it":"them"}.`),n}async function D(e,t){let i=c(e);await a.mkdir(s.dirname(i),{recursive:!0}),await g(i,t,{noFollow:!0})}async function _(e){let t=`${e}.lock`;await a.mkdir(s.dirname(t),{recursive:!0});let i=Date.now()+b;for(;;){if(Date.now()>i)throw new Error(`Timed out waiting for scheduled-tasks lock (${t})`);try{return await a.writeFile(t,String(process.pid),{flag:"wx"}),async()=>{await a.unlink(t).catch(()=>{})}}catch(r){if(r.code!=="EEXIST")throw r}try{let r=await a.stat(t);if(Date.now()-r.mtimeMs>w){let n=`${t}.stale.${process.pid}.${P++}`;try{await a.rename(t,n)}catch{continue}let o=await a.stat(n).catch(()=>null);o&&Date.now()-o.mtimeMs<=w&&await a.link(n,t).catch(()=>{}),await a.unlink(n).catch(()=>{});continue}}catch{continue}await new Promise(r=>setTimeout(r,E))}}async function y(e,t){let i=c(e);return C(i).runExclusive(async()=>{let r=await _(i);try{let n=await k(e),o=t(n);o!==n&&await D(e,o)}finally{await r()}})}async function F(e,t){await y(e,i=>[...i,t])}async function J(e,t){let i=new Set(t);if(!(await k(e)).some(o=>i.has(o.id)))return 0;let n=0;return await y(e,o=>{let l=o.filter(S=>!i.has(S.id));return n=o.length-l.length,n===0?o:l}),n}function A(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.id=="string"&&typeof t.cron=="string"&&typeof t.prompt=="string"&&typeof t.recurring=="boolean"&&typeof t.createdAt=="number"&&(t.lastFiredAt===null||typeof t.lastFiredAt=="number")}export{L as a,c as b,k as c,y as d,F as e,J as f};
3
+ import{a as f}from"./chunk-GT6MSEK4.js";import{b as g}from"./chunk-5WRYWBB4.js";import{A as d,I as m,S as p}from"./chunk-XYAIE36G.js";import{b as u}from"./chunk-GZPNIYVZ.js";u();import*as a from"node:fs/promises";import*as s from"node:path";var x=p("CRON_TASKS_FILE"),T="scheduled_tasks.json",L=`~/.matilda/tmp/<project-hash>/${T}`,E=15,w=2e3,b=3e3,P=0,h=new Map;function C(e){let t=h.get(e);return t||(t=new f,h.set(e,t)),t}function c(e){return s.join(m.getGlobalTempDir(),d(e),T)}async function k(e){let t=c(e),i;try{i=await a.readFile(t,"utf-8")}catch(o){if(o.code==="ENOENT")return[];throw o}let r;try{r=JSON.parse(i)}catch{throw new Error(`Malformed JSON in ${t} \u2014 fix or delete the file; refusing to treat it as an empty schedule.`)}if(!Array.isArray(r))throw new Error(`Expected a JSON array in ${t} \u2014 fix or delete the file; refusing to treat it as an empty schedule.`);let n=r.filter(A);return n.length!==r.length&&x.warn(`Dropped ${r.length-n.length} invalid task entr${r.length-n.length===1?"y":"ies"} from ${t}; a later write will persist without ${r.length-n.length===1?"it":"them"}.`),n}async function D(e,t){let i=c(e);await a.mkdir(s.dirname(i),{recursive:!0}),await g(i,t,{noFollow:!0})}async function _(e){let t=`${e}.lock`;await a.mkdir(s.dirname(t),{recursive:!0});let i=Date.now()+b;for(;;){if(Date.now()>i)throw new Error(`Timed out waiting for scheduled-tasks lock (${t})`);try{return await a.writeFile(t,String(process.pid),{flag:"wx"}),async()=>{await a.unlink(t).catch(()=>{})}}catch(r){if(r.code!=="EEXIST")throw r}try{let r=await a.stat(t);if(Date.now()-r.mtimeMs>w){let n=`${t}.stale.${process.pid}.${P++}`;try{await a.rename(t,n)}catch{continue}let o=await a.stat(n).catch(()=>null);o&&Date.now()-o.mtimeMs<=w&&await a.link(n,t).catch(()=>{}),await a.unlink(n).catch(()=>{});continue}}catch{continue}await new Promise(r=>setTimeout(r,E))}}async function y(e,t){let i=c(e);return C(i).runExclusive(async()=>{let r=await _(i);try{let n=await k(e),o=t(n);o!==n&&await D(e,o)}finally{await r()}})}async function F(e,t){await y(e,i=>[...i,t])}async function J(e,t){let i=new Set(t);if(!(await k(e)).some(o=>i.has(o.id)))return 0;let n=0;return await y(e,o=>{let l=o.filter(S=>!i.has(S.id));return n=o.length-l.length,n===0?o:l}),n}function A(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.id=="string"&&typeof t.cron=="string"&&typeof t.prompt=="string"&&typeof t.recurring=="boolean"&&typeof t.createdAt=="number"&&(t.lastFiredAt===null||typeof t.lastFiredAt=="number")}export{L as a,c as b,k as c,y as d,F as e,J as f};
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{S as x}from"./chunk-NK2QMGCC.js";import{b as m}from"./chunk-GZPNIYVZ.js";m();var f=x("TRUSTED_HOOKS");var h=(o=>(o.PreToolUse="PreToolUse",o.PostToolUse="PostToolUse",o.PostToolUseFailure="PostToolUseFailure",o.PostToolBatch="PostToolBatch",o.Notification="Notification",o.UserPromptSubmit="UserPromptSubmit",o.UserPromptExpansion="UserPromptExpansion",o.SessionStart="SessionStart",o.Stop="Stop",o.SubagentStart="SubagentStart",o.SubagentStop="SubagentStop",o.PreCompact="PreCompact",o.PostCompact="PostCompact",o.SessionEnd="SessionEnd",o.PermissionRequest="PermissionRequest",o.PermissionDenied="PermissionDenied",o.StopFailure="StopFailure",o.TodoCreated="TodoCreated",o.TodoCompleted="TodoCompleted",o.InstructionsLoaded="InstructionsLoaded",o))(h||{});var O=["enabled","disabled","notifications"];function C(t){let e=t.name??"";switch(t.type){case"command":return e?`${e}:${t.command}`:t.command;case"http":return e?`${e}:${t.url}`:t.url;case"function":return e?`${e}:${t.id??"function"}`:t.id??"function";case"prompt":return e?`${e}:${t.prompt}`:t.prompt;default:return e||"unknown"}}var _=1e4;function P(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").slice(0,_).replace(/&(?:a(?:mp?)?|lt?|gt?)?$/,"")}function b(t,e){switch(t){case"PreToolUse":return new r(e);case"PostToolUse":return new u(e);case"PostToolUseFailure":return new p(e);case"UserPromptExpansion":return new a(e);case"PostToolBatch":return new c(e);case"Stop":case"SubagentStop":return new d(e);case"PermissionRequest":return new l(e);default:return new n(e)}}var n=class{continue;stopReason;suppressOutput;systemMessage;terminalSequence;decision;reason;hookSpecificOutput;constructor(e={}){this.continue=e.continue,this.stopReason=e.stopReason,this.suppressOutput=e.suppressOutput,this.systemMessage=e.systemMessage,this.terminalSequence=e.terminalSequence,this.decision=e.decision,this.reason=e.reason,this.hookSpecificOutput=e.hookSpecificOutput}isBlockingDecision(){return this.decision==="block"||this.decision==="deny"}shouldStopExecution(){return this.continue===!1}getEffectiveReason(){return this.stopReason||this.reason||"No reason provided"}getRawAdditionalContext(){if(this.hookSpecificOutput&&"additionalContext"in this.hookSpecificOutput){let e=this.hookSpecificOutput.additionalContext;return typeof e=="string"?e:void 0}}getAdditionalContext(){let e=this.getRawAdditionalContext();if(e!==void 0)return e.replace(/</g,"&lt;").replace(/>/g,"&gt;")}getBlockingError(){return this.isBlockingDecision()?{blocked:!0,reason:this.getEffectiveReason()}:{blocked:!1,reason:""}}shouldClearContext(){return!1}},r=class extends n{getPermissionDecision(){if(this.hookSpecificOutput&&"permissionDecision"in this.hookSpecificOutput){let e=this.hookSpecificOutput.permissionDecision;if(e==="allow"||e==="deny"||e==="ask")return e}if(this.decision==="allow"||this.decision==="approve")return"allow";if(this.decision==="deny"||this.decision==="block")return"deny";if(this.decision==="ask")return"ask"}getPermissionDecisionReason(){if(this.hookSpecificOutput&&"permissionDecisionReason"in this.hookSpecificOutput){let e=this.hookSpecificOutput.permissionDecisionReason;if(typeof e=="string")return e}return this.reason}isDenied(){return this.getPermissionDecision()==="deny"}isAsk(){return this.getPermissionDecision()==="ask"}isAllowed(){return this.getPermissionDecision()==="allow"}},u=class extends n{decision;reason;constructor(e={}){super(e),this.decision=e.decision??"allow",this.reason=e.reason??"No reason provided",e.decision===void 0&&f.debug('PostToolUseHookOutput: No explicit decision set, defaulting to "allow"'),e.reason===void 0&&f.debug('PostToolUseHookOutput: No explicit reason set, defaulting to "No reason provided"')}},p=class extends n{getAdditionalContext(){return super.getAdditionalContext()}},a=class extends n{getAdditionalContext(){let e=this.getRawAdditionalContext();if(e!==void 0)return P(e)}},c=class extends n{shouldStopExecution(){return super.shouldStopExecution()||this.isBlockingDecision()}},d=class extends n{stopReason;constructor(e={}){super(e),this.stopReason=e.stopReason}getStopReason(){if(this.stopReason)return`Stop hook feedback:
3
+ import{S as x}from"./chunk-XYAIE36G.js";import{b as m}from"./chunk-GZPNIYVZ.js";m();var f=x("TRUSTED_HOOKS");var h=(o=>(o.PreToolUse="PreToolUse",o.PostToolUse="PostToolUse",o.PostToolUseFailure="PostToolUseFailure",o.PostToolBatch="PostToolBatch",o.Notification="Notification",o.UserPromptSubmit="UserPromptSubmit",o.UserPromptExpansion="UserPromptExpansion",o.SessionStart="SessionStart",o.Stop="Stop",o.SubagentStart="SubagentStart",o.SubagentStop="SubagentStop",o.PreCompact="PreCompact",o.PostCompact="PostCompact",o.SessionEnd="SessionEnd",o.PermissionRequest="PermissionRequest",o.PermissionDenied="PermissionDenied",o.StopFailure="StopFailure",o.TodoCreated="TodoCreated",o.TodoCompleted="TodoCompleted",o.InstructionsLoaded="InstructionsLoaded",o))(h||{});var O=["enabled","disabled","notifications"];function C(t){let e=t.name??"";switch(t.type){case"command":return e?`${e}:${t.command}`:t.command;case"http":return e?`${e}:${t.url}`:t.url;case"function":return e?`${e}:${t.id??"function"}`:t.id??"function";case"prompt":return e?`${e}:${t.prompt}`:t.prompt;default:return e||"unknown"}}var _=1e4;function P(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").slice(0,_).replace(/&(?:a(?:mp?)?|lt?|gt?)?$/,"")}function b(t,e){switch(t){case"PreToolUse":return new r(e);case"PostToolUse":return new u(e);case"PostToolUseFailure":return new p(e);case"UserPromptExpansion":return new a(e);case"PostToolBatch":return new c(e);case"Stop":case"SubagentStop":return new d(e);case"PermissionRequest":return new l(e);default:return new n(e)}}var n=class{continue;stopReason;suppressOutput;systemMessage;terminalSequence;decision;reason;hookSpecificOutput;constructor(e={}){this.continue=e.continue,this.stopReason=e.stopReason,this.suppressOutput=e.suppressOutput,this.systemMessage=e.systemMessage,this.terminalSequence=e.terminalSequence,this.decision=e.decision,this.reason=e.reason,this.hookSpecificOutput=e.hookSpecificOutput}isBlockingDecision(){return this.decision==="block"||this.decision==="deny"}shouldStopExecution(){return this.continue===!1}getEffectiveReason(){return this.stopReason||this.reason||"No reason provided"}getRawAdditionalContext(){if(this.hookSpecificOutput&&"additionalContext"in this.hookSpecificOutput){let e=this.hookSpecificOutput.additionalContext;return typeof e=="string"?e:void 0}}getAdditionalContext(){let e=this.getRawAdditionalContext();if(e!==void 0)return e.replace(/</g,"&lt;").replace(/>/g,"&gt;")}getBlockingError(){return this.isBlockingDecision()?{blocked:!0,reason:this.getEffectiveReason()}:{blocked:!1,reason:""}}shouldClearContext(){return!1}},r=class extends n{getPermissionDecision(){if(this.hookSpecificOutput&&"permissionDecision"in this.hookSpecificOutput){let e=this.hookSpecificOutput.permissionDecision;if(e==="allow"||e==="deny"||e==="ask")return e}if(this.decision==="allow"||this.decision==="approve")return"allow";if(this.decision==="deny"||this.decision==="block")return"deny";if(this.decision==="ask")return"ask"}getPermissionDecisionReason(){if(this.hookSpecificOutput&&"permissionDecisionReason"in this.hookSpecificOutput){let e=this.hookSpecificOutput.permissionDecisionReason;if(typeof e=="string")return e}return this.reason}isDenied(){return this.getPermissionDecision()==="deny"}isAsk(){return this.getPermissionDecision()==="ask"}isAllowed(){return this.getPermissionDecision()==="allow"}},u=class extends n{decision;reason;constructor(e={}){super(e),this.decision=e.decision??"allow",this.reason=e.reason??"No reason provided",e.decision===void 0&&f.debug('PostToolUseHookOutput: No explicit decision set, defaulting to "allow"'),e.reason===void 0&&f.debug('PostToolUseHookOutput: No explicit reason set, defaulting to "No reason provided"')}},p=class extends n{getAdditionalContext(){return super.getAdditionalContext()}},a=class extends n{getAdditionalContext(){let e=this.getRawAdditionalContext();if(e!==void 0)return P(e)}},c=class extends n{shouldStopExecution(){return super.shouldStopExecution()||this.isBlockingDecision()}},d=class extends n{stopReason;constructor(e={}){super(e),this.stopReason=e.stopReason}getStopReason(){if(this.stopReason)return`Stop hook feedback:
4
4
  ${this.stopReason}`}},l=class extends n{getPermissionDecision(){if(this.hookSpecificOutput&&"decision"in this.hookSpecificOutput){let e=this.hookSpecificOutput.decision;if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}}isPermissionDenied(){return this.getPermissionDecision()?.behavior==="deny"}getDenyMessage(){return this.getPermissionDecision()?.message}shouldInterrupt(){return this.getPermissionDecision()?.interrupt===!0}getUpdatedToolInput(){return this.getPermissionDecision()?.updatedInput}getUpdatedPermissions(){return this.getPermissionDecision()?.updatedPermissions}};function H(t,e){let k=new Map(t.map(i=>[i.id,i])),s={created:[],completed:[]};for(let i of e){let g=k.get(i.id);g?g.status!=="completed"&&i.status==="completed"&&s.completed.push(i):s.created.push(i)}return s}export{h as a,O as b,C as c,P as d,b as e,n as f,r as g,u as h,p as i,a as j,c as k,d as l,l as m,H as n};
5
5
  /**
6
6
  * @license
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{B as h,E as g,I as l,t as m}from"./chunk-NK2QMGCC.js";import{b as p}from"./chunk-GZPNIYVZ.js";p();import*as s from"node:fs";import*as t from"node:path";var M="memory",f="MEMORY.md",d="meta.json",x="extract-cursor.json",R="consolidation.lock",O="memories";function T(r){let o=t.resolve(r);for(;;){let e=t.join(o,".git");if(s.existsSync(e))return o;let n=t.dirname(o);if(n===o)return null;o=n}}function D(r){let o=T(r);if(!o)return null;try{let e=s.readFileSync(t.join(o,".git"),"utf-8").trim();if(!e.startsWith("gitdir:"))return o;let n=t.resolve(o,e.slice(7).trim()),i=t.resolve(n,s.readFileSync(t.join(n,"commondir"),"utf-8").trim());return t.resolve(t.dirname(n))!==t.join(i,"worktrees")||s.realpathSync(s.readFileSync(t.join(n,"gitdir"),"utf-8").trim())!==t.join(s.realpathSync(o),".git")?o:t.basename(i)!==".git"?i.normalize("NFC"):t.dirname(i).normalize("NFC")}catch{return o}}function y(){return process.env.MATILDA_CODE_MEMORY_BASE_DIR?g(void 0,process.env.MATILDA_CODE_MEMORY_BASE_DIR):l.getRuntimeBaseDir()}var A=new Map;function u(r){let o=process.env.MATILDA_CODE_MEMORY_LOCAL==="1",e=o?"":y(),n=`${o?"local":e}\0${r}`,i=A.get(n);if(i!==void 0)return i;let a;if(o)a=t.join(r,m,M);else{let E=D(r)??t.resolve(r);a=t.join(e,"projects",h(E),M)}return A.set(n,a),a}function c(r){return t.dirname(u(r))}function j(r,o){let e=t.normalize(r),n=t.normalize(u(o)),i=t.relative(n,e);return i===""||!i.startsWith("..")&&!t.isAbsolute(i)}function L(r){return t.join(u(r),f)}function S(r){return t.join(c(r),d)}function v(r){return t.join(c(r),x)}function U(r){return t.join(c(r),R)}function _(){return t.join(y(),O)}function F(){return t.join(_(),f)}function I(r){let o=t.normalize(r),e=t.normalize(_()),n=t.relative(e,o);return n===""||!n.startsWith("..")&&!t.isAbsolute(n)}function N(r,o){return j(r,o)||I(r)}export{f as a,y as b,u as c,c as d,j as e,L as f,S as g,v as h,U as i,_ as j,F as k,N as l};
3
+ import{B as h,E as g,I as l,t as m}from"./chunk-XYAIE36G.js";import{b as p}from"./chunk-GZPNIYVZ.js";p();import*as s from"node:fs";import*as t from"node:path";var M="memory",f="MEMORY.md",d="meta.json",x="extract-cursor.json",R="consolidation.lock",O="memories";function T(r){let o=t.resolve(r);for(;;){let e=t.join(o,".git");if(s.existsSync(e))return o;let n=t.dirname(o);if(n===o)return null;o=n}}function D(r){let o=T(r);if(!o)return null;try{let e=s.readFileSync(t.join(o,".git"),"utf-8").trim();if(!e.startsWith("gitdir:"))return o;let n=t.resolve(o,e.slice(7).trim()),i=t.resolve(n,s.readFileSync(t.join(n,"commondir"),"utf-8").trim());return t.resolve(t.dirname(n))!==t.join(i,"worktrees")||s.realpathSync(s.readFileSync(t.join(n,"gitdir"),"utf-8").trim())!==t.join(s.realpathSync(o),".git")?o:t.basename(i)!==".git"?i.normalize("NFC"):t.dirname(i).normalize("NFC")}catch{return o}}function y(){return process.env.MATILDA_CODE_MEMORY_BASE_DIR?g(void 0,process.env.MATILDA_CODE_MEMORY_BASE_DIR):l.getRuntimeBaseDir()}var A=new Map;function u(r){let o=process.env.MATILDA_CODE_MEMORY_LOCAL==="1",e=o?"":y(),n=`${o?"local":e}\0${r}`,i=A.get(n);if(i!==void 0)return i;let a;if(o)a=t.join(r,m,M);else{let E=D(r)??t.resolve(r);a=t.join(e,"projects",h(E),M)}return A.set(n,a),a}function c(r){return t.dirname(u(r))}function j(r,o){let e=t.normalize(r),n=t.normalize(u(o)),i=t.relative(n,e);return i===""||!i.startsWith("..")&&!t.isAbsolute(i)}function L(r){return t.join(u(r),f)}function S(r){return t.join(c(r),d)}function v(r){return t.join(c(r),x)}function U(r){return t.join(c(r),R)}function _(){return t.join(y(),O)}function F(){return t.join(_(),f)}function I(r){let o=t.normalize(r),e=t.normalize(_()),n=t.relative(e,o);return n===""||!n.startsWith("..")&&!t.isAbsolute(n)}function N(r,o){return j(r,o)||I(r)}export{f as a,y as b,u as c,c as d,j as e,L as f,S as g,v as h,U as i,_ as j,F as k,N as l};
4
4
  /**
5
5
  * @license
6
6
  * Copyright 2025 Google LLC
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{a as At}from"./chunk-WTU6GSZH.js";import{b as Ot}from"./chunk-V6UPUMP3.js";import{b as xt}from"./chunk-LVDDFAK4.js";import{e as te}from"./chunk-LOB42ODE.js";import{k as Pt,l as Ct,m as Y,p as wt}from"./chunk-DB5LMKXU.js";import{S as de}from"./chunk-NK2QMGCC.js";import{b as y}from"./chunk-GZPNIYVZ.js";y();import{AsyncLocalStorage as Nt}from"node:async_hooks";var ve=new Nt,qe=new Nt;function yr(e,t,o){return e?ve.run(e,()=>o?qe.run(i=>o.billSpend(e.goalId,i),t):t()):t()}y();function Ut(e){return`The Goal spent its autonomous token budget (${e.toLocaleString("en-US")} tokens). Resume the Goal to authorize another budget window, or clear it.`}function be(e){return e.tokenBudget!==void 0&&e.tokensUsed>=e.tokenBudget}function Mt(e){return`The Goal ran its Goal-turn budget (${e.toLocaleString("en-US")} ${e===1?"turn":"turns"}). Resume the Goal to authorize another window of turns, or clear it.`}function Oe(e){return e.turnBudget!==void 0&&e.turnCount>=e.turnBudget}function Hn(e){let t=e/6e4;if(t>=1){let i=Math.round(t);return`${i.toLocaleString("en-US")} ${i===1?"minute":"minutes"}`}let o=Math.max(1,Math.round(e/1e3));return`${o.toLocaleString("en-US")} ${o===1?"second":"seconds"}`}function Lt(e){return`The Goal ran its active-time budget (${Hn(e)}). Resume the Goal to authorize another window of time, or clear it.`}function Ne(e,t){return e.activeTimeBudgetMs!==void 0&&t>=e.activeTimeBudgetMs}function We(e){return e==="token_budget"||e==="turn_budget"||e==="time_budget"}var Rr=`<system-reminder>
3
+ import{a as At}from"./chunk-3KKFNVI6.js";import{b as Ot}from"./chunk-V6UPUMP3.js";import{b as xt}from"./chunk-LVDDFAK4.js";import{e as te}from"./chunk-DP2GG4BM.js";import{k as Pt,l as Ct,m as Y,p as wt}from"./chunk-R5KAUFJR.js";import{S as de}from"./chunk-XYAIE36G.js";import{b as y}from"./chunk-GZPNIYVZ.js";y();import{AsyncLocalStorage as Nt}from"node:async_hooks";var ve=new Nt,qe=new Nt;function yr(e,t,o){return e?ve.run(e,()=>o?qe.run(i=>o.billSpend(e.goalId,i),t):t()):t()}y();function Ut(e){return`The Goal spent its autonomous token budget (${e.toLocaleString("en-US")} tokens). Resume the Goal to authorize another budget window, or clear it.`}function be(e){return e.tokenBudget!==void 0&&e.tokensUsed>=e.tokenBudget}function Mt(e){return`The Goal ran its Goal-turn budget (${e.toLocaleString("en-US")} ${e===1?"turn":"turns"}). Resume the Goal to authorize another window of turns, or clear it.`}function Oe(e){return e.turnBudget!==void 0&&e.turnCount>=e.turnBudget}function Hn(e){let t=e/6e4;if(t>=1){let i=Math.round(t);return`${i.toLocaleString("en-US")} ${i===1?"minute":"minutes"}`}let o=Math.max(1,Math.round(e/1e3));return`${o.toLocaleString("en-US")} ${o===1?"second":"seconds"}`}function Lt(e){return`The Goal ran its active-time budget (${Hn(e)}). Resume the Goal to authorize another window of time, or clear it.`}function Ne(e,t){return e.activeTimeBudgetMs!==void 0&&t>=e.activeTimeBudgetMs}function We(e){return e==="token_budget"||e==="turn_budget"||e==="time_budget"}var Rr=`<system-reminder>
4
4
  The Goal is paused. Do not continue its objective unless the user resumes it. Treat this message as ordinary conversation.
5
5
  </system-reminder>`;function jt(){return{v:2,goal:null,activity:"idle"}}function Er(e){return e.goal!==null&&(e.goal.status==="active"||e.activity==="running")}function Vt(e){return e.status==="blocked"&&e.blockerKind!=="authority"&&e.blockerKind!=="external"&&e.blockerKind!=="infeasible"}var Dt="The objective cannot be satisfied as written; edit or replace the Goal with an objective the evidence allows before resuming it.";function Ft(e){return e.trim()?[...e].length>8e3?"Goal proposal reason exceeds 8000 characters":new TextEncoder().encode(e).byteLength>16e3?"Goal proposal reason exceeds 16000 UTF-8 bytes":null:"Goal proposal reason must not be empty"}var Bt=500;var Sr="Interrupted by the user. Run /goal resume to continue.",kr="Paused with /goal pause.",_r="The session token limit was exceeded before the model request. Start a new session or increase sessionTokenLimit in settings.json before resuming the Goal.",Ir="The headless run finished before the Goal did. Resume the Goal in a later run.",Ht="The conversation was rewound past where this Goal was set. Resume the Goal to work on it from here.",Kt="Three Goal turns in a row recorded nothing to judge and no proposal. Resume the Goal to try again, or edit its objective into one the model can act on and then resume it.";function Be(e){let t=[...e];return t.length<=Bt?e:`${t.slice(0,Bt-1).join("")}\u2026`}function Pr(e){let t=e.trim();return Be(t?`The Goal turn could not finish: ${t}. Run /goal resume to continue.`:"The Goal turn could not finish. Run /goal resume to continue.")}function $t(e){let t=e.trim();return Be(t?`The Goal verifier could not judge the turn: ${t}. Run /goal resume to continue.`:"The Goal verifier could not judge the turn. Run /goal resume to continue.")}function qt(e){return Be(`Two turns in a row ended with the same conditions unmet (${e.join(", ")}). Resume the Goal to try again, or edit its objective first.`)}function Cr(e){let t=e.trim();return Be(t?`The headless run stopped at its ${t} budget. Resume the Goal in a later run.`:"The headless run stopped at a budget. Resume the Goal in a later run.")}y();var Ar=e=>{let t=e/1073741824;return e<1048576?`${(e/1024).toFixed(1)} KB`:e<1073741824?`${(e/1048576).toFixed(1)} MB`:`${t.toFixed(2)} GB`},Kn={"<":"\\u003c",">":"\\u003e","&":"\\u0026"},Wt=e=>e.replace(/[<>&]/g,t=>Kn[t]);y();import{randomUUID as P}from"node:crypto";y();y();var $n=new Set(["execution_denied","tool_not_registered","invalid_tool_params"]);function Xe(e){return e?.status==="error"&&e.errorType!==void 0&&$n.has(e.errorType)}function Je(e,t,o){let{goalContext:i}=e;if(!i)return;let a=wt(e.name).toLowerCase();return a===Y.GET_GOAL||a===Y.UPDATE_GOAL||a===Y.TOOL_SEARCH&&Wn(t)?{goalContext:{...i},provenance:"goal_runtime"}:(a===Y.AGENT||a===Y.WORKFLOW)&&!Xe(o)?{goalContext:{...i},provenance:"execution_output"}:{goalContext:{...i}}}function qn(e){let t=(e??[]).flatMap(o=>{let i=o.functionResponse?.response?.output;return typeof i=="string"?[i]:[]});return t.length>0?t.join(`
6
6
  `):void 0}function Wn(e){let o=qn(e)?.match(/^<functions>\n([\s\S]+)\n<\/functions>$/)?.[1];if(!o)return!1;let i=new Set([Y.GET_GOAL,Y.UPDATE_GOAL]);return o.split(`
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{d as f}from"./chunk-ZQKABJBB.js";import{d as u}from"./chunk-QXSBPCBA.js";import{f as m,g as c,m as l,n as p}from"./chunk-DB5LMKXU.js";import{b as n}from"./chunk-GZPNIYVZ.js";n();var o=2e3;function T(e){return e.length<=o?e:`${e.slice(0,o)}
3
+ import{d as f}from"./chunk-IR3O4MBT.js";import{d as u}from"./chunk-QXSBPCBA.js";import{f as m,g as c,m as l,n as p}from"./chunk-R5KAUFJR.js";import{b as n}from"./chunk-GZPNIYVZ.js";n();var o=2e3;function T(e){return e.length<=o?e:`${e.slice(0,o)}
4
4
  \u2026 (${e.length-o} more characters)`}var s=class extends m{constructor(t,r){super(r);this.config=t}getDescription(){return`Create task: ${this.params.subject}`}async getDefaultPermission(){return"ask"}getConfirmationDetails(t){let r={type:"info",title:"Confirm TaskCreate",prompt:`Create task: ${this.params.subject}
5
5
 
6
6
  `+T(this.params.description),onConfirm:async()=>{}};return Promise.resolve(r)}async execute(){let t=u(this.config.getTeamContext()?.teamName);if(!t){let a="No active team. Create a team first.";return{llmContent:a,returnDisplay:a,error:{message:a}}}let r=await f(t,{subject:this.params.subject,description:this.params.description,activeForm:this.params.activeForm,metadata:this.params.metadata}),i=`Task #${r.id} created: "${r.subject}"`;return{llmContent:i,returnDisplay:i}}},d=class e extends c{constructor(t){super(e.Name,p.TASK_CREATE,"Create a new task in the team task list. Tasks are automatically assigned to idle teammates.","other",{type:"object",properties:{subject:{type:"string",description:"Short title for the task.",maxLength:200},description:{type:"string",description:"Detailed description of the task.",maxLength:1e4},activeForm:{type:"string",maxLength:200,description:'Present tense label for UI (e.g., "Running tests").'},metadata:{type:"object",description:"Optional arbitrary metadata."}},required:["subject","description"],additionalProperties:!1});this.config=t}static Name=l.TASK_CREATE;createInvocation(t){return new s(this.config,t)}toAutoClassifierInput(t){return{subject:t.subject,description:t.description}}};export{T as a,d as b};
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{d as T}from"./chunk-JU7QTSKS.js";import{b as W}from"./chunk-7ZODGQO6.js";import{a as P}from"./chunk-GT6MSEK4.js";import{b as g}from"./chunk-62GTGPTP.js";import{S as _,b as l}from"./chunk-NK2QMGCC.js";import{b as x}from"./chunk-GZPNIYVZ.js";import{f as U}from"./chunk-OWGSC52X.js";x();var F=U(W(),1);import*as d from"node:fs/promises";import{constants as B}from"node:fs";import*as b from"node:path";var f=_("AGENTS_TEAM_TASKS"),$=32768,v=16;function M(r){if(!r)return;let e=Buffer.byteLength(JSON.stringify(r),"utf-8");if(e>$)throw new Error(`Task metadata is too large (${e} bytes; max ${$}). Trim the payload or store the bulk content elsewhere.`)}var X={retries:{retries:30,minTimeout:5,maxTimeout:100,factor:2,randomize:!0},stale:5e3,onCompromised:r=>{f.warn("task lock compromised:",r?.message??r)}},A=new Map;function K(r){let e=A.get(r);return e||(e=new P,A.set(r,e)),e}async function h(r,e,t){return K(r).runExclusive(async()=>{let i;try{i=await F.default.lock(r,X)}catch(o){if(l(o)&&o.code==="ENOENT")return t();throw o}try{return await e()}finally{await i()}})}var q="__reciprocal__",j=new Map;function z(r){let e=j.get(r);return e||(e=new P,j.set(r,e)),e}function Y(r){if(!/^[1-9]\d*$/.test(r))throw new Error(`Invalid task ID "${r}". Task IDs must be positive integers.`)}function m(r,e){return Y(e),b.join(T(r),`${e}.json`)}var O=new Set;function ae(r){return O.add(r),()=>{O.delete(r)}}function k(r){for(let e of O)try{e(r)}catch(t){f.warn(`task update listener failed: ${t}`)}}async function ie(r,e){M(e.metadata);let t=T(r);await d.mkdir(t,{recursive:!0});let i=15;for(let o=0;o<i;o++){let c=await Z(t),s={id:c,subject:e.subject,description:e.description,activeForm:e.activeForm,owner:e.owner,status:"pending",blocks:[],blockedBy:[],metadata:e.metadata},n=b.join(t,`${c}.json`);try{await(await d.open(n,B.O_WRONLY|B.O_CREAT|B.O_EXCL)).close()}catch(a){if(l(a)&&a.code==="EEXIST")continue;throw a}try{await g(n,s)}catch(a){throw await d.unlink(n).catch(()=>{}),a}return k(r),s}throw new Error(`Failed to create task after ${i} attempts (ID contention).`)}async function oe(r,e){let t=m(r,e);try{let i=await d.readFile(t,"utf-8");return JSON.parse(i)}catch(i){if(l(i)&&i.code==="ENOENT")return;throw i}}var p=class extends Error{constructor(t,i,o){super(`Task #${t} is owned by "${o}". Only the leader or the owner can change status / owner / subject / description / blocks.`);this.taskId=t;this.callerName=i;this.actualOwner=o;this.name="TaskOwnershipError"}};async function ce(r,e,t,i){let o=m(r,e);return h(o,async()=>{let c;try{c=await d.readFile(o,"utf-8")}catch(n){if(l(n)&&n.code==="ENOENT")return;throw n}let s=JSON.parse(c);if(i?.callerName!==void 0&&i.callerName!==q&&(t.status!==void 0||t.owner!==void 0||t.subject!==void 0||t.description!==void 0||(t.addBlocks?.length??0)>0||(t.addBlockedBy?.length??0)>0)&&s.owner&&s.owner!==i.callerName)throw new p(e,i.callerName,s.owner);if(t.addBlocks?.length){let n=new Set(s.blocks);for(let a of t.addBlocks)n.add(a);s.blocks=Array.from(n)}if(t.addBlockedBy?.length){let n=new Set(s.blockedBy);for(let a of t.addBlockedBy)n.add(a);s.blockedBy=Array.from(n)}if(t.status!==void 0&&(s.status=t.status,t.status==="completed"&&s.blocks.length>0&&await Q(r,e,s.blocks)),t.owner!==void 0&&(s.owner=t.owner?t.owner:void 0),t.subject!==void 0&&(s.subject=t.subject),t.description!==void 0&&(s.description=t.description),t.activeForm!==void 0&&(s.activeForm=t.activeForm??void 0),t.metadata!==void 0){s.metadata=s.metadata??{};for(let[n,a]of Object.entries(t.metadata))n==="__proto__"||n==="constructor"||n==="prototype"||(a===null?delete s.metadata[n]:s.metadata[n]=a);Object.keys(s.metadata).length===0&&(s.metadata=void 0),M(s.metadata)}return await g(o,s),k(r),s},()=>{})}async function de(r,e,t){let i=m(r,e),o=await h(i,async()=>{let s;try{let a=await d.readFile(i,"utf-8");s=JSON.parse(a)}catch(a){if(l(a)&&a.code==="ENOENT")return null;throw a}if(t?.callerName!==void 0&&s.owner&&s.owner!==t.callerName)throw new p(e,t.callerName,s.owner);let n=new Set([...s.blocks,...s.blockedBy]);n.delete(e);try{await d.unlink(i)}catch(a){if(l(a)&&a.code==="ENOENT")return null;throw a}return n},()=>null);if(o===null)return!1;let c=await Promise.allSettled(Array.from(o).map(s=>G(r,s,e)));for(let s of c)s.status==="rejected"&&f.warn(`deleteTask(${e}): edge cleanup failed: ${s.reason}`);return k(r),!0}async function G(r,e,t){let i=m(r,e);await h(i,async()=>{try{let o=await d.readFile(i,"utf-8"),c=JSON.parse(o),s=c.blocks.length,n=c.blockedBy.length;if(c.blocks=c.blocks.filter(a=>a!==t),c.blockedBy=c.blockedBy.filter(a=>a!==t),c.blocks.length===s&&c.blockedBy.length===n)return;await g(i,c)}catch(o){if(l(o)&&o.code==="ENOENT")return;throw o}},()=>{})}async function R(r,e){let t=T(r),i;try{i=await d.readdir(t)}catch(n){if(l(n)&&n.code==="ENOENT")return[];let a=n instanceof Error?n.message:String(n);throw f.warn(`Failed to list tasks dir ${t}: ${a}`),n instanceof Error?n:new Error(a)}let o=i.filter(n=>n.endsWith(".json")),c=[];for(let n=0;n<o.length;n+=v){let a=o.slice(n,n+v),w=await Promise.all(a.map(async C=>{let y=b.join(t,C),S;try{S=await d.readFile(y,"utf-8")}catch(u){if(l(u)&&u.code==="ENOENT")return;let E=u instanceof Error?u.message:String(u);f.warn(`Failed to read task file ${y}: ${E}`);return}if(S.trim()!=="")try{return JSON.parse(S)}catch(u){let E=u instanceof Error?u.message:String(u);f.warn(`Quarantining corrupt task file ${y}: ${E}`);let D=`${y}.corrupt-${Date.now()}`;try{await d.rename(y,D)}catch(N){let J=N instanceof Error?N.message:String(N);f.warn(`Failed to quarantine ${y}: ${J}`)}return}}));c.push(...w)}let s=c.filter(n=>n!==void 0);return s.sort((n,a)=>Number(n.id)-Number(a.id)),e?s.filter(n=>!(e.status!==void 0&&n.status!==e.status||e.owner!==void 0&&n.owner!==e.owner||e.blockedBy!==void 0&&!n.blockedBy.includes(e.blockedBy))):s}async function le(r){let e=T(r);await d.rm(e,{recursive:!0,force:!0}),k(r)}async function Q(r,e,t){let i=await Promise.allSettled(t.map(async o=>{let c=m(r,o);await h(c,async()=>{let s;try{s=await d.readFile(c,"utf-8")}catch(w){if(l(w)&&w.code==="ENOENT")return;throw w}let n=JSON.parse(s),a=n.blockedBy.length;n.blockedBy=n.blockedBy.filter(w=>w!==e),n.blockedBy.length!==a&&await g(c,n)},()=>{})}));for(let o of i)o.status==="rejected"&&f.warn(`unblockDependents(${e}): ${o.reason}`);k(r)}async function ue(r,e,t,i){return i?.checkAgentBusy?z(t).runExclusive(()=>L(r,e,t,i,!0)):L(r,e,t,i,!1)}async function L(r,e,t,i,o){if(o&&await V(r,t))return;let c=m(r,e);return h(c,async()=>{let s;try{s=await d.readFile(c,"utf-8")}catch(a){if(l(a)&&a.code==="ENOENT")return;throw a}let n=JSON.parse(s);if(n.status==="pending"&&!n.owner)return n.owner=i?.ownerName??t,n.status="in_progress",await g(c,n),k(r),n},()=>{})}async function V(r,e){let t=await R(r,{status:"in_progress"}),i=e.split("@")[0];return t.some(o=>o.owner===e||o.owner===i)}async function H(r,e,t){let i=m(r,e);return h(i,async()=>{let o;try{o=await d.readFile(i,"utf-8")}catch(s){if(l(s)&&s.code==="ENOENT")return!1;throw s}let c=JSON.parse(o);return c.status!=="in_progress"||c.owner!==t?!1:(c.owner=void 0,c.status="pending",await g(i,c),!0)},()=>!1)}async function fe(r,e){let t=e.split("@")[0],o=(await R(r,{status:"in_progress"})).filter(a=>a.owner===e||a.owner===t),c=await Promise.allSettled(o.map(a=>H(r,a.id,a.owner))),s=c.filter(a=>a.status==="rejected");s.length>0&&f.warn(`unassignTeammateTasks: ${s.length}/${o.length} task(s) failed to unassign for ${e}`);let n=c.filter(a=>a.status==="fulfilled"&&a.value===!0).length;return n>0&&k(r),n}async function Z(r){let e;try{e=await d.readdir(r)}catch{return"1"}let t=0;for(let i of e){if(!i.endsWith(".json"))continue;let o=parseInt(i.replace(".json",""),10);!isNaN(o)&&o>t&&(t=o)}return String(t+1)}export{q as a,Y as b,ae as c,ie as d,oe as e,p as f,ce as g,de as h,R as i,le as j,ue as k,fe as l};
3
+ import{d as T}from"./chunk-OIJ6FGWD.js";import{b as W}from"./chunk-7ZODGQO6.js";import{a as P}from"./chunk-GT6MSEK4.js";import{b as g}from"./chunk-5WRYWBB4.js";import{S as _,b as l}from"./chunk-XYAIE36G.js";import{b as x}from"./chunk-GZPNIYVZ.js";import{f as U}from"./chunk-OWGSC52X.js";x();var F=U(W(),1);import*as d from"node:fs/promises";import{constants as B}from"node:fs";import*as b from"node:path";var f=_("AGENTS_TEAM_TASKS"),$=32768,v=16;function M(r){if(!r)return;let e=Buffer.byteLength(JSON.stringify(r),"utf-8");if(e>$)throw new Error(`Task metadata is too large (${e} bytes; max ${$}). Trim the payload or store the bulk content elsewhere.`)}var X={retries:{retries:30,minTimeout:5,maxTimeout:100,factor:2,randomize:!0},stale:5e3,onCompromised:r=>{f.warn("task lock compromised:",r?.message??r)}},A=new Map;function K(r){let e=A.get(r);return e||(e=new P,A.set(r,e)),e}async function h(r,e,t){return K(r).runExclusive(async()=>{let i;try{i=await F.default.lock(r,X)}catch(o){if(l(o)&&o.code==="ENOENT")return t();throw o}try{return await e()}finally{await i()}})}var q="__reciprocal__",j=new Map;function z(r){let e=j.get(r);return e||(e=new P,j.set(r,e)),e}function Y(r){if(!/^[1-9]\d*$/.test(r))throw new Error(`Invalid task ID "${r}". Task IDs must be positive integers.`)}function m(r,e){return Y(e),b.join(T(r),`${e}.json`)}var O=new Set;function ae(r){return O.add(r),()=>{O.delete(r)}}function k(r){for(let e of O)try{e(r)}catch(t){f.warn(`task update listener failed: ${t}`)}}async function ie(r,e){M(e.metadata);let t=T(r);await d.mkdir(t,{recursive:!0});let i=15;for(let o=0;o<i;o++){let c=await Z(t),s={id:c,subject:e.subject,description:e.description,activeForm:e.activeForm,owner:e.owner,status:"pending",blocks:[],blockedBy:[],metadata:e.metadata},n=b.join(t,`${c}.json`);try{await(await d.open(n,B.O_WRONLY|B.O_CREAT|B.O_EXCL)).close()}catch(a){if(l(a)&&a.code==="EEXIST")continue;throw a}try{await g(n,s)}catch(a){throw await d.unlink(n).catch(()=>{}),a}return k(r),s}throw new Error(`Failed to create task after ${i} attempts (ID contention).`)}async function oe(r,e){let t=m(r,e);try{let i=await d.readFile(t,"utf-8");return JSON.parse(i)}catch(i){if(l(i)&&i.code==="ENOENT")return;throw i}}var p=class extends Error{constructor(t,i,o){super(`Task #${t} is owned by "${o}". Only the leader or the owner can change status / owner / subject / description / blocks.`);this.taskId=t;this.callerName=i;this.actualOwner=o;this.name="TaskOwnershipError"}};async function ce(r,e,t,i){let o=m(r,e);return h(o,async()=>{let c;try{c=await d.readFile(o,"utf-8")}catch(n){if(l(n)&&n.code==="ENOENT")return;throw n}let s=JSON.parse(c);if(i?.callerName!==void 0&&i.callerName!==q&&(t.status!==void 0||t.owner!==void 0||t.subject!==void 0||t.description!==void 0||(t.addBlocks?.length??0)>0||(t.addBlockedBy?.length??0)>0)&&s.owner&&s.owner!==i.callerName)throw new p(e,i.callerName,s.owner);if(t.addBlocks?.length){let n=new Set(s.blocks);for(let a of t.addBlocks)n.add(a);s.blocks=Array.from(n)}if(t.addBlockedBy?.length){let n=new Set(s.blockedBy);for(let a of t.addBlockedBy)n.add(a);s.blockedBy=Array.from(n)}if(t.status!==void 0&&(s.status=t.status,t.status==="completed"&&s.blocks.length>0&&await Q(r,e,s.blocks)),t.owner!==void 0&&(s.owner=t.owner?t.owner:void 0),t.subject!==void 0&&(s.subject=t.subject),t.description!==void 0&&(s.description=t.description),t.activeForm!==void 0&&(s.activeForm=t.activeForm??void 0),t.metadata!==void 0){s.metadata=s.metadata??{};for(let[n,a]of Object.entries(t.metadata))n==="__proto__"||n==="constructor"||n==="prototype"||(a===null?delete s.metadata[n]:s.metadata[n]=a);Object.keys(s.metadata).length===0&&(s.metadata=void 0),M(s.metadata)}return await g(o,s),k(r),s},()=>{})}async function de(r,e,t){let i=m(r,e),o=await h(i,async()=>{let s;try{let a=await d.readFile(i,"utf-8");s=JSON.parse(a)}catch(a){if(l(a)&&a.code==="ENOENT")return null;throw a}if(t?.callerName!==void 0&&s.owner&&s.owner!==t.callerName)throw new p(e,t.callerName,s.owner);let n=new Set([...s.blocks,...s.blockedBy]);n.delete(e);try{await d.unlink(i)}catch(a){if(l(a)&&a.code==="ENOENT")return null;throw a}return n},()=>null);if(o===null)return!1;let c=await Promise.allSettled(Array.from(o).map(s=>G(r,s,e)));for(let s of c)s.status==="rejected"&&f.warn(`deleteTask(${e}): edge cleanup failed: ${s.reason}`);return k(r),!0}async function G(r,e,t){let i=m(r,e);await h(i,async()=>{try{let o=await d.readFile(i,"utf-8"),c=JSON.parse(o),s=c.blocks.length,n=c.blockedBy.length;if(c.blocks=c.blocks.filter(a=>a!==t),c.blockedBy=c.blockedBy.filter(a=>a!==t),c.blocks.length===s&&c.blockedBy.length===n)return;await g(i,c)}catch(o){if(l(o)&&o.code==="ENOENT")return;throw o}},()=>{})}async function R(r,e){let t=T(r),i;try{i=await d.readdir(t)}catch(n){if(l(n)&&n.code==="ENOENT")return[];let a=n instanceof Error?n.message:String(n);throw f.warn(`Failed to list tasks dir ${t}: ${a}`),n instanceof Error?n:new Error(a)}let o=i.filter(n=>n.endsWith(".json")),c=[];for(let n=0;n<o.length;n+=v){let a=o.slice(n,n+v),w=await Promise.all(a.map(async C=>{let y=b.join(t,C),S;try{S=await d.readFile(y,"utf-8")}catch(u){if(l(u)&&u.code==="ENOENT")return;let E=u instanceof Error?u.message:String(u);f.warn(`Failed to read task file ${y}: ${E}`);return}if(S.trim()!=="")try{return JSON.parse(S)}catch(u){let E=u instanceof Error?u.message:String(u);f.warn(`Quarantining corrupt task file ${y}: ${E}`);let D=`${y}.corrupt-${Date.now()}`;try{await d.rename(y,D)}catch(N){let J=N instanceof Error?N.message:String(N);f.warn(`Failed to quarantine ${y}: ${J}`)}return}}));c.push(...w)}let s=c.filter(n=>n!==void 0);return s.sort((n,a)=>Number(n.id)-Number(a.id)),e?s.filter(n=>!(e.status!==void 0&&n.status!==e.status||e.owner!==void 0&&n.owner!==e.owner||e.blockedBy!==void 0&&!n.blockedBy.includes(e.blockedBy))):s}async function le(r){let e=T(r);await d.rm(e,{recursive:!0,force:!0}),k(r)}async function Q(r,e,t){let i=await Promise.allSettled(t.map(async o=>{let c=m(r,o);await h(c,async()=>{let s;try{s=await d.readFile(c,"utf-8")}catch(w){if(l(w)&&w.code==="ENOENT")return;throw w}let n=JSON.parse(s),a=n.blockedBy.length;n.blockedBy=n.blockedBy.filter(w=>w!==e),n.blockedBy.length!==a&&await g(c,n)},()=>{})}));for(let o of i)o.status==="rejected"&&f.warn(`unblockDependents(${e}): ${o.reason}`);k(r)}async function ue(r,e,t,i){return i?.checkAgentBusy?z(t).runExclusive(()=>L(r,e,t,i,!0)):L(r,e,t,i,!1)}async function L(r,e,t,i,o){if(o&&await V(r,t))return;let c=m(r,e);return h(c,async()=>{let s;try{s=await d.readFile(c,"utf-8")}catch(a){if(l(a)&&a.code==="ENOENT")return;throw a}let n=JSON.parse(s);if(n.status==="pending"&&!n.owner)return n.owner=i?.ownerName??t,n.status="in_progress",await g(c,n),k(r),n},()=>{})}async function V(r,e){let t=await R(r,{status:"in_progress"}),i=e.split("@")[0];return t.some(o=>o.owner===e||o.owner===i)}async function H(r,e,t){let i=m(r,e);return h(i,async()=>{let o;try{o=await d.readFile(i,"utf-8")}catch(s){if(l(s)&&s.code==="ENOENT")return!1;throw s}let c=JSON.parse(o);return c.status!=="in_progress"||c.owner!==t?!1:(c.owner=void 0,c.status="pending",await g(i,c),!0)},()=>!1)}async function fe(r,e){let t=e.split("@")[0],o=(await R(r,{status:"in_progress"})).filter(a=>a.owner===e||a.owner===t),c=await Promise.allSettled(o.map(a=>H(r,a.id,a.owner))),s=c.filter(a=>a.status==="rejected");s.length>0&&f.warn(`unassignTeammateTasks: ${s.length}/${o.length} task(s) failed to unassign for ${e}`);let n=c.filter(a=>a.status==="fulfilled"&&a.value===!0).length;return n>0&&k(r),n}async function Z(r){let e;try{e=await d.readdir(r)}catch{return"1"}let t=0;for(let i of e){if(!i.endsWith(".json"))continue;let o=parseInt(i.replace(".json",""),10);!isNaN(o)&&o>t&&(t=o)}return String(t+1)}export{q as a,Y as b,ae as c,ie as d,oe as e,p as f,ce as g,de as h,R as i,le as j,ue as k,fe as l};
4
4
  /**
5
5
  * @license
6
6
  * Copyright 2025 Matilda