Agent: sharing tools that ask first, and a hard delete for a misplaced plop
list_shares, share_garden, remove_share and public_link (get / enable / rotate / disable) wrap the sharing service. They change who can see a garden beyond the screen, so they are gated twice: the prompt tells the model to say exactly what it would do and ask, and the tools refuse without confirmed=true, which their descriptions allow only after a yes in the conversation. The refusal names the action, so the question the model asks is precise. share_garden changes the role of an existing share instead of failing on it; remove_share takes the email list_shares reports; an unknown email explains that the person has to sign in once first. public_link returns the address (PANSY_BASE_URL + /g/<token>, via the new Service.PublicShareURL), never a bare token. delete_planting is the hard delete for a plop that was never really planted, as opposed to remove_planting's "it came out"; it is recorded, so undoable. Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
@@ -109,6 +109,7 @@ const TOOL_LABELS: Record<string, string> = {
|
||||
move_planting: 'Moving a plant',
|
||||
update_planting: 'Correcting a planting',
|
||||
remove_planting: 'Pulling a plant',
|
||||
delete_planting: 'Deleting a planting',
|
||||
remove_plantings: 'Pulling plants',
|
||||
clear_object: 'Clearing a bed',
|
||||
find_plant: 'Looking up a plant',
|
||||
@@ -128,6 +129,10 @@ const TOOL_LABELS: Record<string, string> = {
|
||||
copy_garden: 'Copying the garden',
|
||||
update_garden: 'Changing the garden',
|
||||
create_garden: 'Starting a garden',
|
||||
list_shares: 'Checking who has access',
|
||||
share_garden: 'Sharing the garden',
|
||||
remove_share: 'Removing access',
|
||||
public_link: 'Managing the public link',
|
||||
}
|
||||
|
||||
export function describeStep(step: AgentStep): string {
|
||||
|
||||
Reference in New Issue
Block a user