@provartesting/provardx-cli 1.5.0-beta.15 → 1.5.0-beta.17
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/lib/mcp/docs/NITROX_COMPONENT_CATALOG.md +2001 -0
- package/lib/mcp/security/pathPolicy.js +32 -5
- package/lib/mcp/security/pathPolicy.js.map +1 -1
- package/lib/mcp/server.d.ts +6 -0
- package/lib/mcp/server.js +33 -2
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/tools/automationTools.d.ts +1 -25
- package/lib/mcp/tools/automationTools.js +3 -155
- package/lib/mcp/tools/automationTools.js.map +1 -1
- package/lib/mcp/tools/defectTools.d.ts +1 -1
- package/lib/mcp/tools/defectTools.js +22 -35
- package/lib/mcp/tools/defectTools.js.map +1 -1
- package/lib/mcp/tools/nitroXTools.js +2 -0
- package/lib/mcp/tools/nitroXTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubTools.js +48 -42
- package/lib/mcp/tools/qualityHubTools.js.map +1 -1
- package/lib/mcp/tools/sfSpawn.d.ts +24 -2
- package/lib/mcp/tools/sfSpawn.js +149 -7
- package/lib/mcp/tools/sfSpawn.js.map +1 -1
- package/lib/mcp/tools/testCaseGenerate.js +29 -1
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
- package/lib/mcp/tools/testCaseStepTools.js +1 -0
- package/lib/mcp/tools/testCaseStepTools.js.map +1 -1
- package/lib/mcp/tools/testCaseValidate.js +35 -16
- package/lib/mcp/tools/testCaseValidate.js.map +1 -1
- package/lib/mcp/tools/testPlanTools.js +22 -5
- package/lib/mcp/tools/testPlanTools.js.map +1 -1
- package/oclif.manifest.json +211 -211
- package/package.json +3 -2
|
@@ -41,13 +41,22 @@ export function assertPathAllowed(filePath, allowedPaths) {
|
|
|
41
41
|
resolved = fs.realpathSync(filePath);
|
|
42
42
|
}
|
|
43
43
|
catch {
|
|
44
|
-
// Path doesn't exist —
|
|
45
|
-
|
|
44
|
+
// Path doesn't exist — walk up the ancestor hierarchy to find the deepest existing directory,
|
|
45
|
+
// resolve symlinks there, then re-attach the non-existent tail segments. This handles macOS
|
|
46
|
+
// where os.tmpdir() returns /var/... (a symlink to /private/var/...) and intermediate dirs
|
|
47
|
+
// for a new output path may not yet exist.
|
|
48
|
+
const full = path.resolve(filePath);
|
|
49
|
+
let cur = full;
|
|
50
|
+
const tail = [];
|
|
51
|
+
while (!fs.existsSync(cur) && cur !== path.dirname(cur)) {
|
|
52
|
+
tail.unshift(path.basename(cur));
|
|
53
|
+
cur = path.dirname(cur);
|
|
54
|
+
}
|
|
46
55
|
try {
|
|
47
|
-
resolved = path.join(fs.realpathSync(
|
|
56
|
+
resolved = path.join(fs.realpathSync(cur), ...tail);
|
|
48
57
|
}
|
|
49
58
|
catch {
|
|
50
|
-
resolved =
|
|
59
|
+
resolved = full;
|
|
51
60
|
}
|
|
52
61
|
}
|
|
53
62
|
const resolvedAllowed = allowedPaths.map((p) => {
|
|
@@ -58,8 +67,26 @@ export function assertPathAllowed(filePath, allowedPaths) {
|
|
|
58
67
|
return path.resolve(path.normalize(p));
|
|
59
68
|
}
|
|
60
69
|
});
|
|
70
|
+
// Windows file paths are case-insensitive; fs.realpathSync does not always
|
|
71
|
+
// canonicalize drive-letter case (e.g. `c:\` vs `C:\`), so compare case-insensitively.
|
|
72
|
+
const isWindows = process.platform === 'win32';
|
|
73
|
+
const normalizeForCompare = (p) => (isWindows ? p.toLowerCase() : p);
|
|
74
|
+
const resolvedKey = normalizeForCompare(resolved);
|
|
61
75
|
if (resolvedAllowed.length > 0 &&
|
|
62
|
-
!resolvedAllowed.some((base) =>
|
|
76
|
+
!resolvedAllowed.some((base) => {
|
|
77
|
+
const rawBaseKey = normalizeForCompare(base);
|
|
78
|
+
// Strip trailing separator unless base is a filesystem root (/ on Unix, C:\ on Windows).
|
|
79
|
+
// A trailing sep from user input like "/tmp/" would otherwise cause double-sep prefix
|
|
80
|
+
// checks ("startsWith('/tmp//')") and equality mismatches ("/tmp" !== "/tmp/").
|
|
81
|
+
const isRoot = rawBaseKey === path.sep || (isWindows && /^[a-z]:[/\\]$/.test(rawBaseKey));
|
|
82
|
+
if (isRoot) {
|
|
83
|
+
// Root path already ends with its own separator (/ or C:\).
|
|
84
|
+
// Appending path.sep would produce // or C:\\, breaking startsWith for all children.
|
|
85
|
+
return resolvedKey.startsWith(rawBaseKey);
|
|
86
|
+
}
|
|
87
|
+
const baseKey = rawBaseKey.endsWith(path.sep) ? rawBaseKey.slice(0, -1) : rawBaseKey;
|
|
88
|
+
return resolvedKey === baseKey || resolvedKey.startsWith(baseKey + path.sep);
|
|
89
|
+
})) {
|
|
63
90
|
throw new PathPolicyError('PATH_NOT_ALLOWED', `Path "${resolved}" is not within allowed paths: [${resolvedAllowed.join(', ')}]`);
|
|
64
91
|
}
|
|
65
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathPolicy.js","sourceRoot":"","sources":["../../../src/mcp/security/pathPolicy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,CAAS;IAC7B,YAAmB,IAAY,EAAE,OAAe;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,YAAsB;IACxE,wFAAwF;IACxF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CAAC,gBAAgB,EAAE,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,wFAAwF;IACxF,0FAA0F;IAC1F,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,
|
|
1
|
+
{"version":3,"file":"pathPolicy.js","sourceRoot":"","sources":["../../../src/mcp/security/pathPolicy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,CAAS;IAC7B,YAAmB,IAAY,EAAE,OAAe;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,YAAsB;IACxE,wFAAwF;IACxF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CAAC,gBAAgB,EAAE,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,wFAAwF;IACxF,0FAA0F;IAC1F,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,8FAA8F;QAC9F,4FAA4F;QAC5F,2FAA2F;QAC3F,2CAA2C;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,uFAAuF;IACvF,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC/C,MAAM,mBAAmB,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAElD,IACE,eAAe,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC7C,yFAAyF;YACzF,sFAAsF;YACtF,gFAAgF;YAChF,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1F,IAAI,MAAM,EAAE,CAAC;gBACX,4DAA4D;gBAC5D,qFAAqF;gBACrF,OAAO,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrF,OAAO,WAAW,KAAK,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC,CAAC,EACF,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,SAAS,QAAQ,mCAAmC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/lib/mcp/server.d.ts
CHANGED
|
@@ -8,3 +8,9 @@ export interface ServerConfig {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
export declare function createProvarMcpServer(config: ServerConfig): McpServer;
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the docs directory for bundled MCP Markdown resources.
|
|
13
|
+
* In compiled output (lib/mcp/) the sibling docs/ dir exists; in dev/ts-node
|
|
14
|
+
* mode (src/mcp/) it doesn't, so fall back two levels to the repo-root docs/.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveDocsDir(currentDir: string): string;
|
package/lib/mcp/server.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* For full license text, see LICENSE.md file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
6
|
*/
|
|
7
7
|
import { createRequire } from 'node:module';
|
|
8
|
-
import { readFileSync } from 'node:fs';
|
|
8
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
9
9
|
import { fileURLToPath } from 'node:url';
|
|
10
10
|
import { dirname, join } from 'node:path';
|
|
11
11
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
@@ -83,7 +83,29 @@ export function createProvarMcpServer(config) {
|
|
|
83
83
|
// ── Provar prompts ───────────────────────────────────────────────────────────
|
|
84
84
|
registerAllPrompts(server);
|
|
85
85
|
// ── Documentation resources ──────────────────────────────────────────────────
|
|
86
|
-
const docsDir =
|
|
86
|
+
const docsDir = resolveDocsDir(dirname(fileURLToPath(import.meta.url)));
|
|
87
|
+
server.resource('provar-nitrox-component-catalog', 'provar://nitrox/component-catalog', {
|
|
88
|
+
description: 'Catalog of all shipped NitroX (Hybrid Model) base component packages. Lists every package with its components, types, tagNames, interactions, and attributes. Read this before calling provar_nitrox_generate to understand available component patterns and naming conventions.',
|
|
89
|
+
mimeType: 'text/markdown',
|
|
90
|
+
}, () => {
|
|
91
|
+
try {
|
|
92
|
+
const text = readFileSync(join(docsDir, 'NITROX_COMPONENT_CATALOG.md'), 'utf-8');
|
|
93
|
+
return {
|
|
94
|
+
contents: [{ uri: 'provar://nitrox/component-catalog', mimeType: 'text/markdown', text }],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return {
|
|
99
|
+
contents: [
|
|
100
|
+
{
|
|
101
|
+
uri: 'provar://nitrox/component-catalog',
|
|
102
|
+
mimeType: 'text/markdown',
|
|
103
|
+
text: '# NitroX Component Catalog\n\nCatalog not found. If you are developing from source, rebuild the package. Otherwise, reinstall or upgrade the plugin/package and try again.',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
});
|
|
87
109
|
server.resource('provar-step-reference', 'provar://docs/step-reference', {
|
|
88
110
|
description: 'Canonical reference for all Provar XML test step API IDs, argument formats, validation rules, and corpus-verified examples. Use this to understand correct step structure when generating or reviewing test cases.',
|
|
89
111
|
mimeType: 'text/markdown',
|
|
@@ -114,4 +136,13 @@ export function createProvarMcpServer(config) {
|
|
|
114
136
|
});
|
|
115
137
|
return server;
|
|
116
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Resolve the docs directory for bundled MCP Markdown resources.
|
|
141
|
+
* In compiled output (lib/mcp/) the sibling docs/ dir exists; in dev/ts-node
|
|
142
|
+
* mode (src/mcp/) it doesn't, so fall back two levels to the repo-root docs/.
|
|
143
|
+
*/
|
|
144
|
+
export function resolveDocsDir(currentDir) {
|
|
145
|
+
const sibling = join(currentDir, 'docs');
|
|
146
|
+
return existsSync(sibling) ? sibling : join(currentDir, '..', '..', 'docs');
|
|
147
|
+
}
|
|
117
148
|
//# sourceMappingURL=server.js.map
|
package/lib/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
2
|
import type { ServerConfig } from '../server.js';
|
|
4
|
-
|
|
5
|
-
* Returns candidate sf CLI paths in common npm/nvm/volta install locations.
|
|
6
|
-
* Used as a fallback when `sf` is not in PATH.
|
|
7
|
-
*/
|
|
8
|
-
export declare function getSfCommonPaths(): string[];
|
|
9
|
-
/**
|
|
10
|
-
* Exposed for testing only — pre-seeds the cached sf executable path, bypassing the probe spawn.
|
|
11
|
-
* Pass `undefined` to reset the cache so the next call triggers a fresh probe.
|
|
12
|
-
*/
|
|
13
|
-
export declare function setSfPathCacheForTesting(value: string | null | undefined): void;
|
|
14
|
-
/** Exposed for testing only — overrides process.platform for needsWindowsShell decisions. */
|
|
15
|
-
export declare function setSfPlatformForTesting(platform: NodeJS.Platform | undefined): void;
|
|
16
|
-
/**
|
|
17
|
-
* Returns true when spawning `executable` requires the Windows shell.
|
|
18
|
-
* On Windows, `.cmd` and `.bat` batch scripts cannot be executed directly by
|
|
19
|
-
* Node's spawnSync — they must be invoked through cmd.exe (i.e. shell: true).
|
|
20
|
-
* The bare name "sf" also needs this treatment on Windows because the file on
|
|
21
|
-
* disk is actually "sf.cmd" and Node won't auto-append the extension.
|
|
22
|
-
*
|
|
23
|
-
* The `platform` parameter defaults to `process.platform` and is exposed for
|
|
24
|
-
* unit testing so tests can verify both Windows and non-Windows behaviour
|
|
25
|
-
* without having to run on the corresponding OS.
|
|
26
|
-
*/
|
|
27
|
-
export declare function needsWindowsShell(executable: string, platform?: NodeJS.Platform): boolean;
|
|
3
|
+
export { getSfCommonPaths, needsWindowsShell, setSfPathCacheForTesting, setSfPlatformForTesting } from './sfSpawn.js';
|
|
28
4
|
export declare function registerAutomationConfigLoad(server: McpServer, config: ServerConfig): void;
|
|
29
5
|
/**
|
|
30
6
|
* Strip Java schema-validator debug lines and stale logger-lock SEVERE warnings
|
|
@@ -13,161 +13,9 @@ import { makeError, makeRequestId } from '../schemas/common.js';
|
|
|
13
13
|
import { log } from '../logging/logger.js';
|
|
14
14
|
import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
|
|
15
15
|
import { parseJUnitResults } from './antTools.js';
|
|
16
|
-
import {
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
* Returns candidate sf CLI paths in common npm/nvm/volta install locations.
|
|
20
|
-
* Used as a fallback when `sf` is not in PATH.
|
|
21
|
-
*/
|
|
22
|
-
export function getSfCommonPaths() {
|
|
23
|
-
const home = os.homedir();
|
|
24
|
-
if (process.platform === 'win32') {
|
|
25
|
-
const appData = process.env['APPDATA'] ?? path.join(home, 'AppData', 'Roaming');
|
|
26
|
-
return [
|
|
27
|
-
path.join(appData, 'npm', 'sf.cmd'),
|
|
28
|
-
path.join('C:', 'Program Files', 'nodejs', 'sf.cmd'),
|
|
29
|
-
path.join('C:', 'Program Files (x86)', 'nodejs', 'sf.cmd'),
|
|
30
|
-
];
|
|
31
|
-
}
|
|
32
|
-
const candidates = [
|
|
33
|
-
'/usr/local/bin/sf',
|
|
34
|
-
path.join(home, '.npm-global', 'bin', 'sf'),
|
|
35
|
-
path.join(home, '.local', 'bin', 'sf'),
|
|
36
|
-
path.join(home, '.volta', 'bin', 'sf'),
|
|
37
|
-
];
|
|
38
|
-
// nvm — scan the three most-recently installed Node versions
|
|
39
|
-
const nvmBinDir = path.join(process.env['NVM_DIR'] ?? path.join(home, '.nvm'), 'versions', 'node');
|
|
40
|
-
if (fs.existsSync(nvmBinDir)) {
|
|
41
|
-
try {
|
|
42
|
-
for (const v of fs.readdirSync(nvmBinDir).sort().reverse().slice(0, 3)) {
|
|
43
|
-
candidates.push(path.join(nvmBinDir, v, 'bin', 'sf'));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
/* skip */
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return candidates;
|
|
51
|
-
}
|
|
52
|
-
// ── Shared spawn helper ───────────────────────────────────────────────────────
|
|
53
|
-
const MAX_BUFFER = 50 * 1024 * 1024; // 50 MB — prevents ENOBUFS on verbose Provar runs
|
|
54
|
-
// Proactively resolve the sf executable path once on first use and cache it.
|
|
55
|
-
// This ensures sf is always found even when ENOENT is masked by other errors (e.g. ENOBUFS).
|
|
56
|
-
let cachedSfPath; // undefined = not yet probed
|
|
57
|
-
/**
|
|
58
|
-
* Exposed for testing only — pre-seeds the cached sf executable path, bypassing the probe spawn.
|
|
59
|
-
* Pass `undefined` to reset the cache so the next call triggers a fresh probe.
|
|
60
|
-
*/
|
|
61
|
-
export function setSfPathCacheForTesting(value) {
|
|
62
|
-
cachedSfPath = value;
|
|
63
|
-
}
|
|
64
|
-
// Platform override used in tests so Windows-specific shell logic can be exercised on any OS.
|
|
65
|
-
let sfPlatformOverride;
|
|
66
|
-
/** Exposed for testing only — overrides process.platform for needsWindowsShell decisions. */
|
|
67
|
-
export function setSfPlatformForTesting(platform) {
|
|
68
|
-
sfPlatformOverride = platform;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Returns true when spawning `executable` requires the Windows shell.
|
|
72
|
-
* On Windows, `.cmd` and `.bat` batch scripts cannot be executed directly by
|
|
73
|
-
* Node's spawnSync — they must be invoked through cmd.exe (i.e. shell: true).
|
|
74
|
-
* The bare name "sf" also needs this treatment on Windows because the file on
|
|
75
|
-
* disk is actually "sf.cmd" and Node won't auto-append the extension.
|
|
76
|
-
*
|
|
77
|
-
* The `platform` parameter defaults to `process.platform` and is exposed for
|
|
78
|
-
* unit testing so tests can verify both Windows and non-Windows behaviour
|
|
79
|
-
* without having to run on the corresponding OS.
|
|
80
|
-
*/
|
|
81
|
-
export function needsWindowsShell(executable, platform = process.platform) {
|
|
82
|
-
if (platform !== 'win32')
|
|
83
|
-
return false;
|
|
84
|
-
const lower = executable.toLowerCase();
|
|
85
|
-
return lower.endsWith('.cmd') || lower.endsWith('.bat') || !path.extname(lower);
|
|
86
|
-
}
|
|
87
|
-
function resolveSfExecutable() {
|
|
88
|
-
if (cachedSfPath !== undefined)
|
|
89
|
-
return cachedSfPath;
|
|
90
|
-
const platform = sfPlatformOverride ?? process.platform;
|
|
91
|
-
// Two-phase probe avoids false-positives on Windows with shell:true.
|
|
92
|
-
// When shell:true is used, cmd.exe spawns successfully even when `sf` is
|
|
93
|
-
// missing — it exits non-zero with "not recognised" in stderr but sets no
|
|
94
|
-
// probe.error. Trying shell:false first catches both cases correctly.
|
|
95
|
-
//
|
|
96
|
-
// First attempt: shell:false (works on Linux/macOS; gives ENOENT on Windows if
|
|
97
|
-
// sf.cmd is on PATH but requires the shell).
|
|
98
|
-
const probe = sfSpawnHelper.spawnSync('sf', ['--version'], {
|
|
99
|
-
encoding: 'utf-8',
|
|
100
|
-
shell: false,
|
|
101
|
-
maxBuffer: 1024 * 1024,
|
|
102
|
-
});
|
|
103
|
-
if (!probe.error && probe.status === 0) {
|
|
104
|
-
cachedSfPath = 'sf';
|
|
105
|
-
return cachedSfPath;
|
|
106
|
-
}
|
|
107
|
-
// Windows fallback: retry with shell:true when the plain probe failed
|
|
108
|
-
// with ENOENT — meaning sf.cmd exists on PATH but can't run without the shell.
|
|
109
|
-
if (platform === 'win32' && probe.error?.code === 'ENOENT') {
|
|
110
|
-
const probeShell = sfSpawnHelper.spawnSync('sf', ['--version'], {
|
|
111
|
-
encoding: 'utf-8',
|
|
112
|
-
shell: true,
|
|
113
|
-
maxBuffer: 1024 * 1024,
|
|
114
|
-
});
|
|
115
|
-
if (!probeShell.error && probeShell.status === 0) {
|
|
116
|
-
cachedSfPath = 'sf';
|
|
117
|
-
return cachedSfPath;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// Fall back to common install locations
|
|
121
|
-
for (const candidate of getSfCommonPaths()) {
|
|
122
|
-
if (fs.existsSync(candidate)) {
|
|
123
|
-
cachedSfPath = candidate;
|
|
124
|
-
return cachedSfPath;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
cachedSfPath = null;
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Reject shell metacharacters in an sf_path that will be executed via shell:true.
|
|
132
|
-
* On Windows, cmd.exe interprets & | ; < > ` ' " and newlines as shell syntax.
|
|
133
|
-
* A valid filesystem path should never contain these characters.
|
|
134
|
-
*/
|
|
135
|
-
function assertShellSafePath(sfPath) {
|
|
136
|
-
if (/[&|;<>`'"\n\r]/.test(sfPath)) {
|
|
137
|
-
throw Object.assign(new Error('sf_path contains characters that are unsafe for shell execution on Windows ' +
|
|
138
|
-
'(& | ; < > ` \' " or line-breaks). Provide an absolute filesystem path to the sf executable.'), { code: 'INVALID_SF_PATH' });
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
function runSfCommand(args, sfPath) {
|
|
142
|
-
// Use explicit path if provided; otherwise use cached probe result
|
|
143
|
-
const executable = sfPath ?? resolveSfExecutable();
|
|
144
|
-
if (!executable)
|
|
145
|
-
throw new SfNotFoundError();
|
|
146
|
-
const platform = sfPlatformOverride ?? process.platform;
|
|
147
|
-
const useShell = needsWindowsShell(executable, platform);
|
|
148
|
-
// Guard against injection when shell:true is used with a user-supplied path.
|
|
149
|
-
// Common install locations returned by resolveSfExecutable() are safe by construction.
|
|
150
|
-
if (useShell && sfPath) {
|
|
151
|
-
assertShellSafePath(sfPath);
|
|
152
|
-
}
|
|
153
|
-
const result = sfSpawnHelper.spawnSync(executable, args, {
|
|
154
|
-
encoding: 'utf-8',
|
|
155
|
-
shell: useShell,
|
|
156
|
-
maxBuffer: MAX_BUFFER,
|
|
157
|
-
});
|
|
158
|
-
if (result.error) {
|
|
159
|
-
const err = result.error;
|
|
160
|
-
if (err.code === 'ENOENT') {
|
|
161
|
-
throw new SfNotFoundError(sfPath);
|
|
162
|
-
}
|
|
163
|
-
throw result.error;
|
|
164
|
-
}
|
|
165
|
-
return {
|
|
166
|
-
stdout: result.stdout ?? '',
|
|
167
|
-
stderr: result.stderr ?? '',
|
|
168
|
-
exitCode: result.status ?? 1,
|
|
169
|
-
};
|
|
170
|
-
}
|
|
16
|
+
import { runSfCommand } from './sfSpawn.js';
|
|
17
|
+
// Re-export sf resolution helpers so existing test imports from automationTools continue to work
|
|
18
|
+
export { getSfCommonPaths, needsWindowsShell, setSfPathCacheForTesting, setSfPlatformForTesting } from './sfSpawn.js';
|
|
171
19
|
function handleSpawnError(err, requestId, toolName) {
|
|
172
20
|
const error = err;
|
|
173
21
|
log('error', `${toolName} failed`, { requestId, error: error.message });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automationTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/automationTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAChF,OAAO;YACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAC3D,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG;QACjB,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;KACvC,CAAC;IACF,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACnG,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACvE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,kDAAkD;AAQvF,6EAA6E;AAC7E,6FAA6F;AAC7F,IAAI,YAAuC,CAAC,CAAC,6BAA6B;AAE1E;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAgC;IACvE,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,8FAA8F;AAC9F,IAAI,kBAA+C,CAAC;AACpD,6FAA6F;AAC7F,MAAM,UAAU,uBAAuB,CAAC,QAAqC;IAC3E,kBAAkB,GAAG,QAAQ,CAAC;AAChC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ;IAC/E,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,MAAM,QAAQ,GAAG,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAExD,qEAAqE;IACrE,yEAAyE;IACzE,0EAA0E;IAC1E,sEAAsE;IACtE,EAAE;IACF,+EAA+E;IAC/E,6CAA6C;IAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;QACzD,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAI,GAAG,IAAI;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,sEAAsE;IACtE,+EAA+E;IAC/E,IAAI,QAAQ,KAAK,OAAO,IAAK,KAAK,CAAC,KAA2C,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClG,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;YAC9D,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI,GAAG,IAAI;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,EAAE,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,YAAY,GAAG,SAAS,CAAC;YACzB,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IACD,YAAY,GAAG,IAAI,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAAc;IACzC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,6EAA6E;YAC3E,8FAA8F,CACjG,EACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAC5B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,MAAe;IACnD,mEAAmE;IACnE,MAAM,UAAU,GAAG,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACnD,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,eAAe,EAAE,CAAC;IAE7C,MAAM,QAAQ,GAAG,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IACxD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEzD,6EAA6E;IAC7E,uFAAuF;IACvF,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;QACvD,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,CAAC,KAA8B,CAAC;QAClD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAY,EACZ,SAAiB,EACjB,QAAgB;IAEhB,MAAM,KAAK,GAAG,GAAgC,CAAC;IAC/C,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,OAAO;QACL,OAAO,EAAE,IAAa;QACtB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aAC3F;SACF;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,MAAoB;IAClF,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE;YACX,8EAA8E;YAC9E,6GAA6G;YAC7G,mIAAmI;YACnI,0GAA0G;SAC3G,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE;YACX,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,CAAC,wFAAwF,CAAC;YACrG,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6FAA6F,CAAC;SAC3G;KACF,EACD,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/B,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,+BAA+B,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,iBAAiB,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,YAAY,CACzB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAChF,OAAO,CACR,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,eAAe;aAChB,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,SAAS,CAAC,+BAA+B,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CACtF;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE;qBACpG;iBACF,CAAC;YACJ,CAAC;YACD,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,+BAA+B,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,cAAc,GAAa,CAAC,wBAAwB,EAAE,2CAA2C,CAAC,CAAC;AAEzG;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7C,UAAU,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACnC,IAAI,OAAO,IAAI,gBAAgB;YAAE,SAAS,CAAC,sBAAsB;QACjE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,gBAAgB,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,QAAQ,IAAI,eAAe,UAAU,gGAAgG,CAAC;IACxI,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC;AAED,iFAAiF;AAEjF,2DAA2D;AAC3D,IAAI,qBAAgD,CAAC;AAErD,iHAAiH;AACjH,MAAM,UAAU,0BAA0B,CAAC,CAA4B;IACrE,qBAAqB,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,WAAmB;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,QAAQ,eAAe,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,EAAE;aACf,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,2BAA2B,CAAC,MAAoB;IACvD,IAAI,qBAAqB,KAAK,SAAS;QAAE,OAAO,qBAAqB,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAA4B,CAAC;QAC/F,MAAM,YAAY,GAAG,QAAQ,CAAC,+BAA+B,CAAuB,CAAC;QACrF,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/D,oFAAoF;QACpF,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAA4B,CAAC;QAC5F,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAuB,CAAC;QAC/D,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,UAAU,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACxD,sFAAsF;QACtF,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAoB;IAC/E,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE;YACX,sHAAsH;YACtH,kJAAkJ;YAClJ,8FAA8F;YAC9F,mEAAmE;YACnE,yGAAyG;YACzG,wFAAwF;YACxF,qLAAqL;YACrL,2EAA2E;SAC5E,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,wEAAwE,CAAC;YACrF,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6FAA6F,CAAC;SAC3G;KACF,EACD,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YACxF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEpE,0EAA0E;YAC1E,MAAM,WAAW,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW;gBAClD,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBAChC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAEtC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,mBAAmB,CAC9E,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAC/B,CAAC;gBACF,MAAM,OAAO,GAA4B;oBACvC,GAAG,SAAS,CAAC,2BAA2B,EAAE,WAAW,EAAE,SAAS,CAAC;oBACjE,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzE,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBAC/C,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE,CAAC;oBACjC,OAAO,CAAC,SAAS,CAAC,GAAG;wBACnB,OAAO,EACL,YAAY;4BACZ,8GAA8G;qBACjH,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,IAAa,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACzG,CAAC;YAED,MAAM,QAAQ,GAA4B;gBACxC,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YACF,IAAI,UAAU,GAAG,CAAC;gBAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,UAAU,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,YAAY;gBAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE;YACX,sFAAsF;YACtF,kJAAkJ;YAClJ,mEAAmE;SACpE,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,wEAAwE,CAAC;YACrF,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6FAA6F,CAAC;SAC3G;KACF,EACD,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/F,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAExG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,2BAA2B,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBACxG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,yBAAyB,GAC7B,4GAA4G;IAC5G,yGAAyG;IACzG,qGAAqG;IACrG,0EAA0E;IAC1E,gJAAgJ,CAAC;AAEnJ,MAAM,UAAU,kCAAkC,CAAC,MAAiB;IAClE,MAAM,CAAC,YAAY,CACjB,qCAAqC,EACrC;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE;YACX,iFAAiF;YACjF,mDAAmD;YACnD,0GAA0G;YAC1G,2FAA2F;YAC3F,6FAA6F;YAC7F,wGAAwG;YACxG,4HAA4H;SAC7H,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CACP,gKAAgK,CACjK;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6FAA6F,CAAC;SAC3G;KACF,EACD,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,qCAAqC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YACjG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YAE/C,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAAwC,eAAe;oBAClE,CAAC,CAAC,EAAE,UAAU,EAAE,yBAAyB,EAAE;oBAC3C,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4BAA4B,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;yBAClG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YACxG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,qCAAqC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,4DAA4D;AAC5D,MAAM,oBAAoB,GAA6B;IACrD,KAAK,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACrD,MAAM,EAAE,CAAC,eAAe,CAAC;IACzB,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;CAC9B,CAAC;AAQF,uFAAuF;AACvF,SAAS,iBAAiB,CAAC,WAAmB;IAC5C,KAAK,MAAM,SAAS,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC9F,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACnF,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8FAA8F;AAC9F,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB;IAChC,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,SAAS,UAAU,CAAC,WAAmB,EAAE,MAA+B;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QACrC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,OAAO;QAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAExC,2EAA2E;IAC3E,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAE5D,+EAA+E;IAC/E,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACnC,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxC,qEAAqE;gBACrE,MAAM,UAAU,GAAG;oBACjB,QAAQ;oBACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC;oBAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC;iBAC3D,CAAC;gBACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE;YACX,gGAAgG;YAChG,kEAAkE;YAClE,sCAAsC;YACtC,iDAAiD;YACjD,0DAA0D;YAC1D,gDAAgD;YAChD,uJAAuJ;YACvJ,kJAAkJ;SACnJ,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mGAAmG,CACpG;YACH,KAAK,EAAE,CAAC;iBACL,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,+FAA+F,CAAC;YAC5G,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6FAA6F,CAAC;SAC3G;KACF,EACD,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,wEAAwE;YACxE,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;YAE7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,QAAQ,GAAG;oBACf,SAAS;oBACT,iBAAiB,EAAE,IAAI;oBACvB,aAAa,EAAE,QAAQ;oBACvB,YAAY,EAAE,OAAO,CAAC,IAAI;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE;wBACP,SAAS,QAAQ,CAAC,MAAM,qDAAqD;wBAC7E,sBAAsB,OAAO,CAAC,IAAI,qCAAqC;wBACvE,kEAAkE;qBACnE,CAAC,IAAI,CAAC,GAAG,CAAC;iBACZ,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpE,iBAAiB,EAAE,QAAQ;iBAC5B,CAAC;YACJ,CAAC;YAED,wEAAwE;YACxE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YAElF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,yBAAyB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBACtG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,wEAAwE;YACxE,MAAM,aAAa,GAAG,yBAAyB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YACpF,MAAM,eAAe,GAAG,YAAY,EAAE,OAAO,IAAI,OAAO,IAAI,IAAI,CAAC;YAEjE,MAAM,QAAQ,GAAG;gBACf,SAAS;gBACT,iBAAiB,EAAE,KAAK;gBACxB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,WAAW;gBACzB,OAAO,EAAE,eAAe;gBACxB,OAAO,EAAE;oBACP,gDAAgD,WAAW,GAAG;oBAC9D,8FAA8F;iBAC/F,CAAC,IAAI,CAAC,GAAG,CAAC;aACZ,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpE,iBAAiB,EAAE,QAAQ;aAC5B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAoB;IAChF,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,kCAAkC,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"automationTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/automationTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export interface DefectCreateResult {
|
|
|
6
6
|
executionId: string;
|
|
7
7
|
testCaseId: string;
|
|
8
8
|
}
|
|
9
|
-
export declare function createDefectsForRun(runId: string, targetOrg: string, failedTestFilter?: string[]): {
|
|
9
|
+
export declare function createDefectsForRun(runId: string, targetOrg: string, failedTestFilter?: string[], sfPath?: string): {
|
|
10
10
|
created: DefectCreateResult[];
|
|
11
11
|
skipped: number;
|
|
12
12
|
message: string;
|
|
@@ -10,8 +10,8 @@ import { makeError, makeRequestId } from '../schemas/common.js';
|
|
|
10
10
|
import { log } from '../logging/logger.js';
|
|
11
11
|
import { runSfCommand, soqlEscape } from './sfSpawn.js';
|
|
12
12
|
// ── SF CLI helpers ─────────────────────────────────────────────────────────────
|
|
13
|
-
function runSfArgs(args) {
|
|
14
|
-
const { stdout, stderr, exitCode } = runSfCommand(args);
|
|
13
|
+
function runSfArgs(args, sfPath) {
|
|
14
|
+
const { stdout, stderr, exitCode } = runSfCommand(args, sfPath);
|
|
15
15
|
return { stdout, stderr, exitCode };
|
|
16
16
|
}
|
|
17
17
|
function formatSfCommandError(action, exitCode, stderr, stdout) {
|
|
@@ -20,34 +20,15 @@ function formatSfCommandError(action, exitCode, stderr, stdout) {
|
|
|
20
20
|
? `${action} failed with exit code ${exitCode}: ${details}`
|
|
21
21
|
: `${action} failed with exit code ${exitCode}`;
|
|
22
22
|
}
|
|
23
|
-
function runQuery(soql, targetOrg) {
|
|
24
|
-
const { stdout, stderr, exitCode } = runSfArgs([
|
|
25
|
-
'data',
|
|
26
|
-
'query',
|
|
27
|
-
'--query',
|
|
28
|
-
soql,
|
|
29
|
-
'--target-org',
|
|
30
|
-
targetOrg,
|
|
31
|
-
'--json',
|
|
32
|
-
]);
|
|
23
|
+
function runQuery(soql, targetOrg, sfPath) {
|
|
24
|
+
const { stdout, stderr, exitCode } = runSfArgs(['data', 'query', '--query', soql, '--target-org', targetOrg, '--json'], sfPath);
|
|
33
25
|
if (exitCode !== 0) {
|
|
34
26
|
throw new Error(formatSfCommandError('Salesforce query', exitCode, stderr, stdout));
|
|
35
27
|
}
|
|
36
28
|
return JSON.parse(stdout);
|
|
37
29
|
}
|
|
38
|
-
function createRecord(sobject, values, targetOrg) {
|
|
39
|
-
const { stdout, stderr, exitCode } = runSfArgs([
|
|
40
|
-
'data',
|
|
41
|
-
'create',
|
|
42
|
-
'record',
|
|
43
|
-
'--sobject',
|
|
44
|
-
sobject,
|
|
45
|
-
'--values',
|
|
46
|
-
values,
|
|
47
|
-
'--target-org',
|
|
48
|
-
targetOrg,
|
|
49
|
-
'--json',
|
|
50
|
-
]);
|
|
30
|
+
function createRecord(sobject, values, targetOrg, sfPath) {
|
|
31
|
+
const { stdout, stderr, exitCode } = runSfArgs(['data', 'create', 'record', '--sobject', sobject, '--values', values, '--target-org', targetOrg, '--json'], sfPath);
|
|
51
32
|
if (exitCode !== 0) {
|
|
52
33
|
throw new Error(formatSfCommandError(`Failed to create ${sobject}`, exitCode, stderr, stdout));
|
|
53
34
|
}
|
|
@@ -63,9 +44,9 @@ function safeText(value, maxLen = 200) {
|
|
|
63
44
|
return '';
|
|
64
45
|
return String(value).replace(/"/g, "'").replace(/\n|\r/g, ' ').substring(0, maxLen);
|
|
65
46
|
}
|
|
66
|
-
export function createDefectsForRun(runId, targetOrg, failedTestFilter) {
|
|
47
|
+
export function createDefectsForRun(runId, targetOrg, failedTestFilter, sfPath) {
|
|
67
48
|
// Step 1: resolve job record ID from tracking ID
|
|
68
|
-
const jobQuery = runQuery(`SELECT Id FROM provar__Test_Plan_Schedule_Job__c WHERE provar__Tracking_Id__c = '${soqlEscape(runId)}'`, targetOrg);
|
|
49
|
+
const jobQuery = runQuery(`SELECT Id FROM provar__Test_Plan_Schedule_Job__c WHERE provar__Tracking_Id__c = '${soqlEscape(runId)}'`, targetOrg, sfPath);
|
|
69
50
|
if (jobQuery.result.totalSize === 0) {
|
|
70
51
|
throw new Error(`No Test_Plan_Schedule_Job__c found with Tracking_Id__c = '${runId}'`);
|
|
71
52
|
}
|
|
@@ -74,7 +55,7 @@ export function createDefectsForRun(runId, targetOrg, failedTestFilter) {
|
|
|
74
55
|
const cycleQuery = runQuery(`SELECT Id, provar__Web_Browser__c, provar__Browser_Version__c, provar__Environment_Text__c
|
|
75
56
|
FROM provar__Test_Cycle__c
|
|
76
57
|
WHERE provar__Test_Plan_Schedule_Job__c = '${soqlEscape(jobId)}'
|
|
77
|
-
LIMIT 1`, targetOrg);
|
|
58
|
+
LIMIT 1`, targetOrg, sfPath);
|
|
78
59
|
const cycle = cycleQuery.result.records[0] ?? {};
|
|
79
60
|
const browser = safeText(cycle['provar__Web_Browser__c'], 100);
|
|
80
61
|
const browserVersion = safeText(cycle['provar__Browser_Version__c'], 100);
|
|
@@ -87,7 +68,7 @@ export function createDefectsForRun(runId, targetOrg, failedTestFilter) {
|
|
|
87
68
|
const execQuery = runQuery(`SELECT Id, provar__Test_Case__c, provar__Tester__c
|
|
88
69
|
FROM provar__Test_Execution__c
|
|
89
70
|
WHERE provar__Test_Cycle__c = '${soqlEscape(cycleId)}'
|
|
90
|
-
AND provar__Status__c = 'Failed'`, targetOrg);
|
|
71
|
+
AND provar__Status__c = 'Failed'`, targetOrg, sfPath);
|
|
91
72
|
if (execQuery.result.totalSize === 0) {
|
|
92
73
|
return { created: [], skipped: 0, message: 'No failed test executions found for this run.' };
|
|
93
74
|
}
|
|
@@ -108,7 +89,7 @@ export function createDefectsForRun(runId, targetOrg, failedTestFilter) {
|
|
|
108
89
|
WHERE provar__Test_Execution__c = '${soqlEscape(executionId)}'
|
|
109
90
|
AND provar__Result__c = 'Fail'
|
|
110
91
|
ORDER BY provar__Sequence_No__c ASC
|
|
111
|
-
LIMIT 1`, targetOrg);
|
|
92
|
+
LIMIT 1`, targetOrg, sfPath);
|
|
112
93
|
const step = stepQuery.result.records[0] ?? {};
|
|
113
94
|
const stepExecutionId = step['Id'] ?? '';
|
|
114
95
|
const stepId = String(step['provar__Test_Step__c'] ?? '');
|
|
@@ -143,17 +124,17 @@ export function createDefectsForRun(runId, targetOrg, failedTestFilter) {
|
|
|
143
124
|
const defectValues = `Name="TC Failure: ${safeText(testCaseId, 100)}" ` +
|
|
144
125
|
`provar__Description__c="${safeText(descLines, 2000)}" ` +
|
|
145
126
|
'provar__Status__c="Open"';
|
|
146
|
-
const defectId = createRecord('provar__Defect__c', defectValues, targetOrg);
|
|
127
|
+
const defectId = createRecord('provar__Defect__c', defectValues, targetOrg, sfPath);
|
|
147
128
|
// Step 5b: link TC → Defect
|
|
148
129
|
const tcDefectValues = `provar__Defect__c="${defectId}" ` +
|
|
149
130
|
`provar__Test_Case__c="${testCaseId}"` +
|
|
150
131
|
(stepId ? ` provar__Test_Step__c="${stepId}"` : '');
|
|
151
|
-
const tcDefectId = createRecord('provar__Test_Case_Defect__c', tcDefectValues, targetOrg);
|
|
132
|
+
const tcDefectId = createRecord('provar__Test_Case_Defect__c', tcDefectValues, targetOrg, sfPath);
|
|
152
133
|
// Step 5c: link Execution → Defect (with step execution if available)
|
|
153
134
|
const execDefectValues = `provar__Defect__c="${defectId}" ` +
|
|
154
135
|
`provar__Test_Execution__c="${executionId}"` +
|
|
155
136
|
(stepExecutionId ? ` provar__Test_Step_Execution__c="${stepExecutionId}"` : '');
|
|
156
|
-
const execDefectId = createRecord('provar__Test_Execution_Defect__c', execDefectValues, targetOrg);
|
|
137
|
+
const execDefectId = createRecord('provar__Test_Execution_Defect__c', execDefectValues, targetOrg, sfPath);
|
|
157
138
|
log('info', 'defect created', { defectId, tcDefectId, execDefectId, executionId });
|
|
158
139
|
created.push({ defectId, tcDefectId, execDefectId, executionId, testCaseId });
|
|
159
140
|
}
|
|
@@ -182,12 +163,18 @@ export function registerQualityHubDefectCreate(server) {
|
|
|
182
163
|
.array(z.string())
|
|
183
164
|
.optional()
|
|
184
165
|
.describe('Optional filter — list of Test_Case__c record ID substrings to restrict defect creation to specific failures'),
|
|
166
|
+
sf_path: z
|
|
167
|
+
.string()
|
|
168
|
+
.optional()
|
|
169
|
+
.describe('Path to the sf CLI executable when not in PATH ' +
|
|
170
|
+
'(e.g. "C:\\\\Program Files\\\\sf\\\\bin\\\\sf.cmd" for the Windows standalone installer). ' +
|
|
171
|
+
'Leave unset to use auto-discovery.'),
|
|
185
172
|
},
|
|
186
|
-
}, ({ run_id, target_org, failed_tests }) => {
|
|
173
|
+
}, ({ run_id, target_org, failed_tests, sf_path }) => {
|
|
187
174
|
const requestId = makeRequestId();
|
|
188
175
|
log('info', 'provar_qualityhub_defect_create', { requestId, run_id, target_org });
|
|
189
176
|
try {
|
|
190
|
-
const result = createDefectsForRun(run_id, target_org, failed_tests);
|
|
177
|
+
const result = createDefectsForRun(run_id, target_org, failed_tests, sf_path);
|
|
191
178
|
const response = { requestId, ...result };
|
|
192
179
|
return {
|
|
193
180
|
content: [{ type: 'text', text: JSON.stringify(response) }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defectTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/defectTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiCxD,kFAAkF;AAElF,SAAS,SAAS,CAAC,IAAc;
|
|
1
|
+
{"version":3,"file":"defectTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/defectTools.ts"],"names":[],"mappings":"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"}
|