agent-tasks 1.1.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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/context.d.ts +17 -0
  4. package/dist/context.d.ts.map +1 -0
  5. package/dist/context.js +37 -0
  6. package/dist/context.js.map +1 -0
  7. package/dist/db.d.ts +10 -0
  8. package/dist/db.d.ts.map +1 -0
  9. package/dist/db.js +112 -0
  10. package/dist/db.js.map +1 -0
  11. package/dist/domain/agent-bridge.d.ts +13 -0
  12. package/dist/domain/agent-bridge.d.ts.map +1 -0
  13. package/dist/domain/agent-bridge.js +99 -0
  14. package/dist/domain/agent-bridge.js.map +1 -0
  15. package/dist/domain/approvals.d.ts +18 -0
  16. package/dist/domain/approvals.d.ts.map +1 -0
  17. package/dist/domain/approvals.js +89 -0
  18. package/dist/domain/approvals.js.map +1 -0
  19. package/dist/domain/cleanup.d.ts +28 -0
  20. package/dist/domain/cleanup.d.ts.map +1 -0
  21. package/dist/domain/cleanup.js +68 -0
  22. package/dist/domain/cleanup.js.map +1 -0
  23. package/dist/domain/collaborators.d.ts +14 -0
  24. package/dist/domain/collaborators.d.ts.map +1 -0
  25. package/dist/domain/collaborators.js +59 -0
  26. package/dist/domain/collaborators.js.map +1 -0
  27. package/dist/domain/comments.d.ts +14 -0
  28. package/dist/domain/comments.d.ts.map +1 -0
  29. package/dist/domain/comments.js +63 -0
  30. package/dist/domain/comments.js.map +1 -0
  31. package/dist/domain/events.d.ts +9 -0
  32. package/dist/domain/events.d.ts.map +1 -0
  33. package/dist/domain/events.js +52 -0
  34. package/dist/domain/events.js.map +1 -0
  35. package/dist/domain/rules.d.ts +2 -0
  36. package/dist/domain/rules.d.ts.map +1 -0
  37. package/dist/domain/rules.js +67 -0
  38. package/dist/domain/rules.js.map +1 -0
  39. package/dist/domain/tasks.d.ts +60 -0
  40. package/dist/domain/tasks.d.ts.map +1 -0
  41. package/dist/domain/tasks.js +616 -0
  42. package/dist/domain/tasks.js.map +1 -0
  43. package/dist/domain/validate.d.ts +14 -0
  44. package/dist/domain/validate.d.ts.map +1 -0
  45. package/dist/domain/validate.js +29 -0
  46. package/dist/domain/validate.js.map +1 -0
  47. package/dist/event-bus.d.ts +10 -0
  48. package/dist/event-bus.d.ts.map +1 -0
  49. package/dist/event-bus.js +38 -0
  50. package/dist/event-bus.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +121 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/server.d.ts +10 -0
  56. package/dist/server.d.ts.map +1 -0
  57. package/dist/server.js +95 -0
  58. package/dist/server.js.map +1 -0
  59. package/dist/session.d.ts +7 -0
  60. package/dist/session.d.ts.map +1 -0
  61. package/dist/session.js +11 -0
  62. package/dist/session.js.map +1 -0
  63. package/dist/storage/database.d.ts +15 -0
  64. package/dist/storage/database.d.ts.map +1 -0
  65. package/dist/storage/database.js +215 -0
  66. package/dist/storage/database.js.map +1 -0
  67. package/dist/tasks.d.ts +32 -0
  68. package/dist/tasks.d.ts.map +1 -0
  69. package/dist/tasks.js +410 -0
  70. package/dist/tasks.js.map +1 -0
  71. package/dist/transport/mcp.d.ts +6 -0
  72. package/dist/transport/mcp.d.ts.map +1 -0
  73. package/dist/transport/mcp.js +573 -0
  74. package/dist/transport/mcp.js.map +1 -0
  75. package/dist/transport/rest.d.ts +4 -0
  76. package/dist/transport/rest.d.ts.map +1 -0
  77. package/dist/transport/rest.js +382 -0
  78. package/dist/transport/rest.js.map +1 -0
  79. package/dist/transport/ws.d.ts +10 -0
  80. package/dist/transport/ws.d.ts.map +1 -0
  81. package/dist/transport/ws.js +177 -0
  82. package/dist/transport/ws.js.map +1 -0
  83. package/dist/types.d.ts +146 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +35 -0
  86. package/dist/types.js.map +1 -0
  87. package/dist/ui/app.js +648 -0
  88. package/dist/ui/index.html +82 -0
  89. package/dist/ui/morphdom.min.js +1 -0
  90. package/dist/ui/styles.css +805 -0
  91. package/package.json +78 -0
@@ -0,0 +1,573 @@
1
+ // =============================================================================
2
+ // agent-tasks — MCP transport
3
+ //
4
+ // Maps MCP tool calls to the TaskService. Thin adapter — validation lives
5
+ // in the domain layer, not here.
6
+ // =============================================================================
7
+ import { ValidationError } from '../types.js';
8
+ // ---------------------------------------------------------------------------
9
+ // Tool definitions
10
+ // ---------------------------------------------------------------------------
11
+ export const tools = [
12
+ {
13
+ name: 'task_create',
14
+ description: 'Create a pipeline task with optional stage, priority, and project.',
15
+ inputSchema: {
16
+ type: 'object',
17
+ properties: {
18
+ title: { type: 'string', description: 'Task title (max 500 chars)' },
19
+ description: { type: 'string', description: 'Detailed instructions (max 50K chars)' },
20
+ assign_to: { type: 'string', description: 'Agent name to assign to' },
21
+ stage: { type: 'string', description: 'Pipeline stage (default: backlog)' },
22
+ priority: {
23
+ type: 'number',
24
+ description: 'Priority (higher = more important, default: 0)',
25
+ },
26
+ project: { type: 'string', description: 'Project name for grouping' },
27
+ tags: { type: 'array', items: { type: 'string' }, description: 'Tags for categorization' },
28
+ parent_id: { type: 'number', description: 'Parent task ID (creates a subtask)' },
29
+ },
30
+ required: ['title'],
31
+ },
32
+ },
33
+ {
34
+ name: 'task_list',
35
+ description: 'List tasks with optional filters and pagination.',
36
+ inputSchema: {
37
+ type: 'object',
38
+ properties: {
39
+ status: {
40
+ type: 'string',
41
+ enum: ['pending', 'in_progress', 'completed', 'failed', 'cancelled'],
42
+ description: 'Filter by status',
43
+ },
44
+ assigned_to: { type: 'string', description: 'Filter by assigned agent name' },
45
+ stage: { type: 'string', description: 'Filter by pipeline stage' },
46
+ project: { type: 'string', description: 'Filter by project' },
47
+ limit: { type: 'number', description: 'Max results (default/max: 500)' },
48
+ offset: { type: 'number', description: 'Skip first N results (for pagination)' },
49
+ },
50
+ },
51
+ },
52
+ {
53
+ name: 'task_claim',
54
+ description: 'Claim a pending task. Assigns it and advances from backlog to the next stage.',
55
+ inputSchema: {
56
+ type: 'object',
57
+ properties: {
58
+ task_id: { type: 'number', description: 'Task ID to claim' },
59
+ claimer: {
60
+ type: 'string',
61
+ description: 'Agent name claiming (uses session name if omitted)',
62
+ },
63
+ },
64
+ required: ['task_id'],
65
+ },
66
+ },
67
+ {
68
+ name: 'task_complete',
69
+ description: 'Mark a task as completed with a result.',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: {
73
+ task_id: { type: 'number', description: 'Task ID' },
74
+ result: { type: 'string', description: 'Result or output' },
75
+ },
76
+ required: ['task_id', 'result'],
77
+ },
78
+ },
79
+ {
80
+ name: 'task_fail',
81
+ description: 'Mark a task as failed with an error message.',
82
+ inputSchema: {
83
+ type: 'object',
84
+ properties: {
85
+ task_id: { type: 'number', description: 'Task ID' },
86
+ result: { type: 'string', description: 'Error description' },
87
+ },
88
+ required: ['task_id', 'result'],
89
+ },
90
+ },
91
+ {
92
+ name: 'task_cancel',
93
+ description: 'Cancel a task — moves it to the cancelled stage.',
94
+ inputSchema: {
95
+ type: 'object',
96
+ properties: {
97
+ task_id: { type: 'number', description: 'Task ID' },
98
+ reason: { type: 'string', description: 'Why the task was cancelled' },
99
+ },
100
+ required: ['task_id', 'reason'],
101
+ },
102
+ },
103
+ {
104
+ name: 'task_advance',
105
+ description: 'Advance a task to the next pipeline stage (or a specific stage). Validates dependencies.',
106
+ inputSchema: {
107
+ type: 'object',
108
+ properties: {
109
+ task_id: { type: 'number', description: 'Task ID' },
110
+ stage: { type: 'string', description: 'Target stage (omit to advance to next stage)' },
111
+ },
112
+ required: ['task_id'],
113
+ },
114
+ },
115
+ {
116
+ name: 'task_regress',
117
+ description: 'Send a task back to an earlier stage (e.g. review rejection).',
118
+ inputSchema: {
119
+ type: 'object',
120
+ properties: {
121
+ task_id: { type: 'number', description: 'Task ID' },
122
+ stage: { type: 'string', description: 'Target stage to regress to' },
123
+ reason: {
124
+ type: 'string',
125
+ description: 'Reason for regression (stored as artifact)',
126
+ },
127
+ },
128
+ required: ['task_id', 'stage'],
129
+ },
130
+ },
131
+ {
132
+ name: 'task_update',
133
+ description: 'Update task metadata (title, description, priority, tags, assignment).',
134
+ inputSchema: {
135
+ type: 'object',
136
+ properties: {
137
+ task_id: { type: 'number', description: 'Task ID' },
138
+ title: { type: 'string', description: 'New title' },
139
+ description: { type: 'string', description: 'New description' },
140
+ priority: { type: 'number', description: 'New priority' },
141
+ project: { type: 'string', description: 'New project' },
142
+ tags: { type: 'array', items: { type: 'string' }, description: 'New tags' },
143
+ assign_to: {
144
+ type: 'string',
145
+ description: 'New assignee (empty string to unassign)',
146
+ },
147
+ },
148
+ required: ['task_id'],
149
+ },
150
+ },
151
+ {
152
+ name: 'task_next',
153
+ description: 'Get the highest-priority unassigned task with all dependencies met. Returns null if none.',
154
+ inputSchema: {
155
+ type: 'object',
156
+ properties: {
157
+ project: { type: 'string', description: 'Filter by project' },
158
+ stage: { type: 'string', description: 'Filter by stage' },
159
+ },
160
+ },
161
+ },
162
+ {
163
+ name: 'task_add_dependency',
164
+ description: 'Make a task depend on another (blocks advancement until dependency is done).',
165
+ inputSchema: {
166
+ type: 'object',
167
+ properties: {
168
+ task_id: { type: 'number', description: 'Task that depends on another' },
169
+ depends_on: { type: 'number', description: 'Task that must complete first' },
170
+ },
171
+ required: ['task_id', 'depends_on'],
172
+ },
173
+ },
174
+ {
175
+ name: 'task_remove_dependency',
176
+ description: 'Remove a dependency between tasks.',
177
+ inputSchema: {
178
+ type: 'object',
179
+ properties: {
180
+ task_id: { type: 'number', description: 'Task ID' },
181
+ depends_on: { type: 'number', description: 'Dependency to remove' },
182
+ },
183
+ required: ['task_id', 'depends_on'],
184
+ },
185
+ },
186
+ {
187
+ name: 'task_add_artifact',
188
+ description: 'Attach a document/artifact to a task (spec, plan, test results, review notes, etc.).',
189
+ inputSchema: {
190
+ type: 'object',
191
+ properties: {
192
+ task_id: { type: 'number', description: 'Task ID' },
193
+ name: {
194
+ type: 'string',
195
+ description: 'Artifact name (e.g. "spec", "test-results", "review-notes")',
196
+ },
197
+ content: {
198
+ type: 'string',
199
+ description: 'Artifact content (text, markdown, JSON, max 100K)',
200
+ },
201
+ stage: {
202
+ type: 'string',
203
+ description: 'Stage to attach to (defaults to task current stage)',
204
+ },
205
+ },
206
+ required: ['task_id', 'name', 'content'],
207
+ },
208
+ },
209
+ {
210
+ name: 'task_get_artifacts',
211
+ description: 'Get artifacts attached to a task.',
212
+ inputSchema: {
213
+ type: 'object',
214
+ properties: {
215
+ task_id: { type: 'number', description: 'Task ID' },
216
+ stage: { type: 'string', description: 'Filter by stage' },
217
+ },
218
+ required: ['task_id'],
219
+ },
220
+ },
221
+ {
222
+ name: 'task_pipeline_config',
223
+ description: 'Get or set pipeline stages for a project. Call without stages to get current config.',
224
+ inputSchema: {
225
+ type: 'object',
226
+ properties: {
227
+ project: {
228
+ type: 'string',
229
+ description: 'Project name (omit for default pipeline)',
230
+ },
231
+ stages: {
232
+ type: 'array',
233
+ items: { type: 'string' },
234
+ description: 'Stage names in order (set mode)',
235
+ },
236
+ },
237
+ },
238
+ },
239
+ {
240
+ name: 'task_set_session',
241
+ description: 'Set the session identity for this connection (used to track who creates/claims tasks).',
242
+ inputSchema: {
243
+ type: 'object',
244
+ properties: {
245
+ id: { type: 'string', description: 'Session ID' },
246
+ name: { type: 'string', description: 'Session name' },
247
+ },
248
+ required: ['id', 'name'],
249
+ },
250
+ },
251
+ {
252
+ name: 'task_delete',
253
+ description: 'Delete a task and all its artifacts and dependencies (cascading delete).',
254
+ inputSchema: {
255
+ type: 'object',
256
+ properties: {
257
+ task_id: { type: 'number', description: 'Task ID to delete' },
258
+ },
259
+ required: ['task_id'],
260
+ },
261
+ },
262
+ {
263
+ name: 'task_comment',
264
+ description: 'Add a comment to a task for async discussion between agents.',
265
+ inputSchema: {
266
+ type: 'object',
267
+ properties: {
268
+ task_id: { type: 'number', description: 'Task ID' },
269
+ content: { type: 'string', description: 'Comment text' },
270
+ parent_comment_id: { type: 'number', description: 'Reply to this comment (threading)' },
271
+ },
272
+ required: ['task_id', 'content'],
273
+ },
274
+ },
275
+ {
276
+ name: 'task_get_comments',
277
+ description: 'Get comments on a task.',
278
+ inputSchema: {
279
+ type: 'object',
280
+ properties: {
281
+ task_id: { type: 'number', description: 'Task ID' },
282
+ limit: { type: 'number', description: 'Max comments (default: 100)' },
283
+ },
284
+ required: ['task_id'],
285
+ },
286
+ },
287
+ {
288
+ name: 'task_add_collaborator',
289
+ description: 'Add an agent as collaborator on a task (roles: collaborator, reviewer, watcher).',
290
+ inputSchema: {
291
+ type: 'object',
292
+ properties: {
293
+ task_id: { type: 'number', description: 'Task ID' },
294
+ agent_id: { type: 'string', description: 'Agent name or ID' },
295
+ role: {
296
+ type: 'string',
297
+ enum: ['collaborator', 'reviewer', 'watcher'],
298
+ description: 'Role (default: collaborator)',
299
+ },
300
+ },
301
+ required: ['task_id', 'agent_id'],
302
+ },
303
+ },
304
+ {
305
+ name: 'task_remove_collaborator',
306
+ description: 'Remove a collaborator from a task.',
307
+ inputSchema: {
308
+ type: 'object',
309
+ properties: {
310
+ task_id: { type: 'number', description: 'Task ID' },
311
+ agent_id: { type: 'string', description: 'Agent name or ID' },
312
+ },
313
+ required: ['task_id', 'agent_id'],
314
+ },
315
+ },
316
+ {
317
+ name: 'task_search',
318
+ description: 'Full-text search across task titles and descriptions.',
319
+ inputSchema: {
320
+ type: 'object',
321
+ properties: {
322
+ query: { type: 'string', description: 'Search query' },
323
+ project: { type: 'string', description: 'Filter by project' },
324
+ limit: { type: 'number', description: 'Max results (default: 50)' },
325
+ },
326
+ required: ['query'],
327
+ },
328
+ },
329
+ {
330
+ name: 'task_get_subtasks',
331
+ description: 'Get subtasks of a parent task.',
332
+ inputSchema: {
333
+ type: 'object',
334
+ properties: {
335
+ task_id: { type: 'number', description: 'Parent task ID' },
336
+ },
337
+ required: ['task_id'],
338
+ },
339
+ },
340
+ {
341
+ name: 'task_request_approval',
342
+ description: 'Request approval for a task at a specific stage.',
343
+ inputSchema: {
344
+ type: 'object',
345
+ properties: {
346
+ task_id: { type: 'number', description: 'Task ID' },
347
+ stage: { type: 'string', description: 'Stage requiring approval (defaults to current)' },
348
+ reviewer: { type: 'string', description: 'Specific reviewer to assign' },
349
+ },
350
+ required: ['task_id'],
351
+ },
352
+ },
353
+ {
354
+ name: 'task_approve',
355
+ description: 'Approve a pending approval request.',
356
+ inputSchema: {
357
+ type: 'object',
358
+ properties: {
359
+ approval_id: { type: 'number', description: 'Approval ID' },
360
+ comment: { type: 'string', description: 'Approval comment' },
361
+ },
362
+ required: ['approval_id'],
363
+ },
364
+ },
365
+ {
366
+ name: 'task_reject',
367
+ description: 'Reject a pending approval and optionally regress the task.',
368
+ inputSchema: {
369
+ type: 'object',
370
+ properties: {
371
+ approval_id: { type: 'number', description: 'Approval ID' },
372
+ comment: { type: 'string', description: 'Rejection reason (required)' },
373
+ regress_to: { type: 'string', description: 'Stage to regress task to' },
374
+ },
375
+ required: ['approval_id', 'comment'],
376
+ },
377
+ },
378
+ {
379
+ name: 'task_pending_approvals',
380
+ description: 'List pending approval requests, optionally filtered by reviewer.',
381
+ inputSchema: {
382
+ type: 'object',
383
+ properties: {
384
+ reviewer: { type: 'string', description: 'Filter by reviewer' },
385
+ },
386
+ },
387
+ },
388
+ ];
389
+ // ---------------------------------------------------------------------------
390
+ // Input validation helpers
391
+ // ---------------------------------------------------------------------------
392
+ function requireString(args, key) {
393
+ const val = args[key];
394
+ if (typeof val !== 'string' || !val.trim()) {
395
+ throw new ValidationError(`"${key}" must be a non-empty string.`);
396
+ }
397
+ return val;
398
+ }
399
+ function optString(args, key) {
400
+ const val = args[key];
401
+ if (val === undefined || val === null)
402
+ return undefined;
403
+ if (typeof val !== 'string')
404
+ throw new ValidationError(`"${key}" must be a string.`);
405
+ return val;
406
+ }
407
+ function requireNumber(args, key) {
408
+ const val = args[key];
409
+ if (typeof val !== 'number') {
410
+ throw new ValidationError(`"${key}" is required and must be a number.`);
411
+ }
412
+ return val;
413
+ }
414
+ function optNumber(args, key) {
415
+ const val = args[key];
416
+ if (val === undefined || val === null)
417
+ return undefined;
418
+ if (typeof val !== 'number')
419
+ throw new ValidationError(`"${key}" must be a number.`);
420
+ return val;
421
+ }
422
+ function optBoolean(args, key) {
423
+ const val = args[key];
424
+ if (val === undefined || val === null)
425
+ return undefined;
426
+ if (typeof val !== 'boolean')
427
+ throw new ValidationError(`"${key}" must be a boolean.`);
428
+ return val;
429
+ }
430
+ function optStringArray(args, key) {
431
+ const val = args[key];
432
+ if (val === undefined || val === null)
433
+ return undefined;
434
+ if (!Array.isArray(val) || !val.every((v) => typeof v === 'string')) {
435
+ throw new ValidationError(`"${key}" must be an array of strings.`);
436
+ }
437
+ return val;
438
+ }
439
+ export function createToolHandler(ctx) {
440
+ let currentSession = null;
441
+ function sessionName() {
442
+ return currentSession?.name ?? 'system';
443
+ }
444
+ return function handleTool(name, args) {
445
+ switch (name) {
446
+ case 'task_set_session': {
447
+ const id = requireString(args, 'id');
448
+ const sessionName = requireString(args, 'name');
449
+ currentSession = { id, name: sessionName };
450
+ return { success: true, id, name: sessionName };
451
+ }
452
+ case 'task_create': {
453
+ return ctx.tasks.create({
454
+ title: requireString(args, 'title'),
455
+ description: optString(args, 'description'),
456
+ assign_to: optString(args, 'assign_to'),
457
+ stage: optString(args, 'stage'),
458
+ priority: optNumber(args, 'priority'),
459
+ project: optString(args, 'project'),
460
+ tags: optStringArray(args, 'tags'),
461
+ parent_id: optNumber(args, 'parent_id'),
462
+ }, sessionName());
463
+ }
464
+ case 'task_list': {
465
+ return ctx.tasks.list({
466
+ status: optString(args, 'status'),
467
+ assigned_to: optString(args, 'assigned_to'),
468
+ stage: optString(args, 'stage'),
469
+ project: optString(args, 'project'),
470
+ parent_id: optNumber(args, 'parent_id'),
471
+ root_only: optBoolean(args, 'root_only'),
472
+ collaborator: optString(args, 'collaborator'),
473
+ limit: optNumber(args, 'limit'),
474
+ offset: optNumber(args, 'offset'),
475
+ });
476
+ }
477
+ case 'task_claim': {
478
+ const claimer = optString(args, 'claimer') ?? sessionName();
479
+ return ctx.tasks.claim(requireNumber(args, 'task_id'), claimer);
480
+ }
481
+ case 'task_complete':
482
+ return ctx.tasks.complete(requireNumber(args, 'task_id'), requireString(args, 'result'));
483
+ case 'task_fail':
484
+ return ctx.tasks.fail(requireNumber(args, 'task_id'), requireString(args, 'result'));
485
+ case 'task_cancel':
486
+ return ctx.tasks.cancel(requireNumber(args, 'task_id'), requireString(args, 'reason'));
487
+ case 'task_advance':
488
+ return ctx.tasks.advance(requireNumber(args, 'task_id'), optString(args, 'stage'));
489
+ case 'task_regress':
490
+ return ctx.tasks.regress(requireNumber(args, 'task_id'), requireString(args, 'stage'), optString(args, 'reason'));
491
+ case 'task_update':
492
+ return ctx.tasks.update(requireNumber(args, 'task_id'), {
493
+ title: optString(args, 'title'),
494
+ description: optString(args, 'description'),
495
+ priority: optNumber(args, 'priority'),
496
+ project: optString(args, 'project'),
497
+ tags: optStringArray(args, 'tags'),
498
+ assigned_to: optString(args, 'assign_to'),
499
+ });
500
+ case 'task_next': {
501
+ return (ctx.tasks.next(optString(args, 'project'), optString(args, 'stage')) ?? {
502
+ message: 'No available tasks.',
503
+ });
504
+ }
505
+ case 'task_add_dependency': {
506
+ ctx.tasks.addDependency(requireNumber(args, 'task_id'), requireNumber(args, 'depends_on'));
507
+ return { success: true, task_id: args.task_id, depends_on: args.depends_on };
508
+ }
509
+ case 'task_remove_dependency': {
510
+ ctx.tasks.removeDependency(requireNumber(args, 'task_id'), requireNumber(args, 'depends_on'));
511
+ return { success: true };
512
+ }
513
+ case 'task_add_artifact': {
514
+ return ctx.tasks.addArtifact(requireNumber(args, 'task_id'), requireString(args, 'name'), requireString(args, 'content'), sessionName(), optString(args, 'stage'));
515
+ }
516
+ case 'task_get_artifacts':
517
+ return ctx.tasks.getArtifacts(requireNumber(args, 'task_id'), optString(args, 'stage'));
518
+ case 'task_pipeline_config': {
519
+ const stages = optStringArray(args, 'stages');
520
+ if (stages) {
521
+ return ctx.tasks.setPipelineConfig(optString(args, 'project') || 'default', stages);
522
+ }
523
+ return { stages: ctx.tasks.getPipelineStages(optString(args, 'project')) };
524
+ }
525
+ case 'task_delete': {
526
+ ctx.tasks.delete(requireNumber(args, 'task_id'));
527
+ return { success: true };
528
+ }
529
+ case 'task_comment': {
530
+ return ctx.comments.add(requireNumber(args, 'task_id'), sessionName(), requireString(args, 'content'), optNumber(args, 'parent_comment_id'));
531
+ }
532
+ case 'task_get_comments':
533
+ return ctx.comments.list(requireNumber(args, 'task_id'), optNumber(args, 'limit'));
534
+ case 'task_add_collaborator': {
535
+ return ctx.collaborators.add(requireNumber(args, 'task_id'), requireString(args, 'agent_id'), (optString(args, 'role') ?? 'collaborator'));
536
+ }
537
+ case 'task_remove_collaborator': {
538
+ ctx.collaborators.remove(requireNumber(args, 'task_id'), requireString(args, 'agent_id'));
539
+ return { success: true };
540
+ }
541
+ case 'task_search':
542
+ return ctx.tasks.search(requireString(args, 'query'), {
543
+ project: optString(args, 'project'),
544
+ limit: optNumber(args, 'limit'),
545
+ });
546
+ case 'task_get_subtasks':
547
+ return ctx.tasks.getSubtasks(requireNumber(args, 'task_id'));
548
+ case 'task_request_approval': {
549
+ const taskId = requireNumber(args, 'task_id');
550
+ const task = ctx.tasks.getById(taskId);
551
+ if (!task)
552
+ throw new ValidationError(`Task ${taskId} not found.`);
553
+ const stage = optString(args, 'stage') ?? task.stage;
554
+ return ctx.approvals.request(taskId, stage, optString(args, 'reviewer'));
555
+ }
556
+ case 'task_approve':
557
+ return ctx.approvals.approve(requireNumber(args, 'approval_id'), sessionName(), optString(args, 'comment'));
558
+ case 'task_reject': {
559
+ const approval = ctx.approvals.reject(requireNumber(args, 'approval_id'), sessionName(), requireString(args, 'comment'));
560
+ const regressTo = optString(args, 'regress_to');
561
+ if (regressTo) {
562
+ ctx.tasks.regress(approval.task_id, regressTo, requireString(args, 'comment'));
563
+ }
564
+ return approval;
565
+ }
566
+ case 'task_pending_approvals':
567
+ return ctx.approvals.getPending(optString(args, 'reviewer'));
568
+ default:
569
+ throw new ValidationError(`Unknown tool: ${name}`);
570
+ }
571
+ };
572
+ }
573
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/transport/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { IncomingMessage, ServerResponse } from 'http';
2
+ import type { AppContext } from '../context.js';
3
+ export declare function createRouter(ctx: AppContext): (req: IncomingMessage, res: ServerResponse) => void;
4
+ //# sourceMappingURL=rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/transport/rest.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmEhD,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAwVjG"}