@frontmcp/nx 1.10.8 → 1.10.9-rc.2

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 (151) hide show
  1. package/executors/build/build.impl.js +0 -1
  2. package/executors/build/schema.js +0 -1
  3. package/executors/build-exec/build-exec.impl.js +0 -1
  4. package/executors/build-exec/schema.js +0 -1
  5. package/executors/deploy/deploy.impl.js +0 -1
  6. package/executors/deploy/schema.js +0 -1
  7. package/executors/dev/dev.impl.js +0 -1
  8. package/executors/dev/schema.js +0 -1
  9. package/executors/executor-context.js +0 -1
  10. package/executors/frontmcp-cli.js +1 -2
  11. package/executors/inspector/inspector.impl.js +0 -1
  12. package/executors/inspector/schema.js +0 -1
  13. package/executors/serve/schema.js +0 -1
  14. package/executors/serve/serve.impl.js +0 -1
  15. package/executors/test/schema.js +0 -1
  16. package/executors/test/test.impl.js +0 -1
  17. package/generators/adapter/adapter.js +0 -1
  18. package/generators/adapter/schema.js +0 -1
  19. package/generators/agent/agent.js +0 -1
  20. package/generators/agent/schema.js +0 -1
  21. package/generators/app/app.js +0 -1
  22. package/generators/app/lib/index.js +0 -1
  23. package/generators/app/lib/normalize-options.js +0 -1
  24. package/generators/app/schema.js +0 -1
  25. package/generators/auth-provider/auth-provider.js +0 -1
  26. package/generators/auth-provider/schema.js +0 -1
  27. package/generators/flow/flow.js +0 -1
  28. package/generators/flow/schema.js +0 -1
  29. package/generators/init/init.js +1 -2
  30. package/generators/init/schema.js +0 -1
  31. package/generators/job/job.js +0 -1
  32. package/generators/job/schema.js +0 -1
  33. package/generators/lib/lib/index.js +0 -1
  34. package/generators/lib/lib/normalize-options.js +1 -2
  35. package/generators/lib/lib.js +0 -1
  36. package/generators/lib/schema.js +0 -1
  37. package/generators/plugin/plugin.js +0 -1
  38. package/generators/plugin/schema.js +0 -1
  39. package/generators/prompt/prompt.js +0 -1
  40. package/generators/prompt/schema.js +0 -1
  41. package/generators/provider/provider.js +0 -1
  42. package/generators/provider/schema.js +0 -1
  43. package/generators/resource/resource.js +0 -1
  44. package/generators/resource/schema.js +0 -1
  45. package/generators/server/lib/index.js +0 -1
  46. package/generators/server/lib/normalize-options.js +0 -1
  47. package/generators/server/schema.js +0 -1
  48. package/generators/server/server.js +0 -1
  49. package/generators/skill/schema.js +0 -1
  50. package/generators/skill/skill.js +0 -1
  51. package/generators/skill-dir/schema.js +0 -1
  52. package/generators/skill-dir/skill-dir.js +0 -1
  53. package/generators/tool/schema.js +0 -1
  54. package/generators/tool/tool.js +0 -1
  55. package/generators/ui-component/schema.js +0 -1
  56. package/generators/ui-component/ui-component.js +0 -1
  57. package/generators/ui-page/schema.js +0 -1
  58. package/generators/ui-page/ui-page.js +0 -1
  59. package/generators/ui-shared/add-ui-entry.js +2 -3
  60. package/generators/ui-shared/ensure-ui-package.js +1 -2
  61. package/generators/ui-shell/schema.js +0 -1
  62. package/generators/ui-shell/ui-shell.js +0 -1
  63. package/generators/workflow/schema.js +0 -1
  64. package/generators/workflow/workflow.js +0 -1
  65. package/generators/workspace/lib/index.js +0 -1
  66. package/generators/workspace/lib/normalize-options.js +0 -1
  67. package/generators/workspace/schema.js +0 -1
  68. package/generators/workspace/workspace.js +1 -2
  69. package/index.js +0 -1
  70. package/package.json +2 -2
  71. package/utils/add-dependencies.js +0 -1
  72. package/utils/names.js +0 -1
  73. package/utils/normalize-options.js +0 -1
  74. package/utils/package-manager.js +0 -1
  75. package/utils/project-paths.js +1 -2
  76. package/utils/versions.js +0 -1
  77. package/executors/build/build.impl.js.map +0 -1
  78. package/executors/build/schema.js.map +0 -1
  79. package/executors/build-exec/build-exec.impl.js.map +0 -1
  80. package/executors/build-exec/schema.js.map +0 -1
  81. package/executors/deploy/deploy.impl.js.map +0 -1
  82. package/executors/deploy/schema.js.map +0 -1
  83. package/executors/dev/dev.impl.js.map +0 -1
  84. package/executors/dev/schema.js.map +0 -1
  85. package/executors/executor-context.js.map +0 -1
  86. package/executors/frontmcp-cli.js.map +0 -1
  87. package/executors/inspector/inspector.impl.js.map +0 -1
  88. package/executors/inspector/schema.js.map +0 -1
  89. package/executors/serve/schema.js.map +0 -1
  90. package/executors/serve/serve.impl.js.map +0 -1
  91. package/executors/test/schema.js.map +0 -1
  92. package/executors/test/test.impl.js.map +0 -1
  93. package/generators/adapter/adapter.js.map +0 -1
  94. package/generators/adapter/schema.js.map +0 -1
  95. package/generators/agent/agent.js.map +0 -1
  96. package/generators/agent/schema.js.map +0 -1
  97. package/generators/app/app.js.map +0 -1
  98. package/generators/app/lib/index.js.map +0 -1
  99. package/generators/app/lib/normalize-options.js.map +0 -1
  100. package/generators/app/schema.js.map +0 -1
  101. package/generators/auth-provider/auth-provider.js.map +0 -1
  102. package/generators/auth-provider/schema.js.map +0 -1
  103. package/generators/flow/flow.js.map +0 -1
  104. package/generators/flow/schema.js.map +0 -1
  105. package/generators/init/init.js.map +0 -1
  106. package/generators/init/schema.js.map +0 -1
  107. package/generators/job/job.js.map +0 -1
  108. package/generators/job/schema.js.map +0 -1
  109. package/generators/lib/lib/index.js.map +0 -1
  110. package/generators/lib/lib/normalize-options.js.map +0 -1
  111. package/generators/lib/lib.js.map +0 -1
  112. package/generators/lib/schema.js.map +0 -1
  113. package/generators/plugin/plugin.js.map +0 -1
  114. package/generators/plugin/schema.js.map +0 -1
  115. package/generators/prompt/prompt.js.map +0 -1
  116. package/generators/prompt/schema.js.map +0 -1
  117. package/generators/provider/provider.js.map +0 -1
  118. package/generators/provider/schema.js.map +0 -1
  119. package/generators/resource/resource.js.map +0 -1
  120. package/generators/resource/schema.js.map +0 -1
  121. package/generators/server/lib/index.js.map +0 -1
  122. package/generators/server/lib/normalize-options.js.map +0 -1
  123. package/generators/server/schema.js.map +0 -1
  124. package/generators/server/server.js.map +0 -1
  125. package/generators/skill/schema.js.map +0 -1
  126. package/generators/skill/skill.js.map +0 -1
  127. package/generators/skill-dir/schema.js.map +0 -1
  128. package/generators/skill-dir/skill-dir.js.map +0 -1
  129. package/generators/tool/schema.js.map +0 -1
  130. package/generators/tool/tool.js.map +0 -1
  131. package/generators/ui-component/schema.js.map +0 -1
  132. package/generators/ui-component/ui-component.js.map +0 -1
  133. package/generators/ui-page/schema.js.map +0 -1
  134. package/generators/ui-page/ui-page.js.map +0 -1
  135. package/generators/ui-shared/add-ui-entry.js.map +0 -1
  136. package/generators/ui-shared/ensure-ui-package.js.map +0 -1
  137. package/generators/ui-shell/schema.js.map +0 -1
  138. package/generators/ui-shell/ui-shell.js.map +0 -1
  139. package/generators/workflow/schema.js.map +0 -1
  140. package/generators/workflow/workflow.js.map +0 -1
  141. package/generators/workspace/lib/index.js.map +0 -1
  142. package/generators/workspace/lib/normalize-options.js.map +0 -1
  143. package/generators/workspace/schema.js.map +0 -1
  144. package/generators/workspace/workspace.js.map +0 -1
  145. package/index.js.map +0 -1
  146. package/utils/add-dependencies.js.map +0 -1
  147. package/utils/names.js.map +0 -1
  148. package/utils/normalize-options.js.map +0 -1
  149. package/utils/package-manager.js.map +0 -1
  150. package/utils/project-paths.js.map +0 -1
  151. package/utils/versions.js.map +0 -1
@@ -14,4 +14,3 @@ async function buildExecutor(options, context) {
14
14
  args.push('--out-dir', (0, frontmcp_cli_js_1.toAbsolute)(context, options.outputPath));
15
15
  return (0, frontmcp_cli_js_1.runFrontmcp)(context, args);
16
16
  }
17
- //# sourceMappingURL=build.impl.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -10,4 +10,3 @@ async function buildExecExecutor(options, context) {
10
10
  args.push('--out-dir', (0, frontmcp_cli_js_1.toAbsolute)(context, options.outputPath));
11
11
  return (0, frontmcp_cli_js_1.runFrontmcp)(context, args);
12
12
  }
13
- //# sourceMappingURL=build-exec.impl.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -31,4 +31,3 @@ async function deployExecutor(options, context) {
31
31
  return { success: false };
32
32
  }
33
33
  }
34
- //# sourceMappingURL=deploy.impl.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -21,4 +21,3 @@ async function* devExecutor(options, context) {
21
21
  (0, frontmcp_cli_js_1.stopChild)(child);
22
22
  }
23
23
  }
24
- //# sourceMappingURL=dev.impl.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=executor-context.js.map
@@ -100,9 +100,8 @@ function waitForExit(child) {
100
100
  child.on('close', (code) => resolvePromise(code ?? 1));
101
101
  });
102
102
  }
103
- /** Stop the child if it is still running — Nx returns from the generator to cancel a long-running executor. */
103
+ /** Stop the child if it is still running \u2014 Nx returns from the generator to cancel a long-running executor. */
104
104
  function stopChild(child) {
105
105
  if (child.exitCode === null && child.signalCode === null && !child.killed)
106
106
  child.kill();
107
107
  }
108
- //# sourceMappingURL=frontmcp-cli.js.map
@@ -17,4 +17,3 @@ async function* inspectorExecutor(options, context) {
17
17
  (0, frontmcp_cli_js_1.stopChild)(child);
18
18
  }
19
19
  }
20
- //# sourceMappingURL=inspector.impl.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -25,4 +25,3 @@ async function* serveExecutor(options, context) {
25
25
  (0, frontmcp_cli_js_1.stopChild)(child);
26
26
  }
27
27
  }
28
- //# sourceMappingURL=serve.impl.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -16,4 +16,3 @@ async function testExecutor(options, context) {
16
16
  args.push('--timeout', String(options.timeout));
17
17
  return (0, frontmcp_cli_js_1.runFrontmcp)(context, args);
18
18
  }
19
- //# sourceMappingURL=test.impl.js.map
@@ -15,4 +15,3 @@ async function adapterGenerator(tree, schema) {
15
15
  }
16
16
  }
17
17
  exports.default = adapterGenerator;
18
- //# sourceMappingURL=adapter.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -38,4 +38,3 @@ async function agentGenerator(tree, schema) {
38
38
  }
39
39
  }
40
40
  exports.default = agentGenerator;
41
- //# sourceMappingURL=agent.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -18,4 +18,3 @@ async function appGeneratorInternal(tree, schema) {
18
18
  }
19
19
  }
20
20
  exports.default = appGenerator;
21
- //# sourceMappingURL=app.js.map
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeOptions = void 0;
4
4
  var normalize_options_js_1 = require("./normalize-options.js");
5
5
  Object.defineProperty(exports, "normalizeOptions", { enumerable: true, get: function () { return normalize_options_js_1.normalizeOptions; } });
6
- //# sourceMappingURL=index.js.map
@@ -22,4 +22,3 @@ function normalizeOptions(tree, schema) {
22
22
  skipFormat: schema.skipFormat ?? false,
23
23
  };
24
24
  }
25
- //# sourceMappingURL=normalize-options.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -19,4 +19,3 @@ async function authProviderGenerator(tree, schema) {
19
19
  }
20
20
  }
21
21
  exports.default = authProviderGenerator;
22
- //# sourceMappingURL=auth-provider.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -15,4 +15,3 @@ async function flowGenerator(tree, schema) {
15
15
  }
16
16
  }
17
17
  exports.default = flowGenerator;
18
- //# sourceMappingURL=flow.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -8,7 +8,7 @@ const BUILD_EXECUTORS = ['@frontmcp/nx:build', '@frontmcp/nx:build-exec'];
8
8
  const TEST_EXECUTOR = '@frontmcp/nx:test';
9
9
  /**
10
10
  * Executors are only cached when the target (or a `targetDefaults` entry for
11
- * the executor) says so — Nx does not read that from the plugin itself.
11
+ * the executor) says so \u2014 Nx does not read that from the plugin itself.
12
12
  */
13
13
  function makeExecutorsCacheable(tree) {
14
14
  const nxJson = (0, devkit_1.readNxJson)(tree);
@@ -39,4 +39,3 @@ async function initGenerator(tree, schema = {}) {
39
39
  return installTask;
40
40
  }
41
41
  exports.default = initGenerator;
42
- //# sourceMappingURL=init.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -15,4 +15,3 @@ async function jobGenerator(tree, schema) {
15
15
  }
16
16
  }
17
17
  exports.default = jobGenerator;
18
- //# sourceMappingURL=job.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeOptions = void 0;
4
4
  var normalize_options_js_1 = require("./normalize-options.js");
5
5
  Object.defineProperty(exports, "normalizeOptions", { enumerable: true, get: function () { return normalize_options_js_1.normalizeOptions; } });
6
- //# sourceMappingURL=index.js.map
@@ -6,7 +6,7 @@ const project_paths_js_1 = require("../../../utils/project-paths.js");
6
6
  function readWorkspaceManifest(tree) {
7
7
  return tree.exists('package.json') ? (0, devkit_1.readJson)(tree, 'package.json') : {};
8
8
  }
9
- /** The workspace's own npm scope (`@acme/source` → `@acme/<name>`), else the bare name. */
9
+ /** The workspace's own npm scope (`@acme/source` \u2192 `@acme/<name>`), else the bare name. */
10
10
  function defaultImportPath(workspace, fileName) {
11
11
  const scope = /^(@[^/]+)\//.exec(workspace.name ?? '')?.[1];
12
12
  return scope ? `${scope}/${fileName}` : fileName;
@@ -69,4 +69,3 @@ function normalizeOptions(tree, schema) {
69
69
  skipFormat: schema.skipFormat ?? false,
70
70
  };
71
71
  }
72
- //# sourceMappingURL=normalize-options.js.map
@@ -66,4 +66,3 @@ async function libGeneratorInternal(tree, schema) {
66
66
  }
67
67
  }
68
68
  exports.default = libGenerator;
69
- //# sourceMappingURL=lib.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -26,4 +26,3 @@ async function pluginGenerator(tree, schema) {
26
26
  }
27
27
  }
28
28
  exports.default = pluginGenerator;
29
- //# sourceMappingURL=plugin.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -22,4 +22,3 @@ async function promptGenerator(tree, schema) {
22
22
  }
23
23
  }
24
24
  exports.default = promptGenerator;
25
- //# sourceMappingURL=prompt.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -19,4 +19,3 @@ async function providerGenerator(tree, schema) {
19
19
  }
20
20
  }
21
21
  exports.default = providerGenerator;
22
- //# sourceMappingURL=provider.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -17,4 +17,3 @@ async function resourceGenerator(tree, schema) {
17
17
  }
18
18
  }
19
19
  exports.default = resourceGenerator;
20
- //# sourceMappingURL=resource.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeOptions = void 0;
4
4
  var normalize_options_js_1 = require("./normalize-options.js");
5
5
  Object.defineProperty(exports, "normalizeOptions", { enumerable: true, get: function () { return normalize_options_js_1.normalizeOptions; } });
6
- //# sourceMappingURL=index.js.map
@@ -41,4 +41,3 @@ function normalizeOptions(tree, schema) {
41
41
  skipFormat: schema.skipFormat ?? false,
42
42
  };
43
43
  }
44
- //# sourceMappingURL=normalize-options.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -84,4 +84,3 @@ function copyDirToTree(tree, sourceDir, destDir) {
84
84
  }
85
85
  }
86
86
  exports.default = serverGenerator;
87
- //# sourceMappingURL=server.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -22,4 +22,3 @@ async function skillGenerator(tree, schema) {
22
22
  }
23
23
  }
24
24
  exports.default = skillGenerator;
25
- //# sourceMappingURL=skill.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -32,4 +32,3 @@ async function skillDirGenerator(tree, schema) {
32
32
  }
33
33
  }
34
34
  exports.default = skillDirGenerator;
35
- //# sourceMappingURL=skill-dir.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -15,4 +15,3 @@ async function toolGenerator(tree, schema) {
15
15
  }
16
16
  }
17
17
  exports.default = toolGenerator;
18
- //# sourceMappingURL=tool.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -33,4 +33,3 @@ async function uiComponentGenerator(tree, schema) {
33
33
  return installTask;
34
34
  }
35
35
  exports.default = uiComponentGenerator;
36
- //# sourceMappingURL=ui-component.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -33,4 +33,3 @@ async function uiPageGenerator(tree, schema) {
33
33
  return installTask;
34
34
  }
35
35
  exports.default = uiPageGenerator;
36
- //# sourceMappingURL=ui-page.js.map
@@ -15,7 +15,7 @@ function escapeRegExp(str) {
15
15
  function addUiEntry(tree, options) {
16
16
  const { packageRoot, entryName, importPath } = options;
17
17
  const entryPath = `${packageRoot}/src/${entryName}/index.ts`;
18
- // 1. Update project.json — add to additionalEntryPoints in build-cjs and build-esm
18
+ // 1. Update project.json \u2014 add to additionalEntryPoints in build-cjs and build-esm
19
19
  const projectJsonPath = `${packageRoot}/project.json`;
20
20
  if (tree.exists(projectJsonPath)) {
21
21
  (0, devkit_1.updateJson)(tree, projectJsonPath, (json) => {
@@ -31,7 +31,7 @@ function addUiEntry(tree, options) {
31
31
  return json;
32
32
  });
33
33
  }
34
- // 2. Update tsconfig.base.json — add explicit path alias
34
+ // 2. Update tsconfig.base.json \u2014 add explicit path alias
35
35
  // The wildcard alias already covers resolution, but adding an explicit
36
36
  // entry improves IDE completion and Nx dep graph accuracy.
37
37
  (0, project_paths_js_1.addTsPathAlias)(tree, `${importPath}/${entryName}`, entryPath, { overwrite: false });
@@ -47,4 +47,3 @@ function addUiEntry(tree, options) {
47
47
  }
48
48
  }
49
49
  }
50
- //# sourceMappingURL=add-ui-entry.js.map
@@ -82,7 +82,7 @@ function buildTargets(packageRoot) {
82
82
  /**
83
83
  * The UI generators emit `.tsx` files that import React and MUI (or the uipack
84
84
  * shell builder), and a spec that renders them. Nothing else installs those, so
85
- * the generators add them — and create the package folder when the workspace
85
+ * the generators add them \u2014 and create the package folder when the workspace
86
86
  * does not have one yet, instead of writing files into a folder that no Nx
87
87
  * project owns.
88
88
  */
@@ -156,4 +156,3 @@ function ensureUiPackage(tree, options) {
156
156
  const installEsbuild = (0, add_dependencies_js_1.addFrontmcpDependencies)(tree, {}, { esbuild }, { keepExistingVersions: false });
157
157
  return (0, devkit_1.runTasksInSerial)(installUiDependencies, installEsbuild);
158
158
  }
159
- //# sourceMappingURL=ensure-ui-package.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -30,4 +30,3 @@ async function uiShellGenerator(tree, schema) {
30
30
  return installTask;
31
31
  }
32
32
  exports.default = uiShellGenerator;
33
- //# sourceMappingURL=ui-shell.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -15,4 +15,3 @@ async function workflowGenerator(tree, schema) {
15
15
  }
16
16
  }
17
17
  exports.default = workflowGenerator;
18
- //# sourceMappingURL=workflow.js.map
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeOptions = void 0;
4
4
  var normalize_options_js_1 = require("./normalize-options.js");
5
5
  Object.defineProperty(exports, "normalizeOptions", { enumerable: true, get: function () { return normalize_options_js_1.normalizeOptions; } });
6
- //# sourceMappingURL=index.js.map
@@ -11,4 +11,3 @@ function normalizeOptions(schema) {
11
11
  workspaceRoot: schema.name,
12
12
  };
13
13
  }
14
- //# sourceMappingURL=normalize-options.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -60,8 +60,7 @@ function initGitRepository(workspaceRoot) {
60
60
  (0, child_process_1.execSync)('git commit -m "Initial commit"', { cwd: workspaceRoot, stdio: 'ignore' });
61
61
  }
62
62
  catch {
63
- // git may not be installed — silently skip
63
+ // git may not be installed \u2014 silently skip
64
64
  }
65
65
  }
66
66
  exports.default = workspaceGenerator;
67
- //# sourceMappingURL=workspace.js.map
package/index.js CHANGED
@@ -49,4 +49,3 @@ Object.defineProperty(exports, "toClassName", { enumerable: true, get: function
49
49
  Object.defineProperty(exports, "toPropertyName", { enumerable: true, get: function () { return names_js_1.toPropertyName; } });
50
50
  Object.defineProperty(exports, "toFileName", { enumerable: true, get: function () { return names_js_1.toFileName; } });
51
51
  Object.defineProperty(exports, "toConstantName", { enumerable: true, get: function () { return names_js_1.toConstantName; } });
52
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/nx",
3
- "version": "1.10.8",
3
+ "version": "1.10.9-rc.2",
4
4
  "description": "Nx plugin for FrontMCP — generators and executors for building MCP servers",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "homepage": "https://frontmcp.dev/reference/nx",
@@ -33,7 +33,7 @@
33
33
  "node": ">=24.0.0"
34
34
  },
35
35
  "dependencies": {
36
- "@frontmcp/skills": "1.10.8",
36
+ "@frontmcp/skills": "1.10.9-rc.2",
37
37
  "@nx/devkit": "22.6.4",
38
38
  "tslib": "^2.3.0"
39
39
  },
@@ -5,4 +5,3 @@ const devkit_1 = require("@nx/devkit");
5
5
  function addFrontmcpDependencies(tree, dependencies, devDependencies = {}, options = {}) {
6
6
  return (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies, undefined, options.keepExistingVersions);
7
7
  }
8
- //# sourceMappingURL=add-dependencies.js.map
package/utils/names.js CHANGED
@@ -24,4 +24,3 @@ function sanitizeProjectName(name) {
24
24
  .replace(/^-+|-+$/g, '')
25
25
  .toLowerCase();
26
26
  }
27
- //# sourceMappingURL=names.js.map
@@ -27,4 +27,3 @@ function normalizePrimitiveOptions(tree, schema, subdirectory) {
27
27
  directory,
28
28
  };
29
29
  }
30
- //# sourceMappingURL=normalize-options.js.map
@@ -104,4 +104,3 @@ function getPackageManagerCommands(tree) {
104
104
  }
105
105
  return COMMANDS[packageManager];
106
106
  }
107
- //# sourceMappingURL=package-manager.js.map
@@ -82,7 +82,7 @@ function getProjectTsOptions(tree, workspaceRoot) {
82
82
  }
83
83
  /**
84
84
  * Register a `paths` alias in `tsconfig.base.json` (when the workspace has one). The target is written
85
- * relative (`./libs/x/src/index.ts`): without a `baseUrl` — Nx TS-solution workspaces, TypeScript 6 —
85
+ * relative (`./libs/x/src/index.ts`): without a `baseUrl` \u2014 Nx TS-solution workspaces, TypeScript 6 \u2014
86
86
  * a bare `libs/...` target is an error (TS5090), and with `baseUrl: "."` both spellings resolve alike.
87
87
  */
88
88
  function addTsPathAlias(tree, alias, target, options = {}) {
@@ -100,4 +100,3 @@ function addTsPathAlias(tree, alias, target, options = {}) {
100
100
  return json;
101
101
  });
102
102
  }
103
- //# sourceMappingURL=project-paths.js.map
package/utils/versions.js CHANGED
@@ -117,4 +117,3 @@ function getNxDevDependencies() {
117
117
  prettier: '~3.6.2',
118
118
  };
119
119
  }
120
- //# sourceMappingURL=versions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.impl.js","sourceRoot":"","sources":["../../../../src/executors/build/build.impl.ts"],"names":[],"mappings":";;AAIA,gCAWC;AAdD,wDAA6D;AAG9C,KAAK,UAAU,aAAa,CACzC,OAA4B,EAC5B,OAAwB;IAExB,MAAM,IAAI,GAAa,CAAC,OAAO,CAAC,CAAC;IACjC,8EAA8E;IAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IACjD,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAA,4BAAU,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAA,4BAAU,EAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACxF,OAAO,IAAA,6BAAW,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import type { ExecutorContext } from '../executor-context.js';\nimport { runFrontmcp, toAbsolute } from '../frontmcp-cli.js';\nimport type { BuildExecutorSchema } from './schema.js';\n\nexport default async function buildExecutor(\n options: BuildExecutorSchema,\n context: ExecutorContext,\n): Promise<{ success: boolean }> {\n const args: string[] = ['build'];\n // `adapter` is the old spelling of `target`; the CLI has no `--adapter` flag.\n const target = options.target ?? options.adapter;\n if (target) args.push('--target', target);\n if (options.entry) args.push('--entry', toAbsolute(context, options.entry));\n if (options.outputPath) args.push('--out-dir', toAbsolute(context, options.outputPath));\n return runFrontmcp(context, args);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/executors/build/schema.ts"],"names":[],"mappings":"","sourcesContent":["export interface BuildExecutorSchema {\n entry?: string;\n outputPath?: string;\n target?: 'node' | 'vercel' | 'lambda' | 'cloudflare' | 'distributed' | 'cli' | 'sdk' | 'browser' | 'mcpb';\n /** @deprecated Use `target`. */\n adapter?: 'node' | 'vercel' | 'lambda' | 'cloudflare';\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-exec.impl.js","sourceRoot":"","sources":["../../../../src/executors/build-exec/build-exec.impl.ts"],"names":[],"mappings":";;AAIA,oCAQC;AAXD,wDAA6D;AAG9C,KAAK,UAAU,iBAAiB,CAC7C,OAAgC,EAChC,OAAwB;IAExB,MAAM,IAAI,GAAa,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAA,4BAAU,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAA,4BAAU,EAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACxF,OAAO,IAAA,6BAAW,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import type { ExecutorContext } from '../executor-context.js';\nimport { runFrontmcp, toAbsolute } from '../frontmcp-cli.js';\nimport type { BuildExecExecutorSchema } from './schema.js';\n\nexport default async function buildExecExecutor(\n options: BuildExecExecutorSchema,\n context: ExecutorContext,\n): Promise<{ success: boolean }> {\n const args: string[] = ['build', '--target', 'node'];\n if (options.entry) args.push('--entry', toAbsolute(context, options.entry));\n if (options.outputPath) args.push('--out-dir', toAbsolute(context, options.outputPath));\n return runFrontmcp(context, args);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/executors/build-exec/schema.ts"],"names":[],"mappings":"","sourcesContent":["export interface BuildExecExecutorSchema {\n entry?: string;\n outputPath?: string;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.impl.js","sourceRoot":"","sources":["../../../../src/executors/deploy/deploy.impl.ts"],"names":[],"mappings":";;AAaA,iCA0BC;AAvCD,iDAAyC;AAKzC,MAAM,eAAe,GAA2B;IAC9C,IAAI,EAAE,8BAA8B;IACpC,sGAAsG;IACtG,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,yBAAyB;IACjC,UAAU,EAAE,qBAAqB;CAClC,CAAC;AAEa,KAAK,UAAU,cAAc,CAC1C,OAA6B,EAC7B,OAAwB;IAExB,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;IAExF,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,OAAO,EAAE;YAChB,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE;YACrC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;SAC1C,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC","sourcesContent":["import { execSync } from 'child_process';\n\nimport type { ExecutorContext } from '../executor-context.js';\nimport type { DeployExecutorSchema } from './schema.js';\n\nconst DEPLOY_COMMANDS: Record<string, string> = {\n node: 'docker compose up --build -d',\n // The deploy target depends on build, which already wrote the Build Output API tree to .vercel/output\n vercel: 'npx vercel deploy --prebuilt --prod',\n lambda: 'sam build && sam deploy',\n cloudflare: 'npx wrangler deploy',\n};\n\nexport default async function deployExecutor(\n options: DeployExecutorSchema,\n context: ExecutorContext,\n): Promise<{ success: boolean }> {\n const command = DEPLOY_COMMANDS[options.target];\n if (!command) {\n console.error(`Unknown deployment target: ${options.target}`);\n return { success: false };\n }\n\n const projectName = context.projectName ?? '';\n const projectRoot = context.projectsConfigurations?.projects?.[projectName]?.root ?? '';\n\n console.log(`Deploying ${projectName} to ${options.target}...`);\n console.log(`Running: ${command}`);\n\n try {\n execSync(command, {\n cwd: `${context.root}/${projectRoot}`,\n stdio: 'inherit',\n env: { ...process.env, FORCE_COLOR: '1' },\n });\n return { success: true };\n } catch {\n return { success: false };\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/executors/deploy/schema.ts"],"names":[],"mappings":"","sourcesContent":["export interface DeployExecutorSchema {\n target: 'node' | 'vercel' | 'lambda' | 'cloudflare';\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev.impl.js","sourceRoot":"","sources":["../../../../src/executors/dev/dev.impl.ts"],"names":[],"mappings":";;AAIA,8BAoBC;AAvBD,wDAAuF;AAGxE,KAAK,SAAS,CAAC,CAAC,WAAW,CACxC,OAA0B,EAC1B,OAAwB;IAExB,MAAM,IAAI,GAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAA,4BAAU,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,+BAAa,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5G,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,IAAA,6BAAW,EAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,IAAA,2BAAS,EAAC,KAAK,CAAC,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import type { ExecutorContext } from '../executor-context.js';\nimport { spawnFrontmcp, stopChild, toAbsolute, waitForExit } from '../frontmcp-cli.js';\nimport type { DevExecutorSchema } from './schema.js';\n\nexport default async function* devExecutor(\n options: DevExecutorSchema,\n context: ExecutorContext,\n): AsyncGenerator<{ success: boolean; baseUrl?: string }> {\n const args: string[] = ['dev'];\n if (options.entry) args.push('--entry', toAbsolute(context, options.entry));\n if (options.port !== undefined) args.push('--port', String(options.port));\n\n const child = spawnFrontmcp(context, args);\n if (!child) {\n yield { success: false };\n return;\n }\n\n try {\n yield { success: true, ...(options.port !== undefined && { baseUrl: `http://localhost:${options.port}` }) };\n yield { success: (await waitForExit(child)) === 0 };\n } finally {\n stopChild(child);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/executors/dev/schema.ts"],"names":[],"mappings":"","sourcesContent":["export interface DevExecutorSchema {\n entry?: string;\n port?: number;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor-context.js","sourceRoot":"","sources":["../../../src/executors/executor-context.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Minimal ExecutorContext type to avoid importing @nx/devkit at runtime in executor files.\n * The full type is only needed at build time.\n */\nexport interface ExecutorContext {\n root: string;\n cwd: string;\n projectName?: string;\n isVerbose: boolean;\n projectsConfigurations?: {\n version: number;\n projects: Record<string, { root: string; sourceRoot?: string }>;\n };\n projectGraph: unknown;\n nxJsonConfiguration: unknown;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"frontmcp-cli.js","sourceRoot":"","sources":["../../../src/executors/frontmcp-cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { execFileSync, spawn, type ChildProcess } from 'child_process';\nimport { existsSync, readFileSync } from 'fs';\nimport { isAbsolute, join, resolve } from 'path';\n\nimport type { ExecutorContext } from './executor-context.js';\n\nexport interface FrontmcpInvocation {\n command: string;\n args: string[];\n /** The project's own folder: the CLI reads `tsconfig.json`, `jest.config.*` and `frontmcp.config.*` from here. */\n cwd: string;\n env: NodeJS.ProcessEnv;\n}\n\n/** Absolute path of the project's folder; the workspace root when the project is unknown. */\nexport function getProjectRoot(context: ExecutorContext): string {\n const projectRoot = context.projectName\n ? context.projectsConfigurations?.projects?.[context.projectName]?.root\n : undefined;\n return projectRoot ? resolve(context.root, projectRoot) : context.root;\n}\n\n/** Nx hands options over relative to the workspace root, while the CLI resolves them from the project folder. */\nexport function toAbsolute(context: ExecutorContext, path: string): string {\n return isAbsolute(path) ? path : resolve(context.root, path);\n}\n\n/**\n * Find the `frontmcp` CLI the workspace has installed. Running it through `npx`\n * would download whatever is newest on the registry whenever it is missing,\n * so the executors refuse to fall back to that.\n */\nexport function resolveFrontmcpBin(workspaceRoot: string): string {\n const manifestPath = join(workspaceRoot, 'node_modules', 'frontmcp', 'package.json');\n if (existsSync(manifestPath)) {\n try {\n const manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) as { bin?: string | Record<string, string> };\n const bin = typeof manifest.bin === 'string' ? manifest.bin : manifest.bin?.['frontmcp'];\n if (bin) {\n const binPath = join(workspaceRoot, 'node_modules', 'frontmcp', bin);\n if (existsSync(binPath)) return binPath;\n }\n } catch {\n // fall through to the \"not installed\" error below\n }\n }\n throw new Error(\n `The \"frontmcp\" CLI is not installed in ${workspaceRoot}. Add it to the workspace ` +\n `(\\`npm install --save-dev frontmcp\\`) so the executors run the version you pinned.`,\n );\n}\n\nexport function buildFrontmcpInvocation(\n context: ExecutorContext,\n args: string[],\n extraEnv: NodeJS.ProcessEnv = {},\n): FrontmcpInvocation {\n return {\n command: process.execPath,\n args: [resolveFrontmcpBin(context.root), ...args],\n cwd: getProjectRoot(context),\n env: { ...process.env, FORCE_COLOR: '1', ...extraEnv },\n };\n}\n\nexport function describeInvocation(invocation: FrontmcpInvocation): string {\n return `frontmcp ${invocation.args.slice(1).join(' ')} (in ${invocation.cwd})`;\n}\n\n/** Run the CLI to completion in the project folder. Never throws: the executor result carries the outcome. */\nexport function runFrontmcp(\n context: ExecutorContext,\n args: string[],\n extraEnv: NodeJS.ProcessEnv = {},\n): { success: boolean } {\n try {\n const invocation = buildFrontmcpInvocation(context, args, extraEnv);\n console.log(`Running: ${describeInvocation(invocation)}`);\n execFileSync(invocation.command, invocation.args, {\n cwd: invocation.cwd,\n stdio: 'inherit',\n env: invocation.env,\n });\n return { success: true };\n } catch (err) {\n // A failing CLI already printed its own output; only report problems that happened before it ran.\n if (err instanceof Error && !('status' in err)) console.error(err.message);\n return { success: false };\n }\n}\n\n/** Start the CLI as a long-running child in the project folder. */\nexport function spawnFrontmcp(\n context: ExecutorContext,\n args: string[],\n extraEnv: NodeJS.ProcessEnv = {},\n): ChildProcess | undefined {\n try {\n const invocation = buildFrontmcpInvocation(context, args, extraEnv);\n console.log(`Running: ${describeInvocation(invocation)}`);\n return spawn(invocation.command, invocation.args, {\n cwd: invocation.cwd,\n stdio: 'inherit',\n env: invocation.env,\n });\n } catch (err) {\n console.error(err instanceof Error ? err.message : String(err));\n return undefined;\n }\n}\n\n/** Resolve with the child's exit code. */\nexport function waitForExit(child: ChildProcess): Promise<number> {\n return new Promise<number>((resolvePromise) => {\n child.on('error', () => resolvePromise(1));\n child.on('close', (code) => resolvePromise(code ?? 1));\n });\n}\n\n/** Stop the child if it is still running — Nx returns from the generator to cancel a long-running executor. */\nexport function stopChild(child: ChildProcess): void {\n if (child.exitCode === null && child.signalCode === null && !child.killed) child.kill();\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspector.impl.js","sourceRoot":"","sources":["../../../../src/executors/inspector/inspector.impl.ts"],"names":[],"mappings":";;AAIA,oCAqBC;AAxBD,wDAA2E;AAG5D,KAAK,SAAS,CAAC,CAAC,iBAAiB,CAC9C,OAAgC,EAChC,OAAwB;IAExB,6GAA6G;IAC7G,MAAM,KAAK,GAAG,IAAA,+BAAa,EACzB,OAAO,EACP,CAAC,WAAW,CAAC,EACb,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CACxE,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACxB,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,IAAA,6BAAW,EAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,IAAA,2BAAS,EAAC,KAAK,CAAC,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import type { ExecutorContext } from '../executor-context.js';\nimport { spawnFrontmcp, stopChild, waitForExit } from '../frontmcp-cli.js';\nimport type { InspectorExecutorSchema } from './schema.js';\n\nexport default async function* inspectorExecutor(\n options: InspectorExecutorSchema,\n context: ExecutorContext,\n): AsyncGenerator<{ success: boolean }> {\n // `frontmcp inspector` takes no flags; the MCP Inspector it launches reads its UI port from the environment.\n const child = spawnFrontmcp(\n context,\n ['inspector'],\n options.port !== undefined ? { CLIENT_PORT: String(options.port) } : {},\n );\n if (!child) {\n yield { success: false };\n return;\n }\n\n try {\n yield { success: true };\n yield { success: (await waitForExit(child)) === 0 };\n } finally {\n stopChild(child);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/executors/inspector/schema.ts"],"names":[],"mappings":"","sourcesContent":["export interface InspectorExecutorSchema {\n port?: number;\n}\n"]}