huly-mcp-selfhost 3.3.0 → 3.5.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 (217) hide show
  1. package/.env.example +11 -0
  2. package/CHANGELOG.md +22 -0
  3. package/README.md +126 -17
  4. package/dist/guides/costs.md +2 -1
  5. package/dist/guides/workflow.md +3 -1
  6. package/dist/index.js +105034 -46
  7. package/dist/setup.js +4 -0
  8. package/package.json +12 -11
  9. package/dist/connection.d.ts +0 -78
  10. package/dist/connection.js +0 -271
  11. package/dist/connection.js.map +0 -1
  12. package/dist/env.d.ts +0 -1
  13. package/dist/env.js +0 -17
  14. package/dist/env.js.map +0 -1
  15. package/dist/guard.d.ts +0 -39
  16. package/dist/guard.js +0 -165
  17. package/dist/guard.js.map +0 -1
  18. package/dist/index.d.ts +0 -2
  19. package/dist/index.js.map +0 -1
  20. package/dist/junit-cli.d.ts +0 -8
  21. package/dist/junit-cli.js +0 -106
  22. package/dist/junit-cli.js.map +0 -1
  23. package/dist/registry.d.ts +0 -18
  24. package/dist/registry.js +0 -318
  25. package/dist/registry.js.map +0 -1
  26. package/dist/resources.d.ts +0 -19
  27. package/dist/resources.js +0 -255
  28. package/dist/resources.js.map +0 -1
  29. package/dist/schemas.d.ts +0 -1559
  30. package/dist/schemas.js +0 -1086
  31. package/dist/schemas.js.map +0 -1
  32. package/dist/server.d.ts +0 -29
  33. package/dist/server.js +0 -215
  34. package/dist/server.js.map +0 -1
  35. package/dist/tools/activity.d.ts +0 -10
  36. package/dist/tools/activity.js +0 -62
  37. package/dist/tools/activity.js.map +0 -1
  38. package/dist/tools/agent.d.ts +0 -156
  39. package/dist/tools/agent.js +0 -523
  40. package/dist/tools/agent.js.map +0 -1
  41. package/dist/tools/attachments.d.ts +0 -31
  42. package/dist/tools/attachments.js +0 -61
  43. package/dist/tools/attachments.js.map +0 -1
  44. package/dist/tools/calendar.d.ts +0 -49
  45. package/dist/tools/calendar.js +0 -116
  46. package/dist/tools/calendar.js.map +0 -1
  47. package/dist/tools/cards.d.ts +0 -87
  48. package/dist/tools/cards.js +0 -246
  49. package/dist/tools/cards.js.map +0 -1
  50. package/dist/tools/channels.d.ts +0 -118
  51. package/dist/tools/channels.js +0 -211
  52. package/dist/tools/channels.js.map +0 -1
  53. package/dist/tools/comments.d.ts +0 -42
  54. package/dist/tools/comments.js +0 -77
  55. package/dist/tools/comments.js.map +0 -1
  56. package/dist/tools/components.d.ts +0 -45
  57. package/dist/tools/components.js +0 -107
  58. package/dist/tools/components.js.map +0 -1
  59. package/dist/tools/contacts.d.ts +0 -69
  60. package/dist/tools/contacts.js +0 -130
  61. package/dist/tools/contacts.js.map +0 -1
  62. package/dist/tools/crm.d.ts +0 -61
  63. package/dist/tools/crm.js +0 -117
  64. package/dist/tools/crm.js.map +0 -1
  65. package/dist/tools/documents.d.ts +0 -100
  66. package/dist/tools/documents.js +0 -294
  67. package/dist/tools/documents.js.map +0 -1
  68. package/dist/tools/drive.d.ts +0 -107
  69. package/dist/tools/drive.js +0 -277
  70. package/dist/tools/drive.js.map +0 -1
  71. package/dist/tools/fields.d.ts +0 -33
  72. package/dist/tools/fields.js +0 -124
  73. package/dist/tools/fields.js.map +0 -1
  74. package/dist/tools/generic.d.ts +0 -72
  75. package/dist/tools/generic.js +0 -242
  76. package/dist/tools/generic.js.map +0 -1
  77. package/dist/tools/github.d.ts +0 -21
  78. package/dist/tools/github.js +0 -80
  79. package/dist/tools/github.js.map +0 -1
  80. package/dist/tools/hr.d.ts +0 -97
  81. package/dist/tools/hr.js +0 -150
  82. package/dist/tools/hr.js.map +0 -1
  83. package/dist/tools/inbox.d.ts +0 -23
  84. package/dist/tools/inbox.js +0 -76
  85. package/dist/tools/inbox.js.map +0 -1
  86. package/dist/tools/inventory.d.ts +0 -61
  87. package/dist/tools/inventory.js +0 -103
  88. package/dist/tools/inventory.js.map +0 -1
  89. package/dist/tools/issues.d.ts +0 -112
  90. package/dist/tools/issues.js +0 -474
  91. package/dist/tools/issues.js.map +0 -1
  92. package/dist/tools/labels.d.ts +0 -87
  93. package/dist/tools/labels.js +0 -232
  94. package/dist/tools/labels.js.map +0 -1
  95. package/dist/tools/log-time.d.ts +0 -25
  96. package/dist/tools/log-time.js +0 -95
  97. package/dist/tools/log-time.js.map +0 -1
  98. package/dist/tools/meetings.d.ts +0 -30
  99. package/dist/tools/meetings.js +0 -78
  100. package/dist/tools/meetings.js.map +0 -1
  101. package/dist/tools/members.d.ts +0 -8
  102. package/dist/tools/members.js +0 -33
  103. package/dist/tools/members.js.map +0 -1
  104. package/dist/tools/message-templates.d.ts +0 -54
  105. package/dist/tools/message-templates.js +0 -88
  106. package/dist/tools/message-templates.js.map +0 -1
  107. package/dist/tools/milestones.d.ts +0 -56
  108. package/dist/tools/milestones.js +0 -172
  109. package/dist/tools/milestones.js.map +0 -1
  110. package/dist/tools/organizations.d.ts +0 -37
  111. package/dist/tools/organizations.js +0 -88
  112. package/dist/tools/organizations.js.map +0 -1
  113. package/dist/tools/overview.d.ts +0 -55
  114. package/dist/tools/overview.js +0 -395
  115. package/dist/tools/overview.js.map +0 -1
  116. package/dist/tools/planner.d.ts +0 -60
  117. package/dist/tools/planner.js +0 -145
  118. package/dist/tools/planner.js.map +0 -1
  119. package/dist/tools/process.d.ts +0 -50
  120. package/dist/tools/process.js +0 -137
  121. package/dist/tools/process.js.map +0 -1
  122. package/dist/tools/products.d.ts +0 -17
  123. package/dist/tools/products.js +0 -45
  124. package/dist/tools/products.js.map +0 -1
  125. package/dist/tools/projects.d.ts +0 -41
  126. package/dist/tools/projects.js +0 -93
  127. package/dist/tools/projects.js.map +0 -1
  128. package/dist/tools/qms.d.ts +0 -57
  129. package/dist/tools/qms.js +0 -171
  130. package/dist/tools/qms.js.map +0 -1
  131. package/dist/tools/recruiting.d.ts +0 -112
  132. package/dist/tools/recruiting.js +0 -203
  133. package/dist/tools/recruiting.js.map +0 -1
  134. package/dist/tools/relations.d.ts +0 -72
  135. package/dist/tools/relations.js +0 -192
  136. package/dist/tools/relations.js.map +0 -1
  137. package/dist/tools/search.d.ts +0 -23
  138. package/dist/tools/search.js +0 -60
  139. package/dist/tools/search.js.map +0 -1
  140. package/dist/tools/sharing.d.ts +0 -62
  141. package/dist/tools/sharing.js +0 -149
  142. package/dist/tools/sharing.js.map +0 -1
  143. package/dist/tools/statuses.d.ts +0 -19
  144. package/dist/tools/statuses.js +0 -93
  145. package/dist/tools/statuses.js.map +0 -1
  146. package/dist/tools/surveys.d.ts +0 -22
  147. package/dist/tools/surveys.js +0 -53
  148. package/dist/tools/surveys.js.map +0 -1
  149. package/dist/tools/templates.d.ts +0 -95
  150. package/dist/tools/templates.js +0 -260
  151. package/dist/tools/templates.js.map +0 -1
  152. package/dist/tools/test-automation.d.ts +0 -81
  153. package/dist/tools/test-automation.js +0 -225
  154. package/dist/tools/test-automation.js.map +0 -1
  155. package/dist/tools/testing.d.ts +0 -234
  156. package/dist/tools/testing.js +0 -401
  157. package/dist/tools/testing.js.map +0 -1
  158. package/dist/tools/workspace-admin.d.ts +0 -55
  159. package/dist/tools/workspace-admin.js +0 -117
  160. package/dist/tools/workspace-admin.js.map +0 -1
  161. package/dist/tools/workspaces.d.ts +0 -6
  162. package/dist/tools/workspaces.js +0 -19
  163. package/dist/tools/workspaces.js.map +0 -1
  164. package/dist/utils/attributes.d.ts +0 -37
  165. package/dist/utils/attributes.js +0 -188
  166. package/dist/utils/attributes.js.map +0 -1
  167. package/dist/utils/classes.d.ts +0 -51
  168. package/dist/utils/classes.js +0 -73
  169. package/dist/utils/classes.js.map +0 -1
  170. package/dist/utils/content.d.ts +0 -11
  171. package/dist/utils/content.js +0 -86
  172. package/dist/utils/content.js.map +0 -1
  173. package/dist/utils/errors.d.ts +0 -11
  174. package/dist/utils/errors.js +0 -24
  175. package/dist/utils/errors.js.map +0 -1
  176. package/dist/utils/files.d.ts +0 -5
  177. package/dist/utils/files.js +0 -50
  178. package/dist/utils/files.js.map +0 -1
  179. package/dist/utils/format.d.ts +0 -8
  180. package/dist/utils/format.js +0 -57
  181. package/dist/utils/format.js.map +0 -1
  182. package/dist/utils/junit.d.ts +0 -13
  183. package/dist/utils/junit.js +0 -81
  184. package/dist/utils/junit.js.map +0 -1
  185. package/dist/utils/markdown.d.ts +0 -14
  186. package/dist/utils/markdown.js +0 -149
  187. package/dist/utils/markdown.js.map +0 -1
  188. package/dist/utils/meeting.d.ts +0 -13
  189. package/dist/utils/meeting.js +0 -118
  190. package/dist/utils/meeting.js.map +0 -1
  191. package/dist/utils/people.d.ts +0 -25
  192. package/dist/utils/people.js +0 -80
  193. package/dist/utils/people.js.map +0 -1
  194. package/dist/utils/redact.d.ts +0 -3
  195. package/dist/utils/redact.js +0 -26
  196. package/dist/utils/redact.js.map +0 -1
  197. package/dist/utils/resolve.d.ts +0 -17
  198. package/dist/utils/resolve.js +0 -54
  199. package/dist/utils/resolve.js.map +0 -1
  200. package/dist/utils/spec.d.ts +0 -10
  201. package/dist/utils/spec.js +0 -90
  202. package/dist/utils/spec.js.map +0 -1
  203. package/dist/utils/storage.d.ts +0 -7
  204. package/dist/utils/storage.js +0 -86
  205. package/dist/utils/storage.js.map +0 -1
  206. package/dist/utils/tasks.d.ts +0 -22
  207. package/dist/utils/tasks.js +0 -81
  208. package/dist/utils/tasks.js.map +0 -1
  209. package/dist/watch.d.ts +0 -62
  210. package/dist/watch.js +0 -405
  211. package/dist/watch.js.map +0 -1
  212. package/scripts/cleanup-issues.js +0 -141
  213. package/scripts/copy-guides.js +0 -18
  214. package/scripts/demo.js +0 -201
  215. package/scripts/import-csv.js +0 -250
  216. package/scripts/sample-tasks.csv +0 -11
  217. package/scripts/setup.js +0 -163
package/dist/schemas.js DELETED
@@ -1,1086 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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;
8
- const zod_1 = require("zod");
9
- // Every tool names its workspace. Entity IDs (issue identifiers, document IDs, …)
10
- // are only unique within a workspace, so the workspace is part of their identity.
11
- // Mutations always require it; reads may omit it only when exactly one
12
- // workspace is available.
13
- const WorkspaceArg = zod_1.z.string().min(1);
14
- const ReadWorkspaceArg = zod_1.z.string().min(1).optional();
15
- const PriorityEnum = zod_1.z.enum(['NoPriority', 'Urgent', 'High', 'Medium', 'Low']);
16
- exports.ListWorkspacesSchema = zod_1.z.object({});
17
- exports.ListProjectsSchema = zod_1.z.object({
18
- workspace: ReadWorkspaceArg
19
- });
20
- exports.ListMembersSchema = zod_1.z.object({
21
- workspace: ReadWorkspaceArg
22
- });
23
- exports.ListTeamspacesSchema = zod_1.z.object({
24
- workspace: ReadWorkspaceArg
25
- });
26
- exports.GetProjectSchema = zod_1.z.object({
27
- workspace: ReadWorkspaceArg,
28
- identifier: zod_1.z.string().describe('Project key')
29
- });
30
- exports.ListIssuesSchema = zod_1.z.object({
31
- workspace: ReadWorkspaceArg,
32
- projectIdentifier: zod_1.z.string().describe('Project key'),
33
- status: zod_1.z.string().optional().describe('Status name, "open" (default) or "all"'),
34
- priority: PriorityEnum.optional().describe('Filter by priority'),
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()
42
- });
43
- exports.GetIssueSchema = zod_1.z.object({
44
- workspace: ReadWorkspaceArg,
45
- identifier: zod_1.z.string().describe('Issue id')
46
- });
47
- exports.CreateIssueSchema = zod_1.z.object({
48
- workspace: WorkspaceArg,
49
- projectIdentifier: zod_1.z.string().describe('Project key'),
50
- title: zod_1.z.string().min(1).describe('Issue title'),
51
- description: zod_1.z.string().optional().describe('Issue description as Markdown (headings, bold, code, lists, tables, mermaid supported)'),
52
- priority: PriorityEnum.default('NoPriority').describe('Issue priority'),
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()
58
- });
59
- exports.DeleteIssueSchema = zod_1.z.object({
60
- workspace: WorkspaceArg,
61
- identifier: zod_1.z.string().describe('Issue identifier to delete, e.g. "PROJ-123"')
62
- });
63
- exports.UpdateIssueSchema = zod_1.z.object({
64
- workspace: WorkspaceArg,
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')
74
- });
75
- exports.AddCommentSchema = zod_1.z.object({
76
- workspace: WorkspaceArg,
77
- identifier: zod_1.z.string().describe('Issue id'),
78
- message: zod_1.z.string().min(1)
79
- });
80
- exports.ListMilestonesSchema = zod_1.z.object({
81
- workspace: ReadWorkspaceArg,
82
- projectIdentifier: zod_1.z.string().describe('Project key')
83
- });
84
- const MilestoneStatusEnum = zod_1.z.enum(['Planned', 'InProgress', 'Completed', 'Canceled']);
85
- exports.CreateMilestoneSchema = zod_1.z.object({
86
- workspace: WorkspaceArg,
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')
91
- });
92
- exports.GetMilestoneSchema = zod_1.z.object({
93
- workspace: ReadWorkspaceArg,
94
- projectIdentifier: zod_1.z.string().describe('Project key'),
95
- label: zod_1.z.string().min(1)
96
- });
97
- exports.UpdateMilestoneSchema = zod_1.z.object({
98
- workspace: WorkspaceArg,
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')
105
- });
106
- exports.DeleteMilestoneSchema = zod_1.z.object({
107
- workspace: WorkspaceArg,
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')
111
- });
112
- exports.ListComponentsSchema = zod_1.z.object({
113
- workspace: ReadWorkspaceArg,
114
- projectIdentifier: zod_1.z.string().describe('Project key')
115
- });
116
- exports.CreateComponentSchema = zod_1.z.object({
117
- workspace: WorkspaceArg,
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')
122
- });
123
- exports.UpdateComponentSchema = zod_1.z.object({
124
- workspace: WorkspaceArg,
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')
130
- });
131
- exports.DeleteComponentSchema = zod_1.z.object({
132
- workspace: WorkspaceArg,
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')
136
- });
137
- exports.CreateProjectSchema = zod_1.z.object({
138
- workspace: WorkspaceArg,
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()
142
- });
143
- exports.DeleteDocumentSchema = zod_1.z.object({
144
- workspace: WorkspaceArg,
145
- documentId: zod_1.z.string().describe('Document _id to delete (from list_documents)')
146
- });
147
- exports.CreateTeamspaceSchema = zod_1.z.object({
148
- workspace: WorkspaceArg,
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')
152
- });
153
- exports.ListDocumentsSchema = zod_1.z.object({
154
- workspace: ReadWorkspaceArg,
155
- teamspaceId: zod_1.z.string().describe('Teamspace id')
156
- });
157
- exports.GetDocumentSchema = zod_1.z.object({
158
- workspace: ReadWorkspaceArg,
159
- documentId: zod_1.z.string().describe('Document _id from list_documents')
160
- });
161
- exports.CreateDocumentSchema = zod_1.z.object({
162
- workspace: WorkspaceArg,
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')
166
- });
167
- exports.SearchIssuesSchema = zod_1.z.object({
168
- workspace: ReadWorkspaceArg,
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)
177
- });
178
- // ── Labels ────────────────────────────────────────────────────────────────────
179
- exports.ListLabelsSchema = zod_1.z.object({
180
- workspace: ReadWorkspaceArg,
181
- projectIdentifier: zod_1.z.string().optional().describe('Ignored (labels are workspace-wide)')
182
- });
183
- exports.CreateLabelSchema = zod_1.z.object({
184
- workspace: WorkspaceArg,
185
- title: zod_1.z.string().min(1),
186
- color: zod_1.z.string().optional().describe('Hex color, e.g. #FF6B6B')
187
- });
188
- exports.AddLabelSchema = zod_1.z.object({
189
- workspace: WorkspaceArg,
190
- identifier: zod_1.z.string().describe('Issue id'),
191
- labelName: zod_1.z.string().min(1).describe('Label name to add (auto-created if it does not exist)')
192
- });
193
- exports.RemoveLabelSchema = zod_1.z.object({
194
- workspace: WorkspaceArg,
195
- identifier: zod_1.z.string().describe('Issue id'),
196
- labelName: zod_1.z.string().min(1)
197
- });
198
- // ── Relations ─────────────────────────────────────────────────────────────────
199
- exports.AddRelationSchema = zod_1.z.object({
200
- workspace: WorkspaceArg,
201
- identifier: zod_1.z.string().describe('Issue id'),
202
- relatedTo: zod_1.z.string().describe('Related issue id')
203
- });
204
- exports.AddBlockedBySchema = zod_1.z.object({
205
- workspace: WorkspaceArg,
206
- identifier: zod_1.z.string().describe('Blocked issue id'),
207
- blockedBy: zod_1.z.string().describe('Issue that blocks it, e.g. "PROJ-100"')
208
- });
209
- exports.SetParentSchema = zod_1.z.object({
210
- workspace: WorkspaceArg,
211
- identifier: zod_1.z.string().describe('Child issue identifier, e.g. "PROJ-123"'),
212
- parentIdentifier: zod_1.z.string().nullable().optional().describe('Parent issue id; null clears')
213
- });
214
- exports.ListCommentsSchema = zod_1.z.object({
215
- workspace: ReadWorkspaceArg,
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')
219
- });
220
- exports.LogTimeSchema = zod_1.z.object({
221
- workspace: WorkspaceArg,
222
- identifier: zod_1.z.string().describe('Issue id'),
223
- hours: zod_1.z.number().positive().describe('Hours spent (e.g. 2.5)'),
224
- description: zod_1.z.string().optional().describe('Note')
225
- });
226
- exports.UpdateDocumentSchema = zod_1.z.object({
227
- workspace: WorkspaceArg,
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)
243
- });
244
- exports.DeleteCommentSchema = zod_1.z.object({
245
- workspace: WorkspaceArg,
246
- identifier: zod_1.z.string().describe('Issue id'),
247
- commentId: zod_1.z.string().describe('Comment _id from list_comments')
248
- });
249
- exports.LinkDocumentSchema = zod_1.z.object({
250
- workspace: WorkspaceArg,
251
- identifier: zod_1.z.string().describe('Issue id'),
252
- documentId: zod_1.z.string().describe('Document id')
253
- });
254
- // ── Chat (Channels & Direct Messages) ──────────────────────────────────────
255
- exports.ListChannelsSchema = zod_1.z.object({
256
- workspace: ReadWorkspaceArg,
257
- includeArchived: zod_1.z.boolean().default(false).describe('Include archived channels')
258
- });
259
- exports.CreateChannelSchema = zod_1.z.object({
260
- workspace: WorkspaceArg,
261
- name: zod_1.z.string().min(1),
262
- topic: zod_1.z.string().optional().describe('Optional channel topic/description'),
263
- isPrivate: zod_1.z.boolean().default(false).describe('Invite-only')
264
- });
265
- exports.StartDirectMessageSchema = zod_1.z.object({
266
- workspace: WorkspaceArg,
267
- member: zod_1.z.string().min(1).describe('Person name')
268
- });
269
- exports.SendMessageSchema = zod_1.z.object({
270
- workspace: WorkspaceArg,
271
- spaceId: zod_1.z.string().describe('Channel or direct-message _id, from list_channels/create_channel/start_direct_message'),
272
- message: zod_1.z.string().min(1)
273
- });
274
- exports.ListMessagesSchema = zod_1.z.object({
275
- workspace: ReadWorkspaceArg,
276
- spaceId: zod_1.z.string().describe('Channel or direct-message _id'),
277
- limit: zod_1.z.number().int().min(1).max(200).default(50)
278
- });
279
- // ── Attachments ─────────────────────────────────────────────────────────────
280
- exports.AttachFileSchema = zod_1.z.object({
281
- workspace: WorkspaceArg,
282
- identifier: zod_1.z.string().describe('Issue identifier to attach the file to, e.g. "PROJ-123"'),
283
- filename: zod_1.z.string().min(1).describe('File name, e.g. "screenshot.png"'),
284
- contentBase64: zod_1.z.string().min(1).describe('File content, base64-encoded'),
285
- mimeType: zod_1.z.string().default('application/octet-stream').describe('MIME type, e.g. "image/png"')
286
- });
287
- exports.ListAttachmentsSchema = zod_1.z.object({
288
- workspace: ReadWorkspaceArg,
289
- identifier: zod_1.z.string().describe('Issue id')
290
- });
291
- exports.DeleteAttachmentSchema = zod_1.z.object({
292
- workspace: WorkspaceArg,
293
- identifier: zod_1.z.string().describe('Issue id'),
294
- attachmentId: zod_1.z.string().describe('Attachment _id from list_attachments')
295
- });
296
- // ── Issue Statuses (custom workflow states) ────────────────────────────────
297
- const StatusCategoryEnum = zod_1.z.enum(['Backlog', 'Todo', 'InProgress', 'Done', 'Cancelled']);
298
- exports.ListIssueStatusesSchema = zod_1.z.object({
299
- workspace: ReadWorkspaceArg
300
- });
301
- exports.CreateIssueStatusSchema = zod_1.z.object({
302
- workspace: WorkspaceArg,
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')
306
- });
307
- // ── Organizations (contacts/CRM) ────────────────────────────────────────────
308
- exports.ListOrganizationsSchema = zod_1.z.object({
309
- workspace: ReadWorkspaceArg
310
- });
311
- exports.GetOrganizationSchema = zod_1.z.object({
312
- workspace: ReadWorkspaceArg,
313
- organizationId: zod_1.z.string().describe('Organization id')
314
- });
315
- exports.CreateOrganizationSchema = zod_1.z.object({
316
- workspace: WorkspaceArg,
317
- name: zod_1.z.string().min(1),
318
- city: zod_1.z.string().optional().describe('City (optional)')
319
- });
320
- exports.UpdateOrganizationSchema = zod_1.z.object({
321
- workspace: WorkspaceArg,
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')
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() });
1086
- //# sourceMappingURL=schemas.js.map