@joeytheman/gemini-mcp-tool 1.3.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.
- package/README.md +127 -35
- package/dist/__tests__/agyModelSteps.test.d.ts +2 -0
- package/dist/__tests__/agyModelSteps.test.d.ts.map +1 -0
- package/dist/__tests__/agyModelSteps.test.js +58 -0
- package/dist/__tests__/agyModelSteps.test.js.map +1 -0
- package/dist/__tests__/ask-gemini.test.js +99 -37
- package/dist/__tests__/ask-gemini.test.js.map +1 -1
- package/dist/__tests__/capture-script.chromium.test.d.ts +2 -0
- package/dist/__tests__/capture-script.chromium.test.d.ts.map +1 -0
- package/dist/__tests__/capture-script.chromium.test.js +235 -0
- package/dist/__tests__/capture-script.chromium.test.js.map +1 -0
- package/dist/__tests__/layout-snippet.chromium.test.d.ts +2 -0
- package/dist/__tests__/layout-snippet.chromium.test.d.ts.map +1 -0
- package/dist/__tests__/layout-snippet.chromium.test.js +333 -0
- package/dist/__tests__/layout-snippet.chromium.test.js.map +1 -0
- package/dist/__tests__/layout-snippet.test.d.ts +2 -0
- package/dist/__tests__/layout-snippet.test.d.ts.map +1 -0
- package/dist/__tests__/layout-snippet.test.js +12 -0
- package/dist/__tests__/layout-snippet.test.js.map +1 -0
- package/dist/__tests__/live-pass.test.d.ts +2 -0
- package/dist/__tests__/live-pass.test.d.ts.map +1 -0
- package/dist/__tests__/live-pass.test.js +1249 -0
- package/dist/__tests__/live-pass.test.js.map +1 -0
- package/dist/__tests__/screen-review.test.d.ts +2 -0
- package/dist/__tests__/screen-review.test.d.ts.map +1 -0
- package/dist/__tests__/screen-review.test.js +553 -0
- package/dist/__tests__/screen-review.test.js.map +1 -0
- package/dist/__tests__/server-progress.test.d.ts +2 -0
- package/dist/__tests__/server-progress.test.d.ts.map +1 -0
- package/dist/__tests__/server-progress.test.js +63 -0
- package/dist/__tests__/server-progress.test.js.map +1 -0
- package/dist/__tests__/server.test.js +17 -19
- package/dist/__tests__/server.test.js.map +1 -1
- package/dist/__tests__/simple-tools.test.d.ts +2 -0
- package/dist/__tests__/simple-tools.test.d.ts.map +1 -0
- package/dist/__tests__/simple-tools.test.js +30 -0
- package/dist/__tests__/simple-tools.test.js.map +1 -0
- package/dist/__tests__/tools.test.js +91 -0
- package/dist/__tests__/tools.test.js.map +1 -1
- package/dist/__tests__/utils/agyExecutor.test.d.ts +2 -0
- package/dist/__tests__/utils/agyExecutor.test.d.ts.map +1 -0
- package/dist/__tests__/utils/agyExecutor.test.js +731 -0
- package/dist/__tests__/utils/agyExecutor.test.js.map +1 -0
- package/dist/__tests__/utils/agyTranscriptRecovery.test.d.ts +2 -0
- package/dist/__tests__/utils/agyTranscriptRecovery.test.d.ts.map +1 -0
- package/dist/__tests__/utils/agyTranscriptRecovery.test.js +127 -0
- package/dist/__tests__/utils/agyTranscriptRecovery.test.js.map +1 -0
- package/dist/__tests__/utils/chunkCache.test.js +26 -2
- package/dist/__tests__/utils/chunkCache.test.js.map +1 -1
- package/dist/__tests__/utils/commandExecutor.test.js +185 -7
- package/dist/__tests__/utils/commandExecutor.test.js.map +1 -1
- package/dist/__tests__/utils/fileReferences.test.d.ts +2 -0
- package/dist/__tests__/utils/fileReferences.test.d.ts.map +1 -0
- package/dist/__tests__/utils/fileReferences.test.js +87 -0
- package/dist/__tests__/utils/fileReferences.test.js.map +1 -0
- package/dist/__tests__/utils/gitStatusGuard.test.d.ts +2 -0
- package/dist/__tests__/utils/gitStatusGuard.test.d.ts.map +1 -0
- package/dist/__tests__/utils/gitStatusGuard.test.js +106 -0
- package/dist/__tests__/utils/gitStatusGuard.test.js.map +1 -0
- package/dist/__tests__/utils/progressUpdates.test.d.ts +2 -0
- package/dist/__tests__/utils/progressUpdates.test.d.ts.map +1 -0
- package/dist/__tests__/utils/progressUpdates.test.js +62 -0
- package/dist/__tests__/utils/progressUpdates.test.js.map +1 -0
- package/dist/__tests__/utils/responseCache.test.js +31 -11
- package/dist/__tests__/utils/responseCache.test.js.map +1 -1
- package/dist/__tests__/utils/test-helpers.d.ts +4 -0
- package/dist/__tests__/utils/test-helpers.d.ts.map +1 -1
- package/dist/__tests__/utils/test-helpers.js +16 -0
- package/dist/__tests__/utils/test-helpers.js.map +1 -1
- package/dist/constants.d.ts +91 -26
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +101 -28
- package/dist/constants.js.map +1 -1
- package/dist/index.js +20 -95
- package/dist/index.js.map +1 -1
- package/dist/layoutCheckSnippet.generated.d.ts +2 -0
- package/dist/layoutCheckSnippet.generated.d.ts.map +1 -0
- package/dist/layoutCheckSnippet.generated.js +3 -0
- package/dist/layoutCheckSnippet.generated.js.map +1 -0
- package/dist/tools/ask-gemini.tool.d.ts +34 -0
- package/dist/tools/ask-gemini.tool.d.ts.map +1 -1
- package/dist/tools/ask-gemini.tool.js +40 -23
- package/dist/tools/ask-gemini.tool.js.map +1 -1
- package/dist/tools/brainstorm.tool.d.ts.map +1 -1
- package/dist/tools/brainstorm.tool.js +7 -5
- package/dist/tools/brainstorm.tool.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/live-pass.tool.d.ts +206 -0
- package/dist/tools/live-pass.tool.d.ts.map +1 -0
- package/dist/tools/live-pass.tool.js +670 -0
- package/dist/tools/live-pass.tool.js.map +1 -0
- package/dist/tools/registry.d.ts +6 -4
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +14 -11
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/screen-review.tool.d.ts +124 -0
- package/dist/tools/screen-review.tool.d.ts.map +1 -0
- package/dist/tools/screen-review.tool.js +449 -0
- package/dist/tools/screen-review.tool.js.map +1 -0
- package/dist/tools/simple-tools.d.ts.map +1 -1
- package/dist/tools/simple-tools.js +9 -3
- package/dist/tools/simple-tools.js.map +1 -1
- package/dist/utils/agyExecutor.d.ts +76 -0
- package/dist/utils/agyExecutor.d.ts.map +1 -0
- package/dist/utils/agyExecutor.js +449 -0
- package/dist/utils/agyExecutor.js.map +1 -0
- package/dist/utils/agyModelSteps.d.ts +5 -0
- package/dist/utils/agyModelSteps.d.ts.map +1 -0
- package/dist/utils/agyModelSteps.js +33 -0
- package/dist/utils/agyModelSteps.js.map +1 -0
- package/dist/utils/agyReport.d.ts +19 -0
- package/dist/utils/agyReport.d.ts.map +1 -0
- package/dist/utils/agyReport.js +62 -0
- package/dist/utils/agyReport.js.map +1 -0
- package/dist/utils/agyTranscriptRecovery.d.ts +16 -0
- package/dist/utils/agyTranscriptRecovery.d.ts.map +1 -0
- package/dist/utils/agyTranscriptRecovery.js +149 -0
- package/dist/utils/agyTranscriptRecovery.js.map +1 -0
- package/dist/utils/artifactFile.d.ts +6 -0
- package/dist/utils/artifactFile.d.ts.map +1 -0
- package/dist/utils/artifactFile.js +55 -0
- package/dist/utils/artifactFile.js.map +1 -0
- package/dist/utils/captureScript.d.ts +24 -0
- package/dist/utils/captureScript.d.ts.map +1 -0
- package/dist/utils/captureScript.js +83 -0
- package/dist/utils/captureScript.js.map +1 -0
- package/dist/utils/chunkCache.d.ts.map +1 -1
- package/dist/utils/chunkCache.js +19 -5
- package/dist/utils/chunkCache.js.map +1 -1
- package/dist/utils/commandExecutor.d.ts +7 -1
- package/dist/utils/commandExecutor.d.ts.map +1 -1
- package/dist/utils/commandExecutor.js +162 -22
- package/dist/utils/commandExecutor.js.map +1 -1
- package/dist/utils/fileReferences.d.ts +45 -0
- package/dist/utils/fileReferences.d.ts.map +1 -0
- package/dist/utils/fileReferences.js +169 -0
- package/dist/utils/fileReferences.js.map +1 -0
- package/dist/utils/gitCheckout.d.ts +14 -0
- package/dist/utils/gitCheckout.d.ts.map +1 -0
- package/dist/utils/gitCheckout.js +36 -0
- package/dist/utils/gitCheckout.js.map +1 -0
- package/dist/utils/gitStatusGuard.d.ts +35 -0
- package/dist/utils/gitStatusGuard.d.ts.map +1 -0
- package/dist/utils/gitStatusGuard.js +82 -0
- package/dist/utils/gitStatusGuard.js.map +1 -0
- package/dist/utils/layoutCheck.d.ts +58 -0
- package/dist/utils/layoutCheck.d.ts.map +1 -0
- package/dist/utils/layoutCheck.js +84 -0
- package/dist/utils/layoutCheck.js.map +1 -0
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +0 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progressUpdates.d.ts +14 -0
- package/dist/utils/progressUpdates.d.ts.map +1 -0
- package/dist/utils/progressUpdates.js +40 -0
- package/dist/utils/progressUpdates.js.map +1 -0
- package/dist/utils/responseCache.d.ts +3 -3
- package/dist/utils/responseCache.d.ts.map +1 -1
- package/dist/utils/responseCache.js +11 -6
- package/dist/utils/responseCache.js.map +1 -1
- package/package.json +19 -16
- package/dist/__tests__/utils/geminiExecutor.test.d.ts +0 -2
- package/dist/__tests__/utils/geminiExecutor.test.d.ts.map +0 -1
- package/dist/__tests__/utils/geminiExecutor.test.js +0 -337
- package/dist/__tests__/utils/geminiExecutor.test.js.map +0 -1
- package/dist/utils/geminiExecutor.d.ts +0 -17
- package/dist/utils/geminiExecutor.d.ts.map +0 -1
- package/dist/utils/geminiExecutor.js +0 -238
- package/dist/utils/geminiExecutor.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { Logger } from '../utils/logger.js';
|
|
3
|
-
import {
|
|
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(
|
|
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
|
|
107
|
+
workingDirectory: z.string().optional().describe("Working directory to run agy from."),
|
|
107
108
|
});
|
|
108
109
|
export const brainstormTool = {
|
|
109
110
|
name: "brainstorm",
|
|
@@ -118,7 +119,7 @@ export const brainstormTool = {
|
|
|
118
119
|
readOnlyHint: true,
|
|
119
120
|
openWorldHint: true,
|
|
120
121
|
},
|
|
121
|
-
execute: async (args, onProgress) => {
|
|
122
|
+
execute: async (args, onProgress, signal) => {
|
|
122
123
|
const { prompt, model, methodology = 'auto', domain, constraints, existingContext, ideaCount = 12, includeAnalysis = true, workingDirectory } = args;
|
|
123
124
|
if (!prompt?.trim()) {
|
|
124
125
|
throw new Error("You must provide a valid brainstorming challenge or question to explore");
|
|
@@ -136,11 +137,12 @@ 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
|
|
140
|
+
return await executeAgyCLI(enhancedPrompt, {
|
|
140
141
|
model: model,
|
|
141
142
|
sandbox: false,
|
|
142
143
|
changeMode: false,
|
|
143
144
|
cwd: workingDirectory,
|
|
145
|
+
signal,
|
|
144
146
|
}, onProgress);
|
|
145
147
|
}
|
|
146
148
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brainstorm.tool.js","sourceRoot":"","sources":["../../src/tools/brainstorm.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAqBA,cAAc,eAAe,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
package/dist/tools/index.js.map
CHANGED
|
@@ -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;
|
|
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,206 @@
|
|
|
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
|
+
import { type ArtifactFileStatus } from '../utils/artifactFile.js';
|
|
6
|
+
import { type Checkout } from '../utils/gitCheckout.js';
|
|
7
|
+
import { type LayoutCheck } from '../utils/layoutCheck.js';
|
|
8
|
+
export declare const livePassTargetSchema: z.ZodObject<{
|
|
9
|
+
screen: z.ZodString;
|
|
10
|
+
state: z.ZodString;
|
|
11
|
+
viewport: z.ZodString;
|
|
12
|
+
expected: z.ZodString;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export declare const livePassArgsSchema: z.ZodObject<{
|
|
15
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
16
|
+
screen: z.ZodString;
|
|
17
|
+
state: z.ZodString;
|
|
18
|
+
viewport: z.ZodString;
|
|
19
|
+
expected: z.ZodString;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
brief: z.ZodString;
|
|
22
|
+
workingDirectory: z.ZodString;
|
|
23
|
+
artifactDir: z.ZodOptional<z.ZodString>;
|
|
24
|
+
driver: z.ZodEnum<{
|
|
25
|
+
playwright: "playwright";
|
|
26
|
+
maestro: "maestro";
|
|
27
|
+
}>;
|
|
28
|
+
model: z.ZodDefault<z.ZodString>;
|
|
29
|
+
printTimeout: z.ZodDefault<z.ZodString>;
|
|
30
|
+
yolo: z.ZodDefault<z.ZodBoolean>;
|
|
31
|
+
publishCommand: z.ZodOptional<z.ZodString>;
|
|
32
|
+
conversationId: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export type LivePassTarget = z.infer<typeof livePassTargetSchema>;
|
|
35
|
+
export type LivePassArgs = z.infer<typeof livePassArgsSchema>;
|
|
36
|
+
export declare const livePassResultSchema: z.ZodObject<{
|
|
37
|
+
verdict: z.ZodEnum<{
|
|
38
|
+
PASS: "PASS";
|
|
39
|
+
FAIL: "FAIL";
|
|
40
|
+
BLOCKED: "BLOCKED";
|
|
41
|
+
}>;
|
|
42
|
+
summary: z.ZodString;
|
|
43
|
+
served_branch_check: z.ZodString;
|
|
44
|
+
frames: z.ZodArray<z.ZodObject<{
|
|
45
|
+
file: z.ZodString;
|
|
46
|
+
screen: z.ZodString;
|
|
47
|
+
state: z.ZodString;
|
|
48
|
+
expected: z.ZodString;
|
|
49
|
+
viewport: z.ZodString;
|
|
50
|
+
verdict: z.ZodEnum<{
|
|
51
|
+
PASS: "PASS";
|
|
52
|
+
FAIL: "FAIL";
|
|
53
|
+
}>;
|
|
54
|
+
observed: z.ZodString;
|
|
55
|
+
link_source: z.ZodOptional<z.ZodString>;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
findings: z.ZodArray<z.ZodObject<{
|
|
58
|
+
severity: z.ZodEnum<{
|
|
59
|
+
BLOCKER: "BLOCKER";
|
|
60
|
+
MAJOR: "MAJOR";
|
|
61
|
+
MINOR: "MINOR";
|
|
62
|
+
}>;
|
|
63
|
+
screen: z.ZodString;
|
|
64
|
+
description: z.ZodString;
|
|
65
|
+
evidence_file: z.ZodOptional<z.ZodString>;
|
|
66
|
+
}, z.core.$strip>>;
|
|
67
|
+
regressions: z.ZodArray<z.ZodObject<{
|
|
68
|
+
severity: z.ZodEnum<{
|
|
69
|
+
BLOCKER: "BLOCKER";
|
|
70
|
+
MAJOR: "MAJOR";
|
|
71
|
+
MINOR: "MINOR";
|
|
72
|
+
}>;
|
|
73
|
+
screen: z.ZodString;
|
|
74
|
+
description: z.ZodString;
|
|
75
|
+
evidence_file: z.ZodOptional<z.ZodString>;
|
|
76
|
+
}, z.core.$strip>>;
|
|
77
|
+
resolved: z.ZodArray<z.ZodObject<{
|
|
78
|
+
screen: z.ZodString;
|
|
79
|
+
description: z.ZodString;
|
|
80
|
+
evidence_file: z.ZodOptional<z.ZodString>;
|
|
81
|
+
}, z.core.$strip>>;
|
|
82
|
+
changes: z.ZodArray<z.ZodObject<{
|
|
83
|
+
screen: z.ZodString;
|
|
84
|
+
description: z.ZodString;
|
|
85
|
+
evidence_file: z.ZodOptional<z.ZodString>;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
skipped: z.ZodArray<z.ZodObject<{
|
|
88
|
+
target: z.ZodString;
|
|
89
|
+
reason: z.ZodString;
|
|
90
|
+
}, z.core.$strip>>;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
export type LivePassResult = z.infer<typeof livePassResultSchema>;
|
|
93
|
+
export declare const LIVE_PASS_RESULT_JSON_SCHEMA: Record<string, unknown>;
|
|
94
|
+
/**
|
|
95
|
+
* The one filename a target's evidence may use. Derived in code from the whole
|
|
96
|
+
* screen/state/viewport triple so two targets can never share a file — letting
|
|
97
|
+
* Gemini name frames allowed one overwritten screenshot to satisfy several
|
|
98
|
+
* targets at once.
|
|
99
|
+
*/
|
|
100
|
+
export declare function frameFileName(target: {
|
|
101
|
+
screen: string;
|
|
102
|
+
state: string;
|
|
103
|
+
viewport: string;
|
|
104
|
+
}): string;
|
|
105
|
+
/**
|
|
106
|
+
* One filename per target, keyed by target. Slugifying can map two distinct
|
|
107
|
+
* targets (`a/b` and `a-b`) onto one name, so a collision is suffixed rather
|
|
108
|
+
* than left to collapse two targets into one file.
|
|
109
|
+
*/
|
|
110
|
+
export declare function prescribedFrameNames(targets: {
|
|
111
|
+
screen: string;
|
|
112
|
+
state: string;
|
|
113
|
+
viewport: string;
|
|
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;
|
|
123
|
+
export declare function buildLivePassPrompt(config: {
|
|
124
|
+
brief: string;
|
|
125
|
+
driver: 'playwright' | 'maestro';
|
|
126
|
+
targets: LivePassTarget[];
|
|
127
|
+
workingDirectory: string;
|
|
128
|
+
artifactDir: string;
|
|
129
|
+
checkout: Checkout | null;
|
|
130
|
+
resumed: boolean;
|
|
131
|
+
}): string;
|
|
132
|
+
export type FrameStatus = ArtifactFileStatus | 'DUPLICATE' | 'NOT_IMAGE';
|
|
133
|
+
export interface FrameCheck {
|
|
134
|
+
file: string;
|
|
135
|
+
screen: string;
|
|
136
|
+
state: string;
|
|
137
|
+
status: FrameStatus;
|
|
138
|
+
/** The file exists but is not the filename prescribed for this target. Reported, never fatal. */
|
|
139
|
+
misnamed: boolean;
|
|
140
|
+
}
|
|
141
|
+
export interface FramesValidation {
|
|
142
|
+
checks: FrameCheck[];
|
|
143
|
+
okFiles: string[];
|
|
144
|
+
problems: string[];
|
|
145
|
+
/** Reported alongside the problems but never affects the verdict. */
|
|
146
|
+
notes: string[];
|
|
147
|
+
unreportedCaptures: string[];
|
|
148
|
+
}
|
|
149
|
+
/** Check every reported frame against the disk. Never throws. */
|
|
150
|
+
export declare function validateFrames(result: LivePassResult, artifactDir: string, runStartMs: number, targets?: LivePassTarget[]): FramesValidation;
|
|
151
|
+
export interface CoverageReport {
|
|
152
|
+
uncovered: LivePassTarget[];
|
|
153
|
+
skipped: {
|
|
154
|
+
target: LivePassTarget;
|
|
155
|
+
reason: string;
|
|
156
|
+
}[];
|
|
157
|
+
extraFrames: string[];
|
|
158
|
+
}
|
|
159
|
+
/** Match each requested target to a reported frame, case- and whitespace-insensitively. */
|
|
160
|
+
export declare function checkCoverage(targets: LivePassTarget[], result: LivePassResult): CoverageReport;
|
|
161
|
+
export interface VerdictDecision {
|
|
162
|
+
verdict: 'PASS' | 'FAIL' | 'BLOCKED';
|
|
163
|
+
reported: string;
|
|
164
|
+
reasons: string[];
|
|
165
|
+
}
|
|
166
|
+
/** Gemini's own verdict is advisory; this is the one the caller acts on. */
|
|
167
|
+
export declare function deriveVerdict(input: {
|
|
168
|
+
result: LivePassResult;
|
|
169
|
+
validation: FramesValidation;
|
|
170
|
+
coverage: CoverageReport;
|
|
171
|
+
deniedActions: string;
|
|
172
|
+
}): VerdictDecision;
|
|
173
|
+
export interface PublishResult {
|
|
174
|
+
ran: boolean;
|
|
175
|
+
command?: string;
|
|
176
|
+
stdout: string;
|
|
177
|
+
stderr: string;
|
|
178
|
+
exitCode: number | null;
|
|
179
|
+
skippedReason?: string;
|
|
180
|
+
}
|
|
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;
|
|
189
|
+
export declare function formatLivePassReport(input: {
|
|
190
|
+
envelope: AgyJsonEnvelope;
|
|
191
|
+
result: LivePassResult;
|
|
192
|
+
decision: VerdictDecision;
|
|
193
|
+
validation: FramesValidation;
|
|
194
|
+
coverage: CoverageReport;
|
|
195
|
+
driver: string;
|
|
196
|
+
model: string;
|
|
197
|
+
artifactDir: string;
|
|
198
|
+
deniedActions: string;
|
|
199
|
+
workingTree: WorkingTreeDiff;
|
|
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[];
|
|
204
|
+
}): string;
|
|
205
|
+
export declare const livePassTool: UnifiedTool;
|
|
206
|
+
//# 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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"}
|