@depup/angular__cli 21.2.7-depup.0 → 22.0.7-depup.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 +12 -9
- package/bin/ng.js +10 -7
- package/changes.json +28 -16
- package/lib/cli/index.js +3 -5
- package/lib/cli/index.js.map +1 -1
- package/lib/config/schema.json +18 -392
- package/lib/config/workspace-schema.d.ts +5 -1
- package/lib/config/workspace-schema.js +1 -1
- package/lib/config/workspace-schema.js.map +1 -1
- package/package.json +64 -53
- package/src/command-builder/command-module.js +9 -2
- package/src/command-builder/command-module.js.map +1 -1
- package/src/commands/add/cli.d.ts +3 -0
- package/src/commands/add/cli.js +121 -50
- package/src/commands/add/cli.js.map +1 -1
- package/src/commands/mcp/cli.js +0 -4
- package/src/commands/mcp/cli.js.map +1 -1
- package/src/commands/mcp/devserver.d.ts +1 -1
- package/src/commands/mcp/devserver.js +5 -8
- package/src/commands/mcp/devserver.js.map +1 -1
- package/src/commands/mcp/host.d.ts +14 -12
- package/src/commands/mcp/host.js +139 -9
- package/src/commands/mcp/host.js.map +1 -1
- package/src/commands/mcp/mcp-server.d.ts +2 -160
- package/src/commands/mcp/mcp-server.js +56 -36
- package/src/commands/mcp/mcp-server.js.map +1 -1
- package/src/commands/mcp/resources/ai-tutor.md +5 -7
- package/src/commands/mcp/resources/best-practices.md +4 -2
- package/src/commands/mcp/tools/best-practices.js +9 -17
- package/src/commands/mcp/tools/best-practices.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-start.js +1 -0
- package/src/commands/mcp/tools/devserver/devserver-start.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-stop.js +1 -0
- package/src/commands/mcp/tools/devserver/devserver-stop.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js +1 -0
- package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js.map +1 -1
- package/src/commands/mcp/tools/doc-search.js +11 -33
- package/src/commands/mcp/tools/doc-search.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.d.ts +2 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.js +5 -8
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.d.ts +3 -2
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.js +8 -8
- package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/prompts.js +4 -4
- package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.d.ts +2 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.js +2 -3
- package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.js.map +1 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.d.ts +2 -1
- package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.js +31 -44
- package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.js.map +1 -1
- package/src/commands/mcp/tools/projects.d.ts +1 -0
- package/src/commands/mcp/tools/projects.js +37 -19
- package/src/commands/mcp/tools/projects.js.map +1 -1
- package/src/commands/mcp/tools/run-target/build-target-strategy.d.ts +14 -0
- package/src/commands/mcp/tools/run-target/build-target-strategy.js +53 -0
- package/src/commands/mcp/tools/run-target/build-target-strategy.js.map +1 -0
- package/src/commands/mcp/tools/run-target/generic-target-strategy.d.ts +14 -0
- package/src/commands/mcp/tools/run-target/generic-target-strategy.js +63 -0
- package/src/commands/mcp/tools/run-target/generic-target-strategy.js.map +1 -0
- package/src/commands/mcp/tools/run-target/options-serializer.d.ts +13 -0
- package/src/commands/mcp/tools/run-target/options-serializer.js +41 -0
- package/src/commands/mcp/tools/run-target/options-serializer.js.map +1 -0
- package/src/commands/mcp/tools/run-target/run-target.d.ts +34 -0
- package/src/commands/mcp/tools/run-target/run-target.js +69 -0
- package/src/commands/mcp/tools/run-target/run-target.js.map +1 -0
- package/src/commands/mcp/tools/run-target/strategy.d.ts +15 -0
- package/src/commands/mcp/tools/run-target/strategy.js +10 -0
- package/src/commands/mcp/tools/run-target/strategy.js.map +1 -0
- package/src/commands/mcp/tools/run-target/types.d.ts +39 -0
- package/src/commands/mcp/tools/run-target/types.js +41 -0
- package/src/commands/mcp/tools/run-target/types.js.map +1 -0
- package/src/commands/mcp/tools/run-target/unit-test-strategy.d.ts +14 -0
- package/src/commands/mcp/tools/run-target/unit-test-strategy.js +56 -0
- package/src/commands/mcp/tools/run-target/unit-test-strategy.js.map +1 -0
- package/src/commands/mcp/workspace-utils.d.ts +2 -1
- package/src/commands/mcp/workspace-utils.js +45 -3
- package/src/commands/mcp/workspace-utils.js.map +1 -1
- package/src/commands/update/cli.js +4 -3
- package/src/commands/update/cli.js.map +1 -1
- package/src/commands/update/schematic/index.js +262 -92
- package/src/commands/update/schematic/index.js.map +1 -1
- package/src/commands/update/schematic/schema.d.ts +4 -0
- package/src/commands/update/schematic/schema.js.map +1 -1
- package/src/commands/update/schematic/schema.json +4 -0
- package/src/commands/update/utilities/cli-version.js +1 -1
- package/src/commands/update/utilities/cli-version.js.map +1 -1
- package/src/commands/update/utilities/migration.js +5 -2
- package/src/commands/update/utilities/migration.js.map +1 -1
- package/src/commands/version/version-info.js +2 -8
- package/src/commands/version/version-info.js.map +1 -1
- package/src/package-managers/package-manager-descriptor.d.ts +15 -1
- package/src/package-managers/package-manager-descriptor.js +29 -0
- package/src/package-managers/package-manager-descriptor.js.map +1 -1
- package/src/package-managers/package-manager.d.ts +4 -0
- package/src/package-managers/package-manager.js +218 -36
- package/src/package-managers/package-manager.js.map +1 -1
- package/src/package-managers/parsers.d.ts +3 -21
- package/src/package-managers/parsers.js +83 -33
- package/src/package-managers/parsers.js.map +1 -1
- package/src/utilities/completion.js +1 -1
- package/src/utilities/completion.js.map +1 -1
- package/src/utilities/config.js +1 -2
- package/src/utilities/config.js.map +1 -1
- package/src/utilities/node-version.d.ts +21 -0
- package/src/utilities/node-version.js +65 -0
- package/src/utilities/node-version.js.map +1 -0
- package/src/utilities/package-metadata.d.ts +0 -10
- package/src/utilities/package-metadata.js +0 -62
- package/src/utilities/package-metadata.js.map +1 -1
- package/src/utilities/prompt.js +1 -1
- package/src/utilities/prompt.js.map +1 -1
- package/src/utilities/version.js +1 -1
- package/lib/code-examples.db +0 -0
- package/src/commands/mcp/tools/build.d.ts +0 -37
- package/src/commands/mcp/tools/build.js +0 -89
- package/src/commands/mcp/tools/build.js.map +0 -1
- package/src/commands/mcp/tools/e2e.d.ts +0 -44
- package/src/commands/mcp/tools/e2e.js +0 -87
- package/src/commands/mcp/tools/e2e.js.map +0 -1
- package/src/commands/mcp/tools/examples/database-discovery.d.ts +0 -34
- package/src/commands/mcp/tools/examples/database-discovery.js +0 -87
- package/src/commands/mcp/tools/examples/database-discovery.js.map +0 -1
- package/src/commands/mcp/tools/examples/database.d.ts +0 -35
- package/src/commands/mcp/tools/examples/database.js +0 -125
- package/src/commands/mcp/tools/examples/database.js.map +0 -1
- package/src/commands/mcp/tools/examples/index.d.ts +0 -26
- package/src/commands/mcp/tools/examples/index.js +0 -149
- package/src/commands/mcp/tools/examples/index.js.map +0 -1
- package/src/commands/mcp/tools/examples/query-escaper.d.ts +0 -20
- package/src/commands/mcp/tools/examples/query-escaper.js +0 -68
- package/src/commands/mcp/tools/examples/query-escaper.js.map +0 -1
- package/src/commands/mcp/tools/examples/runtime-database.d.ts +0 -10
- package/src/commands/mcp/tools/examples/runtime-database.js +0 -192
- package/src/commands/mcp/tools/examples/runtime-database.js.map +0 -1
- package/src/commands/mcp/tools/examples/schemas.d.ts +0 -29
- package/src/commands/mcp/tools/examples/schemas.js +0 -101
- package/src/commands/mcp/tools/examples/schemas.js.map +0 -1
- package/src/commands/mcp/tools/examples/utils.d.ts +0 -14
- package/src/commands/mcp/tools/examples/utils.js +0 -31
- package/src/commands/mcp/tools/examples/utils.js.map +0 -1
- package/src/commands/mcp/tools/modernize.d.ts +0 -43
- package/src/commands/mcp/tools/modernize.js +0 -165
- package/src/commands/mcp/tools/modernize.js.map +0 -1
- package/src/commands/mcp/tools/test.d.ts +0 -35
- package/src/commands/mcp/tools/test.js +0 -79
- package/src/commands/mcp/tools/test.js.map +0 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import type
|
|
8
|
+
import { type Host } from './host';
|
|
9
9
|
export type BuildStatus = 'success' | 'failure' | 'unknown';
|
|
10
10
|
/**
|
|
11
11
|
* An Angular development server managed by the MCP server.
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.LocalDevserver = void 0;
|
|
11
11
|
exports.getDevserverKey = getDevserverKey;
|
|
12
12
|
exports.createDevServerNotFoundError = createDevServerNotFoundError;
|
|
13
|
+
const host_1 = require("./host");
|
|
13
14
|
// Log messages that we want to catch to identify the build status.
|
|
14
15
|
const BUILD_SUCCEEDED_MESSAGE = 'Application bundle generation complete.';
|
|
15
16
|
const BUILD_FAILED_MESSAGE = 'Application bundle generation failed.';
|
|
@@ -51,17 +52,13 @@ class LocalDevserver {
|
|
|
51
52
|
args.push(this.project);
|
|
52
53
|
}
|
|
53
54
|
args.push(`--port=${this.port}`);
|
|
54
|
-
this.devserverProcess = this.host.
|
|
55
|
+
this.devserverProcess = this.host.startNgProcess(args, {
|
|
55
56
|
stdio: 'pipe',
|
|
56
57
|
cwd: this.workspacePath,
|
|
57
58
|
});
|
|
58
|
-
this.devserverProcess.stdout
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this.devserverProcess.stderr?.on('data', (data) => {
|
|
62
|
-
this.addLog(data.toString());
|
|
63
|
-
});
|
|
64
|
-
this.devserverProcess.stderr?.on('close', () => {
|
|
59
|
+
(0, host_1.processStreamLines)(this.devserverProcess.stdout, (line) => this.addLog(line));
|
|
60
|
+
(0, host_1.processStreamLines)(this.devserverProcess.stderr, (line) => this.addLog(line));
|
|
61
|
+
this.devserverProcess.on('close', () => {
|
|
65
62
|
this.stop();
|
|
66
63
|
});
|
|
67
64
|
this.buildInProgress = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devserver.js","sourceRoot":"","sources":["devserver.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"devserver.js","sourceRoot":"","sources":["devserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export interface Host {
|
|
|
37
37
|
* @param encoding The encoding to use.
|
|
38
38
|
* @returns A promise that resolves to the file content.
|
|
39
39
|
*/
|
|
40
|
-
readFile(path: string, encoding:
|
|
40
|
+
readFile(path: string, encoding: BufferEncoding): Promise<string>;
|
|
41
41
|
/**
|
|
42
42
|
* Finds files matching a glob pattern.
|
|
43
43
|
* @param pattern The glob pattern.
|
|
@@ -51,22 +51,14 @@ export interface Host {
|
|
|
51
51
|
parentPath: string;
|
|
52
52
|
isFile(): boolean;
|
|
53
53
|
}>;
|
|
54
|
-
/**
|
|
55
|
-
* Resolves a module request from a given path.
|
|
56
|
-
* @param request The module request to resolve.
|
|
57
|
-
* @param from The path from which to resolve the request.
|
|
58
|
-
* @returns The resolved module path.
|
|
59
|
-
*/
|
|
60
|
-
resolveModule(request: string, from: string): string;
|
|
61
54
|
/**
|
|
62
55
|
* Spawns a child process and returns a promise that resolves with the process's
|
|
63
56
|
* output or rejects with a structured error.
|
|
64
|
-
* @param command The command to run.
|
|
65
57
|
* @param args The arguments to pass to the command.
|
|
66
58
|
* @param options Options for the child process.
|
|
67
59
|
* @returns A promise that resolves with the standard output and standard error of the command.
|
|
68
60
|
*/
|
|
69
|
-
|
|
61
|
+
executeNgCommand(args: readonly string[], options?: {
|
|
70
62
|
timeout?: number;
|
|
71
63
|
stdio?: 'pipe' | 'ignore';
|
|
72
64
|
cwd?: string;
|
|
@@ -76,12 +68,11 @@ export interface Host {
|
|
|
76
68
|
}>;
|
|
77
69
|
/**
|
|
78
70
|
* Spawns a long-running child process and returns the `ChildProcess` object.
|
|
79
|
-
* @param command The command to run.
|
|
80
71
|
* @param args The arguments to pass to the command.
|
|
81
72
|
* @param options Options for the child process.
|
|
82
73
|
* @returns The spawned `ChildProcess` instance.
|
|
83
74
|
*/
|
|
84
|
-
|
|
75
|
+
startNgProcess(args: readonly string[], options?: {
|
|
85
76
|
stdio?: 'pipe' | 'ignore';
|
|
86
77
|
cwd?: string;
|
|
87
78
|
env?: Record<string, string>;
|
|
@@ -94,8 +85,19 @@ export interface Host {
|
|
|
94
85
|
* Checks whether a TCP port is available on the system.
|
|
95
86
|
*/
|
|
96
87
|
isPortAvailable(port: number): Promise<boolean>;
|
|
88
|
+
/**
|
|
89
|
+
* Sets the allowed roots for this host.
|
|
90
|
+
*/
|
|
91
|
+
setRoots(roots: string[]): void;
|
|
97
92
|
}
|
|
98
93
|
/**
|
|
99
94
|
* A concrete implementation of the `Host` interface that runs on a local workspace.
|
|
100
95
|
*/
|
|
101
96
|
export declare const LocalWorkspaceHost: Host;
|
|
97
|
+
export declare function createRootRestrictedHost(baseHost: Host, initialRoots?: string[]): Host;
|
|
98
|
+
/**
|
|
99
|
+
* Binds a readline interface to the given stream to process each line.
|
|
100
|
+
* Sanitizes lines by removing VT/ANSI control characters, trimming trailing whitespace,
|
|
101
|
+
* and preserving leading indentation.
|
|
102
|
+
*/
|
|
103
|
+
export declare function processStreamLines(stream: NodeJS.ReadableStream | undefined | null, lineCallback: (line: string) => void): void;
|
package/src/commands/mcp/host.js
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.LocalWorkspaceHost = exports.CommandError = void 0;
|
|
11
|
+
exports.createRootRestrictedHost = createRootRestrictedHost;
|
|
12
|
+
exports.processStreamLines = processStreamLines;
|
|
11
13
|
/**
|
|
12
14
|
* @fileoverview
|
|
13
15
|
* This file defines an abstraction layer for operating-system or file-system operations, such as
|
|
@@ -16,9 +18,13 @@ exports.LocalWorkspaceHost = exports.CommandError = void 0;
|
|
|
16
18
|
*/
|
|
17
19
|
const fs_1 = require("fs");
|
|
18
20
|
const node_child_process_1 = require("node:child_process");
|
|
21
|
+
const node_fs_1 = require("node:fs");
|
|
19
22
|
const promises_1 = require("node:fs/promises");
|
|
20
23
|
const node_module_1 = require("node:module");
|
|
21
24
|
const node_net_1 = require("node:net");
|
|
25
|
+
const node_path_1 = require("node:path");
|
|
26
|
+
const node_readline_1 = require("node:readline");
|
|
27
|
+
const node_util_1 = require("node:util");
|
|
22
28
|
/**
|
|
23
29
|
* An error thrown when a command fails to execute.
|
|
24
30
|
*/
|
|
@@ -32,6 +38,29 @@ class CommandError extends Error {
|
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
40
|
exports.CommandError = CommandError;
|
|
41
|
+
function resolveNgCommand(args, cwd) {
|
|
42
|
+
const defaultCommand = { command: 'ng', args };
|
|
43
|
+
if (!cwd) {
|
|
44
|
+
return defaultCommand;
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const workspaceRequire = (0, node_module_1.createRequire)((0, node_path_1.join)(cwd, 'package.json'));
|
|
48
|
+
const pkgJsonPath = workspaceRequire.resolve('@angular/cli/package.json');
|
|
49
|
+
const pkgJson = workspaceRequire(pkgJsonPath);
|
|
50
|
+
const binPath = typeof pkgJson.bin === 'string' ? pkgJson.bin : pkgJson.bin?.['ng'];
|
|
51
|
+
if (binPath) {
|
|
52
|
+
const ngJsPath = (0, node_path_1.resolve)((0, node_path_1.dirname)(pkgJsonPath), binPath);
|
|
53
|
+
return {
|
|
54
|
+
command: process.execPath,
|
|
55
|
+
args: [ngJsPath, ...args],
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Failed to resolve the CLI binary, fall back to assuming `ng` is on PATH.
|
|
61
|
+
}
|
|
62
|
+
return defaultCommand;
|
|
63
|
+
}
|
|
35
64
|
/**
|
|
36
65
|
* A concrete implementation of the `Host` interface that runs on a local workspace.
|
|
37
66
|
*/
|
|
@@ -42,13 +71,11 @@ exports.LocalWorkspaceHost = {
|
|
|
42
71
|
glob: function (pattern, options) {
|
|
43
72
|
return (0, promises_1.glob)(pattern, { ...options, withFileTypes: true });
|
|
44
73
|
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
},
|
|
48
|
-
runCommand: async (command, args, options = {}) => {
|
|
74
|
+
executeNgCommand: async (args, options = {}) => {
|
|
75
|
+
const resolved = resolveNgCommand(args, options.cwd);
|
|
49
76
|
const signal = options.timeout ? AbortSignal.timeout(options.timeout) : undefined;
|
|
50
77
|
return new Promise((resolve, reject) => {
|
|
51
|
-
const childProcess = (0, node_child_process_1.spawn)(command, args, {
|
|
78
|
+
const childProcess = (0, node_child_process_1.spawn)(resolved.command, resolved.args, {
|
|
52
79
|
shell: false,
|
|
53
80
|
stdio: options.stdio ?? 'pipe',
|
|
54
81
|
signal,
|
|
@@ -59,8 +86,8 @@ exports.LocalWorkspaceHost = {
|
|
|
59
86
|
},
|
|
60
87
|
});
|
|
61
88
|
const logs = [];
|
|
62
|
-
childProcess.stdout
|
|
63
|
-
childProcess.stderr
|
|
89
|
+
processStreamLines(childProcess.stdout, (line) => logs.push(line));
|
|
90
|
+
processStreamLines(childProcess.stderr, (line) => logs.push(line));
|
|
64
91
|
childProcess.on('close', (code) => {
|
|
65
92
|
if (code === 0) {
|
|
66
93
|
resolve({ logs });
|
|
@@ -81,8 +108,9 @@ exports.LocalWorkspaceHost = {
|
|
|
81
108
|
});
|
|
82
109
|
});
|
|
83
110
|
},
|
|
84
|
-
|
|
85
|
-
|
|
111
|
+
startNgProcess(args, options = {}) {
|
|
112
|
+
const resolved = resolveNgCommand(args, options.cwd);
|
|
113
|
+
return (0, node_child_process_1.spawn)(resolved.command, resolved.args, {
|
|
86
114
|
shell: false,
|
|
87
115
|
stdio: options.stdio ?? 'pipe',
|
|
88
116
|
cwd: options.cwd,
|
|
@@ -125,5 +153,107 @@ exports.LocalWorkspaceHost = {
|
|
|
125
153
|
});
|
|
126
154
|
});
|
|
127
155
|
},
|
|
156
|
+
setRoots(roots) {
|
|
157
|
+
// LocalWorkspaceHost does not enforce roots, so this is a no-op.
|
|
158
|
+
},
|
|
128
159
|
};
|
|
160
|
+
function createRootRestrictedHost(baseHost, initialRoots = [process.cwd()]) {
|
|
161
|
+
let roots = initialRoots;
|
|
162
|
+
function checkPath(path) {
|
|
163
|
+
const resolvedPath = (0, node_path_1.resolve)(path);
|
|
164
|
+
let realPath;
|
|
165
|
+
try {
|
|
166
|
+
realPath = (0, node_fs_1.realpathSync)(resolvedPath);
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
if (e.code === 'ENOENT') {
|
|
170
|
+
// Path does not exist. Find the first existing ancestor.
|
|
171
|
+
let current = resolvedPath;
|
|
172
|
+
while (current) {
|
|
173
|
+
try {
|
|
174
|
+
realPath = (0, node_fs_1.realpathSync)(current);
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
if (err.code !== 'ENOENT') {
|
|
179
|
+
throw err;
|
|
180
|
+
}
|
|
181
|
+
const parent = (0, node_path_1.dirname)(current);
|
|
182
|
+
if (parent === current) {
|
|
183
|
+
// Reached filesystem root
|
|
184
|
+
throw err;
|
|
185
|
+
}
|
|
186
|
+
current = parent;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
throw e;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const isAllowed = roots.some((root) => {
|
|
195
|
+
const rel = (0, node_path_1.relative)(root, realPath);
|
|
196
|
+
return !rel.startsWith('..') && !(0, node_path_1.isAbsolute)(rel);
|
|
197
|
+
});
|
|
198
|
+
if (!isAllowed) {
|
|
199
|
+
throw new Error(`Access denied: path '${path}' is outside allowed roots.`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return {
|
|
203
|
+
...baseHost,
|
|
204
|
+
setRoots(newRoots) {
|
|
205
|
+
roots = newRoots;
|
|
206
|
+
},
|
|
207
|
+
stat(path) {
|
|
208
|
+
checkPath(path);
|
|
209
|
+
return baseHost.stat(path);
|
|
210
|
+
},
|
|
211
|
+
existsSync(path) {
|
|
212
|
+
checkPath(path);
|
|
213
|
+
return baseHost.existsSync(path);
|
|
214
|
+
},
|
|
215
|
+
readFile(path, encoding) {
|
|
216
|
+
checkPath(path);
|
|
217
|
+
return baseHost.readFile(path, encoding);
|
|
218
|
+
},
|
|
219
|
+
glob(pattern, options) {
|
|
220
|
+
if (pattern.includes('..')) {
|
|
221
|
+
throw new Error(`Access denied: glob pattern '${pattern}' contains path traversal sequences.`);
|
|
222
|
+
}
|
|
223
|
+
checkPath(options.cwd);
|
|
224
|
+
const firstWildcardIndex = pattern.search(/[*?[{]/);
|
|
225
|
+
const basePath = firstWildcardIndex >= 0 ? pattern.substring(0, firstWildcardIndex) : pattern;
|
|
226
|
+
const targetDir = (0, node_path_1.resolve)(options.cwd, basePath);
|
|
227
|
+
checkPath(targetDir);
|
|
228
|
+
return baseHost.glob(pattern, options);
|
|
229
|
+
},
|
|
230
|
+
executeNgCommand(args, options = {}) {
|
|
231
|
+
const effectiveCwd = options?.cwd ?? process.cwd();
|
|
232
|
+
checkPath(effectiveCwd);
|
|
233
|
+
return baseHost.executeNgCommand(args, options);
|
|
234
|
+
},
|
|
235
|
+
startNgProcess(args, options = {}) {
|
|
236
|
+
const effectiveCwd = options?.cwd ?? process.cwd();
|
|
237
|
+
checkPath(effectiveCwd);
|
|
238
|
+
return baseHost.startNgProcess(args, options);
|
|
239
|
+
},
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Binds a readline interface to the given stream to process each line.
|
|
244
|
+
* Sanitizes lines by removing VT/ANSI control characters, trimming trailing whitespace,
|
|
245
|
+
* and preserving leading indentation.
|
|
246
|
+
*/
|
|
247
|
+
function processStreamLines(stream, lineCallback) {
|
|
248
|
+
if (!stream) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const rl = (0, node_readline_1.createInterface)({ input: stream, terminal: false });
|
|
252
|
+
rl.on('line', (line) => {
|
|
253
|
+
const cleanLine = (0, node_util_1.stripVTControlCharacters)(line).trimEnd();
|
|
254
|
+
if (cleanLine.length > 0) {
|
|
255
|
+
lineCallback(cleanLine);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
}
|
|
129
259
|
//# sourceMappingURL=host.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["host.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["host.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,171 +12,13 @@ import { type AnyMcpToolDeclaration } from './tools/tool-registry';
|
|
|
12
12
|
* The set of tools that are available but not enabled by default.
|
|
13
13
|
* These tools are considered experimental and may have limitations.
|
|
14
14
|
*/
|
|
15
|
-
export declare const EXPERIMENTAL_TOOLS: readonly [
|
|
16
|
-
configuration: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
18
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
19
|
-
}, {
|
|
20
|
-
status: import("zod").ZodEnum<{
|
|
21
|
-
success: "success";
|
|
22
|
-
failure: "failure";
|
|
23
|
-
}>;
|
|
24
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
25
|
-
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
26
|
-
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
27
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
28
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
29
|
-
}, {
|
|
30
|
-
status: import("zod").ZodEnum<{
|
|
31
|
-
success: "success";
|
|
32
|
-
failure: "failure";
|
|
33
|
-
}>;
|
|
34
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
35
|
-
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
36
|
-
transformations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
|
|
37
|
-
[x: string]: string;
|
|
38
|
-
}>>>;
|
|
39
|
-
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
40
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
41
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
42
|
-
}, {
|
|
43
|
-
instructions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
44
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
45
|
-
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
46
|
-
filter: import("zod").ZodOptional<import("zod").ZodString>;
|
|
47
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
48
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
49
|
-
}, {
|
|
50
|
-
status: import("zod").ZodEnum<{
|
|
51
|
-
success: "success";
|
|
52
|
-
failure: "failure";
|
|
53
|
-
}>;
|
|
54
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
55
|
-
}>, ...(import("./tools/tool-registry").McpToolDeclaration<{
|
|
56
|
-
port: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
57
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
58
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
59
|
-
}, {
|
|
60
|
-
message: import("zod").ZodString;
|
|
61
|
-
address: import("zod").ZodOptional<import("zod").ZodString>;
|
|
62
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
63
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
64
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
65
|
-
}, {
|
|
66
|
-
message: import("zod").ZodString;
|
|
67
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
68
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
69
|
-
timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
70
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
71
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
72
|
-
}, {
|
|
73
|
-
status: import("zod").ZodEnum<{
|
|
74
|
-
success: "success";
|
|
75
|
-
timeout: "timeout";
|
|
76
|
-
failure: "failure";
|
|
77
|
-
unknown: "unknown";
|
|
78
|
-
}>;
|
|
79
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
80
|
-
}>)[]];
|
|
15
|
+
export declare const EXPERIMENTAL_TOOLS: readonly AnyMcpToolDeclaration[];
|
|
81
16
|
/**
|
|
82
17
|
* Experimental tools that are grouped together under a single name.
|
|
83
18
|
*
|
|
84
19
|
* Used for enabling them as a group.
|
|
85
20
|
*/
|
|
86
|
-
export declare const EXPERIMENTAL_TOOL_GROUPS:
|
|
87
|
-
all: readonly [import("./tools/tool-registry").McpToolDeclaration<{
|
|
88
|
-
configuration: import("zod").ZodOptional<import("zod").ZodString>;
|
|
89
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
90
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
91
|
-
}, {
|
|
92
|
-
status: import("zod").ZodEnum<{
|
|
93
|
-
success: "success";
|
|
94
|
-
failure: "failure";
|
|
95
|
-
}>;
|
|
96
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
97
|
-
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
98
|
-
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
99
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
100
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
101
|
-
}, {
|
|
102
|
-
status: import("zod").ZodEnum<{
|
|
103
|
-
success: "success";
|
|
104
|
-
failure: "failure";
|
|
105
|
-
}>;
|
|
106
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
107
|
-
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
108
|
-
transformations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
|
|
109
|
-
[x: string]: string;
|
|
110
|
-
}>>>;
|
|
111
|
-
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
112
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
113
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
114
|
-
}, {
|
|
115
|
-
instructions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
116
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
117
|
-
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
118
|
-
filter: import("zod").ZodOptional<import("zod").ZodString>;
|
|
119
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
120
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
121
|
-
}, {
|
|
122
|
-
status: import("zod").ZodEnum<{
|
|
123
|
-
success: "success";
|
|
124
|
-
failure: "failure";
|
|
125
|
-
}>;
|
|
126
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
127
|
-
}>, ...(import("./tools/tool-registry").McpToolDeclaration<{
|
|
128
|
-
port: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
129
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
130
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
131
|
-
}, {
|
|
132
|
-
message: import("zod").ZodString;
|
|
133
|
-
address: import("zod").ZodOptional<import("zod").ZodString>;
|
|
134
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
135
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
136
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
137
|
-
}, {
|
|
138
|
-
message: import("zod").ZodString;
|
|
139
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
140
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
141
|
-
timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
142
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
143
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
144
|
-
}, {
|
|
145
|
-
status: import("zod").ZodEnum<{
|
|
146
|
-
success: "success";
|
|
147
|
-
timeout: "timeout";
|
|
148
|
-
failure: "failure";
|
|
149
|
-
unknown: "unknown";
|
|
150
|
-
}>;
|
|
151
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
152
|
-
}>)[]];
|
|
153
|
-
devserver: (import("./tools/tool-registry").McpToolDeclaration<{
|
|
154
|
-
port: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
155
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
156
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
157
|
-
}, {
|
|
158
|
-
message: import("zod").ZodString;
|
|
159
|
-
address: import("zod").ZodOptional<import("zod").ZodString>;
|
|
160
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
161
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
162
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
163
|
-
}, {
|
|
164
|
-
message: import("zod").ZodString;
|
|
165
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
166
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
167
|
-
timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
168
|
-
workspace: import("zod").ZodOptional<import("zod").ZodString>;
|
|
169
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
170
|
-
}, {
|
|
171
|
-
status: import("zod").ZodEnum<{
|
|
172
|
-
success: "success";
|
|
173
|
-
timeout: "timeout";
|
|
174
|
-
failure: "failure";
|
|
175
|
-
unknown: "unknown";
|
|
176
|
-
}>;
|
|
177
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
178
|
-
}>)[];
|
|
179
|
-
};
|
|
21
|
+
export declare const EXPERIMENTAL_TOOL_GROUPS: Record<string, readonly AnyMcpToolDeclaration[]>;
|
|
180
22
|
export declare function createMcpServer(options: {
|
|
181
23
|
workspace?: AngularWorkspace;
|
|
182
24
|
readOnly?: boolean;
|