edit_native_sheet_tab
Apply one additive structural edit to an editable native-sheet tab: create, rename, resize, or insert a row/column. op selects the edit and determines which other fields are required: ‘create’ takes new_tab (and no tab_id — the server generates one); ‘rename’ takes tab_id and name; ‘resize’ takes tab_id and resize (row/column bounds, growth only — shrinking is rejected); ‘insert’ takes tab_id, axis, and index (inserts exactly one row or column and shifts cells and formatting).
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
model_name | Annotated[str, Field(description='Name of the Bridge Town model that owns the sheet.')] | Yes | — | |
sheet_id | Annotated[str, Field(description='Sheet identifier, as returned by list_native_sheets.')] | Yes | — | |
op | Annotated[Literal['create', 'rename', 'resize', 'insert'], Field(description='Which structural edit to apply: create, rename, resize, or insert.')] | Yes | — | |
tab_id | `Annotated[str | None, Field(description=“Tab to rename/resize/insert into. Omit for op=‘create’.”)]` | No | None |
new_tab | `Annotated[NewTabInput | None, Field(description=“Name and optional bounds for a new tab. Required for op=‘create’.”)]` | No | None |
name | `Annotated[str | None, Field(min_length=1, max_length=200, description=“New display name for the tab. Required for op=‘rename’.”)]` | No | None |
resize | `Annotated[TabResizeInput | None, Field(description=“New row and/or column bounds, growth only. Required for op=‘resize’.”)]` | No | None |
axis | `Annotated[Literal[‘row’, ‘column’] | None, Field(description=“Axis to insert. Required for op=‘insert’.”)]` | No | None |
index | `Annotated[int | None, Field(ge=0, description=“Zero-based insertion position. Required for op=‘insert’.”)]` | No | None |
expected_sha | Annotated[str, Field(description='Expected sheet blob SHA-1 for optimistic concurrency.')] | No | '' | |
commit_message | Annotated[str, Field(description='Optional Git commit message.')] | No | '' | |
branch | `Annotated[str | None, Field(description=‘Scenario branch; null uses the sheet default.’)]` | No | None |
workspace_id | `Annotated[str | None, Field(description=WORKSPACE_ID_FIELD_DESCRIPTION)]` | No | None |
Returns
Section titled “Returns”Returns a structured object. Top-level fields:
_bt_tool(string)model_name(string)sheet_id(string)tab_id(string)branch(string)commit_sha(string)sha(string)updated_cells(integer)range_formatted_cells(integer)calculation_status(string)new_tab_id(string)workspace_id(string)staged_count(null)
See the response example below for the full payload shape.
Example
Section titled “Example”Tool Call
Section titled “Tool Call”{ "name": "edit_native_sheet_tab", "arguments": { "model_name": "forecasts", "sheet_id": "assumptions", "op": "create", "new_tab": { "name": "Summary", "row_count": 100, "column_count": 26 }, "expected_sha": "abc1234def5678901234567890abcdef12345678" }}Response
Section titled “Response”{ "_bt_tool": "edit_native_sheet_tab", "model_name": "forecasts", "sheet_id": "assumptions", "tab_id": "tab2", "branch": "main", "commit_sha": "abc1234def5678901234567890abcdef12345678", "sha": "abc1234def5678901234567890abcdef12345678", "updated_cells": 0, "range_formatted_cells": 0, "calculation_status": "dirty", "new_tab_id": "tab2", "workspace_id": "dddddddd-dddd-dddd-dddd-dddddddddddd", "staged_count": null}- Module:
Native Sheets - Requires authentication via API token or Auth0 JWT.