Replies: 14 comments 10 replies
-
|
I was honestly brainstorming some "whitelist"rules yesterday. Things that a person could add that would always allow certain commands. |
Beta Was this translation helpful? Give feedback.
-
|
This is definitely on the roadmap. It needs some genuine thought though as I do not want to see it implemented in potentially dangerous ways. Maybe this discussion can be used as a braindump. A whitelist is a strong concept and accelerating the velocity is always good but I'd rather prompt ten times too much than one time causing a (potentially catastrophic) issue. After all we are "just" parsing and comparing we are not using a real AST based parser. Please keep in mind that in any case Security and Safety trumps Velocity. |
Beta Was this translation helpful? Give feedback.
-
|
Security and Safety is key, maybe go both ways Whitelist and blacklist e.g. Blacklist = - Whitelist = + so +createfolder -modifyfile so always create folders and files if needed but always prompt for modifying files, starting with a default file that has all the different options set to prompt e.g. all - 's just an idea. |
Beta Was this translation helpful? Give feedback.
-
|
The issue is not necessarily the lists. At its core Late already uses a whitelist of bash commands. Bash (and Pwsh) are both Turing complete which means you can do funky stuff. |
Beta Was this translation helpful? Give feedback.
-
|
I'll think about it. Mainly i would use https://gtfobins.org/ as ideas where simple linux commands can be abused so I want to ensure that nefarious versions of commands can't be called. But like previously stated, if a user wants to screw their system, and YOLO it by adding all commands here on their own, who are we to say no? I like the idea of creating the function and the people can tune it to their liking. |
Beta Was this translation helpful? Give feedback.
-
|
I do see your line of thought though I must disagree. We cannot have an infinite list of commands backed up that is simply unmaintainable (especially when moving towards Windows). The main issue here is we simply cannot rely on a blocklist while we are doing strings parsing. That is specifically why you are prompted for anything that we cannot parse. |
Beta Was this translation helpful? Give feedback.
-
|
Maybe a just a whitelist personally happy for new files/folders to be created, where I want confirmations is destructive stuff, modify, delete etc. Absolutely anything that cannot be parsed/understood prompt for confirmation. Just creating new files/folders for me would reduce confirmations significantly, mainly because my workflow is I use AI to generate the basic files, I take over from there and modify manually, of course my workflow maybe very different from the norm. |
Beta Was this translation helpful? Give feedback.
-
|
Building on AlexW68's last point , I think narrowing the ask to new file/folder creation only is actually the right approach, and here's why it sidesteps the AST parsing problem entirely: Instead of trying to parse what a shell command might do, we look at the outcome: does the target path already exist?
This avoids the The second constraint I'd add: scope it strictly to the project's working directory. If the target path falls outside the So the rule set would be very small and conservative:
This lines up with AlexW68's workflow (generate scaffolding, then take over manually) and doesn't require maintaining a command list at all. It also avoids the false-sense-of-security problem since the rules are based on observable filesystem state, not command pattern matching. |
Beta Was this translation helpful? Give feedback.
-
|
The current logic in a debug loop is tiring to the point of not usable, I get asked every time when rebuilding . In the issue #32 I basically suggested a white list. I still believe in some kind of whitelisting but maybe it only should be some kind of curated list for a handful of common actions? And that the model is steered to use those actions. |
Beta Was this translation helpful? Give feedback.
-
|
Is there a reason to prefer a shell/bash tool for the agent over giving it more 'safe' tools implemented in Go? Does the extra context degrade things too much? I was experimenting with giving it a find, grep, etc. tool to use last night (and then taking away bash) and it seems to work, but I'm still learning how agent harnesses/tool calling behavior works so this is a genuine question! |
Beta Was this translation helpful? Give feedback.
-
|
https://github.com/vaaraio/vaara An engine designed to audit tool calls. I started doing similar work inside my infosec tools I've build that have an audit and risk setup. |
Beta Was this translation helpful? Give feedback.
-
|
Test code for "tool calls" Update Summary: New-Path Auto-Approval + Comparison Test What we changed
Decision rules now
Key implementation points
Unit tests added/updated
Files with test updates Validation
|
Beta Was this translation helpful? Give feedback.
-
|
@AlexW68 please try the latest build and see if it helps |
Beta Was this translation helpful? Give feedback.
-
|
One more angle to think about: filesystem corruption may not the worst problem - data exfiltration may be. I'm running But what about API keys, access tokens, secrets in environment variables, GPG or SSH keys accessible to agents? By the way, will post separate discussion with my current podman setup if someone wants to run with |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Had a good go at Late, love it, nice work, it works the way I do, I like that it keeps you in the loop and it's quick.
A thought, having seen the -i-promise-i-have-backups-and-will-not-file-issues hahaha.
It would be nice to have a more granular approach to this, personally if something is being created from scratch just do it, if it's modifing existing code, then maybe I want to get involved in that.
Maybe a rules files per project dictating when to ask for confirmation and when not to?
Just a thought.
Thanks for Late.
Beta Was this translation helpful? Give feedback.
All reactions