nx 22.6.0-beta.1 → 22.6.0-beta.10

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 (194) hide show
  1. package/.eslintrc.json +2 -2
  2. package/bin/init-local.d.ts.map +1 -1
  3. package/bin/init-local.js +1 -0
  4. package/bin/nx.js +8 -1
  5. package/migrations.json +12 -0
  6. package/package.json +13 -12
  7. package/plugins/package-json.d.ts +2 -3
  8. package/plugins/package-json.d.ts.map +1 -1
  9. package/plugins/package-json.js +9 -9
  10. package/src/ai/set-up-ai-agents/set-up-ai-agents.d.ts.map +1 -1
  11. package/src/ai/set-up-ai-agents/set-up-ai-agents.js +137 -24
  12. package/src/command-line/ai/ai-output.d.ts +47 -0
  13. package/src/command-line/ai/ai-output.d.ts.map +1 -0
  14. package/src/command-line/ai/ai-output.js +86 -0
  15. package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
  16. package/src/command-line/configure-ai-agents/configure-ai-agents.js +77 -1
  17. package/src/command-line/import/command-object.d.ts.map +1 -1
  18. package/src/command-line/import/command-object.js +21 -3
  19. package/src/command-line/import/import.d.ts +1 -0
  20. package/src/command-line/import/import.d.ts.map +1 -1
  21. package/src/command-line/import/import.js +264 -40
  22. package/src/command-line/import/utils/ai-output.d.ts +94 -0
  23. package/src/command-line/import/utils/ai-output.d.ts.map +1 -0
  24. package/src/command-line/import/utils/ai-output.js +209 -0
  25. package/src/command-line/init/init-v2.d.ts +5 -0
  26. package/src/command-line/init/init-v2.d.ts.map +1 -1
  27. package/src/command-line/init/init-v2.js +1 -0
  28. package/src/command-line/init/utils/ai-output.d.ts +4 -43
  29. package/src/command-line/init/utils/ai-output.d.ts.map +1 -1
  30. package/src/command-line/init/utils/ai-output.js +7 -81
  31. package/src/command-line/list/command-object.d.ts.map +1 -1
  32. package/src/command-line/list/command-object.js +6 -1
  33. package/src/command-line/list/list.d.ts +2 -0
  34. package/src/command-line/list/list.d.ts.map +1 -1
  35. package/src/command-line/list/list.js +5 -1
  36. package/src/command-line/nx-cloud/apply-locally/apply-locally.d.ts +5 -0
  37. package/src/command-line/nx-cloud/apply-locally/apply-locally.d.ts.map +1 -0
  38. package/src/command-line/nx-cloud/apply-locally/apply-locally.js +13 -0
  39. package/src/command-line/nx-cloud/apply-locally/command-object.d.ts +3 -0
  40. package/src/command-line/nx-cloud/apply-locally/command-object.d.ts.map +1 -0
  41. package/src/command-line/nx-cloud/apply-locally/command-object.js +15 -0
  42. package/src/command-line/nx-cloud/login/login.d.ts.map +1 -1
  43. package/src/command-line/nx-cloud/login/login.js +0 -6
  44. package/src/command-line/nx-cloud/logout/logout.d.ts.map +1 -1
  45. package/src/command-line/nx-cloud/logout/logout.js +0 -6
  46. package/src/command-line/nx-cloud/polygraph/command-object.d.ts +3 -0
  47. package/src/command-line/nx-cloud/polygraph/command-object.d.ts.map +1 -0
  48. package/src/command-line/nx-cloud/polygraph/command-object.js +15 -0
  49. package/src/command-line/nx-cloud/polygraph/polygraph.d.ts +5 -0
  50. package/src/command-line/nx-cloud/polygraph/polygraph.d.ts.map +1 -0
  51. package/src/command-line/nx-cloud/polygraph/polygraph.js +7 -0
  52. package/src/command-line/nx-cloud/utils.d.ts.map +1 -1
  53. package/src/command-line/nx-cloud/utils.js +9 -2
  54. package/src/command-line/nx-commands.d.ts.map +1 -1
  55. package/src/command-line/nx-commands.js +11 -7
  56. package/src/command-line/release/config/config.d.ts.map +1 -1
  57. package/src/command-line/release/config/config.js +11 -2
  58. package/src/command-line/release/utils/remote-release-clients/extract-repo-slug.d.ts +10 -0
  59. package/src/command-line/release/utils/remote-release-clients/extract-repo-slug.d.ts.map +1 -0
  60. package/src/command-line/release/utils/remote-release-clients/extract-repo-slug.js +61 -0
  61. package/src/command-line/release/utils/remote-release-clients/github.d.ts.map +1 -1
  62. package/src/command-line/release/utils/remote-release-clients/github.js +8 -13
  63. package/src/command-line/release/utils/remote-release-clients/gitlab.d.ts.map +1 -1
  64. package/src/command-line/release/utils/remote-release-clients/gitlab.js +4 -9
  65. package/src/command-line/release/utils/shared.d.ts +1 -1
  66. package/src/command-line/release/utils/shared.d.ts.map +1 -1
  67. package/src/command-line/release/utils/shared.js +23 -15
  68. package/src/command-line/run/executor-utils.d.ts.map +1 -1
  69. package/src/command-line/run/executor-utils.js +1 -0
  70. package/src/command-line/show/command-object.d.ts +15 -1
  71. package/src/command-line/show/command-object.d.ts.map +1 -1
  72. package/src/command-line/show/command-object.js +116 -2
  73. package/src/command-line/show/target.d.ts +5 -0
  74. package/src/command-line/show/target.d.ts.map +1 -0
  75. package/src/command-line/show/target.js +724 -0
  76. package/src/command-line/watch/watch.js +4 -4
  77. package/src/command-line/yargs-utils/shared-options.d.ts.map +1 -1
  78. package/src/command-line/yargs-utils/shared-options.js +6 -2
  79. package/src/config/misc-interfaces.d.ts +2 -0
  80. package/src/config/misc-interfaces.d.ts.map +1 -1
  81. package/src/core/graph/main.js +1 -1
  82. package/src/daemon/client/client.d.ts.map +1 -1
  83. package/src/daemon/client/client.js +6 -1
  84. package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
  85. package/src/daemon/server/project-graph-incremental-recomputation.js +13 -5
  86. package/src/devkit-internals.d.ts +1 -0
  87. package/src/devkit-internals.d.ts.map +1 -1
  88. package/src/devkit-internals.js +4 -1
  89. package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
  90. package/src/executors/run-commands/running-tasks.js +7 -1
  91. package/src/hasher/hash-plan-inspector.d.ts +11 -3
  92. package/src/hasher/hash-plan-inspector.d.ts.map +1 -1
  93. package/src/hasher/hash-plan-inspector.js +19 -3
  94. package/src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore.d.ts +3 -0
  95. package/src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore.d.ts.map +1 -0
  96. package/src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore.js +14 -0
  97. package/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.d.ts +3 -0
  98. package/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.d.ts.map +1 -0
  99. package/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.js +14 -0
  100. package/src/native/native-bindings.js +331 -116
  101. package/src/native/nx.wasi.cjs +45 -57
  102. package/src/nx-cloud/update-manager.d.ts +4 -1
  103. package/src/nx-cloud/update-manager.d.ts.map +1 -1
  104. package/src/nx-cloud/update-manager.js +7 -6
  105. package/src/nx-cloud/utilities/axios.d.ts +4 -2
  106. package/src/nx-cloud/utilities/axios.d.ts.map +1 -1
  107. package/src/nx-cloud/utilities/axios.js +2 -9
  108. package/src/plugins/js/index.d.ts.map +1 -1
  109. package/src/plugins/js/index.js +42 -6
  110. package/src/plugins/js/lock-file/project-graph-pruning.d.ts.map +1 -1
  111. package/src/plugins/js/lock-file/project-graph-pruning.js +3 -1
  112. package/src/plugins/js/lock-file/utils/pnpm-normalizer.js +1 -0
  113. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts.map +1 -1
  114. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +6 -3
  115. package/src/plugins/package-json/create-nodes.js +2 -2
  116. package/src/project-graph/nx-deps-cache.d.ts +11 -1
  117. package/src/project-graph/nx-deps-cache.d.ts.map +1 -1
  118. package/src/project-graph/nx-deps-cache.js +53 -3
  119. package/src/project-graph/plugins/isolation/isolated-plugin.d.ts.map +1 -1
  120. package/src/project-graph/plugins/isolation/isolated-plugin.js +42 -35
  121. package/src/project-graph/project-graph.d.ts.map +1 -1
  122. package/src/project-graph/project-graph.js +30 -11
  123. package/src/project-graph/utils/project-configuration/name-substitution-manager.d.ts +70 -0
  124. package/src/project-graph/utils/project-configuration/name-substitution-manager.d.ts.map +1 -0
  125. package/src/project-graph/utils/project-configuration/name-substitution-manager.js +427 -0
  126. package/src/project-graph/utils/project-configuration/source-maps.d.ts +70 -0
  127. package/src/project-graph/utils/project-configuration/source-maps.d.ts.map +1 -0
  128. package/src/project-graph/utils/project-configuration/source-maps.js +94 -0
  129. package/src/project-graph/utils/project-configuration-utils.d.ts +5 -3
  130. package/src/project-graph/utils/project-configuration-utils.d.ts.map +1 -1
  131. package/src/project-graph/utils/project-configuration-utils.js +56 -39
  132. package/src/tasks-runner/forked-process-task-runner.d.ts.map +1 -1
  133. package/src/tasks-runner/forked-process-task-runner.js +1 -19
  134. package/src/tasks-runner/life-cycles/tui-summary-life-cycle.d.ts.map +1 -1
  135. package/src/tasks-runner/life-cycles/tui-summary-life-cycle.js +32 -23
  136. package/src/tasks-runner/pseudo-terminal.js +1 -22
  137. package/src/tasks-runner/run-command.d.ts.map +1 -1
  138. package/src/tasks-runner/run-command.js +7 -18
  139. package/src/tasks-runner/running-tasks/batch-process.d.ts +0 -3
  140. package/src/tasks-runner/running-tasks/batch-process.d.ts.map +1 -1
  141. package/src/tasks-runner/running-tasks/batch-process.js +0 -7
  142. package/src/tasks-runner/running-tasks/node-child-process.d.ts.map +1 -1
  143. package/src/tasks-runner/running-tasks/node-child-process.js +6 -37
  144. package/src/tasks-runner/running-tasks/output-prefix.d.ts +14 -0
  145. package/src/tasks-runner/running-tasks/output-prefix.d.ts.map +1 -0
  146. package/src/tasks-runner/running-tasks/output-prefix.js +62 -0
  147. package/src/tasks-runner/task-orchestrator.d.ts +17 -1
  148. package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
  149. package/src/tasks-runner/task-orchestrator.js +267 -113
  150. package/src/tasks-runner/tasks-runner.d.ts +1 -1
  151. package/src/tasks-runner/tasks-runner.d.ts.map +1 -1
  152. package/src/tasks-runner/tasks-schedule.d.ts.map +1 -1
  153. package/src/tasks-runner/tasks-schedule.js +13 -2
  154. package/src/utils/catalog/manager-factory.d.ts.map +1 -1
  155. package/src/utils/catalog/manager-factory.js +3 -0
  156. package/src/utils/catalog/manager.d.ts +4 -4
  157. package/src/utils/catalog/manager.d.ts.map +1 -1
  158. package/src/utils/catalog/manager.js +11 -0
  159. package/src/utils/catalog/pnpm-manager.d.ts +3 -4
  160. package/src/utils/catalog/pnpm-manager.d.ts.map +1 -1
  161. package/src/utils/catalog/pnpm-manager.js +57 -68
  162. package/src/utils/catalog/types.d.ts +7 -0
  163. package/src/utils/catalog/types.d.ts.map +1 -1
  164. package/src/utils/catalog/yarn-manager.d.ts +22 -0
  165. package/src/utils/catalog/yarn-manager.d.ts.map +1 -0
  166. package/src/utils/catalog/yarn-manager.js +249 -0
  167. package/src/utils/child-process.d.ts.map +1 -1
  168. package/src/utils/child-process.js +2 -22
  169. package/src/utils/exit-codes.d.ts +6 -0
  170. package/src/utils/exit-codes.d.ts.map +1 -1
  171. package/src/utils/exit-codes.js +40 -0
  172. package/src/utils/ignore.d.ts +5 -0
  173. package/src/utils/ignore.d.ts.map +1 -1
  174. package/src/utils/ignore.js +16 -0
  175. package/src/utils/output.d.ts.map +1 -1
  176. package/src/utils/package-manager.d.ts.map +1 -1
  177. package/src/utils/package-manager.js +22 -1
  178. package/src/utils/params.d.ts +4 -1
  179. package/src/utils/params.d.ts.map +1 -1
  180. package/src/utils/params.js +30 -3
  181. package/src/utils/plugin-cache-utils.d.ts +74 -0
  182. package/src/utils/plugin-cache-utils.d.ts.map +1 -0
  183. package/src/utils/plugin-cache-utils.js +202 -0
  184. package/src/utils/plugins/output.d.ts +29 -1
  185. package/src/utils/plugins/output.d.ts.map +1 -1
  186. package/src/utils/plugins/output.js +90 -1
  187. package/src/utils/plugins/plugin-capabilities.d.ts +1 -0
  188. package/src/utils/plugins/plugin-capabilities.d.ts.map +1 -1
  189. package/src/utils/plugins/plugin-capabilities.js +2 -0
  190. package/src/utils/split-target.d.ts +2 -1
  191. package/src/utils/split-target.d.ts.map +1 -1
  192. package/src/utils/split-target.js +11 -9
  193. package/src/native/index.d.ts +0 -561
  194. package/src/native/nx.wasm32-wasi.wasm +0 -0
package/.eslintrc.json CHANGED
@@ -144,8 +144,8 @@
144
144
  "@nx/conformance",
145
145
  // Nx Docker plugin conditionally available dynamically at runtime
146
146
  "@nx/docker",
147
- // Only used in test-utils at the time of writing
148
- "@ltd/j-toml"
147
+ // Used in WASI browser implementation (nx.wasi-browser.js)
148
+ "@napi-rs/wasm-runtime"
149
149
  ]
150
150
  }
151
151
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"init-local.d.ts","sourceRoot":"","sources":["../../../../packages/nx/bin/init-local.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAMxE;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,oBAAoB,iBA6C9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,YA6BvD"}
1
+ {"version":3,"file":"init-local.d.ts","sourceRoot":"","sources":["../../../../packages/nx/bin/init-local.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAMxE;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,oBAAoB,iBA8C9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,YA6BvD"}
package/bin/init-local.js CHANGED
@@ -44,6 +44,7 @@ async function initLocal(workspace) {
44
44
  const split = newArgs.indexOf('--');
45
45
  if (help > -1 && (split === -1 || split > help)) {
46
46
  nx_commands_1.commandsObject.showHelp();
47
+ process.exit(0);
47
48
  }
48
49
  else {
49
50
  nx_commands_1.commandsObject.parse(newArgs);
package/bin/nx.js CHANGED
@@ -1,6 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ // TODO: Remove this workaround once picocolors handles FORCE_COLOR=0 correctly
5
+ // See: https://github.com/alexeyraspopov/picocolors/issues/100
6
+ if (process.env.FORCE_COLOR === '0') {
7
+ process.env.NO_COLOR = '1';
8
+ delete process.env.FORCE_COLOR;
9
+ }
4
10
  const find_workspace_root_1 = require("../src/utils/find-workspace-root");
5
11
  const pc = require("picocolors");
6
12
  const dotenv_1 = require("../src/utils/dotenv");
@@ -62,7 +68,7 @@ async function main() {
62
68
  if (process.argv[2] === '--version') {
63
69
  handleNxVersionCommand(LOCAL_NX_VERSION, GLOBAL_NX_VERSION);
64
70
  }
65
- if (!workspace) {
71
+ if (!workspace && !isNxCloudCommand(process.argv[2])) {
66
72
  handleNoWorkspace(GLOBAL_NX_VERSION);
67
73
  }
68
74
  if (!localNx && !isNxCloudCommand(process.argv[2])) {
@@ -150,6 +156,7 @@ function isNxCloudCommand(command) {
150
156
  'view-logs',
151
157
  'fix-ci',
152
158
  'record',
159
+ 'polygraph',
153
160
  ];
154
161
  return nxCloudCommands.includes(command);
155
162
  }
package/migrations.json CHANGED
@@ -136,6 +136,18 @@
136
136
  "version": "22.1.0-beta.5",
137
137
  "description": "Updates the nx wrapper.",
138
138
  "implementation": "./src/migrations/update-22-1-0/update-nx-wrapper"
139
+ },
140
+ "22-6-1-add-claude-worktrees-to-git-ignore": {
141
+ "cli": "nx",
142
+ "version": "22.6.0-beta.10",
143
+ "description": "Adds .claude/worktrees to .gitignore",
144
+ "implementation": "./src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore"
145
+ },
146
+ "22-7-0-add-polygraph-to-git-ignore": {
147
+ "cli": "nx",
148
+ "version": "22.7.0-beta.0",
149
+ "description": "Adds .nx/polygraph to .gitignore",
150
+ "implementation": "./src/migrations/update-22-7-0/add-polygraph-to-git-ignore"
139
151
  }
140
152
  }
141
153
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "22.6.0-beta.1",
3
+ "version": "22.6.0-beta.10",
4
4
  "private": false,
5
5
  "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
6
6
  "repository": {
@@ -34,6 +34,7 @@
34
34
  },
35
35
  "homepage": "https://nx.dev",
36
36
  "dependencies": {
37
+ "@ltd/j-toml": "^1.38.0",
37
38
  "@napi-rs/wasm-runtime": "0.2.4",
38
39
  "@yarnpkg/lockfile": "^1.1.0",
39
40
  "@yarnpkg/parsers": "3.0.2",
@@ -54,7 +55,7 @@
54
55
  "jest-diff": "^30.0.2",
55
56
  "jsonc-parser": "3.2.0",
56
57
  "lines-and-columns": "2.0.3",
57
- "minimatch": "10.1.1",
58
+ "minimatch": "10.2.4",
58
59
  "node-machine-id": "1.1.12",
59
60
  "npm-run-path": "^4.0.1",
60
61
  "open": "^8.4.0",
@@ -84,16 +85,16 @@
84
85
  }
85
86
  },
86
87
  "optionalDependencies": {
87
- "@nx/nx-darwin-arm64": "22.6.0-beta.1",
88
- "@nx/nx-darwin-x64": "22.6.0-beta.1",
89
- "@nx/nx-freebsd-x64": "22.6.0-beta.1",
90
- "@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.1",
91
- "@nx/nx-linux-arm64-gnu": "22.6.0-beta.1",
92
- "@nx/nx-linux-arm64-musl": "22.6.0-beta.1",
93
- "@nx/nx-linux-x64-gnu": "22.6.0-beta.1",
94
- "@nx/nx-linux-x64-musl": "22.6.0-beta.1",
95
- "@nx/nx-win32-arm64-msvc": "22.6.0-beta.1",
96
- "@nx/nx-win32-x64-msvc": "22.6.0-beta.1"
88
+ "@nx/nx-darwin-arm64": "22.6.0-beta.10",
89
+ "@nx/nx-darwin-x64": "22.6.0-beta.10",
90
+ "@nx/nx-freebsd-x64": "22.6.0-beta.10",
91
+ "@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.10",
92
+ "@nx/nx-linux-arm64-gnu": "22.6.0-beta.10",
93
+ "@nx/nx-linux-arm64-musl": "22.6.0-beta.10",
94
+ "@nx/nx-linux-x64-gnu": "22.6.0-beta.10",
95
+ "@nx/nx-linux-x64-musl": "22.6.0-beta.10",
96
+ "@nx/nx-win32-arm64-msvc": "22.6.0-beta.10",
97
+ "@nx/nx-win32-x64-msvc": "22.6.0-beta.10"
97
98
  },
98
99
  "nx-migrations": {
99
100
  "migrations": "./migrations.json",
@@ -1,6 +1,5 @@
1
1
  import { ProjectConfiguration } from '../src/config/workspace-json-project-json';
2
- export type PackageJsonConfigurationCache = {
3
- [hash: string]: ProjectConfiguration;
4
- };
2
+ import { PluginCache } from '../src/utils/plugin-cache-utils';
3
+ export type PackageJsonConfigurationCache = PluginCache<ProjectConfiguration>;
5
4
  export declare function readPackageJsonConfigurationCache(): PackageJsonConfigurationCache;
6
5
  //# sourceMappingURL=package-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../../packages/nx/plugins/package-json.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAGjF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC;CACtC,CAAC;AAIF,wBAAgB,iCAAiC,kCAMhD"}
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../../packages/nx/plugins/package-json.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,MAAM,MAAM,6BAA6B,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAM9E,wBAAgB,iCAAiC,IAAI,6BAA6B,CAGjF"}
@@ -7,17 +7,17 @@ const package_json_1 = require("../src/plugins/package-json");
7
7
  const cache_directory_1 = require("../src/utils/cache-directory");
8
8
  const path_1 = require("path");
9
9
  const fileutils_1 = require("../src/utils/fileutils");
10
+ const plugin_cache_utils_1 = require("../src/utils/plugin-cache-utils");
10
11
  const cachePath = (0, path_1.join)(cache_directory_1.workspaceDataDirectory, 'package-json.hash');
12
+ let packageJsonPluginCache = null;
11
13
  function readPackageJsonConfigurationCache() {
12
- try {
13
- return (0, fileutils_1.readJsonFile)(cachePath);
14
- }
15
- catch (e) {
16
- return {};
17
- }
14
+ packageJsonPluginCache = new plugin_cache_utils_1.PluginCache(cachePath);
15
+ return packageJsonPluginCache;
18
16
  }
19
- function writeCache(cache) {
20
- (0, fileutils_1.writeJsonFile)(cachePath, cache);
17
+ function writeCache() {
18
+ if (packageJsonPluginCache) {
19
+ packageJsonPluginCache.writeToDisk(cachePath);
20
+ }
21
21
  }
22
22
  const plugin = {
23
23
  name: 'nx-all-package-jsons-plugin',
@@ -28,7 +28,7 @@ const plugin = {
28
28
  const patterns = (0, package_json_1.buildPackageJsonPatterns)(context.workspaceRoot, (f) => (0, fileutils_1.readJsonFile)((0, path_1.join)(context.workspaceRoot, f)));
29
29
  const isInPackageJsonWorkspaces = (0, package_json_1.buildPackageJsonWorkspacesMatcher)(patterns);
30
30
  const result = (0, plugins_1.createNodesFromFiles)((packageJsonPath) => (0, package_json_1.createNodeFromPackageJson)(packageJsonPath, workspace_root_1.workspaceRoot, cache, isInPackageJsonWorkspaces(packageJsonPath)), configFiles, options, context);
31
- writeCache(cache);
31
+ writeCache();
32
32
  return result;
33
33
  },
34
34
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAwB5B,OAAO,EACL,sCAAsC,EACtC,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAmCF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,EACrC,KAAK,UAAQ,GACZ,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmC5D;AAaD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAgO7C;AAqJD,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAuB5B,OAAO,EACL,sCAAsC,EACtC,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAmCF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,EACrC,KAAK,UAAQ,GACZ,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmC5D;AAaD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAoP7C;AAuRD,eAAe,sBAAsB,CAAC"}
@@ -5,17 +5,18 @@ exports.setupAiAgentsGeneratorImpl = setupAiAgentsGeneratorImpl;
5
5
  const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
7
  const semver_1 = require("semver");
8
+ const j_toml_1 = require("@ltd/j-toml");
8
9
  const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
9
10
  const generate_files_1 = require("../../generators/utils/generate-files");
10
11
  const json_1 = require("../../generators/utils/json");
11
12
  const native_1 = require("../../native");
12
13
  const package_json_1 = require("../../utils/package-json");
14
+ const ignore_1 = require("../../utils/ignore");
13
15
  const provenance_1 = require("../../utils/provenance");
14
16
  const workspace_root_1 = require("../../utils/workspace-root");
15
17
  const constants_1 = require("../constants");
16
18
  const clone_ai_config_repo_1 = require("../clone-ai-config-repo");
17
19
  const utils_1 = require("../utils");
18
- const constants_2 = require("../constants");
19
20
  /**
20
21
  * Get the installed Nx version, with fallback to workspace package.json or default version.
21
22
  */
@@ -97,6 +98,7 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
97
98
  ...json.extraKnownMarketplaces,
98
99
  'nx-claude-plugins': {
99
100
  source: {
101
+ ...json.extraKnownMarketplaces?.['nx-claude-plugins']?.source,
100
102
  source: 'github',
101
103
  repo: 'nrwl/nx-ai-agents-config',
102
104
  },
@@ -137,19 +139,25 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
137
139
  }
138
140
  (0, json_1.updateJson)(tree, opencodeMcpJsonPath, (json) => opencodeMcpConfigUpdater(json, nxVersion));
139
141
  }
140
- if (hasAgent('codex')) {
141
- const codexTomlPath = (0, path_1.join)(options.directory, '.codex', 'config.toml');
142
- const tomlConfig = (0, constants_2.getNxMcpTomlConfig)(nxVersion);
143
- if (!tree.exists(codexTomlPath)) {
144
- tree.write(codexTomlPath, tomlConfig);
142
+ // Get the ai-config repo path once for all non-Claude agents that need it
143
+ const needsAiConfigRepo = hasAgent('codex') ||
144
+ hasAgent('opencode') ||
145
+ hasAgent('copilot') ||
146
+ hasAgent('cursor') ||
147
+ hasAgent('gemini');
148
+ let aiConfigRepoPath;
149
+ if (needsAiConfigRepo) {
150
+ try {
151
+ aiConfigRepoPath = (0, clone_ai_config_repo_1.getAiConfigRepoPath)();
145
152
  }
146
- else {
147
- const existing = tree.read(codexTomlPath, 'utf-8');
148
- if (!existing.includes(constants_2.nxMcpTomlHeader)) {
149
- tree.write(codexTomlPath, existing + '\n' + tomlConfig);
150
- }
153
+ catch {
154
+ // Network/clone failure individual consumers handle fallback
151
155
  }
152
156
  }
157
+ if (hasAgent('codex')) {
158
+ const codexTomlPath = (0, path_1.join)(options.directory, '.codex', 'config.toml');
159
+ writeCodexConfig(tree, codexTomlPath, nxVersion, aiConfigRepoPath);
160
+ }
153
161
  if (hasAgent('gemini')) {
154
162
  const geminiSettingsPath = (0, path_1.join)(options.directory, '.gemini', 'settings.json');
155
163
  if (!tree.exists(geminiSettingsPath)) {
@@ -171,17 +179,18 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
171
179
  }
172
180
  }
173
181
  // Copy extensibility artifacts (commands, skills, subagents) for non-Claude agents
174
- if (hasAgent('opencode') ||
175
- hasAgent('copilot') ||
176
- hasAgent('cursor') ||
177
- hasAgent('codex') ||
178
- hasAgent('gemini')) {
179
- const repoPath = (0, clone_ai_config_repo_1.getAiConfigRepoPath)();
182
+ if (aiConfigRepoPath) {
183
+ const repoPath = aiConfigRepoPath;
180
184
  const agentDirs = [
181
185
  { agent: 'opencode', src: 'generated/.opencode', dest: '.opencode' },
182
186
  { agent: 'copilot', src: 'generated/.github', dest: '.github' },
183
187
  { agent: 'cursor', src: 'generated/.cursor', dest: '.cursor' },
184
188
  { agent: 'codex', src: 'generated/.agents', dest: '.agents' },
189
+ {
190
+ agent: 'codex',
191
+ src: 'generated/.codex/agents',
192
+ dest: '.codex/agents',
193
+ },
185
194
  { agent: 'gemini', src: 'generated/.gemini', dest: '.gemini' },
186
195
  ];
187
196
  for (const { agent, src, dest } of agentDirs) {
@@ -193,6 +202,8 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
193
202
  }
194
203
  }
195
204
  }
205
+ (0, ignore_1.addEntryToGitIgnore)(tree, (0, path_1.join)(options.directory, '.gitignore'), '.nx/polygraph');
206
+ (0, ignore_1.addEntryToGitIgnore)(tree, (0, path_1.join)(options.directory, '.gitignore'), '.claude/worktrees');
196
207
  await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree);
197
208
  // we use the check variable to determine if we should actually make changes or just report what would be changed
198
209
  return async (check = false) => {
@@ -262,7 +273,7 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
262
273
  function writeAgentRules(tree, path, writeNxCloudRules) {
263
274
  if (!tree.exists(path)) {
264
275
  // File doesn't exist - create with h1 header (standalone content)
265
- const expectedRules = (0, constants_2.getAgentRulesWrapped)({
276
+ const expectedRules = (0, constants_1.getAgentRulesWrapped)({
266
277
  writeNxCloudRules,
267
278
  useH1: true,
268
279
  });
@@ -270,21 +281,21 @@ function writeAgentRules(tree, path, writeNxCloudRules) {
270
281
  return;
271
282
  }
272
283
  const existing = tree.read(path, 'utf-8');
273
- const regex = constants_2.rulesRegex;
284
+ const regex = constants_1.rulesRegex;
274
285
  const existingNxConfiguration = existing.match(regex);
275
286
  if (existingNxConfiguration) {
276
287
  // Check the rest of the file (outside nx block) for an h1 header
277
288
  // to ensure only one h1 exists in the document
278
289
  const contentWithoutNxBlock = existing.replace(regex, '');
279
290
  const hasExternalH1 = /^# /m.test(contentWithoutNxBlock);
280
- const expectedRules = (0, constants_2.getAgentRulesWrapped)({
291
+ const expectedRules = (0, constants_1.getAgentRulesWrapped)({
281
292
  writeNxCloudRules,
282
293
  useH1: !hasExternalH1,
283
294
  });
284
295
  const contentOnly = (str) => str
285
- .replace(constants_2.nxRulesMarkerCommentStart, '')
286
- .replace(constants_2.nxRulesMarkerCommentEnd, '')
287
- .replace(constants_2.nxRulesMarkerCommentDescription, '')
296
+ .replace(constants_1.nxRulesMarkerCommentStart, '')
297
+ .replace(constants_1.nxRulesMarkerCommentEnd, '')
298
+ .replace(constants_1.nxRulesMarkerCommentDescription, '')
288
299
  .replace(/\s/g, '');
289
300
  // we don't want to make updates on whitespace-only changes
290
301
  if (contentOnly(existingNxConfiguration[0]) === contentOnly(expectedRules)) {
@@ -298,13 +309,115 @@ function writeAgentRules(tree, path, writeNxCloudRules) {
298
309
  // Appending to existing content - use h2 only if the file already has an h1 header
299
310
  // This prevents unnecessary changes when users add content without their own h1
300
311
  const hasExistingH1 = /^# /m.test(existing);
301
- const expectedRules = (0, constants_2.getAgentRulesWrapped)({
312
+ const expectedRules = (0, constants_1.getAgentRulesWrapped)({
302
313
  writeNxCloudRules,
303
314
  useH1: !hasExistingH1,
304
315
  });
305
316
  tree.write(path, existing + '\n\n' + expectedRules);
306
317
  }
307
318
  }
319
+ /**
320
+ * Write or merge the Codex config.toml.
321
+ *
322
+ * Reads the generated config.toml from the nx-ai-agents-config repo (which
323
+ * contains MCP servers, agent definitions, and feature flags) and deep-merges
324
+ * it into the user's existing config.toml using proper TOML parsing.
325
+ *
326
+ * Merge rules:
327
+ * - [mcp_servers."nx-mcp"] — upsert with version-adjusted args, preserving extra user args
328
+ * - [features] multi_agent — set to true unless user has explicitly set it to false
329
+ * - [agents.*] — upsert each agent definition
330
+ * - All other user config is preserved untouched
331
+ *
332
+ * Falls back to a minimal hardcoded MCP config if the generated file is unavailable.
333
+ */
334
+ function writeCodexConfig(tree, codexTomlPath, nxVersion, aiConfigRepoPath) {
335
+ let generated = null;
336
+ if (aiConfigRepoPath) {
337
+ const generatedConfigPath = (0, path_1.join)(aiConfigRepoPath, 'generated', '.codex', 'config.toml');
338
+ if ((0, fs_1.existsSync)(generatedConfigPath)) {
339
+ const generatedConfig = (0, fs_1.readFileSync)(generatedConfigPath, 'utf-8');
340
+ generated = j_toml_1.default.parse(generatedConfig);
341
+ }
342
+ }
343
+ if (!generated) {
344
+ // Fallback: use hardcoded MCP-only config (no agents/features)
345
+ const tomlConfig = (0, constants_1.getNxMcpTomlConfig)(nxVersion);
346
+ if (!tree.exists(codexTomlPath)) {
347
+ tree.write(codexTomlPath, tomlConfig);
348
+ }
349
+ else {
350
+ const existing = tree.read(codexTomlPath, 'utf-8');
351
+ if (!existing.includes(constants_1.nxMcpTomlHeader)) {
352
+ tree.write(codexTomlPath, existing + '\n' + tomlConfig);
353
+ }
354
+ }
355
+ return;
356
+ }
357
+ // Parse existing config (or start empty)
358
+ let config = {};
359
+ if (tree.exists(codexTomlPath)) {
360
+ try {
361
+ config = j_toml_1.default.parse(tree.read(codexTomlPath, 'utf-8'));
362
+ }
363
+ catch {
364
+ // If existing file can't be parsed, start fresh
365
+ config = {};
366
+ }
367
+ }
368
+ // ── Merge MCP servers ──
369
+ const majorVersion = (0, semver_1.major)(nxVersion);
370
+ const mcpArgs = majorVersion >= 22 ? ['nx', 'mcp'] : ['nx-mcp'];
371
+ // Preserve extra user args from existing config
372
+ const existingArgs = config.mcp_servers?.['nx-mcp']?.args ?? [];
373
+ const extraArgs = stripKnownMcpBaseArgs(existingArgs);
374
+ mcpArgs.push(...extraArgs);
375
+ config.mcp_servers ??= {};
376
+ config.mcp_servers['nx-mcp'] = {
377
+ command: 'npx',
378
+ args: mcpArgs,
379
+ };
380
+ // ── Merge features ──
381
+ // Only set multi_agent = true if user hasn't explicitly set it to false
382
+ const userSetMultiAgentFalse = config.features?.multi_agent === false;
383
+ if (!userSetMultiAgentFalse && generated.features) {
384
+ config.features ??= {};
385
+ Object.assign(config.features, generated.features);
386
+ }
387
+ // ── Merge agents ──
388
+ if (generated.agents) {
389
+ config.agents ??= {};
390
+ for (const [name, def] of Object.entries(generated.agents)) {
391
+ config.agents[name] = def;
392
+ }
393
+ }
394
+ // ── Serialize and write ──
395
+ const tomlString = j_toml_1.default.stringify(config, {
396
+ newlineAround: 'section',
397
+ });
398
+ tree.write(codexTomlPath, Array.isArray(tomlString) ? tomlString.join('\n') : tomlString);
399
+ }
400
+ /**
401
+ * Strip known MCP base command args (["nx", "mcp"] or ["nx-mcp"]) from an
402
+ * args array, returning only the extra user-added args.
403
+ */
404
+ function stripKnownMcpBaseArgs(args) {
405
+ const knownBasePatterns = [['nx', 'mcp'], ['nx-mcp']];
406
+ for (const pattern of knownBasePatterns) {
407
+ if (args.length < pattern.length)
408
+ continue;
409
+ const matches = pattern.every((baseArg, i) => {
410
+ if (baseArg === 'nx-mcp') {
411
+ return args[i] === 'nx-mcp' || args[i].startsWith('nx-mcp@');
412
+ }
413
+ return args[i] === baseArg;
414
+ });
415
+ if (matches) {
416
+ return args.slice(pattern.length);
417
+ }
418
+ }
419
+ return [];
420
+ }
308
421
  /**
309
422
  * Extract user-added extra args/flags from an existing MCP config args array
310
423
  * by stripping the known base command prefix.
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Shared AI Agent NDJSON Output Utilities
3
+ *
4
+ * Base types and utilities for AI agent output across all Nx commands.
5
+ * Each command extends with its own specific progress stages, error codes, and result types.
6
+ */
7
+ export type BaseProgressStage = 'starting' | 'complete' | 'error' | 'needs_input';
8
+ export interface ProgressMessage {
9
+ stage: string;
10
+ message: string;
11
+ }
12
+ export interface DetectedPlugin {
13
+ name: string;
14
+ reason: string;
15
+ }
16
+ export interface NextStep {
17
+ title: string;
18
+ command?: string;
19
+ url?: string;
20
+ note?: string;
21
+ }
22
+ export interface UserNextSteps {
23
+ description: string;
24
+ steps: NextStep[];
25
+ }
26
+ export interface PluginWarning {
27
+ plugin: string;
28
+ error: string;
29
+ hint: string;
30
+ }
31
+ /**
32
+ * Write NDJSON message to stdout.
33
+ * Only outputs if running under an AI agent.
34
+ * Each message is a single line of JSON.
35
+ */
36
+ export declare function writeAiOutput(message: Record<string, any>): void;
37
+ /**
38
+ * Log progress stage.
39
+ * Only outputs if running under an AI agent.
40
+ */
41
+ export declare function logProgress(stage: string, message: string): void;
42
+ /**
43
+ * Write detailed error information to a temp file for AI debugging.
44
+ * Returns the path to the error log file.
45
+ */
46
+ export declare function writeErrorLog(error: Error | unknown, commandName?: string): string;
47
+ //# sourceMappingURL=ai-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-output.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/ai/ai-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,UAAU,GACV,OAAO,GACP,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAoChE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,KAAK,GAAG,OAAO,EACtB,WAAW,GAAE,MAAa,GACzB,MAAM,CAwBR"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Shared AI Agent NDJSON Output Utilities
4
+ *
5
+ * Base types and utilities for AI agent output across all Nx commands.
6
+ * Each command extends with its own specific progress stages, error codes, and result types.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.writeAiOutput = writeAiOutput;
10
+ exports.logProgress = logProgress;
11
+ exports.writeErrorLog = writeErrorLog;
12
+ const os_1 = require("os");
13
+ const path_1 = require("path");
14
+ const fs_1 = require("fs");
15
+ const native_1 = require("../../native");
16
+ /**
17
+ * Write NDJSON message to stdout.
18
+ * Only outputs if running under an AI agent.
19
+ * Each message is a single line of JSON.
20
+ */
21
+ function writeAiOutput(message) {
22
+ if ((0, native_1.isAiAgent)()) {
23
+ process.stdout.write(JSON.stringify(message) + '\n');
24
+ // For success results, output plain text instructions that the agent can show the user
25
+ if (message.stage === 'complete' &&
26
+ 'success' in message &&
27
+ message.success &&
28
+ 'userNextSteps' in message) {
29
+ const steps = message.userNextSteps?.steps;
30
+ if (Array.isArray(steps)) {
31
+ let plainText = '\n---USER_NEXT_STEPS---\n';
32
+ plainText +=
33
+ '[DISPLAY] Show the user these next steps to complete setup:\n\n';
34
+ steps.forEach((step, i) => {
35
+ plainText += `${i + 1}. ${step.title}`;
36
+ if (step.command) {
37
+ plainText += `\n Run: ${step.command}`;
38
+ }
39
+ if (step.url) {
40
+ plainText += `\n Visit: ${step.url}`;
41
+ }
42
+ if (step.note) {
43
+ plainText += `\n ${step.note}`;
44
+ }
45
+ plainText += '\n';
46
+ });
47
+ plainText += '---END---\n';
48
+ process.stdout.write(plainText);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ /**
54
+ * Log progress stage.
55
+ * Only outputs if running under an AI agent.
56
+ */
57
+ function logProgress(stage, message) {
58
+ writeAiOutput({ stage, message });
59
+ }
60
+ /**
61
+ * Write detailed error information to a temp file for AI debugging.
62
+ * Returns the path to the error log file.
63
+ */
64
+ function writeErrorLog(error, commandName = 'nx') {
65
+ const timestamp = Date.now();
66
+ const errorLogPath = (0, path_1.join)((0, os_1.tmpdir)(), `${commandName}-error-${timestamp}.log`);
67
+ let errorDetails = `Nx ${commandName} Error Log\n`;
68
+ errorDetails += `==================\n`;
69
+ errorDetails += `Timestamp: ${new Date(timestamp).toISOString()}\n\n`;
70
+ if (error instanceof Error) {
71
+ errorDetails += `Error: ${error.message}\n\n`;
72
+ if (error.stack) {
73
+ errorDetails += `Stack Trace:\n${error.stack}\n`;
74
+ }
75
+ }
76
+ else {
77
+ errorDetails += `Error: ${String(error)}\n`;
78
+ }
79
+ try {
80
+ (0, fs_1.writeFileSync)(errorLogPath, errorDetails);
81
+ }
82
+ catch {
83
+ return '';
84
+ }
85
+ return errorLogPath;
86
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"configure-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/configure-ai-agents/configure-ai-agents.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,wBAAwB,EAC9B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAyOf"}
1
+ {"version":3,"file":"configure-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/configure-ai-agents/configure-ai-agents.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,wBAAwB,EAC9B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAsUf"}