@maincode-ai/matilda-code 0.22.1-preview.0 → 0.22.2

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 (118) hide show
  1. package/chunks/agent-IJOGVY62.js +3 -0
  2. package/chunks/agent-headless-FZGKJCVK.js +3 -0
  3. package/chunks/{askUserQuestion-A46IDHKS.js → askUserQuestion-DHYKAZWH.js} +1 -1
  4. package/chunks/ca-HHQCT6S2.js +23 -0
  5. package/chunks/chunk-3BT7ZYAM.js +121 -0
  6. package/chunks/chunk-3IG6LNQ3.js +2581 -0
  7. package/chunks/{chunk-6RK6IJY5.js → chunk-46FFWNRO.js} +1 -1
  8. package/chunks/chunk-55YW6EUC.js +8 -0
  9. package/chunks/chunk-BQDEPKIG.js +46 -0
  10. package/chunks/{chunk-LONWTJOE.js → chunk-BS7Q7KA6.js} +8 -8
  11. package/chunks/chunk-DZKI2CAC.js +3 -0
  12. package/chunks/{chunk-TDFF4ZGY.js → chunk-E2KMVG7F.js} +1 -1
  13. package/chunks/chunk-FY3LL4OC.js +8 -0
  14. package/chunks/chunk-HJK3NKAR.js +8 -0
  15. package/chunks/{chunk-ZABAV4XA.js → chunk-HRD7WD3P.js} +3 -3
  16. package/chunks/{chunk-YY64FVJG.js → chunk-L2FKLLEC.js} +1 -1
  17. package/chunks/chunk-MZ73LBEY.js +9 -0
  18. package/chunks/chunk-N2BE647T.js +10 -0
  19. package/chunks/{chunk-6T25BBKH.js → chunk-OF7ORAN6.js} +53 -53
  20. package/chunks/{chunk-UICLGQTV.js → chunk-OWEBLTAN.js} +1 -1
  21. package/chunks/{chunk-KYNP66YS.js → chunk-P24OL22U.js} +8 -8
  22. package/chunks/chunk-PFXCFIHY.js +8 -0
  23. package/chunks/chunk-REUZDMLM.js +80 -0
  24. package/chunks/chunk-VWE5BSHV.js +56 -0
  25. package/chunks/{chunk-FI2FSW7J.js → chunk-VWM3GUBH.js} +1 -1
  26. package/chunks/chunk-WL27X35X.js +44 -0
  27. package/chunks/chunk-ZUQRP3N6.js +9 -0
  28. package/chunks/{computer-use-2YIT7SIT.js → computer-use-5T3ZH24D.js} +7 -7
  29. package/chunks/{cron-create-JINCFLKY.js → cron-create-5RRFCP36.js} +1 -1
  30. package/chunks/{cron-delete-RF6JLUAV.js → cron-delete-7DTRWCSV.js} +1 -1
  31. package/chunks/{cron-list-VXLBAXZ3.js → cron-list-HY6XJD7D.js} +1 -1
  32. package/chunks/de-MJBGC47E.js +23 -0
  33. package/chunks/{edit-6S3DRURW.js → edit-Y7YSDGLT.js} +17 -17
  34. package/chunks/en-JITX7JKV.js +23 -0
  35. package/chunks/{enter-worktree-57EOUOC4.js → enter-worktree-5ZGIYDUE.js} +1 -1
  36. package/chunks/{enterPlanMode-EWO2LZ5G.js → enterPlanMode-TWD4MXCW.js} +1 -1
  37. package/chunks/{exit-worktree-T7IHIQX5.js → exit-worktree-3F5UY76U.js} +1 -1
  38. package/chunks/{exitPlanMode-YW7MKP6A.js → exitPlanMode-HWK5EUVS.js} +1 -1
  39. package/chunks/fr-WT3R2JCR.js +23 -0
  40. package/chunks/{glob-EYNPF6KD.js → glob-H7DNNPJ4.js} +1 -1
  41. package/chunks/{goal-tools-F2V2CXAF.js → goal-tools-CJINJJ3Y.js} +1 -1
  42. package/chunks/grep-5MCMGW6A.js +22 -0
  43. package/chunks/ja-OEXP6Z3S.js +23 -0
  44. package/chunks/{keychain-token-storage-UTWIIKCK.js → keychain-token-storage-BCODB632.js} +1 -1
  45. package/chunks/ls-JORGCXES.js +15 -0
  46. package/chunks/{lsp-H4EXPHFD.js → lsp-Y46R5DO5.js} +1 -1
  47. package/chunks/mcp-client-54J5M542.js +3 -0
  48. package/chunks/monitor-BRJR6PR3.js +32 -0
  49. package/chunks/notebook-edit-UCCVQ4JP.js +17 -0
  50. package/chunks/openaiContentGenerator-H6JOS3XU.js +52 -0
  51. package/chunks/pt-PCVIFK7H.js +23 -0
  52. package/chunks/read-file-LVMBCRCT.js +3 -0
  53. package/chunks/ripGrep-F6AJSDKU.js +3 -0
  54. package/chunks/ru-CB5SIZZM.js +23 -0
  55. package/chunks/scheduler-XAOD6LG6.js +8 -0
  56. package/chunks/{send-message-5XHDGHSN.js → send-message-VY4DP63A.js} +1 -1
  57. package/chunks/shell-QUDC6MJK.js +3 -0
  58. package/chunks/{skill-AR3SRFYF.js → skill-5EMGSWRM.js} +4 -4
  59. package/chunks/symbol-search-YNGX4Z5T.js +19 -0
  60. package/chunks/{syntheticOutput-OIPRFBVD.js → syntheticOutput-4JANVS4D.js} +1 -1
  61. package/chunks/{task-create-QP44DKH4.js → task-create-NRBVXURQ.js} +1 -1
  62. package/chunks/{task-detach-AUTU6C4G.js → task-detach-VHDDAO2K.js} +1 -1
  63. package/chunks/{task-list-U2WAGMM7.js → task-list-T2IET466.js} +1 -1
  64. package/chunks/{task-stop-GN5WZ3IA.js → task-stop-OEAEE5R7.js} +1 -1
  65. package/chunks/{task-update-26N2AUQT.js → task-update-4ANRU74G.js} +1 -1
  66. package/chunks/{team-create-RPZE626O.js → team-create-G4N2NCFN.js} +1 -1
  67. package/chunks/team-delete-M4ORNSTT.js +8 -0
  68. package/chunks/{todoWrite-JN3ZV5O2.js → todoWrite-RN2OP46T.js} +1 -1
  69. package/chunks/{tool-search-RDU7B45X.js → tool-search-WEUURHFZ.js} +1 -1
  70. package/chunks/{web-fetch-6RRSCIUU.js → web-fetch-VA2BZ4VR.js} +1 -1
  71. package/chunks/{web-search-3IXDQD7D.js → web-search-OVFXJQDS.js} +3 -5
  72. package/chunks/{workflow-P6YL6ZHY.js → workflow-6VMVM5BG.js} +2 -2
  73. package/chunks/write-file-5ZAZVXBB.js +15 -0
  74. package/cli.js +471 -455
  75. package/locales/ca.js +6 -2
  76. package/locales/de.js +6 -2
  77. package/locales/en.js +35 -2
  78. package/locales/fr.js +6 -2
  79. package/locales/ja.js +6 -2
  80. package/locales/pt.js +6 -2
  81. package/locales/ru.js +6 -2
  82. package/package.json +2 -2
  83. package/chunks/agent-BXVCIBXW.js +0 -3
  84. package/chunks/agent-headless-64NUELGA.js +0 -3
  85. package/chunks/ca-JKEHLTNL.js +0 -23
  86. package/chunks/chunk-5JCW6FH6.js +0 -8
  87. package/chunks/chunk-7AEOFDY3.js +0 -8
  88. package/chunks/chunk-7YEKK577.js +0 -2602
  89. package/chunks/chunk-A5QKQKJW.js +0 -56
  90. package/chunks/chunk-AEYNMLMW.js +0 -36
  91. package/chunks/chunk-BSSOFLAZ.js +0 -80
  92. package/chunks/chunk-DEN6RR3B.js +0 -3
  93. package/chunks/chunk-HRCRNKY2.js +0 -8
  94. package/chunks/chunk-IV6PS6DB.js +0 -8
  95. package/chunks/chunk-RH3AEZWO.js +0 -9
  96. package/chunks/chunk-S6SR7XG2.js +0 -121
  97. package/chunks/chunk-SMTY6M3W.js +0 -10
  98. package/chunks/chunk-TKEFJ3O3.js +0 -9
  99. package/chunks/chunk-ZSGBDQXU.js +0 -11
  100. package/chunks/de-GMGNR5CZ.js +0 -23
  101. package/chunks/en-3NQMLVKW.js +0 -23
  102. package/chunks/fr-WS3EBB36.js +0 -23
  103. package/chunks/grep-CDC2COXY.js +0 -22
  104. package/chunks/ja-GBCDQ43R.js +0 -23
  105. package/chunks/ls-3EEHZY4W.js +0 -15
  106. package/chunks/mcp-client-3GTPI6IS.js +0 -3
  107. package/chunks/monitor-AHLS4MYF.js +0 -32
  108. package/chunks/notebook-edit-6HEQYPZ3.js +0 -17
  109. package/chunks/openaiContentGenerator-CQQ7EBHB.js +0 -47
  110. package/chunks/pt-VID6J2CM.js +0 -23
  111. package/chunks/read-file-EWNDGS3Y.js +0 -3
  112. package/chunks/ripGrep-6BXNDTIT.js +0 -3
  113. package/chunks/ru-EB6V6EAN.js +0 -23
  114. package/chunks/scheduler-FLVTLJFY.js +0 -8
  115. package/chunks/shell-FVBBSL2E.js +0 -3
  116. package/chunks/symbol-search-ZM3HFCUV.js +0 -19
  117. package/chunks/team-delete-XCKD5FBZ.js +0 -8
  118. package/chunks/write-file-BYAPFQ5P.js +0 -15
@@ -1,30 +1,30 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{a as C}from"./chunk-TDFF4ZGY.js";import{Nb as L,Ob as G,Yb as R,Zb as S,bc as K,cc as V,dc as Q,ec as Y,gb as q,ya as D}from"./chunk-7YEKK577.js";import"./chunk-HRCRNKY2.js";import"./chunk-ZSGBDQXU.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DEN6RR3B.js";import"./chunk-RH3AEZWO.js";import"./chunk-UICLGQTV.js";import"./chunk-A5QKQKJW.js";import"./chunk-YY64FVJG.js";import"./chunk-SMTY6M3W.js";import"./chunk-QXSBPCBA.js";import"./chunk-ZABAV4XA.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-5JCW6FH6.js";import"./chunk-BSSOFLAZ.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-S6SR7XG2.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import{C as P,Db as X,H,db as A,xa as j,z as U}from"./chunk-6T25BBKH.js";import{l as z}from"./chunk-IV6PS6DB.js";import"./chunk-6RK6IJY5.js";import"./chunk-LONWTJOE.js";import"./chunk-TKEFJ3O3.js";import"./chunk-7AEOFDY3.js";import{a as B}from"./chunk-XPVKH5TC.js";import{g as k,m as F,n as W}from"./chunk-KYNP66YS.js";import{C as T,D as I,F as v,Y as $,c as x}from"./chunk-AEYNMLMW.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";b();import*as _ from"node:fs";import*as p from"node:path";b();var re={"\u2010":"-","\u2011":"-","\u2012":"-","\u2013":"-","\u2014":"-","\u2015":"-","\u2212":"-","\u2018":"'","\u2019":"'","\u201A":"'","\u201B":"'","\u201C":'"',"\u201D":'"',"\u201E":'"',"\u201F":'"',"\xA0":" ","\u2002":" ","\u2003":" ","\u2004":" ","\u2005":" ","\u2006":" ","\u2007":" ","\u2008":" ","\u2009":" ","\u200A":" ","\u202F":" ","\u205F":" ","\u3000":" "},ue=new RegExp(`[${Object.keys(re).join("")}]`,"g");function w(n){return n.replace(ue,t=>re[t])}var he=[n=>n,n=>n.trimEnd()];function pe(n){return w(n).trimEnd()}function J(n,t,i){if(t.length===0)return 0;if(t.length>n.length)return null;e:for(let e=0;e<=n.length-t.length;e++){for(let r=0;r<t.length;r++)if(i(n[e+r])!==i(t[r]))continue e;return e}return null}function me(n){let t=n.split(`
4
- `),i=new Array(t.length+1),e=0;for(let r=0;r<t.length;r++)i[r]=e,e+=t[r].length,r<t.length-1&&(e+=1);return i[t.length]=n.length,{lines:t,offsets:i}}function Z(n,t,i,e,r,o){if(r===0)return o?`
3
+ import{a as T}from"./chunk-E2KMVG7F.js";import{Cb as L,Db as Q,Nb as M,Ob as S,Sb as Y,Tb as J,Ub as Z,Va as V,Vb as ee,ja as R}from"./chunk-3IG6LNQ3.js";import"./chunk-FY3LL4OC.js";import"./chunk-BQDEPKIG.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DZKI2CAC.js";import"./chunk-ZUQRP3N6.js";import"./chunk-OWEBLTAN.js";import"./chunk-VWE5BSHV.js";import"./chunk-L2FKLLEC.js";import"./chunk-N2BE647T.js";import"./chunk-QXSBPCBA.js";import"./chunk-HRD7WD3P.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-55YW6EUC.js";import"./chunk-REUZDMLM.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-3BT7ZYAM.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import{C as A,Db as K,H as j,db as D,xa as z,z as H}from"./chunk-OF7ORAN6.js";import{l as B,m as X,n as q}from"./chunk-HJK3NKAR.js";import"./chunk-46FFWNRO.js";import"./chunk-BS7Q7KA6.js";import"./chunk-MZ73LBEY.js";import"./chunk-PFXCFIHY.js";import{a as G}from"./chunk-XPVKH5TC.js";import{g as W,m as F,n as U}from"./chunk-P24OL22U.js";import{D as y,E as P,G as $,c as x,ea as k}from"./chunk-WL27X35X.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";b();import*as _ from"node:fs";import*as p from"node:path";b();var le={"\u2010":"-","\u2011":"-","\u2012":"-","\u2013":"-","\u2014":"-","\u2015":"-","\u2212":"-","\u2018":"'","\u2019":"'","\u201A":"'","\u201B":"'","\u201C":'"',"\u201D":'"',"\u201E":'"',"\u201F":'"',"\xA0":" ","\u2002":" ","\u2003":" ","\u2004":" ","\u2005":" ","\u2006":" ","\u2007":" ","\u2008":" ","\u2009":" ","\u200A":" ","\u202F":" ","\u205F":" ","\u3000":" "},me=new RegExp(`[${Object.keys(le).join("")}]`,"g");function E(n){return n.replace(me,t=>le[t])}var _e=[n=>n,n=>n.trimEnd()];function Ee(n){return E(n).trimEnd()}function te(n,t,i){if(t.length===0)return 0;if(t.length>n.length)return null;e:for(let e=0;e<=n.length-t.length;e++){for(let r=0;r<t.length;r++)if(i(n[e+r])!==i(t[r]))continue e;return e}return null}function we(n){let t=n.split(`
4
+ `),i=new Array(t.length+1),e=0;for(let r=0;r<t.length;r++)i[r]=e,e+=t[r].length,r<t.length-1&&(e+=1);return i[t.length]=n.length,{lines:t,offsets:i}}function ne(n,t,i,e,r,o){if(r===0)return o?`
5
5
  `:"";let l=t[e]??0,s=e+r-1,f=(t[s]??0)+(i[s]?.length??0);if(o){let g=t[e+r];g!==void 0?f=g:n.endsWith(`
6
- `)&&(f=n.length)}return n.slice(l,f)}function _e(n,t){let{lines:i,offsets:e}=me(n),r=t.split(`
6
+ `)&&(f=n.length)}return n.slice(l,f)}function ye(n,t){let{lines:i,offsets:e}=we(n),r=t.split(`
7
7
  `),o=t.endsWith(`
8
- `);if(r.length===0)return null;let l=c=>{for(let f of he){let g=J(i,c,f);if(g!==null)return g}return J(i,c,pe)},s=l(r);if(s!==null)return{slice:Z(n,e,i,s,r.length-(o?1:0),o),removedTrailingFinalEmptyLine:!1};if(r.at(-1)===""){let c=r.slice(0,-1);if(c.length===0)return null;if(s=l(c),s!==null)return{slice:Z(n,e,i,s,c.length,!1),removedTrailingFinalEmptyLine:!0}}return null}function we(n,t){if(t==="")return null;let i=n.indexOf(t);if(i!==-1)return{slice:n.slice(i,i+t.length),removedTrailingFinalEmptyLine:!1};let e=w(n),r=w(t),o=e.indexOf(r);return o!==-1?{slice:n.slice(o,o+t.length),removedTrailingFinalEmptyLine:!1}:_e(n,t)}function Ee(n){return n.endsWith(`\r
8
+ `);if(r.length===0)return null;let l=c=>{for(let f of _e){let g=te(i,c,f);if(g!==null)return g}return te(i,c,Ee)},s=l(r);if(s!==null)return{slice:ne(n,e,i,s,r.length-(o?1:0),o),removedTrailingFinalEmptyLine:!1};if(r.at(-1)===""){let c=r.slice(0,-1);if(c.length===0)return null;if(s=l(c),s!==null)return{slice:ne(n,e,i,s,c.length,!1),removedTrailingFinalEmptyLine:!0}}return null}function Te(n,t){if(t==="")return null;let i=n.indexOf(t);if(i!==-1)return{slice:n.slice(i,i+t.length),removedTrailingFinalEmptyLine:!1};let e=E(n),r=E(t),o=e.indexOf(r);return o!==-1?{slice:n.slice(o,o+t.length),removedTrailingFinalEmptyLine:!1}:ye(n,t)}function Ce(n){return n.endsWith(`\r
9
9
  `)?n.slice(0,-2):n.endsWith(`
10
- `)||n.endsWith("\r")?n.slice(0,-1):n}function ye(n,t){return t?Ee(n):n}function oe(n,t,i){if(n===null||t==="")return{oldString:t,newString:i};let e=we(n,t);return e!==null?{oldString:e.slice,newString:ye(i,e.removedTrailingFinalEmptyLine)}:{oldString:t,newString:i}}function se(n,t,i){if(n===null||t===""||i!==""||t.endsWith(`
10
+ `)||n.endsWith("\r")?n.slice(0,-1):n}function be(n,t){return t?Ce(n):n}function ae(n,t,i){if(n===null||t==="")return{oldString:t,newString:i};let e=Te(n,t);return e!==null?{oldString:e.slice,newString:be(i,e.removedTrailingFinalEmptyLine)}:{oldString:t,newString:i}}function ce(n,t,i){if(n===null||t===""||i!==""||t.endsWith(`
11
11
  `))return t;let e=`${t}
12
- `;return n.includes(e)?e:t}function le(n,t){if(t==="")return 0;let i=0,e=n.indexOf(t);for(;e!==-1;)i++,e=n.indexOf(t,e+t.length);return i}var Te=12,ee=300,Ce=2e6,be=4e6;function ae(n,t){if(n.length>Ce||t.trim()==="")return;let i=n.split(`
13
- `);return xe(n,i,t)??Ne(i,t)}function te(n){return w(n).replace(/\s+/g," ").trim()}function xe(n,t,i){let e=te(i),r=te(n),o=r.indexOf(e);if(e===""||o===-1)return;let[l,s]=Se(n,[ne(r,o),ne(r,o+e.length-1)]);return[`The text is in the file, but with different whitespace (indentation, tabs or spaces, or line breaks), at lines ${l+1}-${s+1}:`,...ce(t,l,s),"Copy the whitespace exactly as shown (\u2192 is a tab, \xB7 is a leading or trailing space)."].join(`
14
- `)}function ne(n,t){let i=0;for(let e=0;e<t;e++)n.charCodeAt(e)!==32&&i++;return i}function Se(n,t){let i=[],e=0,r=0;for(let o=0;o<n.length&&i.length<t.length;o++){let l=n.charCodeAt(o);if(l===10&&e++,!(l<128?l===32||l>=9&&l<=13:/\s/.test(n[o]))){for(;i.length<t.length&&t[i.length]===r;)i.push(e);r++}}return i}function Ne(n,t){let i=d=>w(d).trim(),e=t.trim().split(`
15
- `).map(i),r=e.length;if(r>n.length||r*n.length>be)return;let o=new Map,l=e.map(d=>d===""?-1:(o.has(d)||o.set(d,o.size),o.get(d))),s=new Set(e.map(d=>d.length)),c=n.map(d=>{let h=d.trim();return s.has(h.length)?o.get(w(h))??-2:-2}),f=-1,g=0;for(let d=0;d+r<=c.length;d++){let h=0;for(let a=0;a<r;a++)c[d+a]===l[a]&&h++;h>g&&(g=h,f=d)}if(f===-1||g*2<r)return;let m=f+r-1;return[`The closest match is at lines ${f+1}-${m+1}, where ${g} of ${r} lines agree once leading and trailing whitespace is ignored:`,...ce(n,Math.max(0,f-1),Math.min(n.length-1,m+1)),"Copy the text exactly as shown (\u2192 is a tab, \xB7 is a leading or trailing space)."].join(`
16
- `)}function ce(n,t,i){let e=Math.min(i,t+Te-1),r=[];for(let o=t;o<=e;o++)r.push(`${String(o+1).padStart(6)}|${Ie(n[o])}`);return e<i&&r.push(` \u2026| ${i-e} more lines`),r}function Ie(n){let t=n.length>ee,i=t?n.slice(0,ee):n,e=c=>c===" "||c===" ",r=0;for(;e(i[r]);)r++;let o=i.length;for(;!t&&o>r&&e(i[o-1]);)o--;let l=c=>c.replace(/\t/g,"\u2192").replace(/ /g,"\xB7"),s=l(i.slice(0,r))+i.slice(r,o).replace(/\t/g,"\u2192")+l(i.slice(o));return t?`${s}\u2026[${n.length-i.length} more characters not shown]`:s}var ie=4,Fe=1e3;function fe(n,t){let i=t.split(`
12
+ `;return n.includes(e)?e:t}function fe(n,t){if(t==="")return 0;let i=0,e=n.indexOf(t);for(;e!==-1;)i++,e=n.indexOf(t,e+t.length);return i}var xe=12,ie=300,Se=2e6,Ne=4e6;function de(n,t){if(n.length>Se||t.trim()==="")return;let i=n.split(`
13
+ `);return Ie(n,i,t)??Fe(i,t)}function re(n){return E(n).replace(/\s+/g," ").trim()}function Ie(n,t,i){let e=re(i),r=re(n),o=r.indexOf(e);if(e===""||o===-1)return;let[l,s]=Pe(n,[oe(r,o),oe(r,o+e.length-1)]);return[`The text is in the file, but with different whitespace (indentation, tabs or spaces, or line breaks), at lines ${l+1}-${s+1}:`,...ge(t,l,s),"Copy the whitespace exactly as shown (\u2192 is a tab, \xB7 is a leading or trailing space)."].join(`
14
+ `)}function oe(n,t){let i=0;for(let e=0;e<t;e++)n.charCodeAt(e)!==32&&i++;return i}function Pe(n,t){let i=[],e=0,r=0;for(let o=0;o<n.length&&i.length<t.length;o++){let l=n.charCodeAt(o);if(l===10&&e++,!(l<128?l===32||l>=9&&l<=13:/\s/.test(n[o]))){for(;i.length<t.length&&t[i.length]===r;)i.push(e);r++}}return i}function Fe(n,t){let i=d=>E(d).trim(),e=t.trim().split(`
15
+ `).map(i),r=e.length;if(r>n.length||r*n.length>Ne)return;let o=new Map,l=e.map(d=>d===""?-1:(o.has(d)||o.set(d,o.size),o.get(d))),s=new Set(e.map(d=>d.length)),c=n.map(d=>{let h=d.trim();return s.has(h.length)?o.get(E(h))??-2:-2}),f=-1,g=0;for(let d=0;d+r<=c.length;d++){let h=0;for(let a=0;a<r;a++)c[d+a]===l[a]&&h++;h>g&&(g=h,f=d)}if(f===-1||g*2<r)return;let m=f+r-1;return[`The closest match is at lines ${f+1}-${m+1}, where ${g} of ${r} lines agree once leading and trailing whitespace is ignored:`,...ge(n,Math.max(0,f-1),Math.min(n.length-1,m+1)),"Copy the text exactly as shown (\u2192 is a tab, \xB7 is a leading or trailing space)."].join(`
16
+ `)}function ge(n,t,i){let e=Math.min(i,t+xe-1),r=[];for(let o=t;o<=e;o++)r.push(`${String(o+1).padStart(6)}|${Ae(n[o])}`);return e<i&&r.push(` \u2026| ${i-e} more lines`),r}function Ae(n){let t=n.length>ie,i=t?n.slice(0,ie):n,e=c=>c===" "||c===" ",r=0;for(;e(i[r]);)r++;let o=i.length;for(;!t&&o>r&&e(i[o-1]);)o--;let l=c=>c.replace(/\t/g,"\u2192").replace(/ /g,"\xB7"),s=l(i.slice(0,r))+i.slice(r,o).replace(/\t/g,"\u2192")+l(i.slice(o));return t?`${s}\u2026[${n.length-i.length} more characters not shown]`:s}var se=4,De=1e3;function ue(n,t){let i=t.split(`
17
17
  `),e=i.length;if(n===null)return{startLine:1,endLine:e,totalLines:e,content:t};if(n===t||!t)return null;let r=n.split(`
18
- `),o=0,l=Math.min(r.length,i.length);for(;o<l&&r[o]===i[o];)o++;let s=r.length-1,c=i.length-1;for(;s>=o&&c>=o&&r[s]===i[c];)s--,c--;let f=o+1,g=c+1;if(g-f>Fe)return null;let m=Math.max(1,f-ie),d=Math.min(e,g+ie),h=i.slice(m-1,d);return{startLine:m,endLine:d,totalLines:e,content:h.join(`
19
- `)}}var de=$("EDIT_PRIOR_READ");function ge(n,t,i,e){return e?i:n===null?t===""?i:"":t===""&&!e?n:B(n,t,i)}var Pe=["filePath","filepath","path","file","filename"],Ae=["oldString","oldText","old_text","previous_string","previousString"],De=["newString","newText","new_text","content"];function Le(n){if(!(typeof n.file_path=="string"&&n.file_path.trim()))for(let t of Pe){let i=n[t];if(typeof i=="string"&&i.trim()){n.file_path=i,delete n[t];break}}if(n.old_string===void 0||n.old_string===null){for(let t of Ae)if(n[t]!==void 0&&n[t]!==null){n.old_string=n[t],delete n[t];break}}if(n.new_string===void 0||n.new_string===null){for(let t of De)if(n[t]!==void 0&&n[t]!==null){n.new_string=n[t],delete n[t];break}}(n.old_string===void 0||n.old_string===null)&&typeof n.new_string=="string"&&typeof n.file_path=="string"&&n.file_path.trim()&&(n.old_string="",n.full_file_replace=!0)}var M=class{constructor(t,i){this.config=t;this.params=i}toolLocations(){return[{path:this.params.file_path}]}async calculateEdit(t){let i=t.replace_all??!1,e=null,r=await P(t.file_path),o=!1,l=t.new_string,s=t.old_string,c=0,f,g=!1,m="utf-8",d="lf";if(!this.config.getFileReadCacheDisabled()){let a=await S(this.config.getFileReadCache(),t.file_path,"editing");if(!a.ok)return{currentContent:null,newContent:"",occurrences:0,error:{display:a.displayMessage,raw:a.rawMessage,type:a.type},isNewFile:!1,encoding:"utf-8",bom:!1,lineEnding:"lf"}}if(r)try{let a=await this.config.getFileSystemService().readTextFile({path:t.file_path});a._meta?.bom!==void 0?g=a._meta.bom:g=a.content.length>0&&a.content.codePointAt(0)===65279,m=a._meta?.encoding||"utf-8",d=Q(a.content),e=a.content.replace(/\r\n/g,`
20
- `),r=!0}catch(a){if(!x(a)||a.code!=="ENOENT")throw a;r=!1}if(r&&!this.config.getFileReadCacheDisabled()){let a=await S(this.config.getFileReadCache(),t.file_path,"editing",{expectExisting:!0});if(!a.ok)return de.warn("post-read TOCTOU rejection",{path:t.file_path,reason:a.type}),{currentContent:null,newContent:"",occurrences:0,error:{display:a.displayMessage,raw:a.rawMessage,type:a.type},isNewFile:!1,encoding:"utf-8",bom:!1,lineEnding:"lf"}}if(t.full_file_replace)o=!r,r&&e!==null?(c=1,s=e,l=t.new_string):r||(s="",l=t.new_string);else{let a=oe(e,s,l);if(s=a.oldString,l=a.newString,s===""&&!r)o=!0;else if(!r)f={display:"File not found. Cannot apply edit. Use an empty old_string to create a new file.",raw:`File not found: ${t.file_path}`,type:"file_not_found"};else if(e!==null)if(s=se(e,s,l),c=le(e,s),t.old_string==="")f={display:"Failed to edit. Attempted to create a file that already exists.",raw:`File already exists, cannot create: ${t.file_path}`,type:"attempt_to_create_existing_file"};else if(c===0){let E=ae(e,s);f={display:"Failed to edit, could not find the string to replace.",raw:`Failed to edit, 0 occurrences found for old_string in ${t.file_path}. No edits made. ${E??`The exact text in old_string was not found. Ensure you're not escaping content incorrectly and check whitespace, indentation, and context. Use ${A.Name} tool to verify.`}`,type:"edit_no_occurrence_found"}}else!i&&c>1?f={display:"Failed to edit because the text matches multiple locations. Provide more context or set replace_all to true.",raw:`Failed to edit. Found ${c} occurrences for old_string in ${t.file_path} but replace_all was not enabled.`,type:"edit_expected_occurrence_mismatch"}:s===l&&(f={display:"No changes to apply. The old_string and new_string are identical.",raw:`No changes to apply. The old_string and new_string are identical in file: ${t.file_path}`,type:"edit_no_change"});else f={display:"Failed to read content of file.",raw:`Failed to read content of existing file: ${t.file_path}`,type:"read_content_failure"}}let h=f?e??"":t.full_file_replace?t.new_string:ge(e,s,l,o);return!f&&r&&e===h&&(f={display:"No changes to apply. The new content is identical to the current content.",raw:`No changes to apply. The new content is identical to the current content in file: ${t.file_path}`,type:"edit_no_change"}),{currentContent:e,newContent:h,occurrences:c,error:f,isNewFile:o,bom:g,encoding:m,lineEnding:d}}async getDefaultPermission(){let t=this.config.getProjectRoot();return z(p.resolve(this.params.file_path),t)?"allow":"ask"}async getConfirmationDetails(t){let i=C(this.config,this.params.file_path);if(i)throw new R(i,"path_not_in_workspace");let e;try{e=await this.calculateEdit(this.params)}catch(s){if(t.aborted)throw s;let c=s instanceof Error?s.message:String(s);throw new Error(`Error preparing edit: ${c}`)}if(e.error)throw new R(e.error.raw,e.error.type);let r=p.basename(this.params.file_path),o=D(r,e.currentContent??"",e.newContent,"Current","Proposed",L);return{type:"edit",title:`Confirm Edit: ${T(I(this.params.file_path,this.config.getTargetDir()))}`,fileName:r,filePath:this.params.file_path,fileDiff:o,originalContent:e.currentContent,newContent:e.newContent,onConfirm:async s=>{s==="proceed_always"&&this.config.setApprovalMode("auto-edit")}}}getDescription(){let t=I(this.params.file_path,this.config.getTargetDir());return this.params.old_string===""?`Create ${T(t)}`:this.params.old_string===this.params.new_string?`No file changes to ${T(t)}`:T(t)}async execute(t){let i=C(this.config,this.params.file_path);if(i)return{llmContent:i,returnDisplay:i,error:{message:i,type:"path_not_in_workspace"}};let e;try{e=await this.calculateEdit(this.params)}catch(r){if(t.aborted)throw r;let o=r instanceof Error?r.message:String(r);return{llmContent:`Error preparing edit: ${o}`,returnDisplay:`Error preparing edit: ${o}`,error:{message:o,type:"edit_preparation_failure"}}}if(e.error)return{llmContent:e.error.raw,returnDisplay:`Error: ${e.error.display}`,error:{message:e.error.raw,type:e.error.type}};try{try{await this.config.getFileHistoryService().trackEdit(this.params.file_path)}catch{}if(!this.config.getFileReadCacheDisabled()){let u=await S(this.config.getFileReadCache(),this.params.file_path,"editing",{expectExisting:!e.isNewFile});if(!u.ok)return de.warn("pre-write TOCTOU rejection",{path:this.params.file_path,reason:u.type}),{llmContent:u.rawMessage,returnDisplay:`Error: ${u.displayMessage}`,error:{message:u.rawMessage,type:u.type}}}let r=C(this.config,this.params.file_path);if(r)return{llmContent:r,returnDisplay:r,error:{message:r,type:"path_not_in_workspace"}};this.ensureParentDirectoriesExist(this.params.file_path);let o=C(this.config,this.params.file_path);if(o)return{llmContent:o,returnDisplay:o,error:{message:o,type:"path_not_in_workspace"}};if(e.isNewFile){let u=this.config.getDefaultFileEncoding(),N=!1;u===K.UTF8_BOM?N=!0:u===void 0&&(N=V(this.params.file_path)),await this.config.getFileSystemService().writeTextFile({path:this.params.file_path,content:e.newContent,_meta:{bom:N}})}else await this.config.getFileSystemService().writeTextFile({path:this.params.file_path,content:e.newContent,_meta:{bom:e.bom,encoding:e.encoding,lineEnding:e.lineEnding}});this.params.modified_by_user||q.getInstance().recordEdit(this.params.file_path,e.currentContent,e.newContent);try{let u=_.statSync(this.params.file_path);this.config.getFileReadCache().recordWrite(this.params.file_path,u)}catch{}let l=p.basename(this.params.file_path),s=this.params.ai_proposed_content||e.newContent,c=G(l,e.currentContent??"",s,e.newContent),g={fileDiff:D(l,e.currentContent??"",e.newContent,"Current","Proposed",L),fileName:l,originalContent:e.currentContent,newContent:e.newContent,diffStat:c},m=U(this.params.file_path),d=H(this.params.file_path),h=p.extname(this.params.file_path),a=e.isNewFile?"create":"update";j(this.config,new X(O.Name,a,e.newContent.split(`
21
- `).length,m,h,d));let E=[e.isNewFile?`Created new file: ${this.params.file_path} with provided content.`:`The file: ${this.params.file_path} has been updated.`],y=fe(e.currentContent,e.newContent);if(y){let u=`Showing lines ${y.startLine}-${y.endLine} of ${y.totalLines} from the edited file:
18
+ `),o=0,l=Math.min(r.length,i.length);for(;o<l&&r[o]===i[o];)o++;let s=r.length-1,c=i.length-1;for(;s>=o&&c>=o&&r[s]===i[c];)s--,c--;let f=o+1,g=c+1;if(g-f>De)return null;let m=Math.max(1,f-se),d=Math.min(e,g+se),h=i.slice(m-1,d);return{startLine:m,endLine:d,totalLines:e,content:h.join(`
19
+ `)}}var he=k("EDIT_PRIOR_READ");function pe(n,t,i,e){return e?i:n===null?t===""?i:"":t===""&&!e?n:G(n,t,i)}var Re=["filePath","filepath","path","file","filename"],Le=["oldString","oldText","old_text","previous_string","previousString"],Me=["newString","newText","new_text","content"];function Oe(n){if(!(typeof n.file_path=="string"&&n.file_path.trim()))for(let t of Re){let i=n[t];if(typeof i=="string"&&i.trim()){n.file_path=i,delete n[t];break}}if(n.old_string===void 0||n.old_string===null){for(let t of Le)if(n[t]!==void 0&&n[t]!==null){n.old_string=n[t],delete n[t];break}}if(n.new_string===void 0||n.new_string===null){for(let t of Me)if(n[t]!==void 0&&n[t]!==null){n.new_string=n[t],delete n[t];break}}(n.old_string===void 0||n.old_string===null)&&typeof n.new_string=="string"&&typeof n.file_path=="string"&&n.file_path.trim()&&(n.old_string="",n.full_file_replace=!0)}var O=class{constructor(t,i){this.config=t;this.params=i}toolLocations(){return[{path:this.params.file_path}]}async calculateEdit(t){let i=t.replace_all??!1,e=null,r=await A(t.file_path),o=!1,l=t.new_string,s=t.old_string,c=0,f,g=!1,m="utf-8",d="lf";if(!this.config.getFileReadCacheDisabled()){let a=await S(this.config.getFileReadCache(),t.file_path,"editing");if(!a.ok)return{currentContent:null,newContent:"",occurrences:0,error:{display:a.displayMessage,raw:a.rawMessage,type:a.type},isNewFile:!1,encoding:"utf-8",bom:!1,lineEnding:"lf"}}if(r)try{let a=await this.config.getFileSystemService().readTextFile({path:t.file_path});a._meta?.bom!==void 0?g=a._meta.bom:g=a.content.length>0&&a.content.codePointAt(0)===65279,m=a._meta?.encoding||"utf-8",d=Z(a.content),e=a.content.replace(/\r\n/g,`
20
+ `),r=!0}catch(a){if(!x(a)||a.code!=="ENOENT")throw a;r=!1}if(r&&!this.config.getFileReadCacheDisabled()){let a=await S(this.config.getFileReadCache(),t.file_path,"editing",{expectExisting:!0});if(!a.ok)return he.warn("post-read TOCTOU rejection",{path:t.file_path,reason:a.type}),{currentContent:null,newContent:"",occurrences:0,error:{display:a.displayMessage,raw:a.rawMessage,type:a.type},isNewFile:!1,encoding:"utf-8",bom:!1,lineEnding:"lf"}}if(t.full_file_replace)o=!r,r&&e!==null?(c=1,s=e,l=t.new_string):r||(s="",l=t.new_string);else{let a=ae(e,s,l);if(s=a.oldString,l=a.newString,s===""&&!r)o=!0;else if(!r)f={display:"File not found. Cannot apply edit. Use an empty old_string to create a new file.",raw:`File not found: ${t.file_path}`,type:"file_not_found"};else if(e!==null)if(s=ce(e,s,l),c=fe(e,s),t.old_string==="")f={display:"Failed to edit. Attempted to create a file that already exists.",raw:`File already exists, cannot create: ${t.file_path}`,type:"attempt_to_create_existing_file"};else if(c===0){let N=de(e,s);f={display:"Failed to edit, could not find the string to replace.",raw:`Failed to edit, 0 occurrences found for old_string in ${t.file_path}. No edits made. ${N??`The exact text in old_string was not found. Ensure you're not escaping content incorrectly and check whitespace, indentation, and context. Use ${D.Name} tool to verify.`}`,type:"edit_no_occurrence_found"}}else!i&&c>1?f={display:"Failed to edit because the text matches multiple locations. Provide more context or set replace_all to true.",raw:`Failed to edit. Found ${c} occurrences for old_string in ${t.file_path} but replace_all was not enabled.`,type:"edit_expected_occurrence_mismatch"}:s===l&&(f={display:"No changes to apply. The old_string and new_string are identical.",raw:`No changes to apply. The old_string and new_string are identical in file: ${t.file_path}`,type:"edit_no_change"});else f={display:"Failed to read content of file.",raw:`Failed to read content of existing file: ${t.file_path}`,type:"read_content_failure"}}let h=f?e??"":t.full_file_replace?t.new_string:pe(e,s,l,o);return!f&&r&&e===h&&(f={display:"No changes to apply. The new content is identical to the current content.",raw:`No changes to apply. The new content is identical to the current content in file: ${t.file_path}`,type:"edit_no_change"}),{currentContent:e,newContent:h,occurrences:c,error:f,isNewFile:o,bom:g,encoding:m,lineEnding:d}}async getDefaultPermission(){let t=this.config.getProjectRoot();return B(p.resolve(this.params.file_path),t)?"allow":"ask"}async getConfirmationDetails(t){let i=T(this.config,this.params.file_path);if(i)throw new M(i,"path_not_in_workspace");let e;try{e=await this.calculateEdit(this.params)}catch(s){if(t.aborted)throw s;let c=s instanceof Error?s.message:String(s);throw new Error(`Error preparing edit: ${c}`)}if(e.error)throw new M(e.error.raw,e.error.type);let r=p.basename(this.params.file_path),o=R(r,e.currentContent??"",e.newContent,"Current","Proposed",L);return{type:"edit",title:`Confirm Edit: ${y(P(this.params.file_path,this.config.getTargetDir()))}`,fileName:r,filePath:this.params.file_path,fileDiff:o,originalContent:e.currentContent,newContent:e.newContent,onConfirm:async s=>{s==="proceed_always"&&this.config.setApprovalMode("auto-edit")}}}getDescription(){let t=P(this.params.file_path,this.config.getTargetDir());return this.params.old_string===""?`Create ${y(t)}`:this.params.old_string===this.params.new_string?`No file changes to ${y(t)}`:y(t)}async execute(t){let i=T(this.config,this.params.file_path);if(i)return{llmContent:i,returnDisplay:i,error:{message:i,type:"path_not_in_workspace"}};let e;try{e=await this.calculateEdit(this.params)}catch(r){if(t.aborted)throw r;let o=r instanceof Error?r.message:String(r);return{llmContent:`Error preparing edit: ${o}`,returnDisplay:`Error preparing edit: ${o}`,error:{message:o,type:"edit_preparation_failure"}}}if(e.error)return{llmContent:e.error.raw,returnDisplay:`Error: ${e.error.display}`,error:{message:e.error.raw,type:e.error.type}};try{try{await this.config.getFileHistoryService().trackEdit(this.params.file_path)}catch{}if(!this.config.getFileReadCacheDisabled()){let u=await S(this.config.getFileReadCache(),this.params.file_path,"editing",{expectExisting:!e.isNewFile});if(!u.ok)return he.warn("pre-write TOCTOU rejection",{path:this.params.file_path,reason:u.type}),{llmContent:u.rawMessage,returnDisplay:`Error: ${u.displayMessage}`,error:{message:u.rawMessage,type:u.type}}}let r=T(this.config,this.params.file_path);if(r)return{llmContent:r,returnDisplay:r,error:{message:r,type:"path_not_in_workspace"}};this.ensureParentDirectoriesExist(this.params.file_path);let o=T(this.config,this.params.file_path);if(o)return{llmContent:o,returnDisplay:o,error:{message:o,type:"path_not_in_workspace"}};let l=q(this.params.file_path,this.config.getProjectRoot(),e.newContent);if(e.isNewFile){let u=this.config.getDefaultFileEncoding(),I=!1;u===Y.UTF8_BOM?I=!0:u===void 0&&(I=J(this.params.file_path)),await this.config.getFileSystemService().writeTextFile({path:this.params.file_path,content:l,_meta:{bom:I}})}else await this.config.getFileSystemService().writeTextFile({path:this.params.file_path,content:l,_meta:{bom:e.bom,encoding:e.encoding,lineEnding:e.lineEnding}});this.params.modified_by_user||V.getInstance().recordEdit(this.params.file_path,e.currentContent,e.newContent);try{let u=_.statSync(this.params.file_path);this.config.getFileReadCache().recordWrite(this.params.file_path,u)}catch{}let s=p.basename(this.params.file_path),c=this.params.ai_proposed_content||e.newContent,f=Q(s,e.currentContent??"",c,e.newContent),m={fileDiff:R(s,e.currentContent??"",e.newContent,"Current","Proposed",L),fileName:s,originalContent:e.currentContent,newContent:e.newContent,diffStat:f},d=H(this.params.file_path),h=j(this.params.file_path),a=p.extname(this.params.file_path),N=e.isNewFile?"create":"update";z(this.config,new K(v.Name,N,e.newContent.split(`
21
+ `).length,d,a,h));let C=[e.isNewFile?`Created new file: ${this.params.file_path} with provided content.`:`The file: ${this.params.file_path} has been updated.`];l!==e.newContent&&C.push(X);let w=ue(e.currentContent,e.newContent);if(w){let u=`Showing lines ${w.startLine}-${w.endLine} of ${w.totalLines} from the edited file:
22
22
 
23
23
  ---
24
24
 
25
- ${y.content}`;E.push(u)}try{let u=await Y(this.config,this.params.file_path);u&&E.push(`
25
+ ${w.content}`;C.push(u)}try{let u=await ee(this.config,this.params.file_path);u&&C.push(`
26
26
 
27
- ${u}`)}catch{}return{llmContent:E.join(" "),returnDisplay:g}}catch(r){let o=r instanceof Error?r.message:String(r);return{llmContent:`Error executing edit: ${o}`,returnDisplay:`Error writing file: ${o}`,error:{message:o,type:"file_write_failure"}}}}ensureParentDirectoriesExist(t){let i=p.dirname(t);_.existsSync(i)||_.mkdirSync(i,{recursive:!0})}},O=class n extends k{constructor(i){super(n.Name,W.EDIT,`Replaces text within a file. By default, replaces a single occurrence. Set \`replace_all\` to true when you intend to modify every instance of \`old_string\`. This tool requires providing significant context around the change to ensure precise targeting. Always use the ${A.Name} tool to examine the file's current content before attempting a text replacement.
27
+ ${u}`)}catch{}return{llmContent:C.join(" "),returnDisplay:m}}catch(r){let o=r instanceof Error?r.message:String(r);return{llmContent:`Error executing edit: ${o}`,returnDisplay:`Error writing file: ${o}`,error:{message:o,type:"file_write_failure"}}}}ensureParentDirectoriesExist(t){let i=p.dirname(t);_.existsSync(i)||_.mkdirSync(i,{recursive:!0})}},v=class n extends W{constructor(i){super(n.Name,U.EDIT,`Replaces text within a file. By default, replaces a single occurrence. Set \`replace_all\` to true when you intend to modify every instance of \`old_string\`. This tool requires providing significant context around the change to ensure precise targeting. Always use the ${D.Name} tool to examine the file's current content before attempting a text replacement.
28
28
 
29
29
  The user has the ability to modify the \`new_string\` content. If modified, this will be stated in the response.
30
30
 
@@ -35,7 +35,7 @@ Expectation for required parameters:
35
35
  4. NEVER escape \`old_string\` or \`new_string\`, that would break the exact literal text requirement.
36
36
  **Important:** If ANY of the above are not satisfied, the tool will fail. CRITICAL for \`old_string\`: Must uniquely identify the single instance to change. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string matches multiple locations, or does not match exactly, the tool will fail.
37
37
  **Multiple replacements:** Set \`replace_all\` to true when you want to replace every occurrence that matches \`old_string\`.
38
- **New files:** Pass an empty \`old_string\` to create a file that does not exist yet.`,"edit",{properties:{file_path:{description:"The absolute path to the file to modify. Must start with '/'.",type:"string"},old_string:{description:"The exact literal text to replace, preferably unescaped. For single replacements (default), include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string is not the exact literal text (i.e. you escaped it) or does not match exactly, the tool will fail. Omit only when intentionally overwriting the entire file with new_string (prefer write_file for that). Empty string creates a new file when the path does not exist.",type:"string"},new_string:{description:"The exact literal text to replace `old_string` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic.",type:"string"},replace_all:{type:"boolean",description:"Replace all occurrences of old_string (default false)."}},required:["file_path","old_string","new_string"],type:"object"});this.config=i}static Name=F.EDIT;validateToolParams(i){return Le(i),super.validateToolParams(i)}validateToolParamValues(i){return i.file_path=v(i.file_path.trim()),i.file_path?p.isAbsolute(i.file_path)?typeof i.new_string!="string"?"The 'new_string' parameter must be a string.":null:`File path must be absolute: ${i.file_path}`:"The 'file_path' parameter must be non-empty."}createInvocation(i){return new M(this.config,i)}toAutoClassifierInput(i){let e=i.old_string??"",r=i.new_string??"";return{file_path:i.file_path,old_string_preview:e.slice(0,300),new_string_preview:r.slice(0,300),old_string_truncated:e.length>300,new_string_truncated:r.length>300,lines_changed:(r.match(/\n/g)?.length??0)-(e.match(/\n/g)?.length??0)}}getModifyContext(i){return{getFilePath:e=>e.file_path,getCurrentContent:async e=>{if(await P(e.file_path))try{let{content:o}=await this.config.getFileSystemService().readTextFile({path:e.file_path});return o}catch(o){if(!x(o)||o.code!=="ENOENT")throw o;return""}else return""},getProposedContent:async e=>{if(e.full_file_replace)return e.new_string;if(_.existsSync(e.file_path))try{let{content:r}=await this.config.getFileSystemService().readTextFile({path:e.file_path});return ge(r,e.old_string,e.new_string,e.old_string===""&&r==="")}catch(r){if(!x(r)||r.code!=="ENOENT")throw r;return""}else return""},createUpdatedParams:(e,r,o)=>({...o,ai_proposed_content:e,old_string:e,new_string:r,modified_by_user:!0})}}};export{O as EditTool,ge as applyReplacement,Le as normalizeEditToolParams};
38
+ **New files:** Pass an empty \`old_string\` to create a file that does not exist yet.`,"edit",{properties:{file_path:{description:"The absolute path to the file to modify. Must start with '/'.",type:"string"},old_string:{description:"The exact literal text to replace, preferably unescaped. For single replacements (default), include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string is not the exact literal text (i.e. you escaped it) or does not match exactly, the tool will fail. Omit only when intentionally overwriting the entire file with new_string (prefer write_file for that). Empty string creates a new file when the path does not exist.",type:"string"},new_string:{description:"The exact literal text to replace `old_string` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic.",type:"string"},replace_all:{type:"boolean",description:"Replace all occurrences of old_string (default false)."}},required:["file_path","old_string","new_string"],type:"object"});this.config=i}static Name=F.EDIT;validateToolParams(i){return Oe(i),super.validateToolParams(i)}validateToolParamValues(i){return i.file_path=$(i.file_path.trim()),i.file_path?p.isAbsolute(i.file_path)?typeof i.new_string!="string"?"The 'new_string' parameter must be a string.":null:`File path must be absolute: ${i.file_path}`:"The 'file_path' parameter must be non-empty."}createInvocation(i){return new O(this.config,i)}toAutoClassifierInput(i){let e=i.old_string??"",r=i.new_string??"";return{file_path:i.file_path,old_string_preview:e.slice(0,300),new_string_preview:r.slice(0,300),old_string_truncated:e.length>300,new_string_truncated:r.length>300,lines_changed:(r.match(/\n/g)?.length??0)-(e.match(/\n/g)?.length??0)}}getModifyContext(i){return{getFilePath:e=>e.file_path,getCurrentContent:async e=>{if(await A(e.file_path))try{let{content:o}=await this.config.getFileSystemService().readTextFile({path:e.file_path});return o}catch(o){if(!x(o)||o.code!=="ENOENT")throw o;return""}else return""},getProposedContent:async e=>{if(e.full_file_replace)return e.new_string;if(_.existsSync(e.file_path))try{let{content:r}=await this.config.getFileSystemService().readTextFile({path:e.file_path});return pe(r,e.old_string,e.new_string,e.old_string===""&&r==="")}catch(r){if(!x(r)||r.code!=="ENOENT")throw r;return""}else return""},createUpdatedParams:(e,r,o)=>({...o,ai_proposed_content:e,old_string:e,new_string:r,modified_by_user:!0})}}};export{v as EditTool,pe as applyReplacement,Oe as normalizeEditToolParams};
39
39
  /**
40
40
  * @license
41
41
  * Copyright 2025 Google LLC
@@ -0,0 +1,23 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import{b as e}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";e();var t={"\u2191 to manage attachments":"\u2191 to manage attachments","\u2190 \u2192 select, Delete to remove, \u2193 to exit":"\u2190 \u2192 select, Delete to remove, \u2193 to exit","Attachments: ":"Attachments: ","Basics:":"Basics:","Add context":"Add context","Use {{symbol}} to specify files for context (e.g., {{example}}) to target specific files or folders.":"Use {{symbol}} to specify files for context (e.g., {{example}}) to target specific files or folders.","@":"@","@src/myFile.ts":"@src/myFile.ts","Shell mode":"Shell mode","BOGAN mode":"BOGAN mode","Auto mode":"Auto mode","plan mode":"plan mode","auto-accept edits":"auto-accept edits","Accepting edits":"Accepting edits","(shift + tab to cycle)":"(shift + tab to cycle)","(tab to cycle)":"(tab to cycle)","Execute shell commands via {{symbol}} (e.g., {{example1}}) or use natural language (e.g., {{example2}}).":"Execute shell commands via {{symbol}} (e.g., {{example1}}) or use natural language (e.g., {{example2}}).","!":"!","!npm run start":"!npm run start","start server":"start server","Commands:":"Commands:","shell command":"shell command","Model Context Protocol command (from external servers)":"Model Context Protocol command (from external servers)","Keyboard Shortcuts:":"Keyboard Shortcuts:","Toggle this help display":"Toggle this help display","Toggle shell mode":"Toggle shell mode","Open command menu":"Open command menu","Add file context":"Add file context","Accept suggestion / Autocomplete":"Accept suggestion / Autocomplete","Reverse search history":"Reverse search history","Press ? again to close":"Press ? again to close","for shell mode":"for shell mode","for commands":"for commands","for file paths":"for file paths","to clear input":"to clear input","to cycle approvals":"to cycle approvals","to quit":"to quit","for newline":"for newline","to clear screen":"to clear screen","to search history":"to search history","to paste images":"to paste images","for external editor":"for external editor","to toggle compact mode":"to toggle compact mode","to expand the task list":"to expand the task list","to expand":"to expand","Jump through words in the input":"Jump through words in the input","Close dialogs, cancel requests, or quit application":"Close dialogs, cancel requests, or quit application","New line":"New line","New line (Alt+Enter works for certain linux distros)":"New line (Alt+Enter works for certain linux distros)","Clear the screen":"Clear the screen","Open input in external editor":"Open input in external editor","Send message":"Send message","Initializing...":"Initializing...","Connecting to MCP servers... ({{connected}}/{{total}})":"Connecting to MCP servers... ({{connected}}/{{total}})","Message Matilda":"Message Matilda","Message Matilda, or @path/to/file":"Message Matilda, or @path/to/file","? for shortcuts":"? for shortcuts","Press 'i' for INSERT mode and 'Esc' for NORMAL mode.":"Press 'i' for INSERT mode and 'Esc' for NORMAL mode.","Cancel operation / Clear input (double press)":"Cancel operation / Clear input (double press)","Cycle approval modes":"Cycle approval modes","Cycle through your prompt history":"Cycle through your prompt history","For a full list of shortcuts, see {{docPath}}":"For a full list of shortcuts, see {{docPath}}","docs/keyboard-shortcuts.md":"docs/keyboard-shortcuts.md","help \u2014 how Matilda works":"help \u2014 how Matilda works","show version info":"show version info","show paths for current session files and logs":"show paths for current session files and logs","submit a bug report":"submit a bug report",Status:"Status",Matilda:"Matilda",Runtime:"Runtime",OS:"OS",Model:"Model","Fast Model":"Fast Model",Sandbox:"Sandbox","Session ID":"Session ID","Base URL":"Base URL",Proxy:"Proxy","Memory Usage":"Memory Usage","IDE Client":"IDE Client","Analyzes the project and creates a tailored MATILDA.md file.":"Analyzes the project and creates a tailored MATILDA.md file.","List available Matilda tools. Usage: /tools [desc]":"List available Matilda tools. Usage: /tools [desc]","Open the skills panel (browse, search, toggle, pick).":"Open the skills panel (browse, search, toggle, pick).","Move this session to a new working directory":"Move this session to a new working directory","Manage Skills":"Manage Skills","Skills configuration saved.":"Skills configuration saved.","Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.":"Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.","Workspace is untrusted; workspace settings are ignored by the merged config. Run /trust first to persist skills changes here, or edit ~/.matilda/settings.json directly to manage skills at user scope.":"Workspace is untrusted; workspace settings are ignored by the merged config. Run /trust first to persist skills changes here, or edit ~/.matilda/settings.json directly to manage skills at user scope.","SkillManager not available.":"SkillManager not available.","Loading skills\u2026":"Loading skills\u2026","Failed to load skills: {{error}}":"Failed to load skills: {{error}}","Failed to save skills configuration: {{error}}":"Failed to save skills configuration: {{error}}","All available skills are disabled. Edit ~/.matilda/settings.json or .matilda/settings.json (skills.disabled) to re-enable.":"All available skills are disabled. Edit ~/.matilda/settings.json or .matilda/settings.json (skills.disabled) to re-enable.","Press Esc to close.":"Press Esc to close.","{{count}} skills \xB7 ":"{{count}} skills \xB7 ","{{matched}} / {{total}} skills \xB7 ":"{{matched}} / {{total}} skills \xB7 ","Space toggle \xB7 Enter pick (fill input) \xB7 Esc save & exit \xB7 workspace scope":"Space toggle \xB7 Enter pick (fill input) \xB7 Esc save & exit \xB7 workspace scope","Search:":"Search:","type to filter\u2026":"type to filter\u2026","No skills are currently available.":"No skills are currently available.","All available skills are locked at a higher scope (see below).":"All available skills are locked at a higher scope (see below).","No skills match the search.":"No skills match the search.","Locked by higher-scope settings (cannot toggle here):":"Locked by higher-scope settings (cannot toggle here):","higher scope":"higher scope"," {{name}} {{description}} [locked: {{scope}}]":" {{name}} {{description}} [locked: {{scope}}]","\u2191/\u2193 navigate \xB7 backspace edits search":"\u2191/\u2193 navigate \xB7 backspace edits search",Bundled:"Bundled","Available Matilda CLI tools:":"Available Matilda CLI tools:","No tools available":"No tools available","View or change the approval mode for tool usage":"View or change the approval mode for tool usage",'Invalid approval mode "{{arg}}". Valid modes: {{modes}}':'Invalid approval mode "{{arg}}". Valid modes: {{modes}}','Approval mode set to "{{mode}}"':'Approval mode set to "{{mode}}"',"View or change the language setting":"View or change the language setting","List background tasks (text dump \u2014 interactive dialog opens via the footer pill)":"List background tasks (text dump \u2014 interactive dialog opens via the footer pill)","Delete a previous session":"Delete a previous session","Run installation and environment diagnostics":"Run installation and environment diagnostics","Browse dynamic model catalogs and choose which models stay enabled locally":"Browse dynamic model catalogs and choose which models stay enabled locally","One-line yarn of this session":"One-line yarn of this session","Rename the current conversation. --auto lets the fast model pick a title.":"Rename the current conversation. --auto lets the fast model pick a title.","Rewind conversation to a previous turn":"Rewind conversation to a previous turn","Rewind Conversation":"Rewind Conversation","No user turns to rewind to.":"No user turns to rewind to.","Rewind to: ":"Rewind to: ","Restore code and conversation":"Restore code and conversation","Restore conversation only":"Restore conversation only","Restore code only":"Restore code only","Never mind":"Never mind","Computing file changes...":"Computing file changes...","Restoring...":"Restoring...","Restored {{count}} file(s).":"Restored {{count}} file(s).","Failed to restore files: {{error}}":"Failed to restore files: {{error}}","Rewind failed: {{error}}":"Rewind failed: {{error}}","Cannot rewind conversation: no active model client.":"Cannot rewind conversation: no active model client.","Code restored, but conversation could not be rewound (no active client).":"Code restored, but conversation could not be rewound (no active client).","Conversation rewound. Edit your prompt and press Enter to continue.":"Conversation rewound. Edit your prompt and press Enter to continue.","Rewinding does not affect files edited manually or via shell commands.":"Rewinding does not affect files edited manually or via shell commands.","Cannot rewind to a turn that was compressed. Try a more recent turn.":"Cannot rewind to a turn that was compressed. Try a more recent turn.","File restore is unavailable for this turn (no captured file changes, or this turn predates the current session).":"File restore is unavailable for this turn (no captured file changes, or this turn predates the current session).","(+{{insertions}} -{{deletions}} in {{count}} file)":"(+{{insertions}} -{{deletions}} in {{count}} file)","(+{{insertions}} -{{deletions}} in {{count}} files)":"(+{{insertions}} -{{deletions}} in {{count}} files)","Failed to restore {{count}} file(s): {{files}}":"Failed to restore {{count}} file(s): {{files}}","Cannot restore files: this turn was created before file checkpointing was enabled.":"Cannot restore files: this turn was created before file checkpointing was enabled.","No files needed to be restored.":"No files needed to be restored.","\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to go back":"\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to go back","\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel":"\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel","Enter/Y to confirm \xB7 Esc/N to go back":"Enter/Y to confirm \xB7 Esc/N to go back","pick a Matilda theme (Wattle, Outback, Reef\u2026)":"pick a Matilda theme (Wattle, Outback, Reef\u2026)","Select Theme":"Select Theme",Preview:"Preview","(Use Enter to select, Tab to configure scope)":"(Use Enter to select, Tab to configure scope)","(Use Enter to apply scope, Tab to go back)":"(Use Enter to apply scope, Tab to go back)","Theme configuration unavailable due to NO_COLOR env variable.":"Theme configuration unavailable due to NO_COLOR env variable.",'Theme "{{themeName}}" not found.':'Theme "{{themeName}}" not found.','Theme "{{themeName}}" not found in selected scope.':'Theme "{{themeName}}" not found in selected scope.',"Wipe the slate \u2014 clear history and free context":"Wipe the slate \u2014 clear history and free context","Compresses the context by replacing it with a summary.":"Compresses the context by replacing it with a summary.","Fast context compression without AI. Strips old tool outputs and thinking parts.":"Fast context compression without AI. Strips old tool outputs and thinking parts.","open full Matilda documentation in your browser":"open full Matilda documentation in your browser","Configuration not available.":"Configuration not available.","Copy to clipboard: reply, code (by lang), LaTeX, or Mermaid. N = Nth-latest message, index = block number":"Copy to clipboard: reply, code (by lang), LaTeX, or Mermaid. N = Nth-latest message, index = block number","Show working-tree change stats versus HEAD":"Show working-tree change stats versus HEAD","hop a Matilda Aussie easter egg across the terminal":"hop a Matilda Aussie easter egg across the terminal","Could not determine current working directory.":"Could not determine current working directory.","Failed to compute git diff stats":"Failed to compute git diff stats","No diff available. Either this is not a git repository, HEAD is missing, or a merge/rebase/cherry-pick/revert is in progress.":"No diff available. Either this is not a git repository, HEAD is missing, or a merge/rebase/cherry-pick/revert is in progress.","Clean working tree \u2014 no changes against HEAD.":"Clean working tree \u2014 no changes against HEAD.","{{count}} file changed, +{{added}} / -{{removed}}":"{{count}} file changed, +{{added}} / -{{removed}}","{{count}} files changed, +{{added}} / -{{removed}}":"{{count}} files changed, +{{added}} / -{{removed}}","{{count}} file changed":"{{count}} file changed","{{count}} files changed":"{{count}} files changed","\u2026and {{hidden}} more (showing first {{shown}})":"\u2026and {{hidden}} more (showing first {{shown}})","(binary)":"(binary)","(binary, new)":"(binary, new)","(new)":"(new)","(new, partial)":"(new, partial)","(deleted)":"(deleted)","(binary, deleted)":"(binary, deleted)","Manage subagents for specialized task delegation.":"Manage subagents for specialized task delegation.","Manage existing subagents (view, edit, delete).":"Manage existing subagents (view, edit, delete).","Create a new subagent with guided setup.":"Create a new subagent with guided setup.",Agents:"Agents","Choose Action":"Choose Action","Edit {{name}}":"Edit {{name}}","Edit Tools: {{name}}":"Edit Tools: {{name}}","Edit Color: {{name}}":"Edit Color: {{name}}","Delete {{name}}":"Delete {{name}}","Unknown Step":"Unknown Step","Esc to close":"Esc to close","Enter to select, \u2191\u2193 to navigate, Esc to close":"Enter to select, \u2191\u2193 to navigate, Esc to close","Esc to go back":"Esc to go back","Enter to confirm, Esc to cancel":"Enter to confirm, Esc to cancel","Enter to select, \u2191\u2193 to navigate, Esc to go back":"Enter to select, \u2191\u2193 to navigate, Esc to go back","Enter to submit, Esc to go back":"Enter to submit, Esc to go back","Invalid step: {{step}}":"Invalid step: {{step}}","No subagents found.":"No subagents found.","Use '/agents create' to create your first subagent.":"Use '/agents create' to create your first subagent.","(built-in)":"(built-in)","(overridden by project level agent)":"(overridden by project level agent)","Project Level ({{path}})":"Project Level ({{path}})","User Level ({{path}})":"User Level ({{path}})","Built-in Agents":"Built-in Agents","Extension Agents":"Extension Agents","Using: {{count}} agents":"Using: {{count}} agents","View Agent":"View Agent","Edit Agent":"Edit Agent","Delete Agent":"Delete Agent",Back:"Back","No agent selected":"No agent selected","File Path: ":"File Path: ","Tools: ":"Tools: ","Color: ":"Color: ","Description:":"Description:","System Prompt:":"System Prompt:","Open in editor":"Open in editor","Edit tools":"Edit tools","Edit color":"Edit color","\u274C Error:":"\u274C Error:",'Are you sure you want to delete agent "{{name}}"?':'Are you sure you want to delete agent "{{name}}"?',"Project Level (.matilda/agents/)":"Project Level (.matilda/agents/)","User Level (~/.matilda/agents/)":"User Level (~/.matilda/agents/)","\u2705 Subagent Created Successfully!":"\u2705 Subagent Created Successfully!",'Subagent "{{name}}" has been saved to {{level}} level.':'Subagent "{{name}}" has been saved to {{level}} level.',"Name: ":"Name: ","Location: ":"Location: ","\u274C Error saving subagent:":"\u274C Error saving subagent:","Warnings:":"Warnings:",'Name "{{name}}" already exists at {{level}} level - will overwrite existing subagent':'Name "{{name}}" already exists at {{level}} level - will overwrite existing subagent','Name "{{name}}" exists at user level - project level will take precedence':'Name "{{name}}" exists at user level - project level will take precedence','Name "{{name}}" exists at project level - existing subagent will take precedence':'Name "{{name}}" exists at project level - existing subagent will take precedence',"Description is over {{length}} characters":"Description is over {{length}} characters","System prompt is over {{length}} characters":"System prompt is over {{length}} characters","Step {{n}}: Choose Location":"Step {{n}}: Choose Location","Step {{n}}: Choose Generation Method":"Step {{n}}: Choose Generation Method","Generate with Matilda (Recommended)":"Generate with Matilda (Recommended)","Manual Creation":"Manual Creation","Describe what this subagent should do and when it should be used. (Be comprehensive for best results)":"Describe what this subagent should do and when it should be used. (Be comprehensive for best results)","e.g., Expert code reviewer that reviews code based on best practices...":"e.g., Expert code reviewer that reviews code based on best practices...","Generating subagent configuration...":"Generating subagent configuration...","Failed to generate subagent: {{error}}":"Failed to generate subagent: {{error}}","Step {{n}}: Describe Your Subagent":"Step {{n}}: Describe Your Subagent","Step {{n}}: Enter Subagent Name":"Step {{n}}: Enter Subagent Name","Step {{n}}: Enter System Prompt":"Step {{n}}: Enter System Prompt","Step {{n}}: Enter Description":"Step {{n}}: Enter Description","Step {{n}}: Select Tools":"Step {{n}}: Select Tools","All Tools (Default)":"All Tools (Default)","All Tools":"All Tools","Read-only Tools":"Read-only Tools","Read & Edit Tools":"Read & Edit Tools","Read & Edit & Execution Tools":"Read & Edit & Execution Tools","All tools selected, including MCP tools":"All tools selected, including MCP tools","Selected tools:":"Selected tools:","Read-only tools:":"Read-only tools:","Edit tools:":"Edit tools:","Execution tools:":"Execution tools:","Step {{n}}: Choose Background Color":"Step {{n}}: Choose Background Color","Step {{n}}: Confirm and Save":"Step {{n}}: Confirm and Save","Esc to cancel":"Esc to cancel","Press Enter to save, e to save and edit, Esc to go back":"Press Enter to save, e to save and edit, Esc to go back","Press Enter to continue, {{navigation}}Esc to {{action}}":"Press Enter to continue, {{navigation}}Esc to {{action}}",cancel:"cancel","go back":"go back","\u2191\u2193 to navigate, ":"\u2191\u2193 to navigate, ","Enter a clear, unique name for this subagent.":"Enter a clear, unique name for this subagent.","e.g., Code Reviewer":"e.g., Code Reviewer","Name cannot be empty.":"Name cannot be empty.","Write the system prompt that defines this subagent's behavior. Be comprehensive for best results.":"Write the system prompt that defines this subagent's behavior. Be comprehensive for best results.","e.g., You are an expert code reviewer...":"e.g., You are an expert code reviewer...","System prompt cannot be empty.":"System prompt cannot be empty.","Describe when and how this subagent should be used.":"Describe when and how this subagent should be used.","e.g., Reviews code for best practices and potential bugs.":"e.g., Reviews code for best practices and potential bugs.","Description cannot be empty.":"Description cannot be empty.","Failed to launch editor: {{error}}":"Failed to launch editor: {{error}}","Failed to save and edit subagent: {{error}}":"Failed to save and edit subagent: {{error}}","Manage Extensions":"Manage Extensions","Extension Details":"Extension Details","View Extension":"View Extension","Update Extension":"Update Extension","Disable Extension":"Disable Extension","Enable Extension":"Enable Extension","Uninstall Extension":"Uninstall Extension","Select Scope":"Select Scope","User Scope":"User Scope","Workspace Scope":"Workspace Scope","No extensions found.":"No extensions found.","Updating...":"Updating...",Unknown:"Unknown",Error:"Error","Stopped because":"Stopped because","Version:":"Version:","Status:":"Status:",'Are you sure you want to uninstall extension "{{name}}"?':'Are you sure you want to uninstall extension "{{name}}"?',"This action cannot be undone.":"This action cannot be undone.",'Extension "{{name}}" updated successfully.':'Extension "{{name}}" updated successfully.',"Name:":"Name:","MCP Servers:":"MCP Servers:","Settings:":"Settings:",active:"active",disabled:"disabled",enabled:"enabled","View Details":"View Details","Update failed:":"Update failed:","Updating {{name}}...":"Updating {{name}}...","Update complete!":"Update complete!","User (global)":"User (global)","Workspace (project-specific)":"Workspace (project-specific)",'Disable "{{name}}" - Select Scope':'Disable "{{name}}" - Select Scope','Enable "{{name}}" - Select Scope':'Enable "{{name}}" - Select Scope',"No extension selected":"No extension selected","{{count}} extensions installed":"{{count}} extensions installed","Use '/extensions install' to install your first extension.":"Use '/extensions install' to install your first extension.","up to date":"up to date","update available":"update available","checking...":"checking...","not updatable":"not updatable",error:"error","View and edit Matilda settings":"View and edit Matilda settings",Settings:"Settings","To see changes, Matilda must be restarted. Press r to exit and apply changes now.":"To see changes, Matilda must be restarted. Press r to exit and apply changes now.","Vim Mode":"Vim Mode","Attribution: commit":"Attribution: commit","Terminal Bell Notification":"Terminal Bell Notification","Enable Usage Statistics":"Enable Usage Statistics",Theme:"Theme","Preferred Editor":"Preferred Editor","Auto-connect to IDE":"Auto-connect to IDE","Debug Keystroke Logging":"Debug Keystroke Logging","Language: UI":"Language: UI","Language: Model":"Language: Model","Output Format":"Output Format","Hide Window Title":"Hide Window Title","Show Status in Title":"Show Status in Title","Hide Tips":"Hide Tips","Show Line Numbers in Code":"Show Line Numbers in Code","Show Citations":"Show Citations","Custom Witty Phrases":"Custom Witty Phrases","Show Welcome Back Dialog":"Show Welcome Back Dialog","Enable User Feedback":"Enable User Feedback","How well is Matilda working for you?":"How well is Matilda working for you?","Give a rating from 1 to 5:":"Give a rating from 1 to 5:","Tell us more and/or give suggestions!":"Tell us more and/or give suggestions!","1\u20135 rate \xB7 \u2190\u2192 adjust \xB7 enter next \xB7 esc dismiss":"1\u20135 rate \xB7 \u2190\u2192 adjust \xB7 enter next \xB7 esc dismiss","enter submit \xB7 shift+enter newline \xB7 tab back \xB7 esc dismiss":"enter submit \xB7 shift+enter newline \xB7 tab back \xB7 esc dismiss",Bad:"Bad",Fine:"Fine",Good:"Good",Dismiss:"Dismiss","Screen Reader Mode":"Screen Reader Mode","Max Session Turns":"Max Session Turns","Skip Next Speaker Check":"Skip Next Speaker Check","Skip Loop Detection":"Skip Loop Detection","Skip Startup Context":"Skip Startup Context","Enable OpenAI Logging":"Enable OpenAI Logging","OpenAI Logging Directory":"OpenAI Logging Directory",Timeout:"Timeout","Max Retries":"Max Retries","Load Memory From Include Directories":"Load Memory From Include Directories","Respect .gitignore":"Respect .gitignore","Respect .matildaignore":"Respect .matildaignore","Enable Recursive File Search":"Enable Recursive File Search","Interactive Shell (PTY)":"Interactive Shell (PTY)","Show Color":"Show Color","Auto Accept":"Auto Accept","Use Ripgrep":"Use Ripgrep","Use Builtin Ripgrep":"Use Builtin Ripgrep","Tool Output Truncation Threshold":"Tool Output Truncation Threshold","Tool Output Truncation Lines":"Tool Output Truncation Lines","Folder Trust":"Folder Trust","Tool Schema Compliance":"Tool Schema Compliance","Auto (detect from system)":"Auto (detect from system)","Auto (detect terminal theme)":"Auto (detect terminal theme)",Auto:"Auto",Text:"Text",JSON:"JSON",Plan:"Plan","Ask permissions":"Ask permissions","Auto Edit":"Auto Edit",BOGAN:"BOGAN","toggle vim mode on/off":"toggle vim mode on/off","Show usage statistics dashboard.":"Show usage statistics dashboard.","Show model-specific usage statistics.":"Show model-specific usage statistics.","Show tool-specific usage statistics.":"Show tool-specific usage statistics.","pack it up \u2014 exit the CLI":"pack it up \u2014 exit the CLI","Manage workspace directories":"Manage workspace directories","Add directories to the workspace. Use comma to separate multiple paths":"Add directories to the workspace. Use comma to separate multiple paths","Show all directories in the workspace":"Show all directories in the workspace","set external editor preference":"set external editor preference","Select Editor":"Select Editor","Editor Preference":"Editor Preference","These editors are currently supported. Please note that some editors cannot be used in sandbox mode.":"These editors are currently supported. Please note that some editors cannot be used in sandbox mode.","Your preferred editor is:":"Your preferred editor is:","Manage extensions":"Manage extensions","Manage installed extensions":"Manage installed extensions","Disable an extension":"Disable an extension","Enable an extension":"Enable an extension","Install an extension from a git repo or local path":"Install an extension from a git repo or local path","Uninstall an extension":"Uninstall an extension","No extensions installed.":"No extensions installed.",'Extension "{{name}}" not found.':'Extension "{{name}}" not found.',"No extensions to update.":"No extensions to update.","Usage: /extensions install <source>":"Usage: /extensions install <source>",'Installing extension from "{{source}}"...':'Installing extension from "{{source}}"...','Extension "{{name}}" installed successfully.':'Extension "{{name}}" installed successfully.','Failed to install extension from "{{source}}": {{error}}':'Failed to install extension from "{{source}}": {{error}}',"Do you want to continue? [Y/n]: ":"Do you want to continue? [Y/n]: ","Do you want to continue?":"Do you want to continue?",'Installing extension "{{name}}".':'Installing extension "{{name}}".',"**Extensions may introduce unexpected behavior. Ensure you have investigated the extension source and trust the author.**":"**Extensions may introduce unexpected behavior. Ensure you have investigated the extension source and trust the author.**","This extension will run the following MCP servers:":"This extension will run the following MCP servers:",local:"local",remote:"remote","This extension will add the following commands: {{commands}}.":"This extension will add the following commands: {{commands}}.","This extension will append info to your MATILDA.md context using {{fileName}}":"This extension will append info to your MATILDA.md context using {{fileName}}","This extension will install the following skills:":"This extension will install the following skills:","This extension will install the following subagents:":"This extension will install the following subagents:",'Installation cancelled for "{{name}}".':'Installation cancelled for "{{name}}".',"You are installing an extension from {{originSource}}. Some features may not work perfectly with Matilda.":"You are installing an extension from {{originSource}}. Some features may not work perfectly with Matilda.","--ref and --auto-update are not applicable for marketplace extensions.":"--ref and --auto-update are not applicable for marketplace extensions.",'Extension "{{name}}" installed successfully and enabled.':'Extension "{{name}}" installed successfully and enabled.',"The github URL, local path, or marketplace source (marketplace-url:plugin-name) of the extension to install.":"The github URL, local path, or marketplace source (marketplace-url:plugin-name) of the extension to install.","The git ref to install from.":"The git ref to install from.","Enable auto-update for this extension.":"Enable auto-update for this extension.","Enable pre-release versions for this extension.":"Enable pre-release versions for this extension.","Acknowledge the security risks of installing an extension and skip the confirmation prompt.":"Acknowledge the security risks of installing an extension and skip the confirmation prompt.","The source argument must be provided.":"The source argument must be provided.",'Extension "{{name}}" successfully uninstalled.':'Extension "{{name}}" successfully uninstalled.',"Uninstalls an extension.":"Uninstalls an extension.","The name or source path of the extension to uninstall.":"The name or source path of the extension to uninstall.","Please include the name of the extension to uninstall as a positional argument.":"Please include the name of the extension to uninstall as a positional argument.","Enables an extension.":"Enables an extension.","The name of the extension to enable.":"The name of the extension to enable.","The scope to enable the extenison in. If not set, will be enabled in all scopes.":"The scope to enable the extenison in. If not set, will be enabled in all scopes.",'Extension "{{name}}" successfully enabled for scope "{{scope}}".':'Extension "{{name}}" successfully enabled for scope "{{scope}}".','Extension "{{name}}" successfully enabled in all scopes.':'Extension "{{name}}" successfully enabled in all scopes.',"Invalid scope: {{scope}}. Please use one of {{scopes}}.":"Invalid scope: {{scope}}. Please use one of {{scopes}}.","Disables an extension.":"Disables an extension.","The name of the extension to disable.":"The name of the extension to disable.","The scope to disable the extenison in.":"The scope to disable the extenison in.",'Extension "{{name}}" successfully disabled for scope "{{scope}}".':'Extension "{{name}}" successfully disabled for scope "{{scope}}".','Extension "{{name}}" successfully updated: {{oldVersion}} \u2192 {{newVersion}}.':'Extension "{{name}}" successfully updated: {{oldVersion}} \u2192 {{newVersion}}.','Unable to install extension "{{name}}" due to missing install metadata':'Unable to install extension "{{name}}" due to missing install metadata','Extension "{{name}}" is already up to date.':'Extension "{{name}}" is already up to date.',"Updates all extensions or a named extension to the latest version.":"Updates all extensions or a named extension to the latest version.","Update all extensions.":"Update all extensions.","The name of the extension to update.":"The name of the extension to update.","Either an extension name or --all must be provided":"Either an extension name or --all must be provided","List installed extensions":"List installed extensions","Lists installed extensions.":"Lists installed extensions.","Path:":"Path:","Source:":"Source:","Type:":"Type:","Ref:":"Ref:","Release tag:":"Release tag:","Enabled (User):":"Enabled (User):","Enabled (Workspace):":"Enabled (Workspace):","Context files:":"Context files:","Skills:":"Skills:","Agents:":"Agents:","MCP servers:":"MCP servers:","Link extension failed to install.":"Link extension failed to install.",'Extension "{{name}}" linked successfully and enabled.':'Extension "{{name}}" linked successfully and enabled.',"Links an extension from a local path. Updates made to the local path will always be reflected.":"Links an extension from a local path. Updates made to the local path will always be reflected.","The name of the extension to link.":"The name of the extension to link.","Set a specific setting for an extension.":"Set a specific setting for an extension.","Name of the extension to configure.":"Name of the extension to configure.","The setting to configure (name or env var).":"The setting to configure (name or env var).","The scope to set the setting in.":"The scope to set the setting in.","List all settings for an extension.":"List all settings for an extension.","Name of the extension.":"Name of the extension.",'Extension "{{name}}" has no settings to configure.':'Extension "{{name}}" has no settings to configure.','Settings for "{{name}}":':'Settings for "{{name}}":',"(workspace)":"(workspace)","(user)":"(user)","[not set]":"[not set]","[value stored in keychain]":"[value stored in keychain]","Value:":"Value:","Manage extension settings":"Manage extension settings","Manage extension settings.":"Manage extension settings.","You need to specify a command (set or list).":"You need to specify a command (set or list).","No plugins available in this marketplace.":"No plugins available in this marketplace.",'Select a plugin to install from marketplace "{{name}}":':'Select a plugin to install from marketplace "{{name}}":',"Plugin selection cancelled.":"Plugin selection cancelled.",'Select a plugin from "{{name}}"':'Select a plugin from "{{name}}"',"Use \u2191\u2193 or j/k to navigate, Enter to select, Escape to cancel":"Use \u2191\u2193 or j/k to navigate, Enter to select, Escape to cancel","{{count}} more above":"{{count}} more above","{{count}} more below":"{{count}} more below","manage IDE integration":"manage IDE integration","check status of IDE integration":"check status of IDE integration","enable IDE integration":"enable IDE integration","disable IDE integration":"disable IDE integration","IDE integration is not supported in your current environment. To use this feature, run Matilda in one of these supported IDEs: VS Code or VS Code forks.":"IDE integration is not supported in your current environment. To use this feature, run Matilda in one of these supported IDEs: VS Code or VS Code forks.","Configure terminal keybindings for multiline input (VS Code, Cursor, Windsurf, Trae, Windows Terminal)":"Configure terminal keybindings for multiline input (VS Code, Cursor, Windsurf, Trae, Windows Terminal)","Please restart your terminal for the changes to take effect.":"Please restart your terminal for the changes to take effect.","Failed to configure terminal: {{error}}":"Failed to configure terminal: {{error}}","Could not determine {{terminalName}} config path on Windows: APPDATA environment variable is not set.":"Could not determine {{terminalName}} config path on Windows: APPDATA environment variable is not set.","{{terminalName}} keybindings.json exists but is not a valid JSON array. Please fix the file manually or delete it to allow automatic configuration.":"{{terminalName}} keybindings.json exists but is not a valid JSON array. Please fix the file manually or delete it to allow automatic configuration.","File: {{file}}":"File: {{file}}","Failed to parse {{terminalName}} keybindings.json. The file contains invalid JSON. Please fix the file manually or delete it to allow automatic configuration.":"Failed to parse {{terminalName}} keybindings.json. The file contains invalid JSON. Please fix the file manually or delete it to allow automatic configuration.","Error: {{error}}":"Error: {{error}}","Shift+Enter binding already exists":"Shift+Enter binding already exists","Ctrl+Enter binding already exists":"Ctrl+Enter binding already exists","Existing keybindings detected. Will not modify to avoid conflicts.":"Existing keybindings detected. Will not modify to avoid conflicts.","Please check and modify manually if needed: {{file}}":"Please check and modify manually if needed: {{file}}","Added Shift+Enter and Ctrl+Enter keybindings to {{terminalName}}.":"Added Shift+Enter and Ctrl+Enter keybindings to {{terminalName}}.","Modified: {{file}}":"Modified: {{file}}","{{terminalName}} keybindings already configured.":"{{terminalName}} keybindings already configured.","Failed to configure {{terminalName}}.":"Failed to configure {{terminalName}}.","Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).":"Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).","Manage Matilda hooks":"Manage Matilda hooks","List all configured hooks":"List all configured hooks",Hooks:"Hooks","Loading hooks...":"Loading hooks...","Error loading hooks:":"Error loading hooks:","Press Escape to close":"Press Escape to close","Press Escape, Ctrl+C, or Ctrl+D to cancel":"Press Escape, Ctrl+C, or Ctrl+D to cancel","Press Space, Enter, or Escape to dismiss":"Press Space, Enter, or Escape to dismiss","No hook selected":"No hook selected","No hook events found.":"No hook events found.","{{count}} hook configured":"{{count}} hook configured","{{count}} hooks configured":"{{count}} hooks configured","This menu is read-only. To add or modify hooks, edit settings.json directly or ask Matilda.":"This menu is read-only. To add or modify hooks, edit settings.json directly or ask Matilda.","Enter to select \xB7 Esc to cancel":"Enter to select \xB7 Esc to cancel","Exit codes:":"Exit codes:","Configured hooks:":"Configured hooks:","No hooks configured for this event.":"No hooks configured for this event.","To add hooks, edit settings.json directly or ask Matilda.":"To add hooks, edit settings.json directly or ask Matilda.","Enter to select \xB7 Esc to go back":"Enter to select \xB7 Esc to go back","Hook details":"Hook details","Event:":"Event:","Extension:":"Extension:","Desc:":"Desc:","No hook config selected":"No hook config selected","To modify or remove this hook, edit settings.json directly or ask Matilda to help.":"To modify or remove this hook, edit settings.json directly or ask Matilda to help.","Hook Configuration - Disabled":"Hook Configuration - Disabled","All hooks are currently disabled. You have {{count}} that are not running.":"All hooks are currently disabled. You have {{count}} that are not running.","{{count}} configured hook":"{{count}} configured hook","{{count}} configured hooks":"{{count}} configured hooks","When hooks are disabled:":"When hooks are disabled:","No hook commands will execute":"No hook commands will execute","StatusLine will not be displayed":"StatusLine will not be displayed","Tool operations will proceed without hook validation":"Tool operations will proceed without hook validation",'To re-enable hooks, remove "disableAllHooks" from settings.json or ask Matilda.':'To re-enable hooks, remove "disableAllHooks" from settings.json or ask Matilda.',Project:"Project",User:"User",Skill:"Skill",System:"System",Extension:"Extension","Local Settings":"Local Settings","User Settings":"User Settings","System Settings":"System Settings",Extensions:"Extensions","Session (temporary)":"Session (temporary)","Before tool execution":"Before tool execution","After tool execution":"After tool execution","After tool execution fails":"After tool execution fails","When notifications are sent":"When notifications are sent","When the user submits a prompt":"When the user submits a prompt","When a slash command expands into a prompt":"When a slash command expands into a prompt","When a new session is started":"When a new session is started","Right before Matilda concludes its response":"Right before Matilda concludes its response","When a subagent (Agent tool call) is started":"When a subagent (Agent tool call) is started","Right before a subagent concludes its response":"Right before a subagent concludes its response","Before conversation compaction":"Before conversation compaction","When a session is ending":"When a session is ending","When a permission dialog is displayed":"When a permission dialog is displayed","When a new todo item is created":"When a new todo item is created","When a todo item is marked as completed":"When a todo item is marked as completed","Input to command is JSON of tool call arguments.":"Input to command is JSON of tool call arguments.",'Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).':'Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).',"Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.":"Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.","Input to command is JSON with notification message and type.":"Input to command is JSON with notification message and type.","Input to command is JSON with original user prompt text.":"Input to command is JSON with original user prompt text.","Input to command is JSON with command_name, command_args, and expanded prompt text.":"Input to command is JSON with command_name, command_args, and expanded prompt text.","Input to command is JSON with session start source.":"Input to command is JSON with session start source.","Input to command is JSON with session end reason.":"Input to command is JSON with session end reason.","Input to command is JSON with agent_id and agent_type.":"Input to command is JSON with agent_id and agent_type.","Input to command is JSON with agent_id, agent_type, and agent_transcript_path.":"Input to command is JSON with agent_id, agent_type, and agent_transcript_path.","Input to command is JSON with compaction details.":"Input to command is JSON with compaction details.","Input to command is JSON with tool_name, tool_input, and tool_use_id. Output JSON with hookSpecificOutput containing decision to allow or deny.":"Input to command is JSON with tool_name, tool_input, and tool_use_id. Output JSON with hookSpecificOutput containing decision to allow or deny.","Input to command is JSON with todo_id, todo_content, todo_status, all_todos, and phase. In validation, output JSON with decision (allow/block/deny) and reason. In postWrite, block/deny is ignored.":"Input to command is JSON with todo_id, todo_content, todo_status, all_todos, and phase. In validation, output JSON with decision (allow/block/deny) and reason. In postWrite, block/deny is ignored.","Input to command is JSON with todo_id, todo_content, previous_status, all_todos, and phase. In validation, output JSON with decision (allow/block/deny) and reason. In postWrite, block/deny is ignored.":"Input to command is JSON with todo_id, todo_content, previous_status, all_todos, and phase. In validation, output JSON with decision (allow/block/deny) and reason. In postWrite, block/deny is ignored.","stdout/stderr not shown":"stdout/stderr not shown","show stderr to model and continue conversation":"show stderr to model and continue conversation","show stderr to user only":"show stderr to user only","stdout shown in transcript mode (Ctrl+O)":"stdout shown in transcript mode (Ctrl+O)","show stderr to model immediately":"show stderr to model immediately","show stderr to user only but continue with tool call":"show stderr to user only but continue with tool call","block processing, erase original prompt, and show stderr to user only":"block processing, erase original prompt, and show stderr to user only","block expanded prompt submission and show stderr to user only":"block expanded prompt submission and show stderr to user only","stdout shown to Matilda":"stdout shown to Matilda","show stderr to user only (blocking errors ignored)":"show stderr to user only (blocking errors ignored)","command completes successfully":"command completes successfully","stdout shown to subagent":"stdout shown to subagent","show stderr to subagent and continue having it run":"show stderr to subagent and continue having it run","stdout appended as custom compact instructions":"stdout appended as custom compact instructions","block compaction":"block compaction","show stderr to user only but continue with compaction":"show stderr to user only but continue with compaction","use hook decision if provided":"use hook decision if provided","allow todo creation":"allow todo creation","block todo creation and show reason to model":"block todo creation and show reason to model","allow todo completion":"allow todo completion","block todo completion and show reason to model":"block todo completion and show reason to model","Config not loaded.":"Config not loaded.","Hooks are not enabled. Enable hooks in settings to use this feature.":"Hooks are not enabled. Enable hooks in settings to use this feature.","generate personalized programming insights from your chat history":"generate personalized programming insights from your chat history","Resume a previous session":"Resume a previous session","Fork the current conversation into a new session":"Fork the current conversation into a new session","Spawn a background agent that inherits the full conversation":"Spawn a background agent that inherits the full conversation","Please provide a directive. Usage: /fork <directive>":"Please provide a directive. Usage: /fork <directive>","Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.":"Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.","Cannot fork before the first conversation turn.":"Cannot fork before the first conversation turn.","The agent tool is unavailable; cannot fork.":"The agent tool is unavailable; cannot fork.","Failed to launch fork: {{error}}":"Failed to launch fork: {{error}}","the background agent could not be started.":"the background agent could not be started.","User launched a background fork via /fork: {{directive}}":"User launched a background fork via /fork: {{directive}}","Forked into a background agent. It inherits this conversation and runs without blocking \u2014 track it in the background tasks panel; it reports back when done.":"Forked into a background agent. It inherits this conversation and runs without blocking \u2014 track it in the background tasks panel; it reports back when done.","Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.":"Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.","No conversation to branch.":"No conversation to branch.","Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested":"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested","Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, Trae, and Windows Terminal.":"Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, Trae, and Windows Terminal.","Could not find Windows Terminal settings.json. Open Windows Terminal settings once to create the file, then run /terminal-setup again.":"Could not find Windows Terminal settings.json. Open Windows Terminal settings once to create the file, then run /terminal-setup again.","Windows Terminal settings.json exists but is not a valid JSON object. Please fix the file manually to allow automatic configuration.":"Windows Terminal settings.json exists but is not a valid JSON object. Please fix the file manually to allow automatic configuration.","Failed to parse Windows Terminal settings.json. The file contains invalid JSON. Please fix the file manually to allow automatic configuration.":"Failed to parse Windows Terminal settings.json. The file contains invalid JSON. Please fix the file manually to allow automatic configuration.",'Terminal "{{terminal}}" is not supported yet.':'Terminal "{{terminal}}" is not supported yet.',"Invalid language. Available: {{options}}":"Invalid language. Available: {{options}}","Language subcommands do not accept additional arguments.":"Language subcommands do not accept additional arguments.","Current UI language: {{lang}}":"Current UI language: {{lang}}","Current LLM output language: {{lang}}":"Current LLM output language: {{lang}}","Set UI language":"Set UI language","Set LLM output language":"Set LLM output language","Usage: /language ui [{{options}}]":"Usage: /language ui [{{options}}]","Usage: /language output <language>":"Usage: /language output <language>","Example: /language output English":"Example: /language output English","Example: /language output \u65E5\u672C\u8A9E":"Example: /language output \u65E5\u672C\u8A9E","UI language changed to {{lang}}":"UI language changed to {{lang}}","LLM output language set to {{lang}}":"LLM output language set to {{lang}}","Please restart the application for the changes to take effect.":"Please restart the application for the changes to take effect.","Failed to generate LLM output language rule file: {{error}}":"Failed to generate LLM output language rule file: {{error}}","Invalid command. Available subcommands:":"Invalid command. Available subcommands:","Available subcommands:":"Available subcommands:","To request additional UI language packs, please open an issue on GitHub.":"To request additional UI language packs, please open an issue on GitHub.","Available options:":"Available options:","Set UI language to {{name}}":"Set UI language to {{name}}","Tool Approval Mode":"Tool Approval Mode","Analyze only, do not modify files or execute commands":"Analyze only, do not modify files or execute commands","Require approval for file edits or shell commands":"Require approval for file edits or shell commands","Automatically approve file edits":"Automatically approve file edits","Use classifier to automatically approve safe tool calls":"Use classifier to automatically approve safe tool calls","BOGAN \u2014 approve every tool call with no prompts (you are on your own)":"BOGAN \u2014 approve every tool call with no prompts (you are on your own)","Workspace approval mode exists and takes priority. User-level change will have no effect.":"Workspace approval mode exists and takes priority. User-level change will have no effect.","Apply To":"Apply To","Workspace Settings":"Workspace Settings","Open auto-memory folder":"Open auto-memory folder","Auto-memory: {{status}}":"Auto-memory: {{status}}","Auto-dream: {{status}} \xB7 {{lastDream}} \xB7 /dream to run":"Auto-dream: {{status}} \xB7 {{lastDream}} \xB7 /dream to run","Auto-skill: {{status}}":"Auto-skill: {{status}}",never:"never",on:"on",off:"off","Remove matching entries from managed auto-memory.":"Remove matching entries from managed auto-memory.","Usage: /forget <memory text to remove>":"Usage: /forget <memory text to remove>","No managed auto-memory entries matched: {{query}}":"No managed auto-memory entries matched: {{query}}","Let auto-memory settle \u2014 consolidate topic files.":"Let auto-memory settle \u2014 consolidate topic files.","Import MCP servers from Claude configs":"Import MCP servers from Claude configs","Could not retrieve tool registry.":"Could not retrieve tool registry.","Successfully authenticated and refreshed tools for '{{name}}'.":"Successfully authenticated and refreshed tools for '{{name}}'.","Re-discovering tools from '{{name}}'...":"Re-discovering tools from '{{name}}'...","Discovered {{count}} tool(s) from '{{name}}'.":"Discovered {{count}} tool(s) from '{{name}}'.","Authentication complete. Returning to server details...":"Authentication complete. Returning to server details...","Authentication successful.":"Authentication successful.","Manage MCP servers":"Manage MCP servers","Server Detail":"Server Detail",Tools:"Tools","Tool Detail":"Tool Detail","Loading...":"Loading...","Unknown step":"Unknown step","Esc to back":"Esc to back","\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to close":"\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to close","\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to back":"\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to back","\u2191\u2193 to navigate \xB7 Enter to confirm \xB7 Esc to back":"\u2191\u2193 to navigate \xB7 Enter to confirm \xB7 Esc to back","User Settings (global)":"User Settings (global)","Workspace Settings (project-specific)":"Workspace Settings (project-specific)","Disable server:":"Disable server:","Select where to add the server to the exclude list:":"Select where to add the server to the exclude list:","Press Enter to confirm, Esc to cancel":"Press Enter to confirm, Esc to cancel","View tools":"View tools",Reconnect:"Reconnect",Enable:"Enable",Disable:"Disable",Authenticate:"Authenticate","Re-authenticate":"Re-authenticate","Clear Authentication":"Clear Authentication","Server:":"Server:","Command:":"Command:","Working Directory:":"Working Directory:","Last stderr output:":"Last stderr output:","No server selected":"No server selected",prompts:"prompts","Error:":"Error:",tool:"tool",tools:"tools",connected:"connected",connecting:"connecting",disconnected:"disconnected","User MCPs":"User MCPs","Project MCPs":"Project MCPs","Extension MCPs":"Extension MCPs",server:"server",servers:"servers","Add MCP servers to your settings to get started.":"Add MCP servers to your settings to get started.","Run matilda --debug to see error logs":"Run matilda --debug to see error logs","OAuth Authentication":"OAuth Authentication","Authenticating... Please complete the login in your browser.":"Authenticating... Please complete the login in your browser.","Press c to copy the authorization URL to your clipboard.":"Press c to copy the authorization URL to your clipboard.","Copy request sent to your terminal. If paste is empty, copy the URL above manually.":"Copy request sent to your terminal. If paste is empty, copy the URL above manually.","Cannot write to terminal \u2014 copy the URL above manually.":"Cannot write to terminal \u2014 copy the URL above manually.","No tools available for this server.":"No tools available for this server.",destructive:"destructive","read-only":"read-only","open-world":"open-world",idempotent:"idempotent","Tools for {{serverName}}":"Tools for {{serverName}}","{{current}}/{{total}}":"{{current}}/{{total}}",required:"required",Parameters:"Parameters","No tool selected":"No tool selected",Server:"Server","{{count}} invalid tools":"{{count}} invalid tools",invalid:"invalid","invalid: {{reason}}":"invalid: {{reason}}","missing name":"missing name","missing description":"missing description","(unnamed)":"(unnamed)","Warning: This tool cannot be called by the LLM":"Warning: This tool cannot be called by the LLM",Reason:"Reason","Tools must have both name and description to be used by the LLM.":"Tools must have both name and description to be used by the LLM.","Generate a project summary and save it to .matilda/PROJECT_SUMMARY.md":"Generate a project summary and save it to .matilda/PROJECT_SUMMARY.md","No chat client available to generate summary.":"No chat client available to generate summary.","Already generating summary, wait for previous request to complete":"Already generating summary, wait for previous request to complete","No conversation found to summarize.":"No conversation found to summarize.","Failed to generate project context summary: {{error}}":"Failed to generate project context summary: {{error}}","Saved project summary to {{filePathForDisplay}}.":"Saved project summary to {{filePathForDisplay}}.","Saving project summary...":"Saving project summary...","Generating project summary...":"Generating project summary...","Processing summary...":"Processing summary...","Project summary generated and saved successfully!":"Project summary generated and saved successfully!","Saved to: {{filePath}}":"Saved to: {{filePath}}","Failed to generate summary - no text content received from LLM response":"Failed to generate summary - no text content received from LLM response","Switch the model for this session (--fast for suggestion model, [model-id] to switch immediately).":"Switch the model for this session (--fast for suggestion model, [model-id] to switch immediately).","Set a lighter model for prompt suggestions and speculative execution":"Set a lighter model for prompt suggestions and speculative execution","Content generator configuration not available.":"Content generator configuration not available.","Authentication type not available.":"Authentication type not available.","No models available for the current authentication type ({{authType}}).":"No models available for the current authentication type ({{authType}})."," (not in model registry)":" (not in model registry)","Starting a new session, resetting chat, and clearing terminal.":"Starting a new session, resetting chat, and clearing terminal.","Starting a new session and clearing.":"Starting a new session and clearing.","Already compressing, wait for previous request to complete":"Already compressing, wait for previous request to complete","Failed to compress chat history.":"Failed to compress chat history.","Failed to compress chat history: {{error}}":"Failed to compress chat history: {{error}}","Compressing chat history":"Compressing chat history","Chat history compressed from {{originalTokens}} to {{newTokens}} tokens.":"Chat history compressed from {{originalTokens}} to {{newTokens}} tokens.","Compression was not beneficial for this history size.":"Compression was not beneficial for this history size.","Chat history compression did not reduce size. This may indicate issues with the compression prompt.":"Chat history compression did not reduce size. This may indicate issues with the compression prompt.","Could not compress chat history due to a token counting error.":"Could not compress chat history due to a token counting error.","Could not compress chat history: the summarizer timed out or failed. Try again, or continue chatting (auto-compact will retry).":"Could not compress chat history: the summarizer timed out or failed. Try again, or continue chatting (auto-compact will retry).","Could not compress chat history: the summarizer returned an empty summary. Try again.":"Could not compress chat history: the summarizer returned an empty summary. Try again.","Could not compress chat history: the summary hit the output length cap. Try again later or start a new session.":"Could not compress chat history: the summary hit the output length cap. Try again later or start a new session.","Configuration is not available.":"Configuration is not available.","Please provide at least one path to add.":"Please provide at least one path to add.","The /directory add command is not supported in restrictive sandbox profiles. Please use --include-directories when starting the session instead.":"The /directory add command is not supported in restrictive sandbox profiles. Please use --include-directories when starting the session instead.","Error adding '{{path}}': {{error}}":"Error adding '{{path}}': {{error}}","Successfully added MATILDA.md files from the following directories if there are:\n- {{directories}}":`Successfully added MATILDA.md files from the following directories if there are:
4
+ - {{directories}}`,"Error refreshing memory: {{error}}":"Error refreshing memory: {{error}}","Successfully added directories:\n- {{directories}}":`Successfully added directories:
5
+ - {{directories}}`,"Current workspace directories:\n{{directories}}":`Current workspace directories:
6
+ {{directories}}`,"Please open the following URL in your browser to view the documentation:\n{{url}}":`Please open the following URL in your browser to view the documentation:
7
+ {{url}}`,"Opening documentation in your browser: {{url}}":"Opening documentation in your browser: {{url}}","Do you want to proceed?":"Do you want to proceed?","Yes, allow once":"Yes, allow once","Allow always":"Allow always",Yes:"Yes",No:"No","No (Esc)":"No (Esc)","Modify in progress:":"Modify in progress:","Save and close external editor to continue":"Save and close external editor to continue","Apply this change?":"Apply this change?","Yes, allow always":"Yes, allow always","Modify with external editor":"Modify with external editor","No, suggest changes (Esc)":"No, suggest changes (Esc)","Allow execution of: '{{command}}'?":"Allow execution of: '{{command}}'?","Always allow in this project":"Always allow in this project","Always allow {{action}} in this project":"Always allow {{action}} in this project","Always allow for this user":"Always allow for this user","Always allow {{action}} for this user":"Always allow {{action}} for this user","Yes, restore previous mode ({{mode}})":"Yes, restore previous mode ({{mode}})","Yes, and auto-accept edits":"Yes, and auto-accept edits","Yes, and manually approve edits":"Yes, and manually approve edits","No, keep planning (Esc)":"No, keep planning (Esc)","URLs to fetch:":"URLs to fetch:","MCP Server: {{server}}":"MCP Server: {{server}}","Tool: {{tool}}":"Tool: {{tool}}",'Allow execution of MCP tool "{{tool}}" from server "{{server}}"?':'Allow execution of MCP tool "{{tool}}" from server "{{server}}"?',"Press {{keybind}} to change approval modes anytime":"Press {{keybind}} to change approval modes anytime","Shell Command Execution":"Shell Command Execution","A custom command wants to run the following shell commands:":"A custom command wants to run the following shell commands:","Current Plan:":"Current Plan:","Progress: {{done}}/{{total}} tasks completed":"Progress: {{done}}/{{total}} tasks completed",", {{inProgress}} in progress":", {{inProgress}} in progress","Pending Tasks:":"Pending Tasks:","What would you like to do?":"What would you like to do?","Choose how to proceed with your session:":"Choose how to proceed with your session:","Start new chat session":"Start new chat session","Continue previous conversation":"Continue previous conversation","\u{1F44B} Welcome back! (Last updated: {{timeAgo}})":"\u{1F44B} Welcome back! (Last updated: {{timeAgo}})","\u{1F3AF} Overall Goal:":"\u{1F3AF} Overall Goal:","Connect a Provider":"Connect a Provider","You must connect a provider to proceed. Press Ctrl+C again to exit.":"You must connect a provider to proceed. Press Ctrl+C again to exit.","Terms of Services and Privacy Notice":"Terms of Services and Privacy Notice","Matilda OAuth":"Matilda OAuth","Matilda OAuth free tier was discontinued on 2026-04-15. Please select a model from another provider or run /auth to switch.":"Matilda OAuth free tier was discontinued on 2026-04-15. Please select a model from another provider or run /auth to switch.","\n\u26A0 Matilda OAuth free tier was discontinued on 2026-04-15. Please select another option.\n":`
8
+ \u26A0 Matilda OAuth free tier was discontinued on 2026-04-15. Please select another option.
9
+ `,"For individual developers \xB7 Pay per model call \xB7 5-hour/weekly quotas":"For individual developers \xB7 Pay per model call \xB7 5-hour/weekly quotas",Subscribe:"Subscribe","Select Subscription Plan":"Select Subscription Plan","For teams/companies \xB7 Credits deducted by token usage \xB7 Dedicated API key and base URL":"For teams/companies \xB7 Credits deducted by token usage \xB7 Dedicated API key and base URL","Bring your own API key":"Bring your own API key","Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.":"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.","Matilda OAuth Authentication":"Matilda OAuth Authentication","Please visit this URL to authorize:":"Please visit this URL to authorize:","Waiting for authorization":"Waiting for authorization","Time remaining:":"Time remaining:","Matilda OAuth Authentication Timeout":"Matilda OAuth Authentication Timeout","OAuth token expired (over {{seconds}} seconds). Please select authentication method again.":"OAuth token expired (over {{seconds}} seconds). Please select authentication method again.","Press any key to return to authentication type selection.":"Press any key to return to authentication type selection.","Waiting for Matilda OAuth authentication...":"Waiting for Matilda OAuth authentication...","Authentication timed out. Please try again.":"Authentication timed out. Please try again.","Waiting for auth... (Press Esc or Ctrl+C to cancel)":"Waiting for auth... (Press Esc or Ctrl+C to cancel)","Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.":"Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.","Missing API key for OpenAI-compatible auth. Set the {{envKeyHint}} environment variable.":"Missing API key for OpenAI-compatible auth. Set the {{envKeyHint}} environment variable.","Invalid auth method selected.":"Invalid auth method selected.","Failed to authenticate. Message: {{message}}":"Failed to authenticate. Message: {{message}}","Authenticated successfully with {{authType}} credentials.":"Authenticated successfully with {{authType}} credentials.",'Invalid MATILDA_DEFAULT_AUTH_TYPE value: "{{value}}". Valid values are: {{validValues}}':'Invalid MATILDA_DEFAULT_AUTH_TYPE value: "{{value}}". Valid values are: {{validValues}}',"Select Model":"Select Model","API Key":"API Key","(default)":"(default)","(not set)":"(not set)",Modality:"Modality","Context Window":"Context Window",text:"text","text-only":"text-only",image:"image",pdf:"pdf",audio:"audio",video:"video","not set":"not set",none:"none",unknown:"unknown","Manage folder trust settings":"Manage folder trust settings","Manage permission rules":"Manage permission rules",Allow:"Allow",Ask:"Ask",Deny:"Deny",Workspace:"Workspace","Matilda won't ask before using allowed tools.":"Matilda won't ask before using allowed tools.","Matilda will ask before using these tools.":"Matilda will ask before using these tools.","Matilda is not allowed to use denied tools.":"Matilda is not allowed to use denied tools.","Manage trusted directories for this workspace.":"Manage trusted directories for this workspace.","Any use of the {{tool}} tool":"Any use of the {{tool}} tool","{{tool}} commands matching '{{pattern}}'":"{{tool}} commands matching '{{pattern}}'","From user settings":"From user settings","From project settings":"From project settings","From session":"From session","Project settings":"Project settings","Checked in at .matilda/settings.json":"Checked in at .matilda/settings.json","User settings":"User settings","Saved in at ~/.matilda/settings.json":"Saved in at ~/.matilda/settings.json","Add a new rule\u2026":"Add a new rule\u2026","Add {{type}} permission rule":"Add {{type}} permission rule","Permission rules are a tool name, optionally followed by a specifier in parentheses.":"Permission rules are a tool name, optionally followed by a specifier in parentheses.","e.g.,":"e.g.,",or:"or","Enter permission rule\u2026":"Enter permission rule\u2026","Enter to submit \xB7 Esc to cancel":"Enter to submit \xB7 Esc to cancel","Where should this rule be saved?":"Where should this rule be saved?","Enter to confirm \xB7 Esc to cancel":"Enter to confirm \xB7 Esc to cancel","Delete {{type}} rule?":"Delete {{type}} rule?","Are you sure you want to delete this permission rule?":"Are you sure you want to delete this permission rule?","Permissions:":"Permissions:","(\u2190/\u2192 or tab to cycle)":"(\u2190/\u2192 or tab to cycle)","Press \u2191\u2193 to navigate \xB7 Enter to select \xB7 Type to search \xB7 Esc to cancel":"Press \u2191\u2193 to navigate \xB7 Enter to select \xB7 Type to search \xB7 Esc to cancel","Search\u2026":"Search\u2026","Add directory\u2026":"Add directory\u2026","Add directory to workspace":"Add directory to workspace","Matilda can read files in the workspace, and make edits when auto-accept edits is on.":"Matilda can read files in the workspace, and make edits when auto-accept edits is on.","Matilda will be able to read files in this directory and make edits when auto-accept edits is on.":"Matilda will be able to read files in this directory and make edits when auto-accept edits is on.","Enter the path to the directory:":"Enter the path to the directory:","Enter directory path\u2026":"Enter directory path\u2026","Tab to complete \xB7 Enter to add \xB7 Esc to cancel":"Tab to complete \xB7 Enter to add \xB7 Esc to cancel","Remove directory?":"Remove directory?","Are you sure you want to remove this directory from the workspace?":"Are you sure you want to remove this directory from the workspace?"," (Original working directory)":" (Original working directory)"," (from settings)":" (from settings)","Directory does not exist.":"Directory does not exist.","Path is not a directory.":"Path is not a directory.","This directory is already in the workspace.":"This directory is already in the workspace.","Already covered by existing directory: {{dir}}":"Already covered by existing directory: {{dir}}","Using:":"Using:","{{count}} open file":"{{count}} open file","{{count}} open files":"{{count}} open files","(Ctrl+G to view)":"(Ctrl+G to view)","{{count}} {{name}} file":"{{count}} {{name}} file","{{count}} {{name}} files":"{{count}} {{name}} files","{{count}} MCP server":"{{count}} MCP server","{{count}} MCP servers":"{{count}} MCP servers","{{count}} Blocked":"{{count}} Blocked","(Alt+S to view)":"(Alt+S to view)","(Alt+S to toggle)":"(Alt+S to toggle)","Press Ctrl+C again to exit.":"Press Ctrl+C again to exit.","Press Ctrl+D again to exit.":"Press Ctrl+D again to exit.","Press Esc again to clear.":"Press Esc again to clear.","Press Enter (empty) to send now \xB7 \u2191 to edit":"Press Enter (empty) to send now \xB7 \u2191 to edit","Steering with queued message\u2026":"Steering with queued message\u2026","Request cancelled.":"Request cancelled.","The Goal is waiting. Send a message to continue.":"The Goal is waiting. Send a message to continue.","Paused because this computer went to sleep.":"Paused because this computer went to sleep.","No MCP servers configured.":"No MCP servers configured.","\u23F3 MCP servers are starting up ({{count}} initializing)...":"\u23F3 MCP servers are starting up ({{count}} initializing)...","Note: First startup may take longer. Tool availability will update automatically.":"Note: First startup may take longer. Tool availability will update automatically.","Configured MCP servers:":"Configured MCP servers:",Ready:"Ready","Starting... (first startup may take longer)":"Starting... (first startup may take longer)",Disconnected:"Disconnected","{{count}} tool":"{{count}} tool","{{count}} tools":"{{count}} tools","{{count}} prompt":"{{count}} prompt","{{count}} prompts":"{{count}} prompts","(from {{extensionName}})":"(from {{extensionName}})",OAuth:"OAuth","OAuth expired":"OAuth expired","OAuth not authenticated":"OAuth not authenticated","tools and prompts will appear when ready":"tools and prompts will appear when ready","{{count}} tools cached":"{{count}} tools cached","Tools:":"Tools:","Parameters:":"Parameters:","Prompts:":"Prompts:",Blocked:"Blocked","\u{1F4A1} Tips:":"\u{1F4A1} Tips:",Use:"Use","to show server and tool descriptions":"to show server and tool descriptions","to show tool parameter schemas":"to show tool parameter schemas","to hide descriptions":"to hide descriptions","to authenticate with OAuth-enabled servers":"to authenticate with OAuth-enabled servers",Press:"Press","to toggle tool descriptions on/off":"to toggle tool descriptions on/off","Starting OAuth authentication for MCP server '{{name}}'...":"Starting OAuth authentication for MCP server '{{name}}'...","Tips:":"Tips:","When the yarn gets long, /compress summarises history and frees context.":"When the yarn gets long, /compress summarises history and frees context.","Fresh start with /clear or /new \u2014 the previous yarn stays in history.":"Fresh start with /clear or /new \u2014 the previous yarn stays in history.","Something crook? /bug sends it to the maintainers.":"Something crook? /bug sends it to the maintainers.","Run any shell command with ! (e.g. !ls) without leaving Matilda.":"Run any shell command with ! (e.g. !ls) without leaving Matilda.","Type / for the command menu \u2014 Tab autocompletes slash commands and saved prompts.":"Type / for the command menu \u2014 Tab autocompletes slash commands and saved prompts.","Pick up where you left off with matilda --continue or matilda --resume.":"Pick up where you left off with matilda --continue or matilda --resume.","Cycle permission modes with Shift+Tab, or jump with /approval-mode (try bogan for full auto).":"Cycle permission modes with Shift+Tab, or jump with /approval-mode (try bogan for full auto).","Cycle permission modes with Tab, or jump straight with /approval-mode (try bogan for full auto).":"Cycle permission modes with Tab, or jump straight with /approval-mode (try bogan for full auto).","Try /insight for a personalised squiz at patterns in your chat history.":"Try /insight for a personalised squiz at patterns in your chat history.","Press Ctrl+O for compact mode \u2014 hide tool output for a cleaner view.":"Press Ctrl+O for compact mode \u2014 hide tool output for a cleaner view.","Drop a MATILDA.md in the project so Matilda keeps persistent context.":"Drop a MATILDA.md in the project so Matilda keeps persistent context.","Duck out of the main thread with /btw \u2014 quick side question, same chat.":"Duck out of the main thread with /btw \u2014 quick side question, same chat.","Context is almost full! Run /compress now or start /new to continue.":"Context is almost full! Run /compress now or start /new to continue.","Context is getting full. Use /compress to free up space.":"Context is getting full. Use /compress to free up space.","Conversation getting long? /compress rolls it up and frees context.":"Conversation getting long? /compress rolls it up and frees context.","Time for Matilda to sleep. Catchya!":"Time for Matilda to sleep. Catchya!","To continue this session, run":"To continue this session, run","Interaction Summary":"Interaction Summary","Session ID:":"Session ID:","Tool Calls:":"Tool Calls:","Success Rate:":"Success Rate:","User Agreement:":"User Agreement:",reviewed:"reviewed","Code Changes:":"Code Changes:",Performance:"Performance","Wall Time:":"Wall Time:","Agent Active:":"Agent Active:","API Time:":"API Time:","Tool Time:":"Tool Time:","Session Stats":"Session Stats","Model Usage":"Model Usage",Reqs:"Reqs","Input Tokens":"Input Tokens","Output Tokens":"Output Tokens","Savings Highlight:":"Savings Highlight:","of input tokens were served from the cache, reducing costs.":"of input tokens were served from the cache, reducing costs.","Tip: For a full token breakdown, run `/stats model`.":"Tip: For a full token breakdown, run `/stats model`.","Model Stats For Nerds":"Model Stats For Nerds","Tool Stats For Nerds":"Tool Stats For Nerds",Metric:"Metric",API:"API",Requests:"Requests",Errors:"Errors","Avg Latency":"Avg Latency",Tokens:"Tokens",Total:"Total",Prompt:"Prompt",Cached:"Cached",Thoughts:"Thoughts",Output:"Output","Nothing to show yet \u2014 no API calls this session.":"Nothing to show yet \u2014 no API calls this session.",'Unknown Aussie animal "{{name}}". Try: {{animals}}':'Unknown Aussie animal "{{name}}". Try: {{animals}}',"Show the {{animal}} hop":"Show the {{animal}} hop","Need a breather? /aussie hops a little Matilda easter egg across the terminal.":"Need a breather? /aussie hops a little Matilda easter egg across the terminal.","Themes with a bit of home: Wattle, Outback, Reef, Southern Cross \u2014 try /theme.":"Themes with a bit of home: Wattle, Outback, Reef, Southern Cross \u2014 try /theme.","Tool Name":"Tool Name",Calls:"Calls","Success Rate":"Success Rate","Avg Duration":"Avg Duration","User Decision Summary":"User Decision Summary","Total Reviewed Suggestions:":"Total Reviewed Suggestions:"," \xBB Accepted:":" \xBB Accepted:"," \xBB Rejected:":" \xBB Rejected:"," \xBB Modified:":" \xBB Modified:"," Overall Agreement Rate:":" Overall Agreement Rate:","No tool calls have been made in this session.":"No tool calls have been made in this session.","Session start time is unavailable, cannot calculate stats.":"Session start time is unavailable, cannot calculate stats.","Command Format Migration":"Command Format Migration","Found {{count}} TOML command file:":"Found {{count}} TOML command file:","Found {{count}} TOML command files:":"Found {{count}} TOML command files:","Current tasks":"Current tasks","Background tasks":"Background tasks","No tasks currently running":"No tasks currently running","No entry to show.":"No entry to show.","needs approval":"needs approval","Background agent needs approval":"Background agent needs approval","Approve or deny the request above":"Approve or deny the request above",Running:"Running",Paused:"Paused",Completed:"Completed",Failed:"Failed",Stopped:"Stopped",Shell:"Shell",Monitor:"Monitor",Command:"Command",Dream:"Dream","[dream] memory consolidation":"[dream] memory consolidation","[dream] memory consolidation (reviewing {{count}} session)":"[dream] memory consolidation (reviewing {{count}} session)","[dream] memory consolidation (reviewing {{count}} sessions)":"[dream] memory consolidation (reviewing {{count}} sessions)","{{count}} session":"{{count}} session","{{count}} sessions":"{{count}} sessions","{{count}} topic":"{{count}} topic","{{count}} topics":"{{count}} topics","{{count}} tokens":"{{count}} tokens","{{count}} tool call":"{{count}} tool call","{{count}} tool calls":"{{count}} tool calls","{{count}} event":"{{count}} event","{{count}} events":"{{count}} events","{{count}} dropped":"{{count}} dropped","pid {{pid}}":"pid {{pid}}","exit {{exitCode}}":"exit {{exitCode}}","Sessions reviewing":"Sessions reviewing",Progress:"Progress","Resume blocked":"Resume blocked","Working dir":"Working dir","Output file":"Output file","Topics touched ({{count}})":"Topics touched ({{count}})","{{count}} more":"{{count}} more","Lock release warning":"Lock release warning","Metadata write warning":"Metadata write warning","Subsequent dreams may be skipped as locked until the next session's staleness sweep cleans the file.":"Subsequent dreams may be skipped as locked until the next session's staleness sweep cleans the file.","The scheduler gate did not see this dream's timestamp; the next dream cycle may re-fire sooner than usual.":"The scheduler gate did not see this dream's timestamp; the next dream cycle may re-fire sooner than usual.","... and {{count}} more":"... and {{count}} more","The TOML format is deprecated. Would you like to migrate them to Markdown format?":"The TOML format is deprecated. Would you like to migrate them to Markdown format?","(Backups will be created and original files will be preserved)":"(Backups will be created and original files will be preserved)","Waiting for user confirmation...":"Waiting for user confirmation...",WITTY_LOADING_PHRASES:["Waltzing","Mustering","Fossicking","Noodling","Sussing","Squizzing","Stickybeaking","Yarning","Pottering","Beavering","Droving","Wrangling","Barracking","Reckoning","Cracking","Brewing","Sorting","Whittling","Figuring"],"Enter value...":"Enter value...","Enter sensitive value...":"Enter sensitive value...","Press Enter to submit, Escape to cancel":"Press Enter to submit, Escape to cancel","Markdown file already exists: {{filename}}":"Markdown file already exists: {{filename}}","TOML Command Format Deprecation Notice":"TOML Command Format Deprecation Notice","Found {{count}} command file(s) in TOML format:":"Found {{count}} command file(s) in TOML format:","The TOML format for commands is being deprecated in favor of Markdown format.":"The TOML format for commands is being deprecated in favor of Markdown format.","Markdown format is more readable and easier to edit.":"Markdown format is more readable and easier to edit.","You can migrate these files automatically using:":"You can migrate these files automatically using:","Or manually convert each file:":"Or manually convert each file:",'TOML: prompt = "..." / description = "..."':'TOML: prompt = "..." / description = "..."',"Markdown: YAML frontmatter + content":"Markdown: YAML frontmatter + content","The migration tool will:":"The migration tool will:","Convert TOML files to Markdown":"Convert TOML files to Markdown","Create backups of original files":"Create backups of original files","Preserve all command functionality":"Preserve all command functionality","TOML format will continue to work for now, but migration is recommended.":"TOML format will continue to work for now, but migration is recommended.","Open extensions page in your browser":"Open extensions page in your browser","Unknown extensions source: {{source}}.":"Unknown extensions source: {{source}}.","Would open extensions page in your browser: {{url}} (skipped in test environment)":"Would open extensions page in your browser: {{url}} (skipped in test environment)","View available extensions at {{url}}":"View available extensions at {{url}}","Opening extensions page in your browser: {{url}}":"Opening extensions page in your browser: {{url}}","Failed to open browser. Check out the extensions gallery at {{url}}":"Failed to open browser. Check out the extensions gallery at {{url}}","Retrying in {{seconds}} seconds\u2026 (attempt {{attempt}}/{{maxRetries}})":"Retrying in {{seconds}} seconds\u2026 (attempt {{attempt}}/{{maxRetries}})","Retrying in {{seconds}} seconds\u2026 (attempt {{attempt}})":"Retrying in {{seconds}} seconds\u2026 (attempt {{attempt}})","Press Ctrl+Y to retry":"Press Ctrl+Y to retry","No failed request to retry.":"No failed request to retry.","to retry last request":"to retry last request","API key cannot be empty.":"API key cannot be empty.","You can configure your API key and models in settings.json":"You can configure your API key and models in settings.json","Refer to the documentation for setup instructions":"Refer to the documentation for setup instructions",Custom:"Custom","Choose based on where your account is registered":"Choose based on where your account is registered","Context Usage":"Context Usage","% used":"% used","% context used":"% context used","Context exceeds limit! Use /compress or /clear to reduce.":"Context exceeds limit! Use /compress or /clear to reduce.","No API response yet. Send a message to see actual usage.":"No API response yet. Send a message to see actual usage.","Estimated pre-conversation overhead":"Estimated pre-conversation overhead","Context window":"Context window",tokens:"tokens",Used:"Used",Free:"Free","Autocompact buffer":"Autocompact buffer","Usage by category":"Usage by category","System prompt":"System prompt","Built-in tools":"Built-in tools","MCP tools":"MCP tools","Memory files":"Memory files",Skills:"Skills",Messages:"Messages","Run /context detail for per-item breakdown.":"Run /context detail for per-item breakdown.",'Show context window usage breakdown. Use "/context detail" for per-item breakdown.':'Show context window usage breakdown. Use "/context detail" for per-item breakdown.',"body loaded":"body loaded",memory:"memory","Type something...":"Type something...",Submit:"Submit","Submit answers":"Submit answers",Cancel:"Cancel","Your answers:":"Your answers:","(not answered)":"(not answered)","Ready to submit your answers?":"Ready to submit your answers?","\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select":"\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select","\u2191/\u2193: Navigate | Enter: Select | Esc: Cancel":"\u2191/\u2193: Navigate | Enter: Select | Esc: Cancel","Authenticate using Matilda OAuth":"Authenticate using Matilda OAuth","Show current authentication status":"Show current authentication status","Authentication completed successfully.":"Authentication completed successfully.","Starting Matilda OAuth authentication...":"Starting Matilda OAuth authentication...","Successfully authenticated with Matilda OAuth.":"Successfully authenticated with Matilda OAuth.","Failed to authenticate with Matilda OAuth: {{error}}":"Failed to authenticate with Matilda OAuth: {{error}}",Global:"Global","Select authentication method:":"Select authentication method:","\n=== Authentication Status ===\n":`
10
+ === Authentication Status ===
11
+ `,"\u26A0\uFE0F No authentication method configured.\n":`\u26A0\uFE0F No authentication method configured.
12
+ `,"Run one of the following commands to get started:\n":`Run one of the following commands to get started:
13
+ `," matilda auth matilda-oauth - Authenticate with Matilda OAuth (discontinued)":" matilda auth matilda-oauth - Authenticate with Matilda OAuth (discontinued)","Or simply run:":"Or simply run:"," matilda auth - Interactive authentication setup\n":` matilda auth - Interactive authentication setup
14
+ `,"\u2713 Authentication Method: Matilda OAuth":"\u2713 Authentication Method: Matilda OAuth"," Type: Free tier (discontinued 2026-04-15)":" Type: Free tier (discontinued 2026-04-15)"," Limit: No longer available":" Limit: No longer available"," Current Model: {{model}}":" Current Model: {{model}}"," Config Version: {{version}}":" Config Version: {{version}}"," Status: API key configured\n":` Status: API key configured
15
+ `," Issue: API key not found in environment or settings\n":` Issue: API key not found in environment or settings
16
+ `,"\u2713 Authentication Method: {{type}}":"\u2713 Authentication Method: {{type}}"," Status: Configured\n":` Status: Configured
17
+ `,"Failed to check authentication status: {{error}}":"Failed to check authentication status: {{error}}","Select an option:":"Select an option:","Raw mode not available. Please run in an interactive terminal.":"Raw mode not available. Please run in an interactive terminal.","(Use \u2191 \u2193 arrows to navigate, Enter to select, Ctrl+C to exit)\n":`(Use \u2191 \u2193 arrows to navigate, Enter to select, Ctrl+C to exit)
18
+ `,"Hide tool output for a cleaner view (toggle with Ctrl+O).":"Hide tool output for a cleaner view (toggle with Ctrl+O).","Press Ctrl+O to show full tool output":"Press Ctrl+O to show full tool output","Switch to plan mode or exit plan mode":"Switch to plan mode or exit plan mode","Set a goal \u2014 keep working until the condition is met (pause/resume/clear)":"Set a goal \u2014 keep working until the condition is met (pause/resume/clear)","Exited plan mode. Previous approval mode restored.":"Exited plan mode. Previous approval mode restored.","Enabled plan mode. The agent will analyze and plan without executing tools.":"Enabled plan mode. The agent will analyze and plan without executing tools.",'Already in plan mode. Use "/plan exit" to exit plan mode.':'Already in plan mode. Use "/plan exit" to exit plan mode.','Not in plan mode. Use "/plan" to enter plan mode first.':'Not in plan mode. Use "/plan" to enter plan mode first.',"Set up Matilda's status line UI":"Set up Matilda's status line UI","Open the memory manager.":"Open the memory manager.","Turn model thinking on or off for this session":"Turn model thinking on or off for this session","Show current process memory diagnostics":"Show current process memory diagnostics","Record a CPU profile for Chrome DevTools analysis":"Record a CPU profile for Chrome DevTools analysis","Roll back a standalone update to the previous version":"Roll back a standalone update to the previous version","Rollback is not available in ACP mode.":"Rollback is not available in ACP mode.","Rollback is only available for standalone installations.":"Rollback is only available for standalone installations.","Rollback successful. Restart your terminal to use the previous version.":"Rollback successful. Restart your terminal to use the previous version.","Rollback failed:":"Rollback failed:","Rollback on Windows requires manual intervention. Rename matilda-code.old to matilda-code in your installation directory.":"Rollback on Windows requires manual intervention. Rename matilda-code.old to matilda-code in your installation directory.","Save a durable memory to the memory system.":"Save a durable memory to the memory system.","Quick side question without derailing the main yarn":"Quick side question without derailing the main yarn","Loading suggestions...":"Loading suggestions...","Show per-item context usage breakdown.":"Show per-item context usage breakdown.","No compression needed.":"No compression needed.","Session duration: {{duration}}":"Session duration: {{duration}}","Prompts: {{count}}":"Prompts: {{count}}","API requests: {{count}}":"API requests: {{count}}","Tokens \u2014 prompt: {{prompt}}, output: {{output}}":"Tokens \u2014 prompt: {{prompt}}, output: {{output}}","Tool calls: {{total}} ({{success}} ok, {{fail}} fail)":"Tool calls: {{total}} ({{success}} ok, {{fail}} fail)","Files: +{{added}} / -{{removed}} lines":"Files: +{{added}} / -{{removed}} lines",prompt:"prompt",output:"output",cached:"cached","Estimated cost: ${{cost}}":"Estimated cost: ${{cost}}","No model usage data yet.":"No model usage data yet.","No tool usage data yet.":"No tool usage data yet.",Models:"Models","All time":"All time","Last 7 days":"Last 7 days","Last 30 days":"Last 30 days","N/A":"N/A",Sessions:"Sessions",days:"days",Input:"Input","Tool calls":"Tool calls","Code changes":"Code changes",Projects:"Projects",Name:"Name",Duration:"Duration","Activity Heatmap":"Activity Heatmap","Loading stats...":"Loading stats...",Cost:"Cost",Less:"Less",More:"More","(no data)":"(no data)",d:"d",h:"h",m:"m","tab \xB7 esc":"tab \xB7 esc","tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc":"tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc","tab \xB7 r dates \xB7 esc":"tab \xB7 r dates \xB7 esc",Session:"Session",Activity:"Activity",Efficiency:"Efficiency",Success:"Success",Today:"Today","Cache Hit Rate":"Cache Hit Rate","Tool Success":"Tool Success","Tool Leaderboard":"Tool Leaderboard",Time:"Time",Cache:"Cache",Latency:"Latency","Code Impact":"Code Impact","Failed to load stats. Press r to retry.":"Failed to load stats. Press r to retry.",net:"net",streak:"streak",best:"best","Token Trend":"Token Trend","In/Out":"In/Out","API Requests":"API Requests","Tool Calls":"Tool Calls","Success rate":"Success rate","Code Changes":"Code Changes",Tool:"Tool",reqs:"reqs",in:"in",out:"out","Choose which Matilda organisation pays for new requests.":"Choose which Matilda organisation pays for new requests.",Personal:"Personal","Organisation payer":"Organisation payer","Reading your organisations\u2026":"Reading your organisations\u2026","Could not read your organisations.":"Could not read your organisations.","Your account belongs to no organisations.":"Your account belongs to no organisations.","(Use Enter to select, Esc to cancel)":"(Use Enter to select, Esc to cancel)","Organisation payer cleared. New requests bill to your personal account.":"Organisation payer cleared. New requests bill to your personal account.","Organisation payer set to {{name}}. New requests bill to it.":"Organisation payer set to {{name}}. New requests bill to it.","That organisation is no longer available to your account.":"That organisation is no longer available to your account.","Show your account, organisation, server and version.":"Show your account, organisation, server and version.","Show your Matilda account quota and usage.":"Show your Matilda account quota and usage.","Account usage":"Account usage","Reading your usage\u2026":"Reading your usage\u2026","Could not read your usage.":"Could not read your usage.","Usage is unavailable: {{reason}}.":"Usage is unavailable: {{reason}}.","{{payer}} \xB7 Tier: {{tier}}":"{{payer}} \xB7 Tier: {{tier}}","Resets {{when}}":"Resets {{when}}","in {{duration}}":"in {{duration}}",now:"now","(Esc to close)":"(Esc to close)"};export{t as default};
19
+ /**
20
+ * @license
21
+ * Copyright 2025 Maincode
22
+ * SPDX-License-Identifier: Apache-2.0
23
+ */
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{Bc as s,Bd as T,yc as W}from"./chunk-7YEKK577.js";import"./chunk-HRCRNKY2.js";import"./chunk-ZSGBDQXU.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DEN6RR3B.js";import"./chunk-RH3AEZWO.js";import"./chunk-UICLGQTV.js";import"./chunk-A5QKQKJW.js";import"./chunk-YY64FVJG.js";import"./chunk-SMTY6M3W.js";import"./chunk-QXSBPCBA.js";import"./chunk-ZABAV4XA.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-5JCW6FH6.js";import"./chunk-BSSOFLAZ.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-S6SR7XG2.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import"./chunk-6T25BBKH.js";import"./chunk-IV6PS6DB.js";import"./chunk-6RK6IJY5.js";import"./chunk-LONWTJOE.js";import"./chunk-TKEFJ3O3.js";import"./chunk-7AEOFDY3.js";import"./chunk-XPVKH5TC.js";import{f as $,g as E,m,n as R}from"./chunk-KYNP66YS.js";import{Y as b}from"./chunk-AEYNMLMW.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as y}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";y();var o=b("ENTER_WORKTREE"),P=`Creates an isolated git worktree at \`<projectRoot>/.matilda/worktrees/<slug>\` and returns its absolute path so subsequent file edits, shell commands, and other tools can operate inside it.
3
+ import{nc as W,qc as s,qd as T}from"./chunk-3IG6LNQ3.js";import"./chunk-FY3LL4OC.js";import"./chunk-BQDEPKIG.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DZKI2CAC.js";import"./chunk-ZUQRP3N6.js";import"./chunk-OWEBLTAN.js";import"./chunk-VWE5BSHV.js";import"./chunk-L2FKLLEC.js";import"./chunk-N2BE647T.js";import"./chunk-QXSBPCBA.js";import"./chunk-HRD7WD3P.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-55YW6EUC.js";import"./chunk-REUZDMLM.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-3BT7ZYAM.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import"./chunk-OF7ORAN6.js";import"./chunk-HJK3NKAR.js";import"./chunk-46FFWNRO.js";import"./chunk-BS7Q7KA6.js";import"./chunk-MZ73LBEY.js";import"./chunk-PFXCFIHY.js";import"./chunk-XPVKH5TC.js";import{f as $,g as E,m,n as R}from"./chunk-P24OL22U.js";import{ea as b}from"./chunk-WL27X35X.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as y}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";y();var o=b("ENTER_WORKTREE"),P=`Creates an isolated git worktree at \`<projectRoot>/.matilda/worktrees/<slug>\` and returns its absolute path so subsequent file edits, shell commands, and other tools can operate inside it.
4
4
 
5
5
  ## When to Use
6
6
 
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{$c as r}from"./chunk-7YEKK577.js";import"./chunk-HRCRNKY2.js";import"./chunk-ZSGBDQXU.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DEN6RR3B.js";import"./chunk-RH3AEZWO.js";import"./chunk-UICLGQTV.js";import"./chunk-A5QKQKJW.js";import"./chunk-YY64FVJG.js";import"./chunk-SMTY6M3W.js";import"./chunk-QXSBPCBA.js";import"./chunk-ZABAV4XA.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-5JCW6FH6.js";import"./chunk-BSSOFLAZ.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-S6SR7XG2.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import"./chunk-6T25BBKH.js";import"./chunk-IV6PS6DB.js";import"./chunk-6RK6IJY5.js";import"./chunk-LONWTJOE.js";import"./chunk-TKEFJ3O3.js";import"./chunk-7AEOFDY3.js";import"./chunk-XPVKH5TC.js";import{f as m,g as u,m as d,n as c}from"./chunk-KYNP66YS.js";import{Y as p}from"./chunk-AEYNMLMW.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as l}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";l();var y=p("ENTER_PLAN_MODE"),g=`Use this tool to lower into plan mode before doing uncertain or complex work. Entering plan mode is a privilege reduction, so it does not require user confirmation.
3
+ import{Qc as r}from"./chunk-3IG6LNQ3.js";import"./chunk-FY3LL4OC.js";import"./chunk-BQDEPKIG.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DZKI2CAC.js";import"./chunk-ZUQRP3N6.js";import"./chunk-OWEBLTAN.js";import"./chunk-VWE5BSHV.js";import"./chunk-L2FKLLEC.js";import"./chunk-N2BE647T.js";import"./chunk-QXSBPCBA.js";import"./chunk-HRD7WD3P.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-55YW6EUC.js";import"./chunk-REUZDMLM.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-3BT7ZYAM.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import"./chunk-OF7ORAN6.js";import"./chunk-HJK3NKAR.js";import"./chunk-46FFWNRO.js";import"./chunk-BS7Q7KA6.js";import"./chunk-MZ73LBEY.js";import"./chunk-PFXCFIHY.js";import"./chunk-XPVKH5TC.js";import{f as m,g as u,m as d,n as c}from"./chunk-P24OL22U.js";import{ea as p}from"./chunk-WL27X35X.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as l}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";l();var y=p("ENTER_PLAN_MODE"),g=`Use this tool to lower into plan mode before doing uncertain or complex work. Entering plan mode is a privilege reduction, so it does not require user confirmation.
4
4
 
5
5
  ## When to Use This Tool
6
6
  Use this tool when the task is not yet clear enough to safely execute, for example when it requires multi-file changes, design choices, investigation before a plan can be summarized, or when requirements are ambiguous. While investigating, if complexity rises or you find yourself repeatedly needing to ask the user, enter plan mode and consolidate a plan.
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{Ad as C,Bc as l,Cd as x,xc as k,zc as W}from"./chunk-7YEKK577.js";import"./chunk-HRCRNKY2.js";import"./chunk-ZSGBDQXU.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DEN6RR3B.js";import"./chunk-RH3AEZWO.js";import"./chunk-UICLGQTV.js";import"./chunk-A5QKQKJW.js";import"./chunk-YY64FVJG.js";import"./chunk-SMTY6M3W.js";import"./chunk-QXSBPCBA.js";import"./chunk-ZABAV4XA.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-5JCW6FH6.js";import"./chunk-BSSOFLAZ.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-S6SR7XG2.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import"./chunk-6T25BBKH.js";import"./chunk-IV6PS6DB.js";import"./chunk-6RK6IJY5.js";import"./chunk-LONWTJOE.js";import"./chunk-TKEFJ3O3.js";import"./chunk-7AEOFDY3.js";import"./chunk-XPVKH5TC.js";import{f as E,g as R,m as c,n as T}from"./chunk-KYNP66YS.js";import{Y as b,c as $}from"./chunk-AEYNMLMW.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as y}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";y();import*as S from"node:fs/promises";var h=b("EXIT_WORKTREE"),O=`Exits a worktree previously created by ${c.ENTER_WORKTREE}.
3
+ import{mc as k,oc as W,pd as C,qc as l,rd as x}from"./chunk-3IG6LNQ3.js";import"./chunk-FY3LL4OC.js";import"./chunk-BQDEPKIG.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DZKI2CAC.js";import"./chunk-ZUQRP3N6.js";import"./chunk-OWEBLTAN.js";import"./chunk-VWE5BSHV.js";import"./chunk-L2FKLLEC.js";import"./chunk-N2BE647T.js";import"./chunk-QXSBPCBA.js";import"./chunk-HRD7WD3P.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-55YW6EUC.js";import"./chunk-REUZDMLM.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-3BT7ZYAM.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import"./chunk-FPGKJJJY.js";import"./chunk-OF7ORAN6.js";import"./chunk-HJK3NKAR.js";import"./chunk-46FFWNRO.js";import"./chunk-BS7Q7KA6.js";import"./chunk-MZ73LBEY.js";import"./chunk-PFXCFIHY.js";import"./chunk-XPVKH5TC.js";import{f as E,g as R,m as c,n as T}from"./chunk-P24OL22U.js";import{c as $,ea as b}from"./chunk-WL27X35X.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as y}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";y();import*as S from"node:fs/promises";var h=b("EXIT_WORKTREE"),O=`Exits a worktree previously created by ${c.ENTER_WORKTREE}.
4
4
 
5
5
  ## Behavior
6
6
 
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{a as S}from"./chunk-ILBTI4K5.js";import{$c as b,Kc as F,tc as D,zd as O}from"./chunk-7YEKK577.js";import"./chunk-HRCRNKY2.js";import"./chunk-ZSGBDQXU.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DEN6RR3B.js";import"./chunk-RH3AEZWO.js";import"./chunk-UICLGQTV.js";import"./chunk-A5QKQKJW.js";import"./chunk-YY64FVJG.js";import"./chunk-SMTY6M3W.js";import"./chunk-QXSBPCBA.js";import"./chunk-ZABAV4XA.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-5JCW6FH6.js";import"./chunk-BSSOFLAZ.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-S6SR7XG2.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import{n as $}from"./chunk-FPGKJJJY.js";import"./chunk-6T25BBKH.js";import"./chunk-IV6PS6DB.js";import"./chunk-6RK6IJY5.js";import"./chunk-LONWTJOE.js";import"./chunk-TKEFJ3O3.js";import"./chunk-7AEOFDY3.js";import"./chunk-XPVKH5TC.js";import{f as x,g as R,m as M,n as C}from"./chunk-KYNP66YS.js";import{Y as y}from"./chunk-AEYNMLMW.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as v}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";v();v();v();var G=y("GATE_REVIEW_AGENTS");function ee(e){return`You are a Plan Design Reviewer for the Plan Approval Gate. Review the plan across three dimensions:
3
+ import{a as S}from"./chunk-ILBTI4K5.js";import{Qc as b,ic as D,od as O,zc as F}from"./chunk-3IG6LNQ3.js";import"./chunk-FY3LL4OC.js";import"./chunk-BQDEPKIG.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-DZKI2CAC.js";import"./chunk-ZUQRP3N6.js";import"./chunk-OWEBLTAN.js";import"./chunk-VWE5BSHV.js";import"./chunk-L2FKLLEC.js";import"./chunk-N2BE647T.js";import"./chunk-QXSBPCBA.js";import"./chunk-HRD7WD3P.js";import"./chunk-V6UPUMP3.js";import"./chunk-5B2QERWR.js";import"./chunk-55YW6EUC.js";import"./chunk-REUZDMLM.js";import"./chunk-7ZODGQO6.js";import"./chunk-GT6MSEK4.js";import"./chunk-3BT7ZYAM.js";import"./chunk-225CZWD7.js";import"./chunk-LBQNFSZ2.js";import{n as $}from"./chunk-FPGKJJJY.js";import"./chunk-OF7ORAN6.js";import"./chunk-HJK3NKAR.js";import"./chunk-46FFWNRO.js";import"./chunk-BS7Q7KA6.js";import"./chunk-MZ73LBEY.js";import"./chunk-PFXCFIHY.js";import"./chunk-XPVKH5TC.js";import{f as x,g as R,m as M,n as C}from"./chunk-P24OL22U.js";import{ea as y}from"./chunk-WL27X35X.js";import"./chunk-UM6CLO7D.js";import"./chunk-HEJO7OBH.js";import{b as v}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";v();v();v();var G=y("GATE_REVIEW_AGENTS");function ee(e){return`You are a Plan Design Reviewer for the Plan Approval Gate. Review the plan across three dimensions:
4
4
 
5
5
  1. **Request Fit** \u2014 Does the plan fulfill every part of the user's original request and respect all explicit constraints? Does it do anything the user explicitly asked NOT to do?
6
6
  2. **System Fit** \u2014 Does the plan align with the codebase structure, file paths, function names, permission model, and integration boundaries found during investigation?