@joeytheman/gemini-mcp-tool 2.2.0 → 2.3.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 (107) hide show
  1. package/README.md +10 -7
  2. package/dist/__tests__/agyModelSteps.test.d.ts +2 -0
  3. package/dist/__tests__/agyModelSteps.test.d.ts.map +1 -0
  4. package/dist/__tests__/agyModelSteps.test.js +58 -0
  5. package/dist/__tests__/agyModelSteps.test.js.map +1 -0
  6. package/dist/__tests__/capture-script.chromium.test.d.ts +2 -0
  7. package/dist/__tests__/capture-script.chromium.test.d.ts.map +1 -0
  8. package/dist/__tests__/capture-script.chromium.test.js +235 -0
  9. package/dist/__tests__/capture-script.chromium.test.js.map +1 -0
  10. package/dist/__tests__/layout-snippet.chromium.test.d.ts +2 -0
  11. package/dist/__tests__/layout-snippet.chromium.test.d.ts.map +1 -0
  12. package/dist/__tests__/layout-snippet.chromium.test.js +333 -0
  13. package/dist/__tests__/layout-snippet.chromium.test.js.map +1 -0
  14. package/dist/__tests__/layout-snippet.test.d.ts +2 -0
  15. package/dist/__tests__/layout-snippet.test.d.ts.map +1 -0
  16. package/dist/__tests__/layout-snippet.test.js +12 -0
  17. package/dist/__tests__/layout-snippet.test.js.map +1 -0
  18. package/dist/__tests__/live-pass.test.js +531 -7
  19. package/dist/__tests__/live-pass.test.js.map +1 -1
  20. package/dist/__tests__/screen-review.test.js +111 -2
  21. package/dist/__tests__/screen-review.test.js.map +1 -1
  22. package/dist/__tests__/server-progress.test.d.ts +2 -0
  23. package/dist/__tests__/server-progress.test.d.ts.map +1 -0
  24. package/dist/__tests__/server-progress.test.js +63 -0
  25. package/dist/__tests__/server-progress.test.js.map +1 -0
  26. package/dist/__tests__/server.test.js +1 -8
  27. package/dist/__tests__/server.test.js.map +1 -1
  28. package/dist/__tests__/simple-tools.test.js +8 -3
  29. package/dist/__tests__/simple-tools.test.js.map +1 -1
  30. package/dist/__tests__/tools.test.js +29 -1
  31. package/dist/__tests__/tools.test.js.map +1 -1
  32. package/dist/__tests__/utils/agyExecutor.test.js +176 -61
  33. package/dist/__tests__/utils/agyExecutor.test.js.map +1 -1
  34. package/dist/__tests__/utils/commandExecutor.test.js +155 -1
  35. package/dist/__tests__/utils/commandExecutor.test.js.map +1 -1
  36. package/dist/__tests__/utils/progressUpdates.test.d.ts +2 -0
  37. package/dist/__tests__/utils/progressUpdates.test.d.ts.map +1 -0
  38. package/dist/__tests__/utils/progressUpdates.test.js +62 -0
  39. package/dist/__tests__/utils/progressUpdates.test.js.map +1 -0
  40. package/dist/constants.d.ts +33 -10
  41. package/dist/constants.d.ts.map +1 -1
  42. package/dist/constants.js +42 -10
  43. package/dist/constants.js.map +1 -1
  44. package/dist/index.js +19 -94
  45. package/dist/index.js.map +1 -1
  46. package/dist/layoutCheckSnippet.generated.d.ts +2 -0
  47. package/dist/layoutCheckSnippet.generated.d.ts.map +1 -0
  48. package/dist/layoutCheckSnippet.generated.js +3 -0
  49. package/dist/layoutCheckSnippet.generated.js.map +1 -0
  50. package/dist/tools/ask-gemini.tool.d.ts.map +1 -1
  51. package/dist/tools/ask-gemini.tool.js +6 -5
  52. package/dist/tools/ask-gemini.tool.js.map +1 -1
  53. package/dist/tools/brainstorm.tool.d.ts.map +1 -1
  54. package/dist/tools/brainstorm.tool.js +2 -1
  55. package/dist/tools/brainstorm.tool.js.map +1 -1
  56. package/dist/tools/live-pass.tool.d.ts +24 -1
  57. package/dist/tools/live-pass.tool.d.ts.map +1 -1
  58. package/dist/tools/live-pass.tool.js +174 -52
  59. package/dist/tools/live-pass.tool.js.map +1 -1
  60. package/dist/tools/registry.d.ts +2 -2
  61. package/dist/tools/registry.d.ts.map +1 -1
  62. package/dist/tools/registry.js +2 -2
  63. package/dist/tools/registry.js.map +1 -1
  64. package/dist/tools/screen-review.tool.d.ts +3 -0
  65. package/dist/tools/screen-review.tool.d.ts.map +1 -1
  66. package/dist/tools/screen-review.tool.js +42 -8
  67. package/dist/tools/screen-review.tool.js.map +1 -1
  68. package/dist/tools/simple-tools.d.ts.map +1 -1
  69. package/dist/tools/simple-tools.js +6 -2
  70. package/dist/tools/simple-tools.js.map +1 -1
  71. package/dist/utils/agyExecutor.d.ts +9 -1
  72. package/dist/utils/agyExecutor.d.ts.map +1 -1
  73. package/dist/utils/agyExecutor.js +54 -48
  74. package/dist/utils/agyExecutor.js.map +1 -1
  75. package/dist/utils/agyModelSteps.d.ts +5 -0
  76. package/dist/utils/agyModelSteps.d.ts.map +1 -0
  77. package/dist/utils/agyModelSteps.js +33 -0
  78. package/dist/utils/agyModelSteps.js.map +1 -0
  79. package/dist/utils/artifactFile.d.ts +6 -0
  80. package/dist/utils/artifactFile.d.ts.map +1 -0
  81. package/dist/utils/artifactFile.js +55 -0
  82. package/dist/utils/artifactFile.js.map +1 -0
  83. package/dist/utils/captureScript.d.ts +24 -0
  84. package/dist/utils/captureScript.d.ts.map +1 -0
  85. package/dist/utils/captureScript.js +83 -0
  86. package/dist/utils/captureScript.js.map +1 -0
  87. package/dist/utils/commandExecutor.d.ts +7 -1
  88. package/dist/utils/commandExecutor.d.ts.map +1 -1
  89. package/dist/utils/commandExecutor.js +154 -22
  90. package/dist/utils/commandExecutor.js.map +1 -1
  91. package/dist/utils/gitCheckout.d.ts +14 -0
  92. package/dist/utils/gitCheckout.d.ts.map +1 -0
  93. package/dist/utils/gitCheckout.js +36 -0
  94. package/dist/utils/gitCheckout.js.map +1 -0
  95. package/dist/utils/layoutCheck.d.ts +58 -0
  96. package/dist/utils/layoutCheck.d.ts.map +1 -0
  97. package/dist/utils/layoutCheck.js +84 -0
  98. package/dist/utils/layoutCheck.js.map +1 -0
  99. package/dist/utils/logger.d.ts +0 -1
  100. package/dist/utils/logger.d.ts.map +1 -1
  101. package/dist/utils/logger.js +0 -6
  102. package/dist/utils/logger.js.map +1 -1
  103. package/dist/utils/progressUpdates.d.ts +14 -0
  104. package/dist/utils/progressUpdates.d.ts.map +1 -0
  105. package/dist/utils/progressUpdates.js +40 -0
  106. package/dist/utils/progressUpdates.js.map +1 -0
  107. package/package.json +13 -11
package/dist/constants.js CHANGED
@@ -7,7 +7,7 @@ export const ERROR_MESSAGES = {
7
7
  NO_PROMPT_PROVIDED: "Please provide a prompt for analysis. Use @ syntax to include files (e.g., '@largefile.js explain what this does') or ask general questions",
8
8
  UNSUPPORTED_AGY_OPTIONS: "Unsupported Antigravity CLI option(s)",
9
9
  INVALID_RESUME: "resume must be true, latest, continue, or a non-empty conversation ID.",
10
- AGY_NO_OUTPUT: "Antigravity CLI (`agy`) returned no output (it may have timed out resolving a file reference) and no recoverable transcript was found. Ensure any @referenced files exist under the working directory or an includeDirectories entry, narrow the prompt, or increase printTimeout.",
10
+ AGY_NO_OUTPUT: "Antigravity CLI (`agy`) returned no output (it may have timed out resolving a file reference). Ensure any @referenced files exist under the working directory or an includeDirectories entry, narrow the prompt, or increase printTimeout.",
11
11
  UNSAFE_ROOT_YOLO: "Refusing to run agy with yolo (`--dangerously-skip-permissions`) when workingDirectory is a filesystem root. Set workingDirectory to a specific project directory.",
12
12
  UNSUPPORTED_OUTPUT_FORMAT: "outputFormat must be 'text' or 'json'. Antigravity CLI has no stream-json mode.",
13
13
  JSON_SCHEMA_REQUIRES_JSON: "jsonSchema requires outputFormat: 'json'.",
@@ -15,10 +15,16 @@ export const ERROR_MESSAGES = {
15
15
  AGY_JSON_PARSE: "Could not parse the Antigravity CLI JSON envelope",
16
16
  AGY_STATUS_ERROR: "Antigravity CLI returned status ERROR",
17
17
  AGY_DENIED_ACTIONS: "Antigravity CLI produced no response because it denied required actions. Retry with `yolo: true`, or allow the actions in the Antigravity `permissions.allow` settings. Denied",
18
+ CHANGEMODE_DENIED_ACTIONS: "changeMode returned no OLD/NEW edits. Ask again for the change as OLD/NEW edits, without yolo. Denied",
19
+ AGY_EMPTY_ANSWER: "Antigravity CLI (`agy`) finished with an empty answer.",
20
+ INVALID_PRINT_TIMEOUT: "printTimeout must be a duration such as 90s, 15m, 2h30m or 2.5h, or 0 for no limit",
18
21
  INVALID_CONVERSATION_ID: "conversationId must be a non-empty agy conversation ID.",
19
22
  CONVERSATION_NOT_RESUMED: "agy did not resume conversation",
23
+ AGY_HUNG: "Antigravity CLI (`agy`) ran past its time limit and was stopped",
24
+ AGY_CANCELLED: "The request was cancelled, so agy was stopped.",
20
25
  INVALID_WORKING_DIRECTORY: "workingDirectory must be an absolute path to an existing directory that is not a filesystem root",
21
26
  LIVE_PASS_ARTIFACT_DIR: "artifactDir must be an absolute path strictly inside workingDirectory",
27
+ LIVE_PASS_WEB_VIEWPORT: "a playwright target's viewport must be WxH, such as 390x844",
22
28
  LIVE_PASS_NO_BRIEF: "brief is required: describe the base URL or app id, the served-branch marker, the seed case, and any navigation hints.",
23
29
  // agy resolves an @reference up to the first space, so a path containing
24
30
  // whitespace becomes a dangling reference that hangs until --print-timeout.
@@ -26,19 +32,28 @@ export const ERROR_MESSAGES = {
26
32
  SCREEN_REVIEW_NO_IMAGES: "review mode requires at least one absolute image path",
27
33
  SCREEN_REVIEW_IMAGE_MISSING: "image does not exist",
28
34
  SCREEN_REVIEW_ROUTE_FILE: "plan mode requires routeFile: an absolute path to an existing file inside workingDirectory",
35
+ SCREEN_REVIEW_BASE_REF: "baseRef does not resolve to a merge base with HEAD in workingDirectory",
29
36
  };
30
- // Antigravity CLI internal layout, used ONLY for best-effort output recovery.
31
- // FRAGILE: pinned to agy 1.0.13 internals — a patch release may rename any of these.
32
- // All access must degrade to null on mismatch; never throw based on these.
37
+ // How long an agy process may run before it is stopped. agy honours its own
38
+ // --print-timeout; this ceiling exists for runs that hang past it.
39
+ export const AGY_LIMITS = {
40
+ CEILING_MARGIN_MS: 2 * 60_000,
41
+ DEFAULT_CEILING_MS: 2 * 60 * 60_000,
42
+ KILL_GRACE_MS: 10_000,
43
+ KILL_CLOSE_WAIT_MS: 1_000,
44
+ };
45
+ export const PRINT_TIMEOUT_CEILING_NOTE = `The server stops agy ${AGY_LIMITS.CEILING_MARGIN_MS / 60_000} minutes after this limit, ` +
46
+ `or after ${AGY_LIMITS.DEFAULT_CEILING_MS / 3_600_000} hours when no limit is given.`;
47
+ // Undocumented Antigravity CLI internals. The step store feeds only the
48
+ // "Gemini steps" usage line, so a reader must degrade to null, never throw.
49
+ // Answers come only from agy's documented JSON output.
33
50
  export const AGY_INTERNAL = {
34
51
  ROOT_SEGMENTS: [".gemini", "antigravity-cli"],
35
- LAST_CONVERSATIONS_SEGMENTS: ["cache", "last_conversations.json"],
36
- BRAIN_DIR: "brain",
37
- TRANSCRIPT_SEGMENTS: [".system_generated", "logs", "transcript.jsonl"],
38
- // A transcript record holding the final model answer.
39
- TRANSCRIPT_FINAL: { type: "PLANNER_RESPONSE", source: "MODEL", status: "DONE" },
40
52
  TIMEOUT_SENTINEL: "Error: timed out waiting for response",
41
- DISABLE_RECOVERY_ENV: "AGY_DISABLE_TRANSCRIPT_RECOVERY",
53
+ // agy 1.4.12 keeps each conversation's steps in SQLite; step_type 15 is a model step.
54
+ CONVERSATIONS_DIR: "conversations",
55
+ CONVERSATION_STORE_EXT: ".db",
56
+ MODEL_STEP_TYPE: 15,
42
57
  };
43
58
  // Status messages
44
59
  export const STATUS_MESSAGES = {
@@ -67,7 +82,24 @@ export const LIVE_PASS = {
67
82
  // Slack between a frame's mtime and our run-start clock.
68
83
  FRESHNESS_TOLERANCE_MS: 2000,
69
84
  CONVERSATION_LINE_PREFIX: "[GEMINI_CONVERSATION_ID=",
85
+ LAYOUT_FILE_SUFFIX: ".layout.json",
86
+ CAPTURE_FILE_SUFFIX: ".capture.js",
87
+ // React Native Web lays out again asynchronously after a viewport resize.
88
+ CAPTURE_SETTLE_MS: 1000,
89
+ // A virtualized list's tail spacer can report a scrollHeight far past its rows.
90
+ CAPTURE_MAX_HEIGHT: 4000,
91
+ CAPTURE_MAX_GROWS: 4,
92
+ LAYOUT_CHECK_ID: "layout-check/1",
93
+ LAYOUT_MAX_ENTRIES: 50,
94
+ LAYOUT_TEXT_CHARS: 80,
70
95
  };
96
+ /**
97
+ * Embedded in each web target's capture file, which runs it in the page right
98
+ * after the screenshot. Its return value is the `.layout.json` file the layout
99
+ * validator parses, so the two change together. The readable source is
100
+ * src/layout-check.snippet.js; its caps and check id must equal LIVE_PASS's.
101
+ */
102
+ export { LAYOUT_CHECK_SNIPPET } from './layoutCheckSnippet.generated.js';
71
103
  // MCP Protocol Constants
72
104
  export const PROTOCOL = {
73
105
  // Message roles
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,125 +4,51 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { Logger } from "./utils/logger.js";
6
6
  import { PROTOCOL } from "./constants.js";
7
+ import { startProgressUpdates } from "./utils/progressUpdates.js";
7
8
  import { getToolDefinitions, getPromptDefinitions, executeTool, toolExists, getPromptMessage } from "./tools/index.js";
8
9
  const server = new Server({
9
10
  name: "gemini-mcp",
10
- version: "2.2.0",
11
+ version: "2.3.0",
11
12
  }, {
12
13
  capabilities: {
13
14
  tools: {},
14
15
  prompts: {},
15
16
  },
16
17
  });
17
- let isProcessing = false;
18
- let currentOperationName = "";
19
- let latestOutput = "";
20
- async function sendNotification(method, params) {
21
- try {
22
- await server.notification({ method, params });
23
- }
24
- catch (error) {
25
- Logger.error("notification failed: ", error);
26
- }
27
- }
28
- /**
29
- * @param progressToken The progress token provided by the client
30
- * @param progress The current progress value
31
- * @param total Optional total value
32
- * @param message Optional status message
33
- */
34
- async function sendProgressNotification(progressToken, progress, total, message) {
35
- if (!progressToken)
36
- return; // Only send if client requested progress
37
- try {
38
- const params = {
39
- progressToken,
40
- progress
41
- };
42
- if (total !== undefined)
43
- params.total = total; // future cache progress
44
- if (message)
45
- params.message = message;
46
- await server.notification({
47
- method: PROTOCOL.NOTIFICATIONS.PROGRESS,
48
- params
49
- });
50
- }
51
- catch (error) {
52
- Logger.error("Failed to send progress notification:", error);
53
- }
54
- }
55
- function startProgressUpdates(operationName, progressToken) {
56
- isProcessing = true;
57
- currentOperationName = operationName;
58
- latestOutput = ""; // Reset latest output
59
- const progressMessages = [
60
- `🧠 ${operationName} - Gemini is analyzing your request...`,
61
- `📊 ${operationName} - Processing files and generating insights...`,
62
- `✨ ${operationName} - Creating structured response for your review...`,
63
- `⏱️ ${operationName} - Large analysis in progress (this is normal for big requests)...`,
64
- `🔍 ${operationName} - Still working... Gemini takes time for quality results...`,
65
- ];
66
- let messageIndex = 0;
67
- let progress = 0;
68
- // Send immediate acknowledgment if progress requested
69
- if (progressToken) {
70
- sendProgressNotification(progressToken, 0, undefined, // No total - indeterminate progress
71
- `🔍 Starting ${operationName}`);
72
- }
73
- // Keep client alive with periodic updates
74
- const progressInterval = setInterval(async () => {
75
- if (isProcessing && progressToken) {
76
- // Simply increment progress value
77
- progress += 1;
78
- // Include latest output if available
79
- const baseMessage = progressMessages[messageIndex % progressMessages.length];
80
- const outputPreview = latestOutput.slice(-150).trim(); // Last 150 chars
81
- const message = outputPreview
82
- ? `${baseMessage}\n📝 Output: ...${outputPreview}`
83
- : baseMessage;
84
- await sendProgressNotification(progressToken, progress, undefined, // No total - indeterminate progress
85
- message);
86
- messageIndex++;
18
+ // Request-scoped: the SDK drops it once the request is cancelled, and the
19
+ // client logs progress on a cancelled request's token as an error.
20
+ function progressSender(sendNotification) {
21
+ return async (progressToken, progress, total, message) => {
22
+ try {
23
+ await sendNotification({
24
+ method: PROTOCOL.NOTIFICATIONS.PROGRESS,
25
+ params: { progressToken, progress, total, message },
26
+ });
87
27
  }
88
- else if (!isProcessing) {
89
- clearInterval(progressInterval);
28
+ catch (error) {
29
+ Logger.error("Failed to send progress notification:", error);
90
30
  }
91
- }, PROTOCOL.KEEPALIVE_INTERVAL); // Every 25 seconds
92
- return { interval: progressInterval, progressToken };
93
- }
94
- function stopProgressUpdates(progressData, success = true) {
95
- const operationName = currentOperationName; // Store before clearing
96
- isProcessing = false;
97
- currentOperationName = "";
98
- clearInterval(progressData.interval);
99
- // Send final progress notification if client requested progress
100
- if (progressData.progressToken) {
101
- sendProgressNotification(progressData.progressToken, 100, 100, success ? `✅ ${operationName} completed successfully` : `❌ ${operationName} failed`);
102
- }
31
+ };
103
32
  }
104
33
  // tools/list
105
34
  server.setRequestHandler(ListToolsRequestSchema, async (request) => {
106
35
  return { tools: getToolDefinitions() };
107
36
  });
108
37
  // tools/get
109
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
38
+ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
110
39
  const toolName = request.params.name;
111
40
  if (toolExists(toolName)) {
112
41
  // Check if client requested progress updates
113
42
  const progressToken = request.params._meta?.progressToken;
114
43
  // Start progress updates if client requested them
115
- const progressData = startProgressUpdates(toolName, progressToken);
44
+ const progress = startProgressUpdates(toolName, progressToken, progressSender(extra.sendNotification));
116
45
  try {
117
46
  // Get prompt and other parameters from arguments with proper typing
118
47
  const args = request.params.arguments || {};
119
48
  Logger.toolInvocation(toolName, request.params.arguments);
120
49
  // Execute the tool using the unified registry with progress callback
121
- const result = await executeTool(toolName, args, (newOutput) => {
122
- latestOutput = newOutput;
123
- });
124
- // Stop progress updates
125
- stopProgressUpdates(progressData, true);
50
+ const result = await executeTool(toolName, args, (newOutput) => progress.recordOutput(newOutput), extra.signal);
51
+ progress.finish('success');
126
52
  return {
127
53
  content: [
128
54
  {
@@ -134,8 +60,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
134
60
  };
135
61
  }
136
62
  catch (error) {
137
- // Stop progress updates on error
138
- stopProgressUpdates(progressData, false);
63
+ progress.finish('failure');
139
64
  Logger.error(`Error in tool '${toolName}':`, error);
140
65
  const errorMessage = error instanceof Error ? error.message : String(error);
141
66
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const LAYOUT_CHECK_SNIPPET = "()=>{const h=innerWidth,b=innerHeight,H=50,O=4,k=\"#error-overlay,#error-toast\",d=[],S=[];let W=0;const u=t=>getComputedStyle(t),D=t=>({x:Math.round(t.left),y:Math.round(t.top),width:Math.round(t.width),height:Math.round(t.height)}),A=t=>(t.innerText||t.textContent||t.getAttribute(\"aria-label\")||t.getAttribute(\"placeholder\")||\"\").replace(/\\s+/g,\" \").trim().slice(0,80),N=t=>t.closest(\"[data-testid]\")?.getAttribute(\"data-testid\")??null,p=(t,e,o,l,i)=>{t===d&&W++,t.length<H&&t.push({kind:e,text:i??A(o),testID:o?N(o):null,rect:D(l)})},w=(t,e)=>e.width>0&&e.height>0&&u(t).visibility!==\"hidden\"&&!t.closest('[aria-hidden=\"true\"],[inert]'),P=t=>t.right>0&&t.left<h&&t.bottom>0&&t.top<b,I=t=>t===\"hidden\"||t===\"clip\",v=t=>t===\"auto\"||t===\"scroll\",L=t=>t.webkitLineClamp&&t.webkitLineClamp!==\"none\"||t.textOverflow===\"ellipsis\",F=t=>{let e=t;for(;e.parentElement&&[\"inline\",\"contents\"].includes(u(e).display);)e=e.parentElement;return e},y=t=>{for(let e=t;e;e=e.parentElement||e.getRootNode().host)if(e.matches(k))return e;return null},E=t=>[t,...[...t.children,...t.shadowRoot?.children??[]].flatMap(E)],X=t=>{const e=t.getBoundingClientRect();return w(t,e)?e.width*e.height:0},C=[...document.querySelectorAll(k)].flatMap(E).reduce((t,e)=>X(e)>(t?X(t):0)?e:t,null);C&&p(d,\"dev-overlay\",y(C),C.getBoundingClientRect(),E(C).map(A).find(Boolean)??\"\");const M=document.scrollingElement||document.documentElement;M.scrollWidth>h&&p(d,\"page-scroll-x\",null,{left:0,top:0,width:M.scrollWidth,height:b},\"scrollWidth \"+M.scrollWidth+\" > innerWidth \"+h);const R=document.createRange();for(const t of document.body.querySelectorAll(\"*\")){if(t.isContentEditable||y(t))continue;const e=[...t.childNodes].filter(n=>n.nodeType===3&&n.textContent.trim());if(!e.length)continue;const o=F(t),l=o.getBoundingClientRect();if(!w(t,l)||!P(l))continue;let i=1/0,s=1/0,f=-1/0,m=-1/0;for(const n of e)for(const a of n.textContent.matchAll(/\\S+/g)){R.setStart(n,a.index),R.setEnd(n,a.index+a[0].length);const c=R.getBoundingClientRect();c.width&&(i=Math.min(i,c.left),s=Math.min(s,c.top),f=Math.max(f,c.right),m=Math.max(m,c.bottom))}if(i===1/0)continue;const r=u(o);for(let n=o,a=0;n&&n!==document.body&&a<O;n=n.parentElement){const c=u(n);if([\"inline\",\"contents\"].includes(c.display))continue;a++;const x=n.getBoundingClientRect(),g=x.left+n.clientLeft,B=x.top+n.clientTop,V=g+n.clientWidth,Y=B+n.clientHeight,q=i<g-1||f>V+1,J=s<B-1||m>Y+1;if(I(c.overflowX)&&q||I(c.overflowY)&&J){i<V&&f>g&&s<Y&&m>B&&p(n===o&&L(r)?S:d,n===o&&L(r)?\"text-clamped\":\"text-clipped\",t,t.getBoundingClientRect());break}if(v(c.overflowX)||v(c.overflowY))break;if(q){p(d,\"text-spill\",t,t.getBoundingClientRect());break}if(c.position===\"absolute\"||c.position===\"fixed\")break}}const T=[...document.querySelectorAll('[aria-modal=\"true\"]')].find(t=>w(t,t.getBoundingClientRect())),_=(t,e)=>{let o=Math.max(e.left,0),l=Math.max(e.top,0),i=Math.min(e.right,h),s=Math.min(e.bottom,b),f=!1;for(let m=t,r=t.parentElement;r&&r!==document.documentElement;m=r,r=r.parentElement){const n=u(m).position,a=u(r);if(n===\"fixed\")break;if(n===\"absolute\"&&(f=!0),f&&a.position===\"static\"||(f=!1,a.overflowX===\"visible\"&&a.overflowY===\"visible\"))continue;const c=r.getBoundingClientRect(),x=c.left+r.clientLeft,g=c.top+r.clientTop;o=Math.max(o,x),l=Math.max(l,g),i=Math.min(i,x+r.clientWidth),s=Math.min(s,g+r.clientHeight)}return i>o&&s>l?[(o+i)/2,(l+s)/2]:null},j=t=>{for(let e=t.parentElement;e;e=e.parentElement)if(v(u(e).overflowX)&&e.scrollWidth>e.clientWidth)return e;return null},z=(t,e)=>{if(t.contains(e))return!0;const o=t.getBoundingClientRect(),l=e.getBoundingClientRect();return!!t.parentElement?.contains(e)&&l.top>=o.top-1&&l.bottom<=o.bottom+1},G='a[href],button,input:not([type=hidden]),select,textarea,summary,[role=button],[role=link],[role=checkbox],[role=switch],[role=radio],[role=tab],[role=menuitem],[role=option],[role=combobox],[role=slider],[tabindex]:not([tabindex=\"-1\"])';for(const t of document.querySelectorAll(G)){const e=t.getBoundingClientRect();if(!w(t,e)||y(t)||u(t).pointerEvents===\"none\"||e.bottom<=0||e.top>=b)continue;const o=j(t);if((e.left<-.5||e.right>h+.5)&&e.right>0&&e.left<h&&!o&&p(d,\"control-offscreen\",t,e),T&&!T.contains(t))continue;const l=_(t,e);if(!l)continue;const i=document.elementsFromPoint(l[0],l[1]).find(s=>!y(s));i&&!t.contains(i)&&!i.contains(t)&&!(o&&z(o,i))&&p(d,\"control-covered\",t,e)}return{check:\"layout-check/1\",viewport:{width:h,height:b},found:W,entries:d,clamped:S}}";
2
+ //# sourceMappingURL=layoutCheckSnippet.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutCheckSnippet.generated.d.ts","sourceRoot":"","sources":["../src/layoutCheckSnippet.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,oBAAoB,08IAA08I,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Generated by scripts/minify-layout-snippet.mjs from src/layout-check.snippet.js. Do not edit.
2
+ export const LAYOUT_CHECK_SNIPPET = "()=>{const h=innerWidth,b=innerHeight,H=50,O=4,k=\"#error-overlay,#error-toast\",d=[],S=[];let W=0;const u=t=>getComputedStyle(t),D=t=>({x:Math.round(t.left),y:Math.round(t.top),width:Math.round(t.width),height:Math.round(t.height)}),A=t=>(t.innerText||t.textContent||t.getAttribute(\"aria-label\")||t.getAttribute(\"placeholder\")||\"\").replace(/\\s+/g,\" \").trim().slice(0,80),N=t=>t.closest(\"[data-testid]\")?.getAttribute(\"data-testid\")??null,p=(t,e,o,l,i)=>{t===d&&W++,t.length<H&&t.push({kind:e,text:i??A(o),testID:o?N(o):null,rect:D(l)})},w=(t,e)=>e.width>0&&e.height>0&&u(t).visibility!==\"hidden\"&&!t.closest('[aria-hidden=\"true\"],[inert]'),P=t=>t.right>0&&t.left<h&&t.bottom>0&&t.top<b,I=t=>t===\"hidden\"||t===\"clip\",v=t=>t===\"auto\"||t===\"scroll\",L=t=>t.webkitLineClamp&&t.webkitLineClamp!==\"none\"||t.textOverflow===\"ellipsis\",F=t=>{let e=t;for(;e.parentElement&&[\"inline\",\"contents\"].includes(u(e).display);)e=e.parentElement;return e},y=t=>{for(let e=t;e;e=e.parentElement||e.getRootNode().host)if(e.matches(k))return e;return null},E=t=>[t,...[...t.children,...t.shadowRoot?.children??[]].flatMap(E)],X=t=>{const e=t.getBoundingClientRect();return w(t,e)?e.width*e.height:0},C=[...document.querySelectorAll(k)].flatMap(E).reduce((t,e)=>X(e)>(t?X(t):0)?e:t,null);C&&p(d,\"dev-overlay\",y(C),C.getBoundingClientRect(),E(C).map(A).find(Boolean)??\"\");const M=document.scrollingElement||document.documentElement;M.scrollWidth>h&&p(d,\"page-scroll-x\",null,{left:0,top:0,width:M.scrollWidth,height:b},\"scrollWidth \"+M.scrollWidth+\" > innerWidth \"+h);const R=document.createRange();for(const t of document.body.querySelectorAll(\"*\")){if(t.isContentEditable||y(t))continue;const e=[...t.childNodes].filter(n=>n.nodeType===3&&n.textContent.trim());if(!e.length)continue;const o=F(t),l=o.getBoundingClientRect();if(!w(t,l)||!P(l))continue;let i=1/0,s=1/0,f=-1/0,m=-1/0;for(const n of e)for(const a of n.textContent.matchAll(/\\S+/g)){R.setStart(n,a.index),R.setEnd(n,a.index+a[0].length);const c=R.getBoundingClientRect();c.width&&(i=Math.min(i,c.left),s=Math.min(s,c.top),f=Math.max(f,c.right),m=Math.max(m,c.bottom))}if(i===1/0)continue;const r=u(o);for(let n=o,a=0;n&&n!==document.body&&a<O;n=n.parentElement){const c=u(n);if([\"inline\",\"contents\"].includes(c.display))continue;a++;const x=n.getBoundingClientRect(),g=x.left+n.clientLeft,B=x.top+n.clientTop,V=g+n.clientWidth,Y=B+n.clientHeight,q=i<g-1||f>V+1,J=s<B-1||m>Y+1;if(I(c.overflowX)&&q||I(c.overflowY)&&J){i<V&&f>g&&s<Y&&m>B&&p(n===o&&L(r)?S:d,n===o&&L(r)?\"text-clamped\":\"text-clipped\",t,t.getBoundingClientRect());break}if(v(c.overflowX)||v(c.overflowY))break;if(q){p(d,\"text-spill\",t,t.getBoundingClientRect());break}if(c.position===\"absolute\"||c.position===\"fixed\")break}}const T=[...document.querySelectorAll('[aria-modal=\"true\"]')].find(t=>w(t,t.getBoundingClientRect())),_=(t,e)=>{let o=Math.max(e.left,0),l=Math.max(e.top,0),i=Math.min(e.right,h),s=Math.min(e.bottom,b),f=!1;for(let m=t,r=t.parentElement;r&&r!==document.documentElement;m=r,r=r.parentElement){const n=u(m).position,a=u(r);if(n===\"fixed\")break;if(n===\"absolute\"&&(f=!0),f&&a.position===\"static\"||(f=!1,a.overflowX===\"visible\"&&a.overflowY===\"visible\"))continue;const c=r.getBoundingClientRect(),x=c.left+r.clientLeft,g=c.top+r.clientTop;o=Math.max(o,x),l=Math.max(l,g),i=Math.min(i,x+r.clientWidth),s=Math.min(s,g+r.clientHeight)}return i>o&&s>l?[(o+i)/2,(l+s)/2]:null},j=t=>{for(let e=t.parentElement;e;e=e.parentElement)if(v(u(e).overflowX)&&e.scrollWidth>e.clientWidth)return e;return null},z=(t,e)=>{if(t.contains(e))return!0;const o=t.getBoundingClientRect(),l=e.getBoundingClientRect();return!!t.parentElement?.contains(e)&&l.top>=o.top-1&&l.bottom<=o.bottom+1},G='a[href],button,input:not([type=hidden]),select,textarea,summary,[role=button],[role=link],[role=checkbox],[role=switch],[role=radio],[role=tab],[role=menuitem],[role=option],[role=combobox],[role=slider],[tabindex]:not([tabindex=\"-1\"])';for(const t of document.querySelectorAll(G)){const e=t.getBoundingClientRect();if(!w(t,e)||y(t)||u(t).pointerEvents===\"none\"||e.bottom<=0||e.top>=b)continue;const o=j(t);if((e.left<-.5||e.right>h+.5)&&e.right>0&&e.left<h&&!o&&p(d,\"control-offscreen\",t,e),T&&!T.contains(t))continue;const l=_(t,e);if(!l)continue;const i=document.elementsFromPoint(l[0],l[1]).find(s=>!y(s));i&&!t.contains(i)&&!i.contains(t)&&!(o&&z(o,i))&&p(d,\"control-covered\",t,e)}return{check:\"layout-check/1\",viewport:{width:h,height:b},found:W,entries:d,clamped:S}}";
3
+ //# sourceMappingURL=layoutCheckSnippet.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutCheckSnippet.generated.js","sourceRoot":"","sources":["../src/layoutCheckSnippet.generated.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,u8IAAu8I,CAAC"}
@@ -1 +1 @@
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
+ {"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;AAoB5C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB9B,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,WAuE3B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
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';
2
+ import { executeAgyCLI, executeAgyJson, processChangeModeOutput, renderAgyJsonEnvelope, formatAgyUsageLine, formatConversationLine, printTimeoutSchema, } from '../utils/agyExecutor.js';
3
+ import { CLI, ERROR_MESSAGES, MODELS, MODEL_CHOICE_DESCRIPTION, PRINT_TIMEOUT_CEILING_NOTE, STATUS_MESSAGES } from '../constants.js';
4
4
  export const askGeminiArgsSchema = z.object({
5
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
6
  model: z.string().optional().describe(`${MODEL_CHOICE_DESCRIPTION} Defaults to '${MODELS.DEFAULT}'.`),
@@ -16,11 +16,11 @@ export const askGeminiArgsSchema = z.object({
16
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
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
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."),
19
+ printTimeout: printTimeoutSchema.optional().describe(`agy --print-timeout duration, such as '5m', '90s', or '10m'. If omitted, agy uses its default. ${PRINT_TIMEOUT_CEILING_NOTE}`),
20
20
  promptInteractive: z.string().optional().describe("Unsupported in MCP request/response mode because it requires an interactive TTY."),
21
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
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."),
23
+ conversationId: z.string().optional().describe("Resume this exact agy conversation (--conversation <id>); wins over `resume`. 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."),
24
24
  });
25
25
  export const askGeminiTool = {
26
26
  name: "ask-gemini",
@@ -35,7 +35,7 @@ export const askGeminiTool = {
35
35
  readOnlyHint: true,
36
36
  openWorldHint: true,
37
37
  },
38
- execute: async (args, onProgress) => {
38
+ execute: async (args, onProgress, signal) => {
39
39
  const { prompt, model, sandbox, changeMode, chunkIndex, chunkCacheKey, workingDirectory, yolo, approvalMode, outputFormat, jsonSchema, effort, includeDirectories, debug, printTimeout, promptInteractive, extensions, resume, conversationId } = args;
40
40
  if (!prompt?.trim()) {
41
41
  throw new Error(ERROR_MESSAGES.NO_PROMPT_PROVIDED);
@@ -61,6 +61,7 @@ export const askGeminiTool = {
61
61
  resume: resume,
62
62
  conversationId: conversationId,
63
63
  cwd: workingDirectory,
64
+ signal,
64
65
  };
65
66
  if (outputFormat === CLI.DEFAULTS.OUTPUT_FORMAT_JSON) {
66
67
  const envelope = await executeAgyJson(prompt, cliOptions, onProgress);
@@ -1 +1 @@
1
- {"version":3,"file":"ask-gemini.tool.js","sourceRoot":"","sources":["../../src/tools/ask-gemini.tool.ts"],"names":[],"mappings":"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"}
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;AAiI5C,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,WA0D5B,CAAC"}
@@ -119,7 +119,7 @@ export const brainstormTool = {
119
119
  readOnlyHint: true,
120
120
  openWorldHint: true,
121
121
  },
122
- execute: async (args, onProgress) => {
122
+ execute: async (args, onProgress, signal) => {
123
123
  const { prompt, model, methodology = 'auto', domain, constraints, existingContext, ideaCount = 12, includeAnalysis = true, workingDirectory } = args;
124
124
  if (!prompt?.trim()) {
125
125
  throw new Error("You must provide a valid brainstorming challenge or question to explore");
@@ -142,6 +142,7 @@ export const brainstormTool = {
142
142
  sandbox: false,
143
143
  changeMode: false,
144
144
  cwd: workingDirectory,
145
+ signal,
145
146
  }, onProgress);
146
147
  }
147
148
  };
@@ -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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"}
@@ -2,6 +2,9 @@ import { z } from 'zod';
2
2
  import { UnifiedTool } from './registry.js';
3
3
  import { type AgyJsonEnvelope } from '../utils/agyExecutor.js';
4
4
  import { type WorkingTreeDiff } from '../utils/gitStatusGuard.js';
5
+ import { type ArtifactFileStatus } from '../utils/artifactFile.js';
6
+ import { type Checkout } from '../utils/gitCheckout.js';
7
+ import { type LayoutCheck } from '../utils/layoutCheck.js';
5
8
  export declare const livePassTargetSchema: z.ZodObject<{
6
9
  screen: z.ZodString;
7
10
  state: z.ZodString;
@@ -49,6 +52,7 @@ export declare const livePassResultSchema: z.ZodObject<{
49
52
  FAIL: "FAIL";
50
53
  }>;
51
54
  observed: z.ZodString;
55
+ link_source: z.ZodOptional<z.ZodString>;
52
56
  }, z.core.$strip>>;
53
57
  findings: z.ZodArray<z.ZodObject<{
54
58
  severity: z.ZodEnum<{
@@ -108,15 +112,24 @@ export declare function prescribedFrameNames(targets: {
108
112
  state: string;
109
113
  viewport: string;
110
114
  }[]): Map<string, string>;
115
+ export interface TargetFiles {
116
+ frameName: string;
117
+ frame: string;
118
+ capture: string;
119
+ layout: string;
120
+ }
121
+ export declare function prescribedTargetFiles(targets: LivePassTarget[], artifactDir: string): Map<string, TargetFiles>;
122
+ export declare function writeCaptureScripts(targets: LivePassTarget[], artifactDir: string): void;
111
123
  export declare function buildLivePassPrompt(config: {
112
124
  brief: string;
113
125
  driver: 'playwright' | 'maestro';
114
126
  targets: LivePassTarget[];
115
127
  workingDirectory: string;
116
128
  artifactDir: string;
129
+ checkout: Checkout | null;
117
130
  resumed: boolean;
118
131
  }): string;
119
- export type FrameStatus = 'OK' | 'MISSING' | 'EMPTY' | 'STALE' | 'OUTSIDE' | 'DUPLICATE';
132
+ export type FrameStatus = ArtifactFileStatus | 'DUPLICATE' | 'NOT_IMAGE';
120
133
  export interface FrameCheck {
121
134
  file: string;
122
135
  screen: string;
@@ -166,6 +179,13 @@ export interface PublishResult {
166
179
  skippedReason?: string;
167
180
  }
168
181
  export declare function runPublishCommand(command: string | undefined, okFiles: string[], cwd: string): Promise<PublishResult>;
182
+ export interface TargetLayoutCheck {
183
+ target: LivePassTarget;
184
+ check: LayoutCheck;
185
+ }
186
+ /** Each web target's layout file, read from its prescribed path. Never throws. */
187
+ export declare function readLayoutChecks(targets: LivePassTarget[], artifactDir: string, runStartMs: number): TargetLayoutCheck[];
188
+ export declare function formatLayoutSection(checks: TargetLayoutCheck[]): string;
169
189
  export declare function formatLivePassReport(input: {
170
190
  envelope: AgyJsonEnvelope;
171
191
  result: LivePassResult;
@@ -178,6 +198,9 @@ export declare function formatLivePassReport(input: {
178
198
  deniedActions: string;
179
199
  workingTree: WorkingTreeDiff;
180
200
  publish: PublishResult;
201
+ modelSteps: number | null;
202
+ /** Web passes only. Reported for the caller to judge; never an input to the verdict. */
203
+ layoutChecks?: TargetLayoutCheck[];
181
204
  }): string;
182
205
  export declare const livePassTool: UnifiedTool;
183
206
  //# sourceMappingURL=live-pass.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-pass.tool.d.ts","sourceRoot":"","sources":["../../src/tools/live-pass.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-pass.tool.d.ts","sourceRoot":"","sources":["../../src/tools/live-pass.tool.ts"],"names":[],"mappings":"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"}