@maincode-ai/matilda-code 0.21.11 → 0.21.13-nightly.20261026.e0eae1d8c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/mainy/SKILL.md +0 -2
- package/bundled/mainy/docs/_meta.ts +0 -2
- package/bundled/mainy/docs/configuration/auth.md +5 -10
- package/bundled/mainy/docs/configuration/model-providers.md +31 -217
- package/bundled/mainy/docs/configuration/settings.md +48 -9
- package/bundled/mainy/docs/configuration/trusted-folders.md +12 -6
- package/bundled/mainy/docs/features/auto-mode.md +1 -1
- package/bundled/mainy/docs/features/channels/_meta.ts +0 -3
- package/bundled/mainy/docs/features/channels/overview.md +8 -16
- package/bundled/mainy/docs/features/commands.md +4 -4
- package/bundled/mainy/docs/features/hooks.md +9 -7
- package/bundled/mainy/docs/features/language.md +2 -29
- package/bundled/mainy/docs/features/sub-agents.md +1 -1
- package/bundled/mainy/docs/features/worktree.md +3 -5
- package/bundled/mainy/docs/integration-github-action.md +3 -3
- package/bundled/mainy/docs/matilda-serve.md +1 -1
- package/bundled/mainy/docs/quickstart.md +2 -2
- package/bundled/mainy/docs/support/troubleshooting.md +3 -10
- package/chunks/agent-4FTU3WN6.js +3 -0
- package/chunks/agent-headless-QJUVHPFC.js +3 -0
- package/chunks/{askUserQuestion-XWHJY3DM.js → askUserQuestion-QKX4NEFX.js} +1 -1
- package/chunks/{ca-EUJBUYX5.js → ca-C2V7I65K.js} +6 -6
- package/chunks/{chunk-T4P4KEDW.js → chunk-2ONZZ46N.js} +2 -2
- package/chunks/chunk-36K4HBVM.js +7 -0
- package/chunks/{chunk-EQGA7LH7.js → chunk-3B2HABK7.js} +1 -1
- package/chunks/{chunk-5427BPR2.js → chunk-5NMK4Y7C.js} +1 -1
- package/chunks/chunk-5YT4GCK7.js +14 -0
- package/chunks/{chunk-MH2P4YXC.js → chunk-62AFAL4I.js} +10 -10
- package/chunks/chunk-75KP2FVD.js +81 -0
- package/chunks/chunk-7ZODGQO6.js +4 -0
- package/chunks/chunk-BZB7HYRC.js +37 -0
- package/chunks/{chunk-WHG6N5X2.js → chunk-EXNHJQCD.js} +1 -1
- package/chunks/chunk-FCGYRGV4.js +9 -0
- package/chunks/chunk-G4YMVWG4.js +8 -0
- package/chunks/{chunk-4FVBPNTZ.js → chunk-HDARIAVM.js} +1 -1
- package/chunks/{chunk-4YVN5HXG.js → chunk-HM5LCKDB.js} +2 -2
- package/chunks/chunk-IIQ5YERM.js +120 -0
- package/chunks/chunk-JGJ7BVZN.js +101 -0
- package/chunks/{chunk-FFFZ2QMG.js → chunk-JIKQI4MZ.js} +1 -1
- package/chunks/{chunk-SPW5DXX4.js → chunk-LHDCAN7Z.js} +1 -1
- package/chunks/chunk-LZDHANXA.js +89 -0
- package/chunks/{chunk-ELH4YHJR.js → chunk-NOE4UNQN.js} +1 -1
- package/chunks/chunk-OEZS5R3S.js +207 -0
- package/chunks/{chunk-OOEH6ZSV.js → chunk-PTMCLADZ.js} +1 -1
- package/chunks/{chunk-NYEWHSBL.js → chunk-PYZNGIIR.js} +1 -1
- package/chunks/chunk-QJJTUDDA.js +56 -0
- package/chunks/{chunk-GO2GA2GY.js → chunk-R34HYLL4.js} +1 -1
- package/chunks/{chunk-Q55AVE2N.js → chunk-RK4LPGBV.js} +11 -11
- package/chunks/{chunk-JXUDKX6D.js → chunk-RYHMPK5G.js} +1 -1
- package/chunks/chunk-SR7ARGUY.js +13 -0
- package/chunks/chunk-SY6JRCN3.js +2612 -0
- package/chunks/chunk-TUKNB5CQ.js +33 -0
- package/chunks/{chunk-YMIF2DMT.js → chunk-TZ4FRU6B.js} +1 -1
- package/chunks/chunk-U7V7APDV.js +9 -0
- package/chunks/{chunk-SNLH42QJ.js → chunk-UVWZ44ZW.js} +1 -1
- package/chunks/{chunk-HYVP4472.js → chunk-V6UPUMP3.js} +1 -1
- package/chunks/{chunk-4CSSDBOS.js → chunk-VLDZBRTL.js} +10 -10
- package/chunks/{computer-use-SXP25RZQ.js → computer-use-OXAMR75N.js} +1 -1
- package/chunks/contextCommand-ERLW5VWL.js +3 -0
- package/chunks/{cron-create-2UI4AT4Q.js → cron-create-AUDQ6STP.js} +1 -1
- package/chunks/{cron-delete-ZB6BOTFF.js → cron-delete-P5HE3PDD.js} +1 -1
- package/chunks/{cron-list-YYAXNHB6.js → cron-list-NR5FZBK2.js} +1 -1
- package/chunks/{de-DNEPG7S7.js → de-KOUI2CEW.js} +6 -6
- package/chunks/{devtools-5JRKK3E7.js → devtools-G5DWLP2N.js} +1 -1
- package/chunks/dist-XXTQNTKQ.js +42 -0
- package/chunks/dist-ZFZZLIQU.js +3 -0
- package/chunks/edit-REFR5ROS.js +43 -0
- package/chunks/{en-NOD6KQNM.js → en-RMYRLXC2.js} +4 -4
- package/chunks/{enter-worktree-X47BSJLE.js → enter-worktree-WO3DT2G7.js} +1 -1
- package/chunks/{enterPlanMode-F22ZNTYJ.js → enterPlanMode-PLRHEU5A.js} +1 -1
- package/chunks/{exit-worktree-XY5UMDHX.js → exit-worktree-J5PW6DCV.js} +1 -1
- package/chunks/exitPlanMode-KXUPNLCJ.js +120 -0
- package/chunks/{fr-2OE5WLJ4.js → fr-R3QF3LA2.js} +5 -5
- package/chunks/glob-ZVTVRDQO.js +22 -0
- package/chunks/{goal-tools-6QTC3UI7.js → goal-tools-XVKQJL5I.js} +1 -1
- package/chunks/{grep-6TTPZ524.js → grep-R7CWUNNE.js} +1 -1
- package/chunks/{ja-3B6V5KS7.js → ja-A5OQLXUZ.js} +6 -6
- package/chunks/{keychain-token-storage-54BNK6VH.js → keychain-token-storage-IM4UB4P4.js} +1 -1
- package/chunks/{ls-YWZU3FYL.js → ls-DEAFYDVV.js} +1 -1
- package/chunks/{lsp-4CJDKEEC.js → lsp-DL7W47VY.js} +1 -1
- package/chunks/matildaAgentContentGenerator-57EIU5XE.js +8 -0
- package/chunks/mcp-client-X7LEGSP3.js +3 -0
- package/chunks/monitor-KPWTMH3V.js +32 -0
- package/chunks/{multipart-parser-JI75T2O5.js → multipart-parser-FKHYAVGR.js} +1 -1
- package/chunks/notebook-edit-3ZH5M2TC.js +17 -0
- package/chunks/openaiContentGenerator-6PXSD3T7.js +37 -0
- package/chunks/{pt-KP2JCPUY.js → pt-RG3S3KA7.js} +6 -6
- package/chunks/read-file-JNS7WRUP.js +3 -0
- package/chunks/ripGrep-ICJDGIIV.js +3 -0
- package/chunks/{ru-K7IQQKHC.js → ru-5S5HLRT7.js} +5 -5
- package/chunks/scheduler-QC2PPMFP.js +8 -0
- package/chunks/{send-message-OO2HAKCC.js → send-message-V2WYLN5X.js} +1 -1
- package/chunks/{serve-ZQX2WBLF.js → serve-NUVQULZJ.js} +59 -48
- package/chunks/shell-5LNI7URE.js +3 -0
- package/chunks/{skill-KDM3UUML.js → skill-QFATRHQW.js} +1 -1
- package/chunks/src-6UPZ7TVB.js +3 -0
- package/chunks/src-LZEU4AYF.js +5 -0
- package/chunks/{symbol-search-ALYOX5JN.js → symbol-search-WL6ZHUUN.js} +1 -1
- package/chunks/{syntheticOutput-UASKABJH.js → syntheticOutput-3KW6SQAF.js} +1 -1
- package/chunks/task-create-PNW5SN27.js +3 -0
- package/chunks/{task-detach-I67ZE5MX.js → task-detach-B7PDPFBA.js} +1 -1
- package/chunks/task-list-GGZATGK5.js +9 -0
- package/chunks/{task-stop-ERI5X4AO.js → task-stop-UKBBE2KG.js} +1 -1
- package/chunks/{task-update-CD3W556L.js → task-update-4RHVUBUV.js} +1 -1
- package/chunks/{team-create-F4KQRGMB.js → team-create-2TJC3X57.js} +1 -1
- package/chunks/team-delete-4UJ7SU65.js +8 -0
- package/chunks/todoWrite-NEBVKOSG.js +3 -0
- package/chunks/{tool-search-JFCD5W5M.js → tool-search-R5GS64YR.js} +1 -1
- package/chunks/tree-sitter-bash-2SWKO5B7.js +3 -0
- package/chunks/{web-fetch-REWGIRWQ.js → web-fetch-H3XJMAEF.js} +17 -17
- package/chunks/{web-search-OX2DPEVN.js → web-search-Q6RWPEIB.js} +1 -1
- package/chunks/{workflow-SEFYGBED.js → workflow-3A7KN3E3.js} +2 -2
- package/chunks/write-file-O7Q6SKZC.js +15 -0
- package/cli.js +509 -495
- package/locales/ca.js +2 -28
- package/locales/de.js +2 -28
- package/locales/en.js +2 -30
- package/locales/fr.js +2 -30
- package/locales/ja.js +2 -28
- package/locales/pt.js +2 -28
- package/locales/ru.js +2 -28
- package/package.json +2 -2
- package/sandbox-macos-permissive-closed.sb +0 -1
- package/sandbox-macos-permissive-open.sb +0 -1
- package/sandbox-macos-permissive-proxied.sb +0 -1
- package/sandbox-macos-restrictive-closed.sb +3 -1
- package/sandbox-macos-restrictive-open.sb +3 -1
- package/sandbox-macos-restrictive-proxied.sb +3 -1
- package/bundled/mainy/docs/features/channels/dingtalk.md +0 -134
- package/bundled/mainy/docs/features/channels/feishu.md +0 -186
- package/bundled/mainy/docs/features/channels/weixin.md +0 -106
- package/bundled/mainy/docs/integration-jetbrains.md +0 -81
- package/bundled/mainy/docs/integration-zed.md +0 -72
- package/chunks/agent-ZFZ4HJQC.js +0 -3
- package/chunks/agent-headless-KH2BKLP7.js +0 -3
- package/chunks/anthropicContentGenerator-IYZILRDW.js +0 -39
- package/chunks/chunk-25NCTG5H.js +0 -184
- package/chunks/chunk-2HQMJ2IU.js +0 -8
- package/chunks/chunk-3YLXGE6T.js +0 -8
- package/chunks/chunk-4F4DA5UI.js +0 -8
- package/chunks/chunk-4J6DC24J.js +0 -59
- package/chunks/chunk-4Q2SNBUH.js +0 -18
- package/chunks/chunk-6GBNB5Z2.js +0 -3
- package/chunks/chunk-G7R2XEEF.js +0 -7
- package/chunks/chunk-GHBKFIHC.js +0 -35
- package/chunks/chunk-GUFIMKF5.js +0 -65
- package/chunks/chunk-HWOQNYAO.js +0 -27
- package/chunks/chunk-LJR4RZZ2.js +0 -3
- package/chunks/chunk-NIQK6NX3.js +0 -37
- package/chunks/chunk-NVM7W7TG.js +0 -101
- package/chunks/chunk-O44XK65C.js +0 -8
- package/chunks/chunk-OA56BXPD.js +0 -3
- package/chunks/chunk-ODZOYHIC.js +0 -8
- package/chunks/chunk-PA6532AY.js +0 -6
- package/chunks/chunk-QFNFLE2I.js +0 -2625
- package/chunks/chunk-QH7736R5.js +0 -8
- package/chunks/chunk-QN6WSWMM.js +0 -9
- package/chunks/chunk-QN6Y6NPA.js +0 -3
- package/chunks/chunk-RK2AKQAX.js +0 -39
- package/chunks/chunk-SDTWBD62.js +0 -8
- package/chunks/chunk-SUH3UUWZ.js +0 -25
- package/chunks/chunk-U347OO7S.js +0 -9
- package/chunks/chunk-UIRBHC5X.js +0 -3
- package/chunks/chunk-VI74YQQO.js +0 -8
- package/chunks/chunk-VYZOOSMP.js +0 -30
- package/chunks/chunk-W5CGKUM4.js +0 -15
- package/chunks/chunk-WRQLIPXW.js +0 -113
- package/chunks/chunk-WVY2P6WH.js +0 -26
- package/chunks/chunk-WZ75OGYY.js +0 -14
- package/chunks/chunk-XCFLI3OC.js +0 -9
- package/chunks/chunk-XMZIY7XX.js +0 -13
- package/chunks/contextCommand-3GN5CAOK.js +0 -3
- package/chunks/dist-7UYRLSLE.js +0 -3
- package/chunks/dist-ME6647DQ.js +0 -195
- package/chunks/dist-P6SLWL5V.js +0 -42
- package/chunks/dist-VG3ZDJ2A.js +0 -28
- package/chunks/dist-YTCHM57U.js +0 -23
- package/chunks/edit-KX6V4PH3.js +0 -39
- package/chunks/exitPlanMode-G3QLIWJ4.js +0 -90
- package/chunks/fileFromPath-7UCWPD4W.js +0 -3
- package/chunks/geminiContentGenerator-EQEGOXOV.js +0 -8
- package/chunks/glob-KSBEWI3E.js +0 -22
- package/chunks/matildaAgentContentGenerator-OV4U6DJD.js +0 -8
- package/chunks/matildaContentGenerator-ETIAWE22.js +0 -8
- package/chunks/matildaOAuth2-WOY7ZS43.js +0 -3
- package/chunks/monitor-F4K5HOZX.js +0 -32
- package/chunks/notebook-edit-TL7CI5EA.js +0 -17
- package/chunks/openaiContentGenerator-MGASUFQL.js +0 -3
- package/chunks/read-file-6EAPS2KG.js +0 -3
- package/chunks/ripGrep-K6SFFUIE.js +0 -3
- package/chunks/scheduler-TKWPD4LP.js +0 -8
- package/chunks/shell-AZRK5GIO.js +0 -3
- package/chunks/src-SGI6VLOS.js +0 -3
- package/chunks/src-WZTRMETQ.js +0 -5
- package/chunks/task-create-EBJD55TB.js +0 -3
- package/chunks/task-list-5BGX4G5N.js +0 -9
- package/chunks/team-delete-5U3GBFKJ.js +0 -8
- package/chunks/todoWrite-YGG6AZ3A.js +0 -3
- package/chunks/tree-sitter-bash-XNCMPQBK.js +0 -3
- package/chunks/write-file-UAGVBZMC.js +0 -15
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// Force strict mode and setup for ESM
|
|
2
|
-
"use strict";
|
|
3
|
-
import{a as _}from"./chunk-4FVBPNTZ.js";import{Ae as q,Bc as Z,Xe as C,Ye as u,cf as G,df as Q,ga as S,gf as V,jf as Y,ze as k}from"./chunk-QFNFLE2I.js";import"./chunk-M53RP3YP.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-NYEWHSBL.js";import"./chunk-QN6WSWMM.js";import"./chunk-2HQMJ2IU.js";import"./chunk-W5CGKUM4.js";import"./chunk-TISQNFB5.js";import"./chunk-MTMU7JYZ.js";import"./chunk-SPW5DXX4.js";import"./chunk-RNKDFE2S.js";import"./chunk-GHBKFIHC.js";import"./chunk-5427BPR2.js";import"./chunk-47XR7IMP.js";import"./chunk-FFFZ2QMG.js";import"./chunk-SNLH42QJ.js";import"./chunk-HYVP4472.js";import"./chunk-QKYGQLWC.js";import"./chunk-QH7736R5.js";import"./chunk-4CSSDBOS.js";import"./chunk-JXUDKX6D.js";import"./chunk-Q55AVE2N.js";import"./chunk-GUFIMKF5.js";import"./chunk-WRQLIPXW.js";import"./chunk-DC7LAFZZ.js";import"./chunk-4F4DA5UI.js";import"./chunk-SUH3UUWZ.js";import"./chunk-4J6DC24J.js";import"./chunk-LJR4RZZ2.js";import"./chunk-U347OO7S.js";import"./chunk-SDTWBD62.js";import{Lb as z,Oa as B,ca as U,cd as K,ha as w}from"./chunk-25NCTG5H.js";import"./chunk-WVY2P6WH.js";import"./chunk-UIRBHC5X.js";import{w as H}from"./chunk-ELH4YHJR.js";import"./chunk-WHG6N5X2.js";import{g as $,i as N,p as L,q as j}from"./chunk-T4P4KEDW.js";import"./chunk-HWOQNYAO.js";import"./chunk-XCFLI3OC.js";import"./chunk-VI74YQQO.js";import"./chunk-3YLXGE6T.js";import"./chunk-GO2GA2GY.js";import{D as R,E as b,G as O,b as d,ba as M,d as D}from"./chunk-MH2P4YXC.js";import"./chunk-G7R2XEEF.js";import"./chunk-OA56BXPD.js";import"./chunk-FWDMPRKU.js";import{b as I}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";I();import P from"node:fs";import y from"node:path";var F=M("WRITE_FILE"),ae=["filePath","filepath","path","file","filename"];function le(f){if(!(typeof f.file_path=="string"&&f.file_path.trim()))for(let a of ae){let o=f[a];if(typeof o=="string"&&o.trim()){f.file_path=o,delete f[a];return}}}function ce(f){let a=f.content;if(typeof a!="string"||!a.includes("<arg_")&&!a.includes("</arg_"))return;let o={},e=/<arg_key>\s*([A-Za-z_][\w]*)\s*<\/arg_key>\s*<arg_value>\s*([\s\S]+?)(?:<\/arg_value>|(?=<arg_key\b)|$)/gi,r;for(;(r=e.exec(a))!==null;){let i=r[1].toLowerCase(),n=r[2].trim();n&&(o[i]=n)}let l=/(?:^|[^>])([A-Za-z_][\w]*)\s*<\/arg_key>\s*<arg_value>\s*([\s\S]+?)(?:<\/arg_value>|(?=<arg_key\b)|(?=[A-Za-z_][\w]*\s*<\/arg_key>)|$)/gi;for(;(r=l.exec(a))!==null;){let i=r[1].toLowerCase(),n=r[2].trim();(n&&!o[i]||n&&n.length>=(o[i]?.length??0))&&(o[i]=n)}let h=[a.search(/<arg_key\b/i),a.search(/<\/arg_key\b/i),a.search(/<arg_value\b/i)].filter(i=>i>=0),g=h.length>0?Math.min(...h):-1;if(g>=0&&a.slice(g,g+10).startsWith("</arg_key")){let i=a.slice(0,g),n=/([A-Za-z_][\w]*)\s*$/.exec(i);n&&(g=n.index)}let c=g>=0?a.slice(0,g).trimEnd():a;c=c.replace(/<\/?arg_(?:key|value)\b[^>]*>/gi,"").trimEnd(),f.content=c;let m=new Set(["file_path","filepath","path","file","filename"]);for(let[i,n]of Object.entries(o))!m.has(i)||!n||!n.startsWith("/")&&!/^[A-Za-z]:[\\/]/.test(n)||(typeof f.file_path!="string"||!String(f.file_path).trim()||n.length>String(f.file_path).length)&&(f.file_path=n)}var A=class extends ${constructor(o,e){super(e);this.config=o}toolLocations(){return[{path:this.params.file_path}]}getDescription(){let o=b(this.params.file_path,this.config.getTargetDir());return`Writing to ${R(o)}`}async getDefaultPermission(){let o=this.config.getProjectRoot();return H(y.resolve(this.params.file_path),o)?"allow":"ask"}async getConfirmationDetails(o){let e=_(this.config,this.params.file_path);if(e)throw new C(e,"path_not_in_workspace");let r="",l=await w(this.params.file_path);if(!this.config.getFileReadCacheDisabled()){let i=await u(this.config.getFileReadCache(),this.params.file_path,"overwriting");if(!i.ok)throw new C(i.rawMessage,i.type)}if(l)try{let{content:i}=await this.config.getFileSystemService().readTextFile({path:this.params.file_path});r=i}catch(i){if(d(i)&&i.code==="ENOENT")l=!1;else throw new Error(`Error reading existing file for confirmation: ${D(i)}`)}if(l&&!this.config.getFileReadCacheDisabled()){let i=await u(this.config.getFileReadCache(),this.params.file_path,"overwriting",{expectExisting:!0});if(!i.ok)throw F.warn("post-read TOCTOU rejection (confirmation)",{path:this.params.file_path,reason:i.type}),new C(i.rawMessage,i.type)}let h=b(this.params.file_path,this.config.getTargetDir()),g=y.basename(this.params.file_path),c=S(g,r,this.params.content,"Current","Proposed",k);return{type:"edit",title:`Confirm Write: ${R(h)}`,fileName:g,filePath:this.params.file_path,fileDiff:c,originalContent:r,newContent:this.params.content,onConfirm:async i=>{i==="proceed_always"&&this.config.setApprovalMode("auto-edit")}}}async execute(o){let{file_path:e,content:r,ai_proposed_content:l,modified_by_user:h}=this.params,g=_(this.config,e);if(g)return{llmContent:g,returnDisplay:g,error:{message:g,type:"path_not_in_workspace"}};let c=await w(e),m="",i=!1,n,W,J=y.dirname(e);if(!this.config.getFileReadCacheDisabled()){let t=await u(this.config.getFileReadCache(),e,"overwriting");if(!t.ok)return{llmContent:t.rawMessage,returnDisplay:`Error: ${t.displayMessage}`,error:{message:t.rawMessage,type:t.type}}}if(c)try{let t=await this.config.getFileSystemService().readTextFile({path:e});t._meta?.bom!==void 0?i=t._meta.bom:i=t.content.length>0&&t.content.codePointAt(0)===65279,n=t._meta?.encoding||"utf-8",W=V(t.content),m=t.content,c=!0}catch(t){if(d(t)&&t.code==="ENOENT")c=!1;else{let s={message:D(t),code:d(t)?t.code:void 0},p=s.code?`Error checking existing file '${e}': ${s.message} (${s.code})`:`Error checking existing file: ${s.message}`;return{llmContent:p,returnDisplay:p,error:{message:p,type:"file_write_failure"}}}}if(c&&!this.config.getFileReadCacheDisabled()){let t=await u(this.config.getFileReadCache(),e,"overwriting",{expectExisting:!0});if(!t.ok)return F.warn("post-read TOCTOU rejection (execute)",{path:e,reason:t.type}),{llmContent:t.rawMessage,returnDisplay:`Error: ${t.displayMessage}`,error:{message:t.rawMessage,type:t.type}}}if(!c){let t=this.config.getDefaultFileEncoding();t===G.UTF8_BOM?i=!0:t===void 0&&(i=Q(e)),n=void 0}try{await this.config.getFileHistoryService().trackEdit(e)}catch{}if(!this.config.getFileReadCacheDisabled()){let t=await u(this.config.getFileReadCache(),e,"overwriting",{expectExisting:c});if(!t.ok)return F.warn("pre-write TOCTOU rejection",{path:e,reason:t.type}),{llmContent:t.rawMessage,returnDisplay:`Error: ${t.displayMessage}`,error:{message:t.rawMessage,type:t.type}}}let E=_(this.config,e);if(E)return{llmContent:E,returnDisplay:E,error:{message:E,type:"path_not_in_workspace"}};c||P.mkdirSync(J,{recursive:!0});try{let t=_(this.config,e);if(t)return{llmContent:t,returnDisplay:t,error:{message:t,type:"path_not_in_workspace"}};await this.config.getFileSystemService().writeTextFile({path:e,content:r,_meta:{bom:i,encoding:n,lineEnding:W}}),h||Z.getInstance().recordEdit(e,c?m:null,r);try{let T=P.statSync(e);this.config.getFileReadCache().recordWrite(e,T)}catch{}let s=y.basename(e),p=m,X=S(s,p,r,"Original","Written",k),ee=q(s,p,l||r,r),v=[c?`Successfully overwrote file: ${e}.`:`Successfully created and wrote to new file: ${e}.`];h&&v.push(`User modified the \`content\` to be: ${r}`);let te=U(e),ie=B(e),oe=y.extname(e),re=c?"update":"create",ne=r.split(`
|
|
4
|
-
`).length;z(this.config,new K(x.Name,re,ne,te,oe,ie));let se={fileDiff:X,fileName:s,originalContent:m,newContent:r,diffStat:ee};try{let T=await Y(this.config,e);T&&v.push(`
|
|
5
|
-
|
|
6
|
-
${T}`)}catch{}return{llmContent:v.join(" "),returnDisplay:se}}catch(t){let s,p="file_write_failure";return d(t)?(s=`Error writing to file '${e}': ${t.message} (${t.code})`,t.code==="EACCES"?(s=`Permission denied writing to file: ${e} (${t.code})`,p="permission_denied"):t.code==="ENOSPC"?(s=`No space left on device: ${e} (${t.code})`,p="no_space_left"):t.code==="EISDIR"&&(s=`Target is a directory, not a file: ${e} (${t.code})`,p="target_is_directory"),this.config.getDebugMode()&&t.stack&&F.debug("Write file error stack:",t.stack)):t instanceof Error?s=`Error writing to file: ${t.message}`:s=`Error writing to file: ${String(t)}`,{llmContent:s,returnDisplay:s,error:{message:s,type:p}}}}},x=class f extends N{constructor(o){super(f.Name,j.WRITE_FILE,`Writes content to a specified file in the local filesystem.
|
|
7
|
-
|
|
8
|
-
CRITICAL: Always emit file_path FIRST (absolute path), then content. Never omit file_path. Construct absolute paths from the project root + relative path (e.g. '/path/to/project/' + 'foo/bar.txt'). Relative paths are not supported.
|
|
9
|
-
|
|
10
|
-
The user has the ability to modify \`content\`. If modified, this will be stated in the response.`,"edit",{properties:{file_path:{description:"REQUIRED. Absolute path to write (e.g. '/home/user/project/src/auth.ts'). Emit this BEFORE content.",type:"string"},content:{description:"The full file contents to write. Only after file_path is set.",type:"string"}},required:["file_path","content"],type:"object"});this.config=o}static Name=L.WRITE_FILE;validateToolParams(o){let e=o;return ce(e),le(e),(typeof o.file_path!="string"||!o.file_path.trim())&&typeof o.content=="string"&&o.content.length>0?'WriteFile requires absolute "file_path" (emit file_path first, then content). Retry with both file_path and content.':super.validateToolParams(o)}validateToolParamValues(o){let e=O(o.file_path.trim());if(o.file_path=e,!e)return'Missing or empty "file_path"';if(!y.isAbsolute(e))return`File path must be absolute: ${e}`;try{if(P.existsSync(e)&&P.lstatSync(e).isDirectory())return`Path is a directory, not a file: ${e}`}catch(r){return`Error accessing path properties for validation: ${e}. Reason: ${r instanceof Error?r.message:String(r)}`}return null}createInvocation(o){return new A(this.config,o)}toAutoClassifierInput(o){let e=o.content??"";return{file_path:o.file_path,byte_count:Buffer.byteLength(e,"utf8"),content_preview:e.slice(0,300),content_truncated:e.length>300}}getModifyContext(o){return{getFilePath:e=>e.file_path,getCurrentContent:async e=>{if(await w(e.file_path))try{let{content:l}=await this.config.getFileSystemService().readTextFile({path:e.file_path});return l}catch(l){if(!d(l)||l.code!=="ENOENT")throw l;return""}else return""},getProposedContent:async e=>e.content,createUpdatedParams:(e,r,l)=>{let h=l.content;return{...l,ai_proposed_content:h,content:r,modified_by_user:!0}}}}};export{x as WriteFileTool,le as normalizeWriteFilePathAliases,ce as repairLeakedWriteFileToolArgMarkup};
|
|
11
|
-
/**
|
|
12
|
-
* @license
|
|
13
|
-
* Copyright 2025 Google LLC
|
|
14
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
15
|
-
*/
|