Skip to content

Worksheet Intents

WorksheetIntent derives CommandTool, making each variant both a reduce command and an AI tool. Dispatch path:

session.dispatch(Command::Intent(SessionIntent::Modality(WorksheetIntent::...)));
IntentParametersPurpose
ListPropertiesList all properties with types and defaults
AddPropertyname, property_type, description?, icon?, default_value?Add a property to the schema
UpdatePropertykey, name?, description?, icon?, default_value?Update an existing property
RemovePropertykeyRemove a property

Supported property_type values: text, number, boolean, color, date, url, json, select, cloze, formula.

IntentParametersPurpose
ListPlacementsList all placements on the grid
AddPlacementcomponent_id, layout?, bindings?Add a component to the grid
UpdatePlacementid, layout?, bindings?Update placement layout/bindings
RemovePlacementidRemove a placement

The layout parameter is an AutoGridNode — the worksheet’s grid layout system. When omitted, the placement uses default grid positioning.

IntentParametersPurpose
UpdateBindingplacement_id, key, valueUpdate a single binding value on a placement
IntentParametersPurpose
UpdateGridrows?, columns?Update worksheet grid dimensions
IntentPurpose
RecompileForce recompilation of all placements

Intent handlers emit the same structured output types as the whiteboard:

pub struct PropertyListOutput {
pub properties: Vec<PropertyInfo>,
}
pub struct MutationOutput {
pub ok: bool,
pub id: Option<String>,
pub message: Option<String>,
}
  • Overview — struct, types, compilation flow
  • Components — the WorksheetComponent subtrait
  • Command — the universal envelope wrapping intents
  • Bridge — how intents become AI tools