@doist/todoist-cli 1.43.0-next.1 → 1.43.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 (99) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/commands/reminder/get.d.ts +7 -0
  3. package/dist/commands/reminder/get.d.ts.map +1 -0
  4. package/dist/commands/reminder/get.js +19 -0
  5. package/dist/commands/reminder/get.js.map +1 -0
  6. package/dist/commands/reminder/helpers.d.ts +5 -1
  7. package/dist/commands/reminder/helpers.d.ts.map +1 -1
  8. package/dist/commands/reminder/helpers.js +37 -0
  9. package/dist/commands/reminder/helpers.js.map +1 -1
  10. package/dist/commands/reminder/index.d.ts.map +1 -1
  11. package/dist/commands/reminder/index.js +15 -0
  12. package/dist/commands/reminder/index.js.map +1 -1
  13. package/dist/commands/reminder/location/add.d.ts +12 -0
  14. package/dist/commands/reminder/location/add.d.ts.map +1 -0
  15. package/dist/commands/reminder/location/add.js +60 -0
  16. package/dist/commands/reminder/location/add.js.map +1 -0
  17. package/dist/commands/reminder/location/delete.d.ts +7 -0
  18. package/dist/commands/reminder/location/delete.d.ts.map +1 -0
  19. package/dist/commands/reminder/location/delete.js +23 -0
  20. package/dist/commands/reminder/location/delete.js.map +1 -0
  21. package/dist/commands/reminder/location/get.d.ts +7 -0
  22. package/dist/commands/reminder/location/get.d.ts.map +1 -0
  23. package/dist/commands/reminder/location/get.js +18 -0
  24. package/dist/commands/reminder/location/get.js.map +1 -0
  25. package/dist/commands/reminder/location/index.d.ts +3 -0
  26. package/dist/commands/reminder/location/index.d.ts.map +1 -0
  27. package/dist/commands/reminder/location/index.js +72 -0
  28. package/dist/commands/reminder/location/index.js.map +1 -0
  29. package/dist/commands/reminder/location/update.d.ts +12 -0
  30. package/dist/commands/reminder/location/update.d.ts.map +1 -0
  31. package/dist/commands/reminder/location/update.js +45 -0
  32. package/dist/commands/reminder/location/update.js.map +1 -0
  33. package/dist/commands/workspace/activity.d.ts +9 -0
  34. package/dist/commands/workspace/activity.d.ts.map +1 -0
  35. package/dist/commands/workspace/activity.js +93 -0
  36. package/dist/commands/workspace/activity.js.map +1 -0
  37. package/dist/commands/workspace/create.d.ts +14 -0
  38. package/dist/commands/workspace/create.d.ts.map +1 -0
  39. package/dist/commands/workspace/create.js +58 -0
  40. package/dist/commands/workspace/create.js.map +1 -0
  41. package/dist/commands/workspace/delete.d.ts +5 -0
  42. package/dist/commands/workspace/delete.d.ts.map +1 -0
  43. package/dist/commands/workspace/delete.js +31 -0
  44. package/dist/commands/workspace/delete.js.map +1 -0
  45. package/dist/commands/workspace/helpers.d.ts +24 -1
  46. package/dist/commands/workspace/helpers.d.ts.map +1 -1
  47. package/dist/commands/workspace/helpers.js +113 -1
  48. package/dist/commands/workspace/helpers.js.map +1 -1
  49. package/dist/commands/workspace/index.d.ts.map +1 -1
  50. package/dist/commands/workspace/index.js +115 -1
  51. package/dist/commands/workspace/index.js.map +1 -1
  52. package/dist/commands/workspace/update.d.ts +15 -0
  53. package/dist/commands/workspace/update.d.ts.map +1 -0
  54. package/dist/commands/workspace/update.js +75 -0
  55. package/dist/commands/workspace/update.js.map +1 -0
  56. package/dist/commands/workspace/user-tasks.d.ts +9 -0
  57. package/dist/commands/workspace/user-tasks.d.ts.map +1 -0
  58. package/dist/commands/workspace/user-tasks.js +77 -0
  59. package/dist/commands/workspace/user-tasks.js.map +1 -0
  60. package/dist/index.js +0 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/lib/api/core.d.ts.map +1 -1
  63. package/dist/lib/api/core.js +13 -0
  64. package/dist/lib/api/core.js.map +1 -1
  65. package/dist/lib/api/reminders.d.ts +21 -0
  66. package/dist/lib/api/reminders.d.ts.map +1 -1
  67. package/dist/lib/api/reminders.js +37 -1
  68. package/dist/lib/api/reminders.js.map +1 -1
  69. package/dist/lib/errors.d.ts +1 -1
  70. package/dist/lib/errors.d.ts.map +1 -1
  71. package/dist/lib/errors.js.map +1 -1
  72. package/dist/lib/output.d.ts +1 -1
  73. package/dist/lib/output.d.ts.map +1 -1
  74. package/dist/lib/output.js +0 -14
  75. package/dist/lib/output.js.map +1 -1
  76. package/dist/lib/pagination.d.ts +0 -1
  77. package/dist/lib/pagination.d.ts.map +1 -1
  78. package/dist/lib/pagination.js +0 -1
  79. package/dist/lib/pagination.js.map +1 -1
  80. package/dist/lib/permissions.d.ts.map +1 -1
  81. package/dist/lib/permissions.js +4 -0
  82. package/dist/lib/permissions.js.map +1 -1
  83. package/dist/lib/refs.d.ts +1 -2
  84. package/dist/lib/refs.d.ts.map +1 -1
  85. package/dist/lib/refs.js +0 -5
  86. package/dist/lib/refs.js.map +1 -1
  87. package/dist/lib/skills/content.d.ts +1 -1
  88. package/dist/lib/skills/content.d.ts.map +1 -1
  89. package/dist/lib/skills/content.js +13 -21
  90. package/dist/lib/skills/content.js.map +1 -1
  91. package/dist/lib/urls.d.ts +0 -2
  92. package/dist/lib/urls.d.ts.map +1 -1
  93. package/dist/lib/urls.js +0 -6
  94. package/dist/lib/urls.js.map +1 -1
  95. package/package.json +2 -2
  96. package/dist/commands/goal.d.ts +0 -3
  97. package/dist/commands/goal.d.ts.map +0 -1
  98. package/dist/commands/goal.js +0 -344
  99. package/dist/commands/goal.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ export interface CreateWorkspaceOptions {
2
+ name?: string;
3
+ description?: string;
4
+ linkSharing?: boolean;
5
+ guestAccess?: boolean;
6
+ domain?: string;
7
+ domainDiscovery?: boolean;
8
+ restrictEmailDomains?: boolean;
9
+ json?: boolean;
10
+ full?: boolean;
11
+ dryRun?: boolean;
12
+ }
13
+ export declare function createWorkspace(options: CreateWorkspaceOptions): Promise<void>;
14
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/create.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,sBAAsB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DpF"}
@@ -0,0 +1,58 @@
1
+ import chalk from 'chalk';
2
+ import { getApi } from '../../lib/api/core.js';
3
+ import { clearWorkspaceCache, fetchWorkspaces } from '../../lib/api/workspaces.js';
4
+ import { isQuiet } from '../../lib/global-args.js';
5
+ import { printDryRun } from '../../lib/output.js';
6
+ import { formatWorkspaceJson } from './helpers.js';
7
+ export async function createWorkspace(options) {
8
+ if (!options.name) {
9
+ throw new Error('missing required --name');
10
+ }
11
+ const args = { name: options.name };
12
+ if (options.description !== undefined)
13
+ args.description = options.description;
14
+ if (options.linkSharing !== undefined)
15
+ args.isLinkSharingEnabled = options.linkSharing;
16
+ if (options.guestAccess !== undefined)
17
+ args.isGuestAllowed = options.guestAccess;
18
+ if (options.domain !== undefined)
19
+ args.domainName = options.domain;
20
+ if (options.domainDiscovery !== undefined)
21
+ args.domainDiscovery = options.domainDiscovery;
22
+ if (options.restrictEmailDomains !== undefined) {
23
+ args.restrictEmailDomains = options.restrictEmailDomains;
24
+ }
25
+ if (options.dryRun) {
26
+ printDryRun('create workspace', {
27
+ Name: options.name,
28
+ Description: options.description,
29
+ 'Link sharing': options.linkSharing !== undefined ? String(options.linkSharing) : undefined,
30
+ 'Guest access': options.guestAccess !== undefined ? String(options.guestAccess) : undefined,
31
+ Domain: options.domain,
32
+ 'Domain discovery': options.domainDiscovery !== undefined ? String(options.domainDiscovery) : undefined,
33
+ 'Restrict email domains': options.restrictEmailDomains !== undefined
34
+ ? String(options.restrictEmailDomains)
35
+ : undefined,
36
+ });
37
+ return;
38
+ }
39
+ const api = await getApi();
40
+ const workspace = await api.addWorkspace(args);
41
+ clearWorkspaceCache();
42
+ if (options.json) {
43
+ // Emit the curated Workspace shape used by `workspace view --json`
44
+ // so scripts see a consistent contract across create/view/update.
45
+ // Fall back to the raw SDK response if sync hasn't picked up the
46
+ // new workspace yet.
47
+ const refreshed = (await fetchWorkspaces()).find((w) => w.id === workspace.id);
48
+ console.log(JSON.stringify(refreshed ? formatWorkspaceJson(refreshed, options.full ?? false) : workspace, null, 2));
49
+ return;
50
+ }
51
+ if (isQuiet()) {
52
+ console.log(workspace.id);
53
+ return;
54
+ }
55
+ console.log(`Created: ${workspace.name}`);
56
+ console.log(chalk.dim(`ID: ${workspace.id}`));
57
+ }
58
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/workspace/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function deleteWorkspaceCommand(ref: string, options: {
2
+ yes?: boolean;
3
+ dryRun?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/delete.ts"],"names":[],"mappings":"AAOA,wBAAsB,sBAAsB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
@@ -0,0 +1,31 @@
1
+ import { getApi } from '../../lib/api/core.js';
2
+ import { clearWorkspaceCache } from '../../lib/api/workspaces.js';
3
+ import { isQuiet } from '../../lib/global-args.js';
4
+ import { printDryRun } from '../../lib/output.js';
5
+ import { resolveWorkspaceRef } from '../../lib/refs.js';
6
+ import { assertWorkspaceAdmin } from './helpers.js';
7
+ export async function deleteWorkspaceCommand(ref, options) {
8
+ const workspace = await resolveWorkspaceRef(ref);
9
+ // Admin check runs before dry-run so the preview can't silently
10
+ // claim a delete would succeed when the server would reject it.
11
+ assertWorkspaceAdmin(workspace, 'delete');
12
+ if (options.dryRun) {
13
+ printDryRun('delete workspace', {
14
+ Workspace: workspace.name,
15
+ ID: workspace.id,
16
+ });
17
+ return;
18
+ }
19
+ if (!options.yes) {
20
+ console.log(`Would delete: ${workspace.name} (id:${workspace.id})`);
21
+ console.log('Use --yes to confirm.');
22
+ return;
23
+ }
24
+ const api = await getApi();
25
+ await api.deleteWorkspace(workspace.id);
26
+ clearWorkspaceCache();
27
+ if (!isQuiet()) {
28
+ console.log(`Deleted: ${workspace.name} (id:${workspace.id})`);
29
+ }
30
+ }
31
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/workspace/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,GAAW,EACX,OAA4C;IAE5C,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAChD,gEAAgE;IAChE,gEAAgE;IAChE,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAEzC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,kBAAkB,EAAE;YAC5B,SAAS,EAAE,SAAS,CAAC,IAAI;YACzB,EAAE,EAAE,SAAS,CAAC,EAAE;SACnB,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,IAAI,QAAQ,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;QACpC,OAAM;IACV,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAC1B,MAAM,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACvC,mBAAmB,EAAE,CAAA;IAErB,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,CAAC,IAAI,QAAQ,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;IAClE,CAAC;AACL,CAAC"}
@@ -1,2 +1,25 @@
1
- export declare const WORKSPACE_ROLES: string[];
1
+ import { type WorkspaceUser } from '@doist/todoist-sdk';
2
+ import type { Workspace } from '../../lib/api/workspaces.js';
3
+ export declare const WORKSPACE_ROLES: readonly string[];
4
+ /**
5
+ * Curated JSON shape for a workspace, matching the output of
6
+ * `workspace view --json` / `workspace list --json`. Used by create/update
7
+ * so scripts that round-trip through these commands see a consistent
8
+ * contract regardless of which operation produced the payload.
9
+ */
10
+ export declare function formatWorkspaceJson(workspace: Workspace, full: boolean): Workspace | Record<string, unknown>;
11
+ /**
12
+ * Throws `NOT_ADMIN` if the current user is not an ADMIN of the workspace.
13
+ * Safe to call before a `--dry-run` early return so non-admins fail loudly
14
+ * even when previewing.
15
+ */
16
+ export declare function assertWorkspaceAdmin(workspace: Workspace, action: string): void;
17
+ /**
18
+ * Resolves a workspace user reference (id:xxx, raw id, email, or full name)
19
+ * to a `WorkspaceUser` by paginating `getWorkspaceUsers` for the workspace.
20
+ * Matches are: (1) exact id, (2) exact email (case-insensitive),
21
+ * (3) exact fullName (case-insensitive), (4) substring in fullName or email.
22
+ * Ambiguous fuzzy matches throw; exact matches always win.
23
+ */
24
+ export declare function resolveWorkspaceUserRef(workspaceId: string, ref: string): Promise<WorkspaceUser>;
2
25
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,UAA+B,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAE/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAM5D,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAwB,CAAA;AAErE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,OAAO,GACd,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWrC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ/E;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CACzC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,CAoDxB"}
@@ -1,2 +1,114 @@
1
- export const WORKSPACE_ROLES = ['ADMIN', 'MEMBER', 'GUEST'];
1
+ import { WORKSPACE_ROLES as SDK_WORKSPACE_ROLES } from '@doist/todoist-sdk';
2
+ import { getApi } from '../../lib/api/core.js';
3
+ import { CliError } from '../../lib/errors.js';
4
+ import { extractId, isIdRef } from '../../lib/refs.js';
5
+ // Widen the SDK's readonly tuple to `readonly string[]` so callers can use
6
+ // `.includes(someString)` and spread into mutable arrays without casts.
7
+ export const WORKSPACE_ROLES = SDK_WORKSPACE_ROLES;
8
+ /**
9
+ * Curated JSON shape for a workspace, matching the output of
10
+ * `workspace view --json` / `workspace list --json`. Used by create/update
11
+ * so scripts that round-trip through these commands see a consistent
12
+ * contract regardless of which operation produced the payload.
13
+ */
14
+ export function formatWorkspaceJson(workspace, full) {
15
+ if (full)
16
+ return workspace;
17
+ return {
18
+ id: workspace.id,
19
+ name: workspace.name,
20
+ plan: workspace.plan,
21
+ role: workspace.role,
22
+ domainName: workspace.domainName,
23
+ memberCount: workspace.currentMemberCount,
24
+ projectCount: workspace.currentActiveProjects,
25
+ };
26
+ }
27
+ /**
28
+ * Throws `NOT_ADMIN` if the current user is not an ADMIN of the workspace.
29
+ * Safe to call before a `--dry-run` early return so non-admins fail loudly
30
+ * even when previewing.
31
+ */
32
+ export function assertWorkspaceAdmin(workspace, action) {
33
+ if (workspace.role === 'ADMIN')
34
+ return;
35
+ const role = workspace.role ?? 'none';
36
+ throw new CliError('NOT_ADMIN', `Only workspace admins can ${action} '${workspace.name}' (your role: ${role}).`, ['Ask a workspace admin to perform this action.']);
37
+ }
38
+ /**
39
+ * Resolves a workspace user reference (id:xxx, raw id, email, or full name)
40
+ * to a `WorkspaceUser` by paginating `getWorkspaceUsers` for the workspace.
41
+ * Matches are: (1) exact id, (2) exact email (case-insensitive),
42
+ * (3) exact fullName (case-insensitive), (4) substring in fullName or email.
43
+ * Ambiguous fuzzy matches throw; exact matches always win.
44
+ */
45
+ export async function resolveWorkspaceUserRef(workspaceId, ref) {
46
+ const api = await getApi();
47
+ if (isIdRef(ref)) {
48
+ const id = extractId(ref);
49
+ const user = await findUser(workspaceId, (u) => u.userId === id);
50
+ if (user)
51
+ return user;
52
+ throw new CliError('NOT_FOUND', `No user with id "${id}" found in workspace.`, [
53
+ 'Use `td workspace users <workspace>` to list members.',
54
+ ]);
55
+ }
56
+ // Collect all workspace users once, then match.
57
+ const users = [];
58
+ let cursor;
59
+ while (true) {
60
+ const response = await api.getWorkspaceUsers({
61
+ workspaceId,
62
+ cursor,
63
+ limit: 200,
64
+ });
65
+ users.push(...response.workspaceUsers);
66
+ if (!response.hasMore || !response.nextCursor)
67
+ break;
68
+ cursor = response.nextCursor;
69
+ }
70
+ const lower = ref.toLowerCase();
71
+ const exactId = users.find((u) => u.userId === ref);
72
+ if (exactId)
73
+ return exactId;
74
+ const exactEmail = users.find((u) => u.userEmail.toLowerCase() === lower);
75
+ if (exactEmail)
76
+ return exactEmail;
77
+ const exactName = users.find((u) => u.fullName.toLowerCase() === lower);
78
+ if (exactName)
79
+ return exactName;
80
+ const fuzzy = users.filter((u) => u.fullName.toLowerCase().includes(lower) || u.userEmail.toLowerCase().includes(lower));
81
+ if (fuzzy.length === 1)
82
+ return fuzzy[0];
83
+ if (fuzzy.length > 1) {
84
+ throw new CliError('AMBIGUOUS_ASSIGNEE', `Multiple workspace users match "${ref}".`, [
85
+ `Matches: ${fuzzy
86
+ .slice(0, 5)
87
+ .map((u) => `${u.fullName} <${u.userEmail}>`)
88
+ .join(', ')}`,
89
+ 'Use an email address or id:xxx to disambiguate.',
90
+ ]);
91
+ }
92
+ throw new CliError('NOT_FOUND', `No workspace user found matching "${ref}".`, [
93
+ 'Use `td workspace users <workspace>` to list members.',
94
+ ]);
95
+ }
96
+ async function findUser(workspaceId, predicate) {
97
+ const api = await getApi();
98
+ let cursor;
99
+ while (true) {
100
+ const response = await api.getWorkspaceUsers({
101
+ workspaceId,
102
+ cursor,
103
+ limit: 200,
104
+ });
105
+ for (const user of response.workspaceUsers) {
106
+ if (predicate(user))
107
+ return user;
108
+ }
109
+ if (!response.hasMore || !response.nextCursor)
110
+ return null;
111
+ cursor = response.nextCursor;
112
+ }
113
+ }
2
114
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/workspace/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/workspace/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAsB,MAAM,oBAAoB,CAAA;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEtD,2EAA2E;AAC3E,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAsB,mBAAmB,CAAA;AAErE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAC/B,SAAoB,EACpB,IAAa;IAEb,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IAC1B,OAAO;QACH,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,WAAW,EAAE,SAAS,CAAC,kBAAkB;QACzC,YAAY,EAAE,SAAS,CAAC,qBAAqB;KAChD,CAAA;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAoB,EAAE,MAAc;IACrE,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO;QAAE,OAAM;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAA;IACrC,MAAM,IAAI,QAAQ,CACd,WAAW,EACX,6BAA6B,MAAM,KAAK,SAAS,CAAC,IAAI,iBAAiB,IAAI,IAAI,EAC/E,CAAC,+CAA+C,CAAC,CACpD,CAAA;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CACzC,WAAmB,EACnB,GAAW;IAEX,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAE1B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QACzB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAA;QAChE,IAAI,IAAI;YAAE,OAAO,IAAI,CAAA;QACrB,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,oBAAoB,EAAE,uBAAuB,EAAE;YAC3E,uDAAuD;SAC1D,CAAC,CAAA;IACN,CAAC;IAED,gDAAgD;IAChD,MAAM,KAAK,GAAoB,EAAE,CAAA;IACjC,IAAI,MAA0B,CAAA;IAC9B,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC;YACzC,WAAW;YACX,MAAM;YACN,KAAK,EAAE,GAAG;SACb,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,MAAK;QACpD,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAA;IAChC,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;IACnD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;IACzE,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;IACvE,IAAI,SAAS;QAAE,OAAO,SAAS,CAAA;IAE/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC5F,CAAA;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAA;IACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,mCAAmC,GAAG,IAAI,EAAE;YACjF,YAAY,KAAK;iBACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC;iBAC5C,IAAI,CAAC,IAAI,CAAC,EAAE;YACjB,iDAAiD;SACpD,CAAC,CAAA;IACN,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,qCAAqC,GAAG,IAAI,EAAE;QAC1E,uDAAuD;KAC1D,CAAC,CAAA;AACN,CAAC;AAED,KAAK,UAAU,QAAQ,CACnB,WAAmB,EACnB,SAA2C;IAE3C,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAC1B,IAAI,MAA0B,CAAA;IAC9B,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC;YACzC,WAAW;YACX,MAAM;YACN,KAAK,EAAE,GAAG;SACb,CAAC,CAAA;QACF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;QACpC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,OAAO,IAAI,CAAA;QAC1D,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAA;IAChC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AAY3C,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsH/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AAiB3C,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4P/D"}
@@ -2,10 +2,15 @@ import { Option } from 'commander';
2
2
  import { withUnvalidatedChoices } from '../../lib/completion.js';
3
3
  import { CURSOR_DESCRIPTION } from '../../lib/constants.js';
4
4
  import { CliError } from '../../lib/errors.js';
5
+ import { showWorkspaceActivity } from './activity.js';
6
+ import { createWorkspace } from './create.js';
7
+ import { deleteWorkspaceCommand } from './delete.js';
5
8
  import { WORKSPACE_ROLES } from './helpers.js';
6
9
  import { showWorkspaceInsights } from './insights.js';
7
10
  import { listWorkspaces } from './list.js';
8
11
  import { listWorkspaceProjects } from './projects.js';
12
+ import { updateWorkspaceCommand } from './update.js';
13
+ import { listWorkspaceUserTasks } from './user-tasks.js';
9
14
  import { listWorkspaceUsers } from './users.js';
10
15
  import { viewWorkspace } from './view.js';
11
16
  export function registerWorkspaceCommand(program) {
@@ -29,6 +34,68 @@ export function registerWorkspaceCommand(program) {
29
34
  }
30
35
  return viewWorkspace(ref, options);
31
36
  });
37
+ const createCmd = workspace
38
+ .command('create')
39
+ .description('Create a new workspace')
40
+ .option('--name <name>', 'Workspace name (required)')
41
+ .option('--description <text>', 'Workspace description')
42
+ .option('--link-sharing', 'Enable link sharing')
43
+ .option('--no-link-sharing', 'Disable link sharing')
44
+ .option('--guest-access', 'Allow guests')
45
+ .option('--no-guest-access', 'Disallow guests')
46
+ .option('--domain <domain>', 'Workspace email domain')
47
+ .option('--domain-discovery', 'Allow matching domains to discover this workspace')
48
+ .option('--no-domain-discovery', 'Disallow matching domains to discover this workspace')
49
+ .option('--restrict-email-domains', 'Restrict invites to the workspace domain')
50
+ .option('--no-restrict-email-domains', 'Do not restrict invites to the workspace domain')
51
+ .option('--json', 'Output as JSON')
52
+ .option('--full', 'Include all fields in JSON output')
53
+ .option('--dry-run', 'Preview what would happen without executing')
54
+ .action((options) => {
55
+ if (!options.name) {
56
+ createCmd.help();
57
+ return;
58
+ }
59
+ return createWorkspace(options);
60
+ });
61
+ const updateCmd = workspace
62
+ .command('update [ref]')
63
+ .description('Update a workspace (admin only)')
64
+ .option('--name <name>', 'New workspace name')
65
+ .option('--description <text>', 'Workspace description')
66
+ .option('--link-sharing', 'Enable link sharing')
67
+ .option('--no-link-sharing', 'Disable link sharing')
68
+ .option('--guest-access', 'Allow guests')
69
+ .option('--no-guest-access', 'Disallow guests')
70
+ .option('--domain <domain>', 'Workspace email domain')
71
+ .option('--domain-discovery', 'Allow matching domains to discover this workspace')
72
+ .option('--no-domain-discovery', 'Disallow matching domains to discover this workspace')
73
+ .option('--restrict-email-domains', 'Restrict invites to the workspace domain')
74
+ .option('--no-restrict-email-domains', 'Do not restrict invites to the workspace domain')
75
+ .option('--collapsed', 'Collapse workspace in the UI')
76
+ .option('--no-collapsed', 'Uncollapse workspace in the UI')
77
+ .option('--json', 'Output as JSON')
78
+ .option('--full', 'Include all fields in JSON output')
79
+ .option('--dry-run', 'Preview what would happen without executing')
80
+ .action((ref, options) => {
81
+ if (!ref) {
82
+ updateCmd.help();
83
+ return;
84
+ }
85
+ return updateWorkspaceCommand(ref, options);
86
+ });
87
+ const deleteCmd = workspace
88
+ .command('delete [ref]')
89
+ .description('Delete a workspace (admin only)')
90
+ .option('--yes', 'Skip confirmation prompt')
91
+ .option('--dry-run', 'Preview what would happen without executing')
92
+ .action((ref, options) => {
93
+ if (!ref) {
94
+ deleteCmd.help();
95
+ return;
96
+ }
97
+ return deleteWorkspaceCommand(ref, options);
98
+ });
32
99
  const projectsCmd = workspace
33
100
  .command('projects [ref]')
34
101
  .description('List projects in a workspace')
@@ -54,7 +121,7 @@ export function registerWorkspaceCommand(program) {
54
121
  .command('users [ref]')
55
122
  .description('List users in a workspace')
56
123
  .option('--workspace <ref>', 'Workspace name or id:xxx')
57
- .addOption(withUnvalidatedChoices(new Option('--role <roles>', `Filter by role (comma-separated: ${WORKSPACE_ROLES.join(',')})`), WORKSPACE_ROLES))
124
+ .addOption(withUnvalidatedChoices(new Option('--role <roles>', `Filter by role (comma-separated: ${WORKSPACE_ROLES.join(',')})`), [...WORKSPACE_ROLES]))
58
125
  .option('--limit <n>', 'Limit number of results')
59
126
  .option('--cursor <cursor>', CURSOR_DESCRIPTION)
60
127
  .option('--all', 'Fetch all results (no limit)')
@@ -72,6 +139,46 @@ export function registerWorkspaceCommand(program) {
72
139
  }
73
140
  return listWorkspaceUsers(ref, options);
74
141
  });
142
+ const userTasksCmd = workspace
143
+ .command('user-tasks [ref]')
144
+ .description('List tasks assigned to a user in a workspace')
145
+ .option('--workspace <ref>', 'Workspace name or id:xxx')
146
+ .option('--user <ref>', 'User email, full name, or id:xxx (required)')
147
+ .option('--project-ids <ids>', 'Comma-separated project IDs to filter')
148
+ .option('--json', 'Output as JSON')
149
+ .option('--ndjson', 'Output as newline-delimited JSON')
150
+ .option('--full', 'Include all fields in JSON output')
151
+ .action((refArg, options) => {
152
+ if (refArg && options.workspace) {
153
+ throw new CliError('CONFLICTING_OPTIONS', 'Cannot specify workspace both as argument and --workspace flag');
154
+ }
155
+ const ref = refArg || options.workspace;
156
+ if (!ref) {
157
+ userTasksCmd.help();
158
+ return;
159
+ }
160
+ return listWorkspaceUserTasks(ref, options);
161
+ });
162
+ const activityCmd = workspace
163
+ .command('activity [ref]')
164
+ .description('Show workspace members activity (tasks assigned/overdue)')
165
+ .option('--workspace <ref>', 'Workspace name or id:xxx')
166
+ .option('--user-ids <ids>', 'Comma-separated user IDs to filter')
167
+ .option('--project-ids <ids>', 'Comma-separated project IDs to filter')
168
+ .option('--json', 'Output as JSON')
169
+ .option('--ndjson', 'Output as newline-delimited JSON')
170
+ .option('--full', 'Enrich output with user names/emails')
171
+ .action((refArg, options) => {
172
+ if (refArg && options.workspace) {
173
+ throw new CliError('CONFLICTING_OPTIONS', 'Cannot specify workspace both as argument and --workspace flag');
174
+ }
175
+ const ref = refArg || options.workspace;
176
+ if (!ref) {
177
+ activityCmd.help();
178
+ return;
179
+ }
180
+ return showWorkspaceActivity(ref, options);
181
+ });
75
182
  const insightsCmd = workspace
76
183
  .command('insights [ref]')
77
184
  .description('Show health and progress insights for workspace projects')
@@ -89,5 +196,12 @@ export function registerWorkspaceCommand(program) {
89
196
  }
90
197
  return showWorkspaceInsights(ref, options);
91
198
  });
199
+ workspace.addHelpText('after', `
200
+ Examples:
201
+ $ td workspace create --name "Acme"
202
+ $ td workspace update "Acme" --description "Acme Inc." --dry-run
203
+ $ td workspace delete "Old WS" --yes
204
+ $ td workspace user-tasks "Acme" --user alice@example.com
205
+ $ td workspace activity "Acme" --json`);
92
206
  }
93
207
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/workspace/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/workspace/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface UpdateWorkspaceOptions {
2
+ name?: string;
3
+ description?: string;
4
+ linkSharing?: boolean;
5
+ guestAccess?: boolean;
6
+ domain?: string;
7
+ domainDiscovery?: boolean;
8
+ restrictEmailDomains?: boolean;
9
+ collapsed?: boolean;
10
+ json?: boolean;
11
+ full?: boolean;
12
+ dryRun?: boolean;
13
+ }
14
+ export declare function updateWorkspaceCommand(ref: string, options: UpdateWorkspaceOptions): Promise<void>;
15
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/update.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,sBAAsB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,sBAAsB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC,CAgFf"}
@@ -0,0 +1,75 @@
1
+ import { getApi } from '../../lib/api/core.js';
2
+ import { clearWorkspaceCache, fetchWorkspaces } from '../../lib/api/workspaces.js';
3
+ import { CliError } from '../../lib/errors.js';
4
+ import { isQuiet } from '../../lib/global-args.js';
5
+ import { printDryRun } from '../../lib/output.js';
6
+ import { resolveWorkspaceRef } from '../../lib/refs.js';
7
+ import { assertWorkspaceAdmin, formatWorkspaceJson } from './helpers.js';
8
+ export async function updateWorkspaceCommand(ref, options) {
9
+ const workspace = await resolveWorkspaceRef(ref);
10
+ const args = {};
11
+ if (options.name !== undefined)
12
+ args.name = options.name;
13
+ if (options.description !== undefined)
14
+ args.description = options.description;
15
+ if (options.linkSharing !== undefined)
16
+ args.isLinkSharingEnabled = options.linkSharing;
17
+ if (options.guestAccess !== undefined)
18
+ args.isGuestAllowed = options.guestAccess;
19
+ if (options.domain !== undefined)
20
+ args.domainName = options.domain;
21
+ if (options.domainDiscovery !== undefined)
22
+ args.domainDiscovery = options.domainDiscovery;
23
+ if (options.restrictEmailDomains !== undefined) {
24
+ args.restrictEmailDomains = options.restrictEmailDomains;
25
+ }
26
+ if (options.collapsed !== undefined)
27
+ args.isCollapsed = options.collapsed;
28
+ // Guard no-op calls before the admin check — a user who forgot their
29
+ // flags should see NO_CHANGES, not NOT_ADMIN, since no mutation is
30
+ // actually being attempted.
31
+ if (Object.keys(args).length === 0) {
32
+ throw new CliError('NO_CHANGES', 'No changes specified.');
33
+ }
34
+ // Admin check runs BEFORE the dry-run short-circuit so a non-admin's
35
+ // preview still fails loudly — otherwise a dry-run would lie about
36
+ // what would happen.
37
+ assertWorkspaceAdmin(workspace, 'update');
38
+ if (options.dryRun) {
39
+ printDryRun('update workspace', {
40
+ Workspace: workspace.name,
41
+ Name: args.name,
42
+ Description: args.description ?? undefined,
43
+ 'Link sharing': args.isLinkSharingEnabled !== undefined
44
+ ? String(args.isLinkSharingEnabled)
45
+ : undefined,
46
+ 'Guest access': args.isGuestAllowed !== undefined && args.isGuestAllowed !== null
47
+ ? String(args.isGuestAllowed)
48
+ : undefined,
49
+ Domain: args.domainName ?? undefined,
50
+ 'Domain discovery': args.domainDiscovery !== undefined ? String(args.domainDiscovery) : undefined,
51
+ 'Restrict email domains': args.restrictEmailDomains !== undefined
52
+ ? String(args.restrictEmailDomains)
53
+ : undefined,
54
+ Collapsed: args.isCollapsed !== undefined ? String(args.isCollapsed) : undefined,
55
+ });
56
+ return;
57
+ }
58
+ const api = await getApi();
59
+ const updated = await api.updateWorkspace(workspace.id, args);
60
+ clearWorkspaceCache();
61
+ if (options.json) {
62
+ // Re-fetch via sync so we emit the curated Workspace shape that
63
+ // `workspace view --json` uses — keeps the contract consistent for
64
+ // scripts that round-trip through read commands. Fall back to the
65
+ // raw SDK response if sync doesn't yet list it (shouldn't happen
66
+ // post-update, but be safe).
67
+ const refreshed = (await fetchWorkspaces()).find((w) => w.id === workspace.id);
68
+ console.log(JSON.stringify(refreshed ? formatWorkspaceJson(refreshed, options.full ?? false) : updated, null, 2));
69
+ return;
70
+ }
71
+ if (!isQuiet()) {
72
+ console.log(`Updated: ${workspace.name}${options.name && options.name !== workspace.name ? ` → ${updated.name}` : ''} (id:${workspace.id})`);
73
+ }
74
+ }
75
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/workspace/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface WorkspaceUserTasksOptions {
2
+ user?: string;
3
+ projectIds?: string;
4
+ json?: boolean;
5
+ ndjson?: boolean;
6
+ full?: boolean;
7
+ }
8
+ export declare function listWorkspaceUserTasks(ref: string, options: WorkspaceUserTasksOptions): Promise<void>;
9
+ //# sourceMappingURL=user-tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-tasks.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/user-tasks.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,yBAAyB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,sBAAsB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,yBAAyB,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Ef"}