gemini-helper-friend 2.0.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 (64) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +216 -0
  3. package/dist/config/index.d.ts +6 -0
  4. package/dist/config/index.d.ts.map +1 -0
  5. package/dist/config/index.js +6 -0
  6. package/dist/config/index.js.map +1 -0
  7. package/dist/config/loader.d.ts +22 -0
  8. package/dist/config/loader.d.ts.map +1 -0
  9. package/dist/config/loader.js +193 -0
  10. package/dist/config/loader.js.map +1 -0
  11. package/dist/config/templates/completion-inspector.mdx +648 -0
  12. package/dist/config/templates/helper-friend.mdx +763 -0
  13. package/dist/config/templates/manual-tester.mdx +950 -0
  14. package/dist/config/types.d.ts +90 -0
  15. package/dist/config/types.d.ts.map +1 -0
  16. package/dist/config/types.js +6 -0
  17. package/dist/config/types.js.map +1 -0
  18. package/dist/config/yaml/subagents.yaml +449 -0
  19. package/dist/config/yaml/tools.yaml +0 -0
  20. package/dist/constants.d.ts +2 -0
  21. package/dist/constants.d.ts.map +1 -0
  22. package/dist/constants.js +2 -0
  23. package/dist/constants.js.map +1 -0
  24. package/dist/index.d.ts +7 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +253 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/tools/agentic-task.tool.d.ts +2 -0
  29. package/dist/tools/agentic-task.tool.d.ts.map +1 -0
  30. package/dist/tools/agentic-task.tool.js +2 -0
  31. package/dist/tools/agentic-task.tool.js.map +1 -0
  32. package/dist/tools/extension-manager.tool.d.ts +2 -0
  33. package/dist/tools/extension-manager.tool.d.ts.map +1 -0
  34. package/dist/tools/extension-manager.tool.js +2 -0
  35. package/dist/tools/extension-manager.tool.js.map +1 -0
  36. package/dist/tools/gemini-task.tool.d.ts +2 -0
  37. package/dist/tools/gemini-task.tool.d.ts.map +1 -0
  38. package/dist/tools/gemini-task.tool.js +2 -0
  39. package/dist/tools/gemini-task.tool.js.map +1 -0
  40. package/dist/tools/index.d.ts +5 -0
  41. package/dist/tools/index.d.ts.map +1 -0
  42. package/dist/tools/index.js +5 -0
  43. package/dist/tools/index.js.map +1 -0
  44. package/dist/tools/session-manager.tool.d.ts +2 -0
  45. package/dist/tools/session-manager.tool.d.ts.map +1 -0
  46. package/dist/tools/session-manager.tool.js +2 -0
  47. package/dist/tools/session-manager.tool.js.map +1 -0
  48. package/dist/tools/structured-query.tool.d.ts +2 -0
  49. package/dist/tools/structured-query.tool.d.ts.map +1 -0
  50. package/dist/tools/structured-query.tool.js +2 -0
  51. package/dist/tools/structured-query.tool.js.map +1 -0
  52. package/dist/tools/subagent.tool.d.ts +75 -0
  53. package/dist/tools/subagent.tool.d.ts.map +1 -0
  54. package/dist/tools/subagent.tool.js +604 -0
  55. package/dist/tools/subagent.tool.js.map +1 -0
  56. package/dist/utils/geminiExecutor.d.ts +2 -0
  57. package/dist/utils/geminiExecutor.d.ts.map +1 -0
  58. package/dist/utils/geminiExecutor.js +2 -0
  59. package/dist/utils/geminiExecutor.js.map +1 -0
  60. package/package.json +62 -0
  61. package/src/config/templates/completion-inspector.mdx +648 -0
  62. package/src/config/templates/helper-friend.mdx +763 -0
  63. package/src/config/templates/manual-tester.mdx +950 -0
  64. package/src/config/yaml/subagents.yaml +449 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * TypeScript interfaces for YAML tool configuration
3
+ * Matches structure defined in yaml/tools.yaml
4
+ */
5
+ /**
6
+ * Validation rules for parameters
7
+ */
8
+ export interface YamlValidation {
9
+ minLength?: number;
10
+ maxLength?: number;
11
+ pattern?: string;
12
+ format?: 'uri' | 'email' | 'uuid';
13
+ min?: number;
14
+ max?: number;
15
+ int?: boolean;
16
+ positive?: boolean;
17
+ negative?: boolean;
18
+ minItems?: number;
19
+ maxItems?: number;
20
+ }
21
+ /**
22
+ * Parameter definition in YAML
23
+ */
24
+ export interface YamlParameter {
25
+ type: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
26
+ required?: boolean;
27
+ default?: unknown;
28
+ description?: string;
29
+ validation?: YamlValidation;
30
+ items?: YamlParameter;
31
+ properties?: Record<string, YamlParameter>;
32
+ }
33
+ /**
34
+ * Tool definition in YAML
35
+ */
36
+ export interface YamlToolConfig {
37
+ name: string;
38
+ category?: string;
39
+ capability?: string;
40
+ description: string;
41
+ parameters?: Record<string, YamlParameter>;
42
+ }
43
+ /**
44
+ * Global settings from YAML
45
+ */
46
+ export interface YamlSettings {
47
+ defaults: {
48
+ model: string;
49
+ yolo_mode: boolean;
50
+ append_instructions: boolean;
51
+ };
52
+ cli: {
53
+ command: string;
54
+ flags: {
55
+ yolo: string;
56
+ model: string;
57
+ sandbox: string;
58
+ output_format: string;
59
+ approval_mode: string;
60
+ include_directories: string;
61
+ };
62
+ };
63
+ }
64
+ /**
65
+ * Root YAML configuration structure
66
+ */
67
+ export interface YamlConfig {
68
+ version: string;
69
+ metadata: {
70
+ name: string;
71
+ displayName: string;
72
+ description: string;
73
+ };
74
+ settings: YamlSettings;
75
+ task_types: Record<string, any>;
76
+ tools: YamlToolConfig[];
77
+ }
78
+ /**
79
+ * MCP Tool definition (matches SDK)
80
+ */
81
+ export interface McpTool {
82
+ name: string;
83
+ description: string;
84
+ inputSchema: {
85
+ type: 'object';
86
+ properties: Record<string, unknown>;
87
+ required?: string[];
88
+ };
89
+ }
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,OAAO,CAAC;QACnB,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC;IACF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;YAChB,aAAa,EAAE,MAAM,CAAC;YACtB,aAAa,EAAE,MAAM,CAAC;YACtB,mBAAmB,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TypeScript interfaces for YAML tool configuration
3
+ * Matches structure defined in yaml/tools.yaml
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,449 @@
1
+ # Gemini Helper Friend MCP - Subagent Configuration
2
+ # YAML for metadata only - prompt templates in MDX files
3
+ # Version: 2.0
4
+
5
+ version: "2.0"
6
+
7
+ metadata:
8
+ name: "gemini-helper-friend-mcp"
9
+ displayName: "Gemini - Helper Friend MCP"
10
+ description: "Autonomous AI helper with specialized task types"
11
+
12
+ # ============================================================================
13
+ # GLOBAL SETTINGS
14
+ # ============================================================================
15
+
16
+ settings:
17
+ defaults:
18
+ model: "" # Uses fallback chain (see below)
19
+ yolo_mode: true
20
+ append_instructions: true
21
+
22
+ # Model fallback chain - tries in order until one succeeds
23
+ # 1. gemini-3-flash-preview (fastest, newest)
24
+ # 2. gemini-3-pro-preview (more capable)
25
+ # 3. gemini-3-pro (stable)
26
+ # 4. gemini-2.5-flash (reliable fallback)
27
+
28
+ cli:
29
+ command: "gemini"
30
+ # Per gemini --help: use positional prompt (--prompt is deprecated)
31
+ flags:
32
+ yolo: "--yolo"
33
+ model: "--model"
34
+ sandbox: "--sandbox"
35
+ output_format: "--output-format"
36
+ approval_mode: "--approval-mode"
37
+ include_directories: "--include-directories"
38
+
39
+ # ============================================================================
40
+ # TASK TYPE DEFINITIONS (Metadata Only - Templates in MDX)
41
+ # ============================================================================
42
+
43
+ task_types:
44
+
45
+ completion-inspector:
46
+ display_name: "Completion Inspector"
47
+ description: "CTO-level code inspector that verifies if a task is TRULY 100% complete"
48
+ category: "verification"
49
+ default_model: "" # Auto-select
50
+ template_file: "completion-inspector.mdx"
51
+
52
+ tool_limits:
53
+ sequentialthinking_max: 30
54
+ sequentialthinking_min: 15
55
+ warpgrep_max: 20
56
+ warpgrep_min: 8
57
+ deep_research_max: 30
58
+ web_search_keywords_max: 100
59
+
60
+ helper-friend:
61
+ display_name: "Helper Friend"
62
+ description: "Research companion for deep analysis, bug investigation, and informed decision-making"
63
+ category: "research"
64
+ default_model: "" # Auto-select
65
+ template_file: "helper-friend.mdx"
66
+
67
+ tool_limits:
68
+ sequentialthinking_max: 30
69
+ sequentialthinking_min: 10
70
+ warpgrep_max: 20
71
+ warpgrep_min: 4
72
+ deep_research_questions_max: 100
73
+ deep_research_per_call: 10
74
+ web_search_keywords_max: 500
75
+ web_search_per_call: 50
76
+ scrape_urls_max: 100
77
+ scrape_per_call: 30
78
+ reddit_posts_max: 100
79
+ reddit_per_call: 50
80
+
81
+ manual-tester:
82
+ display_name: "Manual Tester"
83
+ description: "QA engineer who manually tests implementation using real Chrome browser and terminal"
84
+ category: "testing"
85
+ default_model: "" # Auto-select
86
+ template_file: "manual-tester.mdx"
87
+
88
+ tool_limits:
89
+ sequentialthinking_max: 30
90
+ sequentialthinking_min: 15
91
+ browser_interactions_max: 50
92
+ viewports_max: 5
93
+ screenshots_max: 30
94
+ api_calls_max: 50
95
+ warpgrep_max: 10
96
+
97
+ # ============================================================================
98
+ # TOOL DEFINITION (Single consolidated tool)
99
+ # ============================================================================
100
+
101
+ tools:
102
+ - name: check_subagent_task
103
+ category: status
104
+ capability: query
105
+
106
+ description: |
107
+ **🔔 CHECK IF TASK IS READY - Notification-Aware Status Check**
108
+
109
+ Check if an async subagent task is ready to retrieve results.
110
+
111
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
112
+ 📣 MCP NOTIFICATIONS (Automatic!)
113
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
114
+
115
+ **You will receive automatic notifications when tasks complete!**
116
+
117
+ When a task finishes, the server sends:
118
+ - `notifications/resources/list_changed` → New result resource available
119
+ - `notifications/resources/updated` → Specific task resource updated
120
+
121
+ **If your client supports MCP notifications:**
122
+ - You'll see "🎉 Task 34567 is READY!" in the resources list
123
+ - Just read the `task://34567` resource to get the result
124
+ - No polling needed!
125
+
126
+ **If your client doesn't support notifications:**
127
+ - Use this tool to poll the task status
128
+ - Check every 5-10 seconds until `status: completed`
129
+
130
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
131
+ 📚 RESOURCES (Best Practice!)
132
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
133
+
134
+ **Completed tasks are also exposed as MCP Resources:**
135
+
136
+ - **URI:** `task://34567`
137
+ - **Name:** `✅ Task 34567 - helper-friend`
138
+ - **Description:** `🎉 Task 34567 is READY! Result available.`
139
+
140
+ You can read the resource directly instead of using this tool:
141
+ ```
142
+ Read resource: task://34567
143
+ ```
144
+
145
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
146
+ 📊 TASK STATES
147
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
148
+
149
+ - `pending` - Task queued, not yet started
150
+ - `running` - 🔄 Task in progress (check back soon!)
151
+ - `completed` - ✅ **READY!** Result available
152
+ - `failed` - ❌ Task failed (error message available)
153
+ - `not_found` - Invalid task ID or expired (1 hour TTL)
154
+
155
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
156
+ 📋 RESPONSE EXAMPLES
157
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
158
+
159
+ **🔄 Still Running:**
160
+ ```json
161
+ {
162
+ "task_id": 34567,
163
+ "status": "running",
164
+ "progress": 45,
165
+ "task_type": "helper-friend",
166
+ "started_at": "2024-01-15T10:30:00Z"
167
+ }
168
+ ```
169
+ → Wait and check again, or wait for notification!
170
+
171
+ **✅ READY - Task Completed:**
172
+ ```json
173
+ {
174
+ "task_id": 34567,
175
+ "status": "completed",
176
+ "result": "## Helper Friend Result\n\n...",
177
+ "task_type": "helper-friend",
178
+ "completed_at": "2024-01-15T10:35:00Z",
179
+ "duration_seconds": 300
180
+ }
181
+ ```
182
+ → 🎉 Result is in the response! Also available as resource `task://34567`
183
+
184
+ **❌ Task Failed:**
185
+ ```json
186
+ {
187
+ "task_id": 34567,
188
+ "status": "failed",
189
+ "error": "API quota exceeded",
190
+ "task_type": "helper-friend"
191
+ }
192
+ ```
193
+
194
+ parameters:
195
+ task_id:
196
+ type: integer
197
+ required: true
198
+ description: |
199
+ **[REQUIRED] 5-digit task ID**
200
+
201
+ The task ID returned by `gemini-subagent` when called with `async: true`.
202
+
203
+ Example: `34567`
204
+
205
+ **Pro tip:** If your client supports notifications, you'll see completed
206
+ tasks appear in the resources list automatically!
207
+
208
+ - name: gemini-subagent
209
+ category: execution
210
+ capability: autonomous
211
+
212
+ description: |
213
+ **🤖 GEMINI SUBAGENT - Specialized Task Execution**
214
+
215
+ Single unified tool with three specialized modes via strict task_type enum.
216
+
217
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
218
+ 📋 TASK TYPE ENUM (Required - NO STRINGS, NO GUESSING!)
219
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
220
+
221
+ Must be EXACTLY one of these three values:
222
+
223
+ **1. `completion-inspector`** - CTO-Level Code Review
224
+
225
+ **Purpose:** Verifies if a task is TRULY 100% complete
226
+
227
+ **Uses:**
228
+ - Git diff analysis (line-by-line change review)
229
+ - Codebase search (find duplicates, missed abstractions)
230
+ - Pattern detection (consistency with existing code)
231
+ - Quality assessment (cleanup opportunities)
232
+
233
+ **When to use:**
234
+ - ✅ After implementation, before marking "done"
235
+ - ✅ After major refactoring or feature work
236
+ - ✅ Before committing final changes
237
+ - ✅ When you suspect cleanup is needed
238
+
239
+ **When NOT to use:**
240
+ - ❌ Task clearly still in progress
241
+ - ❌ Haven't made any changes yet
242
+ - ❌ Simple one-line changes
243
+
244
+ **Output:** Completion %, requirements met/not met, quality issues, action items
245
+
246
+ **Model:** Auto-select (Gemini CLI chooses best)
247
+
248
+ ---
249
+
250
+ **2. `helper-friend`** - Research Companion
251
+
252
+ **Purpose:** Deep analysis, bug investigation, informed decision-making
253
+
254
+ **Uses:**
255
+ - Codebase search (understand code structure)
256
+ - Web research (best practices, documentation)
257
+ - Deep research (technical questions with file attachments)
258
+ - Reddit consensus (community experiences)
259
+
260
+ **When to use:**
261
+ - ✅ Bug investigation & root cause analysis
262
+ - ✅ Architecture & technology decisions
263
+ - ✅ Codebase understanding & discovery
264
+ - ✅ Best practices & pattern research
265
+ - ✅ Pre-implementation research
266
+
267
+ **When NOT to use:**
268
+ - ❌ Already know what to do, just need to code
269
+ - ❌ Simple questions you can answer yourself
270
+ - ❌ Tasks needing immediate action, not research
271
+
272
+ **Output:** Research findings, recommendations, trade-offs, sources
273
+
274
+ **Model:** Auto-select (Gemini CLI chooses best)
275
+
276
+ ---
277
+
278
+ **3. `manual-tester`** - QA Engineer with Real Browser
279
+
280
+ **Purpose:** Tests if implementation actually WORKS using real Chrome browser
281
+
282
+ **Uses:**
283
+ - Chrome DevTools MCP (real browser interactions)
284
+ - Terminal/curl (API testing)
285
+ - Screenshots (visual verification)
286
+ - Console monitoring (JS error detection)
287
+ - Network inspection (API call verification)
288
+
289
+ **When to use:**
290
+ - ✅ After completion-inspector confirms 100% code complete
291
+ - ✅ Frontend changes need testing
292
+ - ✅ Backend/API changes need testing
293
+ - ✅ Full flow verification
294
+ - ✅ Responsive design verification
295
+
296
+ **When NOT to use:**
297
+ - ❌ Code isn't complete yet
298
+ - ❌ No user-facing changes to test
299
+ - ❌ Pure refactoring with no behavior changes
300
+
301
+ **Output:** Test report with pass/fail, reproduction steps, screenshots, console errors
302
+
303
+ **Model:** Auto-select (Gemini CLI chooses best)
304
+
305
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
306
+ ⚙️ HOW IT WORKS
307
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
308
+
309
+ 1. You select task_type enum (strict validation)
310
+ 2. System loads corresponding MDX template
311
+ 3. Merges template + your prompt
312
+ 4. Executes: `gemini --yolo -p "[merged_prompt]"`
313
+ 5. Returns specialized result
314
+
315
+ **No shell commands, no intermediate steps** - Pure CLI-to-prompt translation.
316
+
317
+ parameters:
318
+ task_type:
319
+ type: string
320
+ required: true
321
+ validation:
322
+ pattern: "^(completion-inspector|helper-friend|manual-tester)$"
323
+ description: |
324
+ **[REQUIRED] Task type enum - NO STRINGS, NO GUESSING**
325
+
326
+ Must be EXACTLY one of:
327
+ - `completion-inspector` - Code review and verification
328
+ - `helper-friend` - Research and investigation
329
+ - `manual-tester` - QA testing with browser
330
+
331
+ The system will load the appropriate MDX template and merge with your prompt.
332
+
333
+ prompt:
334
+ type: string
335
+ required: true
336
+ validation:
337
+ minLength: 20
338
+ description: |
339
+ **[REQUIRED] Your task-specific prompt**
340
+
341
+ This will be merged with the task type's MDX template.
342
+
343
+ **For completion-inspector, provide:**
344
+ - Original task requirements
345
+ - Acceptance criteria
346
+ - Implementation summary
347
+ - Files changed with descriptions
348
+ - START_COMMIT hash
349
+ - Why you think it's complete
350
+
351
+ **For helper-friend, provide:**
352
+ - Ultimate goal and success criteria
353
+ - Current situation
354
+ - Files involved with descriptions
355
+ - What you've tried
356
+ - Current blocker/question
357
+ - Constraints
358
+
359
+ **For manual-tester, provide:**
360
+ - Frontend URL (MANDATORY!)
361
+ - Backend URL (if applicable)
362
+ - Auth credentials
363
+ - Feature description
364
+ - Expected behaviors
365
+ - Test data
366
+ - Edge cases to test
367
+
368
+ Minimum 20 characters required.
369
+
370
+ model:
371
+ type: string
372
+ required: false
373
+ description: |
374
+ **[OPTIONAL] Override model selection**
375
+
376
+ Leave empty to use task type's default:
377
+ - completion-inspector: gemini-3-pro
378
+ - helper-friend: auto-select
379
+ - manual-tester: gemini-3-pro
380
+
381
+ Available: `gemini-3-pro`, `gemini-3-flash`
382
+
383
+ sandbox:
384
+ type: boolean
385
+ required: false
386
+ default: false
387
+ description: |
388
+ **[OPTIONAL] Run in sandbox mode**
389
+
390
+ Enables sandbox isolation for safer execution.
391
+ Flag: --sandbox / -s
392
+
393
+ approval_mode:
394
+ type: string
395
+ required: false
396
+ description: |
397
+ **[OPTIONAL] Override approval mode**
398
+
399
+ Valid values:
400
+ - `default` - Prompt for approval
401
+ - `auto_edit` - Auto-approve edit tools
402
+ - `yolo` - Auto-approve all tools
403
+
404
+ Leave empty to use --yolo (auto-approve all)
405
+
406
+ include_directories:
407
+ type: string
408
+ required: false
409
+ description: |
410
+ **[OPTIONAL] Include additional directories**
411
+
412
+ Comma-separated list of directories to include.
413
+ Example: "src,docs,tests"
414
+
415
+ include_instructions:
416
+ type: boolean
417
+ required: false
418
+ default: true
419
+ description: |
420
+ Include task-specific instructions from MDX template.
421
+ Default: true (recommended)
422
+ Set false: For custom prompts that don't need template
423
+
424
+ async:
425
+ type: boolean
426
+ required: false
427
+ default: true
428
+ description: |
429
+ **[OPTIONAL] Async execution mode**
430
+
431
+ **Default: true (async)**
432
+ - Returns immediately with a 5-digit task ID (e.g., 34567)
433
+ - Task runs in background
434
+ - Query status with `check_subagent_task` tool using the task ID
435
+ - Results stored in memory until retrieved
436
+
437
+ **Set to false (sync/blocking):**
438
+ - Blocks until task completes
439
+ - Returns full result directly
440
+ - Use for quick tasks where you need immediate result
441
+
442
+ **Example async flow:**
443
+ 1. Call `gemini-subagent` with `async: true` (default)
444
+ 2. Receive: `{"task_id": 34567, "status": "running"}`
445
+ 3. Later: Call `check_subagent_task` with `task_id: 34567`
446
+ 4. Receive: `{"status": "completed", "result": "..."}` or `{"status": "running"}`
447
+
448
+ **⚠️ IMPORTANT:** When async=true, the response is NOT the result!
449
+ You MUST call `check_subagent_task` to get the actual result.
File without changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Gemini Helper Friend MCP
4
+ * Your autonomous AI assistant that works on your codebase using Gemini CLI
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}