Skip to content

Commit 22f81ad

Browse files
committed
run linter
Signed-off-by: Jiaxiao Zhou <duibao55328@gmail.com>
1 parent 14dd9b5 commit 22f81ad

8 files changed

Lines changed: 65 additions & 68 deletions

File tree

pkg/parser/schema.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ func validateEngineSpecificRules(frontmatter map[string]any) error {
254254
// Check if codex engine has permissions configured
255255
if engineID == "codex" {
256256
if _, hasPermissions := engineMap["permissions"]; hasPermissions {
257-
return errors.New("Engine permissions are not supported for codex engine. Only Claude engine supports permissions configuration.")
257+
return errors.New("engine permissions are not supported for codex engine. Only Claude engine supports permissions configuration")
258258
}
259259
}
260260

pkg/workflow/cache.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,22 +62,22 @@ func generateCacheSteps(builder *strings.Builder, data *WorkflowData, verbose bo
6262
}
6363
}
6464

65-
builder.WriteString(fmt.Sprintf(" - name: %s\n", stepName))
65+
fmt.Fprintf(builder, " - name: %s\n", stepName)
6666
builder.WriteString(" uses: actions/cache@v3\n")
6767
builder.WriteString(" with:\n")
6868

6969
// Add required cache parameters
7070
if key, hasKey := cache["key"]; hasKey {
71-
builder.WriteString(fmt.Sprintf(" key: %v\n", key))
71+
fmt.Fprintf(builder, " key: %v\n", key)
7272
}
7373
if path, hasPath := cache["path"]; hasPath {
7474
if pathArray, isArray := path.([]any); isArray {
7575
builder.WriteString(" path: |\n")
7676
for _, p := range pathArray {
77-
builder.WriteString(fmt.Sprintf(" %v\n", p))
77+
fmt.Fprintf(builder, " %v\n", p)
7878
}
7979
} else {
80-
builder.WriteString(fmt.Sprintf(" path: %v\n", path))
80+
fmt.Fprintf(builder, " path: %v\n", path)
8181
}
8282
}
8383

@@ -86,20 +86,20 @@ func generateCacheSteps(builder *strings.Builder, data *WorkflowData, verbose bo
8686
if restoreArray, isArray := restoreKeys.([]any); isArray {
8787
builder.WriteString(" restore-keys: |\n")
8888
for _, key := range restoreArray {
89-
builder.WriteString(fmt.Sprintf(" %v\n", key))
89+
fmt.Fprintf(builder, " %v\n", key)
9090
}
9191
} else {
92-
builder.WriteString(fmt.Sprintf(" restore-keys: %v\n", restoreKeys))
92+
fmt.Fprintf(builder, " restore-keys: %v\n", restoreKeys)
9393
}
9494
}
9595
if uploadChunkSize, hasSize := cache["upload-chunk-size"]; hasSize {
96-
builder.WriteString(fmt.Sprintf(" upload-chunk-size: %v\n", uploadChunkSize))
96+
fmt.Fprintf(builder, " upload-chunk-size: %v\n", uploadChunkSize)
9797
}
9898
if failOnMiss, hasFail := cache["fail-on-cache-miss"]; hasFail {
99-
builder.WriteString(fmt.Sprintf(" fail-on-cache-miss: %v\n", failOnMiss))
99+
fmt.Fprintf(builder, " fail-on-cache-miss: %v\n", failOnMiss)
100100
}
101101
if lookupOnly, hasLookup := cache["lookup-only"]; hasLookup {
102-
builder.WriteString(fmt.Sprintf(" lookup-only: %v\n", lookupOnly))
102+
fmt.Fprintf(builder, " lookup-only: %v\n", lookupOnly)
103103
}
104104
}
105105
}

pkg/workflow/claude_engine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func (e *ClaudeEngine) renderGitHubClaudeMCPConfig(yaml *strings.Builder, github
155155

156156
// renderClaudeMCPConfig generates custom MCP server configuration for a single tool in Claude workflow mcp-servers.json
157157
func (e *ClaudeEngine) renderClaudeMCPConfig(yaml *strings.Builder, toolName string, toolConfig map[string]any, isLast bool) error {
158-
yaml.WriteString(fmt.Sprintf(" \"%s\": {\n", toolName))
158+
fmt.Fprintf(yaml, " \"%s\": {\n", toolName)
159159

160160
// Use the shared MCP config renderer with JSON format
161161
renderer := MCPConfigRenderer{

pkg/workflow/codex_engine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ func (e *CodexEngine) renderGitHubCodexMCPConfig(yaml *strings.Builder, githubTo
170170
// renderCodexMCPConfig generates custom MCP server configuration for a single tool in codex workflow config.toml
171171
func (e *CodexEngine) renderCodexMCPConfig(yaml *strings.Builder, toolName string, toolConfig map[string]any) error {
172172
yaml.WriteString(" \n")
173-
yaml.WriteString(fmt.Sprintf(" [mcp_servers.%s]\n", toolName))
173+
fmt.Fprintf(yaml, " [mcp_servers.%s]\n", toolName)
174174

175175
// Use the shared MCP config renderer with TOML format
176176
renderer := MCPConfigRenderer{

pkg/workflow/compiler.go

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1918,13 +1918,13 @@ func (c *Compiler) generateSafetyChecks(yaml *strings.Builder, data *WorkflowDat
19181918

19191919
// Extract workflow name for gh workflow commands
19201920
workflowName := data.Name
1921-
yaml.WriteString(fmt.Sprintf(" WORKFLOW_NAME=\"%s\"\n", workflowName))
1921+
fmt.Fprintf(yaml, " WORKFLOW_NAME=\"%s\"\n", workflowName)
19221922

19231923
// Add stop-time check
19241924
if data.StopTime != "" {
19251925
yaml.WriteString(" \n")
19261926
yaml.WriteString(" # Check stop-time limit\n")
1927-
yaml.WriteString(fmt.Sprintf(" STOP_TIME=\"%s\"\n", data.StopTime))
1927+
fmt.Fprintf(yaml, " STOP_TIME=\"%s\"\n", data.StopTime)
19281928
yaml.WriteString(" echo \"Checking stop-time limit: $STOP_TIME\"\n")
19291929
yaml.WriteString(" \n")
19301930
yaml.WriteString(" # Convert stop time to epoch seconds\n")
@@ -2007,26 +2007,26 @@ func (c *Compiler) generateMCPSetup(yaml *strings.Builder, tools map[string]any,
20072007
if mcpConf, err := getMCPConfig(toolConfig, toolName); err == nil {
20082008
if containerVal, hasContainer := mcpConf["container"]; hasContainer {
20092009
if containerStr, ok := containerVal.(string); ok && containerStr != "" {
2010-
yaml.WriteString(fmt.Sprintf(" echo 'Pulling %s for tool %s'\n", containerStr, toolName))
2011-
yaml.WriteString(fmt.Sprintf(" docker pull %s\n", containerStr))
2010+
fmt.Fprintf(yaml, " echo 'Pulling %s for tool %s'\n", containerStr, toolName)
2011+
fmt.Fprintf(yaml, " docker pull %s\n", containerStr)
20122012
}
20132013
}
20142014
}
2015-
yaml.WriteString(fmt.Sprintf(" echo 'Starting squid-proxy service for %s'\n", toolName))
2016-
yaml.WriteString(fmt.Sprintf(" docker compose -f docker-compose-%s.yml up -d squid-proxy\n", toolName))
2015+
fmt.Fprintf(yaml, " echo 'Starting squid-proxy service for %s'\n", toolName)
2016+
fmt.Fprintf(yaml, " docker compose -f docker-compose-%s.yml up -d squid-proxy\n", toolName)
20172017

20182018
// Enforce that egress from this tool's network can only reach the Squid proxy
20192019
subnetCIDR, squidIP, _ := computeProxyNetworkParams(toolName)
2020-
yaml.WriteString(fmt.Sprintf(" echo 'Enforcing egress to proxy for %s (subnet %s, squid %s)'\n", toolName, subnetCIDR, squidIP))
2020+
fmt.Fprintf(yaml, " echo 'Enforcing egress to proxy for %s (subnet %s, squid %s)'\n", toolName, subnetCIDR, squidIP)
20212021
yaml.WriteString(" if command -v sudo >/dev/null 2>&1; then SUDO=sudo; else SUDO=; fi\n")
20222022
// Accept established/related connections first (position 1)
20232023
yaml.WriteString(" $SUDO iptables -C DOCKER-USER -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 2>/dev/null || $SUDO iptables -I DOCKER-USER 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\n")
20242024
// Accept all egress from Squid IP (position 2)
2025-
yaml.WriteString(fmt.Sprintf(" $SUDO iptables -C DOCKER-USER -s %s -j ACCEPT 2>/dev/null || $SUDO iptables -I DOCKER-USER 2 -s %s -j ACCEPT\n", squidIP, squidIP))
2025+
fmt.Fprintf(yaml, " $SUDO iptables -C DOCKER-USER -s %s -j ACCEPT 2>/dev/null || $SUDO iptables -I DOCKER-USER 2 -s %s -j ACCEPT\n", squidIP, squidIP)
20262026
// Allow traffic to squid:3128 from the subnet (position 3)
2027-
yaml.WriteString(fmt.Sprintf(" $SUDO iptables -C DOCKER-USER -s %s -d %s -p tcp --dport 3128 -j ACCEPT 2>/dev/null || $SUDO iptables -I DOCKER-USER 3 -s %s -d %s -p tcp --dport 3128 -j ACCEPT\n", subnetCIDR, squidIP, subnetCIDR, squidIP))
2027+
fmt.Fprintf(yaml, " $SUDO iptables -C DOCKER-USER -s %s -d %s -p tcp --dport 3128 -j ACCEPT 2>/dev/null || $SUDO iptables -I DOCKER-USER 3 -s %s -d %s -p tcp --dport 3128 -j ACCEPT\n", subnetCIDR, squidIP, subnetCIDR, squidIP)
20282028
// Then reject all other egress from that subnet (append to end)
2029-
yaml.WriteString(fmt.Sprintf(" $SUDO iptables -C DOCKER-USER -s %s -j REJECT 2>/dev/null || $SUDO iptables -A DOCKER-USER -s %s -j REJECT\n", subnetCIDR, subnetCIDR))
2029+
fmt.Fprintf(yaml, " $SUDO iptables -C DOCKER-USER -s %s -j REJECT 2>/dev/null || $SUDO iptables -A DOCKER-USER -s %s -j REJECT\n", subnetCIDR, subnetCIDR)
20302030
}
20312031
}
20322032
}
@@ -2167,8 +2167,8 @@ func (c *Compiler) generateUploadAgentLogs(yaml *strings.Builder, logFile string
21672167
yaml.WriteString(" if: always()\n")
21682168
yaml.WriteString(" uses: actions/upload-artifact@v4\n")
21692169
yaml.WriteString(" with:\n")
2170-
yaml.WriteString(fmt.Sprintf(" name: %s.log\n", logFile))
2171-
yaml.WriteString(fmt.Sprintf(" path: %s\n", logFileFull))
2170+
fmt.Fprintf(yaml, " name: %s.log\n", logFile)
2171+
fmt.Fprintf(yaml, " path: %s\n", logFileFull)
21722172
yaml.WriteString(" if-no-files-found: warn\n")
21732173
}
21742174

@@ -2489,7 +2489,7 @@ func (c *Compiler) generateEngineExecutionSteps(yaml *strings.Builder, data *Wor
24892489

24902490
if executionConfig.Command != "" {
24912491
// Command-based execution (e.g., Codex)
2492-
yaml.WriteString(fmt.Sprintf(" - name: %s\n", executionConfig.StepName))
2492+
fmt.Fprintf(yaml, " - name: %s\n", executionConfig.StepName)
24932493
yaml.WriteString(" run: |\n")
24942494

24952495
// Split command into lines and indent them properly
@@ -2510,7 +2510,7 @@ func (c *Compiler) generateEngineExecutionSteps(yaml *strings.Builder, data *Wor
25102510

25112511
for _, key := range envKeys {
25122512
value := executionConfig.Environment[key]
2513-
yaml.WriteString(fmt.Sprintf(" %s: %s\n", key, value))
2513+
fmt.Fprintf(yaml, " %s: %s\n", key, value)
25142514
}
25152515
// Add GITHUB_AW_OUTPUT environment variable for all engines
25162516
yaml.WriteString(" GITHUB_AW_OUTPUT: ${{ env.GITHUB_AW_OUTPUT }}\n")
@@ -2522,9 +2522,9 @@ func (c *Compiler) generateEngineExecutionSteps(yaml *strings.Builder, data *Wor
25222522
} else if executionConfig.Action != "" {
25232523

25242524
// Add the main action step
2525-
yaml.WriteString(fmt.Sprintf(" - name: %s\n", executionConfig.StepName))
2525+
fmt.Fprintf(yaml, " - name: %s\n", executionConfig.StepName)
25262526
yaml.WriteString(" id: agentic_execution\n")
2527-
yaml.WriteString(fmt.Sprintf(" uses: %s\n", executionConfig.Action))
2527+
fmt.Fprintf(yaml, " uses: %s\n", executionConfig.Action)
25282528
yaml.WriteString(" with:\n")
25292529

25302530
// Add inputs in alphabetical order by key
@@ -2541,18 +2541,18 @@ func (c *Compiler) generateEngineExecutionSteps(yaml *strings.Builder, data *Wor
25412541
// Add comment listing all allowed tools for readability
25422542
comment := c.generateAllowedToolsComment(data.AllowedTools, " ")
25432543
yaml.WriteString(comment)
2544-
yaml.WriteString(fmt.Sprintf(" %s: \"%s\"\n", key, data.AllowedTools))
2544+
fmt.Fprintf(yaml, " %s: \"%s\"\n", key, data.AllowedTools)
25452545
}
25462546
} else if key == "timeout_minutes" {
25472547
if data.TimeoutMinutes != "" {
25482548
yaml.WriteString(" " + data.TimeoutMinutes + "\n")
25492549
}
25502550
} else if key == "max_turns" {
25512551
if data.MaxTurns != "" {
2552-
yaml.WriteString(fmt.Sprintf(" max_turns: %s\n", data.MaxTurns))
2552+
fmt.Fprintf(yaml, " max_turns: %s\n", data.MaxTurns)
25532553
}
25542554
} else if value != "" {
2555-
yaml.WriteString(fmt.Sprintf(" %s: %s\n", key, value))
2555+
fmt.Fprintf(yaml, " %s: %s\n", key, value)
25562556
}
25572557
}
25582558
// Add environment section to pass GITHUB_AW_OUTPUT to the action for all engines
@@ -2590,30 +2590,30 @@ func (c *Compiler) generateCreateAwInfo(yaml *strings.Builder, data *WorkflowDat
25902590
} else if data.AI != "" {
25912591
engineID = data.AI
25922592
}
2593-
yaml.WriteString(fmt.Sprintf(" engine_id: \"%s\",\n", engineID))
2593+
fmt.Fprintf(yaml, " engine_id: \"%s\",\n", engineID)
25942594

25952595
// Engine display name
2596-
yaml.WriteString(fmt.Sprintf(" engine_name: \"%s\",\n", engine.GetDisplayName()))
2596+
fmt.Fprintf(yaml, " engine_name: \"%s\",\n", engine.GetDisplayName())
25972597

25982598
// Model information
25992599
model := ""
26002600
if data.EngineConfig != nil && data.EngineConfig.Model != "" {
26012601
model = data.EngineConfig.Model
26022602
}
2603-
yaml.WriteString(fmt.Sprintf(" model: \"%s\",\n", model))
2603+
fmt.Fprintf(yaml, " model: \"%s\",\n", model)
26042604

26052605
// Version information
26062606
version := ""
26072607
if data.EngineConfig != nil && data.EngineConfig.Version != "" {
26082608
version = data.EngineConfig.Version
26092609
}
2610-
yaml.WriteString(fmt.Sprintf(" version: \"%s\",\n", version))
2610+
fmt.Fprintf(yaml, " version: \"%s\",\n", version)
26112611

26122612
// Workflow information
2613-
yaml.WriteString(fmt.Sprintf(" workflow_name: \"%s\",\n", data.Name))
2614-
yaml.WriteString(fmt.Sprintf(" experimental: %t,\n", engine.IsExperimental()))
2615-
yaml.WriteString(fmt.Sprintf(" supports_tools_whitelist: %t,\n", engine.SupportsToolsWhitelist()))
2616-
yaml.WriteString(fmt.Sprintf(" supports_http_transport: %t,\n", engine.SupportsHTTPTransport()))
2613+
fmt.Fprintf(yaml, " workflow_name: \"%s\",\n", data.Name)
2614+
fmt.Fprintf(yaml, " experimental: %t,\n", engine.IsExperimental())
2615+
fmt.Fprintf(yaml, " supports_tools_whitelist: %t,\n", engine.SupportsToolsWhitelist())
2616+
fmt.Fprintf(yaml, " supports_http_transport: %t,\n", engine.SupportsHTTPTransport())
26172617

26182618
// Run metadata
26192619
yaml.WriteString(" run_id: context.runId,\n")
@@ -2657,7 +2657,7 @@ func (c *Compiler) generateOutputCollectionStep(yaml *strings.Builder, data *Wor
26572657
if data.Output != nil && len(data.Output.AllowedDomains) > 0 {
26582658
yaml.WriteString(" env:\n")
26592659
domainsStr := strings.Join(data.Output.AllowedDomains, ",")
2660-
yaml.WriteString(fmt.Sprintf(" GITHUB_AW_ALLOWED_DOMAINS: %q\n", domainsStr))
2660+
fmt.Fprintf(yaml, " GITHUB_AW_ALLOWED_DOMAINS: %q\n", domainsStr)
26612661
}
26622662

26632663
yaml.WriteString(" with:\n")
@@ -2679,7 +2679,7 @@ func (c *Compiler) generateOutputCollectionStep(yaml *strings.Builder, data *Wor
26792679
yaml.WriteString(" if: always() && steps.collect_output.outputs.output != ''\n")
26802680
yaml.WriteString(" uses: actions/upload-artifact@v4\n")
26812681
yaml.WriteString(" with:\n")
2682-
yaml.WriteString(fmt.Sprintf(" name: %s\n", OutputArtifactName))
2682+
fmt.Fprintf(yaml, " name: %s\n", OutputArtifactName)
26832683
yaml.WriteString(" path: ${{ env.GITHUB_AW_OUTPUT }}\n")
26842684
yaml.WriteString(" if-no-files-found: warn\n")
26852685

@@ -2710,10 +2710,7 @@ func (c *Compiler) validateMaxTurnsSupport(frontmatter map[string]any, engine Ag
27102710
engineSetting, engineConfig := c.extractEngineConfig(frontmatter)
27112711
_ = engineSetting // Suppress unused variable warning
27122712

2713-
hasMaxTurns := false
2714-
if engineConfig != nil && engineConfig.MaxTurns != "" {
2715-
hasMaxTurns = true
2716-
}
2713+
hasMaxTurns := engineConfig != nil && engineConfig.MaxTurns != ""
27172714

27182715
if !hasMaxTurns {
27192716
// No max-turns specified, no validation needed

pkg/workflow/js.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func WriteJavaScriptToYAML(yaml *strings.Builder, script string) {
5252
for _, line := range scriptLines {
5353
// Skip empty lines when inlining to YAML
5454
if strings.TrimSpace(line) != "" {
55-
yaml.WriteString(fmt.Sprintf(" %s\n", line))
55+
fmt.Fprintf(yaml, " %s\n", line)
5656
}
5757
}
5858
}

pkg/workflow/mcp-config.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -80,58 +80,58 @@ func renderSharedMCPConfig(yaml *strings.Builder, toolName string, toolConfig ma
8080
if command, exists := mcpConfig["command"]; exists {
8181
if cmdStr, ok := command.(string); ok {
8282
if renderer.Format == "toml" {
83-
yaml.WriteString(fmt.Sprintf("%scommand = \"%s\"\n", renderer.IndentLevel, cmdStr))
83+
fmt.Fprintf(yaml, "%scommand = \"%s\"\n", renderer.IndentLevel, cmdStr)
8484
} else {
8585
comma := ","
8686
if isLastProperty {
8787
comma = ""
8888
}
89-
yaml.WriteString(fmt.Sprintf("%s\"command\": \"%s\"%s\n", renderer.IndentLevel, cmdStr, comma))
89+
fmt.Fprintf(yaml, "%s\"command\": \"%s\"%s\n", renderer.IndentLevel, cmdStr, comma)
9090
}
9191
}
9292
}
9393
case "args":
9494
if args, exists := mcpConfig["args"]; exists {
9595
if argsSlice, ok := args.([]any); ok {
9696
if renderer.Format == "toml" {
97-
yaml.WriteString(fmt.Sprintf("%sargs = [\n", renderer.IndentLevel))
97+
fmt.Fprintf(yaml, "%sargs = [\n", renderer.IndentLevel)
9898
for _, arg := range argsSlice {
9999
if argStr, ok := arg.(string); ok {
100-
yaml.WriteString(fmt.Sprintf("%s \"%s\",\n", renderer.IndentLevel, argStr))
100+
fmt.Fprintf(yaml, "%s \"%s\",\n", renderer.IndentLevel, argStr)
101101
}
102102
}
103-
yaml.WriteString(fmt.Sprintf("%s]\n", renderer.IndentLevel))
103+
fmt.Fprintf(yaml, "%s]\n", renderer.IndentLevel)
104104
} else {
105105
comma := ","
106106
if isLastProperty {
107107
comma = ""
108108
}
109-
yaml.WriteString(fmt.Sprintf("%s\"args\": [\n", renderer.IndentLevel))
109+
fmt.Fprintf(yaml, "%s\"args\": [\n", renderer.IndentLevel)
110110
for argIndex, arg := range argsSlice {
111111
if argStr, ok := arg.(string); ok {
112112
argComma := ","
113113
if argIndex == len(argsSlice)-1 {
114114
argComma = ""
115115
}
116-
yaml.WriteString(fmt.Sprintf("%s \"%s\"%s\n", renderer.IndentLevel, argStr, argComma))
116+
fmt.Fprintf(yaml, "%s \"%s\"%s\n", renderer.IndentLevel, argStr, argComma)
117117
}
118118
}
119-
yaml.WriteString(fmt.Sprintf("%s]%s\n", renderer.IndentLevel, comma))
119+
fmt.Fprintf(yaml, "%s]%s\n", renderer.IndentLevel, comma)
120120
}
121121
}
122122
}
123123
case "env":
124124
if env, exists := mcpConfig["env"]; exists {
125125
if envMap, ok := env.(map[string]any); ok {
126126
if renderer.Format == "toml" {
127-
yaml.WriteString(fmt.Sprintf("%senv = { ", renderer.IndentLevel))
127+
fmt.Fprintf(yaml, "%senv = { ", renderer.IndentLevel)
128128
first := true
129129
for envKey, envValue := range envMap {
130130
if !first {
131131
yaml.WriteString(", ")
132132
}
133133
if envStr, ok := envValue.(string); ok {
134-
yaml.WriteString(fmt.Sprintf("\"%s\" = \"%s\"", envKey, envStr))
134+
fmt.Fprintf(yaml, "\"%s\" = \"%s\"", envKey, envStr)
135135
}
136136
first = false
137137
}
@@ -141,7 +141,7 @@ func renderSharedMCPConfig(yaml *strings.Builder, toolName string, toolConfig ma
141141
if isLastProperty {
142142
comma = ""
143143
}
144-
yaml.WriteString(fmt.Sprintf("%s\"env\": {\n", renderer.IndentLevel))
144+
fmt.Fprintf(yaml, "%s\"env\": {\n", renderer.IndentLevel)
145145
envKeys := make([]string, 0, len(envMap))
146146
for key := range envMap {
147147
envKeys = append(envKeys, key)
@@ -152,10 +152,10 @@ func renderSharedMCPConfig(yaml *strings.Builder, toolName string, toolConfig ma
152152
if envIndex == len(envKeys)-1 {
153153
envComma = ""
154154
}
155-
yaml.WriteString(fmt.Sprintf("%s \"%s\": \"%s\"%s\n", renderer.IndentLevel, envKey, envValue, envComma))
155+
fmt.Fprintf(yaml, "%s \"%s\": \"%s\"%s\n", renderer.IndentLevel, envKey, envValue, envComma)
156156
}
157157
}
158-
yaml.WriteString(fmt.Sprintf("%s}%s\n", renderer.IndentLevel, comma))
158+
fmt.Fprintf(yaml, "%s}%s\n", renderer.IndentLevel, comma)
159159
}
160160
}
161161
}
@@ -166,7 +166,7 @@ func renderSharedMCPConfig(yaml *strings.Builder, toolName string, toolConfig ma
166166
if isLastProperty {
167167
comma = ""
168168
}
169-
yaml.WriteString(fmt.Sprintf("%s\"url\": \"%s\"%s\n", renderer.IndentLevel, urlStr, comma))
169+
fmt.Fprintf(yaml, "%s\"url\": \"%s\"%s\n", renderer.IndentLevel, urlStr, comma)
170170
}
171171
}
172172
case "headers":
@@ -176,7 +176,7 @@ func renderSharedMCPConfig(yaml *strings.Builder, toolName string, toolConfig ma
176176
if isLastProperty {
177177
comma = ""
178178
}
179-
yaml.WriteString(fmt.Sprintf("%s\"headers\": {\n", renderer.IndentLevel))
179+
fmt.Fprintf(yaml, "%s\"headers\": {\n", renderer.IndentLevel)
180180
headerKeys := make([]string, 0, len(headersMap))
181181
for key := range headersMap {
182182
headerKeys = append(headerKeys, key)
@@ -187,10 +187,10 @@ func renderSharedMCPConfig(yaml *strings.Builder, toolName string, toolConfig ma
187187
if headerIndex == len(headerKeys)-1 {
188188
headerComma = ""
189189
}
190-
yaml.WriteString(fmt.Sprintf("%s \"%s\": \"%s\"%s\n", renderer.IndentLevel, headerKey, headerValue, headerComma))
190+
fmt.Fprintf(yaml, "%s \"%s\": \"%s\"%s\n", renderer.IndentLevel, headerKey, headerValue, headerComma)
191191
}
192192
}
193-
yaml.WriteString(fmt.Sprintf("%s}%s\n", renderer.IndentLevel, comma))
193+
fmt.Fprintf(yaml, "%s}%s\n", renderer.IndentLevel, comma)
194194
}
195195
}
196196
}

0 commit comments

Comments
 (0)