on main help sign in
fix: permissions path
3eed184Kujtim Hoxha
internal/llm/tools/edit.go+17−3
@@ -215,10 +215,14 @@ func (e *editTool) createNewFile(ctx context.Context, filePath, content string,
215 content,
215 content,
216 strings.TrimPrefix(filePath, e.workingDir),
216 strings.TrimPrefix(filePath, e.workingDir),
217 )
217 )
218+ permissionPath := filePath
219+ if strings.HasPrefix(filePath, e.workingDir) {
220+ permissionPath = e.workingDir
221+ }
218 p := e.permissions.Request(
222 p := e.permissions.Request(
219 permission.CreatePermissionRequest{
223 permission.CreatePermissionRequest{
220 SessionID: sessionID,
224 SessionID: sessionID,
221− Path: filePath,
225+ Path: permissionPath,
222 ToolCallID: call.ID,
226 ToolCallID: call.ID,
223 ToolName: EditToolName,
227 ToolName: EditToolName,
224 Action: "write",
228 Action: "write",
@@ -336,10 +340,15 @@ func (e *editTool) deleteContent(ctx context.Context, filePath, oldString string
336 strings.TrimPrefix(filePath, e.workingDir),
340 strings.TrimPrefix(filePath, e.workingDir),
337 )
341 )
338
342
343+ permissionPath := filePath
344+ if strings.HasPrefix(filePath, e.workingDir) {
345+ permissionPath = e.workingDir
346+ }
347+
339 p := e.permissions.Request(
348 p := e.permissions.Request(
340 permission.CreatePermissionRequest{
349 permission.CreatePermissionRequest{
341 SessionID: sessionID,
350 SessionID: sessionID,
342− Path: filePath,
351+ Path: permissionPath,
343 ToolCallID: call.ID,
352 ToolCallID: call.ID,
344 ToolName: EditToolName,
353 ToolName: EditToolName,
345 Action: "write",
354 Action: "write",
@@ -466,10 +475,15 @@ func (e *editTool) replaceContent(ctx context.Context, filePath, oldString, newS
466 newContent,
475 newContent,
467 strings.TrimPrefix(filePath, e.workingDir),
476 strings.TrimPrefix(filePath, e.workingDir),
468 )
477 )
478+
479+ permissionPath := filePath
480+ if strings.HasPrefix(filePath, e.workingDir) {
481+ permissionPath = e.workingDir
482+ }
469 p := e.permissions.Request(
483 p := e.permissions.Request(
470 permission.CreatePermissionRequest{
484 permission.CreatePermissionRequest{
471 SessionID: sessionID,
485 SessionID: sessionID,
472− Path: filePath,
486+ Path: permissionPath,
473 ToolCallID: call.ID,
487 ToolCallID: call.ID,
474 ToolName: EditToolName,
488 ToolName: EditToolName,
475 Action: "write",
489 Action: "write",
internal/llm/tools/multiedit.go+11−3
@@ -250,9 +250,14 @@ func (m *multiEditTool) processMultiEditWithCreation(ctx context.Context, params
250 // Check permissions
250 // Check permissions
251 _, additions, removals := diff.GenerateDiff("", currentContent, strings.TrimPrefix(params.FilePath, m.workingDir))
251 _, additions, removals := diff.GenerateDiff("", currentContent, strings.TrimPrefix(params.FilePath, m.workingDir))
252
252
253+ permissionPath := params.FilePath
254+ if strings.HasPrefix(params.FilePath, m.workingDir) {
255+ permissionPath = m.workingDir
256+ }
257+
253 p := m.permissions.Request(permission.CreatePermissionRequest{
258 p := m.permissions.Request(permission.CreatePermissionRequest{
254 SessionID: sessionID,
259 SessionID: sessionID,
255− Path: params.FilePath,
260+ Path: permissionPath,
256 ToolCallID: call.ID,
261 ToolCallID: call.ID,
257 ToolName: MultiEditToolName,
262 ToolName: MultiEditToolName,
258 Action: "write",
263 Action: "write",
@@ -359,10 +364,13 @@ func (m *multiEditTool) processMultiEditExistingFile(ctx context.Context, params
359
364
360 // Generate diff and check permissions
365 // Generate diff and check permissions
361 _, additions, removals := diff.GenerateDiff(oldContent, currentContent, strings.TrimPrefix(params.FilePath, m.workingDir))
366 _, additions, removals := diff.GenerateDiff(oldContent, currentContent, strings.TrimPrefix(params.FilePath, m.workingDir))
362−
367+ permissionPath := params.FilePath
368+ if strings.HasPrefix(params.FilePath, m.workingDir) {
369+ permissionPath = m.workingDir
370+ }
363 p := m.permissions.Request(permission.CreatePermissionRequest{
371 p := m.permissions.Request(permission.CreatePermissionRequest{
364 SessionID: sessionID,
372 SessionID: sessionID,
365− Path: params.FilePath,
373+ Path: permissionPath,
366 ToolCallID: call.ID,
374 ToolCallID: call.ID,
367 ToolName: MultiEditToolName,
375 ToolName: MultiEditToolName,
368 Action: "write",
376 Action: "write",
internal/llm/tools/write.go+6−1
@@ -172,10 +172,15 @@ func (w *writeTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error
172 strings.TrimPrefix(filePath, w.workingDir),
172 strings.TrimPrefix(filePath, w.workingDir),
173 )
173 )
174
174
175+ permissionPath := filePath
176+ if strings.HasPrefix(filePath, w.workingDir) {
177+ permissionPath = w.workingDir
178+ }
179+
175 p := w.permissions.Request(
180 p := w.permissions.Request(
176 permission.CreatePermissionRequest{
181 permission.CreatePermissionRequest{
177 SessionID: sessionID,
182 SessionID: sessionID,
178− Path: filePath,
183+ Path: permissionPath,
179 ToolCallID: call.ID,
184 ToolCallID: call.ID,
180 ToolName: WriteToolName,
185 ToolName: WriteToolName,
181 Action: "write",
186 Action: "write",