DrillStack
rendered, live
the wire — click a line to scrub
the contract — DrillStack in catalog.json
{
"type": "object",
"properties": {
"component": {
"const": "DrillStack"
},
"levels": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Breadcrumb text and the level's accessible name."
},
"componentId": {
"type": "string",
"description": "ComponentId of the level's content, already on the surface."
}
},
"required": [
"title",
"componentId"
],
"additionalProperties": false
},
"description": "The drill path, surface first. Each level names a component already on the surface."
},
"activeIndex": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/DataBinding",
"description": "Data binding for the visible depth, always {\"path\": ...}. Push a level by writing the index with updateDataModel — never by re-sending the stack. Required."
},
"dismissAction": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/Action",
"description": "Optional: fired when the user dismisses the whole stack."
}
},
"required": [
"levels",
"activeIndex"
]
}the prompt-pack — paste into your agent
### DrillStack — four depths on one page
The container that keeps surface → synthesis → impact → source in one place. Levels name
components already on the surface; the visible depth is data.
| prop | type | notes |
| --------------- | -------------------------------- | ------------------------------------------------------------- |
| `levels` | {title, componentId}[], required | surface first; each title is its level's accessible name |
| `activeIndex` | `{"path"}`, required | bound depth — push/pop by writing the index, never re-sending |
| `dismissAction` | action | optional whole-stack dismissal |
```
{"id":"drill","component":"DrillStack","levels":[{"title":"Insights","componentId":"insight_ra"},{"title":"Affected accounts","componentId":"impact_table"}],"activeIndex":{"path":"/drill/depth"}}
```
To push the second level:
```
{"version":"v1.0","updateDataModel":{"surfaceId":"i1","path":"/drill/depth","value":1}}
```