MCPcopy Index your code
hub / github.com/docker/docker-agent / handleWriteFile

Method handleWriteFile

pkg/tools/builtin/filesystem/filesystem.go:1372–1394  ·  view source on GitHub ↗
(ctx context.Context, args WriteFileArgs)

Source from the content-addressed store, hash-verified

1370}
1371
1372func (t *ToolSet) handleWriteFile(ctx context.Context, args WriteFileArgs) (*tools.ToolCallResult, error) {
1373 annotateFilesystemSpan(ctx, "write_file", args.Path)
1374 resolvedPath, err := t.resolveAndCheckPath(args.Path)
1375 if err != nil {
1376 return tools.ResultError(err.Error()), nil
1377 }
1378
1379 // Create parent directory structure if it doesn't exist
1380 dir := filepath.Dir(resolvedPath)
1381 if err := t.mkdirAll(dir, 0o755); err != nil {
1382 return tools.ResultError(fmt.Sprintf("Error creating directory structure: %s", err)), nil
1383 }
1384
1385 if err := t.writeFile(resolvedPath, []byte(args.Content), 0o644); err != nil {
1386 return tools.ResultError(fmt.Sprintf("Error writing file: %s", err)), nil
1387 }
1388
1389 if err := t.executePostEditCommands(ctx, resolvedPath); err != nil {
1390 return tools.ResultError(fmt.Sprintf("File written successfully but post-edit command failed: %s", err)), nil
1391 }
1392
1393 return tools.ResultSuccess(fmt.Sprintf("File written successfully: %s (%d bytes)", args.Path, len(args.Content))), nil
1394}
1395
1396func (t *ToolSet) handleCreateDirectory(ctx context.Context, args CreateDirectoryArgs) (*tools.ToolCallResult, error) {
1397 annotateFilesystemSpan(ctx, "create_directory", "")

Implementers 15

StartableToolSetpkg/tools/startable.go
fakeToolSetpkg/tools/named_test.go
stubDescriberpkg/tools/startable_test.go
stubToolSetpkg/tools/startable_test.go
flappyToolSetpkg/tools/startable_test.go
listFlappyToolSetpkg/tools/startable_test.go
reportingToolSetpkg/tools/startable_test.go
reportingStartOnlyToolSetpkg/tools/startable_test.go
recoveryFailingToolSetpkg/tools/startable_test.go
codeModeToolpkg/tools/codemode/codemode.go
testToolSetpkg/tools/codemode/codemode_test.go
Toolsetpkg/tools/a2a/a2a.go

Calls 9

resolveAndCheckPathMethod · 0.95
mkdirAllMethod · 0.95
writeFileMethod · 0.95
ResultErrorFunction · 0.92
ResultSuccessFunction · 0.92
annotateFilesystemSpanFunction · 0.85
DirMethod · 0.80
ErrorMethod · 0.45