huly-mcp-selfhost 2.1.0 → 3.2.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 (200) hide show
  1. package/.env.example +39 -2
  2. package/README.md +462 -16
  3. package/dist/connection.d.ts +8 -0
  4. package/dist/connection.js +13 -1
  5. package/dist/connection.js.map +1 -1
  6. package/dist/env.d.ts +1 -0
  7. package/dist/env.js +17 -0
  8. package/dist/env.js.map +1 -0
  9. package/dist/guard.d.ts +28 -0
  10. package/dist/guard.js +152 -0
  11. package/dist/guard.js.map +1 -0
  12. package/dist/guides/costs.md +48 -0
  13. package/dist/guides/features.md +49 -0
  14. package/dist/guides/onboarding.md +56 -0
  15. package/dist/guides/workflow.md +57 -0
  16. package/dist/index.js +18 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/junit-cli.d.ts +8 -0
  19. package/dist/junit-cli.js +106 -0
  20. package/dist/junit-cli.js.map +1 -0
  21. package/dist/registry.d.ts +18 -0
  22. package/dist/registry.js +318 -0
  23. package/dist/registry.js.map +1 -0
  24. package/dist/resources.d.ts +12 -0
  25. package/dist/resources.js +212 -0
  26. package/dist/resources.js.map +1 -0
  27. package/dist/schemas.d.ts +1269 -17
  28. package/dist/schemas.js +890 -97
  29. package/dist/schemas.js.map +1 -1
  30. package/dist/server.d.ts +27 -1
  31. package/dist/server.js +197 -128
  32. package/dist/server.js.map +1 -1
  33. package/dist/tools/activity.d.ts +10 -0
  34. package/dist/tools/activity.js +62 -0
  35. package/dist/tools/activity.js.map +1 -0
  36. package/dist/tools/agent.d.ts +156 -0
  37. package/dist/tools/agent.js +523 -0
  38. package/dist/tools/agent.js.map +1 -0
  39. package/dist/tools/attachments.d.ts +4 -4
  40. package/dist/tools/calendar.d.ts +49 -0
  41. package/dist/tools/calendar.js +116 -0
  42. package/dist/tools/calendar.js.map +1 -0
  43. package/dist/tools/cards.d.ts +87 -0
  44. package/dist/tools/cards.js +246 -0
  45. package/dist/tools/cards.js.map +1 -0
  46. package/dist/tools/channels.d.ts +76 -7
  47. package/dist/tools/channels.js +86 -5
  48. package/dist/tools/channels.js.map +1 -1
  49. package/dist/tools/comments.d.ts +16 -4
  50. package/dist/tools/comments.js +26 -9
  51. package/dist/tools/comments.js.map +1 -1
  52. package/dist/tools/components.d.ts +5 -5
  53. package/dist/tools/components.js +4 -22
  54. package/dist/tools/components.js.map +1 -1
  55. package/dist/tools/contacts.d.ts +69 -0
  56. package/dist/tools/contacts.js +130 -0
  57. package/dist/tools/contacts.js.map +1 -0
  58. package/dist/tools/crm.d.ts +61 -0
  59. package/dist/tools/crm.js +117 -0
  60. package/dist/tools/crm.js.map +1 -0
  61. package/dist/tools/documents.d.ts +35 -12
  62. package/dist/tools/documents.js +107 -22
  63. package/dist/tools/documents.js.map +1 -1
  64. package/dist/tools/drive.d.ts +107 -0
  65. package/dist/tools/drive.js +277 -0
  66. package/dist/tools/drive.js.map +1 -0
  67. package/dist/tools/fields.d.ts +33 -0
  68. package/dist/tools/fields.js +124 -0
  69. package/dist/tools/fields.js.map +1 -0
  70. package/dist/tools/generic.d.ts +72 -0
  71. package/dist/tools/generic.js +242 -0
  72. package/dist/tools/generic.js.map +1 -0
  73. package/dist/tools/github.d.ts +21 -0
  74. package/dist/tools/github.js +80 -0
  75. package/dist/tools/github.js.map +1 -0
  76. package/dist/tools/hr.d.ts +97 -0
  77. package/dist/tools/hr.js +150 -0
  78. package/dist/tools/hr.js.map +1 -0
  79. package/dist/tools/inbox.d.ts +23 -0
  80. package/dist/tools/inbox.js +76 -0
  81. package/dist/tools/inbox.js.map +1 -0
  82. package/dist/tools/inventory.d.ts +61 -0
  83. package/dist/tools/inventory.js +103 -0
  84. package/dist/tools/inventory.js.map +1 -0
  85. package/dist/tools/issues.d.ts +63 -12
  86. package/dist/tools/issues.js +259 -48
  87. package/dist/tools/issues.js.map +1 -1
  88. package/dist/tools/labels.d.ts +52 -4
  89. package/dist/tools/labels.js +86 -4
  90. package/dist/tools/labels.js.map +1 -1
  91. package/dist/tools/log-time.d.ts +15 -1
  92. package/dist/tools/log-time.js +70 -6
  93. package/dist/tools/log-time.js.map +1 -1
  94. package/dist/tools/meetings.d.ts +30 -0
  95. package/dist/tools/meetings.js +78 -0
  96. package/dist/tools/meetings.js.map +1 -0
  97. package/dist/tools/members.d.ts +1 -1
  98. package/dist/tools/members.js +17 -1
  99. package/dist/tools/members.js.map +1 -1
  100. package/dist/tools/message-templates.d.ts +54 -0
  101. package/dist/tools/message-templates.js +88 -0
  102. package/dist/tools/message-templates.js.map +1 -0
  103. package/dist/tools/milestones.d.ts +9 -9
  104. package/dist/tools/organizations.d.ts +5 -5
  105. package/dist/tools/organizations.js +2 -1
  106. package/dist/tools/organizations.js.map +1 -1
  107. package/dist/tools/overview.d.ts +55 -0
  108. package/dist/tools/overview.js +395 -0
  109. package/dist/tools/overview.js.map +1 -0
  110. package/dist/tools/planner.d.ts +60 -0
  111. package/dist/tools/planner.js +145 -0
  112. package/dist/tools/planner.js.map +1 -0
  113. package/dist/tools/process.d.ts +50 -0
  114. package/dist/tools/process.js +137 -0
  115. package/dist/tools/process.js.map +1 -0
  116. package/dist/tools/products.d.ts +17 -0
  117. package/dist/tools/products.js +45 -0
  118. package/dist/tools/products.js.map +1 -0
  119. package/dist/tools/projects.d.ts +17 -4
  120. package/dist/tools/projects.js +31 -2
  121. package/dist/tools/projects.js.map +1 -1
  122. package/dist/tools/qms.d.ts +57 -0
  123. package/dist/tools/qms.js +171 -0
  124. package/dist/tools/qms.js.map +1 -0
  125. package/dist/tools/recruiting.d.ts +112 -0
  126. package/dist/tools/recruiting.js +203 -0
  127. package/dist/tools/recruiting.js.map +1 -0
  128. package/dist/tools/relations.d.ts +45 -3
  129. package/dist/tools/relations.js +128 -39
  130. package/dist/tools/relations.js.map +1 -1
  131. package/dist/tools/search.d.ts +14 -1
  132. package/dist/tools/search.js +29 -1
  133. package/dist/tools/search.js.map +1 -1
  134. package/dist/tools/sharing.d.ts +62 -0
  135. package/dist/tools/sharing.js +149 -0
  136. package/dist/tools/sharing.js.map +1 -0
  137. package/dist/tools/statuses.d.ts +3 -3
  138. package/dist/tools/surveys.d.ts +22 -0
  139. package/dist/tools/surveys.js +53 -0
  140. package/dist/tools/surveys.js.map +1 -0
  141. package/dist/tools/templates.d.ts +95 -0
  142. package/dist/tools/templates.js +260 -0
  143. package/dist/tools/templates.js.map +1 -0
  144. package/dist/tools/test-automation.d.ts +81 -0
  145. package/dist/tools/test-automation.js +225 -0
  146. package/dist/tools/test-automation.js.map +1 -0
  147. package/dist/tools/testing.d.ts +234 -0
  148. package/dist/tools/testing.js +401 -0
  149. package/dist/tools/testing.js.map +1 -0
  150. package/dist/tools/workspace-admin.d.ts +55 -0
  151. package/dist/tools/workspace-admin.js +117 -0
  152. package/dist/tools/workspace-admin.js.map +1 -0
  153. package/dist/tools/workspaces.d.ts +1 -1
  154. package/dist/utils/attributes.d.ts +37 -0
  155. package/dist/utils/attributes.js +188 -0
  156. package/dist/utils/attributes.js.map +1 -0
  157. package/dist/utils/classes.d.ts +51 -0
  158. package/dist/utils/classes.js +73 -0
  159. package/dist/utils/classes.js.map +1 -0
  160. package/dist/utils/content.d.ts +11 -0
  161. package/dist/utils/content.js +86 -0
  162. package/dist/utils/content.js.map +1 -0
  163. package/dist/utils/errors.js +1 -1
  164. package/dist/utils/errors.js.map +1 -1
  165. package/dist/utils/files.d.ts +5 -0
  166. package/dist/utils/files.js +50 -0
  167. package/dist/utils/files.js.map +1 -0
  168. package/dist/utils/format.d.ts +2 -0
  169. package/dist/utils/format.js +7 -13
  170. package/dist/utils/format.js.map +1 -1
  171. package/dist/utils/junit.d.ts +13 -0
  172. package/dist/utils/junit.js +81 -0
  173. package/dist/utils/junit.js.map +1 -0
  174. package/dist/utils/markdown.js +9 -4
  175. package/dist/utils/markdown.js.map +1 -1
  176. package/dist/utils/meeting.d.ts +13 -0
  177. package/dist/utils/meeting.js +118 -0
  178. package/dist/utils/meeting.js.map +1 -0
  179. package/dist/utils/people.d.ts +25 -0
  180. package/dist/utils/people.js +80 -0
  181. package/dist/utils/people.js.map +1 -0
  182. package/dist/utils/redact.d.ts +3 -0
  183. package/dist/utils/redact.js +26 -0
  184. package/dist/utils/redact.js.map +1 -0
  185. package/dist/utils/resolve.d.ts +17 -0
  186. package/dist/utils/resolve.js +54 -0
  187. package/dist/utils/resolve.js.map +1 -0
  188. package/dist/utils/spec.d.ts +10 -0
  189. package/dist/utils/spec.js +90 -0
  190. package/dist/utils/spec.js.map +1 -0
  191. package/dist/utils/storage.js +7 -3
  192. package/dist/utils/storage.js.map +1 -1
  193. package/dist/utils/tasks.d.ts +22 -0
  194. package/dist/utils/tasks.js +81 -0
  195. package/dist/utils/tasks.js.map +1 -0
  196. package/dist/watch.d.ts +62 -0
  197. package/dist/watch.js +405 -0
  198. package/dist/watch.js.map +1 -0
  199. package/package.json +4 -3
  200. package/scripts/setup.js +3 -1
package/dist/schemas.js CHANGED
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ListOrganizationsSchema = exports.CreateIssueStatusSchema = exports.ListIssueStatusesSchema = exports.DeleteAttachmentSchema = exports.ListAttachmentsSchema = exports.AttachFileSchema = exports.ListMessagesSchema = exports.SendMessageSchema = exports.StartDirectMessageSchema = exports.CreateChannelSchema = exports.ListChannelsSchema = exports.LinkDocumentSchema = exports.DeleteCommentSchema = exports.UpdateDocumentSchema = exports.LogTimeSchema = exports.ListCommentsSchema = exports.SetParentSchema = exports.AddBlockedBySchema = exports.AddRelationSchema = exports.RemoveLabelSchema = exports.AddLabelSchema = exports.CreateLabelSchema = exports.ListLabelsSchema = exports.SearchIssuesSchema = exports.CreateDocumentSchema = exports.GetDocumentSchema = exports.ListDocumentsSchema = exports.CreateTeamspaceSchema = exports.DeleteDocumentSchema = exports.CreateProjectSchema = exports.DeleteComponentSchema = exports.UpdateComponentSchema = exports.CreateComponentSchema = exports.ListComponentsSchema = exports.DeleteMilestoneSchema = exports.UpdateMilestoneSchema = exports.GetMilestoneSchema = exports.CreateMilestoneSchema = exports.ListMilestonesSchema = exports.AddCommentSchema = exports.UpdateIssueSchema = exports.DeleteIssueSchema = exports.CreateIssueSchema = exports.GetIssueSchema = exports.ListIssuesSchema = exports.GetProjectSchema = exports.ListTeamspacesSchema = exports.ListMembersSchema = exports.ListProjectsSchema = exports.ListWorkspacesSchema = void 0;
4
- exports.UpdateOrganizationSchema = exports.CreateOrganizationSchema = exports.GetOrganizationSchema = void 0;
3
+ exports.DeleteAttachmentSchema = exports.ListAttachmentsSchema = exports.AttachFileSchema = exports.ListMessagesSchema = exports.SendMessageSchema = exports.StartDirectMessageSchema = exports.CreateChannelSchema = exports.ListChannelsSchema = exports.LinkDocumentSchema = exports.DeleteCommentSchema = exports.AddDocumentCommentSchema = exports.ListDocumentCommentsSchema = exports.UpdateDocumentSchema = exports.LogTimeSchema = exports.ListCommentsSchema = exports.SetParentSchema = exports.AddBlockedBySchema = exports.AddRelationSchema = exports.RemoveLabelSchema = exports.AddLabelSchema = exports.CreateLabelSchema = exports.ListLabelsSchema = exports.SearchAllSchema = exports.SearchIssuesSchema = exports.CreateDocumentSchema = exports.GetDocumentSchema = exports.ListDocumentsSchema = exports.CreateTeamspaceSchema = exports.DeleteDocumentSchema = exports.CreateProjectSchema = exports.DeleteComponentSchema = exports.UpdateComponentSchema = exports.CreateComponentSchema = exports.ListComponentsSchema = exports.DeleteMilestoneSchema = exports.UpdateMilestoneSchema = exports.GetMilestoneSchema = exports.CreateMilestoneSchema = exports.ListMilestonesSchema = exports.AddCommentSchema = exports.UpdateIssueSchema = exports.DeleteIssueSchema = exports.CreateIssueSchema = exports.GetIssueSchema = exports.ListIssuesSchema = exports.GetProjectSchema = exports.ListTeamspacesSchema = exports.ListMembersSchema = exports.ListProjectsSchema = exports.ListWorkspacesSchema = void 0;
4
+ exports.StartWorkSchema = exports.GetIssueContextSchema = exports.GenericDeleteSchema = exports.GenericUpdateSchema = exports.GenericCreateSchema = exports.QueryDocumentsSchema = exports.DescribeClassSchema = exports.ListClassesSchema = exports.ContactChannelSchema = exports.UpdatePersonSchema = exports.CreatePersonSchema = exports.GetPersonSchema = exports.ListPersonsSchema = exports.GetPullRequestSchema = exports.ListPullRequestsSchema = exports.PinMessageSchema = exports.ReactionSchema = exports.DeleteMessageSchema = exports.UpdateMessageSchema = exports.ReplyToMessageSchema = exports.ListThreadSchema = exports.DeleteEventSchema = exports.UpdateEventSchema = exports.CreateEventSchema = exports.ListEventsSchema = exports.ScheduleTodoSchema = exports.DeleteTodoSchema = exports.UpdateTodoSchema = exports.CreateTodoSchema = exports.ListTodosSchema = exports.GetActivitySchema = exports.MarkNotificationsReadSchema = exports.ListNotificationsSchema = exports.RepairParentLinksSchema = exports.ListTimeReportsSchema = exports.UpdateProjectSchema = exports.DeleteLabelSchema = exports.UpdateLabelSchema = exports.UpdateCommentSchema = exports.RemoveBlockedBySchema = exports.RemoveRelationSchema = exports.ListSubIssuesSchema = exports.MoveIssueSchema = exports.BulkUpdateIssuesSchema = exports.UpdateOrganizationSchema = exports.CreateOrganizationSchema = exports.GetOrganizationSchema = exports.ListOrganizationsSchema = exports.CreateIssueStatusSchema = exports.ListIssueStatusesSchema = void 0;
5
+ exports.CreateTestSuiteSchema = exports.ListTestCasesSchema = exports.CreateTestProjectSchema = exports.ListTestProjectsSchema = exports.CreateIssueFromTemplateSchema = exports.DeleteIssueTemplateSchema = exports.UpdateIssueTemplateSchema = exports.CreateIssueTemplateSchema = exports.GetIssueTemplateSchema = exports.ListIssueTemplatesSchema = exports.RestoreFileVersionSchema = exports.ListFileVersionsSchema = exports.DeleteDriveItemSchema = exports.UpdateDriveItemSchema = exports.DownloadFileSchema = exports.UploadFileSchema = exports.CreateFolderSchema = exports.ListDriveFilesSchema = exports.CreateDriveSchema = exports.ListDrivesSchema = exports.SetCustomFieldsSchema = exports.CreateCustomFieldSchema = exports.ListCustomFieldsSchema = exports.DeleteCardTypeSchema = exports.CreateCardTypeSchema = exports.DeleteCardSchema = exports.UpdateCardSchema = exports.CreateCardSchema = exports.GetCardSchema = exports.ListCardsSchema = exports.ListCardTypesSchema = exports.RevokePublicLinkSchema = exports.ListPublicLinksSchema = exports.CreatePublicLinkSchema = exports.RemoveCollaboratorSchema = exports.AddCollaboratorSchema = exports.ListCollaboratorsSchema = exports.FindProjectForRepoSchema = exports.ReleaseIssueSchema = exports.ClaimIssueSchema = exports.ChangesSinceSchema = exports.ProjectReportSchema = exports.StandupSchema = exports.ReleaseNotesSchema = exports.TriageInboxSchema = exports.MyDaySchema = exports.IssuesFromMeetingSchema = exports.IssuesFromDocumentSchema = exports.CreateIssueTreeSchema = exports.FinishWorkSchema = void 0;
6
+ exports.DeleteTimeOffSchema = exports.CreateTimeOffSchema = exports.ListTimeOffSchema = exports.SetDepartmentSchema = exports.DeleteDepartmentSchema = exports.CreateDepartmentSchema = exports.ListDepartmentsSchema = exports.DeleteLeadSchema = exports.UpdateLeadSchema = exports.CreateLeadSchema = exports.ListCustomersSchema = exports.ListLeadsSchema = exports.DeleteApplicationSchema = exports.UpdateApplicationSchema = exports.CreateApplicationSchema = exports.ListApplicationsSchema = exports.CreateCandidateSchema = exports.ListCandidatesSchema = exports.UpdateVacancySchema = exports.CreateVacancySchema = exports.ListVacanciesSchema = exports.ListProjectTypesSchema = exports.GetWorkspaceSettingsSchema = exports.SetMemberRoleSchema = exports.SendInviteSchema = exports.CreateInviteLinkSchema = exports.SetLabelCategorySchema = exports.CreateLabelCategorySchema = exports.ListLabelCategoriesSchema = exports.GetProductSchema = exports.ListProductsSchema = exports.CreateTestCasesSchema = exports.CreateIssueFromTestResultSchema = exports.GetTestReportSchema = exports.ImportTestResultsSchema = exports.DeleteTestPlanSchema = exports.DeleteTestRunSchema = exports.UpdateTestRunSchema = exports.DeleteTestSuiteSchema = exports.UpdateTestSuiteSchema = exports.SetTestResultSchema = exports.GetTestRunSchema = exports.ListTestRunsSchema = exports.CreateTestRunSchema = exports.CreateTestPlanSchema = exports.ListTestPlansSchema = exports.DeleteTestCaseSchema = exports.UpdateTestCaseSchema = exports.CreateTestCaseSchema = exports.GetTestCaseSchema = void 0;
7
+ exports.GetSurveySchema = exports.ListSurveysSchema = exports.CancelExecutionSchema = exports.StartProcessSchema = exports.ListExecutionsSchema = exports.ListProcessesSchema = exports.GetTrainingSchema = exports.ListTrainingsSchema = exports.GetControlledDocumentSchema = exports.ListControlledDocumentsSchema = exports.GetMeetingSchema = exports.ListMeetingsSchema = exports.DeleteMessageTemplateSchema = exports.UpdateMessageTemplateSchema = exports.CreateMessageTemplateSchema = exports.GetMessageTemplateSchema = exports.ListMessageTemplatesSchema = exports.DeleteInventoryItemSchema = exports.UpdateInventoryItemSchema = exports.CreateInventoryProductSchema = exports.CreateInventoryCategorySchema = exports.ListInventorySchema = void 0;
5
8
  const zod_1 = require("zod");
6
9
  // Every tool names its workspace. Entity IDs (issue identifiers, document IDs, …)
7
10
  // are only unique within a workspace, so the workspace is part of their identity.
8
11
  // Mutations always require it; reads may omit it only when exactly one
9
12
  // workspace is available.
10
- const WorkspaceArg = zod_1.z.string().min(1).describe('Target workspace (slug, name or ID from list_workspaces). Required for every change.');
11
- const ReadWorkspaceArg = zod_1.z.string().min(1).optional().describe('Workspace (slug, name or ID from list_workspaces). May be omitted only if exactly one workspace is available.');
13
+ const WorkspaceArg = zod_1.z.string().min(1);
14
+ const ReadWorkspaceArg = zod_1.z.string().min(1).optional();
12
15
  const PriorityEnum = zod_1.z.enum(['NoPriority', 'Urgent', 'High', 'Medium', 'Low']);
13
16
  exports.ListWorkspacesSchema = zod_1.z.object({});
14
17
  exports.ListProjectsSchema = zod_1.z.object({
@@ -22,27 +25,36 @@ exports.ListTeamspacesSchema = zod_1.z.object({
22
25
  });
23
26
  exports.GetProjectSchema = zod_1.z.object({
24
27
  workspace: ReadWorkspaceArg,
25
- identifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"')
28
+ identifier: zod_1.z.string().describe('Project key')
26
29
  });
27
30
  exports.ListIssuesSchema = zod_1.z.object({
28
31
  workspace: ReadWorkspaceArg,
29
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
30
- status: zod_1.z.string().optional().describe('Filter by status name, e.g. "In Progress"'),
32
+ projectIdentifier: zod_1.z.string().describe('Project key'),
33
+ status: zod_1.z.string().optional().describe('Status name, "open" (default) or "all"'),
31
34
  priority: PriorityEnum.optional().describe('Filter by priority'),
32
- limit: zod_1.z.number().int().min(1).max(250).default(50).describe('Max issues to return')
35
+ milestoneLabel: zod_1.z.string().min(1).nullable().optional().describe('Milestone name; null = none'),
36
+ componentLabel: zod_1.z.string().min(1).nullable().optional().describe('Component name; null = none'),
37
+ labelName: zod_1.z.string().min(1).optional().describe('Filter by label name'),
38
+ assignee: zod_1.z.string().min(1).nullable().optional().describe('Person name; null = unassigned'),
39
+ parentIdentifier: zod_1.z.string().min(1).nullable().optional().describe('Direct sub-issues of this issue; null = top-level only'),
40
+ limit: zod_1.z.number().int().min(1).max(250).default(50),
41
+ offset: zod_1.z.number().int().min(0).optional()
33
42
  });
34
43
  exports.GetIssueSchema = zod_1.z.object({
35
44
  workspace: ReadWorkspaceArg,
36
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"')
45
+ identifier: zod_1.z.string().describe('Issue id')
37
46
  });
38
47
  exports.CreateIssueSchema = zod_1.z.object({
39
48
  workspace: WorkspaceArg,
40
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
49
+ projectIdentifier: zod_1.z.string().describe('Project key'),
41
50
  title: zod_1.z.string().min(1).describe('Issue title'),
42
51
  description: zod_1.z.string().optional().describe('Issue description as Markdown (headings, bold, code, lists, tables, mermaid supported)'),
43
52
  priority: PriorityEnum.default('NoPriority').describe('Issue priority'),
44
- statusName: zod_1.z.string().optional().describe('Status name (defaults to project default)'),
45
- dueDate: zod_1.z.string().optional().describe('Due date as ISO 8601 string, e.g. "2026-04-01"')
53
+ statusName: zod_1.z.string().optional().describe('Default: project default'),
54
+ dueDate: zod_1.z.string().optional().describe('Due date as ISO 8601 string, e.g. "2026-04-01"'),
55
+ assignee: zod_1.z.string().optional(),
56
+ componentLabel: zod_1.z.string().optional(),
57
+ milestoneLabel: zod_1.z.string().optional()
46
58
  });
47
59
  exports.DeleteIssueSchema = zod_1.z.object({
48
60
  workspace: WorkspaceArg,
@@ -50,83 +62,83 @@ exports.DeleteIssueSchema = zod_1.z.object({
50
62
  });
51
63
  exports.UpdateIssueSchema = zod_1.z.object({
52
64
  workspace: WorkspaceArg,
53
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
54
- title: zod_1.z.string().optional().describe('New title'),
55
- description: zod_1.z.string().optional().describe('New description as Markdown (replaces existing content)'),
56
- statusName: zod_1.z.string().optional().describe('New status name'),
57
- priority: PriorityEnum.optional().describe('New priority'),
58
- dueDate: zod_1.z.string().nullable().optional().describe('New due date (ISO 8601) or null to clear'),
59
- assignee: zod_1.z.string().nullable().optional().describe('Assignee name (first/last/full) or null to unassign'),
60
- componentLabel: zod_1.z.string().optional().describe('Component name to assign, or null to unassign'),
61
- milestoneLabel: zod_1.z.string().nullable().optional().describe('Milestone name to assign, or null to clear')
65
+ identifier: zod_1.z.string().describe('Issue id'),
66
+ title: zod_1.z.string().optional(),
67
+ description: zod_1.z.string().optional().describe('Markdown, replaces existing'),
68
+ statusName: zod_1.z.string().optional(),
69
+ priority: PriorityEnum.optional(),
70
+ dueDate: zod_1.z.string().nullable().optional().describe('null clears'),
71
+ assignee: zod_1.z.string().nullable().optional().describe('Person name; null clears'),
72
+ componentLabel: zod_1.z.string().nullable().optional().describe('Component name; null clears'),
73
+ milestoneLabel: zod_1.z.string().nullable().optional().describe('Milestone name; null clears')
62
74
  });
63
75
  exports.AddCommentSchema = zod_1.z.object({
64
76
  workspace: WorkspaceArg,
65
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
66
- message: zod_1.z.string().min(1).describe('Comment text')
77
+ identifier: zod_1.z.string().describe('Issue id'),
78
+ message: zod_1.z.string().min(1)
67
79
  });
68
80
  exports.ListMilestonesSchema = zod_1.z.object({
69
81
  workspace: ReadWorkspaceArg,
70
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"')
82
+ projectIdentifier: zod_1.z.string().describe('Project key')
71
83
  });
72
84
  const MilestoneStatusEnum = zod_1.z.enum(['Planned', 'InProgress', 'Completed', 'Canceled']);
73
85
  exports.CreateMilestoneSchema = zod_1.z.object({
74
86
  workspace: WorkspaceArg,
75
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
76
- label: zod_1.z.string().min(1).describe('Milestone name'),
77
- targetDate: zod_1.z.string().describe('Target date as ISO 8601 string, e.g. "2026-06-01"'),
78
- status: MilestoneStatusEnum.default('Planned').describe('Milestone status')
87
+ projectIdentifier: zod_1.z.string().describe('Project key'),
88
+ label: zod_1.z.string().min(1),
89
+ targetDate: zod_1.z.string().describe('ISO date'),
90
+ status: MilestoneStatusEnum.default('Planned')
79
91
  });
80
92
  exports.GetMilestoneSchema = zod_1.z.object({
81
93
  workspace: ReadWorkspaceArg,
82
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
83
- label: zod_1.z.string().min(1).describe('Milestone name')
94
+ projectIdentifier: zod_1.z.string().describe('Project key'),
95
+ label: zod_1.z.string().min(1)
84
96
  });
85
97
  exports.UpdateMilestoneSchema = zod_1.z.object({
86
98
  workspace: WorkspaceArg,
87
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
88
- label: zod_1.z.string().min(1).describe('Current milestone name'),
89
- newLabel: zod_1.z.string().min(1).optional().describe('New milestone name'),
90
- targetDate: zod_1.z.string().optional().describe('New target date as ISO 8601 string, e.g. "2026-06-01"'),
91
- status: MilestoneStatusEnum.optional().describe('New milestone status'),
92
- description: zod_1.z.string().nullable().optional().describe('New description as Markdown, or null to clear')
99
+ projectIdentifier: zod_1.z.string().describe('Project key'),
100
+ label: zod_1.z.string().min(1),
101
+ newLabel: zod_1.z.string().min(1).optional(),
102
+ targetDate: zod_1.z.string().optional().describe('ISO date'),
103
+ status: MilestoneStatusEnum.optional(),
104
+ description: zod_1.z.string().nullable().optional().describe('Markdown; null clears')
93
105
  });
94
106
  exports.DeleteMilestoneSchema = zod_1.z.object({
95
107
  workspace: WorkspaceArg,
96
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
97
- label: zod_1.z.string().min(1).describe('Milestone name to delete'),
98
- moveIssuesTo: zod_1.z.string().min(1).optional().describe('Milestone name to move its issues to. If omitted, the issues keep existing but lose their milestone.')
108
+ projectIdentifier: zod_1.z.string().describe('Project key'),
109
+ label: zod_1.z.string().min(1),
110
+ moveIssuesTo: zod_1.z.string().min(1).optional().describe('Move its issues here; omitted = issues lose the milestone')
99
111
  });
100
112
  exports.ListComponentsSchema = zod_1.z.object({
101
113
  workspace: ReadWorkspaceArg,
102
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"')
114
+ projectIdentifier: zod_1.z.string().describe('Project key')
103
115
  });
104
116
  exports.CreateComponentSchema = zod_1.z.object({
105
117
  workspace: WorkspaceArg,
106
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
107
- label: zod_1.z.string().min(1).describe('Component name'),
108
- description: zod_1.z.string().optional().describe('Component description'),
109
- lead: zod_1.z.string().optional().describe('Lead member name (first/last/full)')
118
+ projectIdentifier: zod_1.z.string().describe('Project key'),
119
+ label: zod_1.z.string().min(1),
120
+ description: zod_1.z.string().optional(),
121
+ lead: zod_1.z.string().optional().describe('Person name')
110
122
  });
111
123
  exports.UpdateComponentSchema = zod_1.z.object({
112
124
  workspace: WorkspaceArg,
113
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
114
- label: zod_1.z.string().min(1).describe('Current component name'),
115
- newLabel: zod_1.z.string().min(1).optional().describe('New component name'),
116
- description: zod_1.z.string().nullable().optional().describe('New description as Markdown, or null to clear'),
117
- lead: zod_1.z.string().nullable().optional().describe('Lead member name (first/last/full), or null to clear')
125
+ projectIdentifier: zod_1.z.string().describe('Project key'),
126
+ label: zod_1.z.string().min(1),
127
+ newLabel: zod_1.z.string().min(1).optional(),
128
+ description: zod_1.z.string().nullable().optional().describe('Markdown; null clears'),
129
+ lead: zod_1.z.string().nullable().optional().describe('Person name; null clears')
118
130
  });
119
131
  exports.DeleteComponentSchema = zod_1.z.object({
120
132
  workspace: WorkspaceArg,
121
- projectIdentifier: zod_1.z.string().describe('Project identifier, e.g. "PROJ"'),
122
- label: zod_1.z.string().min(1).describe('Component name to delete'),
123
- moveIssuesTo: zod_1.z.string().min(1).optional().describe('Component name to move its issues to. If omitted, the issues keep existing but lose their component.')
133
+ projectIdentifier: zod_1.z.string().describe('Project key'),
134
+ label: zod_1.z.string().min(1),
135
+ moveIssuesTo: zod_1.z.string().min(1).optional().describe('Move its issues here; omitted = issues lose the component')
124
136
  });
125
137
  exports.CreateProjectSchema = zod_1.z.object({
126
138
  workspace: WorkspaceArg,
127
- name: zod_1.z.string().min(1).describe('Project name, e.g. "My Project"'),
128
- identifier: zod_1.z.string().min(1).max(5).regex(/^[A-Z]+$/).describe('Short ALL-CAPS identifier, e.g. "MYPROJ"'),
129
- description: zod_1.z.string().optional().describe('Project description')
139
+ name: zod_1.z.string().min(1).describe('Project name'),
140
+ identifier: zod_1.z.string().min(1).max(5).regex(/^[A-Z]+$/).describe('ALL-CAPS key, max 5 letters'),
141
+ description: zod_1.z.string().optional()
130
142
  });
131
143
  exports.DeleteDocumentSchema = zod_1.z.object({
132
144
  workspace: WorkspaceArg,
@@ -134,13 +146,13 @@ exports.DeleteDocumentSchema = zod_1.z.object({
134
146
  });
135
147
  exports.CreateTeamspaceSchema = zod_1.z.object({
136
148
  workspace: WorkspaceArg,
137
- name: zod_1.z.string().min(1).describe('Teamspace name'),
138
- description: zod_1.z.string().optional().describe('Optional description'),
139
- isPrivate: zod_1.z.boolean().default(false).describe('Whether the teamspace is private (default: false = visible to all members)')
149
+ name: zod_1.z.string().min(1),
150
+ description: zod_1.z.string().optional(),
151
+ isPrivate: zod_1.z.boolean().default(false).describe('Private teamspace')
140
152
  });
141
153
  exports.ListDocumentsSchema = zod_1.z.object({
142
154
  workspace: ReadWorkspaceArg,
143
- teamspaceId: zod_1.z.string().describe('Teamspace _id from list_teamspaces')
155
+ teamspaceId: zod_1.z.string().describe('Teamspace id')
144
156
  });
145
157
  exports.GetDocumentSchema = zod_1.z.object({
146
158
  workspace: ReadWorkspaceArg,
@@ -148,76 +160,96 @@ exports.GetDocumentSchema = zod_1.z.object({
148
160
  });
149
161
  exports.CreateDocumentSchema = zod_1.z.object({
150
162
  workspace: WorkspaceArg,
151
- teamspaceId: zod_1.z.string().describe('Teamspace _id from list_teamspaces'),
152
- title: zod_1.z.string().min(1).describe('Document title'),
153
- parentId: zod_1.z.string().optional().describe('Parent document _id (for nested docs); omit for top-level')
163
+ teamspaceId: zod_1.z.string().describe('Teamspace id'),
164
+ title: zod_1.z.string().min(1),
165
+ parentId: zod_1.z.string().optional().describe('Parent document id; omit for top-level')
154
166
  });
155
167
  exports.SearchIssuesSchema = zod_1.z.object({
156
168
  workspace: ReadWorkspaceArg,
157
- query: zod_1.z.string().min(1).describe('Search query'),
158
- limit: zod_1.z.number().int().min(1).max(50).default(20).describe('Max results')
169
+ query: zod_1.z.string().min(1),
170
+ limit: zod_1.z.number().int().min(1).max(50).default(20)
171
+ });
172
+ exports.SearchAllSchema = zod_1.z.object({
173
+ workspace: ReadWorkspaceArg,
174
+ query: zod_1.z.string().min(1),
175
+ kinds: zod_1.z.array(zod_1.z.string()).optional().describe('issue, document, message, card, file, person, organization, test-case, attachment or a class id'),
176
+ limit: zod_1.z.number().int().min(1).max(50).default(20)
159
177
  });
160
178
  // ── Labels ────────────────────────────────────────────────────────────────────
161
179
  exports.ListLabelsSchema = zod_1.z.object({
162
180
  workspace: ReadWorkspaceArg,
163
- projectIdentifier: zod_1.z.string().optional().describe('Optional project filter (currently returns all workspace labels)')
181
+ projectIdentifier: zod_1.z.string().optional().describe('Ignored (labels are workspace-wide)')
164
182
  });
165
183
  exports.CreateLabelSchema = zod_1.z.object({
166
184
  workspace: WorkspaceArg,
167
- title: zod_1.z.string().min(1).describe('Label name'),
168
- color: zod_1.z.string().optional().describe('Hex color, e.g. "#FF6B6B" (optional)')
185
+ title: zod_1.z.string().min(1),
186
+ color: zod_1.z.string().optional().describe('Hex color, e.g. #FF6B6B')
169
187
  });
170
188
  exports.AddLabelSchema = zod_1.z.object({
171
189
  workspace: WorkspaceArg,
172
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
190
+ identifier: zod_1.z.string().describe('Issue id'),
173
191
  labelName: zod_1.z.string().min(1).describe('Label name to add (auto-created if it does not exist)')
174
192
  });
175
193
  exports.RemoveLabelSchema = zod_1.z.object({
176
194
  workspace: WorkspaceArg,
177
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
178
- labelName: zod_1.z.string().min(1).describe('Label name to remove')
195
+ identifier: zod_1.z.string().describe('Issue id'),
196
+ labelName: zod_1.z.string().min(1)
179
197
  });
180
198
  // ── Relations ─────────────────────────────────────────────────────────────────
181
199
  exports.AddRelationSchema = zod_1.z.object({
182
200
  workspace: WorkspaceArg,
183
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
184
- relatedTo: zod_1.z.string().describe('Related issue identifier, e.g. "PROJ-456"')
201
+ identifier: zod_1.z.string().describe('Issue id'),
202
+ relatedTo: zod_1.z.string().describe('Related issue id')
185
203
  });
186
204
  exports.AddBlockedBySchema = zod_1.z.object({
187
205
  workspace: WorkspaceArg,
188
- identifier: zod_1.z.string().describe('Issue that is blocked, e.g. "PROJ-123"'),
206
+ identifier: zod_1.z.string().describe('Blocked issue id'),
189
207
  blockedBy: zod_1.z.string().describe('Issue that blocks it, e.g. "PROJ-100"')
190
208
  });
191
209
  exports.SetParentSchema = zod_1.z.object({
192
210
  workspace: WorkspaceArg,
193
211
  identifier: zod_1.z.string().describe('Child issue identifier, e.g. "PROJ-123"'),
194
- parentIdentifier: zod_1.z.string().nullable().optional().describe('Parent issue identifier, or null to clear parent')
212
+ parentIdentifier: zod_1.z.string().nullable().optional().describe('Parent issue id; null clears')
195
213
  });
196
214
  exports.ListCommentsSchema = zod_1.z.object({
197
215
  workspace: ReadWorkspaceArg,
198
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
199
- limit: zod_1.z.number().int().min(1).max(100).default(20).describe('Max comments to return')
216
+ identifier: zod_1.z.string().describe('Issue id'),
217
+ limit: zod_1.z.number().int().min(1).max(100).default(20).describe('Newest n'),
218
+ full: zod_1.z.boolean().optional().describe('Do not shorten long comments')
200
219
  });
201
220
  exports.LogTimeSchema = zod_1.z.object({
202
221
  workspace: WorkspaceArg,
203
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
222
+ identifier: zod_1.z.string().describe('Issue id'),
204
223
  hours: zod_1.z.number().positive().describe('Hours spent (e.g. 2.5)'),
205
- description: zod_1.z.string().optional().describe('What was done (optional note)')
224
+ description: zod_1.z.string().optional().describe('Note')
206
225
  });
207
226
  exports.UpdateDocumentSchema = zod_1.z.object({
208
227
  workspace: WorkspaceArg,
209
- documentId: zod_1.z.string().describe('Document _id from list_documents or create_document'),
210
- markdown: zod_1.z.string().min(1).describe('Markdown content to set as the document body')
228
+ documentId: zod_1.z.string().describe('Document id'),
229
+ markdown: zod_1.z.string().min(1).optional().describe('New body (replaces content)'),
230
+ title: zod_1.z.string().min(1).optional(),
231
+ parentId: zod_1.z.string().nullable().optional().describe('Move under this document; null = top level'),
232
+ teamspaceId: zod_1.z.string().optional().describe('Move to this teamspace')
233
+ });
234
+ exports.ListDocumentCommentsSchema = zod_1.z.object({
235
+ workspace: ReadWorkspaceArg,
236
+ documentId: zod_1.z.string(),
237
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
238
+ });
239
+ exports.AddDocumentCommentSchema = zod_1.z.object({
240
+ workspace: WorkspaceArg,
241
+ documentId: zod_1.z.string(),
242
+ message: zod_1.z.string().min(1)
211
243
  });
212
244
  exports.DeleteCommentSchema = zod_1.z.object({
213
245
  workspace: WorkspaceArg,
214
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
246
+ identifier: zod_1.z.string().describe('Issue id'),
215
247
  commentId: zod_1.z.string().describe('Comment _id from list_comments')
216
248
  });
217
249
  exports.LinkDocumentSchema = zod_1.z.object({
218
250
  workspace: WorkspaceArg,
219
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
220
- documentId: zod_1.z.string().describe('Document _id from list_documents or create_document')
251
+ identifier: zod_1.z.string().describe('Issue id'),
252
+ documentId: zod_1.z.string().describe('Document id')
221
253
  });
222
254
  // ── Chat (Channels & Direct Messages) ──────────────────────────────────────
223
255
  exports.ListChannelsSchema = zod_1.z.object({
@@ -226,23 +258,23 @@ exports.ListChannelsSchema = zod_1.z.object({
226
258
  });
227
259
  exports.CreateChannelSchema = zod_1.z.object({
228
260
  workspace: WorkspaceArg,
229
- name: zod_1.z.string().min(1).describe('Channel name'),
261
+ name: zod_1.z.string().min(1),
230
262
  topic: zod_1.z.string().optional().describe('Optional channel topic/description'),
231
- isPrivate: zod_1.z.boolean().default(false).describe('Whether the channel is private (invite-only)')
263
+ isPrivate: zod_1.z.boolean().default(false).describe('Invite-only')
232
264
  });
233
265
  exports.StartDirectMessageSchema = zod_1.z.object({
234
266
  workspace: WorkspaceArg,
235
- member: zod_1.z.string().min(1).describe('Name (first/last/full) of the workspace member to message')
267
+ member: zod_1.z.string().min(1).describe('Person name')
236
268
  });
237
269
  exports.SendMessageSchema = zod_1.z.object({
238
270
  workspace: WorkspaceArg,
239
271
  spaceId: zod_1.z.string().describe('Channel or direct-message _id, from list_channels/create_channel/start_direct_message'),
240
- message: zod_1.z.string().min(1).describe('Message text')
272
+ message: zod_1.z.string().min(1)
241
273
  });
242
274
  exports.ListMessagesSchema = zod_1.z.object({
243
275
  workspace: ReadWorkspaceArg,
244
276
  spaceId: zod_1.z.string().describe('Channel or direct-message _id'),
245
- limit: zod_1.z.number().int().min(1).max(200).default(50).describe('Max messages to return')
277
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
246
278
  });
247
279
  // ── Attachments ─────────────────────────────────────────────────────────────
248
280
  exports.AttachFileSchema = zod_1.z.object({
@@ -254,11 +286,11 @@ exports.AttachFileSchema = zod_1.z.object({
254
286
  });
255
287
  exports.ListAttachmentsSchema = zod_1.z.object({
256
288
  workspace: ReadWorkspaceArg,
257
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"')
289
+ identifier: zod_1.z.string().describe('Issue id')
258
290
  });
259
291
  exports.DeleteAttachmentSchema = zod_1.z.object({
260
292
  workspace: WorkspaceArg,
261
- identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
293
+ identifier: zod_1.z.string().describe('Issue id'),
262
294
  attachmentId: zod_1.z.string().describe('Attachment _id from list_attachments')
263
295
  });
264
296
  // ── Issue Statuses (custom workflow states) ────────────────────────────────
@@ -268,9 +300,9 @@ exports.ListIssueStatusesSchema = zod_1.z.object({
268
300
  });
269
301
  exports.CreateIssueStatusSchema = zod_1.z.object({
270
302
  workspace: WorkspaceArg,
271
- name: zod_1.z.string().min(1).describe('Status name, e.g. "Waiting for review"'),
272
- category: StatusCategoryEnum.describe('Which phase this status belongs to (determines grouping/color in the UI)'),
273
- color: zod_1.z.string().optional().describe('Hex color, e.g. "#FF6B6B" (optional)')
303
+ name: zod_1.z.string().min(1).describe('Status name'),
304
+ category: StatusCategoryEnum.describe('Status phase'),
305
+ color: zod_1.z.string().optional().describe('Hex color, e.g. #FF6B6B')
274
306
  });
275
307
  // ── Organizations (contacts/CRM) ────────────────────────────────────────────
276
308
  exports.ListOrganizationsSchema = zod_1.z.object({
@@ -278,16 +310,777 @@ exports.ListOrganizationsSchema = zod_1.z.object({
278
310
  });
279
311
  exports.GetOrganizationSchema = zod_1.z.object({
280
312
  workspace: ReadWorkspaceArg,
281
- organizationId: zod_1.z.string().describe('Organization _id from list_organizations')
313
+ organizationId: zod_1.z.string().describe('Organization id')
282
314
  });
283
315
  exports.CreateOrganizationSchema = zod_1.z.object({
284
316
  workspace: WorkspaceArg,
285
- name: zod_1.z.string().min(1).describe('Organization name'),
317
+ name: zod_1.z.string().min(1),
286
318
  city: zod_1.z.string().optional().describe('City (optional)')
287
319
  });
288
320
  exports.UpdateOrganizationSchema = zod_1.z.object({
289
321
  workspace: WorkspaceArg,
290
- organizationId: zod_1.z.string().describe('Organization _id from list_organizations'),
291
- description: zod_1.z.string().describe('New description as Markdown (replaces existing content)')
322
+ organizationId: zod_1.z.string().describe('Organization id'),
323
+ description: zod_1.z.string().describe('Markdown, replaces existing')
324
+ });
325
+ // ── 2.2.0 additions ──────────────────────────────────────────────────────────
326
+ const IssueRef = zod_1.z.string().describe('Issue id');
327
+ exports.BulkUpdateIssuesSchema = zod_1.z.object({
328
+ workspace: WorkspaceArg,
329
+ identifiers: zod_1.z.array(zod_1.z.string().min(1)).min(1).max(100).describe('Issue ids'),
330
+ statusName: zod_1.z.string().optional(),
331
+ priority: PriorityEnum.optional(),
332
+ dueDate: zod_1.z.string().nullable().optional().describe('null clears'),
333
+ assignee: zod_1.z.string().nullable().optional().describe('Person name; null clears'),
334
+ componentLabel: zod_1.z.string().nullable().optional().describe('Component name; null clears'),
335
+ milestoneLabel: zod_1.z.string().nullable().optional().describe('Milestone name; null clears')
336
+ });
337
+ exports.MoveIssueSchema = zod_1.z.object({
338
+ workspace: WorkspaceArg,
339
+ identifier: IssueRef,
340
+ targetProjectIdentifier: zod_1.z.string().describe('Target project key'),
341
+ statusName: zod_1.z.string().optional().describe('Default: keep current')
342
+ });
343
+ exports.ListSubIssuesSchema = zod_1.z.object({
344
+ workspace: ReadWorkspaceArg,
345
+ identifier: zod_1.z.string().describe('Parent issue id'),
346
+ depth: zod_1.z.number().int().min(1).max(10).default(5).describe('Levels')
347
+ });
348
+ exports.RemoveRelationSchema = zod_1.z.object({
349
+ workspace: WorkspaceArg,
350
+ identifier: IssueRef,
351
+ relatedTo: zod_1.z.string().describe('Related issue id')
352
+ });
353
+ exports.RemoveBlockedBySchema = zod_1.z.object({
354
+ workspace: WorkspaceArg,
355
+ identifier: zod_1.z.string().describe('Blocked issue id'),
356
+ blockedBy: zod_1.z.string().describe('Blocking issue to remove, e.g. "PROJ-100"')
357
+ });
358
+ exports.UpdateCommentSchema = zod_1.z.object({
359
+ workspace: WorkspaceArg,
360
+ identifier: IssueRef,
361
+ commentId: zod_1.z.string().min(1).describe('From list_comments'),
362
+ message: zod_1.z.string().min(1)
363
+ });
364
+ exports.UpdateLabelSchema = zod_1.z.object({
365
+ workspace: WorkspaceArg,
366
+ labelName: zod_1.z.string().min(1),
367
+ newName: zod_1.z.string().min(1).optional(),
368
+ color: zod_1.z.string().regex(/^#?[0-9a-fA-F]{6}$/).optional().describe('Hex color'),
369
+ description: zod_1.z.string().optional()
370
+ });
371
+ exports.DeleteLabelSchema = zod_1.z.object({
372
+ workspace: WorkspaceArg,
373
+ labelName: zod_1.z.string().min(1)
374
+ });
375
+ exports.UpdateProjectSchema = zod_1.z.object({
376
+ workspace: WorkspaceArg,
377
+ identifier: zod_1.z.string().describe('Project key'),
378
+ name: zod_1.z.string().min(1).optional(),
379
+ description: zod_1.z.string().optional(),
380
+ defaultAssignee: zod_1.z.string().nullable().optional().describe('Person name; null clears'),
381
+ defaultStatus: zod_1.z.string().optional().describe('Status name')
382
+ });
383
+ exports.ListTimeReportsSchema = zod_1.z.object({
384
+ workspace: ReadWorkspaceArg,
385
+ identifier: zod_1.z.string().optional().describe('Issue id (without sub-issues)'),
386
+ projectIdentifier: zod_1.z.string().optional().describe('Project key (all its issues)'),
387
+ member: zod_1.z.string().optional().describe('Person name'),
388
+ from: zod_1.z.string().optional().describe('ISO date'),
389
+ to: zod_1.z.string().optional().describe('ISO date, inclusive'),
390
+ limit: zod_1.z.number().int().min(1).max(500).default(100)
391
+ });
392
+ exports.RepairParentLinksSchema = zod_1.z.object({
393
+ workspace: WorkspaceArg,
394
+ projectIdentifier: zod_1.z.string().describe('Project key'),
395
+ dryRun: zod_1.z.boolean().default(true).describe('false applies the repair')
396
+ });
397
+ // ── 3.0: inbox, activity, planner, calendar, chat, github, contacts, generic ─
398
+ const ToDoPriorityEnum = zod_1.z.enum(['Urgent', 'High', 'Medium', 'Low', 'NoPriority']);
399
+ const ProviderEnum = zod_1.z.enum(['Email', 'Phone', 'LinkedIn', 'Twitter', 'GitHub', 'Facebook', 'Homepage', 'Whatsapp', 'Skype', 'Telegram', 'Viber', 'Profile']);
400
+ exports.ListNotificationsSchema = zod_1.z.object({
401
+ workspace: ReadWorkspaceArg,
402
+ unreadOnly: zod_1.z.boolean().default(true),
403
+ limit: zod_1.z.number().int().min(1).max(200).default(30),
404
+ ids: zod_1.z.boolean().optional().describe('Show notification ids')
405
+ });
406
+ exports.MarkNotificationsReadSchema = zod_1.z.object({
407
+ workspace: WorkspaceArg,
408
+ object: zod_1.z.string().optional().describe('Issue id or object id: read all its notifications'),
409
+ notificationIds: zod_1.z.array(zod_1.z.string()).optional().describe('From list_notifications'),
410
+ all: zod_1.z.boolean().optional().describe('Mark everything read'),
411
+ archive: zod_1.z.boolean().default(false).describe('Also archive')
412
+ });
413
+ exports.GetActivitySchema = zod_1.z.object({
414
+ workspace: ReadWorkspaceArg,
415
+ object: zod_1.z.string().describe('Issue id (PROJ-1) or object id'),
416
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
417
+ });
418
+ exports.ListTodosSchema = zod_1.z.object({
419
+ workspace: ReadWorkspaceArg,
420
+ status: zod_1.z.enum(['open', 'done', 'all']).default('open'),
421
+ dueBefore: zod_1.z.string().optional().describe('ISO date'),
422
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
423
+ });
424
+ exports.CreateTodoSchema = zod_1.z.object({
425
+ workspace: WorkspaceArg,
426
+ title: zod_1.z.string().min(1),
427
+ description: zod_1.z.string().optional().describe('Markdown'),
428
+ dueDate: zod_1.z.string().optional().describe('ISO date'),
429
+ priority: ToDoPriorityEnum.default('NoPriority'),
430
+ issue: zod_1.z.string().optional().describe('Issue id to attach the to-do to')
431
+ });
432
+ exports.UpdateTodoSchema = zod_1.z.object({
433
+ workspace: WorkspaceArg,
434
+ todoId: zod_1.z.string().describe('From list_todos'),
435
+ title: zod_1.z.string().min(1).optional(),
436
+ description: zod_1.z.string().optional().describe('Markdown'),
437
+ dueDate: zod_1.z.string().nullable().optional(),
438
+ priority: ToDoPriorityEnum.optional(),
439
+ done: zod_1.z.boolean().optional()
440
+ });
441
+ exports.DeleteTodoSchema = zod_1.z.object({
442
+ workspace: WorkspaceArg,
443
+ todoId: zod_1.z.string().describe('From list_todos')
444
+ });
445
+ exports.ScheduleTodoSchema = zod_1.z.object({
446
+ workspace: WorkspaceArg,
447
+ todoId: zod_1.z.string().describe('From list_todos'),
448
+ start: zod_1.z.string().describe('ISO date-time, e.g. 2026-11-03T09:00'),
449
+ durationMinutes: zod_1.z.number().int().min(5).max(1440).default(30)
450
+ });
451
+ exports.ListEventsSchema = zod_1.z.object({
452
+ workspace: ReadWorkspaceArg,
453
+ from: zod_1.z.string().optional().describe('ISO date; default today'),
454
+ to: zod_1.z.string().optional().describe('ISO date, inclusive; default from + 7 days'),
455
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
456
+ });
457
+ exports.CreateEventSchema = zod_1.z.object({
458
+ workspace: WorkspaceArg,
459
+ title: zod_1.z.string().min(1),
460
+ start: zod_1.z.string().describe('ISO date-time, or date for allDay'),
461
+ end: zod_1.z.string().optional().describe('ISO date-time; default start + 1h'),
462
+ allDay: zod_1.z.boolean().default(false),
463
+ location: zod_1.z.string().optional(),
464
+ description: zod_1.z.string().optional().describe('Markdown'),
465
+ participants: zod_1.z.array(zod_1.z.string()).optional().describe('Person names; you are always included')
466
+ });
467
+ exports.UpdateEventSchema = zod_1.z.object({
468
+ workspace: WorkspaceArg,
469
+ eventId: zod_1.z.string().describe('From list_events'),
470
+ title: zod_1.z.string().min(1).optional(),
471
+ start: zod_1.z.string().optional(),
472
+ end: zod_1.z.string().optional(),
473
+ location: zod_1.z.string().optional(),
474
+ description: zod_1.z.string().optional().describe('Markdown')
475
+ });
476
+ exports.DeleteEventSchema = zod_1.z.object({
477
+ workspace: WorkspaceArg,
478
+ eventId: zod_1.z.string().describe('From list_events')
479
+ });
480
+ const MessageIdArg = zod_1.z.string().describe('Message id (list_messages, list_comments, list_thread)');
481
+ exports.ListThreadSchema = zod_1.z.object({
482
+ workspace: ReadWorkspaceArg,
483
+ messageId: MessageIdArg,
484
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
485
+ });
486
+ exports.ReplyToMessageSchema = zod_1.z.object({
487
+ workspace: WorkspaceArg,
488
+ messageId: MessageIdArg,
489
+ message: zod_1.z.string().min(1)
490
+ });
491
+ exports.UpdateMessageSchema = zod_1.z.object({
492
+ workspace: WorkspaceArg,
493
+ messageId: MessageIdArg,
494
+ message: zod_1.z.string().min(1)
495
+ });
496
+ exports.DeleteMessageSchema = zod_1.z.object({
497
+ workspace: WorkspaceArg,
498
+ messageId: MessageIdArg
499
+ });
500
+ exports.ReactionSchema = zod_1.z.object({
501
+ workspace: WorkspaceArg,
502
+ messageId: MessageIdArg,
503
+ emoji: zod_1.z.string().min(1).describe('e.g. 👍')
504
+ });
505
+ exports.PinMessageSchema = zod_1.z.object({
506
+ workspace: WorkspaceArg,
507
+ messageId: MessageIdArg,
508
+ pinned: zod_1.z.boolean().default(true)
509
+ });
510
+ exports.ListPullRequestsSchema = zod_1.z.object({
511
+ workspace: ReadWorkspaceArg,
512
+ projectIdentifier: zod_1.z.string().optional().describe('Project key'),
513
+ issue: zod_1.z.string().optional().describe('Issue id the PRs belong to'),
514
+ state: zod_1.z.enum(['open', 'closed', 'merged', 'all']).default('open'),
515
+ limit: zod_1.z.number().int().min(1).max(200).default(30)
516
+ });
517
+ exports.GetPullRequestSchema = zod_1.z.object({
518
+ workspace: ReadWorkspaceArg,
519
+ identifier: zod_1.z.string().describe('PR id, e.g. PROJ-34')
520
+ });
521
+ const PersonRef = zod_1.z.string().describe('Person name or id');
522
+ exports.ListPersonsSchema = zod_1.z.object({
523
+ workspace: ReadWorkspaceArg,
524
+ query: zod_1.z.string().optional().describe('Name filter'),
525
+ employeesOnly: zod_1.z.boolean().default(false),
526
+ limit: zod_1.z.number().int().min(1).max(500).default(100)
527
+ });
528
+ exports.GetPersonSchema = zod_1.z.object({
529
+ workspace: ReadWorkspaceArg,
530
+ person: PersonRef
531
+ });
532
+ exports.CreatePersonSchema = zod_1.z.object({
533
+ workspace: WorkspaceArg,
534
+ firstName: zod_1.z.string().min(1),
535
+ lastName: zod_1.z.string().default(''),
536
+ city: zod_1.z.string().optional(),
537
+ channels: zod_1.z.array(zod_1.z.object({ provider: ProviderEnum, value: zod_1.z.string().min(1) })).optional()
538
+ });
539
+ exports.UpdatePersonSchema = zod_1.z.object({
540
+ workspace: WorkspaceArg,
541
+ person: PersonRef,
542
+ firstName: zod_1.z.string().min(1).optional(),
543
+ lastName: zod_1.z.string().optional(),
544
+ city: zod_1.z.string().optional()
545
+ });
546
+ exports.ContactChannelSchema = zod_1.z.object({
547
+ workspace: WorkspaceArg,
548
+ person: PersonRef,
549
+ provider: ProviderEnum,
550
+ value: zod_1.z.string().min(1)
551
+ });
552
+ exports.ListClassesSchema = zod_1.z.object({
553
+ workspace: ReadWorkspaceArg,
554
+ module: zod_1.z.string().optional().describe('e.g. recruit, lead, hr, board, drive'),
555
+ withCounts: zod_1.z.boolean().default(false).describe('Count documents (slower)')
556
+ });
557
+ exports.DescribeClassSchema = zod_1.z.object({
558
+ workspace: ReadWorkspaceArg,
559
+ className: zod_1.z.string().describe('e.g. recruit:class:Vacancy')
560
+ });
561
+ exports.QueryDocumentsSchema = zod_1.z.object({
562
+ workspace: ReadWorkspaceArg,
563
+ className: zod_1.z.string(),
564
+ query: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional().describe('Field equality filter, e.g. {"space":"…"}'),
565
+ fields: zod_1.z.array(zod_1.z.string()).optional().describe('Only these fields'),
566
+ limit: zod_1.z.number().int().min(1).max(200).default(20)
567
+ });
568
+ exports.GenericCreateSchema = zod_1.z.object({
569
+ workspace: WorkspaceArg,
570
+ className: zod_1.z.string(),
571
+ space: zod_1.z.string().describe('Space id the document belongs to'),
572
+ attributes: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
573
+ attachTo: zod_1.z.object({ id: zod_1.z.string(), className: zod_1.z.string(), collection: zod_1.z.string() }).optional().describe('For attached docs'),
574
+ dryRun: zod_1.z.boolean().default(true)
575
+ });
576
+ exports.GenericUpdateSchema = zod_1.z.object({
577
+ workspace: WorkspaceArg,
578
+ className: zod_1.z.string(),
579
+ id: zod_1.z.string(),
580
+ attributes: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
581
+ dryRun: zod_1.z.boolean().default(true)
582
+ });
583
+ exports.GenericDeleteSchema = zod_1.z.object({
584
+ workspace: WorkspaceArg,
585
+ className: zod_1.z.string(),
586
+ id: zod_1.z.string(),
587
+ dryRun: zod_1.z.boolean().default(true),
588
+ confirm: zod_1.z.boolean().default(false).describe('Must be true to delete')
589
+ });
590
+ // ── 3.1: agent workflow ──────────────────────────────────────────────────────
591
+ exports.GetIssueContextSchema = zod_1.z.object({
592
+ workspace: ReadWorkspaceArg,
593
+ identifier: zod_1.z.string().describe('Issue id'),
594
+ commentLimit: zod_1.z.number().int().min(0).max(100).default(20)
595
+ });
596
+ exports.StartWorkSchema = zod_1.z.object({
597
+ workspace: WorkspaceArg,
598
+ identifier: zod_1.z.string().describe('Issue id'),
599
+ statusName: zod_1.z.string().default('In Progress'),
600
+ assignToMe: zod_1.z.boolean().default(true),
601
+ claimAs: zod_1.z.string().optional().describe('Also claim it under this agent name')
602
+ });
603
+ exports.FinishWorkSchema = zod_1.z.object({
604
+ workspace: WorkspaceArg,
605
+ identifier: zod_1.z.string().describe('Issue id'),
606
+ summary: zod_1.z.string().min(1).describe('Markdown'),
607
+ pullRequest: zod_1.z.string().optional().describe('#12, URL or Huly id'),
608
+ statusName: zod_1.z.string().nullable().default('Review in progress').describe('null keeps status')
609
+ });
610
+ const PlannedIssue = zod_1.z.object({
611
+ title: zod_1.z.string().min(1),
612
+ description: zod_1.z.string().optional().describe('Markdown'),
613
+ priority: PriorityEnum.optional(),
614
+ componentLabel: zod_1.z.string().optional(),
615
+ milestoneLabel: zod_1.z.string().optional(),
616
+ assignee: zod_1.z.string().optional().describe('Person name'),
617
+ labels: zod_1.z.array(zod_1.z.string()).optional(),
618
+ blockedBy: zod_1.z.array(zod_1.z.string()).optional().describe('"#2" (2nd child) or issue id')
619
+ });
620
+ exports.CreateIssueTreeSchema = zod_1.z.object({
621
+ workspace: WorkspaceArg,
622
+ projectIdentifier: zod_1.z.string().describe('Project key'),
623
+ epic: PlannedIssue.pick({ title: true, description: true, priority: true, labels: true }).optional().describe('New epic'),
624
+ epicIdentifier: zod_1.z.string().optional().describe('Or an existing epic'),
625
+ children: zod_1.z.array(PlannedIssue).min(1).max(50),
626
+ componentLabel: zod_1.z.string().optional().describe('Default for children'),
627
+ milestoneLabel: zod_1.z.string().optional().describe('Default for children'),
628
+ skipDuplicates: zod_1.z.boolean().default(true).describe('Reuse same-title issues'),
629
+ dryRun: zod_1.z.boolean().default(true)
630
+ });
631
+ exports.IssuesFromDocumentSchema = zod_1.z.object({
632
+ workspace: WorkspaceArg,
633
+ document: zod_1.z.string().describe('Document id or exact title'),
634
+ projectIdentifier: zod_1.z.string().describe('Project key'),
635
+ epicTitle: zod_1.z.string().optional().describe('Default: document title'),
636
+ epicIdentifier: zod_1.z.string().optional().describe('Or an existing epic'),
637
+ componentLabel: zod_1.z.string().optional(),
638
+ milestoneLabel: zod_1.z.string().optional(),
639
+ skipDuplicates: zod_1.z.boolean().default(true),
640
+ dryRun: zod_1.z.boolean().default(true)
641
+ });
642
+ exports.IssuesFromMeetingSchema = zod_1.z.object({
643
+ workspace: WorkspaceArg,
644
+ document: zod_1.z.string().describe('Document id or exact title'),
645
+ projectIdentifier: zod_1.z.string().describe('Project key'),
646
+ componentLabel: zod_1.z.string().optional(),
647
+ milestoneLabel: zod_1.z.string().optional(),
648
+ skipDuplicates: zod_1.z.boolean().default(true),
649
+ dryRun: zod_1.z.boolean().default(true)
650
+ });
651
+ exports.MyDaySchema = zod_1.z.object({
652
+ workspace: ReadWorkspaceArg,
653
+ date: zod_1.z.string().optional().describe('YYYY-MM-DD, default today'),
654
+ limit: zod_1.z.number().int().min(1).max(50).default(10).describe('Per section')
655
+ });
656
+ exports.TriageInboxSchema = zod_1.z.object({
657
+ workspace: ReadWorkspaceArg,
658
+ limit: zod_1.z.number().int().min(1).max(30).default(10).describe('Items')
659
+ });
660
+ exports.ReleaseNotesSchema = zod_1.z.object({
661
+ workspace: ReadWorkspaceArg,
662
+ projectIdentifier: zod_1.z.string().describe('Project key'),
663
+ milestoneLabel: zod_1.z.string().describe('Milestone name')
664
+ });
665
+ exports.StandupSchema = zod_1.z.object({
666
+ workspace: ReadWorkspaceArg,
667
+ since: zod_1.z.string().optional().describe('Default: last working day')
668
+ });
669
+ exports.ProjectReportSchema = zod_1.z.object({
670
+ workspace: ReadWorkspaceArg,
671
+ projectIdentifier: zod_1.z.string().describe('Project key'),
672
+ since: zod_1.z.string().optional().describe('Default 7d')
673
+ });
674
+ exports.ChangesSinceSchema = zod_1.z.object({
675
+ workspace: ReadWorkspaceArg,
676
+ since: zod_1.z.string().describe('ISO date/time or relative: 90m, 24h, 7d'),
677
+ projectIdentifiers: zod_1.z.array(zod_1.z.string()).optional().describe('Default: all projects'),
678
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
679
+ });
680
+ exports.ClaimIssueSchema = zod_1.z.object({
681
+ workspace: WorkspaceArg,
682
+ identifier: zod_1.z.string().describe('Issue id'),
683
+ agent: zod_1.z.string().optional().describe('Default: HULY_AGENT_NAME or claude'),
684
+ minutes: zod_1.z.number().int().min(5).max(1440).default(120).describe('Lease length'),
685
+ force: zod_1.z.boolean().default(false).describe('Take over a foreign claim')
686
+ });
687
+ exports.ReleaseIssueSchema = zod_1.z.object({
688
+ workspace: WorkspaceArg,
689
+ identifier: zod_1.z.string().describe('Issue id'),
690
+ agent: zod_1.z.string().optional()
691
+ });
692
+ exports.FindProjectForRepoSchema = zod_1.z.object({
693
+ workspace: ReadWorkspaceArg.describe('Default: search all workspaces'),
694
+ repository: zod_1.z.string().describe('owner/name, GitHub URL or git remote')
695
+ });
696
+ // ── Sharing: collaborators and public links ─────────────────────────────────
697
+ const ObjectArg = zod_1.z.string().describe('Issue id (PROJ-12) or document id');
698
+ exports.ListCollaboratorsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, object: ObjectArg });
699
+ exports.AddCollaboratorSchema = zod_1.z.object({
700
+ workspace: WorkspaceArg,
701
+ object: ObjectArg,
702
+ member: zod_1.z.string().optional().describe('Name; default: you')
703
+ });
704
+ exports.RemoveCollaboratorSchema = exports.AddCollaboratorSchema;
705
+ exports.CreatePublicLinkSchema = zod_1.z.object({ workspace: WorkspaceArg, object: ObjectArg });
706
+ exports.ListPublicLinksSchema = zod_1.z.object({
707
+ workspace: ReadWorkspaceArg,
708
+ object: ObjectArg.optional().describe('Default: all links'),
709
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
710
+ });
711
+ exports.RevokePublicLinkSchema = zod_1.z.object({ workspace: WorkspaceArg, linkId: zod_1.z.string() });
712
+ // ── Cards ───────────────────────────────────────────────────────────────────
713
+ const FieldValues = zod_1.z.record(zod_1.z.string(), zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.null()])).describe('Field name → value');
714
+ exports.ListCardTypesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
715
+ exports.ListCardsSchema = zod_1.z.object({
716
+ workspace: ReadWorkspaceArg,
717
+ type: zod_1.z.string().optional().describe('Card type name or id'),
718
+ parentId: zod_1.z.string().nullable().optional().describe('Children of this card; null = top level'),
719
+ query: zod_1.z.string().optional().describe('Title contains'),
720
+ limit: zod_1.z.number().int().min(1).max(200).default(50)
721
+ });
722
+ exports.GetCardSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, cardId: zod_1.z.string() });
723
+ exports.CreateCardSchema = zod_1.z.object({
724
+ workspace: WorkspaceArg,
725
+ type: zod_1.z.string().describe('Card type name or id'),
726
+ title: zod_1.z.string().min(1),
727
+ content: zod_1.z.string().optional().describe('Markdown'),
728
+ parentId: zod_1.z.string().optional(),
729
+ space: zod_1.z.string().optional().describe('Card space id; default: Default'),
730
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
731
+ fields: FieldValues.optional()
732
+ });
733
+ exports.UpdateCardSchema = zod_1.z.object({
734
+ workspace: WorkspaceArg,
735
+ cardId: zod_1.z.string(),
736
+ title: zod_1.z.string().min(1).optional(),
737
+ content: zod_1.z.string().optional().describe('Markdown; replaces content'),
738
+ parentId: zod_1.z.string().nullable().optional().describe('Move under this card; null = top level'),
739
+ addTags: zod_1.z.array(zod_1.z.string()).optional(),
740
+ fields: FieldValues.optional()
741
+ });
742
+ exports.DeleteCardSchema = zod_1.z.object({ workspace: WorkspaceArg, cardId: zod_1.z.string() });
743
+ exports.CreateCardTypeSchema = zod_1.z.object({
744
+ workspace: WorkspaceArg,
745
+ name: zod_1.z.string().min(1),
746
+ kind: zod_1.z.enum(['type', 'tag']).default('type'),
747
+ parentType: zod_1.z.string().optional().describe('Subtype of / tag for this type')
748
+ });
749
+ exports.DeleteCardTypeSchema = zod_1.z.object({ workspace: WorkspaceArg, type: zod_1.z.string().describe('Card type or tag') });
750
+ // ── Custom fields ───────────────────────────────────────────────────────────
751
+ const FieldTarget = zod_1.z.string().describe('"issue", project key, card type/tag or class id');
752
+ exports.ListCustomFieldsSchema = zod_1.z.object({
753
+ workspace: ReadWorkspaceArg,
754
+ target: FieldTarget.optional(),
755
+ object: zod_1.z.string().optional().describe('Show values of this issue/card instead')
756
+ });
757
+ exports.CreateCustomFieldSchema = zod_1.z.object({
758
+ workspace: WorkspaceArg,
759
+ target: FieldTarget,
760
+ label: zod_1.z.string().min(1),
761
+ type: zod_1.z.enum(['string', 'number', 'boolean', 'date', 'markup', 'enum', 'ref']),
762
+ enumValues: zod_1.z.array(zod_1.z.string()).optional(),
763
+ refClass: zod_1.z.string().optional().describe('For ref, e.g. contact:mixin:Employee')
764
+ });
765
+ exports.SetCustomFieldsSchema = zod_1.z.object({
766
+ workspace: WorkspaceArg,
767
+ object: zod_1.z.string().describe('Issue id, card id or document id'),
768
+ fields: FieldValues
769
+ });
770
+ // ── Drive ───────────────────────────────────────────────────────────────────
771
+ const DriveArg = zod_1.z.string().describe('Drive name or id');
772
+ exports.ListDrivesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
773
+ exports.CreateDriveSchema = zod_1.z.object({ workspace: WorkspaceArg, name: zod_1.z.string().min(1), description: zod_1.z.string().optional(), isPrivate: zod_1.z.boolean().default(false) });
774
+ exports.ListDriveFilesSchema = zod_1.z.object({
775
+ workspace: ReadWorkspaceArg,
776
+ drive: DriveArg,
777
+ folderId: zod_1.z.string().optional().describe('Default: top level'),
778
+ recursive: zod_1.z.boolean().default(true)
779
+ });
780
+ exports.CreateFolderSchema = zod_1.z.object({ workspace: WorkspaceArg, drive: DriveArg, title: zod_1.z.string().min(1), parentId: zod_1.z.string().optional() });
781
+ exports.UploadFileSchema = zod_1.z.object({
782
+ workspace: WorkspaceArg,
783
+ drive: DriveArg,
784
+ folderId: zod_1.z.string().optional(),
785
+ filename: zod_1.z.string().optional().describe('Default: name of localPath'),
786
+ contentBase64: zod_1.z.string().optional(),
787
+ localPath: zod_1.z.string().optional().describe('File under HULY_FILE_ROOT'),
788
+ mimeType: zod_1.z.string().optional(),
789
+ newVersion: zod_1.z.boolean().default(true).describe('Same name in folder → new version')
790
+ });
791
+ exports.DownloadFileSchema = zod_1.z.object({
792
+ workspace: ReadWorkspaceArg,
793
+ fileId: zod_1.z.string(),
794
+ version: zod_1.z.number().int().min(1).optional().describe('Default: current'),
795
+ savePath: zod_1.z.string().optional().describe('Save under HULY_FILE_ROOT instead of returning it')
796
+ });
797
+ exports.UpdateDriveItemSchema = zod_1.z.object({
798
+ workspace: WorkspaceArg,
799
+ itemId: zod_1.z.string().describe('File or folder id'),
800
+ title: zod_1.z.string().min(1).optional(),
801
+ parentId: zod_1.z.string().nullable().optional().describe('Move into this folder; null = top level')
802
+ });
803
+ exports.DeleteDriveItemSchema = zod_1.z.object({ workspace: WorkspaceArg, itemId: zod_1.z.string(), recursive: zod_1.z.boolean().default(false) });
804
+ exports.ListFileVersionsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, fileId: zod_1.z.string() });
805
+ exports.RestoreFileVersionSchema = zod_1.z.object({ workspace: WorkspaceArg, fileId: zod_1.z.string(), version: zod_1.z.number().int().min(1) });
806
+ // ── Issue templates ─────────────────────────────────────────────────────────
807
+ const TemplateFields = {
808
+ description: zod_1.z.string().optional().describe('Markdown'),
809
+ priority: PriorityEnum.optional(),
810
+ assignee: zod_1.z.string().nullable().optional().describe('Person name'),
811
+ componentLabel: zod_1.z.string().nullable().optional(),
812
+ milestoneLabel: zod_1.z.string().nullable().optional(),
813
+ estimation: zod_1.z.number().min(0).optional(),
814
+ labels: zod_1.z.array(zod_1.z.string()).optional()
815
+ };
816
+ const TemplateChild = zod_1.z.object({ title: zod_1.z.string().min(1), ...TemplateFields });
817
+ const TemplateRef = zod_1.z.string().describe('Template id or title');
818
+ exports.ListIssueTemplatesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, projectIdentifier: zod_1.z.string().optional() });
819
+ exports.GetIssueTemplateSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, template: TemplateRef, projectIdentifier: zod_1.z.string().optional() });
820
+ exports.CreateIssueTemplateSchema = zod_1.z.object({
821
+ workspace: WorkspaceArg,
822
+ projectIdentifier: zod_1.z.string().describe('Project key'),
823
+ title: zod_1.z.string().min(1),
824
+ ...TemplateFields,
825
+ children: zod_1.z.array(TemplateChild).max(50).optional().describe('Sub-issues')
826
+ });
827
+ exports.UpdateIssueTemplateSchema = zod_1.z.object({
828
+ workspace: WorkspaceArg,
829
+ template: TemplateRef,
830
+ projectIdentifier: zod_1.z.string().optional(),
831
+ title: zod_1.z.string().min(1).optional(),
832
+ ...TemplateFields,
833
+ children: zod_1.z.array(TemplateChild).max(50).optional().describe('Replaces all sub-issues')
834
+ });
835
+ exports.DeleteIssueTemplateSchema = zod_1.z.object({ workspace: WorkspaceArg, template: TemplateRef, projectIdentifier: zod_1.z.string().optional() });
836
+ exports.CreateIssueFromTemplateSchema = zod_1.z.object({
837
+ workspace: WorkspaceArg,
838
+ template: TemplateRef,
839
+ projectIdentifier: zod_1.z.string().optional(),
840
+ title: zod_1.z.string().min(1).optional().describe('Default: template title')
841
+ });
842
+ // ── Test management ─────────────────────────────────────────────────────────
843
+ const TestProjectArg = zod_1.z.string().describe('Test project name or id');
844
+ const CaseType = zod_1.z.enum(['Functional', 'Performance', 'Regression', 'Security', 'Smoke', 'Usability']);
845
+ const CasePriority = zod_1.z.enum(['Low', 'Medium', 'High', 'Urgent']);
846
+ const CaseStatus = zod_1.z.enum(['Draft', 'ReadyForReview', 'FixReviewComments', 'Approved', 'Rejected']);
847
+ exports.ListTestProjectsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
848
+ exports.CreateTestProjectSchema = zod_1.z.object({ workspace: WorkspaceArg, name: zod_1.z.string().min(1), description: zod_1.z.string().optional(), isPrivate: zod_1.z.boolean().default(false) });
849
+ exports.ListTestCasesSchema = zod_1.z.object({
850
+ workspace: ReadWorkspaceArg,
851
+ project: TestProjectArg,
852
+ suite: zod_1.z.string().optional().describe('Suite name or id; default: all'),
853
+ status: CaseStatus.optional()
854
+ });
855
+ exports.CreateTestSuiteSchema = zod_1.z.object({ workspace: WorkspaceArg, project: TestProjectArg, name: zod_1.z.string().min(1), description: zod_1.z.string().optional(), parent: zod_1.z.string().optional().describe('Parent suite') });
856
+ exports.GetTestCaseSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, caseId: zod_1.z.string() });
857
+ exports.CreateTestCaseSchema = zod_1.z.object({
858
+ workspace: WorkspaceArg,
859
+ project: TestProjectArg,
860
+ suite: zod_1.z.string().describe('Suite name or id'),
861
+ name: zod_1.z.string().min(1),
862
+ description: zod_1.z.string().optional().describe('Steps/expected result, Markdown'),
863
+ type: CaseType.default('Functional'),
864
+ priority: CasePriority.default('Medium'),
865
+ status: CaseStatus.default('Draft'),
866
+ assignee: zod_1.z.string().optional()
867
+ });
868
+ exports.UpdateTestCaseSchema = zod_1.z.object({
869
+ workspace: WorkspaceArg,
870
+ caseId: zod_1.z.string(),
871
+ name: zod_1.z.string().min(1).optional(),
872
+ description: zod_1.z.string().optional(),
873
+ type: CaseType.optional(),
874
+ priority: CasePriority.optional(),
875
+ status: CaseStatus.optional(),
876
+ assignee: zod_1.z.string().nullable().optional()
877
+ });
878
+ exports.DeleteTestCaseSchema = zod_1.z.object({ workspace: WorkspaceArg, caseId: zod_1.z.string() });
879
+ exports.ListTestPlansSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, project: TestProjectArg });
880
+ exports.CreateTestPlanSchema = zod_1.z.object({
881
+ workspace: WorkspaceArg,
882
+ project: TestProjectArg,
883
+ name: zod_1.z.string().min(1),
884
+ suites: zod_1.z.array(zod_1.z.string()).optional().describe('All cases of these suites (incl. nested)'),
885
+ caseIds: zod_1.z.array(zod_1.z.string()).optional()
886
+ });
887
+ exports.CreateTestRunSchema = zod_1.z.object({
888
+ workspace: WorkspaceArg,
889
+ project: TestProjectArg,
890
+ name: zod_1.z.string().min(1),
891
+ plan: zod_1.z.string().optional().describe('Plan name or id'),
892
+ suites: zod_1.z.array(zod_1.z.string()).optional(),
893
+ caseIds: zod_1.z.array(zod_1.z.string()).optional(),
894
+ dueDate: zod_1.z.string().optional()
895
+ });
896
+ exports.ListTestRunsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, project: TestProjectArg, limit: zod_1.z.number().int().min(1).max(100).default(20) });
897
+ exports.GetTestRunSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, runId: zod_1.z.string() });
898
+ exports.SetTestResultSchema = zod_1.z.object({
899
+ workspace: WorkspaceArg,
900
+ result: zod_1.z.string().describe('Result id, or case id/name with runId'),
901
+ runId: zod_1.z.string().optional(),
902
+ status: zod_1.z.enum(['Untested', 'Blocked', 'Passed', 'Failed']),
903
+ comment: zod_1.z.string().optional().describe('Markdown'),
904
+ assignee: zod_1.z.string().nullable().optional().describe('Person; null clears')
905
+ });
906
+ exports.UpdateTestSuiteSchema = zod_1.z.object({ workspace: WorkspaceArg, project: TestProjectArg, suite: zod_1.z.string(), name: zod_1.z.string().min(1).optional(), description: zod_1.z.string().optional(), parent: zod_1.z.string().nullable().optional().describe('New parent suite; null = top level') });
907
+ exports.DeleteTestSuiteSchema = zod_1.z.object({ workspace: WorkspaceArg, project: TestProjectArg, suite: zod_1.z.string(), recursive: zod_1.z.boolean().optional().describe('Also delete sub-suites and cases') });
908
+ exports.UpdateTestRunSchema = zod_1.z.object({ workspace: WorkspaceArg, runId: zod_1.z.string(), name: zod_1.z.string().min(1).optional(), dueDate: zod_1.z.string().nullable().optional(), description: zod_1.z.string().optional().describe('Markdown') });
909
+ exports.DeleteTestRunSchema = zod_1.z.object({ workspace: WorkspaceArg, runId: zod_1.z.string() });
910
+ exports.DeleteTestPlanSchema = zod_1.z.object({ workspace: WorkspaceArg, project: TestProjectArg, plan: zod_1.z.string().describe('Plan name or id') });
911
+ exports.ImportTestResultsSchema = zod_1.z.object({
912
+ workspace: WorkspaceArg,
913
+ project: TestProjectArg,
914
+ xml: zod_1.z.string().optional().describe('JUnit XML report'),
915
+ file: zod_1.z.string().optional().describe('Or: path to the report on the server machine'),
916
+ runName: zod_1.z.string().optional().describe('Default: "CI <date time>"'),
917
+ parentSuite: zod_1.z.string().optional().describe('Put the report\'s suites under this suite'),
918
+ createMissing: zod_1.z.boolean().optional().describe('Create unknown suites/cases (default true)'),
919
+ dryRun: zod_1.z.boolean().optional()
920
+ });
921
+ exports.GetTestReportSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, project: TestProjectArg, runs: zod_1.z.number().int().min(1).max(50).optional().describe('Latest runs to look at (default 10)'), limit: zod_1.z.number().int().min(1).max(200).optional().describe('Max cases per section (default 25)') });
922
+ exports.CreateIssueFromTestResultSchema = zod_1.z.object({
923
+ workspace: WorkspaceArg,
924
+ result: zod_1.z.string().describe('Test result id (get_test_run)'),
925
+ projectIdentifier: zod_1.z.string().describe('Tracker project key'),
926
+ title: zod_1.z.string().optional().describe('Default: "Test failed: <case>"'),
927
+ priority: PriorityEnum.optional().describe('Default High'),
928
+ notes: zod_1.z.string().optional().describe('Extra Markdown'),
929
+ componentLabel: zod_1.z.string().optional(),
930
+ milestoneLabel: zod_1.z.string().optional(),
931
+ assignee: zod_1.z.string().optional()
932
+ });
933
+ exports.CreateTestCasesSchema = zod_1.z.object({
934
+ workspace: WorkspaceArg,
935
+ project: TestProjectArg,
936
+ suite: zod_1.z.string().describe('Suite name or id'),
937
+ createSuite: zod_1.z.boolean().optional().describe('Create the suite if missing'),
938
+ parentSuite: zod_1.z.string().optional().describe('Parent for a new suite'),
939
+ cases: zod_1.z.array(zod_1.z.object({ name: zod_1.z.string().min(1), description: zod_1.z.string().optional().describe('Steps/expected, Markdown'), type: CaseType.optional(), priority: CasePriority.optional(), assignee: zod_1.z.string().optional() })).min(1).max(100)
940
+ });
941
+ // ── Products (read-only) and label categories ───────────────────────────────
942
+ exports.ListProductsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
943
+ exports.GetProductSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, product: zod_1.z.string().describe('Product name or id') });
944
+ exports.ListLabelCategoriesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
945
+ exports.CreateLabelCategorySchema = zod_1.z.object({ workspace: WorkspaceArg, name: zod_1.z.string().min(1) });
946
+ exports.SetLabelCategorySchema = zod_1.z.object({ workspace: WorkspaceArg, labelName: zod_1.z.string().min(1), category: zod_1.z.string().describe('Category name or id') });
947
+ // ── Workspace administration ──────────────────────────────────────────────────
948
+ const RoleArg = zod_1.z.enum(['guest', 'user', 'maintainer', 'owner']);
949
+ exports.CreateInviteLinkSchema = zod_1.z.object({
950
+ workspace: WorkspaceArg,
951
+ email: zod_1.z.string().optional().describe('Personal one-use link for this address (nothing is sent)'),
952
+ role: RoleArg.optional().describe('Default user'),
953
+ expiresHours: zod_1.z.number().int().min(1).max(8760).optional().describe('Default 48'),
954
+ limit: zod_1.z.number().int().min(1).max(1000).optional().describe('Uses, without email; default 1'),
955
+ emailMask: zod_1.z.string().optional().describe('Only addresses matching, e.g. *@acme.com')
956
+ });
957
+ exports.SendInviteSchema = zod_1.z.object({
958
+ workspace: WorkspaceArg,
959
+ email: zod_1.z.string(),
960
+ role: RoleArg.optional().describe('Default user')
961
+ });
962
+ exports.SetMemberRoleSchema = zod_1.z.object({
963
+ workspace: WorkspaceArg,
964
+ member: zod_1.z.string().describe('Name or account id'),
965
+ role: RoleArg
966
+ });
967
+ exports.GetWorkspaceSettingsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
968
+ exports.ListProjectTypesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
969
+ // ── Recruiting ────────────────────────────────────────────────────────────────
970
+ exports.ListVacanciesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, includeArchived: zod_1.z.boolean().optional() });
971
+ exports.CreateVacancySchema = zod_1.z.object({
972
+ workspace: WorkspaceArg,
973
+ name: zod_1.z.string(),
974
+ description: zod_1.z.string().optional().describe('Short plain-text description'),
975
+ company: zod_1.z.string().optional().describe('Organization name'),
976
+ location: zod_1.z.string().optional(),
977
+ dueDate: zod_1.z.string().optional()
978
+ });
979
+ exports.UpdateVacancySchema = zod_1.z.object({
980
+ workspace: WorkspaceArg,
981
+ vacancy: zod_1.z.string().describe('Name or id'),
982
+ name: zod_1.z.string().optional(),
983
+ description: zod_1.z.string().nullable().optional(),
984
+ location: zod_1.z.string().nullable().optional(),
985
+ dueDate: zod_1.z.string().nullable().optional(),
986
+ archived: zod_1.z.boolean().optional()
987
+ });
988
+ exports.ListCandidatesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, query: zod_1.z.string().optional().describe('Name or title contains'), limit: zod_1.z.number().int().min(1).max(500).optional() });
989
+ exports.CreateCandidateSchema = zod_1.z.object({
990
+ workspace: WorkspaceArg,
991
+ firstName: zod_1.z.string(),
992
+ lastName: zod_1.z.string(),
993
+ title: zod_1.z.string().optional().describe('e.g. Senior iOS developer'),
994
+ city: zod_1.z.string().optional(),
995
+ email: zod_1.z.string().optional(),
996
+ onsite: zod_1.z.boolean().optional(),
997
+ remote: zod_1.z.boolean().optional()
998
+ });
999
+ exports.ListApplicationsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, vacancy: zod_1.z.string().optional(), status: zod_1.z.string().optional(), limit: zod_1.z.number().int().min(1).max(500).optional() });
1000
+ exports.CreateApplicationSchema = zod_1.z.object({
1001
+ workspace: WorkspaceArg,
1002
+ vacancy: zod_1.z.string().describe('Name or id'),
1003
+ candidate: zod_1.z.string().describe('Person name or id (create_candidate first for new people)'),
1004
+ status: zod_1.z.string().optional().describe('Default: first status'),
1005
+ assignee: zod_1.z.string().optional().describe('Recruiter')
1006
+ });
1007
+ exports.UpdateApplicationSchema = zod_1.z.object({ workspace: WorkspaceArg, identifier: zod_1.z.string().describe('APP-12'), status: zod_1.z.string().optional(), assignee: zod_1.z.string().nullable().optional() });
1008
+ exports.DeleteApplicationSchema = zod_1.z.object({ workspace: WorkspaceArg, identifier: zod_1.z.string().describe('APP-12') });
1009
+ // ── CRM ───────────────────────────────────────────────────────────────────────
1010
+ exports.ListLeadsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, funnel: zod_1.z.string().optional(), status: zod_1.z.string().optional(), limit: zod_1.z.number().int().min(1).max(500).optional() });
1011
+ exports.ListCustomersSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
1012
+ exports.CreateLeadSchema = zod_1.z.object({
1013
+ workspace: WorkspaceArg,
1014
+ title: zod_1.z.string(),
1015
+ customer: zod_1.z.string().describe('Existing person/organization (name or id), or the new one\'s name with newCustomer'),
1016
+ newCustomer: zod_1.z.enum(['organization', 'person']).optional().describe('Create the customer first'),
1017
+ funnel: zod_1.z.string().optional().describe('Default: the default funnel'),
1018
+ status: zod_1.z.string().optional(),
1019
+ assignee: zod_1.z.string().optional()
1020
+ });
1021
+ exports.UpdateLeadSchema = zod_1.z.object({ workspace: WorkspaceArg, identifier: zod_1.z.string().describe('LEAD-12'), title: zod_1.z.string().optional(), status: zod_1.z.string().optional(), assignee: zod_1.z.string().nullable().optional() });
1022
+ exports.DeleteLeadSchema = zod_1.z.object({ workspace: WorkspaceArg, identifier: zod_1.z.string().describe('LEAD-12') });
1023
+ // ── HR ────────────────────────────────────────────────────────────────────────
1024
+ exports.ListDepartmentsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
1025
+ exports.CreateDepartmentSchema = zod_1.z.object({ workspace: WorkspaceArg, name: zod_1.z.string(), parent: zod_1.z.string().optional().describe('Default: Organization (root)'), teamLead: zod_1.z.string().optional() });
1026
+ exports.DeleteDepartmentSchema = zod_1.z.object({ workspace: WorkspaceArg, department: zod_1.z.string() });
1027
+ exports.SetDepartmentSchema = zod_1.z.object({ workspace: WorkspaceArg, member: zod_1.z.string(), department: zod_1.z.string() });
1028
+ exports.ListTimeOffSchema = zod_1.z.object({
1029
+ workspace: ReadWorkspaceArg,
1030
+ from: zod_1.z.string().optional().describe('YYYY-MM-DD'),
1031
+ to: zod_1.z.string().optional().describe('YYYY-MM-DD'),
1032
+ member: zod_1.z.string().optional(),
1033
+ department: zod_1.z.string().optional()
1034
+ });
1035
+ exports.CreateTimeOffSchema = zod_1.z.object({
1036
+ workspace: WorkspaceArg,
1037
+ type: zod_1.z.enum(['vacation', 'sick', 'pto', 'pto-half-day', 'overtime', 'overtime-half-day', 'remote']),
1038
+ from: zod_1.z.string().describe('YYYY-MM-DD'),
1039
+ to: zod_1.z.string().optional().describe('Last day, inclusive; default from'),
1040
+ member: zod_1.z.string().optional().describe('Default: me'),
1041
+ description: zod_1.z.string().optional()
1042
+ });
1043
+ exports.DeleteTimeOffSchema = zod_1.z.object({ workspace: WorkspaceArg, id: zod_1.z.string() });
1044
+ // ── Inventory ─────────────────────────────────────────────────────────────────
1045
+ exports.ListInventorySchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
1046
+ exports.CreateInventoryCategorySchema = zod_1.z.object({ workspace: WorkspaceArg, name: zod_1.z.string(), parent: zod_1.z.string().optional().describe('Parent category') });
1047
+ exports.CreateInventoryProductSchema = zod_1.z.object({
1048
+ workspace: WorkspaceArg,
1049
+ name: zod_1.z.string(),
1050
+ category: zod_1.z.string(),
1051
+ variants: zod_1.z.array(zod_1.z.object({ name: zod_1.z.string(), sku: zod_1.z.string() })).optional()
1052
+ });
1053
+ exports.UpdateInventoryItemSchema = zod_1.z.object({ workspace: WorkspaceArg, id: zod_1.z.string(), name: zod_1.z.string().optional(), sku: zod_1.z.string().optional().describe('Variants'), category: zod_1.z.string().optional().describe('Move a product') });
1054
+ exports.DeleteInventoryItemSchema = zod_1.z.object({ workspace: WorkspaceArg, id: zod_1.z.string(), recursive: zod_1.z.boolean().optional() });
1055
+ // ── Message templates ─────────────────────────────────────────────────────────
1056
+ exports.ListMessageTemplatesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
1057
+ exports.GetMessageTemplateSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, template: zod_1.z.string().describe('Title or id') });
1058
+ exports.CreateMessageTemplateSchema = zod_1.z.object({
1059
+ workspace: WorkspaceArg,
1060
+ title: zod_1.z.string(),
1061
+ message: zod_1.z.string().describe('Markdown; ${field} placeholders allowed'),
1062
+ category: zod_1.z.string().optional().describe('Default: public templates'),
1063
+ newCategory: zod_1.z.boolean().optional().describe('Create category first')
1064
+ });
1065
+ exports.UpdateMessageTemplateSchema = zod_1.z.object({ workspace: WorkspaceArg, template: zod_1.z.string(), title: zod_1.z.string().optional(), message: zod_1.z.string().optional() });
1066
+ exports.DeleteMessageTemplateSchema = zod_1.z.object({ workspace: WorkspaceArg, template: zod_1.z.string() });
1067
+ // ── Meetings, QMS, processes, surveys (read-only) ─────────────────────────────
1068
+ exports.ListMeetingsSchema = zod_1.z.object({
1069
+ workspace: ReadWorkspaceArg,
1070
+ room: zod_1.z.string().optional(),
1071
+ since: zod_1.z.string().optional(),
1072
+ limit: zod_1.z.number().int().min(1).max(200).optional(),
1073
+ includeOffices: zod_1.z.boolean().optional().describe('List personal offices too')
292
1074
  });
1075
+ exports.GetMeetingSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, id: zod_1.z.string(), transcript: zod_1.z.boolean().optional().describe('Default true'), limit: zod_1.z.number().int().min(1).max(5000).optional() });
1076
+ exports.ListControlledDocumentsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, space: zod_1.z.string().optional(), includeTemplates: zod_1.z.boolean().optional() });
1077
+ exports.GetControlledDocumentSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, document: zod_1.z.string().describe('Code (SOP-12), title or id'), content: zod_1.z.boolean().optional().describe('Default true') });
1078
+ exports.ListTrainingsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, includeArchived: zod_1.z.boolean().optional() });
1079
+ exports.GetTrainingSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, training: zod_1.z.string().describe('Code, title or id'), showAnswers: zod_1.z.boolean().optional() });
1080
+ exports.ListProcessesSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
1081
+ exports.ListExecutionsSchema = zod_1.z.object({ workspace: ReadWorkspaceArg, process: zod_1.z.string().optional(), status: zod_1.z.enum(['active', 'done', 'cancelled']).optional(), limit: zod_1.z.number().int().min(1).max(200).optional() });
1082
+ exports.StartProcessSchema = zod_1.z.object({ workspace: WorkspaceArg, process: zod_1.z.string().describe('Name or id'), card: zod_1.z.string().describe('Card id'), dryRun: zod_1.z.boolean().optional() });
1083
+ exports.CancelExecutionSchema = zod_1.z.object({ workspace: WorkspaceArg, execution: zod_1.z.string().describe('Execution id'), dryRun: zod_1.z.boolean().optional() });
1084
+ exports.ListSurveysSchema = zod_1.z.object({ workspace: ReadWorkspaceArg });
1085
+ exports.GetSurveySchema = zod_1.z.object({ workspace: ReadWorkspaceArg, survey: zod_1.z.string(), maxTextAnswers: zod_1.z.number().int().min(0).max(100).optional() });
293
1086
  //# sourceMappingURL=schemas.js.map