@angular/cli 21.1.0-next.3 → 21.1.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE +1 -1
  2. package/lib/code-examples.db +0 -0
  3. package/package.json +17 -17
  4. package/src/commands/mcp/devserver.d.ts +0 -1
  5. package/src/commands/mcp/devserver.js +0 -4
  6. package/src/commands/mcp/devserver.js.map +1 -1
  7. package/src/commands/mcp/mcp-server.d.ts +105 -30
  8. package/src/commands/mcp/mcp-server.js +19 -10
  9. package/src/commands/mcp/mcp-server.js.map +1 -1
  10. package/src/commands/mcp/tools/build.js +1 -10
  11. package/src/commands/mcp/tools/build.js.map +1 -1
  12. package/src/commands/mcp/tools/devserver/devserver-start.d.ts +8 -0
  13. package/src/commands/mcp/tools/devserver/devserver-start.js +10 -5
  14. package/src/commands/mcp/tools/devserver/devserver-start.js.map +1 -1
  15. package/src/commands/mcp/tools/devserver/devserver-stop.d.ts +9 -0
  16. package/src/commands/mcp/tools/devserver/devserver-stop.js +23 -6
  17. package/src/commands/mcp/tools/devserver/devserver-stop.js.map +1 -1
  18. package/src/commands/mcp/tools/devserver/devserver-wait-for-build.d.ts +9 -0
  19. package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js +23 -4
  20. package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js.map +1 -1
  21. package/src/commands/mcp/tools/e2e.d.ts +43 -0
  22. package/src/commands/mcp/tools/e2e.js +87 -0
  23. package/src/commands/mcp/tools/e2e.js.map +1 -0
  24. package/src/commands/mcp/tools/modernize.js +1 -5
  25. package/src/commands/mcp/tools/modernize.js.map +1 -1
  26. package/src/commands/mcp/tools/test.d.ts +35 -0
  27. package/src/commands/mcp/tools/test.js +78 -0
  28. package/src/commands/mcp/tools/test.js.map +1 -0
  29. package/src/commands/mcp/utils.d.ts +23 -0
  30. package/src/commands/mcp/utils.js +50 -4
  31. package/src/commands/mcp/utils.js.map +1 -1
  32. package/src/commands/update/cli.js +2 -2
  33. package/src/commands/update/cli.js.map +1 -1
  34. package/src/package-managers/package-manager-descriptor.d.ts +5 -1
  35. package/src/package-managers/package-manager-descriptor.js +5 -3
  36. package/src/package-managers/package-manager-descriptor.js.map +1 -1
  37. package/src/package-managers/package-manager.d.ts +1 -0
  38. package/src/package-managers/package-manager.js +1 -0
  39. package/src/package-managers/package-manager.js.map +1 -1
  40. package/src/package-managers/parsers.js +2 -1
  41. package/src/package-managers/parsers.js.map +1 -1
  42. package/src/utilities/version.js +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
3
+ Copyright (c) 2010-2026 Google LLC. https://angular.dev/license
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cli",
3
- "version": "21.1.0-next.3",
3
+ "version": "21.1.0-rc.0",
4
4
  "description": "CLI tool for Angular",
5
5
  "main": "lib/cli/index.js",
6
6
  "bin": {
@@ -25,15 +25,15 @@
25
25
  },
26
26
  "homepage": "https://github.com/angular/angular-cli",
27
27
  "dependencies": {
28
- "@angular-devkit/architect": "0.2101.0-next.3",
29
- "@angular-devkit/core": "21.1.0-next.3",
30
- "@angular-devkit/schematics": "21.1.0-next.3",
28
+ "@angular-devkit/architect": "0.2101.0-rc.0",
29
+ "@angular-devkit/core": "21.1.0-rc.0",
30
+ "@angular-devkit/schematics": "21.1.0-rc.0",
31
31
  "@inquirer/prompts": "7.10.1",
32
32
  "@listr2/prompt-adapter-inquirer": "3.0.5",
33
- "@modelcontextprotocol/sdk": "1.25.0",
34
- "@schematics/angular": "21.1.0-next.3",
33
+ "@modelcontextprotocol/sdk": "1.25.2",
34
+ "@schematics/angular": "21.1.0-rc.0",
35
35
  "@yarnpkg/lockfile": "1.1.0",
36
- "algoliasearch": "5.46.0",
36
+ "algoliasearch": "5.46.2",
37
37
  "ini": "6.0.0",
38
38
  "jsonc-parser": "3.3.1",
39
39
  "listr2": "9.0.5",
@@ -43,22 +43,22 @@
43
43
  "resolve": "1.22.11",
44
44
  "semver": "7.7.3",
45
45
  "yargs": "18.0.0",
46
- "zod": "4.2.1"
46
+ "zod": "4.3.5"
47
47
  },
48
48
  "ng-update": {
49
49
  "migrations": "@schematics/angular/migrations/migration-collection.json",
50
50
  "packageGroup": {
51
- "@angular/cli": "21.1.0-next.3",
52
- "@angular/build": "21.1.0-next.3",
53
- "@angular/ssr": "21.1.0-next.3",
54
- "@angular-devkit/architect": "0.2101.0-next.3",
55
- "@angular-devkit/build-angular": "21.1.0-next.3",
56
- "@angular-devkit/build-webpack": "0.2101.0-next.3",
57
- "@angular-devkit/core": "21.1.0-next.3",
58
- "@angular-devkit/schematics": "21.1.0-next.3"
51
+ "@angular/cli": "21.1.0-rc.0",
52
+ "@angular/build": "21.1.0-rc.0",
53
+ "@angular/ssr": "21.1.0-rc.0",
54
+ "@angular-devkit/architect": "0.2101.0-rc.0",
55
+ "@angular-devkit/build-angular": "21.1.0-rc.0",
56
+ "@angular-devkit/build-webpack": "0.2101.0-rc.0",
57
+ "@angular-devkit/core": "21.1.0-rc.0",
58
+ "@angular-devkit/schematics": "21.1.0-rc.0"
59
59
  }
60
60
  },
61
- "packageManager": "pnpm@10.26.0",
61
+ "packageManager": "pnpm@10.27.0",
62
62
  "engines": {
63
63
  "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
64
64
  "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
@@ -41,7 +41,6 @@ export interface Devserver {
41
41
  */
42
42
  port: number;
43
43
  }
44
- export declare function devserverKey(project?: string): string;
45
44
  /**
46
45
  * A local Angular development server managed by the MCP server.
47
46
  */
@@ -8,7 +8,6 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.LocalDevserver = void 0;
11
- exports.devserverKey = devserverKey;
12
11
  // Log messages that we want to catch to identify the build status.
13
12
  const BUILD_SUCCEEDED_MESSAGE = 'Application bundle generation complete.';
14
13
  const BUILD_FAILED_MESSAGE = 'Application bundle generation failed.';
@@ -22,9 +21,6 @@ const BUILD_END_MESSAGES = [
22
21
  WAITING_FOR_CHANGES_MESSAGE,
23
22
  CHANGES_DETECTED_SUCCESS_MESSAGE,
24
23
  ];
25
- function devserverKey(project) {
26
- return project ?? '<default>';
27
- }
28
24
  /**
29
25
  * A local Angular development server managed by the MCP server.
30
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"devserver.js","sourceRoot":"","sources":["devserver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devserver.js","sourceRoot":"","sources":["devserver.ts"],"names":[],"mappings":"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"}
@@ -8,36 +8,6 @@
8
8
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
9
  import type { AngularWorkspace } from '../../utilities/config';
10
10
  import { type AnyMcpToolDeclaration } from './tools/tool-registry';
11
- /**
12
- * Experimental tools that are grouped together under a single name.
13
- *
14
- * Used for enabling them as a group.
15
- */
16
- export declare const EXPERIMENTAL_TOOL_GROUPS: {
17
- devserver: (import("./tools/tool-registry").McpToolDeclaration<{
18
- project: import("zod").ZodOptional<import("zod").ZodString>;
19
- }, {
20
- message: import("zod").ZodString;
21
- address: import("zod").ZodOptional<import("zod").ZodString>;
22
- }> | import("./tools/tool-registry").McpToolDeclaration<{
23
- project: import("zod").ZodOptional<import("zod").ZodString>;
24
- }, {
25
- message: import("zod").ZodString;
26
- logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
27
- }> | import("./tools/tool-registry").McpToolDeclaration<{
28
- project: import("zod").ZodOptional<import("zod").ZodString>;
29
- timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
30
- }, {
31
- status: import("zod").ZodEnum<{
32
- success: "success";
33
- timeout: "timeout";
34
- failure: "failure";
35
- unknown: "unknown";
36
- no_devserver_found: "no_devserver_found";
37
- }>;
38
- logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
39
- }>)[];
40
- };
41
11
  /**
42
12
  * The set of tools that are available but not enabled by default.
43
13
  * These tools are considered experimental and may have limitations.
@@ -52,6 +22,14 @@ export declare const EXPERIMENTAL_TOOLS: readonly [import("./tools/tool-registry
52
22
  }>;
53
23
  logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
54
24
  path: import("zod").ZodOptional<import("zod").ZodString>;
25
+ }>, import("./tools/tool-registry").McpToolDeclaration<{
26
+ project: import("zod").ZodOptional<import("zod").ZodString>;
27
+ }, {
28
+ status: import("zod").ZodEnum<{
29
+ success: "success";
30
+ failure: "failure";
31
+ }>;
32
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
55
33
  }>, import("./tools/tool-registry").McpToolDeclaration<{
56
34
  directories: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
57
35
  transformations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
@@ -60,6 +38,15 @@ export declare const EXPERIMENTAL_TOOLS: readonly [import("./tools/tool-registry
60
38
  }, {
61
39
  instructions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
62
40
  logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
41
+ }>, import("./tools/tool-registry").McpToolDeclaration<{
42
+ project: import("zod").ZodOptional<import("zod").ZodString>;
43
+ filter: import("zod").ZodOptional<import("zod").ZodString>;
44
+ }, {
45
+ status: import("zod").ZodEnum<{
46
+ success: "success";
47
+ failure: "failure";
48
+ }>;
49
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
63
50
  }>, ...(import("./tools/tool-registry").McpToolDeclaration<{
64
51
  project: import("zod").ZodOptional<import("zod").ZodString>;
65
52
  }, {
@@ -83,6 +70,94 @@ export declare const EXPERIMENTAL_TOOLS: readonly [import("./tools/tool-registry
83
70
  }>;
84
71
  logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
85
72
  }>)[]];
73
+ /**
74
+ * Experimental tools that are grouped together under a single name.
75
+ *
76
+ * Used for enabling them as a group.
77
+ */
78
+ export declare const EXPERIMENTAL_TOOL_GROUPS: {
79
+ all: readonly [import("./tools/tool-registry").McpToolDeclaration<{
80
+ project: import("zod").ZodOptional<import("zod").ZodString>;
81
+ configuration: import("zod").ZodOptional<import("zod").ZodString>;
82
+ }, {
83
+ status: import("zod").ZodEnum<{
84
+ success: "success";
85
+ failure: "failure";
86
+ }>;
87
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
88
+ path: import("zod").ZodOptional<import("zod").ZodString>;
89
+ }>, import("./tools/tool-registry").McpToolDeclaration<{
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
+ }>, import("./tools/tool-registry").McpToolDeclaration<{
98
+ directories: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
99
+ transformations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
100
+ [x: string]: string;
101
+ }>>>;
102
+ }, {
103
+ instructions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
104
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
105
+ }>, import("./tools/tool-registry").McpToolDeclaration<{
106
+ project: import("zod").ZodOptional<import("zod").ZodString>;
107
+ filter: import("zod").ZodOptional<import("zod").ZodString>;
108
+ }, {
109
+ status: import("zod").ZodEnum<{
110
+ success: "success";
111
+ failure: "failure";
112
+ }>;
113
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
114
+ }>, ...(import("./tools/tool-registry").McpToolDeclaration<{
115
+ project: import("zod").ZodOptional<import("zod").ZodString>;
116
+ }, {
117
+ message: import("zod").ZodString;
118
+ address: import("zod").ZodOptional<import("zod").ZodString>;
119
+ }> | import("./tools/tool-registry").McpToolDeclaration<{
120
+ project: import("zod").ZodOptional<import("zod").ZodString>;
121
+ }, {
122
+ message: import("zod").ZodString;
123
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
124
+ }> | import("./tools/tool-registry").McpToolDeclaration<{
125
+ project: import("zod").ZodOptional<import("zod").ZodString>;
126
+ timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
127
+ }, {
128
+ status: import("zod").ZodEnum<{
129
+ success: "success";
130
+ timeout: "timeout";
131
+ failure: "failure";
132
+ unknown: "unknown";
133
+ no_devserver_found: "no_devserver_found";
134
+ }>;
135
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
136
+ }>)[]];
137
+ devserver: (import("./tools/tool-registry").McpToolDeclaration<{
138
+ project: import("zod").ZodOptional<import("zod").ZodString>;
139
+ }, {
140
+ message: import("zod").ZodString;
141
+ address: import("zod").ZodOptional<import("zod").ZodString>;
142
+ }> | import("./tools/tool-registry").McpToolDeclaration<{
143
+ project: import("zod").ZodOptional<import("zod").ZodString>;
144
+ }, {
145
+ message: import("zod").ZodString;
146
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
147
+ }> | import("./tools/tool-registry").McpToolDeclaration<{
148
+ project: import("zod").ZodOptional<import("zod").ZodString>;
149
+ timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
150
+ }, {
151
+ status: import("zod").ZodEnum<{
152
+ success: "success";
153
+ timeout: "timeout";
154
+ failure: "failure";
155
+ unknown: "unknown";
156
+ no_devserver_found: "no_devserver_found";
157
+ }>;
158
+ logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
159
+ }>)[];
160
+ };
86
161
  export declare function createMcpServer(options: {
87
162
  workspace?: AngularWorkspace;
88
163
  readOnly?: boolean;
@@ -7,7 +7,7 @@
7
7
  * found in the LICENSE file at https://angular.dev/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.EXPERIMENTAL_TOOLS = exports.EXPERIMENTAL_TOOL_GROUPS = void 0;
10
+ exports.EXPERIMENTAL_TOOL_GROUPS = exports.EXPERIMENTAL_TOOLS = void 0;
11
11
  exports.createMcpServer = createMcpServer;
12
12
  exports.assembleToolDeclarations = assembleToolDeclarations;
13
13
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
@@ -22,23 +22,17 @@ const devserver_start_1 = require("./tools/devserver/devserver-start");
22
22
  const devserver_stop_1 = require("./tools/devserver/devserver-stop");
23
23
  const devserver_wait_for_build_1 = require("./tools/devserver/devserver-wait-for-build");
24
24
  const doc_search_1 = require("./tools/doc-search");
25
+ const e2e_1 = require("./tools/e2e");
25
26
  const index_1 = require("./tools/examples/index");
26
27
  const modernize_1 = require("./tools/modernize");
27
28
  const zoneless_migration_1 = require("./tools/onpush-zoneless-migration/zoneless-migration");
28
29
  const projects_1 = require("./tools/projects");
30
+ const test_1 = require("./tools/test");
29
31
  const tool_registry_1 = require("./tools/tool-registry");
30
32
  /**
31
33
  * Tools to manage devservers. Should be bundled together, then added to experimental or stable as a group.
32
34
  */
33
35
  const DEVSERVER_TOOLS = [devserver_start_1.DEVSERVER_START_TOOL, devserver_stop_1.DEVSERVER_STOP_TOOL, devserver_wait_for_build_1.DEVSERVER_WAIT_FOR_BUILD_TOOL];
34
- /**
35
- * Experimental tools that are grouped together under a single name.
36
- *
37
- * Used for enabling them as a group.
38
- */
39
- exports.EXPERIMENTAL_TOOL_GROUPS = {
40
- 'devserver': DEVSERVER_TOOLS,
41
- };
42
36
  /**
43
37
  * The set of tools that are enabled by default for the MCP server.
44
38
  * These tools are considered stable and suitable for general use.
@@ -55,7 +49,22 @@ const STABLE_TOOLS = [
55
49
  * The set of tools that are available but not enabled by default.
56
50
  * These tools are considered experimental and may have limitations.
57
51
  */
58
- exports.EXPERIMENTAL_TOOLS = [build_1.BUILD_TOOL, modernize_1.MODERNIZE_TOOL, ...DEVSERVER_TOOLS];
52
+ exports.EXPERIMENTAL_TOOLS = [
53
+ build_1.BUILD_TOOL,
54
+ e2e_1.E2E_TOOL,
55
+ modernize_1.MODERNIZE_TOOL,
56
+ test_1.TEST_TOOL,
57
+ ...DEVSERVER_TOOLS,
58
+ ];
59
+ /**
60
+ * Experimental tools that are grouped together under a single name.
61
+ *
62
+ * Used for enabling them as a group.
63
+ */
64
+ exports.EXPERIMENTAL_TOOL_GROUPS = {
65
+ 'all': exports.EXPERIMENTAL_TOOLS,
66
+ 'devserver': DEVSERVER_TOOLS,
67
+ };
59
68
  async function createMcpServer(options, logger) {
60
69
  const server = new mcp_js_1.McpServer({
61
70
  name: 'angular-cli-server',
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["mcp-server.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.BUILD_TOOL = void 0;
11
11
  exports.runBuild = runBuild;
12
12
  const zod_1 = require("zod");
13
- const host_1 = require("../host");
14
13
  const utils_1 = require("../utils");
15
14
  const tool_registry_1 = require("./tool-registry");
16
15
  const DEFAULT_CONFIGURATION = 'development';
@@ -45,15 +44,7 @@ async function runBuild(input, host) {
45
44
  }
46
45
  catch (e) {
47
46
  status = 'failure';
48
- if (e instanceof host_1.CommandError) {
49
- logs = e.logs;
50
- }
51
- else if (e instanceof Error) {
52
- logs = [e.message];
53
- }
54
- else {
55
- logs = [String(e)];
56
- }
47
+ logs = (0, utils_1.getCommandErrorLogs)(e);
57
48
  }
58
49
  for (const line of logs) {
59
50
  const match = line.match(/Output location: (.*)/);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAmCH,4BAkCC;AAnED,6BAAwB;AAExB,oCAA8E;AAC9E,mDAAuE;AAEvE,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAE5C,MAAM,iBAAiB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAGzD,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;IACH,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC;AAIH,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC;IACnD,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC7E,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CAC1F,CAAC,CAAC;AAII,KAAK,UAAU,QAAQ,CAAC,KAAqB,EAAE,IAAU;IAC9D,6BAA6B;IAC7B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAC;IAE9D,IAAI,MAAM,GAAgB,SAAS,CAAC;IACpC,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,IAAI,UAA8B,CAAC;IAEnC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,SAAS,CAAC;QACnB,IAAI,GAAG,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAoB;QACzC,MAAM;QACN,IAAI;QACJ,IAAI,EAAE,UAAU;KACjB,CAAC;IAEF,OAAO,IAAA,qCAA6B,EAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAEY,QAAA,UAAU,GAGnB,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE;;;;;;;;;;;;;;;CAed;IACC,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,oBAAoB,CAAC,KAAK;IACvC,YAAY,EAAE,qBAAqB,CAAC,KAAK;IACzC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;CAC/D,CAAC,CAAC"}
@@ -17,6 +17,14 @@ declare const devserverStartToolOutputSchema: z.ZodObject<{
17
17
  }, z.core.$strip>;
18
18
  export type DevserverStartToolOutput = z.infer<typeof devserverStartToolOutputSchema>;
19
19
  export declare function startDevserver(input: DevserverStartToolInput, context: McpToolContext): Promise<{
20
+ content: {
21
+ type: "text";
22
+ text: string;
23
+ }[];
24
+ structuredContent: {
25
+ message: string[];
26
+ };
27
+ } | {
20
28
  content: {
21
29
  type: "text";
22
30
  text: string;
@@ -30,20 +30,25 @@ function localhostAddress(port) {
30
30
  return `http://localhost:${port}/`;
31
31
  }
32
32
  async function startDevserver(input, context) {
33
- const projectKey = (0, devserver_1.devserverKey)(input.project);
34
- let devserver = context.devservers.get(projectKey);
33
+ const projectName = input.project ?? (0, utils_1.getDefaultProjectName)(context);
34
+ if (!projectName) {
35
+ return (0, utils_1.createStructuredContentOutput)({
36
+ message: ['Project name not provided, and no default project found.'],
37
+ });
38
+ }
39
+ let devserver = context.devservers.get(projectName);
35
40
  if (devserver) {
36
41
  return (0, utils_1.createStructuredContentOutput)({
37
- message: `Development server for project '${projectKey}' is already running.`,
42
+ message: `Development server for project '${projectName}' is already running.`,
38
43
  address: localhostAddress(devserver.port),
39
44
  });
40
45
  }
41
46
  const port = await context.host.getAvailablePort();
42
47
  devserver = new devserver_1.LocalDevserver({ host: context.host, project: input.project, port });
43
48
  devserver.start();
44
- context.devservers.set(projectKey, devserver);
49
+ context.devservers.set(projectName, devserver);
45
50
  return (0, utils_1.createStructuredContentOutput)({
46
- message: `Development server for project '${projectKey}' started and watching for workspace changes.`,
51
+ message: `Development server for project '${projectName}' started and watching for workspace changes.`,
47
52
  address: localhostAddress(port),
48
53
  });
49
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"devserver-start.js","sourceRoot":"","sources":["devserver-start.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAkCH,wCAsBC;AAtDD,6BAAwB;AACxB,+CAA+D;AAC/D,uCAA4D;AAC5D,oDAA6F;AAE7F,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;CACJ,CAAC,CAAC;AAIH,MAAM,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACjF,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;CACJ,CAAC,CAAC;AAIH,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,oBAAoB,IAAI,GAAG,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,KAA8B,EAAE,OAAuB;IAC1F,MAAM,UAAU,GAAG,IAAA,wBAAY,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,mCAAmC,UAAU,uBAAuB;YAC7E,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAEnD,SAAS,GAAG,IAAI,0BAAc,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,IAAA,qCAA6B,EAAC;QACnC,OAAO,EAAE,mCAAmC,UAAU,+CAA+C;QACrG,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,oBAAoB,GAG7B,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;CAmBd;IACC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,6BAA6B,CAAC,KAAK;IAChD,YAAY,EAAE,8BAA8B,CAAC,KAAK;IAClD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"devserver-start.js","sourceRoot":"","sources":["devserver-start.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAkCH,wCA4BC;AA5DD,6BAAwB;AACxB,+CAAiD;AACjD,uCAAmF;AACnF,oDAA6F;AAE7F,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;CACJ,CAAC,CAAC;AAIH,MAAM,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACjF,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;CACJ,CAAC,CAAC;AAIH,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,oBAAoB,IAAI,GAAG,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,KAA8B,EAAE,OAAuB;IAC1F,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAEpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,CAAC,0DAA0D,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,mCAAmC,WAAW,uBAAuB;YAC9E,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAEnD,SAAS,GAAG,IAAI,0BAAc,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAE/C,OAAO,IAAA,qCAA6B,EAAC;QACnC,OAAO,EAAE,mCAAmC,WAAW,+CAA+C;QACtG,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,oBAAoB,GAG7B,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;CAmBd;IACC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,6BAA6B,CAAC,KAAK;IAChD,YAAY,EAAE,8BAA8B,CAAC,KAAK;IAClD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF,CAAC,CAAC"}
@@ -17,6 +17,15 @@ declare const devserverStopToolOutputSchema: z.ZodObject<{
17
17
  }, z.core.$strip>;
18
18
  export type DevserverStopToolOutput = z.infer<typeof devserverStopToolOutputSchema>;
19
19
  export declare function stopDevserver(input: DevserverStopToolInput, context: McpToolContext): {
20
+ content: {
21
+ type: "text";
22
+ text: string;
23
+ }[];
24
+ structuredContent: {
25
+ message: string[];
26
+ logs: undefined;
27
+ };
28
+ } | {
20
29
  content: {
21
30
  type: "text";
22
31
  text: string;
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.DEVSERVER_STOP_TOOL = void 0;
11
11
  exports.stopDevserver = stopDevserver;
12
12
  const zod_1 = require("zod");
13
- const devserver_1 = require("../../devserver");
14
13
  const utils_1 = require("../../utils");
15
14
  const tool_registry_1 = require("../tool-registry");
16
15
  const devserverStopToolInputSchema = zod_1.z.object({
@@ -24,18 +23,36 @@ const devserverStopToolOutputSchema = zod_1.z.object({
24
23
  logs: zod_1.z.array(zod_1.z.string()).optional().describe('The full logs from the dev server.'),
25
24
  });
26
25
  function stopDevserver(input, context) {
27
- const projectKey = (0, devserver_1.devserverKey)(input.project);
28
- const devServer = context.devservers.get(projectKey);
26
+ if (context.devservers.size === 0) {
27
+ return (0, utils_1.createStructuredContentOutput)({
28
+ message: ['No development servers are currently running.'],
29
+ logs: undefined,
30
+ });
31
+ }
32
+ let projectName = input.project ?? (0, utils_1.getDefaultProjectName)(context);
33
+ if (!projectName) {
34
+ // This should not happen. But if there's just a single running devserver, stop it.
35
+ if (context.devservers.size === 1) {
36
+ projectName = Array.from(context.devservers.keys())[0];
37
+ }
38
+ else {
39
+ return (0, utils_1.createStructuredContentOutput)({
40
+ message: ['Project name not provided, and no default project found.'],
41
+ logs: undefined,
42
+ });
43
+ }
44
+ }
45
+ const devServer = context.devservers.get(projectName);
29
46
  if (!devServer) {
30
47
  return (0, utils_1.createStructuredContentOutput)({
31
- message: `Development server for project '${projectKey}' was not running.`,
48
+ message: `Development server for project '${projectName}' was not running.`,
32
49
  logs: undefined,
33
50
  });
34
51
  }
35
52
  devServer.stop();
36
- context.devservers.delete(projectKey);
53
+ context.devservers.delete(projectName);
37
54
  return (0, utils_1.createStructuredContentOutput)({
38
- message: `Development server for project '${projectKey}' stopped.`,
55
+ message: `Development server for project '${projectName}' stopped.`,
39
56
  logs: devServer.getServerLogs(),
40
57
  });
41
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"devserver-stop.js","sourceRoot":"","sources":["devserver-stop.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAyBH,sCAkBC;AAzCD,6BAAwB;AACxB,+CAA+C;AAC/C,uCAA4D;AAC5D,oDAA6F;AAE7F,MAAM,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yGAAyG,CAC1G;CACJ,CAAC,CAAC;AAIH,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACjF,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CACpF,CAAC,CAAC;AAIH,SAAgB,aAAa,CAAC,KAA6B,EAAE,OAAuB;IAClF,MAAM,UAAU,GAAG,IAAA,wBAAY,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,mCAAmC,UAAU,oBAAoB;YAC1E,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,IAAA,qCAA6B,EAAC;QACnC,OAAO,EAAE,mCAAmC,UAAU,YAAY;QAClE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,mBAAmB,GAG5B,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE;;;;;;;;;;;;CAYd;IACC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,4BAA4B,CAAC,KAAK;IAC/C,YAAY,EAAE,6BAA6B,CAAC,KAAK;IACjD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"devserver-stop.js","sourceRoot":"","sources":["devserver-stop.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAwBH,sCAsCC;AA5DD,6BAAwB;AACxB,uCAAmF;AACnF,oDAA6F;AAE7F,MAAM,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yGAAyG,CAC1G;CACJ,CAAC,CAAC;AAIH,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACjF,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CACpF,CAAC,CAAC;AAIH,SAAgB,aAAa,CAAC,KAA6B,EAAE,OAAuB;IAClF,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,CAAC,+CAA+C,CAAC;YAC1D,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAElE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,mFAAmF;QACnF,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,qCAA6B,EAAC;gBACnC,OAAO,EAAE,CAAC,0DAA0D,CAAC;gBACrE,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,mCAAmC,WAAW,oBAAoB;YAC3E,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvC,OAAO,IAAA,qCAA6B,EAAC;QACnC,OAAO,EAAE,mCAAmC,WAAW,YAAY;QACnE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,mBAAmB,GAG5B,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE;;;;;;;;;;;;CAYd;IACC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,4BAA4B,CAAC,KAAK;IAC/C,YAAY,EAAE,6BAA6B,CAAC,KAAK;IACjD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF,CAAC,CAAC"}
@@ -28,6 +28,15 @@ declare const devserverWaitForBuildToolOutputSchema: z.ZodObject<{
28
28
  }, z.core.$strip>;
29
29
  export type DevserverWaitForBuildToolOutput = z.infer<typeof devserverWaitForBuildToolOutputSchema>;
30
30
  export declare function waitForDevserverBuild(input: DevserverWaitForBuildToolInput, context: McpToolContext): Promise<{
31
+ content: {
32
+ type: "text";
33
+ text: string;
34
+ }[];
35
+ structuredContent: {
36
+ status: string;
37
+ logs: undefined;
38
+ };
39
+ } | {
31
40
  content: {
32
41
  type: "text";
33
42
  text: string;
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.DEVSERVER_WAIT_FOR_BUILD_TOOL = exports.WATCH_DELAY = void 0;
11
11
  exports.waitForDevserverBuild = waitForDevserverBuild;
12
12
  const zod_1 = require("zod");
13
- const devserver_1 = require("../../devserver");
14
13
  const utils_1 = require("../../utils");
15
14
  const tool_registry_1 = require("../tool-registry");
16
15
  /**
@@ -44,19 +43,39 @@ function wait(ms) {
44
43
  return new Promise((resolve) => setTimeout(resolve, ms));
45
44
  }
46
45
  async function waitForDevserverBuild(input, context) {
47
- const projectKey = (0, devserver_1.devserverKey)(input.project);
48
- const devServer = context.devservers.get(projectKey);
49
- const deadline = Date.now() + input.timeout;
46
+ if (context.devservers.size === 0) {
47
+ return (0, utils_1.createStructuredContentOutput)({
48
+ status: 'no_devserver_found',
49
+ logs: undefined,
50
+ });
51
+ }
52
+ let projectName = input.project ?? (0, utils_1.getDefaultProjectName)(context);
53
+ if (!projectName) {
54
+ // This should not happen. But if there's just a single running devserver, wait for it.
55
+ if (context.devservers.size === 1) {
56
+ projectName = Array.from(context.devservers.keys())[0];
57
+ }
58
+ else {
59
+ return (0, utils_1.createStructuredContentOutput)({
60
+ status: 'no_devserver_found',
61
+ logs: undefined,
62
+ });
63
+ }
64
+ }
65
+ const devServer = context.devservers.get(projectName);
50
66
  if (!devServer) {
51
67
  return (0, utils_1.createStructuredContentOutput)({
52
68
  status: 'no_devserver_found',
69
+ logs: undefined,
53
70
  });
54
71
  }
72
+ const deadline = Date.now() + input.timeout;
55
73
  await wait(exports.WATCH_DELAY);
56
74
  while (devServer.isBuilding()) {
57
75
  if (Date.now() > deadline) {
58
76
  return (0, utils_1.createStructuredContentOutput)({
59
77
  status: 'timeout',
78
+ logs: undefined,
60
79
  });
61
80
  }
62
81
  await wait(exports.WATCH_DELAY);
@@ -1 +1 @@
1
- {"version":3,"file":"devserver-wait-for-build.js","sourceRoot":"","sources":["devserver-wait-for-build.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAoDH,sDA2BC;AA7ED,6BAAwB;AACxB,+CAA+C;AAC/C,uCAA4D;AAC5D,oDAA6F;AAE7F;;GAEG;AACU,QAAA,WAAW,GAAG,IAAI,CAAC;AAEhC;;GAEG;AACH,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,kBAAkB;AAEnD,MAAM,oCAAoC,GAAG,OAAC,CAAC,MAAM,CAAC;IACpD,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yGAAyG,CAC1G;IACH,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,OAAO,CAAC,eAAe,CAAC;SACxB,QAAQ,CACP,iGAAiG,mBAAW,GAAG,CAChH;CACJ,CAAC,CAAC;AAIH,MAAM,qCAAqC,GAAG,OAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,OAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;SACxE,QAAQ,CACP,iGAAiG,CAClG;IACH,IAAI,EAAE,OAAC;SACJ,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;CACnE,CAAC,CAAC;AAIH,SAAS,IAAI,CAAC,EAAU;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,KAAqC,EACrC,OAAuB;IAEvB,MAAM,UAAU,GAAG,IAAA,wBAAY,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAA,qCAA6B,EAAkC;YACpE,MAAM,EAAE,oBAAoB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,CAAC,mBAAW,CAAC,CAAC;IACxB,OAAO,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAA,qCAA6B,EAAkC;gBACpE,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,mBAAW,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAA,qCAA6B,EAAkC;QACpE,GAAG,SAAS,CAAC,kBAAkB,EAAE;KAClC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,6BAA6B,GAGtC,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;CAoBd;IACC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,oCAAoC,CAAC,KAAK;IACvD,YAAY,EAAE,qCAAqC,CAAC,KAAK;IACzD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"devserver-wait-for-build.js","sourceRoot":"","sources":["devserver-wait-for-build.ts"],"names":[],"mappings":"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"}