@joeytheman/gemini-mcp-tool 1.3.0 → 2.2.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 (115) hide show
  1. package/README.md +123 -34
  2. package/dist/__tests__/ask-gemini.test.js +99 -37
  3. package/dist/__tests__/ask-gemini.test.js.map +1 -1
  4. package/dist/__tests__/live-pass.test.d.ts +2 -0
  5. package/dist/__tests__/live-pass.test.d.ts.map +1 -0
  6. package/dist/__tests__/live-pass.test.js +725 -0
  7. package/dist/__tests__/live-pass.test.js.map +1 -0
  8. package/dist/__tests__/screen-review.test.d.ts +2 -0
  9. package/dist/__tests__/screen-review.test.d.ts.map +1 -0
  10. package/dist/__tests__/screen-review.test.js +444 -0
  11. package/dist/__tests__/screen-review.test.js.map +1 -0
  12. package/dist/__tests__/server.test.js +17 -12
  13. package/dist/__tests__/server.test.js.map +1 -1
  14. package/dist/__tests__/simple-tools.test.d.ts +2 -0
  15. package/dist/__tests__/simple-tools.test.d.ts.map +1 -0
  16. package/dist/__tests__/simple-tools.test.js +25 -0
  17. package/dist/__tests__/simple-tools.test.js.map +1 -0
  18. package/dist/__tests__/tools.test.js +63 -0
  19. package/dist/__tests__/tools.test.js.map +1 -1
  20. package/dist/__tests__/utils/agyExecutor.test.d.ts +2 -0
  21. package/dist/__tests__/utils/agyExecutor.test.d.ts.map +1 -0
  22. package/dist/__tests__/utils/agyExecutor.test.js +616 -0
  23. package/dist/__tests__/utils/agyExecutor.test.js.map +1 -0
  24. package/dist/__tests__/utils/agyTranscriptRecovery.test.d.ts +2 -0
  25. package/dist/__tests__/utils/agyTranscriptRecovery.test.d.ts.map +1 -0
  26. package/dist/__tests__/utils/agyTranscriptRecovery.test.js +127 -0
  27. package/dist/__tests__/utils/agyTranscriptRecovery.test.js.map +1 -0
  28. package/dist/__tests__/utils/chunkCache.test.js +26 -2
  29. package/dist/__tests__/utils/chunkCache.test.js.map +1 -1
  30. package/dist/__tests__/utils/commandExecutor.test.js +30 -6
  31. package/dist/__tests__/utils/commandExecutor.test.js.map +1 -1
  32. package/dist/__tests__/utils/fileReferences.test.d.ts +2 -0
  33. package/dist/__tests__/utils/fileReferences.test.d.ts.map +1 -0
  34. package/dist/__tests__/utils/fileReferences.test.js +87 -0
  35. package/dist/__tests__/utils/fileReferences.test.js.map +1 -0
  36. package/dist/__tests__/utils/gitStatusGuard.test.d.ts +2 -0
  37. package/dist/__tests__/utils/gitStatusGuard.test.d.ts.map +1 -0
  38. package/dist/__tests__/utils/gitStatusGuard.test.js +106 -0
  39. package/dist/__tests__/utils/gitStatusGuard.test.js.map +1 -0
  40. package/dist/__tests__/utils/responseCache.test.js +31 -11
  41. package/dist/__tests__/utils/responseCache.test.js.map +1 -1
  42. package/dist/__tests__/utils/test-helpers.d.ts +4 -0
  43. package/dist/__tests__/utils/test-helpers.d.ts.map +1 -1
  44. package/dist/__tests__/utils/test-helpers.js +16 -0
  45. package/dist/__tests__/utils/test-helpers.js.map +1 -1
  46. package/dist/constants.d.ts +68 -26
  47. package/dist/constants.d.ts.map +1 -1
  48. package/dist/constants.js +69 -28
  49. package/dist/constants.js.map +1 -1
  50. package/dist/index.js +2 -2
  51. package/dist/index.js.map +1 -1
  52. package/dist/tools/ask-gemini.tool.d.ts +34 -0
  53. package/dist/tools/ask-gemini.tool.d.ts.map +1 -1
  54. package/dist/tools/ask-gemini.tool.js +38 -22
  55. package/dist/tools/ask-gemini.tool.js.map +1 -1
  56. package/dist/tools/brainstorm.tool.d.ts.map +1 -1
  57. package/dist/tools/brainstorm.tool.js +5 -4
  58. package/dist/tools/brainstorm.tool.js.map +1 -1
  59. package/dist/tools/index.d.ts.map +1 -1
  60. package/dist/tools/index.js +3 -1
  61. package/dist/tools/index.js.map +1 -1
  62. package/dist/tools/live-pass.tool.d.ts +183 -0
  63. package/dist/tools/live-pass.tool.d.ts.map +1 -0
  64. package/dist/tools/live-pass.tool.js +548 -0
  65. package/dist/tools/live-pass.tool.js.map +1 -0
  66. package/dist/tools/registry.d.ts +4 -2
  67. package/dist/tools/registry.d.ts.map +1 -1
  68. package/dist/tools/registry.js +12 -9
  69. package/dist/tools/registry.js.map +1 -1
  70. package/dist/tools/screen-review.tool.d.ts +121 -0
  71. package/dist/tools/screen-review.tool.d.ts.map +1 -0
  72. package/dist/tools/screen-review.tool.js +415 -0
  73. package/dist/tools/screen-review.tool.js.map +1 -0
  74. package/dist/tools/simple-tools.d.ts.map +1 -1
  75. package/dist/tools/simple-tools.js +4 -2
  76. package/dist/tools/simple-tools.js.map +1 -1
  77. package/dist/utils/agyExecutor.d.ts +68 -0
  78. package/dist/utils/agyExecutor.d.ts.map +1 -0
  79. package/dist/utils/agyExecutor.js +443 -0
  80. package/dist/utils/agyExecutor.js.map +1 -0
  81. package/dist/utils/agyReport.d.ts +19 -0
  82. package/dist/utils/agyReport.d.ts.map +1 -0
  83. package/dist/utils/agyReport.js +62 -0
  84. package/dist/utils/agyReport.js.map +1 -0
  85. package/dist/utils/agyTranscriptRecovery.d.ts +16 -0
  86. package/dist/utils/agyTranscriptRecovery.d.ts.map +1 -0
  87. package/dist/utils/agyTranscriptRecovery.js +149 -0
  88. package/dist/utils/agyTranscriptRecovery.js.map +1 -0
  89. package/dist/utils/chunkCache.d.ts.map +1 -1
  90. package/dist/utils/chunkCache.js +19 -5
  91. package/dist/utils/chunkCache.js.map +1 -1
  92. package/dist/utils/commandExecutor.d.ts.map +1 -1
  93. package/dist/utils/commandExecutor.js +15 -7
  94. package/dist/utils/commandExecutor.js.map +1 -1
  95. package/dist/utils/fileReferences.d.ts +45 -0
  96. package/dist/utils/fileReferences.d.ts.map +1 -0
  97. package/dist/utils/fileReferences.js +169 -0
  98. package/dist/utils/fileReferences.js.map +1 -0
  99. package/dist/utils/gitStatusGuard.d.ts +35 -0
  100. package/dist/utils/gitStatusGuard.d.ts.map +1 -0
  101. package/dist/utils/gitStatusGuard.js +82 -0
  102. package/dist/utils/gitStatusGuard.js.map +1 -0
  103. package/dist/utils/responseCache.d.ts +3 -3
  104. package/dist/utils/responseCache.d.ts.map +1 -1
  105. package/dist/utils/responseCache.js +11 -6
  106. package/dist/utils/responseCache.js.map +1 -1
  107. package/package.json +10 -9
  108. package/dist/__tests__/utils/geminiExecutor.test.d.ts +0 -2
  109. package/dist/__tests__/utils/geminiExecutor.test.d.ts.map +0 -1
  110. package/dist/__tests__/utils/geminiExecutor.test.js +0 -337
  111. package/dist/__tests__/utils/geminiExecutor.test.js.map +0 -1
  112. package/dist/utils/geminiExecutor.d.ts +0 -17
  113. package/dist/utils/geminiExecutor.d.ts.map +0 -1
  114. package/dist/utils/geminiExecutor.js +0 -238
  115. package/dist/utils/geminiExecutor.js.map +0 -1
@@ -1,3 +1,37 @@
1
+ import { z } from 'zod';
1
2
  import { UnifiedTool } from './registry.js';
3
+ export declare const askGeminiArgsSchema: z.ZodObject<{
4
+ prompt: z.ZodString;
5
+ model: z.ZodOptional<z.ZodString>;
6
+ sandbox: z.ZodDefault<z.ZodBoolean>;
7
+ changeMode: z.ZodDefault<z.ZodBoolean>;
8
+ chunkIndex: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
9
+ chunkCacheKey: z.ZodOptional<z.ZodString>;
10
+ workingDirectory: z.ZodOptional<z.ZodString>;
11
+ yolo: z.ZodDefault<z.ZodBoolean>;
12
+ approvalMode: z.ZodOptional<z.ZodEnum<{
13
+ yolo: "yolo";
14
+ default: "default";
15
+ auto_edit: "auto_edit";
16
+ }>>;
17
+ outputFormat: z.ZodOptional<z.ZodEnum<{
18
+ text: "text";
19
+ json: "json";
20
+ "stream-json": "stream-json";
21
+ }>>;
22
+ jsonSchema: z.ZodOptional<z.ZodString>;
23
+ effort: z.ZodOptional<z.ZodEnum<{
24
+ low: "low";
25
+ medium: "medium";
26
+ high: "high";
27
+ }>>;
28
+ includeDirectories: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
29
+ debug: z.ZodDefault<z.ZodBoolean>;
30
+ printTimeout: z.ZodOptional<z.ZodString>;
31
+ promptInteractive: z.ZodOptional<z.ZodString>;
32
+ extensions: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
33
+ resume: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
34
+ conversationId: z.ZodOptional<z.ZodString>;
35
+ }, z.core.$strip>;
2
36
  export declare const askGeminiTool: UnifiedTool;
3
37
  //# sourceMappingURL=ask-gemini.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-gemini.tool.d.ts","sourceRoot":"","sources":["../../src/tools/ask-gemini.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA6B5C,eAAO,MAAM,aAAa,EAAE,WA0D3B,CAAC"}
1
+ {"version":3,"file":"ask-gemini.tool.d.ts","sourceRoot":"","sources":["../../src/tools/ask-gemini.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkB5C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB9B,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,WAsE3B,CAAC"}
@@ -1,31 +1,33 @@
1
1
  import { z } from 'zod';
2
- import { executeGeminiCLI, processChangeModeOutput } from '../utils/geminiExecutor.js';
3
- import { ERROR_MESSAGES, STATUS_MESSAGES } from '../constants.js';
4
- const askGeminiArgsSchema = z.object({
5
- prompt: z.string().min(1).describe("Analysis request. Use @ syntax to include files (e.g., '@largefile.js explain what this does') or ask general questions"),
6
- model: z.string().optional().describe("Optional model to use (e.g., 'gemini-3-flash-preview'). If not specified, uses the default model (gemini-3.1-pro-preview)."),
7
- sandbox: z.boolean().default(false).describe("Use sandbox mode (-s flag) to safely test code changes, execute scripts, or run potentially risky operations in an isolated environment"),
2
+ import { executeAgyCLI, executeAgyJson, processChangeModeOutput, renderAgyJsonEnvelope, formatAgyUsageLine, formatConversationLine, } from '../utils/agyExecutor.js';
3
+ import { CLI, ERROR_MESSAGES, MODELS, MODEL_CHOICE_DESCRIPTION, STATUS_MESSAGES } from '../constants.js';
4
+ export const askGeminiArgsSchema = z.object({
5
+ prompt: z.string().min(1).describe("Analysis request for Gemini feedback. Use @ syntax to include files (e.g., '@largefile.js review this implementation') or ask for plan/code review feedback"),
6
+ model: z.string().optional().describe(`${MODEL_CHOICE_DESCRIPTION} Defaults to '${MODELS.DEFAULT}'.`),
7
+ sandbox: z.boolean().default(false).describe("Use Antigravity sandbox mode (--sandbox) to restrict terminal access"),
8
8
  changeMode: z.boolean().default(false).describe("Enable structured change mode - formats prompts to prevent tool errors and returns structured edit suggestions that Claude can apply directly"),
9
9
  chunkIndex: z.union([z.number(), z.string()]).optional().describe("Which chunk to return (1-based)"),
10
10
  chunkCacheKey: z.string().optional().describe("Optional cache key for continuation"),
11
- workingDirectory: z.string().optional().describe("Working directory to run Gemini from. Use drive root (e.g., 'C:/' or 'D:/') to access files on that drive."),
12
- // Phase 1: Critical flags
13
- yolo: z.boolean().default(false).describe("Auto-accept all actions (YOLO mode). Automatically approves all confirmations without prompting. Use with caution in automated workflows."),
14
- approvalMode: z.enum(["default", "auto_edit", "yolo"]).optional().describe("Set approval mode: 'default' (prompt for approval), 'auto_edit' (auto-approve edit tools only), 'yolo' (auto-approve all tools). Overrides yolo flag if both are set."),
15
- outputFormat: z.enum(["text", "json", "stream-json"]).optional().describe("Output format: 'text' (default human-readable), 'json' (structured JSON), 'stream-json' (streaming JSON for real-time processing)"),
16
- includeDirectories: z.union([z.string(), z.array(z.string())]).optional().describe("Additional directories to include in workspace (comma-separated string or array). Example: 'src,tests' or ['src', 'tests']"),
17
- debug: z.boolean().default(false).describe("Enable debug mode for verbose logging and troubleshooting"),
18
- // Phase 2: Enhanced features (for future implementation)
19
- promptInteractive: z.string().optional().describe("Execute the provided prompt and continue in interactive mode"),
20
- extensions: z.union([z.string(), z.array(z.string())]).optional().describe("Specific extensions to use (comma-separated or array). If not provided, all extensions are used."),
21
- resume: z.string().optional().describe("Resume a previous session. Use 'latest' for most recent or session index number"),
11
+ workingDirectory: z.string().optional().describe("Working directory to run agy from. Use drive root (e.g., 'C:/' or 'D:/') to access files on that drive."),
12
+ yolo: z.boolean().default(false).describe("Map to agy --dangerously-skip-permissions. Auto-approves all tool permission requests without prompting. Use with caution."),
13
+ approvalMode: z.enum(["default", "auto_edit", "yolo"]).optional().describe("Legacy Gemini CLI option. Only 'yolo' is supported and maps to --dangerously-skip-permissions; other values return an explicit error."),
14
+ outputFormat: z.enum(["text", "json", "stream-json"]).optional().describe("'text' (default) returns agy's plain answer. 'json' returns agy's JSON envelope rendered as the conversation ID line, the response (or structured_output when jsonSchema is set), and a usage line. 'stream-json' is unsupported."),
15
+ jsonSchema: z.string().optional().describe("Inline JSON Schema passed to agy --json-schema, which constrains the answer to structured_output. Requires outputFormat: 'json'."),
16
+ effort: z.enum(["low", "medium", "high"]).optional().describe("agy --effort, only for models that accept it; tiered Gemini names encode effort in the name ('Gemini 3.8 Flash (High)') and agy rejects --effort for them."),
17
+ includeDirectories: z.union([z.string(), z.array(z.string())]).optional().describe("Additional directories to include in the Antigravity workspace. Comma-separated string or array maps to repeated --add-dir flags."),
18
+ debug: z.boolean().default(false).describe("Unsupported legacy Gemini CLI option. Use agy logs for troubleshooting."),
19
+ printTimeout: z.string().optional().describe("agy --print-timeout duration, such as '5m', '90s', or '10m'. If omitted, agy uses its default."),
20
+ promptInteractive: z.string().optional().describe("Unsupported in MCP request/response mode because it requires an interactive TTY."),
21
+ extensions: z.union([z.string(), z.array(z.string())]).optional().describe("Unsupported legacy Gemini CLI option. Antigravity uses plugins instead of Gemini CLI extensions."),
22
+ resume: z.union([z.boolean(), z.string()]).optional().describe("Resume an agy conversation. true/latest/continue maps to --continue; any other string maps to --conversation <id>."),
23
+ conversationId: z.string().optional().describe("Resume this exact agy conversation (--conversation <id>); wins over `resume`. In outputFormat 'json' the call errors when agy silently starts a different conversation instead of resuming this one. IDs come from the [GEMINI_CONVERSATION_ID=...] line of a previous json call."),
22
24
  });
23
25
  export const askGeminiTool = {
24
26
  name: "ask-gemini",
25
- description: "Ask Google Gemini with full CLI support: model selection [-m], sandbox [-s], YOLO mode [-y], approval modes, output formats, and more",
27
+ description: "Ask Gemini through Antigravity CLI (`agy`) for plan review, implementation critique, code review, architecture feedback, debugging, and tradeoff analysis",
26
28
  zodSchema: askGeminiArgsSchema,
27
29
  prompt: {
28
- description: "Execute Gemini CLI with advanced options. Supports file analysis (@syntax), YOLO mode, different approval levels, output formats (text/json), debug mode, and structured change mode for edit suggestions.",
30
+ description: "Ask Gemini through Antigravity CLI (`agy`). Supports file analysis (@syntax), sandbox, yolo permission mode, extra workspace directories, print timeouts, resume by conversation ID, JSON output with an optional response schema, and structured change mode for edit suggestions.",
29
31
  },
30
32
  category: 'gemini',
31
33
  annotations: {
@@ -34,7 +36,7 @@ export const askGeminiTool = {
34
36
  openWorldHint: true,
35
37
  },
36
38
  execute: async (args, onProgress) => {
37
- const { prompt, model, sandbox, changeMode, chunkIndex, chunkCacheKey, workingDirectory, yolo, approvalMode, outputFormat, includeDirectories, debug, promptInteractive, extensions, resume } = args;
39
+ const { prompt, model, sandbox, changeMode, chunkIndex, chunkCacheKey, workingDirectory, yolo, approvalMode, outputFormat, jsonSchema, effort, includeDirectories, debug, printTimeout, promptInteractive, extensions, resume, conversationId } = args;
38
40
  if (!prompt?.trim()) {
39
41
  throw new Error(ERROR_MESSAGES.NO_PROMPT_PROVIDED);
40
42
  }
@@ -42,20 +44,34 @@ export const askGeminiTool = {
42
44
  return processChangeModeOutput('', // empty for cache...
43
45
  chunkIndex, chunkCacheKey, prompt);
44
46
  }
45
- const result = await executeGeminiCLI(prompt, {
47
+ const cliOptions = {
46
48
  model: model,
47
49
  sandbox: !!sandbox,
48
50
  changeMode: !!changeMode,
49
51
  yolo: !!yolo,
50
52
  approvalMode: approvalMode,
51
53
  outputFormat: outputFormat,
54
+ jsonSchema: jsonSchema,
55
+ effort: effort,
52
56
  includeDirectories: includeDirectories,
53
57
  debug: !!debug,
58
+ printTimeout: printTimeout,
54
59
  promptInteractive: promptInteractive,
55
60
  extensions: extensions,
56
61
  resume: resume,
62
+ conversationId: conversationId,
57
63
  cwd: workingDirectory,
58
- }, onProgress);
64
+ };
65
+ if (outputFormat === CLI.DEFAULTS.OUTPUT_FORMAT_JSON) {
66
+ const envelope = await executeAgyJson(prompt, cliOptions, onProgress);
67
+ const rendered = renderAgyJsonEnvelope(envelope, { hadSchema: Boolean(jsonSchema) });
68
+ return [
69
+ envelope.conversation_id ? formatConversationLine(envelope.conversation_id) : '',
70
+ `${STATUS_MESSAGES.GEMINI_RESPONSE}\n${rendered}`,
71
+ formatAgyUsageLine(envelope),
72
+ ].filter(Boolean).join('\n\n');
73
+ }
74
+ const result = await executeAgyCLI(prompt, cliOptions, onProgress);
59
75
  if (changeMode) {
60
76
  return processChangeModeOutput(result, args.chunkIndex, undefined, prompt);
61
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ask-gemini.tool.js","sourceRoot":"","sources":["../../src/tools/ask-gemini.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EACL,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yHAAyH,CAAC;IAC7J,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4HAA4H,CAAC;IACnK,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yIAAyI,CAAC;IACvL,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,+IAA+I,CAAC;IAChM,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACpG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACpF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4GAA4G,CAAC;IAE9J,0BAA0B;IAC1B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2IAA2I,CAAC;IACtL,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uKAAuK,CAAC;IACnP,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mIAAmI,CAAC;IAC9M,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4HAA4H,CAAC;IAChN,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAEvG,yDAAyD;IACzD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACjH,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kGAAkG,CAAC;IAC9K,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;CAC1H,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,uIAAuI;IACpJ,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE;QACN,WAAW,EAAE,4MAA4M;KAC1N;IACD,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE;QACX,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAClC,MAAM,EACJ,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAC/E,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAC3D,iBAAiB,EAAE,UAAU,EAAE,MAAM,EACtC,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAAC,CAAC;QAEtF,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;YAC9C,OAAO,uBAAuB,CAC5B,EAAE,EAAE,qBAAqB;YACzB,UAAoB,EACpB,aAAuB,EACvB,MAAgB,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,MAAgB,EAChB;YACE,KAAK,EAAE,KAA2B;YAClC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,YAAY,EAAE,YAAkC;YAChD,YAAY,EAAE,YAAkC;YAChD,kBAAkB,EAAE,kBAAkB;YACtC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,iBAAiB,EAAE,iBAAuC;YAC1D,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,MAA4B;YACpC,GAAG,EAAE,gBAAsC;SAC5C,EACD,UAAU,CACX,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,uBAAuB,CAC5B,MAAM,EACN,IAAI,CAAC,UAAgC,EACrC,SAAS,EACT,MAAgB,CACjB,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,eAAe,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC,CAAC,mBAAmB;IAC7E,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"ask-gemini.tool.js","sourceRoot":"","sources":["../../src/tools/ask-gemini.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"brainstorm.tool.d.ts","sourceRoot":"","sources":["../../src/tools/brainstorm.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgI5C,eAAO,MAAM,cAAc,EAAE,WAyD5B,CAAC"}
1
+ {"version":3,"file":"brainstorm.tool.d.ts","sourceRoot":"","sources":["../../src/tools/brainstorm.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiI5C,eAAO,MAAM,cAAc,EAAE,WAyD5B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { Logger } from '../utils/logger.js';
3
- import { executeGeminiCLI } from '../utils/geminiExecutor.js';
3
+ import { executeAgyCLI } from '../utils/agyExecutor.js';
4
+ import { MODELS, MODEL_CHOICE_DESCRIPTION } from '../constants.js';
4
5
  function buildBrainstormPrompt(config) {
5
6
  const { prompt, methodology, domain, constraints, existingContext, ideaCount, includeAnalysis } = config;
6
7
  // Select methodology framework
@@ -96,14 +97,14 @@ ${domain ? `Given the ${domain} domain, I'll apply the most effective combinatio
96
97
  }
97
98
  const brainstormArgsSchema = z.object({
98
99
  prompt: z.string().min(1).describe("Primary brainstorming challenge or question to explore"),
99
- model: z.string().optional().describe("Optional model to use (e.g., 'gemini-3-flash-preview'). If not specified, uses the default model (gemini-3.1-pro-preview)."),
100
+ model: z.string().optional().describe(`${MODEL_CHOICE_DESCRIPTION} Defaults to '${MODELS.DEFAULT}'.`),
100
101
  methodology: z.enum(['divergent', 'convergent', 'scamper', 'design-thinking', 'lateral', 'auto']).default('auto').describe("Brainstorming framework: 'divergent' (generate many ideas), 'convergent' (refine existing), 'scamper' (systematic triggers), 'design-thinking' (human-centered), 'lateral' (unexpected connections), 'auto' (AI selects best)"),
101
102
  domain: z.string().optional().describe("Domain context for specialized brainstorming (e.g., 'software', 'business', 'creative', 'research', 'product', 'marketing')"),
102
103
  constraints: z.string().optional().describe("Known limitations, requirements, or boundaries (budget, time, technical, legal, etc.)"),
103
104
  existingContext: z.string().optional().describe("Background information, previous attempts, or current state to build upon"),
104
105
  ideaCount: z.number().int().positive().default(12).describe("Target number of ideas to generate (default: 10-15)"),
105
106
  includeAnalysis: z.boolean().default(true).describe("Include feasibility, impact, and implementation analysis for generated ideas"),
106
- workingDirectory: z.string().optional().describe("Working directory to run Gemini from."),
107
+ workingDirectory: z.string().optional().describe("Working directory to run agy from."),
107
108
  });
108
109
  export const brainstormTool = {
109
110
  name: "brainstorm",
@@ -136,7 +137,7 @@ export const brainstormTool = {
136
137
  // Report progress to user
137
138
  onProgress?.(`Generating ${ideaCount} ideas via ${methodology} methodology...`);
138
139
  // Execute with Gemini
139
- return await executeGeminiCLI(enhancedPrompt, {
140
+ return await executeAgyCLI(enhancedPrompt, {
140
141
  model: model,
141
142
  sandbox: false,
142
143
  changeMode: false,
@@ -1 +1 @@
1
- {"version":3,"file":"brainstorm.tool.js","sourceRoot":"","sources":["../../src/tools/brainstorm.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brainstorm.tool.js","sourceRoot":"","sources":["../../src/tools/brainstorm.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAiBA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAqBA,cAAc,eAAe,CAAC"}
@@ -5,6 +5,8 @@ import { pingTool, helpTool } from './simple-tools.js';
5
5
  import { brainstormTool } from './brainstorm.tool.js';
6
6
  import { fetchChunkTool } from './fetch-chunk.tool.js';
7
7
  import { timeoutTestTool } from './timeout-test.tool.js';
8
- toolRegistry.push(askGeminiTool, pingTool, helpTool, brainstormTool, fetchChunkTool, timeoutTestTool);
8
+ import { livePassTool } from './live-pass.tool.js';
9
+ import { screenReviewTool } from './screen-review.tool.js';
10
+ toolRegistry.push(askGeminiTool, pingTool, helpTool, brainstormTool, fetchChunkTool, timeoutTestTool, livePassTool, screenReviewTool);
9
11
  export * from './registry.js';
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,YAAY,CAAC,IAAI,CACf,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,cAAc,EACd,eAAe,CAChB,CAAC;AAEF,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,YAAY,CAAC,IAAI,CACf,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,CACjB,CAAC;AAEF,cAAc,eAAe,CAAC"}
@@ -0,0 +1,183 @@
1
+ import { z } from 'zod';
2
+ import { UnifiedTool } from './registry.js';
3
+ import { type AgyJsonEnvelope } from '../utils/agyExecutor.js';
4
+ import { type WorkingTreeDiff } from '../utils/gitStatusGuard.js';
5
+ export declare const livePassTargetSchema: z.ZodObject<{
6
+ screen: z.ZodString;
7
+ state: z.ZodString;
8
+ viewport: z.ZodString;
9
+ expected: z.ZodString;
10
+ }, z.core.$strip>;
11
+ export declare const livePassArgsSchema: z.ZodObject<{
12
+ targets: z.ZodArray<z.ZodObject<{
13
+ screen: z.ZodString;
14
+ state: z.ZodString;
15
+ viewport: z.ZodString;
16
+ expected: z.ZodString;
17
+ }, z.core.$strip>>;
18
+ brief: z.ZodString;
19
+ workingDirectory: z.ZodString;
20
+ artifactDir: z.ZodOptional<z.ZodString>;
21
+ driver: z.ZodEnum<{
22
+ playwright: "playwright";
23
+ maestro: "maestro";
24
+ }>;
25
+ model: z.ZodDefault<z.ZodString>;
26
+ printTimeout: z.ZodDefault<z.ZodString>;
27
+ yolo: z.ZodDefault<z.ZodBoolean>;
28
+ publishCommand: z.ZodOptional<z.ZodString>;
29
+ conversationId: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strip>;
31
+ export type LivePassTarget = z.infer<typeof livePassTargetSchema>;
32
+ export type LivePassArgs = z.infer<typeof livePassArgsSchema>;
33
+ export declare const livePassResultSchema: z.ZodObject<{
34
+ verdict: z.ZodEnum<{
35
+ PASS: "PASS";
36
+ FAIL: "FAIL";
37
+ BLOCKED: "BLOCKED";
38
+ }>;
39
+ summary: z.ZodString;
40
+ served_branch_check: z.ZodString;
41
+ frames: z.ZodArray<z.ZodObject<{
42
+ file: z.ZodString;
43
+ screen: z.ZodString;
44
+ state: z.ZodString;
45
+ expected: z.ZodString;
46
+ viewport: z.ZodString;
47
+ verdict: z.ZodEnum<{
48
+ PASS: "PASS";
49
+ FAIL: "FAIL";
50
+ }>;
51
+ observed: z.ZodString;
52
+ }, z.core.$strip>>;
53
+ findings: z.ZodArray<z.ZodObject<{
54
+ severity: z.ZodEnum<{
55
+ BLOCKER: "BLOCKER";
56
+ MAJOR: "MAJOR";
57
+ MINOR: "MINOR";
58
+ }>;
59
+ screen: z.ZodString;
60
+ description: z.ZodString;
61
+ evidence_file: z.ZodOptional<z.ZodString>;
62
+ }, z.core.$strip>>;
63
+ regressions: z.ZodArray<z.ZodObject<{
64
+ severity: z.ZodEnum<{
65
+ BLOCKER: "BLOCKER";
66
+ MAJOR: "MAJOR";
67
+ MINOR: "MINOR";
68
+ }>;
69
+ screen: z.ZodString;
70
+ description: z.ZodString;
71
+ evidence_file: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strip>>;
73
+ resolved: z.ZodArray<z.ZodObject<{
74
+ screen: z.ZodString;
75
+ description: z.ZodString;
76
+ evidence_file: z.ZodOptional<z.ZodString>;
77
+ }, z.core.$strip>>;
78
+ changes: z.ZodArray<z.ZodObject<{
79
+ screen: z.ZodString;
80
+ description: z.ZodString;
81
+ evidence_file: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strip>>;
83
+ skipped: z.ZodArray<z.ZodObject<{
84
+ target: z.ZodString;
85
+ reason: z.ZodString;
86
+ }, z.core.$strip>>;
87
+ }, z.core.$strip>;
88
+ export type LivePassResult = z.infer<typeof livePassResultSchema>;
89
+ export declare const LIVE_PASS_RESULT_JSON_SCHEMA: Record<string, unknown>;
90
+ /**
91
+ * The one filename a target's evidence may use. Derived in code from the whole
92
+ * screen/state/viewport triple so two targets can never share a file — letting
93
+ * Gemini name frames allowed one overwritten screenshot to satisfy several
94
+ * targets at once.
95
+ */
96
+ export declare function frameFileName(target: {
97
+ screen: string;
98
+ state: string;
99
+ viewport: string;
100
+ }): string;
101
+ /**
102
+ * One filename per target, keyed by target. Slugifying can map two distinct
103
+ * targets (`a/b` and `a-b`) onto one name, so a collision is suffixed rather
104
+ * than left to collapse two targets into one file.
105
+ */
106
+ export declare function prescribedFrameNames(targets: {
107
+ screen: string;
108
+ state: string;
109
+ viewport: string;
110
+ }[]): Map<string, string>;
111
+ export declare function buildLivePassPrompt(config: {
112
+ brief: string;
113
+ driver: 'playwright' | 'maestro';
114
+ targets: LivePassTarget[];
115
+ workingDirectory: string;
116
+ artifactDir: string;
117
+ resumed: boolean;
118
+ }): string;
119
+ export type FrameStatus = 'OK' | 'MISSING' | 'EMPTY' | 'STALE' | 'OUTSIDE' | 'DUPLICATE';
120
+ export interface FrameCheck {
121
+ file: string;
122
+ screen: string;
123
+ state: string;
124
+ status: FrameStatus;
125
+ /** The file exists but is not the filename prescribed for this target. Reported, never fatal. */
126
+ misnamed: boolean;
127
+ }
128
+ export interface FramesValidation {
129
+ checks: FrameCheck[];
130
+ okFiles: string[];
131
+ problems: string[];
132
+ /** Reported alongside the problems but never affects the verdict. */
133
+ notes: string[];
134
+ unreportedCaptures: string[];
135
+ }
136
+ /** Check every reported frame against the disk. Never throws. */
137
+ export declare function validateFrames(result: LivePassResult, artifactDir: string, runStartMs: number, targets?: LivePassTarget[]): FramesValidation;
138
+ export interface CoverageReport {
139
+ uncovered: LivePassTarget[];
140
+ skipped: {
141
+ target: LivePassTarget;
142
+ reason: string;
143
+ }[];
144
+ extraFrames: string[];
145
+ }
146
+ /** Match each requested target to a reported frame, case- and whitespace-insensitively. */
147
+ export declare function checkCoverage(targets: LivePassTarget[], result: LivePassResult): CoverageReport;
148
+ export interface VerdictDecision {
149
+ verdict: 'PASS' | 'FAIL' | 'BLOCKED';
150
+ reported: string;
151
+ reasons: string[];
152
+ }
153
+ /** Gemini's own verdict is advisory; this is the one the caller acts on. */
154
+ export declare function deriveVerdict(input: {
155
+ result: LivePassResult;
156
+ validation: FramesValidation;
157
+ coverage: CoverageReport;
158
+ deniedActions: string;
159
+ }): VerdictDecision;
160
+ export interface PublishResult {
161
+ ran: boolean;
162
+ command?: string;
163
+ stdout: string;
164
+ stderr: string;
165
+ exitCode: number | null;
166
+ skippedReason?: string;
167
+ }
168
+ export declare function runPublishCommand(command: string | undefined, okFiles: string[], cwd: string): Promise<PublishResult>;
169
+ export declare function formatLivePassReport(input: {
170
+ envelope: AgyJsonEnvelope;
171
+ result: LivePassResult;
172
+ decision: VerdictDecision;
173
+ validation: FramesValidation;
174
+ coverage: CoverageReport;
175
+ driver: string;
176
+ model: string;
177
+ artifactDir: string;
178
+ deniedActions: string;
179
+ workingTree: WorkingTreeDiff;
180
+ publish: PublishResult;
181
+ }): string;
182
+ export declare const livePassTool: UnifiedTool;
183
+ //# sourceMappingURL=live-pass.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-pass.tool.d.ts","sourceRoot":"","sources":["../../src/tools/live-pass.tool.ts"],"names":[],"mappings":"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"}