@doist/todoist-cli 1.22.1 → 1.24.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 (53) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +12 -0
  3. package/dist/commands/activity.d.ts.map +1 -1
  4. package/dist/commands/activity.js +6 -4
  5. package/dist/commands/activity.js.map +1 -1
  6. package/dist/commands/comment.d.ts.map +1 -1
  7. package/dist/commands/comment.js +33 -4
  8. package/dist/commands/comment.js.map +1 -1
  9. package/dist/commands/filter.d.ts.map +1 -1
  10. package/dist/commands/filter.js +6 -1
  11. package/dist/commands/filter.js.map +1 -1
  12. package/dist/commands/label.d.ts.map +1 -1
  13. package/dist/commands/label.js +11 -1
  14. package/dist/commands/label.js.map +1 -1
  15. package/dist/commands/project.d.ts.map +1 -1
  16. package/dist/commands/project.js +10 -0
  17. package/dist/commands/project.js.map +1 -1
  18. package/dist/commands/reminder.d.ts.map +1 -1
  19. package/dist/commands/reminder.js +14 -1
  20. package/dist/commands/reminder.js.map +1 -1
  21. package/dist/commands/section.d.ts.map +1 -1
  22. package/dist/commands/section.js +12 -1
  23. package/dist/commands/section.js.map +1 -1
  24. package/dist/commands/settings.d.ts +4 -3
  25. package/dist/commands/settings.d.ts.map +1 -1
  26. package/dist/commands/settings.js +34 -46
  27. package/dist/commands/settings.js.map +1 -1
  28. package/dist/commands/task.d.ts.map +1 -1
  29. package/dist/commands/task.js +67 -2
  30. package/dist/commands/task.js.map +1 -1
  31. package/dist/lib/api/filters.d.ts +3 -3
  32. package/dist/lib/api/filters.d.ts.map +1 -1
  33. package/dist/lib/api/filters.js +1 -1
  34. package/dist/lib/api/filters.js.map +1 -1
  35. package/dist/lib/api/reminders.d.ts.map +1 -1
  36. package/dist/lib/api/reminders.js +2 -0
  37. package/dist/lib/api/reminders.js.map +1 -1
  38. package/dist/lib/api/stats.d.ts.map +1 -1
  39. package/dist/lib/api/stats.js +2 -2
  40. package/dist/lib/api/stats.js.map +1 -1
  41. package/dist/lib/api/user-settings.d.ts +9 -8
  42. package/dist/lib/api/user-settings.d.ts.map +1 -1
  43. package/dist/lib/api/user-settings.js +9 -9
  44. package/dist/lib/api/user-settings.js.map +1 -1
  45. package/dist/lib/skills/content.d.ts +1 -1
  46. package/dist/lib/skills/content.d.ts.map +1 -1
  47. package/dist/lib/skills/content.js +35 -4
  48. package/dist/lib/skills/content.js.map +1 -1
  49. package/dist/lib/stdin.d.ts +2 -0
  50. package/dist/lib/stdin.d.ts.map +1 -0
  51. package/dist/lib/stdin.js +12 -0
  52. package/dist/lib/stdin.js.map +1 -0
  53. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;IAC1C,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;CACrB;AAcD,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO1D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAG1E;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBxE;AAED,MAAM,WAAW,kBAAkB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9D"}
1
+ {"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;IAC1C,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;CACrB;AAcD,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO1D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAG1E;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBxE;AAED,MAAM,WAAW,kBAAkB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAexF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9D"}
@@ -42,10 +42,12 @@ export async function addReminder(args) {
42
42
  }
43
43
  export async function updateReminder(id, args) {
44
44
  const api = await getApi();
45
+ const type = args.minuteOffset !== undefined ? 'relative' : 'absolute';
45
46
  await api.sync({
46
47
  commands: [
47
48
  createCommand('reminder_update', {
48
49
  id,
50
+ type,
49
51
  ...pickDefined({
50
52
  minuteOffset: args.minuteOffset,
51
53
  due: args.due,
@@ -1 +1 @@
1
- {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE,KAAK,EAAE;QACH,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,mBAAmB,EAAE,MAAM,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;QACtB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,UAAU,EAAE,MAAM,EAAE,CAAA;KACvB,CAAA;CACJ;AAcD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA+CzE;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBtE"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE,KAAK,EAAE;QACH,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,mBAAmB,EAAE,MAAM,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;QACtB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,UAAU,EAAE,MAAM,EAAE,CAAA;KACvB,CAAA;CACJ;AAcD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA+CzE;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtE"}
@@ -59,8 +59,8 @@ export async function updateGoals(args) {
59
59
  const goalsArgs = pickDefined({
60
60
  dailyGoal: args.dailyGoal,
61
61
  weeklyGoal: args.weeklyGoal,
62
- vacationMode: args.vacationMode !== undefined ? (args.vacationMode ? 1 : 0) : undefined,
63
- karmaDisabled: args.karmaDisabled !== undefined ? (args.karmaDisabled ? 1 : 0) : undefined,
62
+ vacationMode: args.vacationMode,
63
+ karmaDisabled: args.karmaDisabled,
64
64
  ignoreDays: args.ignoreDays,
65
65
  });
66
66
  if (Object.keys(goalsArgs).length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
+ import { type DateFormat, type DayOfWeek, type TimeFormat } from '@doist/todoist-api-typescript';
1
2
  export interface UserSettings {
2
3
  timezone: string;
3
- timeFormat: number;
4
- dateFormat: number;
5
- startDay: number;
4
+ timeFormat: TimeFormat;
5
+ dateFormat: DateFormat;
6
+ startDay: DayOfWeek;
6
7
  theme: number;
7
8
  autoReminder: number;
8
- nextWeek: number;
9
+ nextWeek: DayOfWeek;
9
10
  startPage: string;
10
11
  reminderPush: boolean;
11
12
  reminderDesktop: boolean;
@@ -16,12 +17,12 @@ export interface UserSettings {
16
17
  export declare function fetchUserSettings(): Promise<UserSettings>;
17
18
  export interface UpdateUserSettingsArgs {
18
19
  timezone?: string;
19
- timeFormat?: number;
20
- dateFormat?: number;
21
- startDay?: number;
20
+ timeFormat?: TimeFormat;
21
+ dateFormat?: DateFormat;
22
+ startDay?: DayOfWeek;
22
23
  theme?: number;
23
24
  autoReminder?: number;
24
- nextWeek?: number;
25
+ nextWeek?: DayOfWeek;
25
26
  startPage?: string;
26
27
  reminderPush?: boolean;
27
28
  reminderDesktop?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"user-settings.d.ts","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,oBAAoB,EAAE,OAAO,CAAA;CAChC;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyB/D;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCpF"}
1
+ {"version":3,"file":"user-settings.d.ts","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EAIlB,MAAM,+BAA+B,CAAA;AAGtC,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,oBAAoB,EAAE,OAAO,CAAA;CAChC;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyB/D;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCpF"}
@@ -1,4 +1,4 @@
1
- import { createCommand } from '@doist/todoist-api-typescript';
1
+ import { createCommand, DATE_FORMAT_TO_API, DAY_OF_WEEK_TO_API, TIME_FORMAT_TO_API, } from '@doist/todoist-api-typescript';
2
2
  import { getApi, pickDefined } from './core.js';
3
3
  export async function fetchUserSettings() {
4
4
  const api = await getApi();
@@ -10,12 +10,12 @@ export async function fetchUserSettings() {
10
10
  const settings = response.userSettings;
11
11
  return {
12
12
  timezone: user?.tzInfo?.timezone ?? 'UTC',
13
- timeFormat: user?.timeFormat ?? 0,
14
- dateFormat: user?.dateFormat ?? 0,
15
- startDay: user?.startDay ?? 1,
13
+ timeFormat: user?.timeFormat ?? '24h',
14
+ dateFormat: user?.dateFormat ?? 'DD/MM/YYYY',
15
+ startDay: user?.startDay ?? 'Monday',
16
16
  theme: Number(user?.themeId ?? 0),
17
17
  autoReminder: user?.autoReminder ?? 0,
18
- nextWeek: user?.nextWeek ?? 1,
18
+ nextWeek: user?.nextWeek ?? 'Monday',
19
19
  startPage: user?.startPage ?? 'today',
20
20
  reminderPush: settings?.reminderPush ?? true,
21
21
  reminderDesktop: settings?.reminderDesktop ?? true,
@@ -28,12 +28,12 @@ export async function updateUserSettings(args) {
28
28
  const commands = [];
29
29
  const userArgs = pickDefined({
30
30
  timezone: args.timezone,
31
- time_format: args.timeFormat,
32
- date_format: args.dateFormat,
33
- start_day: args.startDay,
31
+ time_format: args.timeFormat !== undefined ? TIME_FORMAT_TO_API[args.timeFormat] : undefined,
32
+ date_format: args.dateFormat !== undefined ? DATE_FORMAT_TO_API[args.dateFormat] : undefined,
33
+ start_day: args.startDay !== undefined ? DAY_OF_WEEK_TO_API[args.startDay] : undefined,
34
34
  theme_id: args.theme !== undefined ? String(args.theme) : undefined,
35
35
  auto_reminder: args.autoReminder,
36
- next_week: args.nextWeek,
36
+ next_week: args.nextWeek !== undefined ? DAY_OF_WEEK_TO_API[args.nextWeek] : undefined,
37
37
  start_page: args.startPage,
38
38
  });
39
39
  if (Object.keys(userArgs).length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"user-settings.js","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAkB/C,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;QAC5B,aAAa,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;QACxC,SAAS,EAAE,GAAG;KACjB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;IAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAA;IAEtC,OAAO;QACH,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACzC,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;QACjC,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;QACjC,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;QACjC,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,CAAC;QACrC,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC;QAC7B,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,OAAO;QACrC,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,IAAI;QAC5C,eAAe,EAAE,QAAQ,EAAE,eAAe,IAAI,IAAI;QAClD,aAAa,EAAE,QAAQ,EAAE,aAAa,IAAI,KAAK;QAC/C,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,IAAI,IAAI;QAC9D,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,IAAI,IAAI;KAC/D,CAAA;AACL,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA4B;IACjE,MAAM,QAAQ,GAAG,EAAE,CAAA;IAEnB,MAAM,QAAQ,GAAG,WAAW,CAAC;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,SAAS,EAAE,IAAI,CAAC,QAAQ;QACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACnE,aAAa,EAAE,IAAI,CAAC,YAAY;QAChC,SAAS,EAAE,IAAI,CAAC,QAAQ;QACxB,UAAU,EAAE,IAAI,CAAC,SAAS;KAC7B,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;KAClD,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAC1B,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"user-settings.js","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export declare const SKILL_NAME = "todoist";
2
2
  export declare const SKILL_DESCRIPTION = "Manage Todoist tasks, projects, labels, comments, and more via the td CLI";
3
- export declare const SKILL_CONTENT = "# Todoist CLI (td)\n\nUse this skill when the user wants to interact with their Todoist tasks.\n\n## Quick Reference\n\n- `td today` - Tasks due today and overdue\n- `td inbox` - Inbox tasks\n- `td upcoming` - Tasks due in next N days\n- `td completed` - Recently completed tasks\n- `td auth login` - Authenticate and store the token securely\n- `td task add \"content\"` - Add a task\n- `td task list` - List tasks with filters\n- `td task complete <ref>` - Complete a task\n- `td project list` - List projects\n- `td label list` - List labels\n- `td filter list/view` - Manage and use saved filters\n- `td workspace list` - List workspaces\n- `td activity` - Activity logs\n- `td notification list` - Notifications\n- `td reminder add` - Task reminders\n- `td auth status` - Authentication status\n- `td stats` - Productivity stats\n- `td settings view` - User settings\n- `td completion install` - Install shell completions\n- `td view <url>` - View supported Todoist entities/pages by URL\n- `td update` - Self-update the CLI to the latest version\n\n## Output Formats\n\nAll list commands support:\n- `--json` - JSON output (essential fields)\n- `--ndjson` - Newline-delimited JSON (streaming)\n- `--full` - Include all fields in JSON\n- `--raw` - Disable markdown rendering\n\n## Shared List Options\n\nMost list commands also support:\n- `--limit <n>` - Limit number of results\n- `--all` - Fetch all results (no limit)\n- `--cursor <cursor>` - Continue from pagination cursor\n- `--show-urls` - Show web app URLs for each item\n\n## Global Options\n\n- `--no-spinner` - Disable loading animations\n- `--progress-jsonl` - Machine-readable progress events (JSONL to stderr)\n- `-v, --verbose` - Verbose output to stderr (repeat: -v info, -vv detail, -vvv debug, -vvvv trace)\n- `--accessible` - Add text labels to color-coded output (due:/deadline:/~ prefixes, \u2605 for favorites). Also: `TD_ACCESSIBLE=1`\n\n## Authentication\n\n```bash\ntd auth login # OAuth login; stores token in OS credential manager\ntd auth token \"your-token\" # Save a manual API token\ntd auth status # Check whether auth works\ntd auth logout # Remove the saved token\nexport TODOIST_API_TOKEN=\"your-token\" # Highest priority; overrides stored token\n```\n\nIf 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.\n\n## References\n\nTasks, projects, labels, and filters can be referenced by:\n- Name (fuzzy matched within context)\n- `id:xxx` - Explicit ID\n- 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`)\n\n## Priority Mapping\n\n- p1 = Highest priority (API value 4)\n- p2 = High priority (API value 3)\n- p3 = Medium priority (API value 2)\n- p4 = Lowest priority (API value 1, default)\n\n## Commands\n\n### Today\n```bash\ntd today # Due today + overdue\ntd today --json # JSON output\ntd today --workspace \"Work\" # Filter to workspace\ntd today --personal # Personal projects only\ntd today --any-assignee # Include tasks assigned to others\n```\n\n### Inbox\n```bash\ntd inbox # Inbox tasks\ntd inbox --priority p1 # Filter by priority\ntd inbox --due today # Filter by due date\n```\n\n### Upcoming\n```bash\ntd upcoming # Next 7 days\ntd upcoming 14 # Next 14 days\ntd upcoming --workspace \"Work\" # Filter to workspace\ntd upcoming --personal # Personal projects only\ntd upcoming --any-assignee # Include tasks assigned to others\n```\n\n### Completed\n```bash\ntd completed # Completed today\ntd completed --since 2024-01-01 --until 2024-01-31\ntd completed --project \"Work\" # Filter by project\n```\n\n### Task Management\n```bash\n# List with filters\ntd task list --project \"Work\"\ntd task list --label \"urgent\" --priority p1\ntd task list --due today\ntd task list --filter \"today | overdue\"\ntd task list --assignee me\ntd task list --assignee \"john@example.com\"\ntd task list --unassigned\ntd task list --workspace \"Work\"\ntd task list --personal\ntd task list --parent \"Parent task\"\n\n# View, complete, uncomplete\ntd task view \"task name\"\ntd task complete \"task name\"\ntd task complete id:123456\ntd task complete \"task name\" --forever # Stop recurrence\ntd task uncomplete id:123456 # Reopen completed task\n\n# Add tasks\ntd task add \"New task\" --due \"tomorrow\" --priority p2\ntd task add \"Task\" --deadline \"2024-03-01\" --project \"Work\"\ntd task add \"Task\" --duration 1h --section \"Planning\" --project \"Work\"\ntd task add \"Task\" --labels \"urgent,review\" --parent \"Parent task\"\ntd task add \"Task\" --description \"Details here\" --assignee me\n\n# Update\ntd task update \"task name\" --due \"next week\"\ntd task update \"task name\" --deadline \"2024-06-01\"\ntd task update \"task name\" --no-deadline\ntd task update \"task name\" --duration 2h\ntd task update \"task name\" --assignee \"john@example.com\"\ntd task update \"task name\" --unassign\n\n# Move\ntd task move \"task name\" --project \"Personal\"\ntd task move \"task name\" --section \"In Progress\"\ntd task move \"task name\" --parent \"Parent task\"\ntd task move \"task name\" --no-parent # Move to project root\ntd task move \"task name\" --no-section # Remove from section\n\n# Delete and browse\ntd task delete \"task name\" --yes\ntd task browse \"task name\" # Open in browser\n```\n\n### Projects\n```bash\ntd project list\ntd project list --personal # Personal projects only\ntd project view \"Project Name\"\ntd project collaborators \"Project Name\"\ntd project create --name \"New Project\" --color \"blue\"\ntd project update \"Project Name\" --favorite\ntd project archive \"Project Name\"\ntd project unarchive \"Project Name\"\ntd project delete \"Project Name\" --yes\ntd project browse \"Project Name\" # Open in browser\ntd project move \"Project Name\" --to-workspace \"Acme\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --folder \"Engineering\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --visibility team\ntd project move \"Project Name\" --to-personal\n# move requires --yes to confirm (without it, shows a dry-run preview)\n```\n\n### Labels\n```bash\ntd label list # Lists personal + shared labels\ntd label view \"urgent\" # View label details and tasks\ntd label view \"team-review\" # Works for shared labels too\ntd label create --name \"urgent\" --color \"red\"\ntd label update \"urgent\" --color \"orange\"\ntd label delete \"urgent\" --yes\ntd label browse \"urgent\" # Open in browser\n```\n\nNote: 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.\n\n### Comments\n```bash\ntd comment list --task \"task name\"\ntd comment list --project \"Project Name\" -P # Project comments\ntd comment add --task \"task name\" --content \"Comment text\"\ntd comment add --task \"task name\" --content \"See attached\" --file ./report.pdf\ntd comment view id:123 # View full comment\ntd comment update id:123 --content \"Updated text\"\ntd comment delete id:123 --yes\ntd comment browse id:123 # Open in browser\n```\n\n### Sections\n```bash\ntd section list \"Work\" # List sections in project (or --project \"Work\")\ntd section list --project \"Work\" # Same, using named flag\ntd section create --project \"Work\" --name \"In Progress\"\ntd section update id:123 --name \"Done\"\ntd section delete id:123 --yes\ntd section browse id:123 # Open in browser\n```\n\n### Filters\n```bash\ntd filter list\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\"\ntd filter view \"Urgent work\" # Show tasks matching filter (alias: show)\ntd filter update \"Urgent work\" --query \"p1 & #Work & today\"\ntd filter delete \"Urgent work\" --yes\ntd filter browse \"Urgent work\" # Open in browser\n```\n\n### Workspaces\n```bash\ntd workspace list\ntd workspace view \"Workspace Name\"\ntd workspace projects \"Workspace Name\" # or --workspace \"Workspace Name\"\ntd workspace users \"Workspace Name\" --role ADMIN,MEMBER # or --workspace \"...\"\n```\n\n### Activity\n```bash\ntd activity # Recent activity\ntd activity --since 2024-01-01 --until 2024-01-31\ntd activity --type task --event completed\ntd activity --project \"Work\"\ntd activity --by me\ntd activity --markdown # LLM-friendly Markdown output\n```\n\n### Notifications\n```bash\ntd notification list\ntd notification list --unread\ntd notification list --type \"item_assign\"\ntd notification view id:123\ntd notification read --all --yes # Mark all as read\ntd notification accept id:123 # Accept share invitation\ntd notification reject id:123 # Reject share invitation\n```\n\n### Reminders\n```bash\ntd reminder list \"task name\" # or --task \"task name\"\ntd reminder add \"task name\" --before 30m # or --task \"task name\" --before 30m\ntd reminder add \"task name\" --at \"2024-01-15 10:00\"\ntd reminder update id:123 --before 1h\ntd reminder delete id:123 --yes\n```\n\n### Auth\n```bash\ntd auth status # Check authentication\ntd auth status --json # JSON: { id, email, fullName }\ntd auth login # OAuth login\ntd auth token <token> # Save API token\ntd auth logout # Remove saved token\n```\n\n### Stats\n```bash\ntd stats # View karma and productivity\ntd stats --json\ntd stats goals --daily 10 --weekly 50\ntd stats vacation --on # Enable vacation mode\ntd stats vacation --off # Disable vacation mode\n```\n\n### Settings\n```bash\ntd settings view\ntd settings view --json\ntd settings update --timezone \"America/New_York\"\ntd settings update --time-format 24 --date-format intl\ntd settings themes # List available themes\n```\n\n### Shell Completions\n```bash\ntd completion install # Install tab completions (prompts for shell)\ntd completion install bash # Install for specific shell\ntd completion install zsh\ntd completion install fish\ntd completion uninstall # Remove completions\n```\n\n### View (URL Router)\n```bash\ntd view <todoist-url> # Auto-route to appropriate view by URL type\ntd view https://app.todoist.com/app/task/buy-milk-abc123\ntd view https://app.todoist.com/app/project/work-def456\ntd view https://app.todoist.com/app/label/urgent-ghi789\ntd view https://app.todoist.com/app/filter/work-tasks-jkl012\ntd view https://app.todoist.com/app/today\ntd view https://app.todoist.com/app/upcoming\ntd view <url> --json # JSON output for entity views\ntd view <url> --limit 25 --ndjson # Passthrough list options where supported\n```\n\n### Update\n```bash\ntd update # Update CLI to latest version\ntd update --check # Check for updates without installing\n```\n\n## Examples\n\n### Daily workflow\n```bash\ntd today --json | jq '.results | length' # Count today's tasks\ntd inbox --limit 5 # Quick inbox check\ntd upcoming # What's coming this week\ntd completed # What I finished today\n```\n\n### Filter by multiple criteria\n```bash\ntd task list --project \"Work\" --label \"urgent\" --priority p1\ntd task list --filter \"today & #Work\"\ntd task list --workspace \"Work\" --due today\n```\n\n### Complete tasks efficiently\n```bash\ntd task complete \"Review PR\"\ntd task complete id:123456789\ntd task uncomplete id:123456789 # Reopen if needed\n```\n";
3
+ export declare const SKILL_CONTENT = "# Todoist CLI (td)\n\nUse this skill when the user wants to interact with their Todoist tasks.\n\n## Quick Reference\n\n- `td today` - Tasks due today and overdue\n- `td inbox` - Inbox tasks\n- `td upcoming` - Tasks due in next N days\n- `td completed` - Recently completed tasks\n- `td auth login` - Authenticate and store the token securely\n- `td task add \"content\"` - Add a task\n- `td task list` - List tasks with filters\n- `td task complete <ref>` - Complete a task\n- `td project list` - List projects\n- `td label list` - List labels\n- `td filter list/view` - Manage and use saved filters\n- `td workspace list` - List workspaces\n- `td activity` - Activity logs\n- `td notification list` - Notifications\n- `td reminder add` - Task reminders\n- `td auth status` - Authentication status\n- `td stats` - Productivity stats\n- `td settings view` - User settings\n- `td completion install` - Install shell completions\n- `td view <url>` - View supported Todoist entities/pages by URL\n- `td update` - Self-update the CLI to the latest version\n\n## Output Formats\n\nAll list commands support:\n- `--json` - JSON output (essential fields)\n- `--ndjson` - Newline-delimited JSON (streaming)\n- `--full` - Include all fields in JSON\n- `--raw` - Disable markdown rendering\n\nThe following mutating commands also support `--json` to return the created or updated entity as machine-readable JSON instead of plain-text confirmation:\n- `task add`, `task update`\n- `project create`, `project update`\n- `label create`, `label update`\n- `comment add`, `comment update`\n- `section create`, `section update`\n- `filter create`\n- `reminder add`\n\n## Shared List Options\n\nMost list commands also support:\n- `--limit <n>` - Limit number of results\n- `--all` - Fetch all results (no limit)\n- `--cursor <cursor>` - Continue from pagination cursor\n- `--show-urls` - Show web app URLs for each item\n\n## Global Options\n\n- `--no-spinner` - Disable loading animations\n- `--progress-jsonl` - Machine-readable progress events (JSONL to stderr)\n- `-v, --verbose` - Verbose output to stderr (repeat: -v info, -vv detail, -vvv debug, -vvvv trace)\n- `--accessible` - Add text labels to color-coded output (due:/deadline:/~ prefixes, \u2605 for favorites). Also: `TD_ACCESSIBLE=1`\n\n## Authentication\n\n```bash\ntd auth login # OAuth login; stores token in OS credential manager\ntd auth token \"your-token\" # Save a manual API token\ntd auth status # Check whether auth works\ntd auth logout # Remove the saved token\nexport TODOIST_API_TOKEN=\"your-token\" # Highest priority; overrides stored token\n```\n\nIf 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.\n\n## References\n\nTasks, projects, labels, and filters can be referenced by:\n- Name (fuzzy matched within context)\n- `id:xxx` - Explicit ID\n- 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`)\n\n## Priority Mapping\n\n- p1 = Highest priority (API value 4)\n- p2 = High priority (API value 3)\n- p3 = Medium priority (API value 2)\n- p4 = Lowest priority (API value 1, default)\n\n## Commands\n\n### Today\n```bash\ntd today # Due today + overdue\ntd today --json # JSON output\ntd today --workspace \"Work\" # Filter to workspace\ntd today --personal # Personal projects only\ntd today --any-assignee # Include tasks assigned to others\n```\n\n### Inbox\n```bash\ntd inbox # Inbox tasks\ntd inbox --priority p1 # Filter by priority\ntd inbox --due today # Filter by due date\n```\n\n### Upcoming\n```bash\ntd upcoming # Next 7 days\ntd upcoming 14 # Next 14 days\ntd upcoming --workspace \"Work\" # Filter to workspace\ntd upcoming --personal # Personal projects only\ntd upcoming --any-assignee # Include tasks assigned to others\n```\n\n### Completed\n```bash\ntd completed # Completed today\ntd completed --since 2024-01-01 --until 2024-01-31\ntd completed --project \"Work\" # Filter by project\n```\n\n### Task Management\n```bash\n# List with filters\ntd task list --project \"Work\"\ntd task list --label \"urgent\" --priority p1\ntd task list --due today\ntd task list --filter \"today | overdue\"\ntd task list --assignee me\ntd task list --assignee \"john@example.com\"\ntd task list --unassigned\ntd task list --workspace \"Work\"\ntd task list --personal\ntd task list --parent \"Parent task\"\n\n# View, complete, uncomplete\ntd task view \"task name\"\ntd task complete \"task name\"\ntd task complete id:123456\ntd task complete \"task name\" --forever # Stop recurrence\ntd task uncomplete id:123456 # Reopen completed task\n\n# Add tasks\ntd task add \"New task\" --due \"tomorrow\" --priority p2\ntd task add \"Task\" --deadline \"2024-03-01\" --project \"Work\"\ntd task add \"Task\" --duration 1h --section \"Planning\" --project \"Work\"\ntd task add \"Task\" --labels \"urgent,review\" --parent \"Parent task\"\ntd task add \"Task\" --description \"Details here\" --assignee me\ntd task add \"My task\" --stdin < description.md # Read description from file\ncat notes.md | td task add \"My task\" --stdin\ntd task add \"Reference header\" --uncompletable # Non-actionable reference/header task\ntd task add \"Reference header\" --order 0 # Pin task to top of project\ntd task add \"New task\" --json # Return created task as JSON\n\n# Update\ntd task update \"task name\" --due \"next week\"\ntd task update \"task name\" --deadline \"2024-06-01\"\ntd task update \"task name\" --no-deadline\ntd task update \"task name\" --duration 2h\ntd task update \"task name\" --assignee \"john@example.com\"\ntd task update \"task name\" --unassign\ntd task update \"task name\" --stdin < description.md # Read description from file\ntd task update \"task name\" --uncompletable # Mark as non-completable reference item\ntd task update \"task name\" --completable # Revert to completable (undo --uncompletable)\ntd task update \"Reference header\" --order 0 # Move task to top of project\ntd task update \"task name\" --content \"New\" --json # Return updated task as JSON\n\n# Move\ntd task move \"task name\" --project \"Personal\"\ntd task move \"task name\" --section \"In Progress\"\ntd task move \"task name\" --parent \"Parent task\"\ntd task move \"task name\" --no-parent # Move to project root\ntd task move \"task name\" --no-section # Remove from section\n\n# Delete and browse\ntd task delete \"task name\" --yes\ntd task browse \"task name\" # Open in browser\n```\n\n### Projects\n```bash\ntd project list\ntd project list --personal # Personal projects only\ntd project view \"Project Name\"\ntd project collaborators \"Project Name\"\ntd project create --name \"New Project\" --color \"blue\"\ntd project create --name \"New Project\" --json # Return created project as JSON\ntd project update \"Project Name\" --favorite\ntd project update \"Project Name\" --name \"New Name\" --json # Return updated project as JSON\ntd project archive \"Project Name\"\ntd project unarchive \"Project Name\"\ntd project delete \"Project Name\" --yes\ntd project browse \"Project Name\" # Open in browser\ntd project move \"Project Name\" --to-workspace \"Acme\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --folder \"Engineering\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --visibility team\ntd project move \"Project Name\" --to-personal\n# move requires --yes to confirm (without it, shows a dry-run preview)\n```\n\n### Labels\n```bash\ntd label list # Lists personal + shared labels\ntd label view \"urgent\" # View label details and tasks\ntd label view \"team-review\" # Works for shared labels too\ntd label create --name \"urgent\" --color \"red\"\ntd label create --name \"urgent\" --json # Return created label as JSON\ntd label update \"urgent\" --color \"orange\"\ntd label update \"urgent\" --color \"orange\" --json # Return updated label as JSON\ntd label delete \"urgent\" --yes\ntd label browse \"urgent\" # Open in browser\n```\n\nNote: 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.\n\n### Comments\n```bash\ntd comment list \"task name\"\ntd comment list \"Project Name\" -P # Project comments\ntd comment add \"task name\" --content \"Comment text\"\ntd comment add \"task name\" --content \"Note\" --json # Return created comment as JSON\ntd comment add \"task name\" --stdin < note.md # Read content from file\ncat note.md | td comment add \"task name\" --stdin\ntd comment add \"task name\" --content \"See attached\" --file ./report.pdf\ntd comment view id:123 # View full comment\ntd comment update id:123 --content \"Updated text\"\ntd comment update id:123 --content \"Updated text\" --json # Return updated comment as JSON\ntd comment delete id:123 --yes\ntd comment browse id:123 # Open in browser\n```\n\n### Sections\n```bash\ntd section list \"Work\" # List sections in project (or --project \"Work\")\ntd section list --project \"Work\" # Same, using named flag\ntd section create --project \"Work\" --name \"In Progress\"\ntd section create --project \"Work\" --name \"In Progress\" --json # Return created section as JSON\ntd section update id:123 --name \"Done\"\ntd section update id:123 --name \"Done\" --json # Return updated section as JSON\ntd section delete id:123 --yes\ntd section browse id:123 # Open in browser\n```\n\n### Filters\n```bash\ntd filter list\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\"\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\" --json # Return created filter as JSON\ntd filter view \"Urgent work\" # Show tasks matching filter (alias: show)\ntd filter update \"Urgent work\" --query \"p1 & #Work & today\"\ntd filter delete \"Urgent work\" --yes\ntd filter browse \"Urgent work\" # Open in browser\n```\n\n### Workspaces\n```bash\ntd workspace list\ntd workspace view \"Workspace Name\"\ntd workspace projects \"Workspace Name\" # or --workspace \"Workspace Name\"\ntd workspace users \"Workspace Name\" --role ADMIN,MEMBER # or --workspace \"...\"\n```\n\n### Activity\n```bash\ntd activity # Recent activity\ntd activity --since 2024-01-01 --until 2024-01-31\ntd activity --type task --event completed\ntd activity --project \"Work\"\ntd activity --by me\ntd activity --markdown # LLM-friendly Markdown output\n```\n\n### Notifications\n```bash\ntd notification list\ntd notification list --unread\ntd notification list --type \"item_assign\"\ntd notification view id:123\ntd notification read --all --yes # Mark all as read\ntd notification accept id:123 # Accept share invitation\ntd notification reject id:123 # Reject share invitation\n```\n\n### Reminders\n```bash\ntd reminder list \"task name\" # or --task \"task name\"\ntd reminder add \"task name\" --before 30m # or --task \"task name\" --before 30m\ntd reminder add \"task name\" --before 30m --json # Return created reminder as JSON\ntd reminder add \"task name\" --at \"2024-01-15 10:00\"\ntd reminder update id:123 --before 1h\ntd reminder delete id:123 --yes\n```\n\n### Auth\n```bash\ntd auth status # Check authentication\ntd auth status --json # JSON: { id, email, fullName }\ntd auth login # OAuth login\ntd auth token <token> # Save API token\ntd auth logout # Remove saved token\n```\n\n### Stats\n```bash\ntd stats # View karma and productivity\ntd stats --json\ntd stats goals --daily 10 --weekly 50\ntd stats vacation --on # Enable vacation mode\ntd stats vacation --off # Disable vacation mode\n```\n\n### Settings\n```bash\ntd settings view\ntd settings view --json\ntd settings update --timezone \"America/New_York\"\ntd settings update --time-format 24 --date-format intl\ntd settings themes # List available themes\n```\n\n### Shell Completions\n```bash\ntd completion install # Install tab completions (prompts for shell)\ntd completion install bash # Install for specific shell\ntd completion install zsh\ntd completion install fish\ntd completion uninstall # Remove completions\n```\n\n### View (URL Router)\n```bash\ntd view <todoist-url> # Auto-route to appropriate view by URL type\ntd view https://app.todoist.com/app/task/buy-milk-abc123\ntd view https://app.todoist.com/app/project/work-def456\ntd view https://app.todoist.com/app/label/urgent-ghi789\ntd view https://app.todoist.com/app/filter/work-tasks-jkl012\ntd view https://app.todoist.com/app/today\ntd view https://app.todoist.com/app/upcoming\ntd view <url> --json # JSON output for entity views\ntd view <url> --limit 25 --ndjson # Passthrough list options where supported\n```\n\n### Update\n```bash\ntd update # Update CLI to latest version\ntd update --check # Check for updates without installing\n```\n\n## Examples\n\n### Daily workflow\n```bash\ntd today --json | jq '.results | length' # Count today's tasks\ntd inbox --limit 5 # Quick inbox check\ntd upcoming # What's coming this week\ntd completed # What I finished today\n```\n\n### Filter by multiple criteria\n```bash\ntd task list --project \"Work\" --label \"urgent\" --priority p1\ntd task list --filter \"today & #Work\"\ntd task list --workspace \"Work\" --due today\n```\n\n### Complete tasks efficiently\n```bash\ntd task complete \"Review PR\"\ntd task complete id:123456789\ntd task uncomplete id:123456789 # Reopen if needed\n```\n";
4
4
  //# sourceMappingURL=content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,YAAY,CAAA;AACnC,eAAO,MAAM,iBAAiB,8EACiD,CAAA;AAE/E,eAAO,MAAM,aAAa,m5YAmVzB,CAAA"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,YAAY,CAAA;AACnC,eAAO,MAAM,iBAAiB,8EACiD,CAAA;AAE/E,eAAO,MAAM,aAAa,mjdAkXzB,CAAA"}
@@ -36,6 +36,15 @@ All list commands support:
36
36
  - \`--full\` - Include all fields in JSON
37
37
  - \`--raw\` - Disable markdown rendering
38
38
 
39
+ The following mutating commands also support \`--json\` to return the created or updated entity as machine-readable JSON instead of plain-text confirmation:
40
+ - \`task add\`, \`task update\`
41
+ - \`project create\`, \`project update\`
42
+ - \`label create\`, \`label update\`
43
+ - \`comment add\`, \`comment update\`
44
+ - \`section create\`, \`section update\`
45
+ - \`filter create\`
46
+ - \`reminder add\`
47
+
39
48
  ## Shared List Options
40
49
 
41
50
  Most list commands also support:
@@ -138,6 +147,11 @@ td task add "Task" --deadline "2024-03-01" --project "Work"
138
147
  td task add "Task" --duration 1h --section "Planning" --project "Work"
139
148
  td task add "Task" --labels "urgent,review" --parent "Parent task"
140
149
  td task add "Task" --description "Details here" --assignee me
150
+ td task add "My task" --stdin < description.md # Read description from file
151
+ cat notes.md | td task add "My task" --stdin
152
+ td task add "Reference header" --uncompletable # Non-actionable reference/header task
153
+ td task add "Reference header" --order 0 # Pin task to top of project
154
+ td task add "New task" --json # Return created task as JSON
141
155
 
142
156
  # Update
143
157
  td task update "task name" --due "next week"
@@ -146,6 +160,11 @@ td task update "task name" --no-deadline
146
160
  td task update "task name" --duration 2h
147
161
  td task update "task name" --assignee "john@example.com"
148
162
  td task update "task name" --unassign
163
+ td task update "task name" --stdin < description.md # Read description from file
164
+ td task update "task name" --uncompletable # Mark as non-completable reference item
165
+ td task update "task name" --completable # Revert to completable (undo --uncompletable)
166
+ td task update "Reference header" --order 0 # Move task to top of project
167
+ td task update "task name" --content "New" --json # Return updated task as JSON
149
168
 
150
169
  # Move
151
170
  td task move "task name" --project "Personal"
@@ -166,7 +185,9 @@ td project list --personal # Personal projects only
166
185
  td project view "Project Name"
167
186
  td project collaborators "Project Name"
168
187
  td project create --name "New Project" --color "blue"
188
+ td project create --name "New Project" --json # Return created project as JSON
169
189
  td project update "Project Name" --favorite
190
+ td project update "Project Name" --name "New Name" --json # Return updated project as JSON
170
191
  td project archive "Project Name"
171
192
  td project unarchive "Project Name"
172
193
  td project delete "Project Name" --yes
@@ -184,7 +205,9 @@ td label list # Lists personal + shared labels
184
205
  td label view "urgent" # View label details and tasks
185
206
  td label view "team-review" # Works for shared labels too
186
207
  td label create --name "urgent" --color "red"
208
+ td label create --name "urgent" --json # Return created label as JSON
187
209
  td label update "urgent" --color "orange"
210
+ td label update "urgent" --color "orange" --json # Return updated label as JSON
188
211
  td label delete "urgent" --yes
189
212
  td label browse "urgent" # Open in browser
190
213
  \`\`\`
@@ -193,12 +216,16 @@ Note: Shared labels (from collaborative projects) appear in \`list\` and can be
193
216
 
194
217
  ### Comments
195
218
  \`\`\`bash
196
- td comment list --task "task name"
197
- td comment list --project "Project Name" -P # Project comments
198
- td comment add --task "task name" --content "Comment text"
199
- td comment add --task "task name" --content "See attached" --file ./report.pdf
219
+ td comment list "task name"
220
+ td comment list "Project Name" -P # Project comments
221
+ td comment add "task name" --content "Comment text"
222
+ td comment add "task name" --content "Note" --json # Return created comment as JSON
223
+ td comment add "task name" --stdin < note.md # Read content from file
224
+ cat note.md | td comment add "task name" --stdin
225
+ td comment add "task name" --content "See attached" --file ./report.pdf
200
226
  td comment view id:123 # View full comment
201
227
  td comment update id:123 --content "Updated text"
228
+ td comment update id:123 --content "Updated text" --json # Return updated comment as JSON
202
229
  td comment delete id:123 --yes
203
230
  td comment browse id:123 # Open in browser
204
231
  \`\`\`
@@ -208,7 +235,9 @@ td comment browse id:123 # Open in browser
208
235
  td section list "Work" # List sections in project (or --project "Work")
209
236
  td section list --project "Work" # Same, using named flag
210
237
  td section create --project "Work" --name "In Progress"
238
+ td section create --project "Work" --name "In Progress" --json # Return created section as JSON
211
239
  td section update id:123 --name "Done"
240
+ td section update id:123 --name "Done" --json # Return updated section as JSON
212
241
  td section delete id:123 --yes
213
242
  td section browse id:123 # Open in browser
214
243
  \`\`\`
@@ -217,6 +246,7 @@ td section browse id:123 # Open in browser
217
246
  \`\`\`bash
218
247
  td filter list
219
248
  td filter create --name "Urgent work" --query "p1 & #Work"
249
+ td filter create --name "Urgent work" --query "p1 & #Work" --json # Return created filter as JSON
220
250
  td filter view "Urgent work" # Show tasks matching filter (alias: show)
221
251
  td filter update "Urgent work" --query "p1 & #Work & today"
222
252
  td filter delete "Urgent work" --yes
@@ -256,6 +286,7 @@ td notification reject id:123 # Reject share invitation
256
286
  \`\`\`bash
257
287
  td reminder list "task name" # or --task "task name"
258
288
  td reminder add "task name" --before 30m # or --task "task name" --before 30m
289
+ td reminder add "task name" --before 30m --json # Return created reminder as JSON
259
290
  td reminder add "task name" --at "2024-01-15 10:00"
260
291
  td reminder update id:123 --before 1h
261
292
  td reminder delete id:123 --yes
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAA;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAC1B,2EAA2E,CAAA;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmV5B,CAAA"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAA;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAC1B,2EAA2E,CAAA;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkX5B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function readStdin(): Promise<string>;
2
+ //# sourceMappingURL=stdin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.d.ts","sourceRoot":"","sources":["../../src/lib/stdin.ts"],"names":[],"mappings":"AAAA,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAUjD"}
@@ -0,0 +1,12 @@
1
+ export async function readStdin() {
2
+ return new Promise((resolve, reject) => {
3
+ let data = '';
4
+ process.stdin.setEncoding('utf8');
5
+ process.stdin.on('data', (chunk) => {
6
+ data += chunk;
7
+ });
8
+ process.stdin.on('end', () => resolve(data));
9
+ process.stdin.on('error', reject);
10
+ });
11
+ }
12
+ //# sourceMappingURL=stdin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.js","sourceRoot":"","sources":["../../src/lib/stdin.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,SAAS;IAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/B,IAAI,IAAI,KAAK,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doist/todoist-cli",
3
- "version": "1.22.1",
3
+ "version": "1.24.0",
4
4
  "description": "TypeScript CLI for Todoist",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -47,24 +47,24 @@
47
47
  "dist"
48
48
  ],
49
49
  "dependencies": {
50
- "@doist/todoist-api-typescript": "6.7.0",
50
+ "@doist/todoist-api-typescript": "7.1.0",
51
51
  "@napi-rs/keyring": "1.2.0",
52
52
  "@pnpm/tabtab": "0.5.4",
53
53
  "chalk": "5.6.2",
54
- "commander": "14.0.2",
54
+ "commander": "14.0.3",
55
55
  "date-fns": "4.1.0",
56
56
  "marked": "15.0.12",
57
57
  "marked-terminal": "7.3.0",
58
58
  "open": "11.0.0",
59
- "yocto-spinner": "1.0.0"
59
+ "yocto-spinner": "1.1.0"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/marked-terminal": "6.1.1",
63
- "@types/node": "25.0.3",
64
- "lefthook": "1.10.10",
63
+ "@types/node": "25.3.5",
64
+ "lefthook": "2.1.3",
65
65
  "oxfmt": "0.36.0",
66
66
  "oxlint": "1.51.0",
67
67
  "typescript": "5.9.3",
68
- "vitest": "4.0.16"
68
+ "vitest": "4.0.18"
69
69
  }
70
70
  }