gws-axi 0.8.1 → 0.8.3
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.
- package/README.md +52 -5
- package/dist/src/commands/home.js +1 -1
- package/dist/src/commands/home.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Agent-ergonomic CLI for Google Workspace — Gmail, Calendar, Docs, Drive, and S
|
|
|
4
4
|
|
|
5
5
|
Designed for use by AI agents. Every response is structured, every error names a specific fix, and write operations lock to the explicit account when multiple are authenticated — so two agents in parallel sessions can't silently touch the wrong mailbox.
|
|
6
6
|
|
|
7
|
-
> **Status
|
|
7
|
+
> **Status:** Read coverage is in across all five services — Calendar, Gmail, Docs, Drive, and Slides — and Calendar has full write support (`create`, `update`, `delete`, `respond`). Gmail writes (`send`, `draft`, `modify`) and Docs writes (`append`, `insert-text`, `delete-range`) are the next frontier. Auth (including a single-developer `auth publish` walkthrough that retires the 7-day Testing-token expiry), doctor with live per-account API probes, and multi-account write-protection are stable.
|
|
8
8
|
|
|
9
9
|
## Requirements
|
|
10
10
|
|
|
@@ -84,7 +84,9 @@ Every subcommand supports `--help`. The bare `gws-axi` command prints current st
|
|
|
84
84
|
```bash
|
|
85
85
|
gws-axi # home view — current state + suggestions
|
|
86
86
|
gws-axi auth accounts # list authenticated Google accounts
|
|
87
|
-
gws-axi auth login --account <email> # add another account (
|
|
87
|
+
gws-axi auth login --account <email> # add another account (blocks on callback)
|
|
88
|
+
gws-axi auth login --account <email> --no-wait # agent-friendly split: prepare now, run --wait separately
|
|
89
|
+
gws-axi auth publish # walk Testing → Production to retire 7-day token expiry
|
|
88
90
|
gws-axi auth use <email> # set the default account
|
|
89
91
|
gws-axi doctor # prerequisites + setup + live API probes
|
|
90
92
|
```
|
|
@@ -119,6 +121,51 @@ gws-axi calendar respond <event-id> --response accepted
|
|
|
119
121
|
|
|
120
122
|
Writes default `--send-updates` to `none` so agent-created events don't spam attendees. Pass `--send-updates all` for production-style invite behavior.
|
|
121
123
|
|
|
124
|
+
### Gmail
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
gws-axi gmail search # in:inbox by default
|
|
128
|
+
gws-axi gmail search --query "from:alice has:attachment"
|
|
129
|
+
gws-axi gmail search --page <token> # paginate
|
|
130
|
+
gws-axi gmail read <thread-or-message-id> # whole thread, text/plain preferred
|
|
131
|
+
gws-axi gmail read <id> --message-only # just one message
|
|
132
|
+
gws-axi gmail read <id> --out ./thread.md # write the full thread to a markdown file
|
|
133
|
+
gws-axi gmail labels # list labels with IDs
|
|
134
|
+
gws-axi gmail download <message-id> <attachment-id> # fetch attachment bytes
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Bodies are decoded per declared `Content-Type` charset (UTF-8, latin-1, ascii, utf-16). HTML-only messages convert to markdown via turndown. Address headers parse with `addressparser` so display names with commas don't get split.
|
|
138
|
+
|
|
139
|
+
### Docs
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
gws-axi docs read <documentId> # full Doc as markdown
|
|
143
|
+
gws-axi docs read <documentId> --out ./doc.md # write to a file
|
|
144
|
+
gws-axi docs find <documentId> --query "deadline" # search inside one Doc
|
|
145
|
+
gws-axi docs comments <documentId> # threaded comments + suggestions
|
|
146
|
+
gws-axi docs download <documentId> --format pdf # native export (pdf, docx, odt, txt, html, epub, rtf)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Non-native files (uploaded `.docx`, `.pdf`, etc.) get pointed at `docs download` automatically rather than failing with a cryptic Google API error.
|
|
150
|
+
|
|
151
|
+
### Drive
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
gws-axi drive ls # top of My Drive
|
|
155
|
+
gws-axi drive ls <folder-id> --recursive # depth-unbounded; bounded by --limit instead
|
|
156
|
+
gws-axi drive get <fileId> # metadata for one file
|
|
157
|
+
gws-axi drive search --query "name contains 'budget'"
|
|
158
|
+
gws-axi drive permissions <fileId> # who has access
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Slides
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
gws-axi slides get <presentationId> # deck metadata + slide list
|
|
165
|
+
gws-axi slides page <presentationId> <slideId> # one slide's content
|
|
166
|
+
gws-axi slides summarize <presentationId> # all slides condensed to text per slide
|
|
167
|
+
```
|
|
168
|
+
|
|
122
169
|
### Multi-account with write protection
|
|
123
170
|
|
|
124
171
|
gws-axi supports multiple Google accounts under one OAuth client. When two or more are authenticated, write operations require `--account <email>` explicitly — silent wrong-account mutations are impossible:
|
|
@@ -151,9 +198,9 @@ help[2]:
|
|
|
151
198
|
|
|
152
199
|
## Known issues & roadmap
|
|
153
200
|
|
|
154
|
-
- **
|
|
155
|
-
- **
|
|
156
|
-
- **
|
|
201
|
+
- **Gmail writes** (`send`, `draft`, `modify`, label add/remove): scaffolded as `NOT_IMPLEMENTED`. Coming next.
|
|
202
|
+
- **Docs writes** (`append`, `insert-text`, `delete-range`, etc.): scaffolded as `NOT_IMPLEMENTED`. Coming alongside Gmail writes.
|
|
203
|
+
- **Testing-mode tokens** still expire every 7 days *if* you haven't published your OAuth app yet. Run `gws-axi auth publish` for the walkthrough — it covers the single-developer Production flow and removes the expiry once you've re-auth'd each account.
|
|
157
204
|
|
|
158
205
|
## Contributing
|
|
159
206
|
|
|
@@ -35,7 +35,7 @@ export async function homeCommand() {
|
|
|
35
35
|
help.push("Run `gws-axi auth accounts` to see all accounts");
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
help.push("Run `gws-axi --help`
|
|
38
|
+
help.push("Run `gws-axi --help` to see the full command list, or `gws-axi <command> --help` for usage on any command");
|
|
39
39
|
output.help = help;
|
|
40
40
|
return output;
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../../src/commands/home.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC7C,CAAC;YACF,MAAM,CAAC,gBAAgB,GAAG,kDAAkD,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAA4B;QACrC,QAAQ,EAAE,GAAG,IAAI,OAAO,KAAK,iBAAiB;KAC/C,CAAC;IACF,IAAI,QAAQ;QAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAErB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../../src/commands/home.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC7C,CAAC;YACF,MAAM,CAAC,gBAAgB,GAAG,kDAAkD,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAA4B;QACrC,QAAQ,EAAE,GAAG,IAAI,OAAO,KAAK,iBAAiB;KAC/C,CAAC;IACF,IAAI,QAAQ;QAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAErB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CACP,2GAA2G,CAC5G,CAAC;IACF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gws-axi",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"description": "AXI-compliant Google Workspace CLI — token-efficient TOON output, agent-guided auth setup, unified interface for Gmail, Calendar, Docs, Drive, Slides",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|