zele 0.3.17 → 0.3.21

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 (64) hide show
  1. package/README.md +81 -12
  2. package/dist/api-utils.d.ts +10 -0
  3. package/dist/api-utils.js +14 -0
  4. package/dist/api-utils.js.map +1 -1
  5. package/dist/cli-types.d.ts +4 -0
  6. package/dist/cli-types.js +6 -0
  7. package/dist/cli-types.js.map +1 -0
  8. package/dist/cli.js +1 -5
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/attachment.d.ts +2 -2
  11. package/dist/commands/attachment.js.map +1 -1
  12. package/dist/commands/auth-cmd.d.ts +2 -2
  13. package/dist/commands/auth-cmd.js +58 -52
  14. package/dist/commands/auth-cmd.js.map +1 -1
  15. package/dist/commands/calendar.d.ts +2 -2
  16. package/dist/commands/calendar.js +13 -14
  17. package/dist/commands/calendar.js.map +1 -1
  18. package/dist/commands/draft.d.ts +2 -2
  19. package/dist/commands/draft.js +62 -15
  20. package/dist/commands/draft.js.map +1 -1
  21. package/dist/commands/filter.d.ts +2 -2
  22. package/dist/commands/filter.js.map +1 -1
  23. package/dist/commands/label.d.ts +2 -2
  24. package/dist/commands/label.js +5 -6
  25. package/dist/commands/label.js.map +1 -1
  26. package/dist/commands/mail-actions.d.ts +2 -2
  27. package/dist/commands/mail-actions.js +290 -1
  28. package/dist/commands/mail-actions.js.map +1 -1
  29. package/dist/commands/mail.d.ts +2 -2
  30. package/dist/commands/mail.js +50 -10
  31. package/dist/commands/mail.js.map +1 -1
  32. package/dist/commands/profile.d.ts +2 -2
  33. package/dist/commands/profile.js.map +1 -1
  34. package/dist/commands/watch.d.ts +2 -2
  35. package/dist/commands/watch.js +2 -2
  36. package/dist/commands/watch.js.map +1 -1
  37. package/dist/gmail-client.d.ts +59 -3
  38. package/dist/gmail-client.js +119 -5
  39. package/dist/gmail-client.js.map +1 -1
  40. package/dist/imap-smtp-client.d.ts +75 -4
  41. package/dist/imap-smtp-client.js +131 -7
  42. package/dist/imap-smtp-client.js.map +1 -1
  43. package/dist/unsubscribe.d.ts +76 -0
  44. package/dist/unsubscribe.js +224 -0
  45. package/dist/unsubscribe.js.map +1 -0
  46. package/package.json +3 -2
  47. package/skills/zele/SKILL.md +32 -124
  48. package/src/api-utils.ts +14 -0
  49. package/src/cli-types.ts +8 -0
  50. package/src/cli.ts +2 -7
  51. package/src/commands/attachment.ts +2 -2
  52. package/src/commands/auth-cmd.ts +66 -56
  53. package/src/commands/calendar.ts +15 -16
  54. package/src/commands/draft.ts +71 -17
  55. package/src/commands/filter.ts +2 -2
  56. package/src/commands/label.ts +7 -8
  57. package/src/commands/mail-actions.ts +315 -4
  58. package/src/commands/mail.ts +54 -12
  59. package/src/commands/profile.ts +2 -2
  60. package/src/commands/watch.ts +4 -4
  61. package/src/gmail-client.ts +193 -6
  62. package/src/imap-smtp-client.ts +186 -7
  63. package/src/unsubscribe.test.ts +487 -0
  64. package/src/unsubscribe.ts +255 -0
package/README.md CHANGED
@@ -32,6 +32,27 @@ zele login
32
32
 
33
33
  Opens a browser for Google OAuth2. Repeat to add more accounts.
34
34
 
35
+ #### Remote / headless login (for agents)
36
+
37
+ `zele login` is interactive — it prints an authorization URL and waits for the redirect URL to be pasted back. In agent or headless environments, run it inside a `tmux` session so the process persists and can be driven programmatically:
38
+
39
+ ```bash
40
+ # start login in a tmux session
41
+ tmux new-session -d -s zele-login 'zele login'
42
+
43
+ # read the authorization URL from tmux output
44
+ tmux capture-pane -t zele-login -p
45
+
46
+ # after the user completes consent in their browser, paste the redirect URL
47
+ tmux send-keys -t zele-login 'http://localhost:...?code=...' Enter
48
+
49
+ # verify login succeeded
50
+ tmux capture-pane -t zele-login -p
51
+ tmux kill-session -t zele-login
52
+ ```
53
+
54
+ IMAP/SMTP login is non-interactive and requires no tmux wrapper.
55
+
35
56
  ### IMAP/SMTP accounts
36
57
 
37
58
  For non-Google providers (Fastmail, Outlook, Gmail with app passwords, any IMAP server):
@@ -79,14 +100,15 @@ zele logout # remove credentials
79
100
  ### Mail
80
101
 
81
102
  ```bash
82
- zele mail list # list recent threads
83
- zele mail list --filter "is:unread" # only unread threads
84
- zele mail search "from:github" # search with Gmail query syntax
85
- zele mail read <thread-id> # read a thread
86
- zele mail send # send an email
87
- zele mail reply <thread-id> # reply to a thread
88
- zele mail forward <thread-id> # forward a thread
89
- zele mail watch # watch for new emails (poll)
103
+ zele mail list --limit 100 # list up to 100 recent threads
104
+ zele mail list --filter "is:unread" --limit 100 # list unread threads
105
+ zele mail list --filter "is:unread" --limit 100 | yq '.[].id' | xargs zele mail read # read all unread
106
+ zele mail search "from:github" --limit 100 # search with Gmail query syntax
107
+ zele mail read <thread-id> # read a thread
108
+ zele mail send # send an email
109
+ zele mail reply <thread-id> # reply to a thread
110
+ zele mail forward <thread-id> # forward a thread
111
+ zele mail watch # watch for new emails (poll)
90
112
  ```
91
113
 
92
114
  ### Mail actions
@@ -105,6 +127,27 @@ zele mail label <thread-id>
105
127
  zele mail trash-spam
106
128
  ```
107
129
 
130
+ All action commands accept **one or more thread IDs** and an optional `--account` flag. On Google accounts, archiving removes the `INBOX` label. On IMAP accounts, it moves the message to the server's Archive folder (`Archive`, `Archives`, `All Mail`, `[Gmail]/All Mail`, or `INBOX.Archive`).
131
+
132
+ ```bash
133
+ # archive a single thread
134
+ zele mail archive 18f3b7c9d2a1e4f0
135
+
136
+ # archive multiple threads at once
137
+ zele mail archive 18f3b7c9d2a1e4f0 18f3b7c9d2a1e4f1 18f3b7c9d2a1e4f2
138
+
139
+ # archive from a specific account when you have multiple
140
+ zele mail archive 18f3b7c9d2a1e4f0 --account you@example.com
141
+
142
+ # bulk archive: pipe thread IDs from a search
143
+ zele mail search "from:noreply@github.com older_than:7d" --limit 100 \
144
+ | yq '.[].id' \
145
+ | xargs zele mail archive
146
+
147
+ # list archived threads later
148
+ zele mail list --filter "in:archive" --limit 100
149
+ ```
150
+
108
151
  ### Search query syntax
109
152
 
110
153
  For **Google accounts**, `mail search` and `mail list --filter` use [Gmail search operators](https://support.google.com/mail/answer/7190) server-side. For **IMAP accounts**, queries are translated to IMAP SEARCH criteria (a subset is supported).
@@ -131,10 +174,10 @@ For **Google accounts**, `mail search` and `mail list --filter` use [Gmail searc
131
174
  | `OR` / `{ }` | `from:a OR from:b` | yes | no |
132
175
 
133
176
  ```bash
134
- zele mail list --filter "is:unread"
135
- zele mail list --filter "from:github newer_than:7d" --folder sent
136
- zele mail search "from:github is:unread newer_than:7d"
137
- zele mail watch --query "from:github has:attachment"
177
+ zele mail list --filter "is:unread" --limit 100
178
+ zele mail list --filter "from:github newer_than:7d" --folder sent --limit 100
179
+ zele mail search "from:github is:unread newer_than:7d" --limit 100
180
+ zele mail watch --filter "from:github has:attachment"
138
181
  ```
139
182
 
140
183
  ### Drafts
@@ -231,6 +274,32 @@ Google and IMAP/SMTP accounts work side by side — `mail list` merges results f
231
274
 
232
275
  All structured data is output as YAML. In TTY mode, keys are colored for readability. Pipe output to other tools for scripting.
233
276
 
277
+ ## For AI agents
278
+
279
+ **Always run `zele --help` first.** The top-level help already contains every subcommand, option, and flag — there is no need to run `zele <command> --help` separately. The help output is the source of truth. Read it in full — never pipe through `head`, `tail`, or `sed` to truncate.
280
+
281
+ **Never use the TUI.** Running `zele` with no subcommand launches a human-facing terminal UI for browsing email. Agents must use the CLI subcommands (`zele mail list`, `zele cal events`, etc.) which output structured YAML that can be parsed and piped.
282
+
283
+ **Always run `zele whoami` before account-scoped commands.** When the user asks to check email "for a specific account" (e.g. "my work email", "my personal Gmail"), run `zele whoami` first to list connected accounts and find the exact address to pass to `--account`. Never guess the email — pick it from the `whoami` output. The output also shows account type (`google` or `imap_smtp`) and capabilities so you know which features are available.
284
+
285
+ ```bash
286
+ # list connected accounts first
287
+ zele whoami
288
+
289
+ # then scope commands to the right account
290
+ zele mail list --account user@work.com
291
+ ```
292
+
293
+ **Prefer YAML parsing over regex.** Pipe command output through `yq` to extract IDs and fields reliably:
294
+
295
+ ```bash
296
+ # read all unread emails
297
+ zele mail list --filter "is:unread" --limit 100 | yq '.[].id' | xargs zele mail read
298
+
299
+ # bulk archive unread
300
+ zele mail list --filter "is:unread" --limit 100 | yq '.[].id' | xargs zele mail archive
301
+ ```
302
+
234
303
  ## License
235
304
 
236
305
  ISC
@@ -50,6 +50,16 @@ declare const UnsupportedError_base: errore.FactoryTaggedErrorClass<"Unsupported
50
50
  /** Returned when a command requires a capability (e.g. gmail labels) that the account doesn't support. */
51
51
  export declare class UnsupportedError extends UnsupportedError_base {
52
52
  }
53
+ declare const UnsubscribeUnavailableError_base: errore.FactoryTaggedErrorClass<"UnsubscribeUnavailableError", "No List-Unsubscribe header on thread $threadId", Error>;
54
+ /** Returned when a thread has no List-Unsubscribe header (RFC 2369) so no
55
+ * standardized unsubscribe mechanism is available. */
56
+ export declare class UnsubscribeUnavailableError extends UnsubscribeUnavailableError_base {
57
+ }
58
+ declare const UnsubscribeFailedError_base: errore.FactoryTaggedErrorClass<"UnsubscribeFailedError", "Unsubscribe via $mechanism failed: $reason", Error>;
59
+ /** Returned when the unsubscribe attempt itself failed (HTTP error, SMTP
60
+ * send failure, redirect returned when RFC 8058 forbids it, etc.). */
61
+ export declare class UnsubscribeFailedError extends UnsubscribeFailedError_base {
62
+ }
53
63
  /** Detect auth-like errors from underlying libraries (tsdav string errors, googleapis structured errors).
54
64
  * Used inside clients to decide whether to return an AuthError.
55
65
  * NOTE: String matching here is intentional — this is the boundary layer that converts
package/dist/api-utils.js CHANGED
@@ -107,6 +107,20 @@ export class UnsupportedError extends errore.createTaggedError({
107
107
  message: '$feature is not available for $accountType accounts. $hint',
108
108
  }) {
109
109
  }
110
+ /** Returned when a thread has no List-Unsubscribe header (RFC 2369) so no
111
+ * standardized unsubscribe mechanism is available. */
112
+ export class UnsubscribeUnavailableError extends errore.createTaggedError({
113
+ name: 'UnsubscribeUnavailableError',
114
+ message: 'No List-Unsubscribe header on thread $threadId',
115
+ }) {
116
+ }
117
+ /** Returned when the unsubscribe attempt itself failed (HTTP error, SMTP
118
+ * send failure, redirect returned when RFC 8058 forbids it, etc.). */
119
+ export class UnsubscribeFailedError extends errore.createTaggedError({
120
+ name: 'UnsubscribeFailedError',
121
+ message: 'Unsubscribe via $mechanism failed: $reason',
122
+ }) {
123
+ }
110
124
  /** Detect auth-like errors from underlying libraries (tsdav string errors, googleapis structured errors).
111
125
  * Used inside clients to decide whether to return an AuthError.
112
126
  * NOTE: String matching here is intentional — this is the boundary layer that converts
@@ -1 +1 @@
1
- {"version":3,"file":"api-utils.js","sourceRoot":"","sources":["../src/api-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-utils.js","sourceRoot":"","sources":["../src/api-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Goke } from 'goke';
2
+ export type ZeleCli = Goke<{
3
+ account?: string[];
4
+ }>;
@@ -0,0 +1,6 @@
1
+ // Shared goke type for the zele CLI, including the global options declared
2
+ // on the root `goke('zele')` instance. Living in its own file avoids the
3
+ // circular import that would arise from command modules importing from
4
+ // `./cli.js` (which itself imports every command module).
5
+ export {};
6
+ //# sourceMappingURL=cli-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-types.js","sourceRoot":"","sources":["../src/cli-types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,uEAAuE;AACvE,0DAA0D"}
package/dist/cli.js CHANGED
@@ -18,11 +18,7 @@ import { registerCalendarCommands } from './commands/calendar.js';
18
18
  import { registerWatchCommands } from './commands/watch.js';
19
19
  import { registerFilterCommands } from './commands/filter.js';
20
20
  import { handleCommandError } from './output.js';
21
- const cli = goke('zele');
22
- // ---------------------------------------------------------------------------
23
- // Global options
24
- // ---------------------------------------------------------------------------
25
- cli.option('--account <account>', z.array(z.string()).describe('Filter by email account (repeatable)'));
21
+ const cli = goke('zele').option('--account <account>', z.array(z.string()).describe('Filter by email account (repeatable)'));
26
22
  // ---------------------------------------------------------------------------
27
23
  // Default command (TUI)
28
24
  // ---------------------------------------------------------------------------
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,kCAAkC;AAClC,0EAA0E;AAC1E,wEAAwE;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,GAAG,GAAY,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CACtC,qBAAqB,EACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CACrE,CAAA;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACxD,IAAI,OAAQ,UAAgC,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QACjE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;QAC9C,MAAM,UAAU,GAAG,SAAS;YAC1B,CAAC,CAAC,8CAA8C;YAChD,CAAC,CAAC,0CAA0C,CAAA;QAC9C,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YACvB,kCAAkC;YAClC,gBAAgB;YAChB,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;YACtC,aAAa;YACb,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACjC,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA;QAC5B,IAAI,MAAM,YAAY,KAAK;YAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;IAChD,MAAM,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAA;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAClC,MAAM,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QACtD,aAAa,EAAE,MAAM;KACtB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,2FAA2F;AAC3F,8EAA8E;AAE9E,oBAAoB,CAAC,GAAG,CAAC,CAAA;AACzB,uBAAuB,CAAC,GAAG,CAAC,CAAA;AAC5B,oBAAoB,CAAC,GAAG,CAAC,CAAA;AACzB,0BAA0B,CAAC,GAAG,CAAC,CAAA;AAC/B,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAC1B,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAC1B,0BAA0B,CAAC,GAAG,CAAC,CAAA;AAC/B,wBAAwB,CAAC,GAAG,CAAC,CAAA;AAC7B,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAC1B,sBAAsB,CAAC,GAAG,CAAC,CAAA;AAE3B,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,GAAG,CAAC,IAAI,EAAE,CAAA;AACV,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC9C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAEpB,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,GAAG,CAAC,KAAK,EAAE,CAAA"}
@@ -1,2 +1,2 @@
1
- import type { Goke } from 'goke';
2
- export declare function registerAttachmentCommands(cli: Goke): void;
1
+ import type { ZeleCli } from '../cli-types.js';
2
+ export declare function registerAttachmentCommands(cli: ZeleCli): void;
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/commands/attachment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/commands/attachment.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import type { Goke } from 'goke';
2
- export declare function registerAuthCommands(cli: Goke): void;
1
+ import type { ZeleCli } from '../cli-types.js';
2
+ export declare function registerAuthCommands(cli: ZeleCli): void;
@@ -3,6 +3,7 @@
3
3
  // Supports multiple accounts: login adds accounts, logout removes one.
4
4
  import { z } from 'zod';
5
5
  import pc from 'picocolors';
6
+ import * as clack from '@clack/prompts';
6
7
  import { login, loginImap, logout, listAccounts, getAuthStatuses } from '../auth.js';
7
8
  import { closePrisma } from '../db.js';
8
9
  import * as out from '../output.js';
@@ -10,55 +11,62 @@ import { handleCommandError } from '../output.js';
10
11
  export function registerAuthCommands(cli) {
11
12
  cli
12
13
  .command('login', 'Authenticate with Google (opens browser) or show IMAP/SMTP login instructions')
13
- .action(async () => {
14
- // In a TTY, ask if they want Google or Other
15
- if (process.stdin.isTTY) {
16
- const readline = await import('node:readline');
17
- const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
18
- console.error(pc.bold('\nChoose authentication method:\n'));
19
- console.error(' ' + pc.cyan('1') + ' Google (opens browser for OAuth)');
20
- console.error(' ' + pc.cyan('2') + ' Other (IMAP/SMTP with password)\n');
21
- const answer = await new Promise((resolve) => {
22
- rl.question('Enter choice [1]: ', resolve);
14
+ .option('--method <method>', z.enum(['google', 'imap']).optional().describe('Authentication method (google or imap)'))
15
+ .action(async (options) => {
16
+ let method = options.method;
17
+ if (!method) {
18
+ if (!process.stdin.isTTY) {
19
+ out.error('Run non-interactively with: zele login --method google|imap');
20
+ process.exit(1);
21
+ }
22
+ const choice = await clack.select({
23
+ message: 'Choose authentication method',
24
+ options: [
25
+ { value: 'google', label: 'Google', hint: 'opens browser for OAuth' },
26
+ { value: 'imap', label: 'Other', hint: 'IMAP/SMTP with password' },
27
+ ],
23
28
  });
24
- rl.close();
25
- const choice = answer.trim() || '1';
26
- if (choice === '2') {
27
- console.error(pc.bold('\nTo add an IMAP/SMTP account, run:\n'));
28
- console.error(pc.dim(' # Fastmail'));
29
- console.error(` zele login imap \\`);
30
- console.error(` --email you@fastmail.com \\`);
31
- console.error(` --imap-host imap.fastmail.com --imap-port 993 \\`);
32
- console.error(` --smtp-host smtp.fastmail.com --smtp-port 465 \\`);
33
- console.error(` --password "your-app-password"`);
34
- console.error();
35
- console.error(pc.dim(' # Gmail (app password)'));
36
- console.error(` zele login imap \\`);
37
- console.error(` --email you@gmail.com \\`);
38
- console.error(` --imap-host imap.gmail.com --imap-port 993 \\`);
39
- console.error(` --smtp-host smtp.gmail.com --smtp-port 465 \\`);
40
- console.error(` --password "your-app-password"`);
41
- console.error();
42
- console.error(pc.dim(' # Outlook/Hotmail'));
43
- console.error(` zele login imap \\`);
44
- console.error(` --email you@outlook.com \\`);
45
- console.error(` --imap-host outlook.office365.com --imap-port 993 \\`);
46
- console.error(` --smtp-host smtp-mail.outlook.com --smtp-port 587 \\`);
47
- console.error(` --password "your-password"`);
48
- console.error();
49
- console.error(pc.dim(' # Generic (any IMAP/SMTP provider)'));
50
- console.error(` zele login imap \\`);
51
- console.error(` --email you@example.com \\`);
52
- console.error(` --imap-host imap.example.com --imap-port 993 \\`);
53
- console.error(` --smtp-host smtp.example.com --smtp-port 465 \\`);
54
- console.error(` --password "your-password"`);
55
- console.error();
56
- console.error(pc.dim('Omit --smtp-host for read-only (IMAP only, no sending).'));
57
- console.error(pc.dim('Use --imap-user/--smtp-user if the login username differs from your email.'));
58
- return;
29
+ if (clack.isCancel(choice)) {
30
+ out.hint('Cancelled');
31
+ process.exit(0);
59
32
  }
33
+ method = choice;
34
+ }
35
+ if (method === 'imap') {
36
+ console.error(pc.bold('\nTo add an IMAP/SMTP account, run:\n'));
37
+ console.error(pc.dim(' # Fastmail'));
38
+ console.error(` zele login imap \\`);
39
+ console.error(` --email you@fastmail.com \\`);
40
+ console.error(` --imap-host imap.fastmail.com --imap-port 993 \\`);
41
+ console.error(` --smtp-host smtp.fastmail.com --smtp-port 465 \\`);
42
+ console.error(` --password "your-app-password"`);
43
+ console.error();
44
+ console.error(pc.dim(' # Gmail (app password)'));
45
+ console.error(` zele login imap \\`);
46
+ console.error(` --email you@gmail.com \\`);
47
+ console.error(` --imap-host imap.gmail.com --imap-port 993 \\`);
48
+ console.error(` --smtp-host smtp.gmail.com --smtp-port 465 \\`);
49
+ console.error(` --password "your-app-password"`);
50
+ console.error();
51
+ console.error(pc.dim(' # Outlook/Hotmail'));
52
+ console.error(` zele login imap \\`);
53
+ console.error(` --email you@outlook.com \\`);
54
+ console.error(` --imap-host outlook.office365.com --imap-port 993 \\`);
55
+ console.error(` --smtp-host smtp-mail.outlook.com --smtp-port 587 \\`);
56
+ console.error(` --password "your-password"`);
57
+ console.error();
58
+ console.error(pc.dim(' # Generic (any IMAP/SMTP provider)'));
59
+ console.error(` zele login imap \\`);
60
+ console.error(` --email you@example.com \\`);
61
+ console.error(` --imap-host imap.example.com --imap-port 993 \\`);
62
+ console.error(` --smtp-host smtp.example.com --smtp-port 465 \\`);
63
+ console.error(` --password "your-password"`);
64
+ console.error();
65
+ console.error(pc.dim('Omit --smtp-host for read-only (IMAP only, no sending).'));
66
+ console.error(pc.dim('Use --imap-user/--smtp-user if the login username differs from your email.'));
67
+ return;
60
68
  }
61
- // Default: Google OAuth flow
69
+ // Google OAuth flow
62
70
  const result = await login();
63
71
  if (result instanceof Error)
64
72
  handleCommandError(result);
@@ -144,13 +152,11 @@ export function registerAuthCommands(cli) {
144
152
  out.error('Use --force to logout non-interactively');
145
153
  process.exit(1);
146
154
  }
147
- const readline = await import('node:readline');
148
- const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
149
- const answer = await new Promise((resolve) => {
150
- rl.question(`Remove credentials for ${targetEmail}? [y/N] `, resolve);
155
+ const confirmed = await clack.confirm({
156
+ message: `Remove credentials for ${targetEmail}?`,
157
+ initialValue: false,
151
158
  });
152
- rl.close();
153
- if (answer.toLowerCase() !== 'y') {
159
+ if (clack.isCancel(confirmed) || !confirmed) {
154
160
  out.hint('Cancelled');
155
161
  return;
156
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth-cmd.js","sourceRoot":"","sources":["../../src/commands/auth-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-cmd.js","sourceRoot":"","sources":["../../src/commands/auth-cmd.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,4EAA4E;AAC5E,uEAAuE;AAGvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,GAAG;SACA,OAAO,CAAC,OAAO,EAAE,+EAA+E,CAAC;SACjG,MAAM,CACL,mBAAmB,EACnB,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CACzF;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAE3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAA;gBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;gBAChC,OAAO,EAAE,8BAA8B;gBACvC,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE;oBACrE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE;iBACnE;aACF,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,MAAM,GAAG,MAAM,CAAA;QACjB,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAA;YAC/D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;YACrC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACrC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAChD,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACnD,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAA;YACjD,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACrC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;YAC7C,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;YAClE,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;YAClE,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACnD,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAA;YAC5C,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACrC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;YAC/C,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;YACzE,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;YACzE,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;YAC/C,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAA;YAC7D,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACrC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;YAC/C,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACpE,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACpE,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;YAC/C,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAA;YAChF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAA;YACnG,OAAM;QACR,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA;QAC5B,IAAI,MAAM,YAAY,KAAK;YAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;QACxB,GAAG,CAAC,OAAO,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAA;QACxC,MAAM,WAAW,EAAE,CAAA;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEJ,GAAG;SACA,OAAO,CAAC,YAAY,EAAE,uEAAuE,CAAC;SAC9F,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;SAC/D,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;SAC7E,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;SACxF,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC;SACzG,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;SACxF,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;SAC7G,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;SAC5F,MAAM,CAAC,gCAAgC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;SACrG,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;SAC5F,MAAM,CAAC,gCAAgC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;SACrG,MAAM,CAAC,UAAU,EAAE,+BAA+B,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAEtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACjE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACjE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,GAAG,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI;SAC5B,CAAC,CAAA;QACF,IAAI,MAAM,YAAY,KAAK;YAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAEvD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAA;QAC3D,GAAG,CAAC,OAAO,CAAC,iBAAiB,MAAM,CAAC,KAAK,KAAK,IAAI,GAAG,CAAC,CAAA;QACtD,MAAM,WAAW,EAAE,CAAA;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEJ,GAAG;SACA,OAAO,CAAC,gBAAgB,EAAE,0CAA0C,CAAC;SACrE,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;QAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEzD,+DAA+D;QAC/D,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAA;YAClE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACzB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAE,CAAA;QAEvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAA;YAC9C,GAAG,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;gBACpC,OAAO,EAAE,0BAA0B,WAAW,GAAG;gBACjD,YAAY,EAAE,KAAK;aACpB,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACrB,OAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;QAC9C,IAAI,YAAY,YAAY,KAAK;YAAE,kBAAkB,CAAC,YAAY,CAAC,CAAA;QACnE,GAAG,CAAC,OAAO,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEJ,GAAG;SACA,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC;SAChD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAA;QAExC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QAED,GAAG,CAAC,SAAS,CACX,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,WAAW;YACnB,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC,MAAM,EAAE,eAAe;YACvB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CAAC,EACH,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,aAAa,EAAE,CAC7C,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1,2 +1,2 @@
1
- import type { Goke } from 'goke';
2
- export declare function registerCalendarCommands(cli: Goke): void;
1
+ import type { ZeleCli } from '../cli-types.js';
2
+ export declare function registerCalendarCommands(cli: ZeleCli): void;
@@ -3,7 +3,7 @@
3
3
  // Cache is handled by the client — commands just call methods and use data.
4
4
  // Multi-account: list/events fetch all accounts concurrently and merge by start time.
5
5
  import { z } from 'zod';
6
- import readline from 'node:readline';
6
+ import * as clack from '@clack/prompts';
7
7
  import { getCalendarClients, getCalendarClient } from '../auth.js';
8
8
  import { AuthError } from '../api-utils.js';
9
9
  import * as out from '../output.js';
@@ -66,11 +66,11 @@ export function registerCalendarCommands(cli) {
66
66
  .option('--week', 'Show this week')
67
67
  .option('--days <days>', z.number().describe('Show next N days'))
68
68
  .option('--all', 'Fetch from all calendars')
69
- .option('--query <query>', 'Free text search')
70
- .option('--max [max]', 'Max results (default: 20)')
69
+ .option('--filter <filter>', 'Free text search')
70
+ .option('--limit [limit]', 'Max results (default: 20)')
71
71
  .option('--page <page>', 'Pagination token (requires --account, only works for a single account)')
72
72
  .action(async (options) => {
73
- const max = options.max ? Number(options.max) : 20;
73
+ const limit = options.limit ? Number(options.limit) : 20;
74
74
  const calendarId = options.calendar ?? 'primary';
75
75
  if (options.all && options.calendar) {
76
76
  out.error('--all and --calendar cannot be used together');
@@ -105,8 +105,8 @@ export function registerCalendarCommands(cli) {
105
105
  calendarId: cal.id,
106
106
  timeMin,
107
107
  timeMax,
108
- query: options.query,
109
- maxResults: max,
108
+ query: options.filter,
109
+ maxResults: limit,
110
110
  });
111
111
  if (r instanceof Error)
112
112
  return r;
@@ -130,8 +130,8 @@ export function registerCalendarCommands(cli) {
130
130
  calendarId,
131
131
  timeMin,
132
132
  timeMax,
133
- query: options.query,
134
- maxResults: max,
133
+ query: options.filter,
134
+ maxResults: limit,
135
135
  pageToken: options.page,
136
136
  });
137
137
  if (r instanceof Error)
@@ -156,7 +156,7 @@ export function registerCalendarCommands(cli) {
156
156
  const merged = allResults
157
157
  .flatMap(({ email, result }) => result.events.map((e) => ({ ...e, account: email })))
158
158
  .sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime())
159
- .slice(0, max);
159
+ .slice(0, limit);
160
160
  if (merged.length === 0) {
161
161
  out.printList([], { summary: 'No events found' });
162
162
  return;
@@ -390,12 +390,11 @@ export function registerCalendarCommands(cli) {
390
390
  const calendarId = options.calendar ?? 'primary';
391
391
  const { client } = await getCalendarClient(options.account);
392
392
  if (!options.force && process.stdin.isTTY) {
393
- const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
394
- const answer = await new Promise((resolve) => {
395
- rl.question(`Delete event ${eventId}? [y/N] `, resolve);
393
+ const confirmed = await clack.confirm({
394
+ message: `Delete event ${eventId}?`,
395
+ initialValue: false,
396
396
  });
397
- rl.close();
398
- if (answer.toLowerCase() !== 'y') {
397
+ if (clack.isCancel(confirmed) || !confirmed) {
399
398
  out.hint('Cancelled');
400
399
  return;
401
400
  }