@opentabs-dev/opentabs-plugin-asana 0.0.74

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 (113) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15297 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/asana-api.d.ts +8 -0
  5. package/dist/asana-api.d.ts.map +1 -0
  6. package/dist/asana-api.js +86 -0
  7. package/dist/asana-api.js.map +1 -0
  8. package/dist/index.d.ts +14 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +78 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/add-followers.d.ts +33 -0
  13. package/dist/tools/add-followers.d.ts.map +1 -0
  14. package/dist/tools/add-followers.js +28 -0
  15. package/dist/tools/add-followers.js.map +1 -0
  16. package/dist/tools/add-task-to-section.d.ts +8 -0
  17. package/dist/tools/add-task-to-section.d.ts.map +1 -0
  18. package/dist/tools/add-task-to-section.js +26 -0
  19. package/dist/tools/add-task-to-section.js.map +1 -0
  20. package/dist/tools/create-project.d.ts +30 -0
  21. package/dist/tools/create-project.d.ts.map +1 -0
  22. package/dist/tools/create-project.js +50 -0
  23. package/dist/tools/create-project.js.map +1 -0
  24. package/dist/tools/create-section.d.ts +13 -0
  25. package/dist/tools/create-section.d.ts.map +1 -0
  26. package/dist/tools/create-section.js +28 -0
  27. package/dist/tools/create-section.js.map +1 -0
  28. package/dist/tools/create-story.d.ts +16 -0
  29. package/dist/tools/create-story.d.ts.map +1 -0
  30. package/dist/tools/create-story.js +28 -0
  31. package/dist/tools/create-story.js.map +1 -0
  32. package/dist/tools/create-task.d.ts +40 -0
  33. package/dist/tools/create-task.d.ts.map +1 -0
  34. package/dist/tools/create-task.js +53 -0
  35. package/dist/tools/create-task.js.map +1 -0
  36. package/dist/tools/delete-task.d.ts +7 -0
  37. package/dist/tools/delete-task.d.ts.map +1 -0
  38. package/dist/tools/delete-task.js +24 -0
  39. package/dist/tools/delete-task.js.map +1 -0
  40. package/dist/tools/get-current-user.d.ts +13 -0
  41. package/dist/tools/get-current-user.d.ts.map +1 -0
  42. package/dist/tools/get-current-user.js +30 -0
  43. package/dist/tools/get-current-user.js.map +1 -0
  44. package/dist/tools/get-project.d.ts +23 -0
  45. package/dist/tools/get-project.d.ts.map +1 -0
  46. package/dist/tools/get-project.js +25 -0
  47. package/dist/tools/get-project.js.map +1 -0
  48. package/dist/tools/get-stories-for-task.d.ts +18 -0
  49. package/dist/tools/get-stories-for-task.d.ts.map +1 -0
  50. package/dist/tools/get-stories-for-task.js +41 -0
  51. package/dist/tools/get-stories-for-task.js.map +1 -0
  52. package/dist/tools/get-subtasks.d.ts +35 -0
  53. package/dist/tools/get-subtasks.d.ts.map +1 -0
  54. package/dist/tools/get-subtasks.js +41 -0
  55. package/dist/tools/get-subtasks.js.map +1 -0
  56. package/dist/tools/get-task.d.ts +33 -0
  57. package/dist/tools/get-task.d.ts.map +1 -0
  58. package/dist/tools/get-task.js +29 -0
  59. package/dist/tools/get-task.js.map +1 -0
  60. package/dist/tools/get-tasks-for-project.d.ts +35 -0
  61. package/dist/tools/get-tasks-for-project.d.ts.map +1 -0
  62. package/dist/tools/get-tasks-for-project.js +41 -0
  63. package/dist/tools/get-tasks-for-project.js.map +1 -0
  64. package/dist/tools/get-tasks-for-section.d.ts +35 -0
  65. package/dist/tools/get-tasks-for-section.d.ts.map +1 -0
  66. package/dist/tools/get-tasks-for-section.js +41 -0
  67. package/dist/tools/get-tasks-for-section.js.map +1 -0
  68. package/dist/tools/get-user.d.ts +11 -0
  69. package/dist/tools/get-user.d.ts.map +1 -0
  70. package/dist/tools/get-user.js +25 -0
  71. package/dist/tools/get-user.js.map +1 -0
  72. package/dist/tools/list-projects.d.ts +27 -0
  73. package/dist/tools/list-projects.d.ts.map +1 -0
  74. package/dist/tools/list-projects.js +38 -0
  75. package/dist/tools/list-projects.js.map +1 -0
  76. package/dist/tools/list-sections.d.ts +12 -0
  77. package/dist/tools/list-sections.d.ts.map +1 -0
  78. package/dist/tools/list-sections.js +27 -0
  79. package/dist/tools/list-sections.js.map +1 -0
  80. package/dist/tools/list-tags.d.ts +14 -0
  81. package/dist/tools/list-tags.d.ts.map +1 -0
  82. package/dist/tools/list-tags.js +41 -0
  83. package/dist/tools/list-tags.js.map +1 -0
  84. package/dist/tools/list-teams.d.ts +14 -0
  85. package/dist/tools/list-teams.d.ts.map +1 -0
  86. package/dist/tools/list-teams.js +41 -0
  87. package/dist/tools/list-teams.js.map +1 -0
  88. package/dist/tools/list-users-for-workspace.d.ts +14 -0
  89. package/dist/tools/list-users-for-workspace.d.ts.map +1 -0
  90. package/dist/tools/list-users-for-workspace.js +41 -0
  91. package/dist/tools/list-users-for-workspace.js.map +1 -0
  92. package/dist/tools/list-workspaces.d.ts +8 -0
  93. package/dist/tools/list-workspaces.d.ts.map +1 -0
  94. package/dist/tools/list-workspaces.js +23 -0
  95. package/dist/tools/list-workspaces.js.map +1 -0
  96. package/dist/tools/schemas.d.ts +189 -0
  97. package/dist/tools/schemas.d.ts.map +1 -0
  98. package/dist/tools/schemas.js +222 -0
  99. package/dist/tools/schemas.js.map +1 -0
  100. package/dist/tools/search-tasks.d.ts +39 -0
  101. package/dist/tools/search-tasks.d.ts.map +1 -0
  102. package/dist/tools/search-tasks.js +52 -0
  103. package/dist/tools/search-tasks.js.map +1 -0
  104. package/dist/tools/update-project.d.ts +30 -0
  105. package/dist/tools/update-project.d.ts.map +1 -0
  106. package/dist/tools/update-project.js +49 -0
  107. package/dist/tools/update-project.js.map +1 -0
  108. package/dist/tools/update-task.d.ts +39 -0
  109. package/dist/tools/update-task.d.ts.map +1 -0
  110. package/dist/tools/update-task.js +49 -0
  111. package/dist/tools/update-task.js.map +1 -0
  112. package/dist/tools.json +2865 -0
  113. package/package.json +55 -0
@@ -0,0 +1,38 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../asana-api.js';
4
+ import { PROJECT_OPT_FIELDS, mapProject, projectSchema } from './schemas.js';
5
+ export const listProjects = defineTool({
6
+ name: 'list_projects',
7
+ displayName: 'List Projects',
8
+ description: 'List projects in a workspace. Returns projects sorted by name with optional filtering by archived status. Supports pagination via offset.',
9
+ summary: 'List projects in a workspace',
10
+ icon: 'folder',
11
+ group: 'Projects',
12
+ input: z.object({
13
+ workspace_gid: z.string().min(1).describe('Workspace GID to list projects from'),
14
+ archived: z.boolean().optional().describe('Filter by archived status (default: false)'),
15
+ limit: z.number().int().min(1).max(100).optional().describe('Results per page (default 20, max 100)'),
16
+ offset: z.string().optional().describe('Pagination offset from a previous response'),
17
+ }),
18
+ output: z.object({
19
+ projects: z.array(projectSchema).describe('List of projects'),
20
+ next_page: z.string().nullable().describe('Pagination offset for the next page, or null if no more results'),
21
+ }),
22
+ handle: async (params) => {
23
+ const data = await api('/projects', {
24
+ query: {
25
+ workspace: params.workspace_gid,
26
+ opt_fields: PROJECT_OPT_FIELDS,
27
+ limit: params.limit ?? 20,
28
+ archived: params.archived,
29
+ offset: params.offset,
30
+ },
31
+ });
32
+ return {
33
+ projects: (data.data ?? []).map(mapProject),
34
+ next_page: data.next_page?.offset ?? null,
35
+ };
36
+ },
37
+ });
38
+ //# sourceMappingURL=list-projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAkB,kBAAkB,EAAmB,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9G,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EACT,2IAA2I;IAC7I,OAAO,EAAE,8BAA8B;IACvC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACrG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KACrF,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;KAC7G,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAwB,WAAW,EAAE;YACzD,KAAK,EAAE;gBACL,SAAS,EAAE,MAAM,CAAC,aAAa;gBAC/B,UAAU,EAAE,kBAAkB;gBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI;SAC1C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ export declare const listSections: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ project_gid: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ sections: z.ZodArray<z.ZodObject<{
6
+ gid: z.ZodString;
7
+ name: z.ZodString;
8
+ created_at: z.ZodString;
9
+ project_gid: z.ZodString;
10
+ }, z.core.$strip>>;
11
+ }, z.core.$strip>>;
12
+ //# sourceMappingURL=list-sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sections.d.ts","sourceRoot":"","sources":["../../src/tools/list-sections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;kBAqBvB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../asana-api.js';
4
+ import { SECTION_OPT_FIELDS, mapSection, sectionSchema } from './schemas.js';
5
+ export const listSections = defineTool({
6
+ name: 'list_sections',
7
+ displayName: 'List Sections',
8
+ description: 'List all sections in a project. Sections are used to organize tasks into groups within a project.',
9
+ summary: 'List sections in a project',
10
+ icon: 'layout-list',
11
+ group: 'Sections',
12
+ input: z.object({
13
+ project_gid: z.string().min(1).describe('Project GID to list sections from'),
14
+ }),
15
+ output: z.object({
16
+ sections: z.array(sectionSchema).describe('List of sections in the project'),
17
+ }),
18
+ handle: async (params) => {
19
+ const data = await api(`/projects/${params.project_gid}/sections`, {
20
+ query: { opt_fields: SECTION_OPT_FIELDS },
21
+ });
22
+ return {
23
+ sections: (data.data ?? []).map(mapSection),
24
+ };
25
+ },
26
+ });
27
+ //# sourceMappingURL=list-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sections.js","sourceRoot":"","sources":["../../src/tools/list-sections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAmC,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9G,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,mGAAmG;IAChH,OAAO,EAAE,4BAA4B;IACrC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAC7E,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC7E,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAwB,aAAa,MAAM,CAAC,WAAW,WAAW,EAAE;YACxF,KAAK,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE;SAC1C,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;SAC5C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const listTags: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ workspace_gid: z.ZodString;
4
+ limit: z.ZodOptional<z.ZodNumber>;
5
+ offset: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ tags: z.ZodArray<z.ZodObject<{
8
+ gid: z.ZodString;
9
+ name: z.ZodString;
10
+ color: z.ZodString;
11
+ }, z.core.$strip>>;
12
+ next_page: z.ZodNullable<z.ZodString>;
13
+ }, z.core.$strip>>;
14
+ //# sourceMappingURL=list-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tags.d.ts","sourceRoot":"","sources":["../../src/tools/list-tags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;kBAmCnB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../asana-api.js';
4
+ import { mapTag, tagSchema } from './schemas.js';
5
+ export const listTags = defineTool({
6
+ name: 'list_tags',
7
+ displayName: 'List Tags',
8
+ description: 'List all tags in a workspace.',
9
+ summary: 'List tags in a workspace',
10
+ icon: 'tag',
11
+ group: 'Tags',
12
+ input: z.object({
13
+ workspace_gid: z.string().min(1).describe('Workspace GID to list tags for'),
14
+ limit: z
15
+ .number()
16
+ .int()
17
+ .min(1)
18
+ .max(100)
19
+ .optional()
20
+ .describe('Maximum number of tags to return (default 20, max 100)'),
21
+ offset: z.string().optional().describe('Pagination offset token from a previous response'),
22
+ }),
23
+ output: z.object({
24
+ tags: z.array(tagSchema).describe('List of tags in the workspace'),
25
+ next_page: z.string().nullable().describe('Offset token for the next page, or null if no more results'),
26
+ }),
27
+ handle: async (params) => {
28
+ const data = await api(`/workspaces/${params.workspace_gid}/tags`, {
29
+ query: {
30
+ opt_fields: 'name,color',
31
+ limit: params.limit ?? 20,
32
+ offset: params.offset,
33
+ },
34
+ });
35
+ return {
36
+ tags: (data.data ?? []).map(mapTag),
37
+ next_page: data.next_page?.offset ?? null,
38
+ };
39
+ },
40
+ });
41
+ //# sourceMappingURL=list-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tags.js","sourceRoot":"","sources":["../../src/tools/list-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAA+B,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,+BAA+B;IAC5C,OAAO,EAAE,0BAA0B;IACnC,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC3E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAC3F,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACxG,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAoB,eAAe,MAAM,CAAC,aAAa,OAAO,EAAE;YACpF,KAAK,EAAE;gBACL,UAAU,EAAE,YAAY;gBACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI;SAC1C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const listTeams: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ workspace_gid: z.ZodString;
4
+ limit: z.ZodOptional<z.ZodNumber>;
5
+ offset: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ teams: z.ZodArray<z.ZodObject<{
8
+ gid: z.ZodString;
9
+ name: z.ZodString;
10
+ description: z.ZodString;
11
+ }, z.core.$strip>>;
12
+ next_page: z.ZodNullable<z.ZodString>;
13
+ }, z.core.$strip>>;
14
+ //# sourceMappingURL=list-teams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-teams.d.ts","sourceRoot":"","sources":["../../src/tools/list-teams.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,SAAS;;;;;;;;;;;kBAmCpB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../asana-api.js';
4
+ import { mapTeam, teamSchema } from './schemas.js';
5
+ export const listTeams = defineTool({
6
+ name: 'list_teams',
7
+ displayName: 'List Teams',
8
+ description: 'List all teams in a workspace.',
9
+ summary: 'List teams in a workspace',
10
+ icon: 'users',
11
+ group: 'Teams',
12
+ input: z.object({
13
+ workspace_gid: z.string().min(1).describe('Workspace GID to list teams for'),
14
+ limit: z
15
+ .number()
16
+ .int()
17
+ .min(1)
18
+ .max(100)
19
+ .optional()
20
+ .describe('Maximum number of teams to return (default 20, max 100)'),
21
+ offset: z.string().optional().describe('Pagination offset token from a previous response'),
22
+ }),
23
+ output: z.object({
24
+ teams: z.array(teamSchema).describe('List of teams in the workspace'),
25
+ next_page: z.string().nullable().describe('Offset token for the next page, or null if no more results'),
26
+ }),
27
+ handle: async (params) => {
28
+ const data = await api(`/workspaces/${params.workspace_gid}/teams`, {
29
+ query: {
30
+ opt_fields: 'name,description',
31
+ limit: params.limit ?? 20,
32
+ offset: params.offset,
33
+ },
34
+ });
35
+ return {
36
+ teams: (data.data ?? []).map(mapTeam),
37
+ next_page: data.next_page?.offset ?? null,
38
+ };
39
+ },
40
+ });
41
+ //# sourceMappingURL=list-teams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-teams.js","sourceRoot":"","sources":["../../src/tools/list-teams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAgC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEjF,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;IAClC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,gCAAgC;IAC7C,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC5E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAC3F,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACxG,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAqB,eAAe,MAAM,CAAC,aAAa,QAAQ,EAAE;YACtF,KAAK,EAAE;gBACL,UAAU,EAAE,kBAAkB;gBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC,CAAC;QACH,OAAO;YACL,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI;SAC1C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const listUsersForWorkspace: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ workspace_gid: z.ZodString;
4
+ limit: z.ZodOptional<z.ZodNumber>;
5
+ offset: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ users: z.ZodArray<z.ZodObject<{
8
+ gid: z.ZodString;
9
+ name: z.ZodString;
10
+ email: z.ZodString;
11
+ }, z.core.$strip>>;
12
+ next_page: z.ZodNullable<z.ZodString>;
13
+ }, z.core.$strip>>;
14
+ //# sourceMappingURL=list-users-for-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-users-for-workspace.d.ts","sourceRoot":"","sources":["../../src/tools/list-users-for-workspace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;kBAmChC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../asana-api.js';
4
+ import { mapUser, userSchema } from './schemas.js';
5
+ export const listUsersForWorkspace = defineTool({
6
+ name: 'list_users_for_workspace',
7
+ displayName: 'List Users for Workspace',
8
+ description: 'List all users in a workspace.',
9
+ summary: 'List users in a workspace',
10
+ icon: 'users',
11
+ group: 'Users',
12
+ input: z.object({
13
+ workspace_gid: z.string().min(1).describe('Workspace GID to list users for'),
14
+ limit: z
15
+ .number()
16
+ .int()
17
+ .min(1)
18
+ .max(100)
19
+ .optional()
20
+ .describe('Maximum number of users to return (default 20, max 100)'),
21
+ offset: z.string().optional().describe('Pagination offset token from a previous response'),
22
+ }),
23
+ output: z.object({
24
+ users: z.array(userSchema).describe('List of users in the workspace'),
25
+ next_page: z.string().nullable().describe('Offset token for the next page, or null if no more results'),
26
+ }),
27
+ handle: async (params) => {
28
+ const data = await api(`/workspaces/${params.workspace_gid}/users`, {
29
+ query: {
30
+ opt_fields: 'name,email',
31
+ limit: params.limit ?? 20,
32
+ offset: params.offset,
33
+ },
34
+ });
35
+ return {
36
+ users: (data.data ?? []).map(mapUser),
37
+ next_page: data.next_page?.offset ?? null,
38
+ };
39
+ },
40
+ });
41
+ //# sourceMappingURL=list-users-for-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-users-for-workspace.js","sourceRoot":"","sources":["../../src/tools/list-users-for-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAgC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE,gCAAgC;IAC7C,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC5E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAC3F,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACxG,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAqB,eAAe,MAAM,CAAC,aAAa,QAAQ,EAAE;YACtF,KAAK,EAAE;gBACL,UAAU,EAAE,YAAY;gBACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC,CAAC;QACH,OAAO;YACL,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI;SAC1C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const listWorkspaces: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
3
+ workspaces: z.ZodArray<z.ZodObject<{
4
+ gid: z.ZodString;
5
+ name: z.ZodString;
6
+ }, z.core.$strip>>;
7
+ }, z.core.$strip>>;
8
+ //# sourceMappingURL=list-workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-workspaces.d.ts","sourceRoot":"","sources":["../../src/tools/list-workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,cAAc;;;;;kBAiBzB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../asana-api.js';
4
+ import { mapWorkspace, workspaceSchema } from './schemas.js';
5
+ export const listWorkspaces = defineTool({
6
+ name: 'list_workspaces',
7
+ displayName: 'List Workspaces',
8
+ description: 'List all workspaces the current user has access to.',
9
+ summary: 'List all workspaces',
10
+ icon: 'building',
11
+ group: 'Workspaces',
12
+ input: z.object({}),
13
+ output: z.object({
14
+ workspaces: z.array(workspaceSchema).describe('List of workspaces'),
15
+ }),
16
+ handle: async () => {
17
+ const data = await api('/workspaces');
18
+ return {
19
+ workspaces: (data.data ?? []).map(mapWorkspace),
20
+ };
21
+ },
22
+ });
23
+ //# sourceMappingURL=list-workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-workspaces.js","sourceRoot":"","sources":["../../src/tools/list-workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAqC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhG,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,qDAAqD;IAClE,OAAO,EAAE,qBAAqB;IAC9B,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACpE,CAAC;IACF,MAAM,EAAE,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,GAAG,CAA0B,aAAa,CAAC,CAAC;QAC/D,OAAO;YACL,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;SAChD,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,189 @@
1
+ import { z } from 'zod';
2
+ export interface AsanaResponse<T> {
3
+ data: T;
4
+ }
5
+ export interface AsanaList<T> {
6
+ data: T[];
7
+ next_page: {
8
+ offset: string;
9
+ } | null;
10
+ }
11
+ export declare const taskSchema: z.ZodObject<{
12
+ gid: z.ZodString;
13
+ name: z.ZodString;
14
+ completed: z.ZodBoolean;
15
+ assignee_gid: z.ZodString;
16
+ assignee_name: z.ZodString;
17
+ due_on: z.ZodString;
18
+ due_at: z.ZodString;
19
+ start_on: z.ZodString;
20
+ notes: z.ZodString;
21
+ html_notes: z.ZodString;
22
+ projects: z.ZodArray<z.ZodObject<{
23
+ gid: z.ZodString;
24
+ name: z.ZodString;
25
+ }, z.core.$strip>>;
26
+ tags: z.ZodArray<z.ZodObject<{
27
+ gid: z.ZodString;
28
+ name: z.ZodString;
29
+ }, z.core.$strip>>;
30
+ parent_gid: z.ZodString;
31
+ num_subtasks: z.ZodNumber;
32
+ created_at: z.ZodString;
33
+ modified_at: z.ZodString;
34
+ permalink_url: z.ZodString;
35
+ resource_subtype: z.ZodString;
36
+ }, z.core.$strip>;
37
+ export interface RawTask {
38
+ gid?: string;
39
+ name?: string | null;
40
+ completed?: boolean | null;
41
+ assignee?: {
42
+ gid?: string;
43
+ name?: string;
44
+ } | null;
45
+ due_on?: string | null;
46
+ due_at?: string | null;
47
+ start_on?: string | null;
48
+ notes?: string | null;
49
+ html_notes?: string | null;
50
+ projects?: Array<{
51
+ gid?: string;
52
+ name?: string;
53
+ }> | null;
54
+ tags?: Array<{
55
+ gid?: string;
56
+ name?: string;
57
+ }> | null;
58
+ parent?: {
59
+ gid?: string;
60
+ } | null;
61
+ num_subtasks?: number | null;
62
+ created_at?: string | null;
63
+ modified_at?: string | null;
64
+ permalink_url?: string | null;
65
+ resource_subtype?: string | null;
66
+ }
67
+ export declare const mapTask: (t: RawTask | undefined) => z.infer<typeof taskSchema>;
68
+ export declare const projectSchema: z.ZodObject<{
69
+ gid: z.ZodString;
70
+ name: z.ZodString;
71
+ archived: z.ZodBoolean;
72
+ color: z.ZodString;
73
+ notes: z.ZodString;
74
+ owner_gid: z.ZodString;
75
+ owner_name: z.ZodString;
76
+ team_gid: z.ZodString;
77
+ team_name: z.ZodString;
78
+ created_at: z.ZodString;
79
+ modified_at: z.ZodString;
80
+ due_on: z.ZodString;
81
+ start_on: z.ZodString;
82
+ permalink_url: z.ZodString;
83
+ public: z.ZodBoolean;
84
+ }, z.core.$strip>;
85
+ export interface RawProject {
86
+ gid?: string;
87
+ name?: string | null;
88
+ archived?: boolean | null;
89
+ color?: string | null;
90
+ notes?: string | null;
91
+ owner?: {
92
+ gid?: string;
93
+ name?: string;
94
+ } | null;
95
+ team?: {
96
+ gid?: string;
97
+ name?: string;
98
+ } | null;
99
+ created_at?: string | null;
100
+ modified_at?: string | null;
101
+ due_on?: string | null;
102
+ start_on?: string | null;
103
+ permalink_url?: string | null;
104
+ public?: boolean | null;
105
+ }
106
+ export declare const mapProject: (p: RawProject | undefined) => z.infer<typeof projectSchema>;
107
+ export declare const sectionSchema: z.ZodObject<{
108
+ gid: z.ZodString;
109
+ name: z.ZodString;
110
+ created_at: z.ZodString;
111
+ project_gid: z.ZodString;
112
+ }, z.core.$strip>;
113
+ export interface RawSection {
114
+ gid?: string;
115
+ name?: string | null;
116
+ created_at?: string | null;
117
+ project?: {
118
+ gid?: string;
119
+ } | null;
120
+ }
121
+ export declare const mapSection: (s: RawSection | undefined) => z.infer<typeof sectionSchema>;
122
+ export declare const storySchema: z.ZodObject<{
123
+ gid: z.ZodString;
124
+ text: z.ZodString;
125
+ created_by_gid: z.ZodString;
126
+ created_by_name: z.ZodString;
127
+ created_at: z.ZodString;
128
+ resource_subtype: z.ZodString;
129
+ type: z.ZodString;
130
+ }, z.core.$strip>;
131
+ export interface RawStory {
132
+ gid?: string;
133
+ text?: string | null;
134
+ created_by?: {
135
+ gid?: string;
136
+ name?: string;
137
+ } | null;
138
+ created_at?: string | null;
139
+ resource_subtype?: string | null;
140
+ type?: string | null;
141
+ }
142
+ export declare const mapStory: (s: RawStory | undefined) => z.infer<typeof storySchema>;
143
+ export declare const userSchema: z.ZodObject<{
144
+ gid: z.ZodString;
145
+ name: z.ZodString;
146
+ email: z.ZodString;
147
+ }, z.core.$strip>;
148
+ export interface RawUser {
149
+ gid?: string;
150
+ name?: string | null;
151
+ email?: string | null;
152
+ }
153
+ export declare const mapUser: (u: RawUser | undefined) => z.infer<typeof userSchema>;
154
+ export declare const workspaceSchema: z.ZodObject<{
155
+ gid: z.ZodString;
156
+ name: z.ZodString;
157
+ }, z.core.$strip>;
158
+ export interface RawWorkspace {
159
+ gid?: string;
160
+ name?: string | null;
161
+ }
162
+ export declare const mapWorkspace: (w: RawWorkspace | undefined) => z.infer<typeof workspaceSchema>;
163
+ export declare const tagSchema: z.ZodObject<{
164
+ gid: z.ZodString;
165
+ name: z.ZodString;
166
+ color: z.ZodString;
167
+ }, z.core.$strip>;
168
+ export interface RawTag {
169
+ gid?: string;
170
+ name?: string | null;
171
+ color?: string | null;
172
+ }
173
+ export declare const mapTag: (t: RawTag | undefined) => z.infer<typeof tagSchema>;
174
+ export declare const teamSchema: z.ZodObject<{
175
+ gid: z.ZodString;
176
+ name: z.ZodString;
177
+ description: z.ZodString;
178
+ }, z.core.$strip>;
179
+ export interface RawTeam {
180
+ gid?: string;
181
+ name?: string | null;
182
+ description?: string | null;
183
+ }
184
+ export declare const mapTeam: (t: RawTeam | undefined) => z.infer<typeof teamSchema>;
185
+ export declare const TASK_OPT_FIELDS: string;
186
+ export declare const PROJECT_OPT_FIELDS: string;
187
+ export declare const SECTION_OPT_FIELDS: string;
188
+ export declare const STORY_OPT_FIELDS: string;
189
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}