@digitalpresence/cliclaw 0.1.0

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 (338) hide show
  1. package/dist/__tests__/calendar.integration.test.d.ts +2 -0
  2. package/dist/__tests__/calendar.integration.test.d.ts.map +1 -0
  3. package/dist/__tests__/calendar.integration.test.js +98 -0
  4. package/dist/__tests__/calendar.integration.test.js.map +1 -0
  5. package/dist/__tests__/forms.integration.test.d.ts +2 -0
  6. package/dist/__tests__/forms.integration.test.d.ts.map +1 -0
  7. package/dist/__tests__/forms.integration.test.js +243 -0
  8. package/dist/__tests__/forms.integration.test.js.map +1 -0
  9. package/dist/__tests__/gdrive.integration.test.d.ts +2 -0
  10. package/dist/__tests__/gdrive.integration.test.d.ts.map +1 -0
  11. package/dist/__tests__/gdrive.integration.test.js +186 -0
  12. package/dist/__tests__/gdrive.integration.test.js.map +1 -0
  13. package/dist/__tests__/gmail.integration.test.d.ts +2 -0
  14. package/dist/__tests__/gmail.integration.test.d.ts.map +1 -0
  15. package/dist/__tests__/gmail.integration.test.js +197 -0
  16. package/dist/__tests__/gmail.integration.test.js.map +1 -0
  17. package/dist/__tests__/gslides.integration.test.d.ts +2 -0
  18. package/dist/__tests__/gslides.integration.test.d.ts.map +1 -0
  19. package/dist/__tests__/gslides.integration.test.js +124 -0
  20. package/dist/__tests__/gslides.integration.test.js.map +1 -0
  21. package/dist/__tests__/sheets.integration.test.d.ts +2 -0
  22. package/dist/__tests__/sheets.integration.test.d.ts.map +1 -0
  23. package/dist/__tests__/sheets.integration.test.js +150 -0
  24. package/dist/__tests__/sheets.integration.test.js.map +1 -0
  25. package/dist/agent/crud.d.ts +6 -0
  26. package/dist/agent/crud.d.ts.map +1 -0
  27. package/dist/agent/crud.js +41 -0
  28. package/dist/agent/crud.js.map +1 -0
  29. package/dist/agent/memory.d.ts +14 -0
  30. package/dist/agent/memory.d.ts.map +1 -0
  31. package/dist/agent/memory.js +66 -0
  32. package/dist/agent/memory.js.map +1 -0
  33. package/dist/agent/permissions.d.ts +4 -0
  34. package/dist/agent/permissions.d.ts.map +1 -0
  35. package/dist/agent/permissions.js +32 -0
  36. package/dist/agent/permissions.js.map +1 -0
  37. package/dist/calendar/accounts.d.ts +3 -0
  38. package/dist/calendar/accounts.d.ts.map +1 -0
  39. package/dist/calendar/accounts.js +21 -0
  40. package/dist/calendar/accounts.js.map +1 -0
  41. package/dist/calendar/auth.d.ts +3 -0
  42. package/dist/calendar/auth.d.ts.map +1 -0
  43. package/dist/calendar/auth.js +41 -0
  44. package/dist/calendar/auth.js.map +1 -0
  45. package/dist/calendar/calendars.d.ts +3 -0
  46. package/dist/calendar/calendars.d.ts.map +1 -0
  47. package/dist/calendar/calendars.js +28 -0
  48. package/dist/calendar/calendars.js.map +1 -0
  49. package/dist/calendar/create.d.ts +3 -0
  50. package/dist/calendar/create.d.ts.map +1 -0
  51. package/dist/calendar/create.js +31 -0
  52. package/dist/calendar/create.js.map +1 -0
  53. package/dist/calendar/delete.d.ts +3 -0
  54. package/dist/calendar/delete.d.ts.map +1 -0
  55. package/dist/calendar/delete.js +21 -0
  56. package/dist/calendar/delete.js.map +1 -0
  57. package/dist/calendar/events.d.ts +3 -0
  58. package/dist/calendar/events.d.ts.map +1 -0
  59. package/dist/calendar/events.js +37 -0
  60. package/dist/calendar/events.js.map +1 -0
  61. package/dist/calendar/get.d.ts +3 -0
  62. package/dist/calendar/get.d.ts.map +1 -0
  63. package/dist/calendar/get.js +21 -0
  64. package/dist/calendar/get.js.map +1 -0
  65. package/dist/calendar/update.d.ts +3 -0
  66. package/dist/calendar/update.d.ts.map +1 -0
  67. package/dist/calendar/update.js +31 -0
  68. package/dist/calendar/update.js.map +1 -0
  69. package/dist/cli.d.ts +3 -0
  70. package/dist/cli.d.ts.map +1 -0
  71. package/dist/cli.js +37 -0
  72. package/dist/cli.js.map +1 -0
  73. package/dist/commands/agent.d.ts +6 -0
  74. package/dist/commands/agent.d.ts.map +1 -0
  75. package/dist/commands/agent.js +107 -0
  76. package/dist/commands/agent.js.map +1 -0
  77. package/dist/commands/calendar.d.ts +9 -0
  78. package/dist/commands/calendar.d.ts.map +1 -0
  79. package/dist/commands/calendar.js +104 -0
  80. package/dist/commands/calendar.js.map +1 -0
  81. package/dist/commands/cron.d.ts +6 -0
  82. package/dist/commands/cron.d.ts.map +1 -0
  83. package/dist/commands/cron.js +103 -0
  84. package/dist/commands/cron.js.map +1 -0
  85. package/dist/commands/forms.d.ts +9 -0
  86. package/dist/commands/forms.d.ts.map +1 -0
  87. package/dist/commands/forms.js +139 -0
  88. package/dist/commands/forms.js.map +1 -0
  89. package/dist/commands/gdrive.d.ts +9 -0
  90. package/dist/commands/gdrive.d.ts.map +1 -0
  91. package/dist/commands/gdrive.js +198 -0
  92. package/dist/commands/gdrive.js.map +1 -0
  93. package/dist/commands/gmail.d.ts +9 -0
  94. package/dist/commands/gmail.d.ts.map +1 -0
  95. package/dist/commands/gmail.js +231 -0
  96. package/dist/commands/gmail.js.map +1 -0
  97. package/dist/commands/gslides.d.ts +9 -0
  98. package/dist/commands/gslides.d.ts.map +1 -0
  99. package/dist/commands/gslides.js +167 -0
  100. package/dist/commands/gslides.js.map +1 -0
  101. package/dist/commands/sheets.d.ts +9 -0
  102. package/dist/commands/sheets.d.ts.map +1 -0
  103. package/dist/commands/sheets.js +174 -0
  104. package/dist/commands/sheets.js.map +1 -0
  105. package/dist/cron/daemon.d.ts +3 -0
  106. package/dist/cron/daemon.d.ts.map +1 -0
  107. package/dist/cron/daemon.js +127 -0
  108. package/dist/cron/daemon.js.map +1 -0
  109. package/dist/cron/handlers.d.ts +6 -0
  110. package/dist/cron/handlers.d.ts.map +1 -0
  111. package/dist/cron/handlers.js +58 -0
  112. package/dist/cron/handlers.js.map +1 -0
  113. package/dist/cron/logger.d.ts +4 -0
  114. package/dist/cron/logger.d.ts.map +1 -0
  115. package/dist/cron/logger.js +11 -0
  116. package/dist/cron/logger.js.map +1 -0
  117. package/dist/cron/progress.d.ts +25 -0
  118. package/dist/cron/progress.d.ts.map +1 -0
  119. package/dist/cron/progress.js +71 -0
  120. package/dist/cron/progress.js.map +1 -0
  121. package/dist/cron/ralph-wiggum.d.ts +18 -0
  122. package/dist/cron/ralph-wiggum.d.ts.map +1 -0
  123. package/dist/cron/ralph-wiggum.js +143 -0
  124. package/dist/cron/ralph-wiggum.js.map +1 -0
  125. package/dist/forms/accounts.d.ts +3 -0
  126. package/dist/forms/accounts.d.ts.map +1 -0
  127. package/dist/forms/accounts.js +20 -0
  128. package/dist/forms/accounts.js.map +1 -0
  129. package/dist/forms/auth.d.ts +3 -0
  130. package/dist/forms/auth.d.ts.map +1 -0
  131. package/dist/forms/auth.js +41 -0
  132. package/dist/forms/auth.js.map +1 -0
  133. package/dist/forms/create.d.ts +3 -0
  134. package/dist/forms/create.d.ts.map +1 -0
  135. package/dist/forms/create.js +28 -0
  136. package/dist/forms/create.js.map +1 -0
  137. package/dist/forms/get.d.ts +3 -0
  138. package/dist/forms/get.d.ts.map +1 -0
  139. package/dist/forms/get.js +21 -0
  140. package/dist/forms/get.js.map +1 -0
  141. package/dist/forms/list.d.ts +3 -0
  142. package/dist/forms/list.d.ts.map +1 -0
  143. package/dist/forms/list.js +33 -0
  144. package/dist/forms/list.js.map +1 -0
  145. package/dist/forms/questions.d.ts +6 -0
  146. package/dist/forms/questions.d.ts.map +1 -0
  147. package/dist/forms/questions.js +179 -0
  148. package/dist/forms/questions.js.map +1 -0
  149. package/dist/forms/responses.d.ts +4 -0
  150. package/dist/forms/responses.d.ts.map +1 -0
  151. package/dist/forms/responses.js +40 -0
  152. package/dist/forms/responses.js.map +1 -0
  153. package/dist/forms/update.d.ts +3 -0
  154. package/dist/forms/update.d.ts.map +1 -0
  155. package/dist/forms/update.js +44 -0
  156. package/dist/forms/update.js.map +1 -0
  157. package/dist/gdrive/about.d.ts +3 -0
  158. package/dist/gdrive/about.d.ts.map +1 -0
  159. package/dist/gdrive/about.js +31 -0
  160. package/dist/gdrive/about.js.map +1 -0
  161. package/dist/gdrive/accounts.d.ts +3 -0
  162. package/dist/gdrive/accounts.d.ts.map +1 -0
  163. package/dist/gdrive/accounts.js +20 -0
  164. package/dist/gdrive/accounts.js.map +1 -0
  165. package/dist/gdrive/auth.d.ts +3 -0
  166. package/dist/gdrive/auth.d.ts.map +1 -0
  167. package/dist/gdrive/auth.js +51 -0
  168. package/dist/gdrive/auth.js.map +1 -0
  169. package/dist/gdrive/files.d.ts +12 -0
  170. package/dist/gdrive/files.d.ts.map +1 -0
  171. package/dist/gdrive/files.js +174 -0
  172. package/dist/gdrive/files.js.map +1 -0
  173. package/dist/gdrive/folders.d.ts +4 -0
  174. package/dist/gdrive/folders.d.ts.map +1 -0
  175. package/dist/gdrive/folders.js +46 -0
  176. package/dist/gdrive/folders.js.map +1 -0
  177. package/dist/gdrive/search.d.ts +3 -0
  178. package/dist/gdrive/search.d.ts.map +1 -0
  179. package/dist/gdrive/search.js +23 -0
  180. package/dist/gdrive/search.js.map +1 -0
  181. package/dist/gdrive/sharing.d.ts +5 -0
  182. package/dist/gdrive/sharing.d.ts.map +1 -0
  183. package/dist/gdrive/sharing.js +54 -0
  184. package/dist/gdrive/sharing.js.map +1 -0
  185. package/dist/gmail/accounts.d.ts +3 -0
  186. package/dist/gmail/accounts.d.ts.map +1 -0
  187. package/dist/gmail/accounts.js +18 -0
  188. package/dist/gmail/accounts.js.map +1 -0
  189. package/dist/gmail/auth.d.ts +3 -0
  190. package/dist/gmail/auth.d.ts.map +1 -0
  191. package/dist/gmail/auth.js +50 -0
  192. package/dist/gmail/auth.js.map +1 -0
  193. package/dist/gmail/drafts.d.ts +7 -0
  194. package/dist/gmail/drafts.d.ts.map +1 -0
  195. package/dist/gmail/drafts.js +103 -0
  196. package/dist/gmail/drafts.js.map +1 -0
  197. package/dist/gmail/get.d.ts +4 -0
  198. package/dist/gmail/get.d.ts.map +1 -0
  199. package/dist/gmail/get.js +140 -0
  200. package/dist/gmail/get.js.map +1 -0
  201. package/dist/gmail/inbox.d.ts +4 -0
  202. package/dist/gmail/inbox.d.ts.map +1 -0
  203. package/dist/gmail/inbox.js +45 -0
  204. package/dist/gmail/inbox.js.map +1 -0
  205. package/dist/gmail/labels.d.ts +5 -0
  206. package/dist/gmail/labels.d.ts.map +1 -0
  207. package/dist/gmail/labels.js +45 -0
  208. package/dist/gmail/labels.js.map +1 -0
  209. package/dist/gmail/modify.d.ts +5 -0
  210. package/dist/gmail/modify.d.ts.map +1 -0
  211. package/dist/gmail/modify.js +68 -0
  212. package/dist/gmail/modify.js.map +1 -0
  213. package/dist/gmail/send.d.ts +5 -0
  214. package/dist/gmail/send.d.ts.map +1 -0
  215. package/dist/gmail/send.js +310 -0
  216. package/dist/gmail/send.js.map +1 -0
  217. package/dist/gmail/threads.d.ts +4 -0
  218. package/dist/gmail/threads.d.ts.map +1 -0
  219. package/dist/gmail/threads.js +47 -0
  220. package/dist/gmail/threads.js.map +1 -0
  221. package/dist/gslides/accounts.d.ts +3 -0
  222. package/dist/gslides/accounts.d.ts.map +1 -0
  223. package/dist/gslides/accounts.js +20 -0
  224. package/dist/gslides/accounts.js.map +1 -0
  225. package/dist/gslides/auth.d.ts +3 -0
  226. package/dist/gslides/auth.d.ts.map +1 -0
  227. package/dist/gslides/auth.js +50 -0
  228. package/dist/gslides/auth.js.map +1 -0
  229. package/dist/gslides/presentations.d.ts +29 -0
  230. package/dist/gslides/presentations.d.ts.map +1 -0
  231. package/dist/gslides/presentations.js +320 -0
  232. package/dist/gslides/presentations.js.map +1 -0
  233. package/dist/lib/config.d.ts +6 -0
  234. package/dist/lib/config.d.ts.map +1 -0
  235. package/dist/lib/config.js +12 -0
  236. package/dist/lib/config.js.map +1 -0
  237. package/dist/lib/media-utils.d.ts +5 -0
  238. package/dist/lib/media-utils.d.ts.map +1 -0
  239. package/dist/lib/media-utils.js +79 -0
  240. package/dist/lib/media-utils.js.map +1 -0
  241. package/dist/lib/output.d.ts +4 -0
  242. package/dist/lib/output.d.ts.map +1 -0
  243. package/dist/lib/output.js +12 -0
  244. package/dist/lib/output.js.map +1 -0
  245. package/dist/sheets/accounts.d.ts +3 -0
  246. package/dist/sheets/accounts.d.ts.map +1 -0
  247. package/dist/sheets/accounts.js +20 -0
  248. package/dist/sheets/accounts.js.map +1 -0
  249. package/dist/sheets/auth.d.ts +3 -0
  250. package/dist/sheets/auth.d.ts.map +1 -0
  251. package/dist/sheets/auth.js +56 -0
  252. package/dist/sheets/auth.js.map +1 -0
  253. package/dist/sheets/cells.d.ts +6 -0
  254. package/dist/sheets/cells.d.ts.map +1 -0
  255. package/dist/sheets/cells.js +89 -0
  256. package/dist/sheets/cells.js.map +1 -0
  257. package/dist/sheets/format.d.ts +8 -0
  258. package/dist/sheets/format.d.ts.map +1 -0
  259. package/dist/sheets/format.js +97 -0
  260. package/dist/sheets/format.js.map +1 -0
  261. package/dist/sheets/sheets-tab.d.ts +6 -0
  262. package/dist/sheets/sheets-tab.d.ts.map +1 -0
  263. package/dist/sheets/sheets-tab.js +88 -0
  264. package/dist/sheets/sheets-tab.js.map +1 -0
  265. package/dist/sheets/spreadsheets.d.ts +6 -0
  266. package/dist/sheets/spreadsheets.d.ts.map +1 -0
  267. package/dist/sheets/spreadsheets.js +88 -0
  268. package/dist/sheets/spreadsheets.js.map +1 -0
  269. package/package.json +33 -0
  270. package/src/__tests__/calendar.integration.test.ts +152 -0
  271. package/src/__tests__/forms.integration.test.ts +403 -0
  272. package/src/__tests__/gdrive.integration.test.ts +253 -0
  273. package/src/__tests__/gmail.integration.test.ts +294 -0
  274. package/src/__tests__/gslides.integration.test.ts +195 -0
  275. package/src/__tests__/sheets.integration.test.ts +234 -0
  276. package/src/agent/crud.ts +54 -0
  277. package/src/agent/memory.ts +95 -0
  278. package/src/agent/permissions.ts +54 -0
  279. package/src/calendar/accounts.ts +25 -0
  280. package/src/calendar/auth.ts +45 -0
  281. package/src/calendar/calendars.ts +32 -0
  282. package/src/calendar/create.ts +44 -0
  283. package/src/calendar/delete.ts +27 -0
  284. package/src/calendar/events.ts +45 -0
  285. package/src/calendar/get.ts +27 -0
  286. package/src/calendar/update.ts +44 -0
  287. package/src/cli.ts +41 -0
  288. package/src/commands/agent.ts +128 -0
  289. package/src/commands/calendar.ts +127 -0
  290. package/src/commands/cron.ts +126 -0
  291. package/src/commands/forms.ts +158 -0
  292. package/src/commands/gdrive.ts +225 -0
  293. package/src/commands/gmail.ts +290 -0
  294. package/src/commands/gslides.ts +188 -0
  295. package/src/commands/sheets.ts +193 -0
  296. package/src/cron/daemon.ts +143 -0
  297. package/src/cron/handlers.ts +78 -0
  298. package/src/cron/logger.ts +20 -0
  299. package/src/cron/progress.ts +90 -0
  300. package/src/cron/ralph-wiggum.ts +172 -0
  301. package/src/forms/accounts.ts +24 -0
  302. package/src/forms/auth.ts +45 -0
  303. package/src/forms/create.ts +34 -0
  304. package/src/forms/get.ts +26 -0
  305. package/src/forms/list.ts +38 -0
  306. package/src/forms/questions.ts +209 -0
  307. package/src/forms/responses.ts +50 -0
  308. package/src/forms/update.ts +57 -0
  309. package/src/gdrive/about.ts +36 -0
  310. package/src/gdrive/accounts.ts +24 -0
  311. package/src/gdrive/auth.ts +55 -0
  312. package/src/gdrive/files.ts +237 -0
  313. package/src/gdrive/folders.ts +58 -0
  314. package/src/gdrive/search.ts +30 -0
  315. package/src/gdrive/sharing.ts +72 -0
  316. package/src/gmail/accounts.ts +22 -0
  317. package/src/gmail/auth.ts +53 -0
  318. package/src/gmail/drafts.ts +166 -0
  319. package/src/gmail/get.ts +195 -0
  320. package/src/gmail/inbox.ts +78 -0
  321. package/src/gmail/labels.ts +69 -0
  322. package/src/gmail/modify.ts +89 -0
  323. package/src/gmail/send.ts +424 -0
  324. package/src/gmail/threads.ts +68 -0
  325. package/src/gslides/accounts.ts +24 -0
  326. package/src/gslides/auth.ts +54 -0
  327. package/src/gslides/presentations.ts +384 -0
  328. package/src/lib/config.ts +14 -0
  329. package/src/lib/media-utils.ts +82 -0
  330. package/src/lib/output.ts +13 -0
  331. package/src/sheets/accounts.ts +24 -0
  332. package/src/sheets/auth.ts +60 -0
  333. package/src/sheets/cells.ts +112 -0
  334. package/src/sheets/format.ts +114 -0
  335. package/src/sheets/sheets-tab.ts +109 -0
  336. package/src/sheets/spreadsheets.ts +106 -0
  337. package/tsconfig.json +8 -0
  338. package/vitest.config.ts +7 -0
@@ -0,0 +1,198 @@
1
+ import { handleAuth } from "../gdrive/auth.js";
2
+ import { handleAccounts } from "../gdrive/accounts.js";
3
+ import { handleList, handleGet, handleDownload, handleUpload, handleDelete, handleTrash, handleUntrash, handleMove, handleCopy, handleRename, } from "../gdrive/files.js";
4
+ import { handleMkdir, handleListFolder } from "../gdrive/folders.js";
5
+ import { handleSearch } from "../gdrive/search.js";
6
+ import { handleShare, handleUnshare, handlePermissions } from "../gdrive/sharing.js";
7
+ import { handleAbout } from "../gdrive/about.js";
8
+ export function registerGDriveCommands(program, getClient) {
9
+ let cached = null;
10
+ function resolve() {
11
+ if (!cached)
12
+ cached = getClient();
13
+ return cached;
14
+ }
15
+ const gdrive = program.command("gdrive").description("Google Drive commands");
16
+ gdrive
17
+ .command("auth")
18
+ .description("Authenticate with Google Drive via Google OAuth2")
19
+ .option("--account <name>", "Account name", "default")
20
+ .action(async (opts) => {
21
+ const { clientManager, port } = resolve();
22
+ await handleAuth(clientManager, port, opts.account);
23
+ });
24
+ gdrive
25
+ .command("accounts")
26
+ .description("List authenticated Google Drive accounts")
27
+ .action(async () => {
28
+ const { clientManager } = resolve();
29
+ await handleAccounts(clientManager);
30
+ });
31
+ gdrive
32
+ .command("list")
33
+ .description("List files in Google Drive")
34
+ .option("--max-results <n>", "Maximum files to return", "20")
35
+ .option("--query <query>", "Drive query filter (e.g. mimeType='application/pdf')")
36
+ .option("--account <name>", "Account name", "default")
37
+ .action(async (opts) => {
38
+ const { clientManager } = resolve();
39
+ await handleList(clientManager, opts.account, parseInt(opts.maxResults), opts.query);
40
+ });
41
+ gdrive
42
+ .command("get")
43
+ .description("Get file metadata by ID")
44
+ .requiredOption("--id <id>", "File ID")
45
+ .option("--account <name>", "Account name", "default")
46
+ .action(async (opts) => {
47
+ const { clientManager } = resolve();
48
+ await handleGet(clientManager, opts.account, opts.id);
49
+ });
50
+ gdrive
51
+ .command("download")
52
+ .description("Download a file")
53
+ .requiredOption("--id <id>", "File ID")
54
+ .requiredOption("--save-dir <dir>", "Directory to save to")
55
+ .option("--filename <name>", "Override filename")
56
+ .option("--account <name>", "Account name", "default")
57
+ .action(async (opts) => {
58
+ const { clientManager } = resolve();
59
+ await handleDownload(clientManager, opts.account, opts.id, opts.saveDir, opts.filename);
60
+ });
61
+ gdrive
62
+ .command("upload")
63
+ .description("Upload a file")
64
+ .requiredOption("--file <path>", "Local file path")
65
+ .option("--name <name>", "Override filename in Drive")
66
+ .option("--parent <id>", "Parent folder ID")
67
+ .option("--account <name>", "Account name", "default")
68
+ .action(async (opts) => {
69
+ const { clientManager } = resolve();
70
+ await handleUpload(clientManager, opts.account, opts.file, opts.name, opts.parent);
71
+ });
72
+ gdrive
73
+ .command("delete")
74
+ .description("Permanently delete a file")
75
+ .requiredOption("--id <id>", "File ID")
76
+ .option("--account <name>", "Account name", "default")
77
+ .action(async (opts) => {
78
+ const { clientManager } = resolve();
79
+ await handleDelete(clientManager, opts.account, opts.id);
80
+ });
81
+ gdrive
82
+ .command("trash")
83
+ .description("Move a file to trash")
84
+ .requiredOption("--id <id>", "File ID")
85
+ .option("--account <name>", "Account name", "default")
86
+ .action(async (opts) => {
87
+ const { clientManager } = resolve();
88
+ await handleTrash(clientManager, opts.account, opts.id);
89
+ });
90
+ gdrive
91
+ .command("untrash")
92
+ .description("Restore a file from trash")
93
+ .requiredOption("--id <id>", "File ID")
94
+ .option("--account <name>", "Account name", "default")
95
+ .action(async (opts) => {
96
+ const { clientManager } = resolve();
97
+ await handleUntrash(clientManager, opts.account, opts.id);
98
+ });
99
+ gdrive
100
+ .command("move")
101
+ .description("Move a file to a different folder")
102
+ .requiredOption("--id <id>", "File ID")
103
+ .requiredOption("--to <folder-id>", "Destination folder ID")
104
+ .option("--account <name>", "Account name", "default")
105
+ .action(async (opts) => {
106
+ const { clientManager } = resolve();
107
+ await handleMove(clientManager, opts.account, opts.id, opts.to);
108
+ });
109
+ gdrive
110
+ .command("copy")
111
+ .description("Copy a file")
112
+ .requiredOption("--id <id>", "File ID")
113
+ .option("--name <name>", "Name for the copy")
114
+ .option("--account <name>", "Account name", "default")
115
+ .action(async (opts) => {
116
+ const { clientManager } = resolve();
117
+ await handleCopy(clientManager, opts.account, opts.id, opts.name);
118
+ });
119
+ gdrive
120
+ .command("rename")
121
+ .description("Rename a file")
122
+ .requiredOption("--id <id>", "File ID")
123
+ .requiredOption("--name <name>", "New name")
124
+ .option("--account <name>", "Account name", "default")
125
+ .action(async (opts) => {
126
+ const { clientManager } = resolve();
127
+ await handleRename(clientManager, opts.account, opts.id, opts.name);
128
+ });
129
+ gdrive
130
+ .command("mkdir")
131
+ .description("Create a new folder")
132
+ .requiredOption("--name <name>", "Folder name")
133
+ .option("--parent <id>", "Parent folder ID")
134
+ .option("--account <name>", "Account name", "default")
135
+ .action(async (opts) => {
136
+ const { clientManager } = resolve();
137
+ await handleMkdir(clientManager, opts.account, opts.name, opts.parent);
138
+ });
139
+ gdrive
140
+ .command("list-folder")
141
+ .description("List contents of a specific folder")
142
+ .requiredOption("--id <id>", "Folder ID")
143
+ .option("--max-results <n>", "Maximum items to return", "50")
144
+ .option("--account <name>", "Account name", "default")
145
+ .action(async (opts) => {
146
+ const { clientManager } = resolve();
147
+ await handleListFolder(clientManager, opts.account, opts.id, parseInt(opts.maxResults));
148
+ });
149
+ gdrive
150
+ .command("search")
151
+ .description("Full-text search across Drive")
152
+ .requiredOption("--query <query>", "Search query")
153
+ .option("--max-results <n>", "Maximum results to return", "20")
154
+ .option("--account <name>", "Account name", "default")
155
+ .action(async (opts) => {
156
+ const { clientManager } = resolve();
157
+ await handleSearch(clientManager, opts.account, opts.query, parseInt(opts.maxResults));
158
+ });
159
+ gdrive
160
+ .command("share")
161
+ .description("Share a file with a user")
162
+ .requiredOption("--id <id>", "File ID")
163
+ .requiredOption("--email <email>", "Email to share with")
164
+ .option("--role <role>", "Permission role: reader, writer, commenter", "reader")
165
+ .option("--account <name>", "Account name", "default")
166
+ .action(async (opts) => {
167
+ const { clientManager } = resolve();
168
+ await handleShare(clientManager, opts.account, opts.id, opts.email, opts.role);
169
+ });
170
+ gdrive
171
+ .command("unshare")
172
+ .description("Remove a permission from a file")
173
+ .requiredOption("--id <id>", "File ID")
174
+ .requiredOption("--permission-id <pid>", "Permission ID to remove")
175
+ .option("--account <name>", "Account name", "default")
176
+ .action(async (opts) => {
177
+ const { clientManager } = resolve();
178
+ await handleUnshare(clientManager, opts.account, opts.id, opts.permissionId);
179
+ });
180
+ gdrive
181
+ .command("permissions")
182
+ .description("List permissions on a file")
183
+ .requiredOption("--id <id>", "File ID")
184
+ .option("--account <name>", "Account name", "default")
185
+ .action(async (opts) => {
186
+ const { clientManager } = resolve();
187
+ await handlePermissions(clientManager, opts.account, opts.id);
188
+ });
189
+ gdrive
190
+ .command("about")
191
+ .description("Show storage quota and user info")
192
+ .option("--account <name>", "Account name", "default")
193
+ .action(async (opts) => {
194
+ const { clientManager } = resolve();
195
+ await handleAbout(clientManager, opts.account);
196
+ });
197
+ }
198
+ //# sourceMappingURL=gdrive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gdrive.js","sourceRoot":"","sources":["../../src/commands/gdrive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command } from "commander";
2
+ import type { OAuthClientManager } from "@digitalpresence/cliclaw-auth";
3
+ type ClientFactory = () => {
4
+ clientManager: OAuthClientManager;
5
+ port: number;
6
+ };
7
+ export declare function registerGmailCommands(program: Command, getClient: ClientFactory): void;
8
+ export {};
9
+ //# sourceMappingURL=gmail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../src/commands/gmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAWxE,KAAK,aAAa,GAAG,MAAM;IAAE,aAAa,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAmRtF"}
@@ -0,0 +1,231 @@
1
+ import { handleAuth } from "../gmail/auth.js";
2
+ import { handleAccounts } from "../gmail/accounts.js";
3
+ import { handleInbox, handleSearch } from "../gmail/inbox.js";
4
+ import { handleGet, handleDownloadAttachment } from "../gmail/get.js";
5
+ import { handleSend, handleReply, handleForward } from "../gmail/send.js";
6
+ import { handleModify } from "../gmail/modify.js";
7
+ import { handleDraftList, handleDraftCreate, handleDraftUpdate, handleDraftDelete, handleDraftSend } from "../gmail/drafts.js";
8
+ import { handleLabelsList, handleLabelCreate, handleLabelDelete } from "../gmail/labels.js";
9
+ import { handleThreadList, handleThreadGet } from "../gmail/threads.js";
10
+ export function registerGmailCommands(program, getClient) {
11
+ // Cache so we only call the factory once
12
+ let cached = null;
13
+ function resolve() {
14
+ if (!cached)
15
+ cached = getClient();
16
+ return cached;
17
+ }
18
+ const gmail = program.command("gmail").description("Gmail commands");
19
+ gmail
20
+ .command("auth")
21
+ .description("Authenticate with Gmail via Google OAuth2")
22
+ .option("--account <name>", "Account name", "default")
23
+ .action(async (opts) => {
24
+ const { clientManager, port } = resolve();
25
+ await handleAuth(clientManager, port, opts.account);
26
+ });
27
+ gmail
28
+ .command("accounts")
29
+ .description("List authenticated Gmail accounts")
30
+ .action(async () => {
31
+ const { clientManager } = resolve();
32
+ await handleAccounts(clientManager);
33
+ });
34
+ gmail
35
+ .command("inbox")
36
+ .description("List recent inbox messages")
37
+ .option("--max-results <n>", "Maximum messages to return", "20")
38
+ .option("--account <name>", "Account name", "default")
39
+ .action(async (opts) => {
40
+ const { clientManager } = resolve();
41
+ await handleInbox(clientManager, opts.account, parseInt(opts.maxResults));
42
+ });
43
+ gmail
44
+ .command("search")
45
+ .description("Search Gmail messages")
46
+ .requiredOption("--query <query>", "Gmail search query")
47
+ .option("--max-results <n>", "Maximum messages to return", "20")
48
+ .option("--account <name>", "Account name", "default")
49
+ .action(async (opts) => {
50
+ const { clientManager } = resolve();
51
+ await handleSearch(clientManager, opts.account, opts.query, parseInt(opts.maxResults));
52
+ });
53
+ gmail
54
+ .command("get")
55
+ .description("Get full message by ID")
56
+ .requiredOption("--id <id>", "Gmail message ID")
57
+ .option("--account <name>", "Account name", "default")
58
+ .action(async (opts) => {
59
+ const { clientManager } = resolve();
60
+ await handleGet(clientManager, opts.account, opts.id);
61
+ });
62
+ gmail
63
+ .command("send")
64
+ .description("Send a new email")
65
+ .requiredOption("--to <address>", "Recipient email")
66
+ .requiredOption("--subject <subject>", "Email subject")
67
+ .requiredOption("--body <text>", "Plain-text body")
68
+ .option("--cc <addresses>", "CC recipients")
69
+ .option("--bcc <addresses>", "BCC recipients")
70
+ .option("--html-body <html>", "HTML body")
71
+ .option("--attachment <path>", "File attachment path (repeatable)", (val, prev) => prev.concat(val), [])
72
+ .option("--account <name>", "Account name", "default")
73
+ .action(async (opts) => {
74
+ const { clientManager } = resolve();
75
+ await handleSend(clientManager, opts.account, opts.to, opts.subject, opts.body, opts.cc, opts.bcc, opts.htmlBody, opts.attachment.length > 0 ? opts.attachment : undefined);
76
+ });
77
+ gmail
78
+ .command("reply")
79
+ .description("Reply to an existing message")
80
+ .requiredOption("--id <id>", "Message ID to reply to")
81
+ .requiredOption("--body <text>", "Reply body")
82
+ .option("--reply-all", "Reply to all recipients")
83
+ .option("--html-body <html>", "HTML reply body")
84
+ .option("--attachment <path>", "File attachment path (repeatable)", (val, prev) => prev.concat(val), [])
85
+ .option("--account <name>", "Account name", "default")
86
+ .action(async (opts) => {
87
+ const { clientManager } = resolve();
88
+ await handleReply(clientManager, opts.account, opts.id, opts.body, opts.replyAll, opts.htmlBody, opts.attachment.length > 0 ? opts.attachment : undefined);
89
+ });
90
+ gmail
91
+ .command("forward")
92
+ .description("Forward a message")
93
+ .requiredOption("--id <id>", "Message ID to forward")
94
+ .requiredOption("--to <address>", "Recipient to forward to")
95
+ .option("--body <text>", "Introductory note")
96
+ .option("--attachment <path>", "File attachment path (repeatable)", (val, prev) => prev.concat(val), [])
97
+ .option("--account <name>", "Account name", "default")
98
+ .action(async (opts) => {
99
+ const { clientManager } = resolve();
100
+ await handleForward(clientManager, opts.account, opts.id, opts.to, opts.body, opts.attachment.length > 0 ? opts.attachment : undefined);
101
+ });
102
+ gmail
103
+ .command("modify")
104
+ .description("Modify message state (read/unread/archive/trash/star/labels)")
105
+ .requiredOption("--id <id>", "Message ID")
106
+ .requiredOption("--action <action>", "Action: mark_read, mark_unread, archive, trash, untrash, star, unstar, add_labels, remove_labels")
107
+ .option("--label-ids <ids...>", "Label IDs for add_labels/remove_labels")
108
+ .option("--account <name>", "Account name", "default")
109
+ .action(async (opts) => {
110
+ const { clientManager } = resolve();
111
+ await handleModify(clientManager, opts.account, opts.id, opts.action, opts.labelIds);
112
+ });
113
+ gmail
114
+ .command("download-attachment")
115
+ .description("Download an email attachment")
116
+ .requiredOption("--id <id>", "Message ID")
117
+ .requiredOption("--attachment-id <aid>", "Attachment ID")
118
+ .requiredOption("--filename <name>", "Filename to save as")
119
+ .requiredOption("--save-dir <dir>", "Directory to save to")
120
+ .option("--account <name>", "Account name", "default")
121
+ .action(async (opts) => {
122
+ const { clientManager } = resolve();
123
+ await handleDownloadAttachment(clientManager, opts.account, opts.id, opts.attachmentId, opts.filename, opts.saveDir);
124
+ });
125
+ // Drafts subcommand group
126
+ const drafts = gmail.command("drafts").description("Draft management");
127
+ drafts
128
+ .command("list")
129
+ .description("List drafts")
130
+ .option("--max-results <n>", "Maximum drafts to return", "20")
131
+ .option("--account <name>", "Account name", "default")
132
+ .action(async (opts) => {
133
+ const { clientManager } = resolve();
134
+ await handleDraftList(clientManager, opts.account, parseInt(opts.maxResults));
135
+ });
136
+ drafts
137
+ .command("create")
138
+ .description("Create a new draft")
139
+ .requiredOption("--to <address>", "Recipient email")
140
+ .requiredOption("--subject <subject>", "Email subject")
141
+ .requiredOption("--body <text>", "Plain-text body")
142
+ .option("--cc <addresses>", "CC recipients")
143
+ .option("--bcc <addresses>", "BCC recipients")
144
+ .option("--account <name>", "Account name", "default")
145
+ .action(async (opts) => {
146
+ const { clientManager } = resolve();
147
+ await handleDraftCreate(clientManager, opts.account, opts.to, opts.subject, opts.body, opts.cc, opts.bcc);
148
+ });
149
+ drafts
150
+ .command("update")
151
+ .description("Update an existing draft")
152
+ .requiredOption("--draft-id <id>", "Draft ID")
153
+ .requiredOption("--to <address>", "Recipient email")
154
+ .requiredOption("--subject <subject>", "Email subject")
155
+ .requiredOption("--body <text>", "Plain-text body")
156
+ .option("--cc <addresses>", "CC recipients")
157
+ .option("--bcc <addresses>", "BCC recipients")
158
+ .option("--account <name>", "Account name", "default")
159
+ .action(async (opts) => {
160
+ const { clientManager } = resolve();
161
+ await handleDraftUpdate(clientManager, opts.account, opts.draftId, opts.to, opts.subject, opts.body, opts.cc, opts.bcc);
162
+ });
163
+ drafts
164
+ .command("delete")
165
+ .description("Delete a draft")
166
+ .requiredOption("--draft-id <id>", "Draft ID")
167
+ .option("--account <name>", "Account name", "default")
168
+ .action(async (opts) => {
169
+ const { clientManager } = resolve();
170
+ await handleDraftDelete(clientManager, opts.account, opts.draftId);
171
+ });
172
+ drafts
173
+ .command("send")
174
+ .description("Send a draft")
175
+ .requiredOption("--draft-id <id>", "Draft ID")
176
+ .option("--account <name>", "Account name", "default")
177
+ .action(async (opts) => {
178
+ const { clientManager } = resolve();
179
+ await handleDraftSend(clientManager, opts.account, opts.draftId);
180
+ });
181
+ // Labels subcommand group
182
+ const labels = gmail.command("labels").description("Label management");
183
+ labels
184
+ .command("list")
185
+ .description("List all labels")
186
+ .option("--account <name>", "Account name", "default")
187
+ .action(async (opts) => {
188
+ const { clientManager } = resolve();
189
+ await handleLabelsList(clientManager, opts.account);
190
+ });
191
+ labels
192
+ .command("create")
193
+ .description("Create a new label")
194
+ .requiredOption("--name <name>", "Label name")
195
+ .option("--account <name>", "Account name", "default")
196
+ .action(async (opts) => {
197
+ const { clientManager } = resolve();
198
+ await handleLabelCreate(clientManager, opts.account, opts.name);
199
+ });
200
+ labels
201
+ .command("delete")
202
+ .description("Delete a label")
203
+ .requiredOption("--label-id <id>", "Label ID")
204
+ .option("--account <name>", "Account name", "default")
205
+ .action(async (opts) => {
206
+ const { clientManager } = resolve();
207
+ await handleLabelDelete(clientManager, opts.account, opts.labelId);
208
+ });
209
+ // Threads subcommand group
210
+ const threads = gmail.command("threads").description("Thread management");
211
+ threads
212
+ .command("list")
213
+ .description("List threads")
214
+ .option("--query <query>", "Gmail search query")
215
+ .option("--max-results <n>", "Maximum threads to return", "20")
216
+ .option("--account <name>", "Account name", "default")
217
+ .action(async (opts) => {
218
+ const { clientManager } = resolve();
219
+ await handleThreadList(clientManager, opts.account, parseInt(opts.maxResults), opts.query);
220
+ });
221
+ threads
222
+ .command("get")
223
+ .description("Get all messages in a thread")
224
+ .requiredOption("--thread-id <id>", "Thread ID")
225
+ .option("--account <name>", "Account name", "default")
226
+ .action(async (opts) => {
227
+ const { clientManager } = resolve();
228
+ await handleThreadGet(clientManager, opts.account, opts.threadId);
229
+ });
230
+ }
231
+ //# sourceMappingURL=gmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmail.js","sourceRoot":"","sources":["../../src/commands/gmail.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/H,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAIxE,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,SAAwB;IAC9E,yCAAyC;IACzC,IAAI,MAAM,GAA+D,IAAI,CAAC;IAC9E,SAAS,OAAO;QACd,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAErE,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1C,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,EAAE,IAAI,CAAC;SAC/D,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uBAAuB,CAAC;SACpC,cAAc,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SACvD,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,EAAE,IAAI,CAAC;SAC/D,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,wBAAwB,CAAC;SACrC,cAAc,CAAC,WAAW,EAAE,kBAAkB,CAAC;SAC/C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kBAAkB,CAAC;SAC/B,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;SACnD,cAAc,CAAC,qBAAqB,EAAE,eAAe,CAAC;SACtD,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;SAC3C,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SAC7C,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC;SACzC,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,EAAE,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAc,CAAC;SACrI,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,UAAU,CACd,aAAa,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CAAC,WAAW,EAAE,wBAAwB,CAAC;SACrD,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C,MAAM,CAAC,aAAa,EAAE,yBAAyB,CAAC;SAChD,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SAC/C,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,EAAE,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAc,CAAC;SACrI,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,WAAW,CACf,aAAa,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mBAAmB,CAAC;SAChC,cAAc,CAAC,WAAW,EAAE,uBAAuB,CAAC;SACpD,cAAc,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SAC3D,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC;SAC5C,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,EAAE,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAc,CAAC;SACrI,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,aAAa,CACjB,aAAa,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;SACzC,cAAc,CAAC,mBAAmB,EAAE,kGAAkG,CAAC;SACvI,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;SACxE,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;SACzC,cAAc,CAAC,uBAAuB,EAAE,eAAe,CAAC;SACxD,cAAc,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;SAC1D,cAAc,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAC1D,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,wBAAwB,CAC5B,aAAa,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,0BAA0B;IAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEvE,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,aAAa,CAAC;SAC1B,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,IAAI,CAAC;SAC7D,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oBAAoB,CAAC;SACjC,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;SACnD,cAAc,CAAC,qBAAqB,EAAE,eAAe,CAAC;SACtD,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;SAC3C,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SAC7C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0BAA0B,CAAC;SACvC,cAAc,CAAC,iBAAiB,EAAE,UAAU,CAAC;SAC7C,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;SACnD,cAAc,CAAC,qBAAqB,EAAE,eAAe,CAAC;SACtD,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;SAC3C,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SAC7C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,cAAc,CAAC,iBAAiB,EAAE,UAAU,CAAC;SAC7C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,cAAc,CAAC;SAC3B,cAAc,CAAC,iBAAiB,EAAE,UAAU,CAAC;SAC7C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEL,0BAA0B;IAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEvE,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oBAAoB,CAAC;SACjC,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,cAAc,CAAC,iBAAiB,EAAE,UAAU,CAAC;SAC7C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEL,2BAA2B;IAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAE1E,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SAC/C,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,IAAI,CAAC;SAC9D,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CAAC,kBAAkB,EAAE,WAAW,CAAC;SAC/C,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,SAAS,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QACpC,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Command } from "commander";
2
+ import type { OAuthClientManager } from "@digitalpresence/cliclaw-auth";
3
+ type ClientFactory = () => {
4
+ clientManager: OAuthClientManager;
5
+ port: number;
6
+ };
7
+ export declare function registerGSlidesCommands(program: Command, getClient: ClientFactory): void;
8
+ export {};
9
+ //# sourceMappingURL=gslides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gslides.d.ts","sourceRoot":"","sources":["../../src/commands/gslides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASxE,KAAK,aAAa,GAAG,MAAM;IAAE,aAAa,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CA+KxF"}