@depup/angular__cli 21.2.7-depup.0 → 22.0.7-depup.1
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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["cli.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,wEAAiF;AAEjF,yEAG8C;AAC9C,6CAA4C;AAC5C,6CAA6F;AAE7F,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;AAEF,MAAqB,gBAAiB,SAAQ,8BAAa;IACzD,OAAO,GAAG,KAAK,CAAC;IAChB,QAAQ,GAAG,KAAc,CAAC;IAC1B,mBAAmB,GAAG,SAAS,CAAC;IAEhC,OAAO,CAAC,UAAgB;QACtB,OAAO,UAAU;aACd,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,gCAAgC;SAC3C,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YACpB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,0DAA0D;SACrE,CAAC;aACD,MAAM,CAAC,mBAAmB,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,8BAA8B;YACxC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["cli.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,wEAAiF;AAEjF,yEAG8C;AAC9C,6CAA4C;AAC5C,6CAA6F;AAE7F,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;AAEF,MAAqB,gBAAiB,SAAQ,8BAAa;IACzD,OAAO,GAAG,KAAK,CAAC;IAChB,QAAQ,GAAG,KAAc,CAAC;IAC1B,mBAAmB,GAAG,SAAS,CAAC;IAEhC,OAAO,CAAC,UAAgB;QACtB,OAAO,UAAU;aACd,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,gCAAgC;SAC3C,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YACpB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,0DAA0D;SACrE,CAAC;aACD,MAAM,CAAC,mBAAmB,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,8BAA8B;YACxC,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAIT;QACC,IAAI,IAAA,WAAK,GAAE,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAE9C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAe,EAClC;YACE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,iBAAiB,EAAE,OAAO,CAAC,gBAAgB;SAC5C,EACD,IAAI,CAAC,OAAO,CAAC,MAAM,CACpB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;CACF;AAjDD,mCAiDC"}
|
|
@@ -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":";AAAA;;;;;;GAMG;;;AAiKH,0CAEC;AAED,oEAeC;AAjLD,iCAAuD;AAEvD,mEAAmE;AAEnE,MAAM,uBAAuB,GAAG,yCAAyC,CAAC;AAC1E,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AACrE,MAAM,2BAA2B,GAAG,kDAAkD,CAAC;AACvF,MAAM,8BAA8B,GAAG,mCAAmC,CAAC;AAC3E,MAAM,gCAAgC,GAAG,mCAAmC,CAAC;AAE7E,MAAM,oBAAoB,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC9D,MAAM,kBAAkB,GAAG;IACzB,uBAAuB;IACvB,oBAAoB;IACpB,2BAA2B;IAC3B,gCAAgC;CACjC,CAAC;AAmDF;;GAEG;AACH,MAAa,cAAc;IAChB,IAAI,CAAO;IACX,IAAI,CAAS;IACb,aAAa,CAAS;IACtB,OAAO,CAAS;IAEjB,gBAAgB,GAAwB,IAAI,CAAC;IAC7C,UAAU,GAAa,EAAE,CAAC;IAC1B,eAAe,GAAG,KAAK,CAAC;IACxB,wBAAwB,GAAY,SAAS,CAAC;IAC9C,iBAAiB,GAAgB,SAAS,CAAC;IAEnD,YAAY,EACV,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,OAAO,GAMR;QACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YACrD,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,IAAI,CAAC,aAAa;SACxB,CAAC,CAAC;QACH,IAAA,yBAAkB,EAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAA,yBAAkB,EAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAEO,MAAM,CAAC,GAAW;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,4EAA4E;YAC5E,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,iBAAiB;YAC9B,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF;AAtFD,wCAsFC;AAED,SAAgB,eAAe,CAAC,aAAqB,EAAE,WAAmB;IACxE,OAAO,GAAG,aAAa,IAAI,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,SAAgB,4BAA4B,CAC1C,UAAmE;IAEnE,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SACnD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,MAAM,CAAC,OAAO,wBAAwB,MAAM,CAAC,aAAa,GAAG,CAAC;SAC5F,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,IAAI,KAAK,CACd,qDAAqD,cAAc,IAAI;QACrE,6DAA6D,CAChE,CAAC;AACJ,CAAC"}
|
|
@@ -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;
|