@doist/todoist-cli 1.29.2 → 1.29.4

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 (248) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +11 -4
  3. package/scripts/check-skill-sync.js +40 -0
  4. package/scripts/sync-skill.js +28 -0
  5. package/dist/__mocks__/chalk.d.ts +0 -3
  6. package/dist/__mocks__/chalk.d.ts.map +0 -1
  7. package/dist/__mocks__/chalk.js +0 -8
  8. package/dist/__mocks__/chalk.js.map +0 -1
  9. package/dist/commands/activity.d.ts +0 -3
  10. package/dist/commands/activity.d.ts.map +0 -1
  11. package/dist/commands/activity.js +0 -267
  12. package/dist/commands/activity.js.map +0 -1
  13. package/dist/commands/add.d.ts +0 -3
  14. package/dist/commands/add.d.ts.map +0 -1
  15. package/dist/commands/add.js +0 -36
  16. package/dist/commands/add.js.map +0 -1
  17. package/dist/commands/attachment.d.ts +0 -3
  18. package/dist/commands/attachment.d.ts.map +0 -1
  19. package/dist/commands/attachment.js +0 -156
  20. package/dist/commands/attachment.js.map +0 -1
  21. package/dist/commands/auth.d.ts +0 -3
  22. package/dist/commands/auth.d.ts.map +0 -1
  23. package/dist/commands/auth.js +0 -124
  24. package/dist/commands/auth.js.map +0 -1
  25. package/dist/commands/changelog.d.ts +0 -8
  26. package/dist/commands/changelog.d.ts.map +0 -1
  27. package/dist/commands/changelog.js +0 -92
  28. package/dist/commands/changelog.js.map +0 -1
  29. package/dist/commands/comment.d.ts +0 -3
  30. package/dist/commands/comment.d.ts.map +0 -1
  31. package/dist/commands/comment.js +0 -301
  32. package/dist/commands/comment.js.map +0 -1
  33. package/dist/commands/completed.d.ts +0 -3
  34. package/dist/commands/completed.d.ts.map +0 -1
  35. package/dist/commands/completed.js +0 -107
  36. package/dist/commands/completed.js.map +0 -1
  37. package/dist/commands/completion.d.ts +0 -3
  38. package/dist/commands/completion.d.ts.map +0 -1
  39. package/dist/commands/completion.js +0 -107
  40. package/dist/commands/completion.js.map +0 -1
  41. package/dist/commands/filter.d.ts +0 -5
  42. package/dist/commands/filter.d.ts.map +0 -1
  43. package/dist/commands/filter.js +0 -287
  44. package/dist/commands/filter.js.map +0 -1
  45. package/dist/commands/inbox.d.ts +0 -3
  46. package/dist/commands/inbox.d.ts.map +0 -1
  47. package/dist/commands/inbox.js +0 -25
  48. package/dist/commands/inbox.js.map +0 -1
  49. package/dist/commands/label.d.ts +0 -5
  50. package/dist/commands/label.d.ts.map +0 -1
  51. package/dist/commands/label.js +0 -328
  52. package/dist/commands/label.js.map +0 -1
  53. package/dist/commands/notification.d.ts +0 -3
  54. package/dist/commands/notification.d.ts.map +0 -1
  55. package/dist/commands/notification.js +0 -274
  56. package/dist/commands/notification.js.map +0 -1
  57. package/dist/commands/project.d.ts +0 -5
  58. package/dist/commands/project.d.ts.map +0 -1
  59. package/dist/commands/project.js +0 -528
  60. package/dist/commands/project.js.map +0 -1
  61. package/dist/commands/reminder.d.ts +0 -3
  62. package/dist/commands/reminder.d.ts.map +0 -1
  63. package/dist/commands/reminder.js +0 -271
  64. package/dist/commands/reminder.js.map +0 -1
  65. package/dist/commands/section.d.ts +0 -3
  66. package/dist/commands/section.d.ts.map +0 -1
  67. package/dist/commands/section.js +0 -172
  68. package/dist/commands/section.js.map +0 -1
  69. package/dist/commands/settings.d.ts +0 -12
  70. package/dist/commands/settings.d.ts.map +0 -1
  71. package/dist/commands/settings.js +0 -312
  72. package/dist/commands/settings.js.map +0 -1
  73. package/dist/commands/skill.d.ts +0 -3
  74. package/dist/commands/skill.d.ts.map +0 -1
  75. package/dist/commands/skill.js +0 -127
  76. package/dist/commands/skill.js.map +0 -1
  77. package/dist/commands/stats.d.ts +0 -3
  78. package/dist/commands/stats.d.ts.map +0 -1
  79. package/dist/commands/stats.js +0 -151
  80. package/dist/commands/stats.js.map +0 -1
  81. package/dist/commands/task.d.ts +0 -5
  82. package/dist/commands/task.d.ts.map +0 -1
  83. package/dist/commands/task.js +0 -559
  84. package/dist/commands/task.js.map +0 -1
  85. package/dist/commands/today.d.ts +0 -18
  86. package/dist/commands/today.d.ts.map +0 -1
  87. package/dist/commands/today.js +0 -108
  88. package/dist/commands/today.js.map +0 -1
  89. package/dist/commands/upcoming.d.ts +0 -17
  90. package/dist/commands/upcoming.d.ts.map +0 -1
  91. package/dist/commands/upcoming.js +0 -129
  92. package/dist/commands/upcoming.js.map +0 -1
  93. package/dist/commands/update.d.ts +0 -6
  94. package/dist/commands/update.d.ts.map +0 -1
  95. package/dist/commands/update.js +0 -90
  96. package/dist/commands/update.js.map +0 -1
  97. package/dist/commands/view.d.ts +0 -3
  98. package/dist/commands/view.d.ts.map +0 -1
  99. package/dist/commands/view.js +0 -79
  100. package/dist/commands/view.js.map +0 -1
  101. package/dist/commands/workspace.d.ts +0 -3
  102. package/dist/commands/workspace.d.ts.map +0 -1
  103. package/dist/commands/workspace.js +0 -309
  104. package/dist/commands/workspace.js.map +0 -1
  105. package/dist/index.d.ts +0 -3
  106. package/dist/index.d.ts.map +0 -1
  107. package/dist/index.js +0 -176
  108. package/dist/index.js.map +0 -1
  109. package/dist/lib/api/core.d.ts +0 -13
  110. package/dist/lib/api/core.d.ts.map +0 -1
  111. package/dist/lib/api/core.js +0 -170
  112. package/dist/lib/api/core.js.map +0 -1
  113. package/dist/lib/api/filters.d.ts +0 -19
  114. package/dist/lib/api/filters.d.ts.map +0 -1
  115. package/dist/lib/api/filters.js +0 -60
  116. package/dist/lib/api/filters.js.map +0 -1
  117. package/dist/lib/api/notifications.d.ts +0 -33
  118. package/dist/lib/api/notifications.d.ts.map +0 -1
  119. package/dist/lib/api/notifications.js +0 -94
  120. package/dist/lib/api/notifications.js.map +0 -1
  121. package/dist/lib/api/reminders.d.ts +0 -30
  122. package/dist/lib/api/reminders.d.ts.map +0 -1
  123. package/dist/lib/api/reminders.js +0 -65
  124. package/dist/lib/api/reminders.js.map +0 -1
  125. package/dist/lib/api/stats.d.ts +0 -41
  126. package/dist/lib/api/stats.d.ts.map +0 -1
  127. package/dist/lib/api/stats.js +0 -74
  128. package/dist/lib/api/stats.js.map +0 -1
  129. package/dist/lib/api/uploads.d.ts +0 -10
  130. package/dist/lib/api/uploads.d.ts.map +0 -1
  131. package/dist/lib/api/uploads.js +0 -31
  132. package/dist/lib/api/uploads.js.map +0 -1
  133. package/dist/lib/api/user-settings.d.ts +0 -34
  134. package/dist/lib/api/user-settings.d.ts.map +0 -1
  135. package/dist/lib/api/user-settings.js +0 -58
  136. package/dist/lib/api/user-settings.js.map +0 -1
  137. package/dist/lib/api/workspaces.d.ts +0 -23
  138. package/dist/lib/api/workspaces.d.ts.map +0 -1
  139. package/dist/lib/api/workspaces.js +0 -61
  140. package/dist/lib/api/workspaces.js.map +0 -1
  141. package/dist/lib/auth.d.ts +0 -14
  142. package/dist/lib/auth.d.ts.map +0 -1
  143. package/dist/lib/auth.js +0 -182
  144. package/dist/lib/auth.js.map +0 -1
  145. package/dist/lib/browser.d.ts +0 -2
  146. package/dist/lib/browser.d.ts.map +0 -1
  147. package/dist/lib/browser.js +0 -6
  148. package/dist/lib/browser.js.map +0 -1
  149. package/dist/lib/collaborators.d.ts +0 -29
  150. package/dist/lib/collaborators.d.ts.map +0 -1
  151. package/dist/lib/collaborators.js +0 -184
  152. package/dist/lib/collaborators.js.map +0 -1
  153. package/dist/lib/completion.d.ts +0 -41
  154. package/dist/lib/completion.d.ts.map +0 -1
  155. package/dist/lib/completion.js +0 -191
  156. package/dist/lib/completion.js.map +0 -1
  157. package/dist/lib/dates.d.ts +0 -16
  158. package/dist/lib/dates.d.ts.map +0 -1
  159. package/dist/lib/dates.js +0 -45
  160. package/dist/lib/dates.js.map +0 -1
  161. package/dist/lib/duration.d.ts +0 -14
  162. package/dist/lib/duration.d.ts.map +0 -1
  163. package/dist/lib/duration.js +0 -58
  164. package/dist/lib/duration.js.map +0 -1
  165. package/dist/lib/logger.d.ts +0 -42
  166. package/dist/lib/logger.d.ts.map +0 -1
  167. package/dist/lib/logger.js +0 -227
  168. package/dist/lib/logger.js.map +0 -1
  169. package/dist/lib/markdown.d.ts +0 -3
  170. package/dist/lib/markdown.d.ts.map +0 -1
  171. package/dist/lib/markdown.js +0 -22
  172. package/dist/lib/markdown.js.map +0 -1
  173. package/dist/lib/oauth-server.d.ts +0 -6
  174. package/dist/lib/oauth-server.d.ts.map +0 -1
  175. package/dist/lib/oauth-server.js +0 -773
  176. package/dist/lib/oauth-server.js.map +0 -1
  177. package/dist/lib/oauth.d.ts +0 -3
  178. package/dist/lib/oauth.d.ts.map +0 -1
  179. package/dist/lib/oauth.js +0 -38
  180. package/dist/lib/oauth.js.map +0 -1
  181. package/dist/lib/options.d.ts +0 -16
  182. package/dist/lib/options.d.ts.map +0 -1
  183. package/dist/lib/options.js +0 -2
  184. package/dist/lib/options.js.map +0 -1
  185. package/dist/lib/output.d.ts +0 -39
  186. package/dist/lib/output.d.ts.map +0 -1
  187. package/dist/lib/output.js +0 -311
  188. package/dist/lib/output.js.map +0 -1
  189. package/dist/lib/pagination.d.ts +0 -23
  190. package/dist/lib/pagination.d.ts.map +0 -1
  191. package/dist/lib/pagination.js +0 -26
  192. package/dist/lib/pagination.js.map +0 -1
  193. package/dist/lib/pkce.d.ts +0 -4
  194. package/dist/lib/pkce.d.ts.map +0 -1
  195. package/dist/lib/pkce.js +0 -19
  196. package/dist/lib/pkce.js.map +0 -1
  197. package/dist/lib/progress.d.ts +0 -29
  198. package/dist/lib/progress.d.ts.map +0 -1
  199. package/dist/lib/progress.js +0 -101
  200. package/dist/lib/progress.js.map +0 -1
  201. package/dist/lib/refs.d.ts +0 -52
  202. package/dist/lib/refs.d.ts.map +0 -1
  203. package/dist/lib/refs.js +0 -225
  204. package/dist/lib/refs.js.map +0 -1
  205. package/dist/lib/secure-store.d.ts +0 -11
  206. package/dist/lib/secure-store.d.ts.map +0 -1
  207. package/dist/lib/secure-store.js +0 -57
  208. package/dist/lib/secure-store.js.map +0 -1
  209. package/dist/lib/skills/content.d.ts +0 -4
  210. package/dist/lib/skills/content.d.ts.map +0 -1
  211. package/dist/lib/skills/content.js +0 -415
  212. package/dist/lib/skills/content.js.map +0 -1
  213. package/dist/lib/skills/create-installer.d.ts +0 -9
  214. package/dist/lib/skills/create-installer.d.ts.map +0 -1
  215. package/dist/lib/skills/create-installer.js +0 -77
  216. package/dist/lib/skills/create-installer.js.map +0 -1
  217. package/dist/lib/skills/index.d.ts +0 -6
  218. package/dist/lib/skills/index.d.ts.map +0 -1
  219. package/dist/lib/skills/index.js +0 -40
  220. package/dist/lib/skills/index.js.map +0 -1
  221. package/dist/lib/skills/types.d.ts +0 -11
  222. package/dist/lib/skills/types.d.ts.map +0 -1
  223. package/dist/lib/skills/types.js +0 -2
  224. package/dist/lib/skills/types.js.map +0 -1
  225. package/dist/lib/skills/update-installed.d.ts +0 -7
  226. package/dist/lib/skills/update-installed.d.ts.map +0 -1
  227. package/dist/lib/skills/update-installed.js +0 -23
  228. package/dist/lib/skills/update-installed.js.map +0 -1
  229. package/dist/lib/spinner.d.ts +0 -23
  230. package/dist/lib/spinner.d.ts.map +0 -1
  231. package/dist/lib/spinner.js +0 -138
  232. package/dist/lib/spinner.js.map +0 -1
  233. package/dist/lib/stdin.d.ts +0 -2
  234. package/dist/lib/stdin.d.ts.map +0 -1
  235. package/dist/lib/stdin.js +0 -12
  236. package/dist/lib/stdin.js.map +0 -1
  237. package/dist/lib/task-list.d.ts +0 -31
  238. package/dist/lib/task-list.d.ts.map +0 -1
  239. package/dist/lib/task-list.js +0 -271
  240. package/dist/lib/task-list.js.map +0 -1
  241. package/dist/lib/urls.d.ts +0 -8
  242. package/dist/lib/urls.d.ts.map +0 -1
  243. package/dist/lib/urls.js +0 -26
  244. package/dist/lib/urls.js.map +0 -1
  245. package/dist/postinstall.d.ts +0 -2
  246. package/dist/postinstall.d.ts.map +0 -1
  247. package/dist/postinstall.js +0 -3
  248. package/dist/postinstall.js.map +0 -1
@@ -1,415 +0,0 @@
1
- export const SKILL_NAME = 'todoist-cli';
2
- export const SKILL_DESCRIPTION = 'Manage Todoist tasks, projects, labels, comments, and more via the td CLI';
3
- export const SKILL_CONTENT = `# Todoist CLI (td)
4
-
5
- Use this skill when the user wants to interact with their Todoist tasks.
6
-
7
- ## Quick Reference
8
-
9
- - \`td today\` - Tasks due today and overdue
10
- - \`td inbox\` - Inbox tasks
11
- - \`td upcoming\` - Tasks due in next N days
12
- - \`td completed\` - Recently completed tasks
13
- - \`td auth login\` - Authenticate and store the token securely
14
- - \`td task add "content"\` - Add a task
15
- - \`td task list\` - List tasks with filters
16
- - \`td task complete <ref>\` - Complete a task
17
- - \`td project list\` - List projects
18
- - \`td label list\` - List labels
19
- - \`td filter list/view\` - Manage and use saved filters
20
- - \`td workspace list\` - List workspaces
21
- - \`td activity\` - Activity logs
22
- - \`td notification list\` - Notifications
23
- - \`td reminder add\` - Task reminders
24
- - \`td auth status\` - Authentication status
25
- - \`td stats\` - Productivity stats
26
- - \`td settings view\` - User settings
27
- - \`td completion install\` - Install shell completions
28
- - \`td attachment view <url>\` - View/download a file attachment
29
- - \`td view <url>\` - View supported Todoist entities/pages by URL
30
- - \`td update\` - Self-update the CLI to the latest version
31
- - \`td changelog\` - Show recent changelog entries
32
-
33
- ## Output Formats
34
-
35
- All list commands support:
36
- - \`--json\` - JSON output (essential fields)
37
- - \`--ndjson\` - Newline-delimited JSON (streaming)
38
- - \`--full\` - Include all fields in JSON
39
- - \`--raw\` - Disable markdown rendering
40
-
41
- The following mutating commands also support \`--json\` to return the created or updated entity as machine-readable JSON instead of plain-text confirmation:
42
- - \`task add\`, \`task update\`
43
- - \`project create\`, \`project update\`
44
- - \`label create\`, \`label update\`
45
- - \`comment add\`, \`comment update\`
46
- - \`section create\`, \`section update\`
47
- - \`filter create\`
48
- - \`reminder add\`
49
-
50
- All mutating commands support \`--dry-run\` to preview what would happen without executing:
51
- - Shows a preview of the action and parameters
52
- - The mutating action is skipped; read-only API calls may still be made to resolve references
53
- - On destructive commands (delete, project move) that use \`--yes\`, \`--dry-run\` takes precedence: even with \`--yes\`, the action will not execute
54
-
55
- ## Shared List Options
56
-
57
- Most list commands also support:
58
- - \`--limit <n>\` - Limit number of results
59
- - \`--all\` - Fetch all results (no limit, not available on \`activity\`)
60
- - \`--cursor <cursor>\` - Continue from pagination cursor
61
- - \`--show-urls\` - Show web app URLs for each item
62
-
63
- ## Global Options
64
-
65
- - \`--no-spinner\` - Disable loading animations
66
- - \`--progress-jsonl\` - Machine-readable progress events (JSONL to stderr)
67
- - \`-v, --verbose\` - Verbose output to stderr (repeat: -v info, -vv detail, -vvv debug, -vvvv trace)
68
- - \`--accessible\` - Add text labels to color-coded output (due:/deadline:/~ prefixes, ★ for favorites). Also: \`TD_ACCESSIBLE=1\`
69
-
70
- ## Authentication
71
-
72
- \`\`\`bash
73
- td auth login # OAuth login; stores token in OS credential manager
74
- td auth token "your-token" # Save a manual API token
75
- td auth status # Check whether auth works
76
- td auth logout # Remove the saved token
77
- export TODOIST_API_TOKEN="your-token" # Highest priority; overrides stored token
78
- \`\`\`
79
-
80
- If OS credential storage is unavailable, \`td\` warns and falls back to \`~/.config/todoist-cli/config.json\`. Legacy plaintext config tokens are migrated automatically when secure storage becomes available.
81
-
82
- ## References
83
-
84
- Tasks, projects, labels, and filters can be referenced by:
85
- - Name (fuzzy matched within context)
86
- - \`id:xxx\` - Explicit ID
87
- - Todoist URL - Paste directly from the web app (e.g., \`https://app.todoist.com/app/task/buy-milk-8Jx4mVr72kPn3QwB\` or \`https://app.todoist.com/app/project/work-2pN7vKx49mRq6YhT\`)
88
-
89
- ## Priority Mapping
90
-
91
- - p1 = Highest priority (API value 4)
92
- - p2 = High priority (API value 3)
93
- - p3 = Medium priority (API value 2)
94
- - p4 = Lowest priority (API value 1, default)
95
-
96
- ## Commands
97
-
98
- ### Today
99
- \`\`\`bash
100
- td today # Due today + overdue
101
- td today --json # JSON output
102
- td today --workspace "Work" # Filter to workspace
103
- td today --personal # Personal projects only
104
- td today --any-assignee # Include tasks assigned to others
105
- \`\`\`
106
-
107
- ### Inbox
108
- \`\`\`bash
109
- td inbox # Inbox tasks
110
- td inbox --priority p1 # Filter by priority
111
- td inbox --due today # Filter by due date
112
- \`\`\`
113
-
114
- ### Upcoming
115
- \`\`\`bash
116
- td upcoming # Next 7 days
117
- td upcoming 14 # Next 14 days
118
- td upcoming --workspace "Work" # Filter to workspace
119
- td upcoming --personal # Personal projects only
120
- td upcoming --any-assignee # Include tasks assigned to others
121
- \`\`\`
122
-
123
- ### Completed
124
- \`\`\`bash
125
- td completed # Completed today
126
- td completed --since 2024-01-01 --until 2024-01-31
127
- td completed --project "Work" # Filter by project
128
- \`\`\`
129
-
130
- ### Task Management
131
- \`\`\`bash
132
- # List with filters
133
- td task list --project "Work"
134
- td task list --label "urgent" --priority p1
135
- td task list --due today
136
- td task list --filter "today | overdue"
137
- td task list --assignee me
138
- td task list --assignee "john@example.com"
139
- td task list --unassigned
140
- td task list --workspace "Work"
141
- td task list --personal
142
- td task list --parent "Parent task"
143
-
144
- # View, complete, uncomplete
145
- td task view "task name"
146
- td task complete "task name"
147
- td task complete id:123456
148
- td task complete "task name" --forever # Stop recurrence
149
- td task uncomplete id:123456 # Reopen completed task
150
-
151
- # Add tasks
152
- td task add "New task" --due "tomorrow" --priority p2
153
- td task add "Task" --deadline "2024-03-01" --project "Work"
154
- td task add "Task" --duration 1h --section "Planning" --project "Work"
155
- td task add "Task" --labels "urgent,review" --parent "Parent task"
156
- td task add "Task" --description "Details here" --assignee me
157
- td task add "My task" --stdin < description.md # Read description from file
158
- cat notes.md | td task add "My task" --stdin
159
- td task add "Reference header" --uncompletable # Non-actionable reference/header task
160
- td task add "Reference header" --order 0 # Pin task to top of project
161
- td task add "New task" --json # Return created task as JSON
162
-
163
- # Update
164
- td task update "task name" --due "next week"
165
- td task update "task name" --deadline "2024-06-01"
166
- td task update "task name" --no-deadline
167
- td task update "task name" --duration 2h
168
- td task update "task name" --assignee "john@example.com"
169
- td task update "task name" --unassign
170
- td task update "task name" --stdin < description.md # Read description from file
171
- td task update "task name" --uncompletable # Mark as non-completable reference item
172
- td task update "task name" --completable # Revert to completable (undo --uncompletable)
173
- td task update "Reference header" --order 0 # Move task to top of project
174
- td task update "task name" --content "New" --json # Return updated task as JSON
175
-
176
- # Reschedule (preserves recurrence patterns, unlike update --due)
177
- td task reschedule "task name" 2026-03-20 # Date only (YYYY-MM-DD)
178
- td task reschedule id:123456 2026-03-20T14:00:00 # With time
179
- td task reschedule "task name" 2026-03-20 --json # Return as JSON
180
-
181
- # Move
182
- td task move "task name" --project "Personal"
183
- td task move "task name" --section "In Progress"
184
- td task move "task name" --parent "Parent task"
185
- td task move "task name" --no-parent # Move to project root
186
- td task move "task name" --no-section # Remove from section
187
-
188
- # Dry run (preview any mutating command without executing)
189
- td task add "New task" --due "tomorrow" --dry-run # Preview task creation
190
- td task delete "task name" --dry-run # Preview deletion
191
-
192
- # Delete and browse
193
- td task delete "task name" --yes
194
- td task browse "task name" # Open in browser
195
- \`\`\`
196
-
197
- ### Projects
198
- \`\`\`bash
199
- td project list
200
- td project list --personal # Personal projects only
201
- td project view "Project Name"
202
- td project collaborators "Project Name"
203
- td project create --name "New Project" --color "blue"
204
- td project create --name "New Project" --json # Return created project as JSON
205
- td project update "Project Name" --favorite
206
- td project update "Project Name" --name "New Name" --json # Return updated project as JSON
207
- td project archive "Project Name"
208
- td project unarchive "Project Name"
209
- td project delete "Project Name" --yes
210
- td project browse "Project Name" # Open in browser
211
- td project move "Project Name" --to-workspace "Acme"
212
- td project move "Project Name" --to-workspace "Acme" --folder "Engineering"
213
- td project move "Project Name" --to-workspace "Acme" --visibility team
214
- td project move "Project Name" --to-personal
215
- # move requires --yes to confirm (without it, shows a dry-run preview)
216
- td project create --name "New Project" --dry-run # Preview project creation
217
- td project delete "Project Name" --dry-run # Preview deletion
218
- \`\`\`
219
-
220
- ### Labels
221
- \`\`\`bash
222
- td label list # Lists personal + shared labels
223
- td label view "urgent" # View label details and tasks
224
- td label view "team-review" # Works for shared labels too
225
- td label create --name "urgent" --color "red"
226
- td label create --name "urgent" --json # Return created label as JSON
227
- td label update "urgent" --color "orange"
228
- td label update "urgent" --color "orange" --json # Return updated label as JSON
229
- td label delete "urgent" --yes
230
- td label create --name "urgent" --dry-run # Preview label creation
231
- td label browse "urgent" # Open in browser
232
- \`\`\`
233
-
234
- Note: Shared labels (from collaborative projects) appear in \`list\` and can be viewed, but cannot be deleted/updated via the standard label commands since they have no ID.
235
-
236
- ### Comments
237
- \`\`\`bash
238
- td comment list "task name"
239
- td comment list "Project Name" -P # Project comments
240
- td comment add "task name" --content "Comment text"
241
- td comment add "task name" --content "Note" --json # Return created comment as JSON
242
- td comment add "task name" --stdin < note.md # Read content from file
243
- cat note.md | td comment add "task name" --stdin
244
- td comment add "task name" --content "See attached" --file ./report.pdf
245
- td comment view id:123 # View full comment
246
- td comment update id:123 --content "Updated text"
247
- td comment update id:123 --content "Updated text" --json # Return updated comment as JSON
248
- td comment delete id:123 --yes
249
- td comment add "task name" --content "Note" --dry-run # Preview comment creation
250
- td comment browse id:123 # Open in browser
251
- \`\`\`
252
-
253
- ### Attachments
254
- \`\`\`bash
255
- td attachment view "https://files.todoist.com/..." # Fetch and display attachment content
256
- td attachment view "https://files.todoist.com/..." --json # JSON output with metadata + content
257
- \`\`\`
258
-
259
- Text files are output directly to stdout. Images and binary files are output as base64.
260
- With \`--json\`, returns: \`fileName\`, \`fileSize\`, \`contentType\`, \`contentCategory\`, \`encoding\` (\`utf-8\` or \`base64\`), \`content\`.
261
- The file URL comes from a comment's \`fileAttachment.fileUrl\` field (visible in \`td comment list --json\` output).
262
- 10MB file size limit.
263
-
264
- ### Sections
265
- \`\`\`bash
266
- td section list "Work" # List sections in project (or --project "Work")
267
- td section list --project "Work" # Same, using named flag
268
- td section create --project "Work" --name "In Progress"
269
- td section create --project "Work" --name "In Progress" --json # Return created section as JSON
270
- td section update id:123 --name "Done"
271
- td section update id:123 --name "Done" --json # Return updated section as JSON
272
- td section delete id:123 --yes
273
- td section create --project "Work" --name "In Progress" --dry-run # Preview section creation
274
- td section browse id:123 # Open in browser
275
- \`\`\`
276
-
277
- ### Filters
278
- \`\`\`bash
279
- td filter list
280
- td filter create --name "Urgent work" --query "p1 & #Work"
281
- td filter create --name "Urgent work" --query "p1 & #Work" --json # Return created filter as JSON
282
- td filter view "Urgent work" # Show tasks matching filter (alias: show)
283
- td filter update "Urgent work" --query "p1 & #Work & today"
284
- td filter delete "Urgent work" --yes
285
- td filter create --name "Urgent work" --query "p1 & #Work" --dry-run # Preview filter creation
286
- td filter browse "Urgent work" # Open in browser
287
- \`\`\`
288
-
289
- ### Workspaces
290
- \`\`\`bash
291
- td workspace list
292
- td workspace view "Workspace Name"
293
- td workspace projects "Workspace Name" # or --workspace "Workspace Name"
294
- td workspace users "Workspace Name" --role ADMIN,MEMBER # or --workspace "..."
295
- \`\`\`
296
-
297
- ### Activity
298
- \`\`\`bash
299
- td activity # Recent activity
300
- td activity --since 2024-01-01 --until 2024-01-31
301
- td activity --type task --event completed
302
- td activity --project "Work"
303
- td activity --by me
304
- td activity --markdown # LLM-friendly Markdown output
305
- \`\`\`
306
-
307
- ### Notifications
308
- \`\`\`bash
309
- td notification list
310
- td notification list --unread
311
- td notification list --type "item_assign"
312
- td notification view id:123
313
- td notification read --all --yes # Mark all as read
314
- td notification accept id:123 # Accept share invitation
315
- td notification reject id:123 # Reject share invitation
316
- \`\`\`
317
-
318
- ### Reminders
319
- \`\`\`bash
320
- td reminder list "task name" # or --task "task name"
321
- td reminder add "task name" --before 30m # or --task "task name" --before 30m
322
- td reminder add "task name" --before 30m --json # Return created reminder as JSON
323
- td reminder add "task name" --at "2024-01-15 10:00"
324
- td reminder update id:123 --before 1h
325
- td reminder add "task name" --before 30m --dry-run # Preview reminder creation
326
- td reminder delete id:123 --yes
327
- \`\`\`
328
-
329
- ### Auth
330
- \`\`\`bash
331
- td auth status # Check authentication
332
- td auth status --json # JSON: { id, email, fullName }
333
- td auth login # OAuth login
334
- td auth token <token> # Save API token
335
- td auth logout # Remove saved token
336
- \`\`\`
337
-
338
- ### Stats
339
- \`\`\`bash
340
- td stats # View karma and productivity
341
- td stats --json
342
- td stats goals --daily 10 --weekly 50
343
- td stats vacation --on # Enable vacation mode
344
- td stats vacation --off # Disable vacation mode
345
- \`\`\`
346
-
347
- ### Settings
348
- \`\`\`bash
349
- td settings view
350
- td settings view --json
351
- td settings update --timezone "America/New_York"
352
- td settings update --time-format 24 --date-format intl
353
- td settings themes # List available themes
354
- \`\`\`
355
-
356
- ### Shell Completions
357
- \`\`\`bash
358
- td completion install # Install tab completions (prompts for shell)
359
- td completion install bash # Install for specific shell
360
- td completion install zsh
361
- td completion install fish
362
- td completion uninstall # Remove completions
363
- \`\`\`
364
-
365
- ### View (URL Router)
366
- \`\`\`bash
367
- td view <todoist-url> # Auto-route to appropriate view by URL type
368
- td view https://app.todoist.com/app/task/buy-milk-abc123
369
- td view https://app.todoist.com/app/project/work-def456
370
- td view https://app.todoist.com/app/label/urgent-ghi789
371
- td view https://app.todoist.com/app/filter/work-tasks-jkl012
372
- td view https://app.todoist.com/app/today
373
- td view https://app.todoist.com/app/upcoming
374
- td view <url> --json # JSON output for entity views
375
- td view <url> --limit 25 --ndjson # Passthrough list options where supported
376
- \`\`\`
377
-
378
- ### Update
379
- \`\`\`bash
380
- td update # Update CLI to latest version
381
- td update --check # Check for updates without installing
382
- \`\`\`
383
-
384
- ### Changelog
385
- \`\`\`bash
386
- td changelog # Show last 5 versions
387
- td changelog -n 3 # Show last 3 versions
388
- td changelog --count 10 # Show last 10 versions
389
- \`\`\`
390
-
391
- ## Examples
392
-
393
- ### Daily workflow
394
- \`\`\`bash
395
- td today --json | jq '.results | length' # Count today's tasks
396
- td inbox --limit 5 # Quick inbox check
397
- td upcoming # What's coming this week
398
- td completed # What I finished today
399
- \`\`\`
400
-
401
- ### Filter by multiple criteria
402
- \`\`\`bash
403
- td task list --project "Work" --label "urgent" --priority p1
404
- td task list --filter "today & #Work"
405
- td task list --workspace "Work" --due today
406
- \`\`\`
407
-
408
- ### Complete tasks efficiently
409
- \`\`\`bash
410
- td task complete "Review PR"
411
- td task complete id:123456789
412
- td task uncomplete id:123456789 # Reopen if needed
413
- \`\`\`
414
- `;
415
- //# sourceMappingURL=content.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAC1B,2EAA2E,CAAA;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Z5B,CAAA"}
@@ -1,9 +0,0 @@
1
- import type { SkillInstaller } from './types.js';
2
- interface InstallerConfig {
3
- name: string;
4
- description: string;
5
- dirName: string;
6
- }
7
- export declare function createInstaller(config: InstallerConfig): SkillInstaller;
8
- export {};
9
- //# sourceMappingURL=create-installer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-installer.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAClB;AAYD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAsEvE"}
@@ -1,77 +0,0 @@
1
- import { access, mkdir, readdir, rmdir, unlink, writeFile } from 'node:fs/promises';
2
- import { homedir } from 'node:os';
3
- import { dirname, join } from 'node:path';
4
- import { SKILL_CONTENT, SKILL_DESCRIPTION, SKILL_NAME } from './content.js';
5
- function generateSkillFile() {
6
- const frontmatter = `---
7
- name: ${SKILL_NAME}
8
- description: ${JSON.stringify(SKILL_DESCRIPTION)}
9
- ---
10
-
11
- `;
12
- return frontmatter + SKILL_CONTENT;
13
- }
14
- export function createInstaller(config) {
15
- function getInstallPath(local) {
16
- const base = local ? process.cwd() : homedir();
17
- return join(base, config.dirName, 'skills', SKILL_NAME, 'SKILL.md');
18
- }
19
- return {
20
- name: config.name,
21
- description: config.description,
22
- getInstallPath,
23
- generateContent() {
24
- return generateSkillFile();
25
- },
26
- async isInstalled(local) {
27
- try {
28
- await access(getInstallPath(local));
29
- return true;
30
- }
31
- catch {
32
- return false;
33
- }
34
- },
35
- async install(local, force) {
36
- if (!local && config.dirName !== '.agents') {
37
- const agentDir = join(homedir(), config.dirName);
38
- try {
39
- await access(agentDir);
40
- }
41
- catch {
42
- throw new Error(`${config.name} does not appear to be installed (${agentDir} not found)`);
43
- }
44
- }
45
- const filepath = getInstallPath(local);
46
- const exists = await this.isInstalled(local);
47
- if (exists && !force) {
48
- throw new Error(`Skill file already exists at ${filepath}. Use --force to overwrite.`);
49
- }
50
- await mkdir(dirname(filepath), { recursive: true });
51
- await writeFile(filepath, this.generateContent(), 'utf-8');
52
- },
53
- async update(local) {
54
- const filepath = getInstallPath(local);
55
- await writeFile(filepath, this.generateContent(), 'utf-8');
56
- },
57
- async uninstall(local) {
58
- const filepath = getInstallPath(local);
59
- const exists = await this.isInstalled(local);
60
- if (!exists) {
61
- throw new Error(`Skill file not found at ${filepath}`);
62
- }
63
- await unlink(filepath);
64
- const dir = dirname(filepath);
65
- try {
66
- const files = await readdir(dir);
67
- if (files.length === 0) {
68
- await rmdir(dir);
69
- }
70
- }
71
- catch {
72
- // Ignore errors when cleaning up empty directory
73
- }
74
- },
75
- };
76
- }
77
- //# sourceMappingURL=create-installer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-installer.js","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { SkillInstaller } from './types.js';
2
- export declare const skillInstallers: Record<string, SkillInstaller>;
3
- export declare function getInstaller(agent: string): SkillInstaller | undefined;
4
- export declare function listAgents(): string[];
5
- export type { SkillInstaller } from './types.js';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA+B1D,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtE;AAED,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
@@ -1,40 +0,0 @@
1
- import { createInstaller } from './create-installer.js';
2
- export const skillInstallers = {
3
- 'claude-code': createInstaller({
4
- name: 'claude-code',
5
- description: 'Claude Code skill for Todoist CLI',
6
- dirName: '.claude',
7
- }),
8
- codex: createInstaller({
9
- name: 'codex',
10
- description: 'Codex skill for Todoist CLI',
11
- dirName: '.codex',
12
- }),
13
- cursor: createInstaller({
14
- name: 'cursor',
15
- description: 'Cursor skill for Todoist CLI',
16
- dirName: '.cursor',
17
- }),
18
- gemini: createInstaller({
19
- name: 'gemini',
20
- description: 'Gemini CLI skill for Todoist CLI',
21
- dirName: '.gemini',
22
- }),
23
- pi: createInstaller({
24
- name: 'pi',
25
- description: 'Pi skill for Todoist CLI',
26
- dirName: '.pi',
27
- }),
28
- universal: createInstaller({
29
- name: 'universal',
30
- description: 'Universal agent skill for Todoist CLI',
31
- dirName: '.agents',
32
- }),
33
- };
34
- export function getInstaller(agent) {
35
- return skillInstallers[agent];
36
- }
37
- export function listAgents() {
38
- return Object.keys(skillInstallers);
39
- }
40
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC3D,aAAa,EAAE,eAAe,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,KAAK,EAAE,eAAe,CAAC;QACnB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,QAAQ;KACpB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,EAAE,EAAE,eAAe,CAAC;QAChB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,KAAK;KACjB,CAAC;IACF,SAAS,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,SAAS;KACrB,CAAC;CACL,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AACvC,CAAC"}
@@ -1,11 +0,0 @@
1
- export interface SkillInstaller {
2
- name: string;
3
- description: string;
4
- getInstallPath(local: boolean): string;
5
- generateContent(): string;
6
- isInstalled(local: boolean): Promise<boolean>;
7
- install(local: boolean, force: boolean): Promise<void>;
8
- update(local: boolean): Promise<void>;
9
- uninstall(local: boolean): Promise<void>;
10
- }
11
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IACtC,eAAe,IAAI,MAAM,CAAA;IACzB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/skills/types.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- export interface UpdateAllResult {
2
- updated: string[];
3
- skipped: string[];
4
- errors: string[];
5
- }
6
- export declare function updateAllInstalledSkills(local: boolean): Promise<UpdateAllResult>;
7
- //# sourceMappingURL=update-installed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-installed.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/update-installed.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAoBvF"}
@@ -1,23 +0,0 @@
1
- import { skillInstallers } from './index.js';
2
- export async function updateAllInstalledSkills(local) {
3
- const updated = [];
4
- const skipped = [];
5
- const errors = [];
6
- for (const [name, installer] of Object.entries(skillInstallers)) {
7
- try {
8
- const isInstalled = await installer.isInstalled(local);
9
- if (isInstalled) {
10
- await installer.update(local);
11
- updated.push(name);
12
- }
13
- else {
14
- skipped.push(name);
15
- }
16
- }
17
- catch {
18
- errors.push(name);
19
- }
20
- }
21
- return { updated, skipped, errors };
22
- }
23
- //# sourceMappingURL=update-installed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-installed.js","sourceRoot":"","sources":["../../../src/lib/skills/update-installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ5C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAAc;IACzD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACtD,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC"}
@@ -1,23 +0,0 @@
1
- interface SpinnerOptions {
2
- text: string;
3
- color?: 'green' | 'yellow' | 'blue' | 'red' | 'gray' | 'cyan' | 'magenta';
4
- noSpinner?: boolean;
5
- }
6
- export declare function startEarlySpinner(): void;
7
- export declare function stopEarlySpinner(): void;
8
- export declare function resetEarlySpinner(): void;
9
- declare class LoadingSpinner {
10
- private spinnerInstance;
11
- private adopted;
12
- start(options: SpinnerOptions): this;
13
- succeed(text?: string): void;
14
- fail(text?: string): void;
15
- stop(): void;
16
- }
17
- /**
18
- * High-level wrapper function for running async operations with a loading spinner.
19
- * Automatically handles success/failure states and cleanup.
20
- */
21
- export declare function withSpinner<T>(options: SpinnerOptions, asyncOperation: () => Promise<T>): Promise<T>;
22
- export { LoadingSpinner, type SpinnerOptions };
23
- //# sourceMappingURL=spinner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACzE,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAsCD,wBAAgB,iBAAiB,IAAI,IAAI,CAkBxC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED,cAAM,cAAc;IAChB,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,OAAO,CAAQ;IAEvB,KAAK,CAAC,OAAO,EAAE,cAAc;IAyB7B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM;IAcrB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM;IAQlB,IAAI;CAaP;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,CAAA"}