@mrpatronz/nexusflow 1.9.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/ProviderRegistry.d.ts +12 -1
- package/dist/agent/ProviderRegistry.d.ts.map +1 -1
- package/dist/agent/ProviderRegistry.js.map +1 -1
- package/dist/agent/ProviderRegistry.test.js +1 -0
- package/dist/agent/ProviderRegistry.test.js.map +1 -1
- package/dist/agent/adapters.d.ts +14 -0
- package/dist/agent/adapters.d.ts.map +1 -1
- package/dist/agent/adapters.js +39 -4
- package/dist/agent/adapters.js.map +1 -1
- package/dist/agent/adapters.test.d.ts +2 -0
- package/dist/agent/adapters.test.d.ts.map +1 -0
- package/dist/agent/adapters.test.js +49 -0
- package/dist/agent/adapters.test.js.map +1 -0
- package/dist/agent/cliAvailability.d.ts +48 -0
- package/dist/agent/cliAvailability.d.ts.map +1 -0
- package/dist/agent/cliAvailability.js +112 -0
- package/dist/agent/cliAvailability.js.map +1 -0
- package/dist/agent/cliAvailability.test.d.ts +2 -0
- package/dist/agent/cliAvailability.test.d.ts.map +1 -0
- package/dist/agent/cliAvailability.test.js +105 -0
- package/dist/agent/cliAvailability.test.js.map +1 -0
- package/dist/analyzers/detect-deps.d.ts.map +1 -1
- package/dist/analyzers/detect-deps.js +16 -19
- package/dist/analyzers/detect-deps.js.map +1 -1
- package/dist/analyzers/index.d.ts +0 -2
- package/dist/analyzers/index.d.ts.map +1 -1
- package/dist/analyzers/index.js +6 -9
- package/dist/analyzers/index.js.map +1 -1
- package/dist/commands/commands.test.js +4 -3
- package/dist/commands/commands.test.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/knowledge.d.ts +10 -0
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +27 -1
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/knowledge.test.d.ts +2 -0
- package/dist/commands/knowledge.test.d.ts.map +1 -0
- package/dist/commands/knowledge.test.js +77 -0
- package/dist/commands/knowledge.test.js.map +1 -0
- package/dist/commands/refresh.d.ts +2 -4
- package/dist/commands/refresh.d.ts.map +1 -1
- package/dist/commands/refresh.js +4 -20
- package/dist/commands/refresh.js.map +1 -1
- package/dist/core/adapters/registry.d.ts.map +1 -1
- package/dist/core/adapters/registry.js +8 -3
- package/dist/core/adapters/registry.js.map +1 -1
- package/dist/core/adapters/storage.test.js +5 -24
- package/dist/core/adapters/storage.test.js.map +1 -1
- package/dist/core/analysis-cache.d.ts +15 -8
- package/dist/core/analysis-cache.d.ts.map +1 -1
- package/dist/core/analysis-cache.js +61 -10
- package/dist/core/analysis-cache.js.map +1 -1
- package/dist/core/analysis-cache.test.js +17 -4
- package/dist/core/analysis-cache.test.js.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +5 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +9 -5
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/knowledge.d.ts +14 -4
- package/dist/core/knowledge.d.ts.map +1 -1
- package/dist/core/knowledge.js +64 -14
- package/dist/core/knowledge.js.map +1 -1
- package/dist/core/knowledge.test.js +54 -2
- package/dist/core/knowledge.test.js.map +1 -1
- package/dist/core/locks.d.ts +43 -0
- package/dist/core/locks.d.ts.map +1 -0
- package/dist/core/locks.js +102 -0
- package/dist/core/locks.js.map +1 -0
- package/dist/core/locks.test.d.ts +2 -0
- package/dist/core/locks.test.d.ts.map +1 -0
- package/dist/core/locks.test.js +95 -0
- package/dist/core/locks.test.js.map +1 -0
- package/dist/core/ports/storage.d.ts +3 -3
- package/dist/core/ports/storage.d.ts.map +1 -1
- package/dist/core/refresh.d.ts +12 -13
- package/dist/core/refresh.d.ts.map +1 -1
- package/dist/core/refresh.js +14 -11
- package/dist/core/refresh.js.map +1 -1
- package/dist/core/refresh.test.js +17 -11
- package/dist/core/refresh.test.js.map +1 -1
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +2 -65
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/sync.js +3 -3
- package/dist/core/sync.js.map +1 -1
- package/dist/core/worktree.js +2 -2
- package/dist/core/worktree.js.map +1 -1
- package/dist/core/worktree.test.js +2 -2
- package/dist/core/worktree.test.js.map +1 -1
- package/dist/generators/base.d.ts +31 -2
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +174 -238
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/base.test.js +231 -24
- package/dist/generators/base.test.js.map +1 -1
- package/dist/generators/claude.d.ts +19 -5
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +33 -11
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/index.d.ts +10 -9
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +103 -118
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/plan-generator.d.ts.map +1 -1
- package/dist/generators/plan-generator.js +217 -193
- package/dist/generators/plan-generator.js.map +1 -1
- package/dist/generators/plan-generator.test.d.ts +2 -0
- package/dist/generators/plan-generator.test.d.ts.map +1 -0
- package/dist/generators/plan-generator.test.js +217 -0
- package/dist/generators/plan-generator.test.js.map +1 -0
- package/dist/gui/assets/{DashboardPage-C3NH97y2.js → DashboardPage-HNC3-OP0.js} +1 -1
- package/dist/gui/assets/{GettingStartedPage-og-Kv7Sm.js → GettingStartedPage-Dguoya_Z.js} +1 -1
- package/dist/gui/assets/{ProjectsPage-COqqadEr.js → ProjectsPage-DVR4j4sw.js} +1 -1
- package/dist/gui/assets/{ScaffoldRepoInline-DRipQsos.js → ScaffoldRepoInline-D-2ZeuDK.js} +1 -1
- package/dist/gui/assets/{SettingsPage-CpU3V9oU.js → SettingsPage-Bauo77q3.js} +1 -1
- package/dist/gui/assets/{StartWorkPage-DIND0hJy.js → StartWorkPage-DvuFEa5Y.js} +1 -1
- package/dist/gui/assets/{StrategiesPage-6LWOnKdk.js → StrategiesPage-Cizm0GWk.js} +1 -1
- package/dist/gui/assets/{WorkspacesPage-BUqgOhuy.js → WorkspacesPage-DYOVfZqy.js} +1 -1
- package/dist/gui/assets/{index-CyYbQwRf.js → index-BqeoAIB1.js} +6 -6
- package/dist/gui/index.html +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +11 -15
- package/dist/mcp/tools.js.map +1 -1
- package/dist/resources/workflows/plan-implement-review.md +8 -0
- package/dist/resources/workflows/research-verify.md +6 -0
- package/dist/resources/workflows/solo-developer.md +3 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -2
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +4 -2
- package/dist/server.test.js.map +1 -1
- package/dist/types.d.ts +0 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/prompts.js +2 -2
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/resources.d.ts +28 -0
- package/dist/utils/resources.d.ts.map +1 -0
- package/dist/utils/resources.js +54 -0
- package/dist/utils/resources.js.map +1 -0
- package/dist/utils/workflow-advisor.d.ts.map +1 -1
- package/dist/utils/workflow-advisor.js +17 -27
- package/dist/utils/workflow-advisor.js.map +1 -1
- package/dist/utils/workflows.d.ts.map +1 -1
- package/dist/utils/workflows.js +6 -2
- package/dist/utils/workflows.js.map +1 -1
- package/package.json +5 -3
- package/resources/workflows/plan-implement-review.md +8 -0
- package/resources/workflows/research-verify.md +6 -0
- package/resources/workflows/solo-developer.md +3 -0
- package/dist/analyzers/detect-apis.d.ts +0 -19
- package/dist/analyzers/detect-apis.d.ts.map +0 -1
- package/dist/analyzers/detect-apis.js +0 -250
- package/dist/analyzers/detect-apis.js.map +0 -1
- package/dist/analyzers/messaging-analyzer.d.ts +0 -17
- package/dist/analyzers/messaging-analyzer.d.ts.map +0 -1
- package/dist/analyzers/messaging-analyzer.js +0 -229
- package/dist/analyzers/messaging-analyzer.js.map +0 -1
- package/dist/core/adapters/vault-storage.d.ts +0 -16
- package/dist/core/adapters/vault-storage.d.ts.map +0 -1
- package/dist/core/adapters/vault-storage.js +0 -77
- package/dist/core/adapters/vault-storage.js.map +0 -1
- package/dist/core/graph.d.ts +0 -35
- package/dist/core/graph.d.ts.map +0 -1
- package/dist/core/graph.js +0 -281
- package/dist/core/graph.js.map +0 -1
- package/dist/generators/diff-context.d.ts +0 -6
- package/dist/generators/diff-context.d.ts.map +0 -1
- package/dist/generators/diff-context.js +0 -70
- package/dist/generators/diff-context.js.map +0 -1
- package/dist/generators/map-generator.d.ts +0 -15
- package/dist/generators/map-generator.d.ts.map +0 -1
- package/dist/generators/map-generator.js +0 -514
- package/dist/generators/map-generator.js.map +0 -1
- package/dist/generators/map-generator.test.d.ts +0 -2
- package/dist/generators/map-generator.test.d.ts.map +0 -1
- package/dist/generators/map-generator.test.js +0 -147
- package/dist/generators/map-generator.test.js.map +0 -1
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import chalk from 'chalk';
|
|
7
7
|
import { writeWorkspaceFile } from '../core/storage.js';
|
|
8
|
+
import { findInterRepoDependencies } from '../analyzers/detect-deps.js';
|
|
8
9
|
// ─── Dependency Graph Builder ─────────────────────────────────────────────
|
|
9
10
|
/**
|
|
10
11
|
* Build a dependency graph by analysing package dependencies
|
|
@@ -25,46 +26,26 @@ export function buildDependencyGraph(analysis, repos) {
|
|
|
25
26
|
dependedOnBy: [],
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
|
-
//
|
|
29
|
-
|
|
29
|
+
// ── Edges, from the one shared inference ─────────────────────────────
|
|
30
|
+
// This used to re-implement the package matching that
|
|
31
|
+
// `findInterRepoDependencies` already does, and the two drifted: the other
|
|
32
|
+
// copy grew a substring fallback, so `AGENTS.md` claimed "Start with `core`"
|
|
33
|
+
// for a workspace whose `nexusflow-plan.md` said no dependencies were
|
|
34
|
+
// detected at all. Two generated files contradicting each other is worse than
|
|
35
|
+
// either being wrong alone, because an assistant has no way to pick. One
|
|
36
|
+
// function now answers the question for both.
|
|
37
|
+
const inScope = new Map();
|
|
38
|
+
const repoNames = new Map();
|
|
30
39
|
for (const repo of repos) {
|
|
31
40
|
const a = analysis.get(repo.path);
|
|
32
|
-
if (a)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// ── 1. Produced/consumed package dependencies ──────────────────────────
|
|
36
|
-
// Map each produced package name to the repo name that produces it
|
|
37
|
-
const packageToRepo = new Map();
|
|
38
|
-
for (const repo of repos) {
|
|
39
|
-
const a = analysisByName.get(repo.name);
|
|
40
|
-
if (!a)
|
|
41
|
-
continue;
|
|
42
|
-
// Map the repo name itself as a produced product (for direct matching)
|
|
43
|
-
packageToRepo.set(repo.name.toLowerCase(), repo.name);
|
|
44
|
-
if (a.produces) {
|
|
45
|
-
for (const product of a.produces) {
|
|
46
|
-
packageToRepo.set(product.name.toLowerCase(), repo.name);
|
|
47
|
-
// Map basename (e.g. Hogia.EmploymentService.Client -> Client)
|
|
48
|
-
const base = product.name.split('.').pop() ?? product.name;
|
|
49
|
-
if (base && base.length > 3) {
|
|
50
|
-
packageToRepo.set(base.toLowerCase(), repo.name);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
41
|
+
if (a) {
|
|
42
|
+
inScope.set(repo.path, a);
|
|
43
|
+
repoNames.set(repo.path, repo.name);
|
|
53
44
|
}
|
|
54
45
|
}
|
|
55
|
-
for (const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
continue;
|
|
59
|
-
for (const dep of a.dependencies) {
|
|
60
|
-
const depNameLower = dep.name.toLowerCase();
|
|
61
|
-
// Direct match with a produced package
|
|
62
|
-
if (packageToRepo.has(depNameLower)) {
|
|
63
|
-
const targetRepo = packageToRepo.get(depNameLower);
|
|
64
|
-
if (targetRepo !== repo.name) {
|
|
65
|
-
addEdge(graph, repo.name, targetRepo);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
46
|
+
for (const [consumer, providers] of findInterRepoDependencies(inScope, repoNames)) {
|
|
47
|
+
for (const provider of providers) {
|
|
48
|
+
addEdge(graph, consumer, provider);
|
|
68
49
|
}
|
|
69
50
|
}
|
|
70
51
|
return graph;
|
|
@@ -157,182 +138,184 @@ export async function generateImplementationPlan(ctx, workspacePath) {
|
|
|
157
138
|
// ── Build graph & sort ──────────────────────────────────────────────
|
|
158
139
|
const graph = buildDependencyGraph(analysis, repos);
|
|
159
140
|
const phases = topologicalSort(graph);
|
|
160
|
-
// ──
|
|
141
|
+
// ── What this plan can actually say ─────────────────────────────────
|
|
142
|
+
// Everything below describes cross-repo structure. With no dependency edges
|
|
143
|
+
// and no shared packages there is nothing to order, and this file used to
|
|
144
|
+
// say so five separate ways: a single-node diagram, a phase whose rationale
|
|
145
|
+
// claimed "other repos depend on them" when none did, an all-dashes table,
|
|
146
|
+
// a contracts table of packages nobody consumed, and a local-package loop
|
|
147
|
+
// for packages with no consumers. One honest sentence replaces all of it.
|
|
148
|
+
const hasEdges = [...graph.values()].some((n) => n.dependsOn.length > 0);
|
|
149
|
+
// Restricted to the repos the graph was built from. Derived from the whole
|
|
150
|
+
// analysis map, a stray entry could produce contracts with no matching edge,
|
|
151
|
+
// so the file promised a phase order it then never printed.
|
|
152
|
+
const contracts = findPackageRelations(analysis, repos).filter((rel) => rel.consumers.length > 0);
|
|
153
|
+
/** Repos in this phase that depend on another repo in the same phase. */
|
|
154
|
+
const cycleMembers = (phase) => {
|
|
155
|
+
const inPhase = new Set(phase);
|
|
156
|
+
return phase.filter((name) => (graph.get(name)?.dependsOn ?? []).some((dep) => inPhase.has(dep)));
|
|
157
|
+
};
|
|
161
158
|
const md = [];
|
|
162
159
|
md.push(`# Implementation Plan — ${feature.id}`);
|
|
163
160
|
md.push('');
|
|
164
161
|
md.push(`> **Generated At**: ${new Date().toISOString()} (UTC)`);
|
|
165
162
|
md.push(`> **Regeneration Command**: Run \`nexusflow refresh\` to update this plan.`);
|
|
166
163
|
md.push('');
|
|
164
|
+
if (!hasEdges && contracts.length === 0) {
|
|
165
|
+
// Worded per repo count: "between the single repo" and "from one of these
|
|
166
|
+
// repos to another" both read as nonsense for a one-repo workspace.
|
|
167
|
+
md.push(repos.length === 1
|
|
168
|
+
? 'This workspace has one repo, so there is no cross-repo build order to describe.'
|
|
169
|
+
: `No package dependencies were detected between the ${repos.length} repos in this workspace, so no build order is forced — work in whichever order suits the task.`);
|
|
170
|
+
md.push('');
|
|
171
|
+
md.push(repos.length === 1
|
|
172
|
+
? 'Add another repo with `nexusflow add-repo`, then run `nexusflow refresh`, and this plan will describe any order between them.'
|
|
173
|
+
: 'If you add a dependency from one of these repos to another, run `nexusflow refresh` and this plan will describe the resulting order.');
|
|
174
|
+
md.push('');
|
|
175
|
+
await writeWorkspaceFile(workspacePath, feature.id, 'nexusflow-plan.md', md.join('\n'));
|
|
176
|
+
console.log(chalk.green(' ✔'), 'Generated nexusflow-plan.md');
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
167
179
|
md.push('> Auto-generated by NexusFlow based on dependency analysis between repos.');
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
// Isolated node — still show it
|
|
179
|
-
md.push(` ${alias.get(name)}["${name}"]`);
|
|
180
|
-
}
|
|
181
|
-
for (const dep of node.dependsOn) {
|
|
182
|
-
// Arrow: dependency → dependent (dep is built first)
|
|
183
|
-
md.push(` ${alias.get(dep)}["${dep}"] --> ${alias.get(name)}["${name}"]`);
|
|
184
|
-
}
|
|
180
|
+
if (hasEdges) {
|
|
181
|
+
// Promised only when the phases below actually exist. Gating this on having
|
|
182
|
+
// got past the early return instead meant a workspace with a shared package
|
|
183
|
+
// but no resolvable edge — two repos both claiming to publish it, so the
|
|
184
|
+
// only match is a repo on itself and no edge is added — was told to follow
|
|
185
|
+
// an order the file never printed.
|
|
186
|
+
md.push('> Follow the phase order to avoid blocking yourself on cross-repo dependencies.');
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
md.push('> No build order could be resolved, so the packages below are listed without one.');
|
|
185
190
|
}
|
|
186
|
-
md.push('```');
|
|
187
|
-
md.push('');
|
|
188
|
-
md.push('> ⚠️ This diagram is derived from detected package dependencies (`package.json`, `.csproj`, etc.) only.');
|
|
189
|
-
md.push('> If you changed a package, the producing repo must release/build before consumer repos can merge.');
|
|
190
|
-
md.push('');
|
|
191
|
-
// ── Phase descriptions ──────────────────────────────────────────────
|
|
192
|
-
md.push('## Suggested Implementation Order');
|
|
193
191
|
md.push('');
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
md.push(`### Phase ${i + 1}`);
|
|
198
|
-
md.push('');
|
|
199
|
-
md.push(`**Repos:** ${phase.join(', ')}`);
|
|
192
|
+
if (hasEdges) {
|
|
193
|
+
// ── Mermaid diagram ───────────────────────────────────────────────
|
|
194
|
+
md.push('## Dependency Diagram');
|
|
200
195
|
md.push('');
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
.
|
|
212
|
-
|
|
196
|
+
md.push('```mermaid');
|
|
197
|
+
md.push('graph TD');
|
|
198
|
+
const alias = buildAliasMap(graph);
|
|
199
|
+
for (const [name, node] of graph) {
|
|
200
|
+
if (node.dependsOn.length === 0 && node.dependedOnBy.length === 0) {
|
|
201
|
+
// Isolated node — still show it
|
|
202
|
+
md.push(` ${alias.get(name)}["${name}"]`);
|
|
203
|
+
}
|
|
204
|
+
for (const dep of node.dependsOn) {
|
|
205
|
+
// Arrow: dependency → dependent (dep is built first)
|
|
206
|
+
md.push(` ${alias.get(dep)}["${dep}"] --> ${alias.get(name)}["${name}"]`);
|
|
207
|
+
}
|
|
213
208
|
}
|
|
209
|
+
md.push('```');
|
|
214
210
|
md.push('');
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
if (dep.name.toLowerCase() === product.name.toLowerCase()) {
|
|
247
|
-
consumers.push({ repoName: otherA.name, version: dep.version });
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
packageRelations.push({
|
|
252
|
-
pkgName: product.name,
|
|
253
|
-
contributing: product.contributing,
|
|
254
|
-
producer: a.name,
|
|
255
|
-
consumers,
|
|
256
|
-
type: product.type,
|
|
257
|
-
feeds: a.nugetFeeds,
|
|
258
|
-
});
|
|
211
|
+
md.push('> ⚠️ This diagram is derived from detected package dependencies (`package.json`, `.csproj`, etc.) only.');
|
|
212
|
+
md.push('> If you changed a package, the producing repo must release/build before consumer repos can merge.');
|
|
213
|
+
md.push('');
|
|
214
|
+
// ── Phase descriptions ────────────────────────────────────────────
|
|
215
|
+
md.push('## Suggested Implementation Order');
|
|
216
|
+
md.push('');
|
|
217
|
+
for (let i = 0; i < phases.length; i++) {
|
|
218
|
+
const phase = phases[i];
|
|
219
|
+
const ordinal = ordinalWord(i + 1);
|
|
220
|
+
md.push(`### Phase ${i + 1}`);
|
|
221
|
+
md.push('');
|
|
222
|
+
md.push(`**Repos:** ${phase.join(', ')}`);
|
|
223
|
+
md.push('');
|
|
224
|
+
// A phase containing repos that depend on each other came from the cycle
|
|
225
|
+
// fallback in topologicalSort, not from a resolved ordering. Saying so
|
|
226
|
+
// beats the positional rationale, which asserted "no dependencies on
|
|
227
|
+
// other workspace repos" about repos that plainly had them.
|
|
228
|
+
const cyclic = cycleMembers(phase);
|
|
229
|
+
if (cyclic.length > 0) {
|
|
230
|
+
md.push(`**Cycle:** ${cyclic.join(', ')} depend on each other, so no build order resolves this phase — break the cycle before relying on this plan.`);
|
|
231
|
+
}
|
|
232
|
+
else if (i === 0) {
|
|
233
|
+
// Only claim downstream consumers for the repos that actually have
|
|
234
|
+
// them. The old wording asserted it for every phase-1 repo.
|
|
235
|
+
const consumed = phase.filter((name) => (graph.get(name)?.dependedOnBy.length ?? 0) > 0);
|
|
236
|
+
md.push(consumed.length > 0
|
|
237
|
+
? `**Why first:** No dependencies on other workspace repos, and ${consumed.join(', ')} ${consumed.length === 1 ? 'is' : 'are'} depended on by a later phase.`
|
|
238
|
+
: '**Why first:** No dependencies on other workspace repos.');
|
|
239
|
+
}
|
|
240
|
+
else if (i === phases.length - 1) {
|
|
241
|
+
md.push(`**Why ${ordinal}:** Depends on APIs and types from earlier phases.`);
|
|
259
242
|
}
|
|
243
|
+
else {
|
|
244
|
+
const prevPhases = phases
|
|
245
|
+
.slice(0, i)
|
|
246
|
+
.flat()
|
|
247
|
+
.join(', ');
|
|
248
|
+
md.push(`**Why ${ordinal}:** Depends on Phase ${i === 1 ? '1' : `1–${i}`} repos (${prevPhases}). Build these before the consumers.`);
|
|
249
|
+
}
|
|
250
|
+
md.push('');
|
|
260
251
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
: '—';
|
|
273
|
-
md.push(`| \`${rel.pkgName}\` | ${contribStr} | \`${rel.producer}\` | ${consumerStr} | ${feedStr} | \`${rel.type}\` |`);
|
|
252
|
+
// ── Dependency table ──────────────────────────────────────────────
|
|
253
|
+
md.push('## Dependency Table');
|
|
254
|
+
md.push('');
|
|
255
|
+
md.push('| Repo | Depends On | Depended On By |');
|
|
256
|
+
md.push('|:---|:---|:---|');
|
|
257
|
+
// Sort repos by phase order for a natural reading experience
|
|
258
|
+
for (const name of phases.flat()) {
|
|
259
|
+
const node = graph.get(name);
|
|
260
|
+
const deps = node.dependsOn.length > 0 ? node.dependsOn.join(', ') : '—';
|
|
261
|
+
const rdeps = node.dependedOnBy.length > 0 ? node.dependedOnBy.join(', ') : '—';
|
|
262
|
+
md.push(`| ${name} | ${deps} | ${rdeps} |`);
|
|
274
263
|
}
|
|
264
|
+
md.push('');
|
|
275
265
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
if (!subA.messaging || !subA.messaging.subscribers)
|
|
295
|
-
continue;
|
|
296
|
-
for (const sub of subA.messaging.subscribers) {
|
|
297
|
-
const pubContract = pub.contractType.toLowerCase().trim();
|
|
298
|
-
const subContract = sub.contractType.toLowerCase().trim();
|
|
299
|
-
if (pubContract === subContract && pubContract !== 'goservicebusmessage' && pubContract !== 'servicebusmessage') {
|
|
300
|
-
crossRepoMessages.push({
|
|
301
|
-
pubRepo: pubA.name,
|
|
302
|
-
message: pub.contractType,
|
|
303
|
-
subRepo: subA.name,
|
|
304
|
-
handler: sub.handlerFile,
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
}
|
|
266
|
+
// ── Contracts & Clients ─────────────────────────────────────────────
|
|
267
|
+
// Only packages a sibling repo actually consumes. A published package with
|
|
268
|
+
// no workspace consumer is not a cross-repo contract, and rendering it with
|
|
269
|
+
// "_None_" in the consumers column was the largest block of the old file.
|
|
270
|
+
if (contracts.length > 0) {
|
|
271
|
+
const anyContributing = contracts.some((c) => (c.contributing?.length ?? 0) > 0);
|
|
272
|
+
md.push('## 📦 Contracts & Clients');
|
|
273
|
+
md.push('');
|
|
274
|
+
md.push(anyContributing
|
|
275
|
+
? '| Package | Contributing Projects | Producing Repo | Consuming Repos (Version) | Feed Source | Type |'
|
|
276
|
+
: '| Package | Producing Repo | Consuming Repos (Version) | Feed Source | Type |');
|
|
277
|
+
md.push(anyContributing ? '|:---|:---|:---|:---|:---|:---|' : '|:---|:---|:---|:---|:---|');
|
|
278
|
+
for (const rel of contracts) {
|
|
279
|
+
const cells = [`\`${rel.pkgName}\``];
|
|
280
|
+
if (anyContributing) {
|
|
281
|
+
cells.push(rel.contributing && rel.contributing.length > 0
|
|
282
|
+
? rel.contributing.map((c) => `\`${c}\``).join(', ')
|
|
283
|
+
: '—');
|
|
308
284
|
}
|
|
285
|
+
cells.push(`\`${rel.producer}\``);
|
|
286
|
+
cells.push(rel.consumers.map((c) => `\`${c.repoName}\` (${c.version || 'pinned'})`).join(', '));
|
|
287
|
+
cells.push(rel.feeds && rel.feeds.length > 0
|
|
288
|
+
? rel.feeds.map((f) => `\`${f.name}\` (${f.url})`).join('<br>')
|
|
289
|
+
: '—');
|
|
290
|
+
cells.push(`\`${rel.type}\``);
|
|
291
|
+
md.push(`| ${cells.join(' | ')} |`);
|
|
309
292
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
293
|
+
md.push('');
|
|
294
|
+
// ── Local Package Development Loop ────────────────────────────────
|
|
295
|
+
// Gated on a shared package existing at all, and on the ecosystems those
|
|
296
|
+
// packages actually use. It used to emit both branches whenever the
|
|
297
|
+
// workspace merely contained the language, so a TypeScript-only workspace
|
|
298
|
+
// carried four .NET/NuGet steps — 47% of the plan, none of it applicable.
|
|
299
|
+
const types = new Set(contracts.map((c) => c.type));
|
|
300
|
+
md.push('## 💡 Local Package Development Loop');
|
|
301
|
+
md.push('');
|
|
302
|
+
md.push('When changing a shared package, verify its consumers against a local build before pushing:');
|
|
303
|
+
md.push('');
|
|
304
|
+
if (types.has('nuget')) {
|
|
305
|
+
md.push('### .NET / NuGet');
|
|
306
|
+
md.push('1. `dotnet pack -c Release -o ./local-packages` in the producing project.');
|
|
307
|
+
md.push('2. Point a local feed in the consumer\'s `NuGet.config` at `./local-packages`.');
|
|
308
|
+
md.push('3. Reference a local version (e.g. `3.41.0-local`) in the consuming `.csproj`.');
|
|
309
|
+
md.push('4. **Revert the version reference to the official release before merging.**');
|
|
310
|
+
md.push('');
|
|
311
|
+
}
|
|
312
|
+
if (types.has('npm')) {
|
|
313
|
+
md.push('### Node.js / npm');
|
|
314
|
+
md.push('1. `npm link` in the producing package, then `npm link <package-name>` in the consumer.');
|
|
315
|
+
md.push('2. **Unlink and reinstall the published version before committing.**');
|
|
316
|
+
md.push('');
|
|
314
317
|
}
|
|
315
318
|
}
|
|
316
|
-
else {
|
|
317
|
-
md.push('| _No cross-repo messaging detected_ | | | |');
|
|
318
|
-
}
|
|
319
|
-
md.push('');
|
|
320
|
-
// ── Local Package Development Loop Tip ──────────────────────────────
|
|
321
|
-
md.push('## 💡 Local Package Development Loop');
|
|
322
|
-
md.push('');
|
|
323
|
-
md.push('When making changes to a shared contract or client library package, follow this standard local feed loop to test and verify consumers before pushing:');
|
|
324
|
-
md.push('');
|
|
325
|
-
md.push('### For .NET / NuGet packages:');
|
|
326
|
-
md.push('1. **Pack locally**: Run `dotnet pack -c Release -o ./local-packages` inside the producing project folder.');
|
|
327
|
-
md.push('2. **Add local feed**: Configure a local feed in your consumer project\'s `NuGet.config` pointing to the `./local-packages` directory.');
|
|
328
|
-
md.push('3. **Reference local version**: Reference the package with a local development version (e.g. `3.41.0-local`) in the consuming `.csproj`.');
|
|
329
|
-
md.push('4. **Revert before merging**: Verify changes compile and tests pass, then **revert** the consuming project\'s package version reference to the official release before merging to master.');
|
|
330
|
-
md.push('');
|
|
331
|
-
md.push('### For Node.js / npm packages:');
|
|
332
|
-
md.push('1. **Link locally**: Run `npm link` inside the producing package folder.');
|
|
333
|
-
md.push('2. **Use link**: Run `npm link <package-name>` inside the consuming folder to link it.');
|
|
334
|
-
md.push('3. **Revert before merging**: Uninstall the linked package and install the official package version before committing.');
|
|
335
|
-
md.push('');
|
|
336
319
|
// ── Write file ──────────────────────────────────────────────────────
|
|
337
320
|
await writeWorkspaceFile(workspacePath, feature.id, 'nexusflow-plan.md', md.join('\n'));
|
|
338
321
|
console.log(chalk.green(' ✔'), 'Generated nexusflow-plan.md');
|
|
@@ -342,7 +325,48 @@ export async function generateImplementationPlan(ctx, workspacePath) {
|
|
|
342
325
|
console.error(chalk.red(' ✖'), `Failed to generate implementation plan: ${message}`);
|
|
343
326
|
}
|
|
344
327
|
}
|
|
345
|
-
|
|
328
|
+
/**
|
|
329
|
+
* Pairs every produced package with the workspace repos that depend on it.
|
|
330
|
+
*
|
|
331
|
+
* Restricted to `repos` so this agrees with {@link buildDependencyGraph}, which
|
|
332
|
+
* also walks only those: derived from the whole analysis map, the two could
|
|
333
|
+
* disagree and the plan would claim a phase order it never printed.
|
|
334
|
+
*
|
|
335
|
+
* Consumers may be empty — the caller decides whether a package with no
|
|
336
|
+
* workspace consumer is worth reporting.
|
|
337
|
+
*/
|
|
338
|
+
function findPackageRelations(analysis, repos) {
|
|
339
|
+
const inScope = [];
|
|
340
|
+
for (const repo of repos) {
|
|
341
|
+
const a = analysis.get(repo.path);
|
|
342
|
+
if (a)
|
|
343
|
+
inScope.push([repo.path, a]);
|
|
344
|
+
}
|
|
345
|
+
const relations = [];
|
|
346
|
+
for (const [repoPath, a] of inScope) {
|
|
347
|
+
for (const product of a.produces ?? []) {
|
|
348
|
+
const consumers = [];
|
|
349
|
+
for (const [otherPath, otherA] of inScope) {
|
|
350
|
+
if (otherPath === repoPath)
|
|
351
|
+
continue;
|
|
352
|
+
for (const dep of otherA.dependencies ?? []) {
|
|
353
|
+
if (dep.name.toLowerCase() === product.name.toLowerCase()) {
|
|
354
|
+
consumers.push({ repoName: otherA.name, version: dep.version });
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
relations.push({
|
|
359
|
+
pkgName: product.name,
|
|
360
|
+
contributing: product.contributing,
|
|
361
|
+
producer: a.name,
|
|
362
|
+
consumers,
|
|
363
|
+
type: product.type,
|
|
364
|
+
feeds: a.nugetFeeds,
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
return relations;
|
|
369
|
+
}
|
|
346
370
|
/**
|
|
347
371
|
* Add a directed edge: `from` depends on `to`.
|
|
348
372
|
* Idempotent — duplicate edges are ignored.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-generator.js","sourceRoot":"","sources":["../../src/generators/plan-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan-generator.js","sourceRoot":"","sources":["../../src/generators/plan-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-generator.test.d.ts","sourceRoot":"","sources":["../../src/generators/plan-generator.test.ts"],"names":[],"mappings":""}
|