@vibescope/mcp-server 0.5.0 → 0.5.2

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 (162) hide show
  1. package/CHANGELOG.md +84 -84
  2. package/README.md +194 -194
  3. package/dist/api-client/tasks.d.ts +1 -0
  4. package/dist/cli-init.js +21 -21
  5. package/dist/cli.js +26 -26
  6. package/dist/handlers/session.js +3 -1
  7. package/dist/handlers/tasks.js +7 -1
  8. package/dist/handlers/tool-docs.js +1216 -1216
  9. package/dist/index.js +73 -73
  10. package/dist/templates/agent-guidelines.d.ts +1 -1
  11. package/dist/templates/agent-guidelines.js +205 -205
  12. package/dist/templates/help-content.js +1621 -1621
  13. package/dist/tools/bodies-of-work.js +6 -6
  14. package/dist/tools/cloud-agents.js +22 -22
  15. package/dist/tools/milestones.js +2 -2
  16. package/dist/tools/requests.js +1 -1
  17. package/dist/tools/session.js +11 -11
  18. package/dist/tools/sprints.js +9 -9
  19. package/dist/tools/tasks.js +43 -35
  20. package/dist/tools/worktrees.js +14 -14
  21. package/dist/utils.js +11 -11
  22. package/docs/TOOLS.md +2687 -2685
  23. package/package.json +53 -53
  24. package/scripts/generate-docs.ts +212 -212
  25. package/scripts/version-bump.ts +203 -203
  26. package/src/api-client/blockers.ts +86 -86
  27. package/src/api-client/bodies-of-work.ts +194 -194
  28. package/src/api-client/chat.ts +50 -50
  29. package/src/api-client/connectors.ts +152 -152
  30. package/src/api-client/cost.ts +185 -185
  31. package/src/api-client/decisions.ts +87 -87
  32. package/src/api-client/deployment.ts +313 -313
  33. package/src/api-client/discovery.ts +81 -81
  34. package/src/api-client/fallback.ts +52 -52
  35. package/src/api-client/file-checkouts.ts +115 -115
  36. package/src/api-client/findings.ts +100 -100
  37. package/src/api-client/git-issues.ts +88 -88
  38. package/src/api-client/ideas.ts +112 -112
  39. package/src/api-client/index.ts +592 -592
  40. package/src/api-client/milestones.ts +83 -83
  41. package/src/api-client/organizations.ts +185 -185
  42. package/src/api-client/progress.ts +94 -94
  43. package/src/api-client/project.ts +181 -181
  44. package/src/api-client/requests.ts +54 -54
  45. package/src/api-client/session.ts +220 -220
  46. package/src/api-client/sprints.ts +227 -227
  47. package/src/api-client/subtasks.ts +57 -57
  48. package/src/api-client/tasks.ts +451 -450
  49. package/src/api-client/types.ts +32 -32
  50. package/src/api-client/validation.ts +60 -60
  51. package/src/api-client/worktrees.ts +53 -53
  52. package/src/api-client.test.ts +847 -847
  53. package/src/api-client.ts +2728 -2728
  54. package/src/cli-init.ts +558 -558
  55. package/src/cli.test.ts +284 -284
  56. package/src/cli.ts +204 -204
  57. package/src/handlers/__test-setup__.ts +240 -240
  58. package/src/handlers/__test-utils__.ts +89 -89
  59. package/src/handlers/blockers.test.ts +468 -468
  60. package/src/handlers/blockers.ts +172 -172
  61. package/src/handlers/bodies-of-work.test.ts +704 -704
  62. package/src/handlers/bodies-of-work.ts +526 -526
  63. package/src/handlers/chat.test.ts +185 -185
  64. package/src/handlers/chat.ts +101 -101
  65. package/src/handlers/cloud-agents.test.ts +438 -438
  66. package/src/handlers/cloud-agents.ts +156 -156
  67. package/src/handlers/connectors.test.ts +834 -834
  68. package/src/handlers/connectors.ts +229 -229
  69. package/src/handlers/cost.test.ts +462 -462
  70. package/src/handlers/cost.ts +285 -285
  71. package/src/handlers/decisions.test.ts +382 -382
  72. package/src/handlers/decisions.ts +153 -153
  73. package/src/handlers/deployment.test.ts +551 -551
  74. package/src/handlers/deployment.ts +570 -570
  75. package/src/handlers/discovery.test.ts +206 -206
  76. package/src/handlers/discovery.ts +433 -433
  77. package/src/handlers/fallback.test.ts +537 -537
  78. package/src/handlers/fallback.ts +194 -194
  79. package/src/handlers/file-checkouts.test.ts +750 -750
  80. package/src/handlers/file-checkouts.ts +185 -185
  81. package/src/handlers/findings.test.ts +633 -633
  82. package/src/handlers/findings.ts +239 -239
  83. package/src/handlers/git-issues.test.ts +631 -631
  84. package/src/handlers/git-issues.ts +136 -136
  85. package/src/handlers/ideas.test.ts +644 -644
  86. package/src/handlers/ideas.ts +207 -207
  87. package/src/handlers/index.ts +93 -93
  88. package/src/handlers/milestones.test.ts +475 -475
  89. package/src/handlers/milestones.ts +180 -180
  90. package/src/handlers/organizations.test.ts +826 -826
  91. package/src/handlers/organizations.ts +315 -315
  92. package/src/handlers/progress.test.ts +269 -269
  93. package/src/handlers/progress.ts +77 -77
  94. package/src/handlers/project.test.ts +546 -546
  95. package/src/handlers/project.ts +245 -245
  96. package/src/handlers/requests.test.ts +303 -303
  97. package/src/handlers/requests.ts +99 -99
  98. package/src/handlers/roles.test.ts +305 -305
  99. package/src/handlers/roles.ts +219 -219
  100. package/src/handlers/session.test.ts +998 -998
  101. package/src/handlers/session.ts +1107 -1105
  102. package/src/handlers/sprints.test.ts +732 -732
  103. package/src/handlers/sprints.ts +537 -537
  104. package/src/handlers/tasks.test.ts +931 -931
  105. package/src/handlers/tasks.ts +1144 -1137
  106. package/src/handlers/tool-categories.test.ts +66 -66
  107. package/src/handlers/tool-docs.test.ts +511 -511
  108. package/src/handlers/tool-docs.ts +1595 -1595
  109. package/src/handlers/types.test.ts +259 -259
  110. package/src/handlers/types.ts +176 -176
  111. package/src/handlers/validation.test.ts +582 -582
  112. package/src/handlers/validation.ts +164 -164
  113. package/src/handlers/version.ts +63 -63
  114. package/src/index.test.ts +674 -674
  115. package/src/index.ts +884 -884
  116. package/src/setup.test.ts +243 -243
  117. package/src/setup.ts +410 -410
  118. package/src/templates/agent-guidelines.ts +233 -233
  119. package/src/templates/help-content.ts +1751 -1751
  120. package/src/token-tracking.test.ts +463 -463
  121. package/src/token-tracking.ts +167 -167
  122. package/src/tools/blockers.ts +122 -122
  123. package/src/tools/bodies-of-work.ts +283 -283
  124. package/src/tools/chat.ts +72 -72
  125. package/src/tools/cloud-agents.ts +101 -101
  126. package/src/tools/connectors.ts +191 -191
  127. package/src/tools/cost.ts +111 -111
  128. package/src/tools/decisions.ts +111 -111
  129. package/src/tools/deployment.ts +455 -455
  130. package/src/tools/discovery.ts +76 -76
  131. package/src/tools/fallback.ts +111 -111
  132. package/src/tools/features.ts +154 -154
  133. package/src/tools/file-checkouts.ts +145 -145
  134. package/src/tools/findings.ts +101 -101
  135. package/src/tools/git-issues.ts +130 -130
  136. package/src/tools/ideas.ts +162 -162
  137. package/src/tools/index.ts +145 -145
  138. package/src/tools/milestones.ts +118 -118
  139. package/src/tools/organizations.ts +224 -224
  140. package/src/tools/persona-templates.ts +25 -25
  141. package/src/tools/progress.ts +73 -73
  142. package/src/tools/project.ts +210 -210
  143. package/src/tools/requests.ts +68 -68
  144. package/src/tools/roles.ts +112 -112
  145. package/src/tools/session.ts +181 -181
  146. package/src/tools/sprints.ts +298 -298
  147. package/src/tools/tasks.ts +583 -575
  148. package/src/tools/tools.test.ts +222 -222
  149. package/src/tools/types.ts +9 -9
  150. package/src/tools/validation.ts +75 -75
  151. package/src/tools/version.ts +34 -34
  152. package/src/tools/worktrees.ts +66 -66
  153. package/src/tools.test.ts +416 -416
  154. package/src/utils.test.ts +1014 -1014
  155. package/src/utils.ts +586 -586
  156. package/src/validators.test.ts +223 -223
  157. package/src/validators.ts +249 -249
  158. package/src/version.ts +162 -162
  159. package/tsconfig.json +16 -16
  160. package/vitest.config.ts +14 -14
  161. package/dist/tools.d.ts +0 -2
  162. package/dist/tools.js +0 -3602
@@ -1,455 +1,455 @@
1
- /**
2
- * Deployment Tool Definitions
3
- *
4
- * Tools for deployment coordination:
5
- * - request_deployment
6
- * - claim_deployment_validation
7
- * - report_validation
8
- * - check_deployment_status
9
- * - start_deployment
10
- * - complete_deployment
11
- * - cancel_deployment
12
- * - add_deployment_requirement
13
- * - complete_deployment_requirement
14
- * - get_deployment_requirements
15
- * - get_deployment_requirements_stats
16
- * - schedule_deployment
17
- * - get_scheduled_deployments
18
- * - update_scheduled_deployment
19
- * - delete_scheduled_deployment
20
- * - trigger_scheduled_deployment
21
- * - check_due_deployments
22
- */
23
-
24
- import type { Tool } from './types.js';
25
-
26
- export const deploymentTools: Tool[] = [
27
- {
28
- name: 'request_deployment',
29
- description: 'Request a deployment. Requires validation first. One active deployment per project.',
30
- inputSchema: {
31
- type: 'object',
32
- properties: {
33
- project_id: {
34
- type: 'string',
35
- description: 'Project UUID',
36
- },
37
- environment: {
38
- type: 'string',
39
- enum: ['development', 'staging', 'production'],
40
- description: 'Target environment (default: production)',
41
- },
42
- version_bump: {
43
- type: 'string',
44
- enum: ['patch', 'minor', 'major'],
45
- description: 'Version bump: major/minor/patch (default: patch)',
46
- },
47
- notes: {
48
- type: 'string',
49
- description: 'Optional notes about this deployment',
50
- },
51
- git_ref: {
52
- type: 'string',
53
- description: 'Git branch or commit being deployed',
54
- },
55
- },
56
- required: ['project_id'],
57
- },
58
- },
59
- {
60
- name: 'claim_deployment_validation',
61
- description: `Claim pending deployment for validation. Run build+tests, then call report_validation.`,
62
- inputSchema: {
63
- type: 'object',
64
- properties: {
65
- project_id: {
66
- type: 'string',
67
- description: 'Project UUID',
68
- },
69
- },
70
- required: ['project_id'],
71
- },
72
- },
73
- {
74
- name: 'report_validation',
75
- description: `Report build/test results. If passed, status->'ready'. If failed, creates investigation task.`,
76
- inputSchema: {
77
- type: 'object',
78
- properties: {
79
- project_id: {
80
- type: 'string',
81
- description: 'Project UUID',
82
- },
83
- build_passed: {
84
- type: 'boolean',
85
- description: 'Whether the build succeeded',
86
- },
87
- tests_passed: {
88
- type: 'boolean',
89
- description: 'Whether the tests passed',
90
- },
91
- error_message: {
92
- type: 'string',
93
- description: 'Error details if validation failed',
94
- },
95
- },
96
- required: ['project_id', 'build_passed', 'tests_passed'],
97
- },
98
- },
99
- {
100
- name: 'check_deployment_status',
101
- description: `Get active deployment status and details.`,
102
- inputSchema: {
103
- type: 'object',
104
- properties: {
105
- project_id: {
106
- type: 'string',
107
- description: 'Project UUID',
108
- },
109
- },
110
- required: ['project_id'],
111
- },
112
- },
113
- {
114
- name: 'start_deployment',
115
- description: `Start deployment (requires 'ready' status). Sets status to 'deploying'.`,
116
- inputSchema: {
117
- type: 'object',
118
- properties: {
119
- project_id: {
120
- type: 'string',
121
- description: 'Project UUID',
122
- },
123
- },
124
- required: ['project_id'],
125
- },
126
- },
127
- {
128
- name: 'complete_deployment',
129
- description: `Mark deployment as complete (success or failure).`,
130
- inputSchema: {
131
- type: 'object',
132
- properties: {
133
- project_id: {
134
- type: 'string',
135
- description: 'Project UUID',
136
- },
137
- success: {
138
- type: 'boolean',
139
- description: 'Whether the deployment succeeded',
140
- },
141
- summary: {
142
- type: 'string',
143
- description: 'Summary of what was deployed or why it failed',
144
- },
145
- },
146
- required: ['project_id', 'success'],
147
- },
148
- },
149
- {
150
- name: 'cancel_deployment',
151
- description: `Cancel active deployment. Sets status to 'failed'.`,
152
- inputSchema: {
153
- type: 'object',
154
- properties: {
155
- project_id: {
156
- type: 'string',
157
- description: 'Project UUID',
158
- },
159
- reason: {
160
- type: 'string',
161
- description: 'Reason for cancellation',
162
- },
163
- },
164
- required: ['project_id'],
165
- },
166
- },
167
- {
168
- name: 'add_deployment_requirement',
169
- description: `Add a pre-deployment requirement (migration, env var, config change). These are shown as a checklist before deployment.`,
170
- inputSchema: {
171
- type: 'object',
172
- properties: {
173
- project_id: {
174
- type: 'string',
175
- description: 'Project UUID',
176
- },
177
- type: {
178
- type: 'string',
179
- description: 'Type of requirement',
180
- enum: ['migration', 'env_var', 'config', 'manual', 'breaking_change', 'agent_task'],
181
- },
182
- title: {
183
- type: 'string',
184
- description: 'Brief description (e.g., "Run migration: 20250114_token_tracking.sql")',
185
- },
186
- description: {
187
- type: 'string',
188
- description: 'Optional detailed instructions',
189
- },
190
- file_path: {
191
- type: 'string',
192
- description: 'Optional file path reference',
193
- },
194
- stage: {
195
- type: 'string',
196
- description: 'Deployment stage: preparation (default), deployment, or verification',
197
- enum: ['preparation', 'deployment', 'verification'],
198
- },
199
- blocking: {
200
- type: 'boolean',
201
- description: 'When true, converted task blocks all other work until complete',
202
- },
203
- recurring: {
204
- type: 'boolean',
205
- description: 'When true, requirement resets to pending when a new deployment is requested',
206
- },
207
- },
208
- required: ['project_id', 'type', 'title'],
209
- },
210
- },
211
- {
212
- name: 'complete_deployment_requirement',
213
- description: `Mark a deployment requirement as completed.`,
214
- inputSchema: {
215
- type: 'object',
216
- properties: {
217
- requirement_id: {
218
- type: 'string',
219
- description: 'Requirement UUID',
220
- },
221
- },
222
- required: ['requirement_id'],
223
- },
224
- },
225
- {
226
- name: 'get_deployment_requirements',
227
- description: `Get pending deployment requirements for a project.`,
228
- inputSchema: {
229
- type: 'object',
230
- properties: {
231
- project_id: {
232
- type: 'string',
233
- description: 'Project UUID',
234
- },
235
- status: {
236
- type: 'string',
237
- description: 'Filter by status (default: pending)',
238
- enum: ['pending', 'completed', 'converted_to_task', 'all'],
239
- },
240
- stage: {
241
- type: 'string',
242
- description: 'Filter by stage (optional)',
243
- enum: ['preparation', 'deployment', 'verification', 'all'],
244
- },
245
- limit: {
246
- type: 'number',
247
- description: 'Max number of requirements to return (default 50, max 200)',
248
- },
249
- offset: {
250
- type: 'number',
251
- description: 'Number of requirements to skip for pagination (default 0)',
252
- },
253
- },
254
- required: ['project_id'],
255
- },
256
- },
257
- {
258
- name: 'get_deployment_requirements_stats',
259
- description: `Get aggregate statistics about deployment requirements for a project. Returns total count and breakdowns by status, stage, and type. More token-efficient than get_deployment_requirements when you just need to understand the overall state.`,
260
- inputSchema: {
261
- type: 'object',
262
- properties: {
263
- project_id: { type: 'string', description: 'Project UUID' },
264
- },
265
- required: ['project_id'],
266
- },
267
- },
268
- {
269
- name: 'reorder_deployment_requirements',
270
- description: `Reorder deployment requirements within a stage. Pass the requirement IDs in the desired order.`,
271
- inputSchema: {
272
- type: 'object',
273
- properties: {
274
- project_id: { type: 'string', description: 'Project UUID' },
275
- stage: { type: 'string', enum: ['preparation', 'deployment', 'verification'], description: 'Deployment stage' },
276
- requirement_ids: { type: 'array', items: { type: 'string' }, description: 'Ordered array of requirement UUIDs' },
277
- },
278
- required: ['project_id', 'stage', 'requirement_ids'],
279
- },
280
- },
281
- {
282
- name: 'schedule_deployment',
283
- description: `Schedule a deployment for a specific time. Supports one-time and recurring schedules with auto-trigger or manual trigger modes.`,
284
- inputSchema: {
285
- type: 'object',
286
- properties: {
287
- project_id: {
288
- type: 'string',
289
- description: 'Project UUID',
290
- },
291
- scheduled_at: {
292
- type: 'string',
293
- description: 'ISO 8601 datetime for when the deployment should be triggered',
294
- },
295
- schedule_type: {
296
- type: 'string',
297
- description: 'Schedule type: once (one-time), hourly, daily, weekly, or monthly',
298
- enum: ['once', 'hourly', 'daily', 'weekly', 'monthly'],
299
- },
300
- hours_interval: {
301
- type: 'number',
302
- description: 'For hourly schedules, the number of hours between runs (1-24, default: 1)',
303
- minimum: 1,
304
- maximum: 24,
305
- },
306
- auto_trigger: {
307
- type: 'boolean',
308
- description: 'Whether agents should automatically trigger this deployment when due (default: true)',
309
- },
310
- environment: {
311
- type: 'string',
312
- description: 'Target environment (default: production)',
313
- enum: ['development', 'staging', 'production'],
314
- },
315
- version_bump: {
316
- type: 'string',
317
- description: 'Version bump: patch, minor, or major (default: patch)',
318
- enum: ['patch', 'minor', 'major'],
319
- },
320
- notes: {
321
- type: 'string',
322
- description: 'Optional notes about this scheduled deployment',
323
- },
324
- git_ref: {
325
- type: 'string',
326
- description: 'Optional git branch or commit to deploy',
327
- },
328
- },
329
- required: ['project_id', 'scheduled_at'],
330
- },
331
- },
332
- {
333
- name: 'get_scheduled_deployments',
334
- description: `Get scheduled deployments for a project.`,
335
- inputSchema: {
336
- type: 'object',
337
- properties: {
338
- project_id: {
339
- type: 'string',
340
- description: 'Project UUID',
341
- },
342
- include_disabled: {
343
- type: 'boolean',
344
- description: 'Include disabled schedules (default: false)',
345
- },
346
- limit: {
347
- type: 'number',
348
- description: 'Max schedules to return (default: 50)',
349
- },
350
- offset: {
351
- type: 'number',
352
- description: 'Number of schedules to skip for pagination (default: 0)',
353
- },
354
- },
355
- required: ['project_id'],
356
- },
357
- },
358
- {
359
- name: 'update_scheduled_deployment',
360
- description: `Update a scheduled deployment's configuration.`,
361
- inputSchema: {
362
- type: 'object',
363
- properties: {
364
- schedule_id: {
365
- type: 'string',
366
- description: 'Schedule UUID',
367
- },
368
- scheduled_at: {
369
- type: 'string',
370
- description: 'New scheduled time (ISO 8601)',
371
- },
372
- schedule_type: {
373
- type: 'string',
374
- description: 'New schedule type',
375
- enum: ['once', 'hourly', 'daily', 'weekly', 'monthly'],
376
- },
377
- hours_interval: {
378
- type: 'number',
379
- description: 'For hourly schedules, the number of hours between runs (1-24)',
380
- minimum: 1,
381
- maximum: 24,
382
- },
383
- auto_trigger: {
384
- type: 'boolean',
385
- description: 'Whether to auto-trigger',
386
- },
387
- enabled: {
388
- type: 'boolean',
389
- description: 'Enable or disable the schedule',
390
- },
391
- environment: {
392
- type: 'string',
393
- description: 'Target environment',
394
- enum: ['development', 'staging', 'production'],
395
- },
396
- version_bump: {
397
- type: 'string',
398
- description: 'Version bump type',
399
- enum: ['patch', 'minor', 'major'],
400
- },
401
- notes: {
402
- type: 'string',
403
- description: 'Notes about this deployment',
404
- },
405
- git_ref: {
406
- type: 'string',
407
- description: 'Git branch or commit to deploy',
408
- },
409
- },
410
- required: ['schedule_id'],
411
- },
412
- },
413
- {
414
- name: 'delete_scheduled_deployment',
415
- description: `Delete a scheduled deployment.`,
416
- inputSchema: {
417
- type: 'object',
418
- properties: {
419
- schedule_id: {
420
- type: 'string',
421
- description: 'Schedule UUID',
422
- },
423
- },
424
- required: ['schedule_id'],
425
- },
426
- },
427
- {
428
- name: 'trigger_scheduled_deployment',
429
- description: `Manually trigger a scheduled deployment. Creates a new deployment and updates the schedule.`,
430
- inputSchema: {
431
- type: 'object',
432
- properties: {
433
- schedule_id: {
434
- type: 'string',
435
- description: 'Schedule UUID',
436
- },
437
- },
438
- required: ['schedule_id'],
439
- },
440
- },
441
- {
442
- name: 'check_due_deployments',
443
- description: `Check for scheduled deployments that are due. Returns schedules where: enabled AND auto_trigger AND scheduled_at <= NOW().`,
444
- inputSchema: {
445
- type: 'object',
446
- properties: {
447
- project_id: {
448
- type: 'string',
449
- description: 'Project UUID',
450
- },
451
- },
452
- required: ['project_id'],
453
- },
454
- },
455
- ];
1
+ /**
2
+ * Deployment Tool Definitions
3
+ *
4
+ * Tools for deployment coordination:
5
+ * - request_deployment
6
+ * - claim_deployment_validation
7
+ * - report_validation
8
+ * - check_deployment_status
9
+ * - start_deployment
10
+ * - complete_deployment
11
+ * - cancel_deployment
12
+ * - add_deployment_requirement
13
+ * - complete_deployment_requirement
14
+ * - get_deployment_requirements
15
+ * - get_deployment_requirements_stats
16
+ * - schedule_deployment
17
+ * - get_scheduled_deployments
18
+ * - update_scheduled_deployment
19
+ * - delete_scheduled_deployment
20
+ * - trigger_scheduled_deployment
21
+ * - check_due_deployments
22
+ */
23
+
24
+ import type { Tool } from './types.js';
25
+
26
+ export const deploymentTools: Tool[] = [
27
+ {
28
+ name: 'request_deployment',
29
+ description: 'Request a deployment. Requires validation first. One active deployment per project.',
30
+ inputSchema: {
31
+ type: 'object',
32
+ properties: {
33
+ project_id: {
34
+ type: 'string',
35
+ description: 'Project UUID',
36
+ },
37
+ environment: {
38
+ type: 'string',
39
+ enum: ['development', 'staging', 'production'],
40
+ description: 'Target environment (default: production)',
41
+ },
42
+ version_bump: {
43
+ type: 'string',
44
+ enum: ['patch', 'minor', 'major'],
45
+ description: 'Version bump: major/minor/patch (default: patch)',
46
+ },
47
+ notes: {
48
+ type: 'string',
49
+ description: 'Optional notes about this deployment',
50
+ },
51
+ git_ref: {
52
+ type: 'string',
53
+ description: 'Git branch or commit being deployed',
54
+ },
55
+ },
56
+ required: ['project_id'],
57
+ },
58
+ },
59
+ {
60
+ name: 'claim_deployment_validation',
61
+ description: `Claim pending deployment for validation. Run build+tests, then call report_validation.`,
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {
65
+ project_id: {
66
+ type: 'string',
67
+ description: 'Project UUID',
68
+ },
69
+ },
70
+ required: ['project_id'],
71
+ },
72
+ },
73
+ {
74
+ name: 'report_validation',
75
+ description: `Report build/test results. If passed, status->'ready'. If failed, creates investigation task.`,
76
+ inputSchema: {
77
+ type: 'object',
78
+ properties: {
79
+ project_id: {
80
+ type: 'string',
81
+ description: 'Project UUID',
82
+ },
83
+ build_passed: {
84
+ type: 'boolean',
85
+ description: 'Whether the build succeeded',
86
+ },
87
+ tests_passed: {
88
+ type: 'boolean',
89
+ description: 'Whether the tests passed',
90
+ },
91
+ error_message: {
92
+ type: 'string',
93
+ description: 'Error details if validation failed',
94
+ },
95
+ },
96
+ required: ['project_id', 'build_passed', 'tests_passed'],
97
+ },
98
+ },
99
+ {
100
+ name: 'check_deployment_status',
101
+ description: `Get active deployment status and details.`,
102
+ inputSchema: {
103
+ type: 'object',
104
+ properties: {
105
+ project_id: {
106
+ type: 'string',
107
+ description: 'Project UUID',
108
+ },
109
+ },
110
+ required: ['project_id'],
111
+ },
112
+ },
113
+ {
114
+ name: 'start_deployment',
115
+ description: `Start deployment (requires 'ready' status). Sets status to 'deploying'.`,
116
+ inputSchema: {
117
+ type: 'object',
118
+ properties: {
119
+ project_id: {
120
+ type: 'string',
121
+ description: 'Project UUID',
122
+ },
123
+ },
124
+ required: ['project_id'],
125
+ },
126
+ },
127
+ {
128
+ name: 'complete_deployment',
129
+ description: `Mark deployment as complete (success or failure).`,
130
+ inputSchema: {
131
+ type: 'object',
132
+ properties: {
133
+ project_id: {
134
+ type: 'string',
135
+ description: 'Project UUID',
136
+ },
137
+ success: {
138
+ type: 'boolean',
139
+ description: 'Whether the deployment succeeded',
140
+ },
141
+ summary: {
142
+ type: 'string',
143
+ description: 'Summary of what was deployed or why it failed',
144
+ },
145
+ },
146
+ required: ['project_id', 'success'],
147
+ },
148
+ },
149
+ {
150
+ name: 'cancel_deployment',
151
+ description: `Cancel active deployment. Sets status to 'failed'.`,
152
+ inputSchema: {
153
+ type: 'object',
154
+ properties: {
155
+ project_id: {
156
+ type: 'string',
157
+ description: 'Project UUID',
158
+ },
159
+ reason: {
160
+ type: 'string',
161
+ description: 'Reason for cancellation',
162
+ },
163
+ },
164
+ required: ['project_id'],
165
+ },
166
+ },
167
+ {
168
+ name: 'add_deployment_requirement',
169
+ description: `Add a pre-deployment requirement (migration, env var, config change). These are shown as a checklist before deployment.`,
170
+ inputSchema: {
171
+ type: 'object',
172
+ properties: {
173
+ project_id: {
174
+ type: 'string',
175
+ description: 'Project UUID',
176
+ },
177
+ type: {
178
+ type: 'string',
179
+ description: 'Type of requirement',
180
+ enum: ['migration', 'env_var', 'config', 'manual', 'breaking_change', 'agent_task'],
181
+ },
182
+ title: {
183
+ type: 'string',
184
+ description: 'Brief description (e.g., "Run migration: 20250114_token_tracking.sql")',
185
+ },
186
+ description: {
187
+ type: 'string',
188
+ description: 'Optional detailed instructions',
189
+ },
190
+ file_path: {
191
+ type: 'string',
192
+ description: 'Optional file path reference',
193
+ },
194
+ stage: {
195
+ type: 'string',
196
+ description: 'Deployment stage: preparation (default), deployment, or verification',
197
+ enum: ['preparation', 'deployment', 'verification'],
198
+ },
199
+ blocking: {
200
+ type: 'boolean',
201
+ description: 'When true, converted task blocks all other work until complete',
202
+ },
203
+ recurring: {
204
+ type: 'boolean',
205
+ description: 'When true, requirement resets to pending when a new deployment is requested',
206
+ },
207
+ },
208
+ required: ['project_id', 'type', 'title'],
209
+ },
210
+ },
211
+ {
212
+ name: 'complete_deployment_requirement',
213
+ description: `Mark a deployment requirement as completed.`,
214
+ inputSchema: {
215
+ type: 'object',
216
+ properties: {
217
+ requirement_id: {
218
+ type: 'string',
219
+ description: 'Requirement UUID',
220
+ },
221
+ },
222
+ required: ['requirement_id'],
223
+ },
224
+ },
225
+ {
226
+ name: 'get_deployment_requirements',
227
+ description: `Get pending deployment requirements for a project.`,
228
+ inputSchema: {
229
+ type: 'object',
230
+ properties: {
231
+ project_id: {
232
+ type: 'string',
233
+ description: 'Project UUID',
234
+ },
235
+ status: {
236
+ type: 'string',
237
+ description: 'Filter by status (default: pending)',
238
+ enum: ['pending', 'completed', 'converted_to_task', 'all'],
239
+ },
240
+ stage: {
241
+ type: 'string',
242
+ description: 'Filter by stage (optional)',
243
+ enum: ['preparation', 'deployment', 'verification', 'all'],
244
+ },
245
+ limit: {
246
+ type: 'number',
247
+ description: 'Max number of requirements to return (default 50, max 200)',
248
+ },
249
+ offset: {
250
+ type: 'number',
251
+ description: 'Number of requirements to skip for pagination (default 0)',
252
+ },
253
+ },
254
+ required: ['project_id'],
255
+ },
256
+ },
257
+ {
258
+ name: 'get_deployment_requirements_stats',
259
+ description: `Get aggregate statistics about deployment requirements for a project. Returns total count and breakdowns by status, stage, and type. More token-efficient than get_deployment_requirements when you just need to understand the overall state.`,
260
+ inputSchema: {
261
+ type: 'object',
262
+ properties: {
263
+ project_id: { type: 'string', description: 'Project UUID' },
264
+ },
265
+ required: ['project_id'],
266
+ },
267
+ },
268
+ {
269
+ name: 'reorder_deployment_requirements',
270
+ description: `Reorder deployment requirements within a stage. Pass the requirement IDs in the desired order.`,
271
+ inputSchema: {
272
+ type: 'object',
273
+ properties: {
274
+ project_id: { type: 'string', description: 'Project UUID' },
275
+ stage: { type: 'string', enum: ['preparation', 'deployment', 'verification'], description: 'Deployment stage' },
276
+ requirement_ids: { type: 'array', items: { type: 'string' }, description: 'Ordered array of requirement UUIDs' },
277
+ },
278
+ required: ['project_id', 'stage', 'requirement_ids'],
279
+ },
280
+ },
281
+ {
282
+ name: 'schedule_deployment',
283
+ description: `Schedule a deployment for a specific time. Supports one-time and recurring schedules with auto-trigger or manual trigger modes.`,
284
+ inputSchema: {
285
+ type: 'object',
286
+ properties: {
287
+ project_id: {
288
+ type: 'string',
289
+ description: 'Project UUID',
290
+ },
291
+ scheduled_at: {
292
+ type: 'string',
293
+ description: 'ISO 8601 datetime for when the deployment should be triggered',
294
+ },
295
+ schedule_type: {
296
+ type: 'string',
297
+ description: 'Schedule type: once (one-time), hourly, daily, weekly, or monthly',
298
+ enum: ['once', 'hourly', 'daily', 'weekly', 'monthly'],
299
+ },
300
+ hours_interval: {
301
+ type: 'number',
302
+ description: 'For hourly schedules, the number of hours between runs (1-24, default: 1)',
303
+ minimum: 1,
304
+ maximum: 24,
305
+ },
306
+ auto_trigger: {
307
+ type: 'boolean',
308
+ description: 'Whether agents should automatically trigger this deployment when due (default: true)',
309
+ },
310
+ environment: {
311
+ type: 'string',
312
+ description: 'Target environment (default: production)',
313
+ enum: ['development', 'staging', 'production'],
314
+ },
315
+ version_bump: {
316
+ type: 'string',
317
+ description: 'Version bump: patch, minor, or major (default: patch)',
318
+ enum: ['patch', 'minor', 'major'],
319
+ },
320
+ notes: {
321
+ type: 'string',
322
+ description: 'Optional notes about this scheduled deployment',
323
+ },
324
+ git_ref: {
325
+ type: 'string',
326
+ description: 'Optional git branch or commit to deploy',
327
+ },
328
+ },
329
+ required: ['project_id', 'scheduled_at'],
330
+ },
331
+ },
332
+ {
333
+ name: 'get_scheduled_deployments',
334
+ description: `Get scheduled deployments for a project.`,
335
+ inputSchema: {
336
+ type: 'object',
337
+ properties: {
338
+ project_id: {
339
+ type: 'string',
340
+ description: 'Project UUID',
341
+ },
342
+ include_disabled: {
343
+ type: 'boolean',
344
+ description: 'Include disabled schedules (default: false)',
345
+ },
346
+ limit: {
347
+ type: 'number',
348
+ description: 'Max schedules to return (default: 50)',
349
+ },
350
+ offset: {
351
+ type: 'number',
352
+ description: 'Number of schedules to skip for pagination (default: 0)',
353
+ },
354
+ },
355
+ required: ['project_id'],
356
+ },
357
+ },
358
+ {
359
+ name: 'update_scheduled_deployment',
360
+ description: `Update a scheduled deployment's configuration.`,
361
+ inputSchema: {
362
+ type: 'object',
363
+ properties: {
364
+ schedule_id: {
365
+ type: 'string',
366
+ description: 'Schedule UUID',
367
+ },
368
+ scheduled_at: {
369
+ type: 'string',
370
+ description: 'New scheduled time (ISO 8601)',
371
+ },
372
+ schedule_type: {
373
+ type: 'string',
374
+ description: 'New schedule type',
375
+ enum: ['once', 'hourly', 'daily', 'weekly', 'monthly'],
376
+ },
377
+ hours_interval: {
378
+ type: 'number',
379
+ description: 'For hourly schedules, the number of hours between runs (1-24)',
380
+ minimum: 1,
381
+ maximum: 24,
382
+ },
383
+ auto_trigger: {
384
+ type: 'boolean',
385
+ description: 'Whether to auto-trigger',
386
+ },
387
+ enabled: {
388
+ type: 'boolean',
389
+ description: 'Enable or disable the schedule',
390
+ },
391
+ environment: {
392
+ type: 'string',
393
+ description: 'Target environment',
394
+ enum: ['development', 'staging', 'production'],
395
+ },
396
+ version_bump: {
397
+ type: 'string',
398
+ description: 'Version bump type',
399
+ enum: ['patch', 'minor', 'major'],
400
+ },
401
+ notes: {
402
+ type: 'string',
403
+ description: 'Notes about this deployment',
404
+ },
405
+ git_ref: {
406
+ type: 'string',
407
+ description: 'Git branch or commit to deploy',
408
+ },
409
+ },
410
+ required: ['schedule_id'],
411
+ },
412
+ },
413
+ {
414
+ name: 'delete_scheduled_deployment',
415
+ description: `Delete a scheduled deployment.`,
416
+ inputSchema: {
417
+ type: 'object',
418
+ properties: {
419
+ schedule_id: {
420
+ type: 'string',
421
+ description: 'Schedule UUID',
422
+ },
423
+ },
424
+ required: ['schedule_id'],
425
+ },
426
+ },
427
+ {
428
+ name: 'trigger_scheduled_deployment',
429
+ description: `Manually trigger a scheduled deployment. Creates a new deployment and updates the schedule.`,
430
+ inputSchema: {
431
+ type: 'object',
432
+ properties: {
433
+ schedule_id: {
434
+ type: 'string',
435
+ description: 'Schedule UUID',
436
+ },
437
+ },
438
+ required: ['schedule_id'],
439
+ },
440
+ },
441
+ {
442
+ name: 'check_due_deployments',
443
+ description: `Check for scheduled deployments that are due. Returns schedules where: enabled AND auto_trigger AND scheduled_at <= NOW().`,
444
+ inputSchema: {
445
+ type: 'object',
446
+ properties: {
447
+ project_id: {
448
+ type: 'string',
449
+ description: 'Project UUID',
450
+ },
451
+ },
452
+ required: ['project_id'],
453
+ },
454
+ },
455
+ ];