maybeai-sheet-cli 0.4.1__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/PKG-INFO +13 -149
  2. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/README.md +12 -148
  3. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/pyproject.toml +1 -1
  4. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/__init__.py +1 -1
  5. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/cli.py +1 -2
  6. maybeai_sheet_cli-0.5.0/src/maybeai_sheet/commands/excel_worksheet.py +333 -0
  7. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/endpoints.py +1 -0
  8. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/tests/test_cli.py +7 -6
  9. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/tests/test_endpoints.py +1 -0
  10. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/tests/test_phase2_cli.py +5 -5
  11. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/tests/test_two_engine_cli.py +97 -0
  12. maybeai_sheet_cli-0.4.1/src/maybeai_sheet/commands/excel_worksheet.py +0 -111
  13. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/.claude/settings.local.json +0 -0
  14. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/.gitignore +0 -0
  15. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/CLAUDE.md +0 -0
  16. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/cli-packaging-plan.md +0 -0
  17. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/cli-plan.md +0 -0
  18. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/agent-friendly-command-tree.md +0 -0
  19. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/operation-plan-cli-no-dsl-plan.md +0 -0
  20. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-command-tree.md +0 -0
  21. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-phase-2-routes.md +0 -0
  22. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-phase-2.md +0 -0
  23. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/plans/2026-07-01-mbs-be-new-backend-contracts-plan.md +0 -0
  24. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/plans/2026-07-01-mbs-deferred-table-routing-plan.md +0 -0
  25. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/plans/2026-07-01-mbs-excel-worksheet-multi-table-plan.md +0 -0
  26. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/plans/2026-07-01-mbs-two-engine-command-refactor.md +0 -0
  27. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/2026-07-01-mbs-deferred-routing-e2e-report.html +0 -0
  28. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/2026-07-01-phase1-test-review.html +0 -0
  29. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/2026-07-01-phase2-test-review.html +0 -0
  30. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/20260701-130317-excel-table-empty-range-e2e.html +0 -0
  31. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/20260701-130447-excel-table-empty-range-e2e.html +0 -0
  32. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/20260701-130556-excel-table-empty-range-e2e.html +0 -0
  33. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/20260701-230803-local-cli-endpoint-verification.html +0 -0
  34. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/20260701-232511-local7011-cli-table-metadata-verification.html +0 -0
  35. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/e2e-artifacts/e2e-payloads-20260701-130317.json +0 -0
  36. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/e2e-artifacts/e2e-payloads-20260701-130447.json +0 -0
  37. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/e2e-artifacts/e2e-payloads-20260701-130556.json +0 -0
  38. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/e2e-artifacts/multi-table-empty-range-20260701-130317.xlsx +0 -0
  39. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/superpowers/reports/e2e-artifacts/openpyxl-multi-table-empty-range-20260701-130447.xlsx +0 -0
  40. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/docs/verification-matrix-fallback.md +0 -0
  41. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/client.py +0 -0
  42. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/__init__.py +0 -0
  43. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/_phase2.py +0 -0
  44. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/cell.py +0 -0
  45. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/column.py +0 -0
  46. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/db_table.py +0 -0
  47. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/excel_table.py +0 -0
  48. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/file.py +0 -0
  49. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/formula.py +0 -0
  50. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/history.py +0 -0
  51. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/range.py +0 -0
  52. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/raw.py +0 -0
  53. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/row.py +0 -0
  54. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/share.py +0 -0
  55. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/sheet.py +0 -0
  56. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/style.py +0 -0
  57. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/table.py +0 -0
  58. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/workbook.py +0 -0
  59. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/commands/worksheet.py +0 -0
  60. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/config.py +0 -0
  61. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/errors.py +0 -0
  62. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/formatters.py +0 -0
  63. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/models/__init__.py +0 -0
  64. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/models/share.py +0 -0
  65. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/models/sheet.py +0 -0
  66. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/models/workbook.py +0 -0
  67. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/options.py +0 -0
  68. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/protocol.py +0 -0
  69. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/resolver.py +0 -0
  70. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/table_resolver.py +0 -0
  71. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/src/maybeai_sheet/update.py +0 -0
  72. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/tests/test_formatters.py +0 -0
  73. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/tests/test_resolver.py +0 -0
  74. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/tests/test_update.py +0 -0
  75. {maybeai_sheet_cli-0.4.1 → maybeai_sheet_cli-0.5.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maybeai-sheet-cli
3
- Version: 0.4.1
3
+ Version: 0.5.0
4
4
  Summary: CLI for common MaybeAI spreadsheet operations
5
5
  Project-URL: Homepage, https://github.com/OmniMCP-AI/maybeai-sheet-cli
6
6
  Project-URL: Repository, https://github.com/OmniMCP-AI/maybeai-sheet-cli
@@ -90,8 +90,7 @@ Optional global flags:
90
90
 
91
91
  ## Quick Start
92
92
 
93
- The examples below follow the target protocol names. The currently shipped
94
- compatibility aliases are listed in the Implemented Command Tree.
93
+ The examples below follow the target protocol names.
95
94
 
96
95
  List user-visible workbooks:
97
96
 
@@ -99,10 +98,11 @@ List user-visible workbooks:
99
98
  mbs workbook list-user-workbooks --limit 20
100
99
  ```
101
100
 
102
- Read a bounded range:
101
+ Read a worksheet:
103
102
 
104
103
  ```bash
105
- mbs excel-worksheet range read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
104
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Sheet1
105
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Sheet1 --range A1:H1
106
106
  ```
107
107
 
108
108
  List worksheets:
@@ -176,131 +176,13 @@ CLI command names normalize these relationship labels to hyphenated groups:
176
176
  `excel_worksheet` becomes `excel-worksheet`, `excel_table` becomes
177
177
  `excel-table`, and `db_worksheet(db_table)` becomes `db-table`.
178
178
 
179
- ## Implemented Command Tree
180
-
181
- This is the current shipped command surface. The full roadmap tree below is
182
- separate and includes planned or deferred commands.
183
-
184
- ```text
185
- mbs
186
- ├── update
187
- │ └── Update maybeai-sheet-cli from PyPI.
188
-
189
- ├── workbook
190
- │ ├── create Create a new workbook.
191
- │ ├── create-from-file Import an .xlsx file.
192
- │ ├── import Preferred alias for create-from-file.
193
- │ ├── metadata Inspect workbook profile and routing metadata.
194
- │ ├── list-user-workbooks
195
- │ │ Preferred alias for bounded user workbook listing.
196
- │ ├── list-worksheets List worksheets in a workbook.
197
- │ ├── list List user workbooks with bounded output.
198
- │ ├── search Search user workbooks with bounded output.
199
- │ ├── manifest Compatibility alias for metadata.
200
- │ └── capabilities Inspect workbook capability/profile metadata.
201
-
202
- ├── excel-worksheet
203
- │ ├── metadata Inspect worksheet metadata through workbook profile.
204
- │ └── list-table List worksheet/table metadata for a workbook.
205
-
206
- ├── excel-table
207
- │ ├── metadata Resolve a worksheet-backed table from workbook metadata.
208
- │ ├── schema Infer schema from a resolved worksheet-backed table range.
209
- │ ├── sample Return bounded table sample rows.
210
- │ ├── read Read a resolved worksheet-backed table range.
211
- │ └── insert Insert row objects into a worksheet-backed table.
212
-
213
- ├── db-table
214
- │ ├── metadata Resolve PG/SheetTable-backed worksheet metadata.
215
- │ ├── schema Infer schema from a bounded PG read.
216
- │ ├── sample Return bounded PG table sample rows.
217
- │ ├── read Read PG-backed table rows through routed APIs.
218
- │ └── insert Insert rows into a PG-backed table.
219
-
220
- ├── worksheet
221
- │ ├── list List worksheets in a workbook.
222
- │ ├── create Create a worksheet, optionally with starter values.
223
- │ ├── rename Rename a worksheet.
224
- │ ├── delete Delete a worksheet; requires --yes unless --dry-run.
225
- │ ├── copy Copy a worksheet.
226
- │ └── move Move a worksheet to a zero-based index.
227
-
228
- ├── range
229
- │ ├── read Read a bounded A1 range.
230
- │ ├── write Write a JSON matrix into an A1 range.
231
- │ ├── clear Clear an A1 range.
232
- │ └── search Search a worksheet with bounded results.
233
-
234
- ├── row
235
- │ ├── insert Insert rows.
236
- │ ├── delete Delete rows; requires --yes unless --dry-run.
237
- │ └── move Move rows.
238
-
239
- ├── column
240
- │ ├── insert Insert columns.
241
- │ ├── delete Delete columns; requires --yes unless --dry-run.
242
- │ ├── move Move columns.
243
- │ └── width Set column width.
244
-
245
- ├── formula
246
- │ ├── read Read formulas with FORMULA render mode.
247
- │ ├── set Set one formula cell.
248
- │ ├── batch-set Set formula ranges from a JSON operations file.
249
- │ ├── recalculate Recalculate formulas for a worksheet/workbook.
250
- │ ├── calculate Calculate one formula cell.
251
- │ └── lineage Trace formula lineage for one cell.
252
-
253
- ├── style
254
- │ ├── freeze-panes Freeze rows/columns using an A1 cell boundary.
255
- │ ├── auto-filter set Set worksheet auto-filter range.
256
- │ ├── auto-filter remove Remove worksheet auto-filter.
257
- │ ├── columns-width Set column widths.
258
- │ └── rows-height Set row heights.
259
-
260
- ├── history
261
- │ ├── list List workbook versions with bounded output.
262
- │ └── read Read a workbook version.
263
-
264
- ├── file
265
- │ ├── export Export workbook bytes to --out.
266
- │ ├── list List files with bounded output.
267
- │ └── search Search files with bounded output.
268
-
269
- ├── share
270
- │ ├── visibility Set workbook visibility.
271
- │ ├── grant Grant a user permission.
272
- │ ├── permission Read current permission.
273
- │ ├── remove Remove a user's access.
274
- │ └── list List sharing entries.
275
-
276
- ├── raw
277
- │ └── post Low-level POST escape hatch for routed API paths.
278
-
279
- └── sheet Legacy compatibility aliases.
280
- ├── read
281
- ├── read-range
282
- ├── read-many
283
- ├── named-range
284
- ├── headers
285
- ├── worksheets
286
- ├── formulas
287
- ├── write-range
288
- ├── clear-range
289
- ├── append
290
- ├── upsert
291
- ├── formula-set
292
- ├── formula-batch-set
293
- ├── recalculate
294
- └── create-worksheet
295
- ```
296
179
 
297
180
  ## Full Command Tree
298
181
 
299
182
  The reviewed tree below is the source of truth for the protocol shape. Product
300
183
  model labels in this block use underscores; CLI names in examples and future
301
184
  router code should normalize them to hyphenated command groups such as
302
- `excel-worksheet`, `excel-table`, and `db-table`. The older `sheet ...`
303
- commands remain available as compatibility aliases. This tree includes
185
+ `excel-worksheet`, `excel-table`, and `db-table`. This tree includes
304
186
  implemented, planned, deferred, and not-recommended command surfaces.
305
187
 
306
188
  Status legend for the full tree:
@@ -336,6 +218,7 @@ mbs
336
218
  │ └── rename API Rename a stored file.
337
219
 
338
220
  ├── excel_worksheet
221
+ │ ├── read API Read the full range of the worksheet.
339
222
  │ ├── list-table API List worksheets in a workbook.
340
223
  │ ├── create API Create a worksheet, optionally with starter values.
341
224
  │ ├── update API Update worksheet metadata.
@@ -434,24 +317,6 @@ mbs
434
317
  │ ├── create API Create or grant sharing access.
435
318
  │ ├── remove API Remove a user's access.
436
319
  │ ├── modify API Modify sharing access.
437
-
438
-
439
- └── sheet Legacy compatibility aliases.
440
- ├── read
441
- ├── read-range
442
- ├── read-many
443
- ├── named-range
444
- ├── headers
445
- ├── worksheets
446
- ├── formulas
447
- ├── write-range
448
- ├── clear-range
449
- ├── append
450
- ├── upsert
451
- ├── formula-set
452
- ├── formula-batch-set
453
- ├── recalculate
454
- └── create-worksheet
455
320
  ```
456
321
 
457
322
  Full tree examples:
@@ -474,13 +339,15 @@ mbs workbook copy --doc-id abc123 --name "Budget Copy" # API
474
339
  mbs workbook delete --doc-id abc123 --dry-run # API
475
340
 
476
341
  # excel-worksheet
342
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Actuals # API
343
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Actuals --range A1:D20 # API
477
344
  mbs excel-worksheet create --doc-id abc123 --name Actuals # API
478
345
  mbs excel-worksheet update --doc-id abc123 --worksheet-name Actuals --title "Actuals FY26" # API
479
346
  mbs excel-worksheet metadata --doc-id abc123 --worksheet-name Actuals # API
480
347
  mbs excel-worksheet sample --doc-id abc123 --worksheet-name Actuals --range A1:Z5000 --limit 50 # PLAN
481
348
 
482
349
  # excel-worksheet range
483
- mbs excel-worksheet range read --doc-id abc123 --worksheet-name Actuals --range A1:D20 # API
350
+ mbs excel-worksheet range read --doc-id abc123 --worksheet-name Actuals --range A1:D20 # API, advanced structured alias
484
351
  mbs excel-worksheet range used-range --doc-id abc123 --worksheet-name Actuals # PLAN
485
352
  mbs excel-worksheet range lineage --doc-id abc123 --worksheet-name Model --cell E2 --format tree # API
486
353
 
@@ -535,9 +402,6 @@ mbs version restore --doc-id abc123 --version-id v42 --dry-run # PLAN
535
402
 
536
403
  # share
537
404
  mbs share create --doc-id abc123 --email teammate@example.com --role viewer # API
538
-
539
- # sheet
540
- mbs sheet read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
541
405
  ```
542
406
 
543
407
  Refactor planning is tracked separately from this README:
@@ -561,8 +425,8 @@ dependency graph beyond cell lineage PLAN
561
425
  Relationship guide:
562
426
 
563
427
  - Use `workbook` for file-level creation, upload/import, and manifest checks.
564
- - Use `excel-worksheet` for Excel tab lifecycle operations and worksheet/range
565
- inspection.
428
+ - Use `excel-worksheet read` for full worksheet used-range inspection.
429
+ - Use `excel-worksheet` for Excel tab lifecycle operations.
566
430
  - Use `excel-worksheet range` for coordinate-based reads, writes, formulas, and
567
431
  cell lineage.
568
432
  - Use `excel-table` for worksheet-backed table views. One Excel worksheet can
@@ -597,7 +461,7 @@ Targeting notes:
597
461
  from workbook metadata, for example `--table-id 1`, and maps internally to
598
462
  table metadata such as `worksheet_name` and `range`.
599
463
  - Use `--name` or backend ids when operating on a `db-table`.
600
- - Use `--gid` only for legacy gid-specific compatibility aliases.
464
+ - Use `--gid` only when a route specifically requires gid targeting.
601
465
 
602
466
  ## Input Rules
603
467
 
@@ -66,8 +66,7 @@ Optional global flags:
66
66
 
67
67
  ## Quick Start
68
68
 
69
- The examples below follow the target protocol names. The currently shipped
70
- compatibility aliases are listed in the Implemented Command Tree.
69
+ The examples below follow the target protocol names.
71
70
 
72
71
  List user-visible workbooks:
73
72
 
@@ -75,10 +74,11 @@ List user-visible workbooks:
75
74
  mbs workbook list-user-workbooks --limit 20
76
75
  ```
77
76
 
78
- Read a bounded range:
77
+ Read a worksheet:
79
78
 
80
79
  ```bash
81
- mbs excel-worksheet range read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
80
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Sheet1
81
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Sheet1 --range A1:H1
82
82
  ```
83
83
 
84
84
  List worksheets:
@@ -152,131 +152,13 @@ CLI command names normalize these relationship labels to hyphenated groups:
152
152
  `excel_worksheet` becomes `excel-worksheet`, `excel_table` becomes
153
153
  `excel-table`, and `db_worksheet(db_table)` becomes `db-table`.
154
154
 
155
- ## Implemented Command Tree
156
-
157
- This is the current shipped command surface. The full roadmap tree below is
158
- separate and includes planned or deferred commands.
159
-
160
- ```text
161
- mbs
162
- ├── update
163
- │ └── Update maybeai-sheet-cli from PyPI.
164
-
165
- ├── workbook
166
- │ ├── create Create a new workbook.
167
- │ ├── create-from-file Import an .xlsx file.
168
- │ ├── import Preferred alias for create-from-file.
169
- │ ├── metadata Inspect workbook profile and routing metadata.
170
- │ ├── list-user-workbooks
171
- │ │ Preferred alias for bounded user workbook listing.
172
- │ ├── list-worksheets List worksheets in a workbook.
173
- │ ├── list List user workbooks with bounded output.
174
- │ ├── search Search user workbooks with bounded output.
175
- │ ├── manifest Compatibility alias for metadata.
176
- │ └── capabilities Inspect workbook capability/profile metadata.
177
-
178
- ├── excel-worksheet
179
- │ ├── metadata Inspect worksheet metadata through workbook profile.
180
- │ └── list-table List worksheet/table metadata for a workbook.
181
-
182
- ├── excel-table
183
- │ ├── metadata Resolve a worksheet-backed table from workbook metadata.
184
- │ ├── schema Infer schema from a resolved worksheet-backed table range.
185
- │ ├── sample Return bounded table sample rows.
186
- │ ├── read Read a resolved worksheet-backed table range.
187
- │ └── insert Insert row objects into a worksheet-backed table.
188
-
189
- ├── db-table
190
- │ ├── metadata Resolve PG/SheetTable-backed worksheet metadata.
191
- │ ├── schema Infer schema from a bounded PG read.
192
- │ ├── sample Return bounded PG table sample rows.
193
- │ ├── read Read PG-backed table rows through routed APIs.
194
- │ └── insert Insert rows into a PG-backed table.
195
-
196
- ├── worksheet
197
- │ ├── list List worksheets in a workbook.
198
- │ ├── create Create a worksheet, optionally with starter values.
199
- │ ├── rename Rename a worksheet.
200
- │ ├── delete Delete a worksheet; requires --yes unless --dry-run.
201
- │ ├── copy Copy a worksheet.
202
- │ └── move Move a worksheet to a zero-based index.
203
-
204
- ├── range
205
- │ ├── read Read a bounded A1 range.
206
- │ ├── write Write a JSON matrix into an A1 range.
207
- │ ├── clear Clear an A1 range.
208
- │ └── search Search a worksheet with bounded results.
209
-
210
- ├── row
211
- │ ├── insert Insert rows.
212
- │ ├── delete Delete rows; requires --yes unless --dry-run.
213
- │ └── move Move rows.
214
-
215
- ├── column
216
- │ ├── insert Insert columns.
217
- │ ├── delete Delete columns; requires --yes unless --dry-run.
218
- │ ├── move Move columns.
219
- │ └── width Set column width.
220
-
221
- ├── formula
222
- │ ├── read Read formulas with FORMULA render mode.
223
- │ ├── set Set one formula cell.
224
- │ ├── batch-set Set formula ranges from a JSON operations file.
225
- │ ├── recalculate Recalculate formulas for a worksheet/workbook.
226
- │ ├── calculate Calculate one formula cell.
227
- │ └── lineage Trace formula lineage for one cell.
228
-
229
- ├── style
230
- │ ├── freeze-panes Freeze rows/columns using an A1 cell boundary.
231
- │ ├── auto-filter set Set worksheet auto-filter range.
232
- │ ├── auto-filter remove Remove worksheet auto-filter.
233
- │ ├── columns-width Set column widths.
234
- │ └── rows-height Set row heights.
235
-
236
- ├── history
237
- │ ├── list List workbook versions with bounded output.
238
- │ └── read Read a workbook version.
239
-
240
- ├── file
241
- │ ├── export Export workbook bytes to --out.
242
- │ ├── list List files with bounded output.
243
- │ └── search Search files with bounded output.
244
-
245
- ├── share
246
- │ ├── visibility Set workbook visibility.
247
- │ ├── grant Grant a user permission.
248
- │ ├── permission Read current permission.
249
- │ ├── remove Remove a user's access.
250
- │ └── list List sharing entries.
251
-
252
- ├── raw
253
- │ └── post Low-level POST escape hatch for routed API paths.
254
-
255
- └── sheet Legacy compatibility aliases.
256
- ├── read
257
- ├── read-range
258
- ├── read-many
259
- ├── named-range
260
- ├── headers
261
- ├── worksheets
262
- ├── formulas
263
- ├── write-range
264
- ├── clear-range
265
- ├── append
266
- ├── upsert
267
- ├── formula-set
268
- ├── formula-batch-set
269
- ├── recalculate
270
- └── create-worksheet
271
- ```
272
155
 
273
156
  ## Full Command Tree
274
157
 
275
158
  The reviewed tree below is the source of truth for the protocol shape. Product
276
159
  model labels in this block use underscores; CLI names in examples and future
277
160
  router code should normalize them to hyphenated command groups such as
278
- `excel-worksheet`, `excel-table`, and `db-table`. The older `sheet ...`
279
- commands remain available as compatibility aliases. This tree includes
161
+ `excel-worksheet`, `excel-table`, and `db-table`. This tree includes
280
162
  implemented, planned, deferred, and not-recommended command surfaces.
281
163
 
282
164
  Status legend for the full tree:
@@ -312,6 +194,7 @@ mbs
312
194
  │ └── rename API Rename a stored file.
313
195
 
314
196
  ├── excel_worksheet
197
+ │ ├── read API Read the full range of the worksheet.
315
198
  │ ├── list-table API List worksheets in a workbook.
316
199
  │ ├── create API Create a worksheet, optionally with starter values.
317
200
  │ ├── update API Update worksheet metadata.
@@ -410,24 +293,6 @@ mbs
410
293
  │ ├── create API Create or grant sharing access.
411
294
  │ ├── remove API Remove a user's access.
412
295
  │ ├── modify API Modify sharing access.
413
-
414
-
415
- └── sheet Legacy compatibility aliases.
416
- ├── read
417
- ├── read-range
418
- ├── read-many
419
- ├── named-range
420
- ├── headers
421
- ├── worksheets
422
- ├── formulas
423
- ├── write-range
424
- ├── clear-range
425
- ├── append
426
- ├── upsert
427
- ├── formula-set
428
- ├── formula-batch-set
429
- ├── recalculate
430
- └── create-worksheet
431
296
  ```
432
297
 
433
298
  Full tree examples:
@@ -450,13 +315,15 @@ mbs workbook copy --doc-id abc123 --name "Budget Copy" # API
450
315
  mbs workbook delete --doc-id abc123 --dry-run # API
451
316
 
452
317
  # excel-worksheet
318
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Actuals # API
319
+ mbs excel-worksheet read --doc-id abc123 --worksheet-name Actuals --range A1:D20 # API
453
320
  mbs excel-worksheet create --doc-id abc123 --name Actuals # API
454
321
  mbs excel-worksheet update --doc-id abc123 --worksheet-name Actuals --title "Actuals FY26" # API
455
322
  mbs excel-worksheet metadata --doc-id abc123 --worksheet-name Actuals # API
456
323
  mbs excel-worksheet sample --doc-id abc123 --worksheet-name Actuals --range A1:Z5000 --limit 50 # PLAN
457
324
 
458
325
  # excel-worksheet range
459
- mbs excel-worksheet range read --doc-id abc123 --worksheet-name Actuals --range A1:D20 # API
326
+ mbs excel-worksheet range read --doc-id abc123 --worksheet-name Actuals --range A1:D20 # API, advanced structured alias
460
327
  mbs excel-worksheet range used-range --doc-id abc123 --worksheet-name Actuals # PLAN
461
328
  mbs excel-worksheet range lineage --doc-id abc123 --worksheet-name Model --cell E2 --format tree # API
462
329
 
@@ -511,9 +378,6 @@ mbs version restore --doc-id abc123 --version-id v42 --dry-run # PLAN
511
378
 
512
379
  # share
513
380
  mbs share create --doc-id abc123 --email teammate@example.com --role viewer # API
514
-
515
- # sheet
516
- mbs sheet read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
517
381
  ```
518
382
 
519
383
  Refactor planning is tracked separately from this README:
@@ -537,8 +401,8 @@ dependency graph beyond cell lineage PLAN
537
401
  Relationship guide:
538
402
 
539
403
  - Use `workbook` for file-level creation, upload/import, and manifest checks.
540
- - Use `excel-worksheet` for Excel tab lifecycle operations and worksheet/range
541
- inspection.
404
+ - Use `excel-worksheet read` for full worksheet used-range inspection.
405
+ - Use `excel-worksheet` for Excel tab lifecycle operations.
542
406
  - Use `excel-worksheet range` for coordinate-based reads, writes, formulas, and
543
407
  cell lineage.
544
408
  - Use `excel-table` for worksheet-backed table views. One Excel worksheet can
@@ -573,7 +437,7 @@ Targeting notes:
573
437
  from workbook metadata, for example `--table-id 1`, and maps internally to
574
438
  table metadata such as `worksheet_name` and `range`.
575
439
  - Use `--name` or backend ids when operating on a `db-table`.
576
- - Use `--gid` only for legacy gid-specific compatibility aliases.
440
+ - Use `--gid` only when a route specifically requires gid targeting.
577
441
 
578
442
  ## Input Rules
579
443
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "maybeai-sheet-cli"
7
- version = "0.4.1"
7
+ version = "0.5.0"
8
8
  description = "CLI for common MaybeAI spreadsheet operations"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.4.1"
5
+ __version__ = "0.5.0"
@@ -20,7 +20,6 @@ from .commands.share import app as share_app
20
20
  from .commands.sheet import app as sheet_app
21
21
  from .commands.style import app as style_app
22
22
  from .commands.workbook import app as workbook_app
23
- from .commands.worksheet import app as worksheet_app
24
23
  from .config import CLIContext
25
24
  from .formatters import handle_cli_error
26
25
  from .update import run_update
@@ -149,9 +148,9 @@ def update_cli(
149
148
 
150
149
  app.add_typer(workbook_app, name="workbook")
151
150
  app.add_typer(excel_worksheet_app, name="excel-worksheet")
151
+ app.add_typer(excel_worksheet_app, name="excel_worksheet", hidden=True)
152
152
  app.add_typer(excel_table_app, name="excel-table")
153
153
  app.add_typer(db_table_app, name="db-table")
154
- app.add_typer(worksheet_app, name="worksheet")
155
154
  app.add_typer(range_app, name="range")
156
155
  app.add_typer(row_app, name="row")
157
156
  app.add_typer(column_app, name="column")