maybeai-sheet-cli 0.2.0__tar.gz → 0.3.1__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.
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/PKG-INFO +72 -10
- maybeai_sheet_cli-0.3.1/README.md +187 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/cli-packaging-plan.md +29 -29
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/cli-plan.md +26 -26
- maybeai_sheet_cli-0.3.1/docs/agent-friendly-command-tree.md +1245 -0
- maybeai_sheet_cli-0.3.1/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-command-tree.md +1270 -0
- maybeai_sheet_cli-0.3.1/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-phase-2-routes.md +50 -0
- maybeai_sheet_cli-0.3.1/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-phase-2.md +713 -0
- maybeai_sheet_cli-0.3.1/docs/superpowers/reports/2026-07-01-phase1-test-review.html +326 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/docs/verification-matrix-fallback.md +1 -1
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/pyproject.toml +2 -2
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/__init__.py +1 -1
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/cli.py +10 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/client.py +10 -1
- maybeai_sheet_cli-0.3.1/src/maybeai_sheet/commands/formula.py +133 -0
- maybeai_sheet_cli-0.3.1/src/maybeai_sheet/commands/range.py +108 -0
- maybeai_sheet_cli-0.3.1/src/maybeai_sheet/commands/share.py +344 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/commands/sheet.py +1 -0
- maybeai_sheet_cli-0.3.1/src/maybeai_sheet/commands/table.py +112 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/commands/workbook.py +59 -4
- maybeai_sheet_cli-0.3.1/src/maybeai_sheet/commands/worksheet.py +65 -0
- maybeai_sheet_cli-0.3.1/src/maybeai_sheet/models/share.py +47 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/update.py +2 -2
- maybeai_sheet_cli-0.3.1/tests/test_cli.py +1098 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/tests/test_update.py +1 -1
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/uv.lock +1 -1
- maybeai_sheet_cli-0.2.0/README.md +0 -125
- maybeai_sheet_cli-0.2.0/tests/test_cli.py +0 -543
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/.claude/settings.local.json +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/.gitignore +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/CLAUDE.md +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/commands/__init__.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/commands/raw.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/config.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/errors.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/formatters.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/models/__init__.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/models/sheet.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/models/workbook.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/options.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/src/maybeai_sheet/resolver.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/tests/test_formatters.py +0 -0
- {maybeai_sheet_cli-0.2.0 → maybeai_sheet_cli-0.3.1}/tests/test_resolver.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: maybeai-sheet-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
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
|
|
@@ -26,10 +26,23 @@ Description-Content-Type: text/markdown
|
|
|
26
26
|
|
|
27
27
|
CLI for MaybeAI spreadsheet operations.
|
|
28
28
|
|
|
29
|
-
`
|
|
29
|
+
`mbs` wraps the MaybeAI spreadsheet HTTP APIs behind a stable command-line interface for humans, CI jobs, and agents.
|
|
30
30
|
|
|
31
31
|
## Install
|
|
32
32
|
|
|
33
|
+
On Debian/Ubuntu and other **PEP 668** systems, do **not** use bare `pip install` on system Python. Use **pipx** (recommended for CLIs):
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
sudo apt install -y pipx python3-venv
|
|
37
|
+
pipx ensurepath
|
|
38
|
+
# re-login or: source ~/.bashrc
|
|
39
|
+
|
|
40
|
+
pipx install maybeai-sheet-cli
|
|
41
|
+
mbs --version
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
For local venvs or macOS/dev machines, plain pip is fine:
|
|
45
|
+
|
|
33
46
|
```bash
|
|
34
47
|
pip install maybeai-sheet-cli
|
|
35
48
|
```
|
|
@@ -37,13 +50,22 @@ pip install maybeai-sheet-cli
|
|
|
37
50
|
Upgrade to the latest release:
|
|
38
51
|
|
|
39
52
|
```bash
|
|
40
|
-
|
|
53
|
+
mbs update # when installed via pip or pipx
|
|
54
|
+
pipx upgrade maybeai-sheet-cli # alternative on pipx installs
|
|
41
55
|
```
|
|
42
56
|
|
|
43
57
|
Install a specific version:
|
|
44
58
|
|
|
45
59
|
```bash
|
|
46
|
-
|
|
60
|
+
mbs update --version 0.3.1
|
|
61
|
+
pipx install maybeai-sheet-cli==0.3.1 --force # pipx reinstall pin
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Uninstall:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pipx uninstall maybeai-sheet-cli
|
|
68
|
+
# not: pip uninstall -U (-U is invalid for uninstall)
|
|
47
69
|
```
|
|
48
70
|
|
|
49
71
|
## Requirements
|
|
@@ -68,43 +90,83 @@ Optional global flags:
|
|
|
68
90
|
|
|
69
91
|
## Quick Start
|
|
70
92
|
|
|
71
|
-
Read a
|
|
93
|
+
Read a bounded range:
|
|
72
94
|
|
|
73
95
|
```bash
|
|
74
|
-
|
|
96
|
+
mbs range read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
|
|
75
97
|
```
|
|
76
98
|
|
|
77
99
|
List worksheets:
|
|
78
100
|
|
|
79
101
|
```bash
|
|
80
|
-
|
|
102
|
+
mbs worksheet list --doc-id abc123
|
|
81
103
|
```
|
|
82
104
|
|
|
83
105
|
Read headers from a worksheet:
|
|
84
106
|
|
|
85
107
|
```bash
|
|
86
|
-
|
|
108
|
+
mbs table headers --doc-id abc123 --gid 3
|
|
87
109
|
```
|
|
88
110
|
|
|
89
111
|
Create a workbook:
|
|
90
112
|
|
|
91
113
|
```bash
|
|
92
|
-
|
|
114
|
+
mbs workbook create --title "Board Pack"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Upload a workbook-style `.xlsx` through the default Excelize path:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
mbs workbook import ./report.xlsx
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Import a large table-like `.xlsx` into SheetTable/PG:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
mbs workbook import ./large-table.xlsx --engine postgres
|
|
93
127
|
```
|
|
94
128
|
|
|
95
129
|
Append rows and verify:
|
|
96
130
|
|
|
97
131
|
```bash
|
|
98
|
-
|
|
132
|
+
mbs table append-rows --doc-id abc123 --gid 3 --rows rows.json --verify
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Make a workbook public for viewers:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
mbs share visibility --doc-id abc123 --visibility public --public-permission viewer
|
|
99
139
|
```
|
|
100
140
|
|
|
101
141
|
## Commands
|
|
102
142
|
|
|
143
|
+
The preferred command groups are `workbook`, `worksheet`, `range`, `table`,
|
|
144
|
+
`formula`, `share`, and `raw`. The older `sheet ...` commands remain available
|
|
145
|
+
as compatibility aliases.
|
|
146
|
+
|
|
103
147
|
- `update`
|
|
104
148
|
- `workbook create`
|
|
105
149
|
- `workbook create-from-file`
|
|
150
|
+
- `workbook import`
|
|
106
151
|
- `workbook manifest`
|
|
107
152
|
- `workbook capabilities`
|
|
153
|
+
- `worksheet list`
|
|
154
|
+
- `worksheet create`
|
|
155
|
+
- `range read`
|
|
156
|
+
- `range write`
|
|
157
|
+
- `range clear`
|
|
158
|
+
- `table headers`
|
|
159
|
+
- `table append-rows`
|
|
160
|
+
- `table upsert-rows`
|
|
161
|
+
- `formula read`
|
|
162
|
+
- `formula set`
|
|
163
|
+
- `formula batch-set`
|
|
164
|
+
- `formula recalculate`
|
|
165
|
+
- `share visibility`
|
|
166
|
+
- `share grant`
|
|
167
|
+
- `share permission`
|
|
168
|
+
- `share remove`
|
|
169
|
+
- `share list`
|
|
108
170
|
- `sheet read`
|
|
109
171
|
- `sheet read-range`
|
|
110
172
|
- `sheet read-many`
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# maybeai-sheet-cli
|
|
2
|
+
|
|
3
|
+
CLI for MaybeAI spreadsheet operations.
|
|
4
|
+
|
|
5
|
+
`mbs` wraps the MaybeAI spreadsheet HTTP APIs behind a stable command-line interface for humans, CI jobs, and agents.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
On Debian/Ubuntu and other **PEP 668** systems, do **not** use bare `pip install` on system Python. Use **pipx** (recommended for CLIs):
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
sudo apt install -y pipx python3-venv
|
|
13
|
+
pipx ensurepath
|
|
14
|
+
# re-login or: source ~/.bashrc
|
|
15
|
+
|
|
16
|
+
pipx install maybeai-sheet-cli
|
|
17
|
+
mbs --version
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
For local venvs or macOS/dev machines, plain pip is fine:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install maybeai-sheet-cli
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Upgrade to the latest release:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
mbs update # when installed via pip or pipx
|
|
30
|
+
pipx upgrade maybeai-sheet-cli # alternative on pipx installs
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Install a specific version:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
mbs update --version 0.3.1
|
|
37
|
+
pipx install maybeai-sheet-cli==0.3.1 --force # pipx reinstall pin
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Uninstall:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pipx uninstall maybeai-sheet-cli
|
|
44
|
+
# not: pip uninstall -U (-U is invalid for uninstall)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Requirements
|
|
48
|
+
|
|
49
|
+
- Python 3.10+
|
|
50
|
+
- `MAYBEAI_API_TOKEN`
|
|
51
|
+
|
|
52
|
+
## Configure
|
|
53
|
+
|
|
54
|
+
Set your API token:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
export MAYBEAI_API_TOKEN="YOUR_TOKEN"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Optional global flags:
|
|
61
|
+
|
|
62
|
+
- `--base-url` to point at a different MaybeAI API host
|
|
63
|
+
- `--output json|table|yaml`
|
|
64
|
+
- `--timeout <seconds>`
|
|
65
|
+
- `--verbose`
|
|
66
|
+
|
|
67
|
+
## Quick Start
|
|
68
|
+
|
|
69
|
+
Read a bounded range:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
mbs range read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
List worksheets:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
mbs worksheet list --doc-id abc123
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Read headers from a worksheet:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
mbs table headers --doc-id abc123 --gid 3
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Create a workbook:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mbs workbook create --title "Board Pack"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Upload a workbook-style `.xlsx` through the default Excelize path:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
mbs workbook import ./report.xlsx
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Import a large table-like `.xlsx` into SheetTable/PG:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
mbs workbook import ./large-table.xlsx --engine postgres
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Append rows and verify:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
mbs table append-rows --doc-id abc123 --gid 3 --rows rows.json --verify
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Make a workbook public for viewers:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
mbs share visibility --doc-id abc123 --visibility public --public-permission viewer
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Commands
|
|
118
|
+
|
|
119
|
+
The preferred command groups are `workbook`, `worksheet`, `range`, `table`,
|
|
120
|
+
`formula`, `share`, and `raw`. The older `sheet ...` commands remain available
|
|
121
|
+
as compatibility aliases.
|
|
122
|
+
|
|
123
|
+
- `update`
|
|
124
|
+
- `workbook create`
|
|
125
|
+
- `workbook create-from-file`
|
|
126
|
+
- `workbook import`
|
|
127
|
+
- `workbook manifest`
|
|
128
|
+
- `workbook capabilities`
|
|
129
|
+
- `worksheet list`
|
|
130
|
+
- `worksheet create`
|
|
131
|
+
- `range read`
|
|
132
|
+
- `range write`
|
|
133
|
+
- `range clear`
|
|
134
|
+
- `table headers`
|
|
135
|
+
- `table append-rows`
|
|
136
|
+
- `table upsert-rows`
|
|
137
|
+
- `formula read`
|
|
138
|
+
- `formula set`
|
|
139
|
+
- `formula batch-set`
|
|
140
|
+
- `formula recalculate`
|
|
141
|
+
- `share visibility`
|
|
142
|
+
- `share grant`
|
|
143
|
+
- `share permission`
|
|
144
|
+
- `share remove`
|
|
145
|
+
- `share list`
|
|
146
|
+
- `sheet read`
|
|
147
|
+
- `sheet read-range`
|
|
148
|
+
- `sheet read-many`
|
|
149
|
+
- `sheet named-range`
|
|
150
|
+
- `sheet headers`
|
|
151
|
+
- `sheet worksheets`
|
|
152
|
+
- `sheet formulas`
|
|
153
|
+
- `sheet write-range`
|
|
154
|
+
- `sheet clear-range`
|
|
155
|
+
- `sheet append`
|
|
156
|
+
- `sheet formula-set`
|
|
157
|
+
- `sheet formula-batch-set`
|
|
158
|
+
- `sheet recalculate`
|
|
159
|
+
- `sheet upsert`
|
|
160
|
+
- `sheet create-worksheet`
|
|
161
|
+
- `raw post`
|
|
162
|
+
|
|
163
|
+
## Input Rules
|
|
164
|
+
|
|
165
|
+
- Use `--doc-id`, `--url`, or `--uri` to identify a workbook.
|
|
166
|
+
- Use `--worksheet-name` when the endpoint supports it.
|
|
167
|
+
- Use `--gid` for gid-specific sheet targeting.
|
|
168
|
+
- File inputs like `--rows`, `--values`, `--targets`, and `--operations` must be JSON.
|
|
169
|
+
|
|
170
|
+
## Output
|
|
171
|
+
|
|
172
|
+
Default output is JSON. `table` is optimized for sheet-like payloads; `yaml` is also supported.
|
|
173
|
+
|
|
174
|
+
## Development
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
python3 -m venv .venv
|
|
178
|
+
. .venv/bin/activate
|
|
179
|
+
pip install -U pip
|
|
180
|
+
pip install -e .
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Run tests:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
python -m unittest discover -s tests -v
|
|
187
|
+
```
|
|
@@ -44,16 +44,16 @@ A CLI improves:
|
|
|
44
44
|
|
|
45
45
|
## Product Scope
|
|
46
46
|
|
|
47
|
-
Package
|
|
47
|
+
Package identity:
|
|
48
48
|
|
|
49
|
-
- `maybeai-sheet`
|
|
50
|
-
- `
|
|
51
|
-
- `
|
|
49
|
+
- distribution name: `maybeai-sheet-cli`
|
|
50
|
+
- executable: `mbs`
|
|
51
|
+
- import package: `maybeai_sheet`
|
|
52
52
|
|
|
53
53
|
Recommended executable:
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
|
-
|
|
56
|
+
mbs
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
Recommended Python baseline:
|
|
@@ -70,7 +70,7 @@ Recommended implementation:
|
|
|
70
70
|
## CLI Shape
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
|
|
73
|
+
mbs [global options] <resource> <command> [command options]
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
Global options:
|
|
@@ -96,40 +96,40 @@ Resolution rules:
|
|
|
96
96
|
### Read path
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
mbs sheet read --doc-id <id> --worksheet-name Sheet1
|
|
100
|
+
mbs sheet read --doc-id <id> --worksheet-name Sheet1 --range A1:C20
|
|
101
|
+
mbs sheet read-many --doc-id <id> --targets targets.json
|
|
102
|
+
mbs sheet named-range --doc-id <id> --name RevenueBlock
|
|
103
|
+
mbs sheet headers --doc-id <id> --gid 0
|
|
104
|
+
mbs sheet worksheets --doc-id <id>
|
|
105
|
+
mbs sheet profile --doc-id <id> --force-refresh
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
### Write path
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
mbs sheet append --doc-id <id> --gid 0 --rows rows.json
|
|
112
|
+
mbs sheet upsert --doc-id <id> --gid 0 --key OrderID --rows rows.json
|
|
113
|
+
mbs sheet write-range --doc-id <id> --worksheet-name Sheet1 --range A1:C3 --values values.json
|
|
114
|
+
mbs sheet clear-range --doc-id <id> --worksheet-name Sheet1 --range A1:C3
|
|
115
|
+
mbs sheet create-worksheet --doc-id <id> --name Summary --values values.json
|
|
116
|
+
mbs sheet formula-set --doc-id <id> --worksheet-name Sheet1 --cell E2 --formula '=SUM(B2:D2)'
|
|
117
|
+
mbs sheet formula-batch-set --doc-id <id> --operations ops.json --recalculate-mode worksheet
|
|
118
|
+
mbs sheet recalculate --doc-id <id> --worksheet-name Sheet1
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
### File path
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
mbs file upload ./report.xlsx
|
|
125
|
+
mbs file export --doc-id <id> --out final.xlsx
|
|
126
|
+
mbs file search "q2 forecast"
|
|
127
127
|
```
|
|
128
128
|
|
|
129
129
|
### Escape hatch
|
|
130
130
|
|
|
131
131
|
```bash
|
|
132
|
-
|
|
132
|
+
mbs raw post /api/v3/excel/range/read --body body.json
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
The `raw` command prevents CLI growth from tracking every niche endpoint.
|
|
@@ -173,7 +173,7 @@ The CLI should encode the operational rules already documented in this repo:
|
|
|
173
173
|
Example:
|
|
174
174
|
|
|
175
175
|
```bash
|
|
176
|
-
|
|
176
|
+
mbs sheet upsert \
|
|
177
177
|
--doc-id $DOC_ID \
|
|
178
178
|
--gid 0 \
|
|
179
179
|
--key OrderID \
|
|
@@ -206,14 +206,14 @@ Use a console script entry point:
|
|
|
206
206
|
|
|
207
207
|
```toml
|
|
208
208
|
[project]
|
|
209
|
-
name = "maybeai-sheet"
|
|
210
|
-
version = "0.
|
|
209
|
+
name = "maybeai-sheet-cli"
|
|
210
|
+
version = "0.3.0"
|
|
211
211
|
description = "CLI for common MaybeAI spreadsheet operations"
|
|
212
212
|
requires-python = ">=3.10"
|
|
213
213
|
dependencies = ["typer", "httpx", "pydantic", "rich"]
|
|
214
214
|
|
|
215
215
|
[project.scripts]
|
|
216
|
-
|
|
216
|
+
mbs = "maybeai_sheet.cli:app"
|
|
217
217
|
```
|
|
218
218
|
|
|
219
219
|
Build backend:
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Goal
|
|
4
4
|
|
|
5
|
-
Add a stable `
|
|
5
|
+
Add a stable `mbs` CLI in front of the existing curl-first skill so agents and humans can invoke the highest-value spreadsheet operations without dynamically generating shell or Python glue.
|
|
6
6
|
|
|
7
7
|
This plan intentionally focuses on the most useful commands first and does not include `rename_worksheet`.
|
|
8
8
|
|
|
9
9
|
Repository naming:
|
|
10
10
|
|
|
11
11
|
- project directory: `maybeai-sheet-cli`
|
|
12
|
-
- installed executable: `
|
|
12
|
+
- installed executable: `mbs`
|
|
13
13
|
- import package: `maybeai_sheet`
|
|
14
14
|
|
|
15
15
|
## Why This CLI Should Exist
|
|
@@ -41,13 +41,13 @@ The target behavior is:
|
|
|
41
41
|
Recommended executable:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
|
|
44
|
+
mbs
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Recommended package identity:
|
|
48
48
|
|
|
49
|
-
- distribution name: `maybeai-sheet-cli`
|
|
50
|
-
- console script: `
|
|
49
|
+
- distribution name: `maybeai-sheet-cli`
|
|
50
|
+
- console script: `mbs`
|
|
51
51
|
- Python module: `maybeai_sheet`
|
|
52
52
|
|
|
53
53
|
Recommended baseline:
|
|
@@ -89,7 +89,7 @@ Not in the top 10 for this phase:
|
|
|
89
89
|
## CLI Shape
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
|
-
|
|
92
|
+
mbs [global options] <resource> <command> [command options]
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
Proposed high-level groups:
|
|
@@ -101,14 +101,14 @@ Proposed high-level groups:
|
|
|
101
101
|
Example command style:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
mbs workbook create --title "Q2 Review"
|
|
105
|
+
mbs sheet read --url "$URL"
|
|
106
|
+
mbs sheet read-range --doc-id "$DOC_ID" --gid 3 --range A1:G20
|
|
107
|
+
mbs sheet headers --doc-id "$DOC_ID" --worksheet-name "利润分析"
|
|
108
|
+
mbs sheet append --doc-id "$DOC_ID" --gid 2 --rows rows.json
|
|
109
|
+
mbs sheet clear-range --doc-id "$DOC_ID" --worksheet-name Summary --range D1:F10
|
|
110
|
+
mbs sheet formula-set --doc-id "$DOC_ID" --worksheet-name Model --cell E2 --formula "=SUM(B2:D2)"
|
|
111
|
+
mbs sheet recalculate --doc-id "$DOC_ID" --worksheet-name Model
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
## Global Flags
|
|
@@ -159,8 +159,8 @@ Validation rules:
|
|
|
159
159
|
### Workbook Commands
|
|
160
160
|
|
|
161
161
|
```bash
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
mbs workbook create --title "Board Pack"
|
|
163
|
+
mbs workbook create --title "Board Pack" --sheet-name Summary
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
Primary responsibility:
|
|
@@ -172,11 +172,11 @@ Primary responsibility:
|
|
|
172
172
|
### Sheet Read Commands
|
|
173
173
|
|
|
174
174
|
```bash
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
175
|
+
mbs sheet read --doc-id "$DOC_ID" --worksheet-name Sheet1
|
|
176
|
+
mbs sheet read-range --doc-id "$DOC_ID" --gid 3 --range A1:G20
|
|
177
|
+
mbs sheet headers --doc-id "$DOC_ID" --gid 3
|
|
178
|
+
mbs sheet worksheets --doc-id "$DOC_ID"
|
|
179
|
+
mbs sheet formulas --doc-id "$DOC_ID" --worksheet-name Model
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
Responsibilities:
|
|
@@ -190,10 +190,10 @@ Responsibilities:
|
|
|
190
190
|
### Sheet Write Commands
|
|
191
191
|
|
|
192
192
|
```bash
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
193
|
+
mbs sheet write-range --doc-id "$DOC_ID" --worksheet-name Summary --range A1:C3 --values values.json
|
|
194
|
+
mbs sheet append --doc-id "$DOC_ID" --gid 2 --rows rows.json
|
|
195
|
+
mbs sheet upsert --doc-id "$DOC_ID" --gid 2 --key order_id --rows rows.json
|
|
196
|
+
mbs sheet create-worksheet --doc-id "$DOC_ID" --worksheet-name Summary --values values.json
|
|
197
197
|
```
|
|
198
198
|
|
|
199
199
|
Responsibilities:
|
|
@@ -244,7 +244,7 @@ The CLI should encode the operational rules already documented in the skill.
|
|
|
244
244
|
Example:
|
|
245
245
|
|
|
246
246
|
```bash
|
|
247
|
-
|
|
247
|
+
mbs sheet append \
|
|
248
248
|
--doc-id "$DOC_ID" \
|
|
249
249
|
--gid 3 \
|
|
250
250
|
--rows rows.json \
|