@mrpatronz/nexusflow 2.7.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/README.md +16 -14
  2. package/dist/agent/ClaudeSdkAdapter.d.ts.map +1 -1
  3. package/dist/agent/ClaudeSdkAdapter.js +31 -8
  4. package/dist/agent/ClaudeSdkAdapter.js.map +1 -1
  5. package/dist/agent/ClaudeSdkAdapter.test.js +18 -6
  6. package/dist/agent/ClaudeSdkAdapter.test.js.map +1 -1
  7. package/dist/agent/CodexCliAdapter.d.ts +1 -1
  8. package/dist/agent/CodexCliAdapter.d.ts.map +1 -1
  9. package/dist/agent/CodexCliAdapter.js +5 -4
  10. package/dist/agent/CodexCliAdapter.js.map +1 -1
  11. package/dist/agent/CodexCliAdapter.test.js +16 -1
  12. package/dist/agent/CodexCliAdapter.test.js.map +1 -1
  13. package/dist/agent/CodexSdkAdapter.d.ts.map +1 -1
  14. package/dist/agent/CodexSdkAdapter.js +6 -0
  15. package/dist/agent/CodexSdkAdapter.js.map +1 -1
  16. package/dist/agent/ProviderRegistry.d.ts +5 -0
  17. package/dist/agent/ProviderRegistry.d.ts.map +1 -1
  18. package/dist/agent/ProviderRegistry.js +15 -0
  19. package/dist/agent/ProviderRegistry.js.map +1 -1
  20. package/dist/agent/ProviderRegistry.test.js +19 -0
  21. package/dist/agent/ProviderRegistry.test.js.map +1 -1
  22. package/dist/agent/adapters.d.ts.map +1 -1
  23. package/dist/agent/adapters.js +5 -0
  24. package/dist/agent/adapters.js.map +1 -1
  25. package/dist/agent/mcp-config.d.ts +16 -0
  26. package/dist/agent/mcp-config.d.ts.map +1 -0
  27. package/dist/agent/mcp-config.js +28 -0
  28. package/dist/agent/mcp-config.js.map +1 -0
  29. package/dist/agent/mcp-config.test.d.ts +2 -0
  30. package/dist/agent/mcp-config.test.d.ts.map +1 -0
  31. package/dist/agent/mcp-config.test.js +22 -0
  32. package/dist/agent/mcp-config.test.js.map +1 -0
  33. package/dist/agent/models.d.ts +10 -0
  34. package/dist/agent/models.d.ts.map +1 -0
  35. package/dist/agent/models.js +35 -0
  36. package/dist/agent/models.js.map +1 -0
  37. package/dist/agent/models.test.d.ts +2 -0
  38. package/dist/agent/models.test.d.ts.map +1 -0
  39. package/dist/agent/models.test.js +40 -0
  40. package/dist/agent/models.test.js.map +1 -0
  41. package/dist/agent/orchestrator.d.ts +65 -0
  42. package/dist/agent/orchestrator.d.ts.map +1 -0
  43. package/dist/agent/orchestrator.js +260 -0
  44. package/dist/agent/orchestrator.js.map +1 -0
  45. package/dist/agent/orchestrator.test.d.ts +2 -0
  46. package/dist/agent/orchestrator.test.d.ts.map +1 -0
  47. package/dist/agent/orchestrator.test.js +284 -0
  48. package/dist/agent/orchestrator.test.js.map +1 -0
  49. package/dist/agent/session.d.ts +1 -0
  50. package/dist/agent/session.d.ts.map +1 -1
  51. package/dist/agent/session.js +3 -2
  52. package/dist/agent/session.js.map +1 -1
  53. package/dist/agent/session.test.js +9 -0
  54. package/dist/agent/session.test.js.map +1 -1
  55. package/dist/agent/smoke-chat.test.d.ts +2 -0
  56. package/dist/agent/smoke-chat.test.d.ts.map +1 -0
  57. package/dist/agent/smoke-chat.test.js +166 -0
  58. package/dist/agent/smoke-chat.test.js.map +1 -0
  59. package/dist/commands/commands.test.js +3 -0
  60. package/dist/commands/commands.test.js.map +1 -1
  61. package/dist/commands/doctor.d.ts.map +1 -1
  62. package/dist/commands/doctor.js +2 -0
  63. package/dist/commands/doctor.js.map +1 -1
  64. package/dist/commands/init.d.ts +3 -1
  65. package/dist/commands/init.d.ts.map +1 -1
  66. package/dist/commands/init.js +9 -1
  67. package/dist/commands/init.js.map +1 -1
  68. package/dist/commands/knowledge.d.ts +9 -0
  69. package/dist/commands/knowledge.d.ts.map +1 -1
  70. package/dist/commands/knowledge.js +59 -2
  71. package/dist/commands/knowledge.js.map +1 -1
  72. package/dist/commands/knowledge.test.js +14 -1
  73. package/dist/commands/knowledge.test.js.map +1 -1
  74. package/dist/commands/mcp.d.ts +7 -1
  75. package/dist/commands/mcp.d.ts.map +1 -1
  76. package/dist/commands/mcp.js +7 -2
  77. package/dist/commands/mcp.js.map +1 -1
  78. package/dist/commands/progress.d.ts +4 -0
  79. package/dist/commands/progress.d.ts.map +1 -0
  80. package/dist/commands/progress.js +33 -0
  81. package/dist/commands/progress.js.map +1 -0
  82. package/dist/commands/refresh.d.ts +1 -0
  83. package/dist/commands/refresh.d.ts.map +1 -1
  84. package/dist/commands/refresh.js +17 -2
  85. package/dist/commands/refresh.js.map +1 -1
  86. package/dist/commands/remote.d.ts +4 -0
  87. package/dist/commands/remote.d.ts.map +1 -0
  88. package/dist/commands/remote.js +28 -0
  89. package/dist/commands/remote.js.map +1 -0
  90. package/dist/commands/status.d.ts.map +1 -1
  91. package/dist/commands/status.js +14 -1
  92. package/dist/commands/status.js.map +1 -1
  93. package/dist/commands/status.test.d.ts +2 -0
  94. package/dist/commands/status.test.d.ts.map +1 -0
  95. package/dist/commands/status.test.js +31 -0
  96. package/dist/commands/status.test.js.map +1 -0
  97. package/dist/core/analysis-cache.d.ts +13 -3
  98. package/dist/core/analysis-cache.d.ts.map +1 -1
  99. package/dist/core/analysis-cache.js +41 -31
  100. package/dist/core/analysis-cache.js.map +1 -1
  101. package/dist/core/analysis-cache.test.js +50 -8
  102. package/dist/core/analysis-cache.test.js.map +1 -1
  103. package/dist/core/doctor.d.ts.map +1 -1
  104. package/dist/core/doctor.js +61 -0
  105. package/dist/core/doctor.js.map +1 -1
  106. package/dist/core/generation-lock.d.ts +58 -0
  107. package/dist/core/generation-lock.d.ts.map +1 -0
  108. package/dist/core/generation-lock.js +233 -0
  109. package/dist/core/generation-lock.js.map +1 -0
  110. package/dist/core/generation-lock.test.d.ts +2 -0
  111. package/dist/core/generation-lock.test.d.ts.map +1 -0
  112. package/dist/core/generation-lock.test.js +134 -0
  113. package/dist/core/generation-lock.test.js.map +1 -0
  114. package/dist/core/isolate.test.js +30 -0
  115. package/dist/core/isolate.test.js.map +1 -1
  116. package/dist/core/knowledge.d.ts +20 -0
  117. package/dist/core/knowledge.d.ts.map +1 -1
  118. package/dist/core/knowledge.js +184 -36
  119. package/dist/core/knowledge.js.map +1 -1
  120. package/dist/core/knowledge.test.js +93 -15
  121. package/dist/core/knowledge.test.js.map +1 -1
  122. package/dist/core/locks.d.ts +4 -2
  123. package/dist/core/locks.d.ts.map +1 -1
  124. package/dist/core/locks.js +55 -7
  125. package/dist/core/locks.js.map +1 -1
  126. package/dist/core/locks.test.js +48 -0
  127. package/dist/core/locks.test.js.map +1 -1
  128. package/dist/core/progress.d.ts +21 -0
  129. package/dist/core/progress.d.ts.map +1 -0
  130. package/dist/core/progress.js +40 -0
  131. package/dist/core/progress.js.map +1 -0
  132. package/dist/core/progress.test.d.ts +2 -0
  133. package/dist/core/progress.test.d.ts.map +1 -0
  134. package/dist/core/progress.test.js +52 -0
  135. package/dist/core/progress.test.js.map +1 -0
  136. package/dist/core/refresh.d.ts +5 -0
  137. package/dist/core/refresh.d.ts.map +1 -1
  138. package/dist/core/refresh.js +25 -0
  139. package/dist/core/refresh.js.map +1 -1
  140. package/dist/core/refresh.test.js +20 -0
  141. package/dist/core/refresh.test.js.map +1 -1
  142. package/dist/core/status.d.ts +2 -0
  143. package/dist/core/status.d.ts.map +1 -1
  144. package/dist/core/status.js +6 -1
  145. package/dist/core/status.js.map +1 -1
  146. package/dist/core/sync.d.ts.map +1 -1
  147. package/dist/core/sync.js +22 -1
  148. package/dist/core/sync.js.map +1 -1
  149. package/dist/core/sync.test.js +27 -0
  150. package/dist/core/sync.test.js.map +1 -1
  151. package/dist/core/workspace-git.d.ts +15 -0
  152. package/dist/core/workspace-git.d.ts.map +1 -0
  153. package/dist/core/workspace-git.js +131 -0
  154. package/dist/core/workspace-git.js.map +1 -0
  155. package/dist/core/workspace-git.test.d.ts +2 -0
  156. package/dist/core/workspace-git.test.d.ts.map +1 -0
  157. package/dist/core/workspace-git.test.js +52 -0
  158. package/dist/core/workspace-git.test.js.map +1 -0
  159. package/dist/core/workspace-skills-workflow.integration.test.js +15 -0
  160. package/dist/core/workspace-skills-workflow.integration.test.js.map +1 -1
  161. package/dist/core/workspace.create.test.js +5 -2
  162. package/dist/core/workspace.create.test.js.map +1 -1
  163. package/dist/core/workspace.d.ts.map +1 -1
  164. package/dist/core/workspace.js +11 -6
  165. package/dist/core/workspace.js.map +1 -1
  166. package/dist/generators/antigravity.d.ts.map +1 -1
  167. package/dist/generators/antigravity.js +2 -1
  168. package/dist/generators/antigravity.js.map +1 -1
  169. package/dist/generators/base.d.ts.map +1 -1
  170. package/dist/generators/base.js +5 -3
  171. package/dist/generators/base.js.map +1 -1
  172. package/dist/generators/claude.d.ts.map +1 -1
  173. package/dist/generators/claude.js +4 -1
  174. package/dist/generators/claude.js.map +1 -1
  175. package/dist/generators/codex.d.ts.map +1 -1
  176. package/dist/generators/codex.js +2 -1
  177. package/dist/generators/codex.js.map +1 -1
  178. package/dist/generators/copilot.d.ts.map +1 -1
  179. package/dist/generators/copilot.js +4 -3
  180. package/dist/generators/copilot.js.map +1 -1
  181. package/dist/generators/cursor.d.ts.map +1 -1
  182. package/dist/generators/cursor.js +6 -3
  183. package/dist/generators/cursor.js.map +1 -1
  184. package/dist/generators/index.d.ts +2 -0
  185. package/dist/generators/index.d.ts.map +1 -1
  186. package/dist/generators/index.js +79 -45
  187. package/dist/generators/index.js.map +1 -1
  188. package/dist/generators/knowledge-migration.test.d.ts +2 -0
  189. package/dist/generators/knowledge-migration.test.d.ts.map +1 -0
  190. package/dist/generators/knowledge-migration.test.js +22 -0
  191. package/dist/generators/knowledge-migration.test.js.map +1 -0
  192. package/dist/generators/plan-generator.d.ts.map +1 -1
  193. package/dist/generators/plan-generator.js +18 -9
  194. package/dist/generators/plan-generator.js.map +1 -1
  195. package/dist/generators/plan-generator.test.js +4 -1
  196. package/dist/generators/plan-generator.test.js.map +1 -1
  197. package/dist/gui/assets/AgentsPage-B4fx43rd.js +3 -0
  198. package/dist/gui/assets/{CSPContext-BG7no5S_.js → CSPContext-DBUu9tE0.js} +1 -1
  199. package/dist/gui/assets/{DashboardPage-ByGTwAQa.js → DashboardPage-DH52G8IG.js} +1 -1
  200. package/dist/gui/assets/{GettingStartedPage-Xjx3M3RH.js → GettingStartedPage-BlTrQhvi.js} +1 -1
  201. package/dist/gui/assets/ProjectsPage-BPVSLPXv.js +1 -0
  202. package/dist/gui/assets/ScaffoldRepoInline-ywcpq9PX.js +1 -0
  203. package/dist/gui/assets/{SettingsPage-B9iN6hsv.js → SettingsPage-RQr8SalV.js} +1 -1
  204. package/dist/gui/assets/SkillsPage-CYoSRrwx.js +6 -0
  205. package/dist/gui/assets/StartWorkPage-DBKK4lFi.js +1 -0
  206. package/dist/gui/assets/{StrategiesPage-DDu3jwJx.js → StrategiesPage-C36TZgDX.js} +1 -1
  207. package/dist/gui/assets/WorkspacesPage-DxEONvSq.js +6 -0
  208. package/dist/gui/assets/{alert-dialog-CdqVrvZl.js → alert-dialog-CQAX2yRx.js} +1 -1
  209. package/dist/gui/assets/index-BF6pre6G.css +2 -0
  210. package/dist/gui/assets/index-C_rwnBzF.js +52 -0
  211. package/dist/gui/assets/isElementDisabled-uy_EOitH.js +1 -0
  212. package/dist/gui/assets/textarea-ByfoCb54.js +1 -0
  213. package/dist/gui/assets/{useAriaLabelledBy-DfRdwH8a.js → useAriaLabelledBy-ClesgjMe.js} +1 -1
  214. package/dist/gui/assets/useValueChanged-DeYvGnKs.js +1 -0
  215. package/dist/gui/assets/{vsc-D6UPv2ii.js → vsc-DFh0-53h.js} +1 -1
  216. package/dist/gui/index.html +5 -7
  217. package/dist/harness/claude.d.ts +3 -1
  218. package/dist/harness/claude.d.ts.map +1 -1
  219. package/dist/harness/claude.js +4 -2
  220. package/dist/harness/claude.js.map +1 -1
  221. package/dist/harness/codex.d.ts +3 -1
  222. package/dist/harness/codex.d.ts.map +1 -1
  223. package/dist/harness/codex.js +64 -12
  224. package/dist/harness/codex.js.map +1 -1
  225. package/dist/harness/contract.test.d.ts +2 -0
  226. package/dist/harness/contract.test.d.ts.map +1 -0
  227. package/dist/harness/contract.test.js +426 -0
  228. package/dist/harness/contract.test.js.map +1 -0
  229. package/dist/harness/harness.test.js +16 -1
  230. package/dist/harness/harness.test.js.map +1 -1
  231. package/dist/harness/types.d.ts +7 -1
  232. package/dist/harness/types.d.ts.map +1 -1
  233. package/dist/index.js +52 -5
  234. package/dist/index.js.map +1 -1
  235. package/dist/mcp/server.d.ts +8 -1
  236. package/dist/mcp/server.d.ts.map +1 -1
  237. package/dist/mcp/server.js +11 -6
  238. package/dist/mcp/server.js.map +1 -1
  239. package/dist/mcp/tools.d.ts +6 -2
  240. package/dist/mcp/tools.d.ts.map +1 -1
  241. package/dist/mcp/tools.js +232 -14
  242. package/dist/mcp/tools.js.map +1 -1
  243. package/dist/mcp/tools.test.js +130 -6
  244. package/dist/mcp/tools.test.js.map +1 -1
  245. package/dist/resources/materializer.d.ts.map +1 -1
  246. package/dist/resources/materializer.js +11 -3
  247. package/dist/resources/materializer.js.map +1 -1
  248. package/dist/server.d.ts.map +1 -1
  249. package/dist/server.js +37 -6
  250. package/dist/server.js.map +1 -1
  251. package/dist/server.test.js +37 -1
  252. package/dist/server.test.js.map +1 -1
  253. package/dist/types.d.ts +17 -0
  254. package/dist/types.d.ts.map +1 -1
  255. package/package.json +2 -1
  256. package/dist/gui/assets/AgentsPage-YyYRodOR.js +0 -3
  257. package/dist/gui/assets/ProjectsPage-BMdhqAGs.js +0 -1
  258. package/dist/gui/assets/ScaffoldRepoInline-gXyYSIz5.js +0 -1
  259. package/dist/gui/assets/SkillsPage-CxcsbIsQ.js +0 -6
  260. package/dist/gui/assets/StartWorkPage-DPVHcdy4.js +0 -1
  261. package/dist/gui/assets/WorkspacesPage-BWRmP0mY.js +0 -2
  262. package/dist/gui/assets/index-CZoZQkeC.css +0 -2
  263. package/dist/gui/assets/index-wy68EqfB.js +0 -50
  264. package/dist/gui/assets/isElementDisabled-D_fu2zfc.js +0 -1
  265. package/dist/gui/assets/store-D5DUHbxn.js +0 -3
  266. package/dist/gui/assets/styles-CVwNuFCx.js +0 -1
  267. package/dist/gui/assets/textarea-BNRuIXNs.js +0 -1
  268. package/dist/gui/assets/useValueChanged-CStSGSsD.js +0 -1
package/dist/index.js CHANGED
@@ -31,6 +31,8 @@ import { isolateCommand } from './commands/isolate.js';
31
31
  import { mcpRunCommand, mcpSetupCommand } from './commands/mcp.js';
32
32
  import { handoffCommand } from './commands/handoff.js';
33
33
  import { refreshCommand } from './commands/refresh.js';
34
+ import { progressCommand } from './commands/progress.js';
35
+ import { remoteAddCommand, remotePullCommand, remotePushCommand } from './commands/remote.js';
34
36
  import { doctorCommand } from './commands/doctor.js';
35
37
  import { knowledgeAddCommand, knowledgeShowCommand, knowledgePromoteCommand } from './commands/knowledge.js';
36
38
  import { strategyListCommand, strategyCreateCommand, strategyEditCommand, strategyDeleteCommand, strategyShowCommand } from './commands/strategy.js';
@@ -101,7 +103,8 @@ program
101
103
  program
102
104
  .command('init')
103
105
  .description('Initialize NexusFlow configuration')
104
- .action(runAction(initCommand));
106
+ .option('--workspace [path]', 'Initialize or adopt a git-backed workspace artifact repository')
107
+ .action(runAction(async (options) => initCommand(options)));
105
108
  program
106
109
  .command('start')
107
110
  .description('Start all services in a workspace')
@@ -132,6 +135,14 @@ program
132
135
  .action(runAction(async (workspace, options) => {
133
136
  await statusCommand(workspace, options);
134
137
  }));
138
+ program
139
+ .command('progress')
140
+ .description('Show implementation progress derived from live git and available PR state')
141
+ .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
142
+ .option('--json', 'Output in JSON format')
143
+ .action(runAction(async (workspace, options) => {
144
+ await progressCommand(workspace, options);
145
+ }));
135
146
  program
136
147
  .command('ui')
137
148
  .description('Start the NexusFlow dashboard server (the backend the desktop app embeds)')
@@ -226,6 +237,7 @@ program
226
237
  .description('Refresh workspace context, plan and handoff files (re-analyzes only changed repos)')
227
238
  .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
228
239
  .option('-f, --force', 'Ignore the analysis cache and re-analyze every repository')
240
+ .option('--check', 'Check provenance and generated-view hashes without regenerating')
229
241
  .option('-s, --strategy <id>', 'Update the teamwork strategy (use template ID, or "auto" for AI suggestion)')
230
242
  .action(runAction(async (workspace, options) => {
231
243
  await refreshCommand(options, workspace);
@@ -254,23 +266,54 @@ program
254
266
  const knowledgeCmd = program
255
267
  .command('knowledge')
256
268
  .alias('know')
257
- .description('Capture and manage workspace learnings (decisions, gotchas, progress)');
269
+ .description('Capture and manage workspace learnings (decisions, gotchas, assumptions, questions)');
258
270
  knowledgeCmd
259
271
  .command('add')
260
272
  .description('Append a timestamped learning to the workspace knowledge file')
261
273
  .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
262
- .requiredOption('-t, --type <type>', 'Entry type: decision | gotcha | progress | assumption | question')
274
+ .requiredOption('-t, --type <type>', 'Entry type: decision | gotcha | assumption | question')
263
275
  .requiredOption('-m, --message <msg>', 'The learning to record, as a rule plus its reason (max 300 chars)')
264
- .option('--title <title>', 'Short title (used for decision headings)')
276
+ .requiredOption('--title <title>', 'Short title used to create the searchable heading slug (max 60 chars)')
277
+ .option('--scope <scope>', 'Applicability: repo:<name>, path:<repo/path>, or seam:<name>')
278
+ .option('--evidence <evidence>', 'Short evidence pointer such as a commit SHA or repro document')
265
279
  .option('-r, --repo <repo>', "Write to this repo's persistent base knowledge instead")
266
280
  .action(runAction(async (workspace, options) => {
267
281
  await knowledgeAddCommand(workspace, options);
268
282
  }));
283
+ program
284
+ .command('remember')
285
+ .description('Record and auto-commit a titled workspace learning')
286
+ .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
287
+ .requiredOption('-t, --type <type>', 'Entry type: decision | gotcha | assumption | question')
288
+ .requiredOption('-m, --message <msg>', 'The learning to record, as a rule plus its reason (max 300 chars)')
289
+ .requiredOption('--title <title>', 'Short title used to create the searchable heading slug (max 60 chars)')
290
+ .option('--scope <scope>', 'Applicability: repo:<name>, path:<repo/path>, or seam:<name>')
291
+ .option('--evidence <evidence>', 'Short evidence pointer such as a commit SHA or repro document')
292
+ .action(runAction(async (workspace, options) => {
293
+ await knowledgeAddCommand(workspace, options);
294
+ }));
295
+ const remoteCmd = program
296
+ .command('remote')
297
+ .description('Manage the workspace artifact repository remote (never child repo remotes)');
298
+ remoteCmd
299
+ .command('add')
300
+ .argument('<url>', 'Git remote URL')
301
+ .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
302
+ .action(runAction(async (url, workspace) => remoteAddCommand(url, workspace)));
303
+ remoteCmd
304
+ .command('push')
305
+ .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
306
+ .action(runAction(async (workspace) => remotePushCommand(workspace)));
307
+ remoteCmd
308
+ .command('pull')
309
+ .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
310
+ .action(runAction(async (workspace) => remotePullCommand(workspace)));
269
311
  knowledgeCmd
270
312
  .command('show')
271
313
  .description("Print the workspace knowledge file (or a repo's base knowledge)")
272
314
  .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
273
315
  .option('-s, --section <name>', 'Only show one section')
316
+ .option('--scope <scope>', 'Only show entries for an exact scope')
274
317
  .option('-r, --repo <repo>', "Show the repo's base knowledge file instead")
275
318
  .action(runAction(async (workspace, options) => {
276
319
  await knowledgeShowCommand(workspace, options);
@@ -282,6 +325,7 @@ knowledgeCmd
282
325
  .option('-r, --repo <repo>', 'Target repository (skips the repo prompt)')
283
326
  .option('-t, --type <type>', 'Entry type when promoting a message non-interactively')
284
327
  .option('-m, --message <msg>', 'Promote this text directly (non-interactive)')
328
+ .option('--title <title>', 'Short title required with --message')
285
329
  .option('--move', 'Remove the entry from the workspace file after promoting (default: copy)')
286
330
  .option('--all', 'Promote all decisions, gotchas and assumptions without prompting')
287
331
  .action(runAction(async (workspace, options) => {
@@ -447,7 +491,10 @@ mcp
447
491
  .command('run')
448
492
  .description('Start the NexusFlow MCP Server (typically called automatically by AI assistants)')
449
493
  .argument('[workspace]', 'Path to workspace (auto-detects from CWD)')
450
- .action(runAction(mcpRunCommand));
494
+ .option('-r, --role <role>', 'Agent execution role for scoped tool surfaces (e.g. readonly, review, ci, developer, full)')
495
+ .option('--allow <tools...>', 'Explicit list of allowed tool names')
496
+ .option('--deny <tools...>', 'Explicit list of denied tool names')
497
+ .action(runAction((workspace, options) => mcpRunCommand(workspace, options)));
451
498
  mcp
452
499
  .command('setup')
453
500
  .description('Automatically configure your AI environments (Claude Desktop, Cursor, VS Code) to use the NexusFlow MCP Server')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACrJ,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEhG,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CACV,wEAAwE,CACzE;KACA,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAC5B,MAAM,CAAC,SAAS,EAAE,mEAAmE,CAAC,CAAC;AAE1F,+EAA+E;AAC/E,mBAAmB;AACnB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACxC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC;IACpC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAsB,EAAiC;IACvE,OAAO,KAAK,EAAE,GAAG,IAAO,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3C,IAAI,WAAW,EAAE,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,mFAAmF,CACpF;KACA,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAkB,EAAE,EAAE;IAC7C,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAkB,EAAE,EAAE;IAC7C,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,EAAE,IAAI,CAAC;KACnE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA0B,EAAE,EAAE;IACpF,MAAM,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA2B,EAAE,EAAE;IACrF,MAAM,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,2EAA2E,CAAC;KACxF,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,EAAE,MAAM,CAAC;KAC5E,MAAM,CAAC,cAAc,EAAE,0DAA0D,CAAC;KAClF,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACnE,MAAM,CAAC,eAAe,EAAE,+CAA+C,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;KACpF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAwG,EAAE,EAAE;IACnI,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,EAAE,MAAM,CAAC;KAC5E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IACrD,MAAM,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mDAAmD,CAAC;KAChE,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAkB,EAAE,EAAE;IAC7C,MAAM,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sCAAsC,CAAC;KACnD,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAkB,EAAE,EAAE;IAC7C,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uDAAuD,CAAC;KACpE,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;KACvD,MAAM,CAAC,WAAW,EAAE,oDAAoD,CAAC;KACzE,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;KACzD,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;KAC/E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA+E,EAAE,EAAE;IACzI,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2FAA2F,CAAC;KACxG,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,uBAAuB,EAAE,4CAA4C,CAAC;KAC7E,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA4C,EAAE,EAAE;IACtG,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,CAAC;AAEN,wBAAwB;AAExB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,+DAA+D,CAAC;KAC5E,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAkB,EAAE,EAAE;IAC7C,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,KAAK,CAAC;KACZ,WAAW,CAAC,qEAAqE,CAAC;KAClF,QAAQ,CAAC,aAAa,EAAE,+BAA+B,CAAC;KACxD,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAiB,EAAE,SAAkB,EAAE,EAAE;IAChE,MAAM,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,+FAA+F,CAAC;KAC5G,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC/D,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;KAC7D,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;KACpD,MAAM,CAAC,6BAA6B,EAAE,wBAAwB,CAAC;KAC/D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAa,EAAE,SAAkB,EAAE,OAAgE,EAAE,EAAE;IAC9H,MAAM,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iFAAiF,CAAC;KAC9F,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;IACpC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC;AAGN,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,oFAAoF,CAAC;KACjG,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,aAAa,EAAE,2DAA2D,CAAC;KAClF,MAAM,CAAC,qBAAqB,EAAE,6EAA6E,CAAC;KAC5G,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA+C,EAAE,EAAE;IACzG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4EAA4E,CAAC;KACzF,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAkB,EAAE,EAAE;IAC7C,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2GAA2G,CAAC;KACxH,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;KACzE,MAAM,CAAC,SAAS,EAAE,oCAAoC,CAAC;KACvD,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;KAC7D,MAAM,CAAC,WAAW,EAAE,yFAAyF,CAAC;KAC9G,MAAM,CAAC,WAAW,EAAE,6CAA6C,CAAC;KAClE,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC;KAC1E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAAoH,EAAE,EAAE;IAC9K,MAAM,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,CAAC;AAEN,0BAA0B;AAC1B,MAAM,YAAY,GAAG,OAAO;KACzB,OAAO,CAAC,WAAW,CAAC;KACpB,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,uEAAuE,CAAC,CAAC;AAExF,YAAY;KACT,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+DAA+D,CAAC;KAC5E,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,cAAc,CAAC,mBAAmB,EAAE,kEAAkE,CAAC;KACvG,cAAc,CAAC,qBAAqB,EAAE,mEAAmE,CAAC;KAC1G,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,wDAAwD,CAAC;KACrF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAAyE,EAAE,EAAE;IACnI,MAAM,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC,CAAC;AAEN,YAAY;KACT,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iEAAiE,CAAC;KAC9E,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;KACvD,MAAM,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;KAC1E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA4C,EAAE,EAAE;IACtG,MAAM,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC,CAAC;AAEN,YAAY;KACT,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,uFAAuF,CAAC;KACpG,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,MAAM,CAAC,mBAAmB,EAAE,uDAAuD,CAAC;KACpF,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;KAC7E,MAAM,CAAC,QAAQ,EAAE,0EAA0E,CAAC;KAC5F,MAAM,CAAC,OAAO,EAAE,kEAAkE,CAAC;KACnF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA0F,EAAE,EAAE;IACpJ,MAAM,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC,CAAC;AAEN,wBAAwB;AACxB,MAAM,UAAU,GAAG,OAAO;KACvB,OAAO,CAAC,SAAS,CAAC;KAClB,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,yEAAyE,CAAC,CAAC;AAE1F,UAAU;KACP,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzC,UAAU;KACP,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;KAC3C,MAAM,CAAC,wBAAwB,EAAE,wCAAwC,CAAC;KAC1E,MAAM,CAAC,0BAA0B,EAAE,mBAAmB,CAAC;KACvD,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAExC,UAAU;KACP,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,MAAM,EAAE,mCAAmC,CAAC;KACrD,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzC,UAAU;KACP,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,oEAAoE,CAAC;KACjF,QAAQ,CAAC,MAAM,EAAE,mCAAmC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAE3C,yBAAyB;AACzB,MAAM,WAAW,GAAG,OAAO;KACxB,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,OAAO,CAAC;KACd,WAAW,CAAC,kDAAkD,CAAC,CAAC;AAEnE,WAAW;KACR,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE1C,WAAW;KACR,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;KACnE,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAE5C,WAAW;KACR,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;KACvE,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE1C,WAAW;KACR,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,WAAW,EAAE,oDAAoD,CAAC;KACzE,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAE5C,WAAW;KACR,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;KACvE,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE1C,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;AAErC,uBAAuB;AACvB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;AAEnG,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAExC,SAAS;KACN,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;KAC9C,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEvC,SAAS;KACN,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC7C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;KACtC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEvC,qEAAqE;AACrE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE/C,wBAAwB;AACxB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,uEAAuE,CAAC,CAAC;AAEnI,UAAU;KACP,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzC,UAAU;KACP,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,sEAAsE,CAAC;KACnF,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;KAC9C,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAExC,UAAU;KACP,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzC,UAAU;KACP,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;KAC9C,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzC,sEAAsE;AACtE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEjD,yBAAyB;AACzB,MAAM,WAAW,GAAG,OAAO;KACxB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,8FAA8F,CAAC;KAC3G,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AAE7C,WAAW;KACR,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,0CAA0C,CAAC;KACvD,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,CAAC;KACtE,cAAc,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;KAC9E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA0C,EAAE,EAAE;IACpG,MAAM,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC,CAAC;AAEN,WAAW;KACR,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE1C,WAAW;KACR,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,MAAM,EAAE,wCAAwC,CAAC;KAC1D,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAE5C,WAAW;KACR,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,MAAM,EAAE,wCAAwC,CAAC;KAC1D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;IACrC,MAAM,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,CAAC;AAEN,WAAW;KACR,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,QAAQ,CAAC,MAAM,EAAE,wCAAwC,CAAC;KAC1D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;IACrC,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC,CAAC;AAEN,WAAW;KACR,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,MAAM,EAAE,wCAAwC,CAAC;KAC1D,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzC,uEAAuE;AACvE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEnD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,mDAAmD,CAAC,CAAC;AAEpG,GAAG;KACA,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,kFAAkF,CAAC;KAC/F,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpC,GAAG;KACA,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gHAAgH,CAAC;KAC7H,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;AAEtC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;IAC9D,4FAA4F;IAC5F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;QACxG,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,2EAA2E;QAC3E,4DAA4D;QAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACpF,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,9 @@
1
- export declare function startMcpServer(workspacePath?: string): Promise<void>;
1
+ import { type AgentRole } from './tools.js';
2
+ export interface McpServerOptions {
3
+ workspacePath?: string;
4
+ role?: AgentRole;
5
+ allowList?: string[];
6
+ denyList?: string[];
7
+ }
8
+ export declare function startMcpServer(optionsOrWorkspacePath?: string | McpServerOptions): Promise<void>;
2
9
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAwCA,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,iBAwD1D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,KAAK,SAAS,EAAoB,MAAM,YAAY,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA8BD,wBAAsB,cAAc,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,gBAAgB,iBA+DtF"}
@@ -3,7 +3,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
3
3
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
4
  import * as path from 'node:path';
5
5
  import { loadConfig } from '../core/config.js';
6
- import { enabledTools, findTool } from './tools.js';
6
+ import { enabledTools } from './tools.js';
7
7
  /**
8
8
  * Resolves the workspace path for a tool call.
9
9
  *
@@ -26,7 +26,11 @@ function resolveWorkspacePath(explicit, config, args) {
26
26
  }
27
27
  return process.cwd();
28
28
  }
29
- export async function startMcpServer(workspacePath) {
29
+ export async function startMcpServer(optionsOrWorkspacePath) {
30
+ const options = typeof optionsOrWorkspacePath === 'string'
31
+ ? { workspacePath: optionsOrWorkspacePath }
32
+ : optionsOrWorkspacePath ?? {};
33
+ const { workspacePath, role, allowList, denyList } = options;
30
34
  const server = new Server({
31
35
  name: 'nexusflow-mcp',
32
36
  version: '0.2.0',
@@ -38,7 +42,7 @@ export async function startMcpServer(workspacePath) {
38
42
  server.setRequestHandler(ListToolsRequestSchema, async () => {
39
43
  const config = await loadConfig();
40
44
  return {
41
- tools: enabledTools(config).map((t) => ({
45
+ tools: enabledTools(config, role, allowList, denyList).map((t) => ({
42
46
  name: t.name,
43
47
  description: t.description,
44
48
  inputSchema: t.inputSchema,
@@ -52,10 +56,11 @@ export async function startMcpServer(workspacePath) {
52
56
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
53
57
  const { name, arguments: args } = request.params;
54
58
  const config = await loadConfig();
55
- const tool = findTool(name);
56
- if (!tool || (tool.enabled && !tool.enabled(config))) {
59
+ const available = enabledTools(config, role, allowList, denyList);
60
+ const tool = available.find((t) => t.name === name);
61
+ if (!tool) {
57
62
  return {
58
- content: [{ type: 'text', text: `Tool not found: ${name}` }],
63
+ content: [{ type: 'text', text: `Tool not found or denied by execution policy: ${name}` }],
59
64
  isError: true,
60
65
  };
61
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -38,8 +38,12 @@ export interface NexusFlowTool {
38
38
  handler: (args: Record<string, unknown>, ctx: ToolContext) => Promise<ToolResult>;
39
39
  }
40
40
  export declare const tools: NexusFlowTool[];
41
- /** Returns the tools enabled for the given config. */
42
- export declare function enabledTools(config: NexusFlowConfig): NexusFlowTool[];
41
+ /** Agent execution role for scoped tool surfaces. */
42
+ export type AgentRole = 'full' | 'developer' | 'interactive' | 'readonly' | 'review' | 'ci';
43
+ /** Tool allowlists mapped per role. */
44
+ export declare const ROLE_TOOL_PERMISSIONS: Record<AgentRole, string[]>;
45
+ /** Returns the tools enabled for the given config and role/surface filters. */
46
+ export declare function enabledTools(config: NexusFlowConfig, role?: AgentRole, allowList?: string[], denyList?: string[]): NexusFlowTool[];
43
47
  /** Finds a tool by name (regardless of enabled state). */
44
48
  export declare function findTool(name: string): NexusFlowTool | undefined;
45
49
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkBnD,+FAA+F;AAC/F,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,4BAA4B;AAC5B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC;IAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACnF;AAiCD,eAAO,MAAM,KAAK,EAAE,aAAa,EAmVhC,CAAC;AAEF,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE,CAErE;AAED,0DAA0D;AAC1D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEhE"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,aAAa,CAAC;AAwBzE,+FAA+F;AAC/F,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,4BAA4B;AAC5B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC;IAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACnF;AAiCD,eAAO,MAAM,KAAK,EAAE,aAAa,EA8fhC,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE5F,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAgC7D,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE,SAAS,EAChB,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,aAAa,EAAE,CAajB;AAED,0DAA0D;AAC1D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEhE"}
package/dist/mcp/tools.js CHANGED
@@ -8,7 +8,7 @@
8
8
  import { execa } from 'execa';
9
9
  import * as fs from 'node:fs/promises';
10
10
  import * as path from 'node:path';
11
- import { loadFeatureConfig, isolateWorkspaceRepo } from '../core/workspace.js';
11
+ import { loadFeatureConfig, isolateWorkspaceRepo, listWorkspaces, createWorkspace, resolveRepoInfos, } from '../core/workspace.js';
12
12
  import { resolveFeatureRepoPath } from '../utils/feature.js';
13
13
  import { syncWorkspace } from '../core/sync.js';
14
14
  import { getWorkspaceStatusReport } from '../core/status.js';
@@ -86,7 +86,7 @@ export const tools = [
86
86
  },
87
87
  {
88
88
  name: 'workspace_status',
89
- description: 'Report the git status of every repo in the workspace: current branch, whether it matches the feature branch, dirty files, commits ahead/behind origin, and remote URL. Read-only; use this before committing or finishing.',
89
+ description: 'Report live git state for every repo: HEAD SHA, current branch, branch alignment, dirty files, commits ahead/behind origin, and remote URL. Read-only; use this instead of generated prose for volatile facts.',
90
90
  annotations: { readOnlyHint: true },
91
91
  inputSchema: { type: 'object', properties: { ...workspaceIdProp } },
92
92
  handler: async (_args, ctx) => {
@@ -172,13 +172,14 @@ export const tools = [
172
172
  type: 'object',
173
173
  properties: {
174
174
  force: { type: 'boolean', description: 'Ignore the analysis cache and re-analyze every repo.' },
175
+ check: { type: 'boolean', description: 'Check nexusflow.lock and generated-view hashes without regenerating. Stale docs receive a bounded warning banner.' },
175
176
  ...workspaceIdProp,
176
177
  },
177
178
  },
178
179
  handler: async (args, ctx) => {
179
180
  try {
180
181
  await requireWorkspace(ctx);
181
- return json(await refreshWorkspace(ctx.workspacePath, { force: Boolean(args.force) }));
182
+ return json(await refreshWorkspace(ctx.workspacePath, { force: Boolean(args.force), check: Boolean(args.check) }));
182
183
  }
183
184
  catch (error) {
184
185
  return errorResult(`Error refreshing context: ${error.message}`);
@@ -202,18 +203,20 @@ export const tools = [
202
203
  },
203
204
  {
204
205
  name: 'add_knowledge',
205
- description: 'Record a learning in the workspace knowledge file (or a repo base file with `repo`). Use this whenever you make an architecture decision, discover a gotcha, complete a milestone, or note an assumption — it is the preferred way to persist learnings instead of editing nexusflow-knowledge.md directly.',
206
+ description: 'Record a titled, searchable learning in the workspace knowledge file (or a repo base file with `repo`). Use this for architecture decisions, gotchas, questions, and assumptions; implementation progress is derived live by `nexusflow progress`.',
206
207
  annotations: { readOnlyHint: false, destructiveHint: false },
207
208
  inputSchema: {
208
209
  type: 'object',
209
210
  properties: {
210
- type: { type: 'string', enum: ['decision', 'gotcha', 'progress', 'assumption', 'question'], description: 'The kind of learning.' },
211
+ type: { type: 'string', enum: ['decision', 'gotcha', 'assumption', 'question'], description: 'The kind of learning.' },
211
212
  message: { type: 'string', description: 'The learning to record.' },
212
- title: { type: 'string', description: 'Short title (used for decision headings).' },
213
+ title: { type: 'string', description: 'Required short title used to create the searchable heading slug.' },
214
+ scope: { type: 'string', description: 'Optional applicability: repo:<name>, path:<repo/path>, or seam:<name>.' },
215
+ evidence: { type: 'string', description: 'Optional short evidence pointer such as a commit SHA or repro document.' },
213
216
  repo: { type: 'string', description: "Write to this repo's persistent base knowledge instead of the workspace file (decision/gotcha/assumption only)." },
214
217
  ...workspaceIdProp,
215
218
  },
216
- required: ['type', 'message'],
219
+ required: ['type', 'message', 'title'],
217
220
  },
218
221
  handler: async (args, ctx) => {
219
222
  try {
@@ -222,7 +225,13 @@ export const tools = [
222
225
  const message = String(args.message ?? '').trim();
223
226
  if (!message)
224
227
  return errorResult('A knowledge message is required.');
225
- const entry = { type, message, title: args.title ? String(args.title) : undefined };
228
+ const entry = {
229
+ type,
230
+ message,
231
+ title: String(args.title ?? ''),
232
+ scope: args.scope ? String(args.scope) : undefined,
233
+ evidence: args.evidence ? String(args.evidence) : undefined,
234
+ };
226
235
  const result = args.repo
227
236
  ? await addBaseKnowledge(ctx.workspacePath, String(args.repo), entry)
228
237
  : await addWorkspaceKnowledge(ctx.workspacePath, entry);
@@ -243,10 +252,11 @@ export const tools = [
243
252
  repo: { type: 'string', description: 'Target repository (by directory name).' },
244
253
  type: { type: 'string', enum: ['decision', 'gotcha', 'assumption'], description: 'The kind of learning to promote.' },
245
254
  text: { type: 'string', description: 'The learning text to store in base knowledge.' },
255
+ title: { type: 'string', description: 'Required short title used to create the searchable heading slug.' },
246
256
  move: { type: 'boolean', description: 'Reserved; base promotion is additive. Default false.' },
247
257
  ...workspaceIdProp,
248
258
  },
249
- required: ['repo', 'type', 'text'],
259
+ required: ['repo', 'type', 'text', 'title'],
250
260
  },
251
261
  handler: async (args, ctx) => {
252
262
  try {
@@ -263,6 +273,7 @@ export const tools = [
263
273
  const result = await addBaseKnowledge(ctx.workspacePath, String(args.repo), {
264
274
  type,
265
275
  message: textValue,
276
+ title: String(args.title ?? ''),
266
277
  });
267
278
  return json(result);
268
279
  }
@@ -319,7 +330,11 @@ export const tools = [
319
330
  required: ['serviceName'],
320
331
  },
321
332
  handler: async (args, ctx) => {
322
- const serviceName = args.serviceName;
333
+ const rawName = String(args.serviceName ?? '').trim();
334
+ const serviceName = path.basename(rawName).replace(/\.log$/, '');
335
+ if (!serviceName || serviceName === '.' || rawName.includes('/') || rawName.includes('\\')) {
336
+ return errorResult(`Invalid service name "${rawName}": service name must be a simple identifier.`);
337
+ }
323
338
  const lines = args.lines || 50;
324
339
  try {
325
340
  const logFilePath = path.join(ctx.workspacePath, '.nexusflow-logs', `${serviceName}.log`);
@@ -383,11 +398,214 @@ export const tools = [
383
398
  return errorResult(`Error isolating repository: ${error.message}`);
384
399
  }
385
400
  },
386
- }
401
+ },
402
+ {
403
+ name: 'list_workspaces',
404
+ description: 'List all active NexusFlow workspaces with their branch names, paths, repositories, and mode. Read-only.',
405
+ annotations: { readOnlyHint: true },
406
+ inputSchema: { type: 'object', properties: {} },
407
+ handler: async (_args, ctx) => {
408
+ try {
409
+ const workspaces = await listWorkspaces(ctx.config.workspacesDir);
410
+ return json(workspaces.map((w) => ({
411
+ id: w.id,
412
+ branchName: w.branchName,
413
+ mode: w.mode,
414
+ description: w.description,
415
+ reposCount: w.repos.length,
416
+ workspacePath: w.workspacePath,
417
+ createdAt: w.createdAt,
418
+ })));
419
+ }
420
+ catch (error) {
421
+ return errorResult(`Error listing workspaces: ${error.message}`);
422
+ }
423
+ },
424
+ },
425
+ {
426
+ name: 'list_repos',
427
+ description: 'List all repositories in the current or specified workspace with their worktree paths, source paths, branches, and isolation status. Read-only.',
428
+ annotations: { readOnlyHint: true },
429
+ inputSchema: { type: 'object', properties: { ...workspaceIdProp } },
430
+ handler: async (_args, ctx) => {
431
+ try {
432
+ await requireWorkspace(ctx);
433
+ const feature = await loadFeatureConfig(ctx.workspacePath);
434
+ if (!feature)
435
+ throw new Error(`Workspace not found at ${ctx.workspacePath}`);
436
+ const reposInfo = [];
437
+ for (const repoPath of feature.repos) {
438
+ const repoName = path.basename(repoPath);
439
+ const worktreePath = resolveFeatureRepoPath(feature, ctx.workspacePath, repoPath);
440
+ let currentBranch = 'unknown';
441
+ try {
442
+ const { stdout } = await execa('git', ['branch', '--show-current'], { cwd: worktreePath, reject: false });
443
+ if (stdout)
444
+ currentBranch = stdout.trim();
445
+ }
446
+ catch { }
447
+ reposInfo.push({
448
+ name: repoName,
449
+ worktreePath,
450
+ sourcePath: repoPath,
451
+ branch: currentBranch,
452
+ isIsolated: worktreePath !== repoPath,
453
+ });
454
+ }
455
+ return json(reposInfo);
456
+ }
457
+ catch (error) {
458
+ return errorResult(`Error listing repos: ${error.message}`);
459
+ }
460
+ },
461
+ },
462
+ {
463
+ name: 'create_workspace',
464
+ description: 'Create a new multi-repo NexusFlow workspace with git worktrees or in-place mode. Automatically scaffolds the workspace, configures editor/MCP files, generates context documents, and initializes git worktrees.',
465
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
466
+ inputSchema: {
467
+ type: 'object',
468
+ properties: {
469
+ branchName: {
470
+ type: 'string',
471
+ minLength: 1,
472
+ description: 'The feature branch name and workspace folder name (e.g. feat/user-auth)',
473
+ },
474
+ repos: {
475
+ type: 'array',
476
+ items: { type: 'string' },
477
+ minItems: 1,
478
+ description: 'List of repository directory names or paths to include',
479
+ },
480
+ mode: {
481
+ type: 'string',
482
+ enum: ['worktree', 'in-place'],
483
+ description: 'Workspace mode: worktree (default) creates dedicated checkouts; in-place edits source directly.',
484
+ },
485
+ description: {
486
+ type: 'string',
487
+ description: 'Brief description of the feature or workspace purpose.',
488
+ },
489
+ assistants: {
490
+ type: 'array',
491
+ items: { type: 'string' },
492
+ description: 'Assistant configurations to initialize (e.g. ["claude", "codex", "antigravity"]).',
493
+ },
494
+ },
495
+ required: ['branchName', 'repos'],
496
+ },
497
+ handler: async (args, ctx) => {
498
+ try {
499
+ const branchName = String(args.branchName || '').trim();
500
+ if (!branchName)
501
+ return errorResult('branchName is required.');
502
+ const rawRepos = Array.isArray(args.repos) ? args.repos : [];
503
+ if (rawRepos.length === 0)
504
+ return errorResult('At least one repo is required.');
505
+ const mode = (args.mode === 'in-place' ? 'in-place' : 'worktree');
506
+ const inPlace = mode === 'in-place';
507
+ const description = args.description ? String(args.description) : branchName;
508
+ const assistants = (Array.isArray(args.assistants)
509
+ ? args.assistants
510
+ : ['antigravity', 'claude', 'codex']);
511
+ // Resolve repos against devDir
512
+ const resolvedRepoPaths = [];
513
+ for (const r of rawRepos) {
514
+ const trimmed = String(r).trim();
515
+ const candidatePath = path.isAbsolute(trimmed) ? trimmed : path.join(ctx.config.devDir, trimmed);
516
+ try {
517
+ await fs.access(candidatePath);
518
+ resolvedRepoPaths.push(candidatePath);
519
+ }
520
+ catch {
521
+ return errorResult(`Repository not found at ${candidatePath}`);
522
+ }
523
+ }
524
+ const repoInfos = await resolveRepoInfos(resolvedRepoPaths);
525
+ const workspaceId = branchName;
526
+ const workspacePath = path.join(ctx.config.workspacesDir, workspaceId);
527
+ const feature = {
528
+ id: workspaceId,
529
+ mode,
530
+ branchName,
531
+ description,
532
+ repos: inPlace
533
+ ? repoInfos.map((r) => r.path)
534
+ : repoInfos.map((r) => path.join(workspacePath, r.name)),
535
+ originalRepos: repoInfos.map((r) => r.path),
536
+ assistants,
537
+ workspacePath,
538
+ createdAt: new Date().toISOString(),
539
+ };
540
+ await createWorkspace(feature, repoInfos);
541
+ await refreshWorkspace(workspacePath);
542
+ return json({
543
+ id: workspaceId,
544
+ workspacePath,
545
+ branchName,
546
+ mode,
547
+ repos: feature.repos,
548
+ status: 'created',
549
+ instruction: `Workspace created at '${workspacePath}'. Context files and MCP configs generated successfully.`,
550
+ });
551
+ }
552
+ catch (error) {
553
+ return errorResult(`Error creating workspace: ${error.message}`);
554
+ }
555
+ },
556
+ },
387
557
  ];
388
- /** Returns the tools enabled for the given config. */
389
- export function enabledTools(config) {
390
- return tools.filter((t) => !t.enabled || t.enabled(config));
558
+ /** Tool allowlists mapped per role. */
559
+ export const ROLE_TOOL_PERMISSIONS = {
560
+ readonly: [
561
+ 'search_workspace',
562
+ 'workspace_status',
563
+ 'get_workspace_diff',
564
+ 'run_doctor',
565
+ 'get_service_logs',
566
+ 'list_workspaces',
567
+ 'list_repos',
568
+ ],
569
+ review: [
570
+ 'search_workspace',
571
+ 'workspace_status',
572
+ 'get_workspace_diff',
573
+ 'run_doctor',
574
+ 'get_service_logs',
575
+ 'list_workspaces',
576
+ 'list_repos',
577
+ ],
578
+ ci: [
579
+ 'search_workspace',
580
+ 'workspace_status',
581
+ 'get_workspace_diff',
582
+ 'run_doctor',
583
+ 'get_service_logs',
584
+ 'list_workspaces',
585
+ 'list_repos',
586
+ 'sync_workspace',
587
+ ],
588
+ developer: ['*'],
589
+ interactive: ['*'],
590
+ full: ['*'],
591
+ };
592
+ /** Returns the tools enabled for the given config and role/surface filters. */
593
+ export function enabledTools(config, role, allowList, denyList) {
594
+ return tools.filter((t) => {
595
+ if (t.enabled && !t.enabled(config))
596
+ return false;
597
+ if (denyList && denyList.includes(t.name))
598
+ return false;
599
+ if (allowList && allowList.length > 0 && !allowList.includes(t.name) && !allowList.includes('*'))
600
+ return false;
601
+ if (role && ROLE_TOOL_PERMISSIONS[role]) {
602
+ const permitted = ROLE_TOOL_PERMISSIONS[role];
603
+ if (!permitted.includes('*') && !permitted.includes(t.name)) {
604
+ return false;
605
+ }
606
+ }
607
+ return true;
608
+ });
391
609
  }
392
610
  /** Finds a tool by name (regardless of enabled state). */
393
611
  export function findTool(name) {