@vibescope/mcp-server 0.2.0 → 0.2.1

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 (65) hide show
  1. package/dist/api-client.d.ts +64 -1
  2. package/dist/api-client.js +34 -3
  3. package/dist/handlers/bodies-of-work.js +82 -49
  4. package/dist/handlers/cost.js +62 -54
  5. package/dist/handlers/decisions.js +29 -16
  6. package/dist/handlers/deployment.js +112 -106
  7. package/dist/handlers/discovery.js +35 -5
  8. package/dist/handlers/fallback.js +24 -19
  9. package/dist/handlers/file-checkouts.d.ts +18 -0
  10. package/dist/handlers/file-checkouts.js +101 -0
  11. package/dist/handlers/findings.d.ts +6 -0
  12. package/dist/handlers/findings.js +85 -30
  13. package/dist/handlers/git-issues.js +36 -32
  14. package/dist/handlers/ideas.js +44 -26
  15. package/dist/handlers/index.d.ts +2 -0
  16. package/dist/handlers/index.js +6 -0
  17. package/dist/handlers/milestones.js +34 -27
  18. package/dist/handlers/organizations.js +86 -78
  19. package/dist/handlers/progress.js +22 -11
  20. package/dist/handlers/project.js +62 -22
  21. package/dist/handlers/requests.js +15 -11
  22. package/dist/handlers/roles.d.ts +18 -0
  23. package/dist/handlers/roles.js +130 -0
  24. package/dist/handlers/session.js +30 -8
  25. package/dist/handlers/sprints.js +76 -64
  26. package/dist/handlers/tasks.js +113 -73
  27. package/dist/handlers/validation.js +18 -14
  28. package/dist/tools.js +387 -0
  29. package/package.json +1 -1
  30. package/src/api-client.ts +89 -6
  31. package/src/handlers/__test-setup__.ts +7 -0
  32. package/src/handlers/bodies-of-work.ts +101 -101
  33. package/src/handlers/cost.test.ts +34 -44
  34. package/src/handlers/cost.ts +77 -92
  35. package/src/handlers/decisions.test.ts +3 -2
  36. package/src/handlers/decisions.ts +32 -27
  37. package/src/handlers/deployment.ts +142 -190
  38. package/src/handlers/discovery.test.ts +4 -5
  39. package/src/handlers/discovery.ts +37 -6
  40. package/src/handlers/fallback.ts +31 -29
  41. package/src/handlers/file-checkouts.test.ts +477 -0
  42. package/src/handlers/file-checkouts.ts +127 -0
  43. package/src/handlers/findings.test.ts +145 -0
  44. package/src/handlers/findings.ts +101 -64
  45. package/src/handlers/git-issues.ts +40 -80
  46. package/src/handlers/ideas.ts +56 -54
  47. package/src/handlers/index.ts +6 -0
  48. package/src/handlers/milestones.test.ts +1 -1
  49. package/src/handlers/milestones.ts +47 -45
  50. package/src/handlers/organizations.ts +104 -129
  51. package/src/handlers/progress.ts +24 -22
  52. package/src/handlers/project.ts +89 -57
  53. package/src/handlers/requests.ts +18 -14
  54. package/src/handlers/roles.test.ts +303 -0
  55. package/src/handlers/roles.ts +208 -0
  56. package/src/handlers/session.ts +39 -17
  57. package/src/handlers/sprints.ts +96 -129
  58. package/src/handlers/tasks.ts +144 -138
  59. package/src/handlers/validation.test.ts +1 -1
  60. package/src/handlers/validation.ts +20 -22
  61. package/src/tools.ts +387 -0
  62. package/dist/config/tool-categories.d.ts +0 -31
  63. package/dist/config/tool-categories.js +0 -253
  64. package/dist/knowledge.d.ts +0 -6
  65. package/dist/knowledge.js +0 -218
package/src/tools.ts CHANGED
@@ -2528,5 +2528,392 @@ Only returns tasks where all dependencies are completed.`,
2528
2528
  required: ['project_id'],
2529
2529
  },
2530
2530
  },
2531
+ // ============================================================================
2532
+ // Sprint Tools
2533
+ // ============================================================================
2534
+ {
2535
+ name: 'create_sprint',
2536
+ description: `Create a new sprint. Sprints are time-bounded bodies of work with velocity tracking.
2537
+ Sprints start in 'planning' status where tasks can be added with story points.`,
2538
+ inputSchema: {
2539
+ type: 'object',
2540
+ properties: {
2541
+ project_id: {
2542
+ type: 'string',
2543
+ description: 'Project UUID',
2544
+ },
2545
+ title: {
2546
+ type: 'string',
2547
+ description: 'Sprint title (e.g., "Sprint 5" or "Q1 Release")',
2548
+ },
2549
+ goal: {
2550
+ type: 'string',
2551
+ description: 'Sprint goal statement',
2552
+ },
2553
+ start_date: {
2554
+ type: 'string',
2555
+ description: 'Start date (YYYY-MM-DD)',
2556
+ },
2557
+ end_date: {
2558
+ type: 'string',
2559
+ description: 'End date (YYYY-MM-DD)',
2560
+ },
2561
+ auto_deploy_on_completion: {
2562
+ type: 'boolean',
2563
+ description: 'Automatically request deployment when sprint completes (default: false)',
2564
+ },
2565
+ deploy_environment: {
2566
+ type: 'string',
2567
+ enum: ['development', 'staging', 'production'],
2568
+ description: 'Target environment for auto-deploy (default: production)',
2569
+ },
2570
+ deploy_version_bump: {
2571
+ type: 'string',
2572
+ enum: ['patch', 'minor', 'major'],
2573
+ description: 'Version bump for auto-deploy (default: minor)',
2574
+ },
2575
+ },
2576
+ required: ['project_id', 'title', 'start_date', 'end_date'],
2577
+ },
2578
+ },
2579
+ {
2580
+ name: 'update_sprint',
2581
+ description: `Update a sprint's details. Can update title, goal, dates, and deployment settings.`,
2582
+ inputSchema: {
2583
+ type: 'object',
2584
+ properties: {
2585
+ sprint_id: {
2586
+ type: 'string',
2587
+ description: 'Sprint UUID',
2588
+ },
2589
+ title: {
2590
+ type: 'string',
2591
+ description: 'New sprint title',
2592
+ },
2593
+ goal: {
2594
+ type: 'string',
2595
+ description: 'New sprint goal',
2596
+ },
2597
+ start_date: {
2598
+ type: 'string',
2599
+ description: 'New start date (YYYY-MM-DD)',
2600
+ },
2601
+ end_date: {
2602
+ type: 'string',
2603
+ description: 'New end date (YYYY-MM-DD)',
2604
+ },
2605
+ auto_deploy_on_completion: {
2606
+ type: 'boolean',
2607
+ description: 'Auto-deploy setting',
2608
+ },
2609
+ deploy_environment: {
2610
+ type: 'string',
2611
+ enum: ['development', 'staging', 'production'],
2612
+ description: 'Target environment',
2613
+ },
2614
+ deploy_version_bump: {
2615
+ type: 'string',
2616
+ enum: ['patch', 'minor', 'major'],
2617
+ description: 'Version bump type',
2618
+ },
2619
+ },
2620
+ required: ['sprint_id'],
2621
+ },
2622
+ },
2623
+ {
2624
+ name: 'get_sprint',
2625
+ description: `Get a sprint with all its tasks organized by phase (pre/core/post).
2626
+ Includes progress percentage, velocity points, and committed points.
2627
+ Use summary_only: true to get task counts and next task instead of full task arrays (saves tokens).`,
2628
+ inputSchema: {
2629
+ type: 'object',
2630
+ properties: {
2631
+ sprint_id: {
2632
+ type: 'string',
2633
+ description: 'Sprint UUID',
2634
+ },
2635
+ summary_only: {
2636
+ type: 'boolean',
2637
+ description: 'Return task counts and next task instead of full task arrays (default: false)',
2638
+ },
2639
+ },
2640
+ required: ['sprint_id'],
2641
+ },
2642
+ },
2643
+ {
2644
+ name: 'get_sprints',
2645
+ description: `List sprints for a project with velocity metrics.
2646
+ Returns sprints sorted by sprint_number descending (most recent first).`,
2647
+ inputSchema: {
2648
+ type: 'object',
2649
+ properties: {
2650
+ project_id: {
2651
+ type: 'string',
2652
+ description: 'Project UUID',
2653
+ },
2654
+ status: {
2655
+ type: 'string',
2656
+ enum: ['planning', 'active', 'in_review', 'retrospective', 'completed', 'cancelled'],
2657
+ description: 'Filter by sprint status (optional)',
2658
+ },
2659
+ limit: {
2660
+ type: 'number',
2661
+ description: 'Max sprints to return (default: 20, max: 100)',
2662
+ },
2663
+ },
2664
+ required: ['project_id'],
2665
+ },
2666
+ },
2667
+ {
2668
+ name: 'delete_sprint',
2669
+ description: `Delete a sprint. Tasks are preserved but no longer grouped.`,
2670
+ inputSchema: {
2671
+ type: 'object',
2672
+ properties: {
2673
+ sprint_id: {
2674
+ type: 'string',
2675
+ description: 'Sprint UUID',
2676
+ },
2677
+ },
2678
+ required: ['sprint_id'],
2679
+ },
2680
+ },
2681
+ {
2682
+ name: 'start_sprint',
2683
+ description: `Start a sprint. Transitions from 'planning' to 'active' status.
2684
+ Locks the committed_points at the current total story points.`,
2685
+ inputSchema: {
2686
+ type: 'object',
2687
+ properties: {
2688
+ sprint_id: {
2689
+ type: 'string',
2690
+ description: 'Sprint UUID',
2691
+ },
2692
+ },
2693
+ required: ['sprint_id'],
2694
+ },
2695
+ },
2696
+ {
2697
+ name: 'complete_sprint',
2698
+ description: `Complete a sprint. Handles retrospective phase and auto-deployment if configured.
2699
+ Status flow: active → in_review → retrospective → completed`,
2700
+ inputSchema: {
2701
+ type: 'object',
2702
+ properties: {
2703
+ sprint_id: {
2704
+ type: 'string',
2705
+ description: 'Sprint UUID',
2706
+ },
2707
+ retrospective_notes: {
2708
+ type: 'string',
2709
+ description: 'Sprint retrospective notes',
2710
+ },
2711
+ skip_retrospective: {
2712
+ type: 'boolean',
2713
+ description: 'Skip retrospective phase and go directly to completed (default: false)',
2714
+ },
2715
+ },
2716
+ required: ['sprint_id'],
2717
+ },
2718
+ },
2719
+ {
2720
+ name: 'add_task_to_sprint',
2721
+ description: `Add a task to a sprint with optional story points.
2722
+ Tasks can be added during 'planning' status. Story points contribute to committed_points.`,
2723
+ inputSchema: {
2724
+ type: 'object',
2725
+ properties: {
2726
+ sprint_id: {
2727
+ type: 'string',
2728
+ description: 'Sprint UUID',
2729
+ },
2730
+ task_id: {
2731
+ type: 'string',
2732
+ description: 'Task UUID to add',
2733
+ },
2734
+ story_points: {
2735
+ type: 'number',
2736
+ description: 'Story point estimate (optional, must be non-negative integer)',
2737
+ },
2738
+ phase: {
2739
+ type: 'string',
2740
+ enum: ['pre', 'core', 'post'],
2741
+ description: 'Task phase (default: core)',
2742
+ },
2743
+ },
2744
+ required: ['sprint_id', 'task_id'],
2745
+ },
2746
+ },
2747
+ {
2748
+ name: 'remove_task_from_sprint',
2749
+ description: `Remove a task from a sprint. Task is preserved but returns to backlog.`,
2750
+ inputSchema: {
2751
+ type: 'object',
2752
+ properties: {
2753
+ sprint_id: {
2754
+ type: 'string',
2755
+ description: 'Sprint UUID',
2756
+ },
2757
+ task_id: {
2758
+ type: 'string',
2759
+ description: 'Task UUID to remove',
2760
+ },
2761
+ },
2762
+ required: ['sprint_id', 'task_id'],
2763
+ },
2764
+ },
2765
+ {
2766
+ name: 'get_sprint_backlog',
2767
+ description: `Get tasks from backlog/pending that can be added to a sprint.
2768
+ Returns tasks not already assigned to any body of work or sprint.`,
2769
+ inputSchema: {
2770
+ type: 'object',
2771
+ properties: {
2772
+ project_id: {
2773
+ type: 'string',
2774
+ description: 'Project UUID',
2775
+ },
2776
+ sprint_id: {
2777
+ type: 'string',
2778
+ description: 'Sprint UUID to exclude already-added tasks (optional)',
2779
+ },
2780
+ },
2781
+ required: ['project_id'],
2782
+ },
2783
+ },
2784
+ {
2785
+ name: 'get_sprint_velocity',
2786
+ description: `Get velocity metrics for completed sprints.
2787
+ Returns committed vs completed points and average velocity.`,
2788
+ inputSchema: {
2789
+ type: 'object',
2790
+ properties: {
2791
+ project_id: {
2792
+ type: 'string',
2793
+ description: 'Project UUID',
2794
+ },
2795
+ limit: {
2796
+ type: 'number',
2797
+ description: 'Number of sprints to analyze (default: 10, max: 50)',
2798
+ },
2799
+ },
2800
+ required: ['project_id'],
2801
+ },
2802
+ },
2803
+ // ============================================================================
2804
+ // Git Issue Tools
2805
+ // ============================================================================
2806
+ {
2807
+ name: 'add_git_issue',
2808
+ description: `Record a git-related issue (merge conflict, push failure, etc.). Auto-created by claim_validation when conflicts detected.`,
2809
+ inputSchema: {
2810
+ type: 'object',
2811
+ properties: {
2812
+ project_id: {
2813
+ type: 'string',
2814
+ description: 'Project UUID',
2815
+ },
2816
+ issue_type: {
2817
+ type: 'string',
2818
+ enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
2819
+ description: 'Type of git issue',
2820
+ },
2821
+ branch: {
2822
+ type: 'string',
2823
+ description: 'Branch where the issue occurred',
2824
+ },
2825
+ target_branch: {
2826
+ type: 'string',
2827
+ description: 'Target branch for merge/rebase (optional)',
2828
+ },
2829
+ pr_url: {
2830
+ type: 'string',
2831
+ description: 'Pull request URL if applicable (optional)',
2832
+ },
2833
+ conflicting_files: {
2834
+ type: 'array',
2835
+ items: { type: 'string' },
2836
+ description: 'List of files with conflicts (optional)',
2837
+ },
2838
+ error_message: {
2839
+ type: 'string',
2840
+ description: 'Error message from git operation (optional)',
2841
+ },
2842
+ task_id: {
2843
+ type: 'string',
2844
+ description: 'Related task UUID (optional)',
2845
+ },
2846
+ },
2847
+ required: ['project_id', 'issue_type', 'branch'],
2848
+ },
2849
+ },
2850
+ {
2851
+ name: 'resolve_git_issue',
2852
+ description: `Mark a git issue as resolved.`,
2853
+ inputSchema: {
2854
+ type: 'object',
2855
+ properties: {
2856
+ git_issue_id: {
2857
+ type: 'string',
2858
+ description: 'Git issue UUID',
2859
+ },
2860
+ resolution_note: {
2861
+ type: 'string',
2862
+ description: 'How the issue was resolved (optional)',
2863
+ },
2864
+ auto_resolved: {
2865
+ type: 'boolean',
2866
+ description: 'Whether this was auto-resolved (e.g., PR became mergeable)',
2867
+ },
2868
+ },
2869
+ required: ['git_issue_id'],
2870
+ },
2871
+ },
2872
+ {
2873
+ name: 'get_git_issues',
2874
+ description: `Get git issues for a project, optionally filtered by status, type, or branch.`,
2875
+ inputSchema: {
2876
+ type: 'object',
2877
+ properties: {
2878
+ project_id: {
2879
+ type: 'string',
2880
+ description: 'Project UUID',
2881
+ },
2882
+ status: {
2883
+ type: 'string',
2884
+ enum: ['open', 'resolved'],
2885
+ description: 'Filter by status (default: open)',
2886
+ },
2887
+ issue_type: {
2888
+ type: 'string',
2889
+ enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
2890
+ description: 'Filter by issue type (optional)',
2891
+ },
2892
+ branch: {
2893
+ type: 'string',
2894
+ description: 'Filter by branch (optional)',
2895
+ },
2896
+ limit: {
2897
+ type: 'number',
2898
+ description: 'Max issues to return (default: 50)',
2899
+ },
2900
+ },
2901
+ required: ['project_id'],
2902
+ },
2903
+ },
2904
+ {
2905
+ name: 'delete_git_issue',
2906
+ description: `Delete a git issue.`,
2907
+ inputSchema: {
2908
+ type: 'object',
2909
+ properties: {
2910
+ git_issue_id: {
2911
+ type: 'string',
2912
+ description: 'Git issue UUID',
2913
+ },
2914
+ },
2915
+ required: ['git_issue_id'],
2916
+ },
2917
+ },
2531
2918
  ];
2532
2919
 
@@ -1,31 +0,0 @@
1
- /**
2
- * Tool Categories Configuration
3
- *
4
- * Defines the categorization of MCP tools for discovery.
5
- * Moved to separate config for lazy-loading optimization.
6
- */
7
- export interface ToolEntry {
8
- name: string;
9
- brief: string;
10
- }
11
- export interface CategoryEntry {
12
- description: string;
13
- tools: ToolEntry[];
14
- }
15
- export declare const TOOL_CATEGORIES: Record<string, CategoryEntry>;
16
- /**
17
- * Get list of category names
18
- */
19
- export declare function getCategoryNames(): string[];
20
- /**
21
- * Get category summary (without full tool list)
22
- */
23
- export declare function getCategorySummary(): Array<{
24
- name: string;
25
- description: string;
26
- tool_count: number;
27
- }>;
28
- /**
29
- * Get tools in a specific category
30
- */
31
- export declare function getCategoryTools(category: string): CategoryEntry | undefined;
@@ -1,253 +0,0 @@
1
- /**
2
- * Tool Categories Configuration
3
- *
4
- * Defines the categorization of MCP tools for discovery.
5
- * Moved to separate config for lazy-loading optimization.
6
- */
7
- export const TOOL_CATEGORIES = {
8
- session: {
9
- description: 'Session lifecycle and monitoring',
10
- tools: [
11
- { name: 'start_work_session', brief: 'Initialize session, get next task' },
12
- { name: 'get_help', brief: 'Get workflow guidance' },
13
- { name: 'get_token_usage', brief: 'View token stats' },
14
- { name: 'heartbeat', brief: 'Maintain active status' },
15
- { name: 'end_work_session', brief: 'End session, release tasks' },
16
- ],
17
- },
18
- project: {
19
- description: 'Project CRUD and configuration',
20
- tools: [
21
- { name: 'get_project_context', brief: 'Full project info' },
22
- { name: 'get_git_workflow', brief: 'Git branching config' },
23
- { name: 'create_project', brief: 'Create new project' },
24
- { name: 'update_project', brief: 'Modify project settings' },
25
- { name: 'update_project_readme', brief: 'Sync README to dashboard' },
26
- ],
27
- },
28
- tasks: {
29
- description: 'Task management and tracking',
30
- tools: [
31
- { name: 'get_tasks', brief: 'List project tasks' },
32
- { name: 'get_next_task', brief: 'Get highest priority task' },
33
- { name: 'add_task', brief: 'Create new task' },
34
- { name: 'update_task', brief: 'Update task status/progress' },
35
- { name: 'complete_task', brief: 'Mark task done' },
36
- { name: 'delete_task', brief: 'Remove a task' },
37
- { name: 'batch_update_tasks', brief: 'Update multiple tasks' },
38
- { name: 'batch_complete_tasks', brief: 'Complete multiple tasks' },
39
- { name: 'add_task_reference', brief: 'Add URL to task' },
40
- { name: 'remove_task_reference', brief: 'Remove URL from task' },
41
- ],
42
- },
43
- milestones: {
44
- description: 'Task breakdown into steps',
45
- tools: [
46
- { name: 'add_milestone', brief: 'Add step to task' },
47
- { name: 'update_milestone', brief: 'Update milestone' },
48
- { name: 'complete_milestone', brief: 'Mark step done' },
49
- { name: 'delete_milestone', brief: 'Remove milestone' },
50
- { name: 'get_milestones', brief: 'List task milestones' },
51
- ],
52
- },
53
- progress: {
54
- description: 'Progress logging and activity',
55
- tools: [
56
- { name: 'log_progress', brief: 'Record progress update' },
57
- { name: 'get_activity_feed', brief: 'Combined activity feed' },
58
- ],
59
- },
60
- blockers: {
61
- description: 'Blocker management',
62
- tools: [
63
- { name: 'add_blocker', brief: 'Record a blocker' },
64
- { name: 'resolve_blocker', brief: 'Mark resolved' },
65
- { name: 'get_blockers', brief: 'List blockers' },
66
- { name: 'delete_blocker', brief: 'Remove blocker' },
67
- ],
68
- },
69
- decisions: {
70
- description: 'Architectural decisions',
71
- tools: [
72
- { name: 'log_decision', brief: 'Record decision' },
73
- { name: 'get_decisions', brief: 'List decisions' },
74
- { name: 'delete_decision', brief: 'Remove decision' },
75
- ],
76
- },
77
- ideas: {
78
- description: 'Feature ideas tracking',
79
- tools: [
80
- { name: 'add_idea', brief: 'Record an idea' },
81
- { name: 'update_idea', brief: 'Update idea status' },
82
- { name: 'get_ideas', brief: 'List ideas' },
83
- { name: 'delete_idea', brief: 'Remove idea' },
84
- { name: 'convert_idea_to_task', brief: 'Convert idea to task' },
85
- ],
86
- },
87
- findings: {
88
- description: 'Audit findings/knowledge base',
89
- tools: [
90
- { name: 'add_finding', brief: 'Record audit finding' },
91
- { name: 'get_findings', brief: 'List findings' },
92
- { name: 'update_finding', brief: 'Update finding status' },
93
- { name: 'delete_finding', brief: 'Remove finding' },
94
- ],
95
- },
96
- validation: {
97
- description: 'Cross-agent task validation',
98
- tools: [
99
- { name: 'get_tasks_awaiting_validation', brief: 'Unvalidated tasks' },
100
- { name: 'claim_validation', brief: 'Claim task for review' },
101
- { name: 'validate_task', brief: 'Approve/reject task' },
102
- ],
103
- },
104
- deployment: {
105
- description: 'Deployment coordination',
106
- tools: [
107
- { name: 'request_deployment', brief: 'Request deploy' },
108
- { name: 'claim_deployment_validation', brief: 'Claim for validation' },
109
- { name: 'report_validation', brief: 'Report build/test results' },
110
- { name: 'check_deployment_status', brief: 'Get deploy status' },
111
- { name: 'start_deployment', brief: 'Begin deployment' },
112
- { name: 'complete_deployment', brief: 'Mark deploy done' },
113
- { name: 'cancel_deployment', brief: 'Cancel deployment' },
114
- { name: 'add_deployment_requirement', brief: 'Add pre-deploy step' },
115
- { name: 'complete_deployment_requirement', brief: 'Mark step done' },
116
- { name: 'get_deployment_requirements', brief: 'List pre-deploy steps' },
117
- { name: 'schedule_deployment', brief: 'Schedule future deployment' },
118
- { name: 'get_scheduled_deployments', brief: 'List scheduled deployments' },
119
- { name: 'update_scheduled_deployment', brief: 'Update schedule config' },
120
- { name: 'delete_scheduled_deployment', brief: 'Delete schedule' },
121
- { name: 'trigger_scheduled_deployment', brief: 'Manual trigger' },
122
- { name: 'check_due_deployments', brief: 'Check due schedules' },
123
- ],
124
- },
125
- fallback: {
126
- description: 'Background activities when idle',
127
- tools: [
128
- { name: 'start_fallback_activity', brief: 'Start background work' },
129
- { name: 'stop_fallback_activity', brief: 'Stop background work' },
130
- { name: 'get_activity_history', brief: 'Activity history' },
131
- { name: 'get_activity_schedules', brief: 'Activity schedules' },
132
- ],
133
- },
134
- bodies_of_work: {
135
- description: 'Group tasks into bodies of work',
136
- tools: [
137
- { name: 'create_body_of_work', brief: 'Create task group' },
138
- { name: 'update_body_of_work', brief: 'Update settings' },
139
- { name: 'get_body_of_work', brief: 'Get with tasks' },
140
- { name: 'get_bodies_of_work', brief: 'List bodies of work' },
141
- { name: 'delete_body_of_work', brief: 'Remove body of work' },
142
- { name: 'add_task_to_body_of_work', brief: 'Add task to group' },
143
- { name: 'remove_task_from_body_of_work', brief: 'Remove from group' },
144
- { name: 'activate_body_of_work', brief: 'Activate for work' },
145
- ],
146
- },
147
- requests: {
148
- description: 'User request handling',
149
- tools: [
150
- { name: 'get_pending_requests', brief: 'Unhandled requests' },
151
- { name: 'acknowledge_request', brief: 'Mark handled' },
152
- { name: 'answer_question', brief: 'Answer user question' },
153
- ],
154
- },
155
- organizations: {
156
- description: 'Organization and team management',
157
- tools: [
158
- { name: 'list_organizations', brief: 'List user orgs' },
159
- { name: 'create_organization', brief: 'Create new org' },
160
- { name: 'update_organization', brief: 'Update org settings' },
161
- { name: 'delete_organization', brief: 'Delete org' },
162
- { name: 'list_org_members', brief: 'List org members' },
163
- { name: 'invite_member', brief: 'Invite by email' },
164
- { name: 'update_member_role', brief: 'Change member role' },
165
- { name: 'remove_member', brief: 'Remove from org' },
166
- { name: 'leave_organization', brief: 'Leave an org' },
167
- { name: 'share_project_with_org', brief: 'Share project' },
168
- { name: 'update_project_share', brief: 'Update share perms' },
169
- { name: 'unshare_project', brief: 'Remove share' },
170
- { name: 'list_project_shares', brief: 'List project shares' },
171
- ],
172
- },
173
- cost: {
174
- description: 'Cost monitoring and alerts',
175
- tools: [
176
- { name: 'get_cost_summary', brief: 'Cost by period' },
177
- { name: 'get_cost_alerts', brief: 'List cost alerts' },
178
- { name: 'add_cost_alert', brief: 'Add threshold alert' },
179
- { name: 'update_cost_alert', brief: 'Update alert config' },
180
- { name: 'delete_cost_alert', brief: 'Remove alert' },
181
- { name: 'get_task_costs', brief: 'Cost per task' },
182
- ],
183
- },
184
- knowledge: {
185
- description: 'Queryable knowledge base from project data',
186
- tools: [
187
- { name: 'query_knowledge_base', brief: 'Aggregated project knowledge in one call' },
188
- ],
189
- },
190
- subtasks: {
191
- description: 'Subtask management',
192
- tools: [
193
- { name: 'add_subtask', brief: 'Add subtask to parent' },
194
- { name: 'get_subtasks', brief: 'List subtasks' },
195
- ],
196
- },
197
- sprints: {
198
- description: 'Sprint planning and tracking',
199
- tools: [
200
- { name: 'create_sprint', brief: 'Create new sprint' },
201
- { name: 'update_sprint', brief: 'Update sprint' },
202
- { name: 'get_sprint', brief: 'Get sprint details' },
203
- { name: 'get_sprints', brief: 'List sprints' },
204
- { name: 'delete_sprint', brief: 'Remove sprint' },
205
- { name: 'start_sprint', brief: 'Start sprint' },
206
- { name: 'complete_sprint', brief: 'End sprint' },
207
- { name: 'add_task_to_sprint', brief: 'Add task' },
208
- { name: 'remove_task_from_sprint', brief: 'Remove task' },
209
- { name: 'get_sprint_backlog', brief: 'Available tasks' },
210
- { name: 'get_sprint_velocity', brief: 'Velocity metrics' },
211
- ],
212
- },
213
- git_issues: {
214
- description: 'Git issue tracking',
215
- tools: [
216
- { name: 'add_git_issue', brief: 'Record git issue' },
217
- { name: 'resolve_git_issue', brief: 'Mark resolved' },
218
- { name: 'get_git_issues', brief: 'List git issues' },
219
- { name: 'delete_git_issue', brief: 'Remove issue' },
220
- ],
221
- },
222
- dependencies: {
223
- description: 'Task dependencies',
224
- tools: [
225
- { name: 'add_task_dependency', brief: 'Add dependency' },
226
- { name: 'remove_task_dependency', brief: 'Remove dependency' },
227
- { name: 'get_task_dependencies', brief: 'List dependencies' },
228
- { name: 'get_next_body_of_work_task', brief: 'Next available task' },
229
- ],
230
- },
231
- };
232
- /**
233
- * Get list of category names
234
- */
235
- export function getCategoryNames() {
236
- return Object.keys(TOOL_CATEGORIES);
237
- }
238
- /**
239
- * Get category summary (without full tool list)
240
- */
241
- export function getCategorySummary() {
242
- return Object.entries(TOOL_CATEGORIES).map(([name, cat]) => ({
243
- name,
244
- description: cat.description,
245
- tool_count: cat.tools.length,
246
- }));
247
- }
248
- /**
249
- * Get tools in a specific category
250
- */
251
- export function getCategoryTools(category) {
252
- return TOOL_CATEGORIES[category];
253
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Knowledge Base
3
- *
4
- * Embedded help topics for on-demand agent guidance.
5
- */
6
- export declare const KNOWLEDGE_BASE: Record<string, string>;